WO2013113320A1 - System for modifying a plc program - Google Patents
System for modifying a plc program Download PDFInfo
- Publication number
- WO2013113320A1 WO2013113320A1 PCT/EP2012/000407 EP2012000407W WO2013113320A1 WO 2013113320 A1 WO2013113320 A1 WO 2013113320A1 EP 2012000407 W EP2012000407 W EP 2012000407W WO 2013113320 A1 WO2013113320 A1 WO 2013113320A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- plc
- foreseen
- execution
- source code
- command
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13153—Modification, change of program in real time
Definitions
- the invention relates to a system for modifying a running PLC program, comprising a programmable logic controller (PLC) which is foreseen to perform at least partial changes of a PLC program running thereon, an executing device, which is foreseen to execute a sequence of commands, wherein each command is determined by a belonging function block of the PLC program running on the PLC and an external input device for determining a command to be inserted into and/or deleted from the sequence of commands to be executed.
- PLC programmable logic controller
- execution devices for example robots
- execution devices are widely used in industrial applications, such as material handling, machine tending, assembly of parts, arc welding or painting of vehicles.
- a system which is based on a programmable logic controller (PLC).
- PLC programmable logic controller
- the programmable logic controller coordinates the triggering of the working sequences of the different robots dependent for example on the position of a conveyor system, wherewith a workpiece to be assembled is transported along the different working positions of the robots.
- the programming of a PLC is standardized in a wider manner, for example by IEC 61131 , so a person who is skilled in PLC programming is able to operate a wide range of different PLC controlled production lines concerning this issue.
- a robot comprises normally a robot manipulator with several degrees of freedom in movement, for example six or seven, wherein at the end of the robot manipulator typically an end effector like a gripper or another tool like a welding gun is foreseen.
- a robot manipulator with at least six degrees of freedom in movement is able to position a belonging tool within each coordinate of its working range in each orientation.
- a coordinate along a movement path of the robot tool requires typically six val- ues, three for the belonging coordinate and three for the belonging orientation.
- the working range of a robot depends on the robot and might be for example within a radius of 1m to 3m around the belonging robot base.
- the movement of the robot is typically controlled by a dedicated robot controller, which comprises on the one side a kind of computer system and on the other side several amplifiers for the belonging drives of the robot.
- a dedicated drive such as an electrical motor.
- the desired movement of the robot is normally contained within a robot program, which is stored on the computer system of the robot controller.
- the movement path is composed by a sequence of movement sections inbetween given coordinates, which are specified within the robot program.
- a robot program might contain commands with the content “linear move from current coordinate to coordinate [x1, x2, x3, o1, o2, o3] with speed [zf or "linear move from current coordinate to current coordinate + delta [x1, x2, x3, o1, o2, o3] with speed [zf.
- the robot controller calculates the belonging control signals for the different motors, so that the tip of the robot manipulator executes the desired motion. It is also thinkable, that two or more robots are controlled by a common robot controller.
- a PLC program becomes typically generated from a source code, which has to be re-compiled after any modification. Before any changes of modified source code become effective, the re-compiled PLC program respectively at least a re-compiled PLC program sequence has to be transferred to the PLC.
- modifications of the kind respectively the sequence or the number of PLC blocks for commanding a robot respectively an executing device is not subject to a modification during runtime of the PLC program. Since the robot movement is determined by belonging function blocks, an online modification of a movement path of a robot commanded by PLC is not possible according to the state of the art.
- an online teaching or online modifying of the path is desirable, for example for commissioning a robot on site.
- commissioning robot movement is fine tuned stepwise by an operator before starting series production.
- the robot program is running while the movement sequences are performed step by step preferably at a reduced speed.
- a new command might be added, an old command has to be removed or an existing command replaced.
- the start of at least some of the movement sequences is subject to an acknowledgement of the operator.
- a control device which has the source code of the PLC program stored thereon at least in part, which is foreseen to receive data of the command to be inserted into and/or deleted from the sequence of commands to be executed by the external input device, which is foreseen to translate the received data into PLC source code language, which is foreseen to implement translated data into the source code of the PLC program so that a new source code is generated, which is foreseen to generate a modified PLC program sequence based on the new source code and which is foreseen to transmit the modified PLC program sequence to the PLC and initiate at least a partial change of the PLC program running thereon.
- the basic idea of the invention consists in providing a control device with a software service program running thereon wherein the device has the source code of the belonging PLC program to be modified stored thereon. Assumed that data of a new function block and/or data of a function block to be deleted are provided to the software service, those data are implemented into the source code of the PLC program to be modified accordingly. Furthermore the control device is foreseen to translate respectively compile the source code respectively a part of the source code into a machine code which is executable by the PLC. This is done for example by executing compiler software which is stored on the control device or another device connected thereto.
- the control device is furthermore foreseen to transmit the newly compiled PLC program respectively PLC program sequence to the PLC by using a suitable data connection.
- a suitable data connection can be either a communication line, or in the case that PLC and control device are realized on the same hardware by storing belonging data into a belonging section of common memory storage.
- the PLC hardware is foreseen to exchange at least sequences of the PLC program during runtime. According to the invention this process is done during runtime of the PLC program.
- the executing device is a robot.
- a robot typically comprises a robot controller with on one side a computing unit for the interpretation of the robot program and on the other side some electrical amplifiers for the generation of belonging supply voltages for the different motor drives.
- a robot is suitable to be commanded by PLC since a typical robot program mainly consists of a sequence of clearly defined movement command sequences inbetween different coordinates.
- a PLC typically carries out the commands represented by belonging function blocks6 quasi parallel within the same cycle.
- a sequential structure of the commands represented by a PLC program according to the invention is gained by connecting the function blocks such as by triggering the input of a subsequent function block by the output of the previous function block.
- a robot movement program can be represented by PLC by a sequence of well defined function blocks which are connected in a belonging manner each to each other.
- robots normally are used in an industrial environment, where PLC systems are widely used.
- the input device is a teach pendant.
- Teach pendants are a typical interface between the robot and an operator for the manual fine-tuning of the robot program on site.
- a teach pendant normally com- prises a display, control buttons, a kind of joystick and is connected to the robot controller.
- the teach pendant respectively the robot controller connected thereto have to be enabled, to provide data of a desired new coordinate or data of a coordinate to be eliminated to the control device. This can be done either directly via a belonging communication line such as a field bus or so. But it can also be done by via the PLC by using belonging communication channels.
- control device is an industrial personal computer.
- Personal computers are widely used and standardized computing platforms which are also foreseen to be used in an industrial environment.
- the executing device respectively the PLC is foreseen to provide data for identification of the command currently in execution by the executing device to the control device directly or indirectly.
- the output of a PLC function block might represent several states about the robot movement command represented therewith. This can be for example a first state, which indicates, that the function block has been activated, a second state, which indicates that the robot has started the corresponding motion and a third state, which indicates, that the robot has finished the corresponding motion.
- the states of the belonging outputs also represent the command currently in execution.
- the control device is foreseen to implement translated data into the source code of the PLC stored thereon according to the data for identification of the actual command in execution by the execution device.
- a movement program of a robot is represented by a sequence of movement commands which are represented by belonging function blocks of the PLC program themselves, also the PLC program comprises such a sequential structure.
- an additional movement command respectively a movement command to be removed requires a certain position within the sequence of commands, for example inbetween the n th and (n+1) th or (n-1) th command respectively n th and (n+1) th or (n-lf function block.
- the movement program is executed stepwise.
- the execution of the movement program is on hold (waiting for acknowledgement for the execution of the subsequent command for example) for fine tuning of the movement sequence around the actual position.
- Providing data about the robot command currently in execution to the control device easily enables the determination of the position within the sequence of function blocks where the source code has to be modified according to the data received from the input device.
- the input device and/or the control device and/or the PLC are realized within a common device. All of those devices comprise a computing hardware. Thus the implementation of those devices, for example represented by belonging software, in a common hardware enables an easier realization of a system according to the invention.
- the execution of a further function block within the PLC depends on the execution of the command corresponding to the previous function block by the execution device.
- the PLC and the execution device are more or less synchronized.
- Such an offset might be realized by orchestrating the movement commands corresponding to belonging function blocks in a motion queue for example.
- the execution of at least some of the commands to be executed by the execution device is subject to an acknowledgement.
- an acknowledgement is for example given by the operator by using a teach pendant.
- the robot might be manually moved to the position of a desired new coordinate. Having reached this coordinate, the coordinate data and the belonging movement command (linear path, curve etc.) is transmitted to the control device. Later on an acknowledgement is given and the next command is executed.
- data for identification of the belonging command currently in execution by the execution device are provided to the control device.
- the implementation of translated data into the source code of the PLC stored on the control device is done according to the program-pointer on the actual command in execution by the execution device.
- Figure 1 shows an exemplary system for modifying a PLC program
- Figure 2 shows a first example for relation of PLC function blocks to movement sequences
- Figure 3 second example for relation of PLC function blocks to movement sequences.
- FIG. 1 shows an exemplary system 10 for modifying a PLC program 14.
- a programmable logic controller (PLC) 12 comprises a computing hardware 16 and the PLC program installed thereon.
- the PLC program comprises a sequence of PLC function blocks, whereas each function block corresponds to a belonging movement command for the robot.
- a belonging motion command is orchestrated to a motion queue on a robot controller 22 which is connected therewith by a connecting line 48.
- the motion queue can also be integrated within the PLC.
- the robot controller 22 itself is connected with a robot 18 by a connecting line 50, which is foreseen as well for a bi-directional data flow as for the power supply of the robot.
- the robot controller 22 comprises as well a computing unit as amplifiers for adapting the voltage and frequency of the supply of the different drives of the robot 18.
- the robot 18 has mounted a gripper tool 20 at the end of its robot arm.
- a movement program is stored on the computing unit of the robot controller 22. While executing the robot program supply voltages for the motor drives of the robot 18 are generated accordingly by the amplifiers, so that the robot 18 executes the desired motion according to the robot program.
- the robot controller 22 continuously receives the orchestrated motion commands from the PLC 12, integrates those commands into the robot program and initiates the belonging execution by the robot 18. Thus the robot is controlled effectively by the PLC.
- a modification of the robot program respectively of the PLC program 14 is done on site by an operator 26 using an external input device 24, in this case a teach pendant .
- a teach pendant might be used, even a PLC-HMI, which is directly connected to the PLC and not to the robot controller.
- the teach pendant is connected as well with the robot controller 22, with the PLC and directly and with a control device 28 with belonging connection lines 38, 40, 44.
- the system 10 is switched into a teaching mode before starting execution of PLC program.
- the robot motion according to the PLC program is executed at a significant reduced speed due to security aspects.
- the belonging motion sequences of the robot 18 are executed stepwise, preferably each on acknowledgement of the operator 26.
- the robot 18 After execution of a belonging command, the robot 18 is in a hold modus and is foreseen to be moved manually to a desired position by using the teach pendant 24. After the desired position has been reached, the actual coordinate of the robot 18 is available within the robot controller 22.
- the actual coordinate and orientation is set to be a desired new coordinate and orientation and sent to the control device 28 together with information about the actual executed command of the robot 18. Furthermore the required type of command, such as linear or curved movement or such, is provided to the control device.
- the control device 28 comprises a belonging computing hardware 30, a source code 32 for the PLC program 14, a software service program 34 running thereon and temporarily a compiled PLC program 36.
- data of the required changes of the PLC program 14 are received by the control device 28, those data are translated into PLC source code language accordingly and implemented into the source code 32 by the software service program 34.
- the software service program triggers a compiler software to translate the PLC source code into a new PLC program 36. Then the new PLC program 36 is transferred to and activated on the PLC during run- time of the PLC program, so that an online change of the PLC program has been performed.
- Fig. 2 shows a first example 60 for the relation of PLC function blocks to belonging movement sequences.
- Three function blocks 62, 64, 66 of a PLC program are displayed in the upper area of the example 60.
- Each function block 62, 64, 66 is triggered at its trigger input 70 by a belonging output 68 of the proceeding function block.
- a certain movement sequence 72, 74, 76 is related to each function block as indicated in the drawing in the y(t) diagram.
- Trigger criterion for the execution of a subsequent function block 64 is for example that the movement sequence 72 related to the proceeding function block 62 for example has been executed.
- Fig. 3 shows a second example 80 for the relation of PLC function blocks to belonging movement sequences.
- the example 80 corresponds to example 60, but in example 80 the function block 66 and the belonging movement sequence 76 have been replaced by two new function blocks 82, 84 and belonging movement sequences 86, 88. Thus a new PLC function block has been added into the PLC program.
- Fig. 4 shows a function block 90, comprising an input 92 (in the Fig. referenced with “T") for triggering the execution of a belonging function, further inputs 100 (in the Fig. referenced with “11”, “I2”, “I3”, “n") and three outputs 94, 96, 98 (in the Fig. referenced with ⁇ 1", "02", “03”).
- the function block describes a functional relationship between the inputs 100 and the outputs 94, 96, 98, which all are foreseen to encode either the status TRUE ort FALSE.
- the first output 94 represents the first state, namely that the function block has been activated
- the second output 96 represents the second state, namely that the execution of the belonging movement segment has been started
- the third output 98 represents the third state, namely that the execution of the belonging movement segment has been finished.
- PLC programmable logic controller
- PLC programmable logic controller
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
Abstract
The invention is related to a system for modifying a running PLC program (10), comprising a programmable logic controller (PLC) (12) which is foreseen to perform at least partial changes of a PLC program (14) running thereon, an executing device (18 + 22), which is foreseen to execute a sequence of commands, wherein each command is determined by a belonging function block (62, 64, 66, 82, 84) of the PLC program (14) running on the PLC (12) and an external input device (24) for determining a command to be inserted into and/ or deleted from the sequence of commands to be executed. A control device (28) is foreseen, which has the source code (32) of the PLC program stored thereon at least in part, which is foreseen to receive data of the command to be inserted into and/or deleted from the sequence of commands to be executed by the external input device (18 + 22), which is foreseen to translate the received data into PLC source code language, which is foreseen to implement translated data into the source code (32) of the PLC program so that a new source code is generated, which is foreseen to generate a modified PLC program sequence based on the new source code and which is foreseen to transmit the modified PLC program sequence to the PLC (12) and initiate at least a partial change of the PLC program (14) running thereon.
Description
System for modifying a PLC program
Description
The invention relates to a system for modifying a running PLC program, comprising a programmable logic controller (PLC) which is foreseen to perform at least partial changes of a PLC program running thereon, an executing device, which is foreseen to execute a sequence of commands, wherein each command is determined by a belonging function block of the PLC program running on the PLC and an external input device for determining a command to be inserted into and/or deleted from the sequence of commands to be executed.
It is known, that execution devices, for example robots, are widely used in industrial applications, such as material handling, machine tending, assembly of parts, arc welding or painting of vehicles. Usually, several robots are working together along a common production line, wherein each robot is foreseen for a certain production step. The overall control of those robots is typically realized by a system, which is based on a programmable logic controller (PLC). The programmable logic controller coordinates the triggering of the working sequences of the different robots dependent for example on the position of a conveyor system, wherewith a workpiece to be assembled is transported along the different working positions of the robots. The programming of a PLC is standardized in a wider manner, for example by IEC 61131 , so a person who is skilled in PLC programming is able to operate a wide range of different PLC controlled production lines concerning this issue.
A robot comprises normally a robot manipulator with several degrees of freedom in movement, for example six or seven, wherein at the end of the robot manipulator typically an end effector like a gripper or another tool like a welding gun is foreseen. A robot manipulator with at least six degrees of freedom in movement is able to position a belonging tool within each coordinate of its working range in each orientation. Thus, a coordinate along a movement path of the robot tool requires typically six val-
ues, three for the belonging coordinate and three for the belonging orientation. The working range of a robot depends on the robot and might be for example within a radius of 1m to 3m around the belonging robot base.
The movement of the robot is typically controlled by a dedicated robot controller, which comprises on the one side a kind of computer system and on the other side several amplifiers for the belonging drives of the robot. Typically each degree of freedom in movement requires a dedicated drive such as an electrical motor. The desired movement of the robot is normally contained within a robot program, which is stored on the computer system of the robot controller. The movement path is composed by a sequence of movement sections inbetween given coordinates, which are specified within the robot program. Thus a robot program might contain commands with the content "linear move from current coordinate to coordinate [x1, x2, x3, o1, o2, o3] with speed [zf or "linear move from current coordinate to current coordinate + delta [x1, x2, x3, o1, o2, o3] with speed [zf. The robot controller calculates the belonging control signals for the different motors, so that the tip of the robot manipulator executes the desired motion. It is also thinkable, that two or more robots are controlled by a common robot controller.
In the patent applications PCT/EP2011/000243 and PCT/EP2011/000244 - which are cited by reference herewith - systems and methods for commanding a robot by PLC are disclosed. According thereto each command executed by the robot commanded by a PLC corresponds to a belonging function block within the PLC program. The function blocks are orchestrated into robot commands and applied to the robot controller. The programming of a robot is easier therewith on the one hand.
Disadvantageously within this state of the art is on the other hand that a PLC program becomes typically generated from a source code, which has to be re-compiled after any modification. Before any changes of modified source code become effective, the re-compiled PLC program respectively at least a re-compiled PLC program sequence has to be transferred to the PLC. Thus modifications of the kind respectively the sequence or the number of PLC blocks for commanding a robot respectively an executing device is not subject to a modification during runtime of the PLC program. Since the robot movement is determined by belonging function blocks, an
online modification of a movement path of a robot commanded by PLC is not possible according to the state of the art.
But especially for modifying a movement path of a robot an online teaching or online modifying of the path is desirable, for example for commissioning a robot on site. During commissioning robot movement is fine tuned stepwise by an operator before starting series production. Thus during commissioning the robot program is running while the movement sequences are performed step by step preferably at a reduced speed. In case of a required fine tuning of the movement path a new command might be added, an old command has to be removed or an existing command replaced. Preferably the start of at least some of the movement sequences is subject to an acknowledgement of the operator.
Based on this state of the art it is the objective of the invention to provide a system for modifying a PLC program for commanding a robot respectively an execution device, wherein it is possible to apply the changes during runtime of the PLC program. It is also objective of the invention to provide a belonging method.
This problem is solved by a system of the aforementioned kind. This is characterized by a control device, which has the source code of the PLC program stored thereon at least in part, which is foreseen to receive data of the command to be inserted into and/or deleted from the sequence of commands to be executed by the external input device, which is foreseen to translate the received data into PLC source code language, which is foreseen to implement translated data into the source code of the PLC program so that a new source code is generated, which is foreseen to generate a modified PLC program sequence based on the new source code and which is foreseen to transmit the modified PLC program sequence to the PLC and initiate at least a partial change of the PLC program running thereon.
The basic idea of the invention consists in providing a control device with a software service program running thereon wherein the device has the source code of the belonging PLC program to be modified stored thereon. Assumed that data of a new function block and/or data of a function block to be deleted are provided to the software service, those data are implemented into the source code of the PLC program
to be modified accordingly. Furthermore the control device is foreseen to translate respectively compile the source code respectively a part of the source code into a machine code which is executable by the PLC. This is done for example by executing compiler software which is stored on the control device or another device connected thereto. The control device is furthermore foreseen to transmit the newly compiled PLC program respectively PLC program sequence to the PLC by using a suitable data connection. This can be either a communication line, or in the case that PLC and control device are realized on the same hardware by storing belonging data into a belonging section of common memory storage. The PLC hardware is foreseen to exchange at least sequences of the PLC program during runtime. According to the invention this process is done during runtime of the PLC program. Thus it is possible in an advantageous way, to teach new coordinates of a movement program of an execution device connected thereto in an advantageous way while the PLC program is in execution.
According to another embodiment of the invention the executing device is a robot. A robot typically comprises a robot controller with on one side a computing unit for the interpretation of the robot program and on the other side some electrical amplifiers for the generation of belonging supply voltages for the different motor drives. Especially a robot is suitable to be commanded by PLC since a typical robot program mainly consists of a sequence of clearly defined movement command sequences inbetween different coordinates. A PLC typically carries out the commands represented by belonging function blocks6 quasi parallel within the same cycle. A sequential structure of the commands represented by a PLC program according to the invention is gained by connecting the function blocks such as by triggering the input of a subsequent function block by the output of the previous function block. Thus a robot movement program can be represented by PLC by a sequence of well defined function blocks which are connected in a belonging manner each to each other. Furthermore robots normally are used in an industrial environment, where PLC systems are widely used.
According to a further embodiment of the invention the input device is a teach pendant. Teach pendants are a typical interface between the robot and an operator for the manual fine-tuning of the robot program on site. A teach pendant normally com-
prises a display, control buttons, a kind of joystick and is connected to the robot controller. Thus it is easily possible to manually move the robot in a desired position and determine a new coordinate therewith. Temporarily the teach pendant respectively the robot controller connected thereto have to be enabled, to provide data of a desired new coordinate or data of a coordinate to be eliminated to the control device. This can be done either directly via a belonging communication line such as a field bus or so. But it can also be done by via the PLC by using belonging communication channels.
According to a further embodiment of the invention the control device is an industrial personal computer. Personal computers are widely used and standardized computing platforms which are also foreseen to be used in an industrial environment.
According to a further embodiment of the invention the executing device respectively the PLC is foreseen to provide data for identification of the command currently in execution by the executing device to the control device directly or indirectly. As described in the patent applications cited by reference PCT/EP2011/000243 and PCT/EP2011/000244 the output of a PLC function block might represent several states about the robot movement command represented therewith. This can be for example a first state, which indicates, that the function block has been activated, a second state, which indicates that the robot has started the corresponding motion and a third state, which indicates, that the robot has finished the corresponding motion. Thus the states of the belonging outputs also represent the command currently in execution. Following a further embodiment of the invention the control device is foreseen to implement translated data into the source code of the PLC stored thereon according to the data for identification of the actual command in execution by the execution device.
Since a movement program of a robot is represented by a sequence of movement commands which are represented by belonging function blocks of the PLC program themselves, also the PLC program comprises such a sequential structure. Thus an additional movement command respectively a movement command to be removed requires a certain position within the sequence of commands, for example inbetween the nth and (n+1)th or (n-1)th command respectively nth and (n+1)th or (n-lf function
block. By defining the belonging position where to insert or delete a belonging function block within the PLC program, exact information how to modify the PLC program is provided.
During commissioning of a robot the movement program is executed stepwise. In case of modifying the movement program during commissioning, the execution of the movement program is on hold (waiting for acknowledgement for the execution of the subsequent command for example) for fine tuning of the movement sequence around the actual position. Providing data about the robot command currently in execution to the control device easily enables the determination of the position within the sequence of function blocks where the source code has to be modified according to the data received from the input device.
According to a further embodiment of the invention the input device and/or the control device and/or the PLC are realized within a common device. All of those devices comprise a computing hardware. Thus the implementation of those devices, for example represented by belonging software, in a common hardware enables an easier realization of a system according to the invention.
The problem is also solved by a method for modifying a running PLC program using a system according to the invention, comprising the following steps:
• starting the execution of the PLC program on the PLC,
• stepwise executing a sequence of commands by the execution device, wherein each command is determined by a belonging function block of the PLC program running on the PLC,
• determining a command to be inserted into and/or deleted from the sequence of commands by using the input device,
• applying data of this command to the control device,
• translating this data into PLC source code language,
• implementing translated data into the source code of the PLC stored on the control device so that a new source code is generated,
• generating a modified PLC program sequence based on the new source code,
• transmitting the modified PLC program sequence to the PLC,
• initiating at least a partial change of the PLC program running thereon
The advantages of this method correspond to the advantages gained in using a belonging system according to the invention.
According to a preferred embodiment of the method according to the invention the execution of a further function block within the PLC depends on the execution of the command corresponding to the previous function block by the execution device. Thus the PLC and the execution device are more or less synchronized. Of course it is possible to allow a certain offset between the command which is currently in execution by for example a robot and the execution of the corresponding function block within the PLC. Such an offset might be realized by orchestrating the movement commands corresponding to belonging function blocks in a motion queue for example.
According to a further embodiment of the invention the execution of at least some of the commands to be executed by the execution device is subject to an acknowledgement. Such an acknowledgement is for example given by the operator by using a teach pendant. Thus it is possible to hold the execution of the movement program around a coordinate, where modifications of the program are required. When the execution is on hold (but not interrupted) the robot might be manually moved to the position of a desired new coordinate. Having reached this coordinate, the coordinate data and the belonging movement command (linear path, curve etc.) is transmitted to the control device. Later on an acknowledgement is given and the next command is executed.
According to a further embodiment of the invention data for identification of the belonging command currently in execution by the execution device are provided to the control device. According to another embodiment of the invention the implementation of translated data into the source code of the PLC stored on the control device is done according to the program-pointer on the actual command in execution by the execution device.
Providing information of the robot command currently in execution to the control device enables the determination at which position within the source code of the PLC
program modifications have to be implemented. As explained before this method is possible due to the well defined sequence of the movement commands.
Further advantageous embodiments of the invention are mentioned in the dependent claims.
The invention will now be further explained by means of an exemplary embodiment and with reference to the accompanying drawings, in which:
Figure 1 shows an exemplary system for modifying a PLC program,
Figure 2 shows a first example for relation of PLC function blocks to movement sequences and
Figure 3 second example for relation of PLC function blocks to movement sequences.
Figure 1 shows an exemplary system 10 for modifying a PLC program 14. A programmable logic controller (PLC) 12 comprises a computing hardware 16 and the PLC program installed thereon. The PLC program comprises a sequence of PLC function blocks, whereas each function block corresponds to a belonging movement command for the robot. Upon executing a function block by the PLC a belonging motion command is orchestrated to a motion queue on a robot controller 22 which is connected therewith by a connecting line 48. The motion queue can also be integrated within the PLC.
The robot controller 22 itself is connected with a robot 18 by a connecting line 50, which is foreseen as well for a bi-directional data flow as for the power supply of the robot. The robot controller 22 comprises as well a computing unit as amplifiers for adapting the voltage and frequency of the supply of the different drives of the robot 18. The robot 18 has mounted a gripper tool 20 at the end of its robot arm. Typically a movement program is stored on the computing unit of the robot controller 22. While executing the robot program supply voltages for the motor drives of the robot 18 are generated accordingly by the amplifiers, so that the robot 18 executes the desired motion according to the robot program.
The robot controller 22 continuously receives the orchestrated motion commands from the PLC 12, integrates those commands into the robot program and initiates the belonging execution by the robot 18. Thus the robot is controlled effectively by the PLC.
In this example a modification of the robot program respectively of the PLC program 14 is done on site by an operator 26 using an external input device 24, in this case a teach pendant . But also another Human Machine Interface (HMI) might be used, even a PLC-HMI, which is directly connected to the PLC and not to the robot controller. The teach pendant is connected as well with the robot controller 22, with the PLC and directly and with a control device 28 with belonging connection lines 38, 40, 44. The system 10 is switched into a teaching mode before starting execution of PLC program. The robot motion according to the PLC program is executed at a significant reduced speed due to security aspects. Furthermore the belonging motion sequences of the robot 18 are executed stepwise, preferably each on acknowledgement of the operator 26. After execution of a belonging command, the robot 18 is in a hold modus and is foreseen to be moved manually to a desired position by using the teach pendant 24. After the desired position has been reached, the actual coordinate of the robot 18 is available within the robot controller 22.
The actual coordinate and orientation is set to be a desired new coordinate and orientation and sent to the control device 28 together with information about the actual executed command of the robot 18. Furthermore the required type of command, such as linear or curved movement or such, is provided to the control device. The control device 28 comprises a belonging computing hardware 30, a source code 32 for the PLC program 14, a software service program 34 running thereon and temporarily a compiled PLC program 36. In case that data of the required changes of the PLC program 14 are received by the control device 28, those data are translated into PLC source code language accordingly and implemented into the source code 32 by the software service program 34. Afterwards the software service program triggers a compiler software to translate the PLC source code into a new PLC program 36. Then the new PLC program 36 is transferred to and activated on the PLC during run-
time of the PLC program, so that an online change of the PLC program has been performed.
Fig. 2 shows a first example 60 for the relation of PLC function blocks to belonging movement sequences. Three function blocks 62, 64, 66 of a PLC program are displayed in the upper area of the example 60. Each function block 62, 64, 66 is triggered at its trigger input 70 by a belonging output 68 of the proceeding function block. A certain movement sequence 72, 74, 76 is related to each function block as indicated in the drawing in the y(t) diagram. Trigger criterion for the execution of a subsequent function block 64 is for example that the movement sequence 72 related to the proceeding function block 62 for example has been executed.
Fig. 3 shows a second example 80 for the relation of PLC function blocks to belonging movement sequences. In principle the example 80 corresponds to example 60, but in example 80 the function block 66 and the belonging movement sequence 76 have been replaced by two new function blocks 82, 84 and belonging movement sequences 86, 88. Thus a new PLC function block has been added into the PLC program.
Fig. 4 shows a function block 90, comprising an input 92 (in the Fig. referenced with "T") for triggering the execution of a belonging function, further inputs 100 (in the Fig. referenced with "11", "I2", "I3", "n") and three outputs 94, 96, 98 (in the Fig. referenced with Ό1", "02", "03"). The function block describes a functional relationship between the inputs 100 and the outputs 94, 96, 98, which all are foreseen to encode either the status TRUE ort FALSE. The first output 94 represents the first state, namely that the function block has been activated, the second output 96 represents the second state, namely that the execution of the belonging movement segment has been started whereas the third output 98 represents the third state, namely that the execution of the belonging movement segment has been finished. Such a function block is as well realizable as software function as with a dedicated hardware.
List of reference signs exemplary system for modifying a PLC program
exemplary programmable logic controller (PLC)
PLC program
hardware of PLC
execution device (robot)
gripper tool
robot controller
external input device (teach pendant)
operator
control device
hardware of control device
source code of PLC program
software service program
PLC program
first communication line
second communication line
third communication line
forth communication line
connection inbetween control device and PLC
connection inbetween robot controller and PLC
connection inbetween robot controller and robot
first example for relation of PLC function blocks to movement sequences first function block
second function block
third function block
output of second function block
trigger input of third function block
first movement sequence related to first function block
second movement sequence related to second function block
third movement sequence related to third function block
second example for relation of PLC function blocks to movement sequences
82 fourth function block
84 fifth function block
86 fourth movement sequence related to fourth function block
88 fifth movement sequence related to fifth function block
90 exemplary function block of a programmable logic controller (PLC)
92 trigger input of first function block
94 first output of first function block
96 second output of first function block
98 third output of first function block
100 further inputs of first function block
Claims
1. System for modifying a running PLC program (10), comprising
• a programmable logic controller (PLC) (12) which is foreseen to perform at least partial changes of a PLC program (14) running thereon,
• an executing device (18 + 22), which is foreseen to execute a sequence of commands, wherein each command is determined by a belonging function block (62, 64, 66, 82, 84) of the PLC program (14) running on the PLC (12),
• an external input device (24) for determining a command to be inserted into and/or deleted from the sequence of commands to be executed,
characterized by
a control device (28),
• which has the source code of the PLC program (32) stored thereon at least in part,
• which is foreseen to receive data of the command to be inserted into and/or deleted from the sequence of commands to be executed by the external input device (18 + 22),
• which is foreseen to translate the received data into PLC source code language,
• which is foreseen to implement translated data into the source code of the PLC program (32) so that a new source code is generated,
• which is foreseen to generate a modified PLC program sequence based on the new source code and
• which is foreseen to transmit the modified PLC program sequence to the PLC (12) and initiate at least a partial change of the PLC program (14) running thereon.
2. System according to claim 1 , characterized in that the executing device is a robot (18 + 22).
3. System according to claim 2, characterized in that the input device is a teach pendant (24).
4. System according to any of the previous claims, characterized in that control device (28) is an industrial personal computer.
5. System according to any of the previous claims, characterized in that PLC (12) is foreseen to provide data for identification of the command currently in execution to the control device (28) directly or indirectly.
6. System according to claim 5, characterized in that the control device (28) is foreseen to implement translated data into the source code of the PLC (32) stored thereon according to the data for identification of the actual command in execution by the execution device.
7. System according to any of the previous claims, characterized in that the input device (24) and/or the control device (28) and/or the PLC (12) are realized within a common device.
8. Method for modifying a running PLC program (14) using a system according to any of the claims 1 to 7, comprising the following steps:
• starting the execution of the PLC program (14) on the PLC (12),
• stepwise executing a sequence of commands by the execution device (18 + 22), wherein each command is determined by a belonging function block (62, 64, 66, 82, 84) of the PLC program (14) running on the PLC (12),
• determining a command to be inserted into and/or deleted from the sequence of commands by using the input device (24),
• applying data of this command to the control device (28),
• translating this data into PLC source code language,
• implementing translated data into the source code of the PLC (32) stored on the control device (28) so that a new source code is generated,
• generating a modified PLC program sequence based on the new source code,
• transmitting the modified PLC program sequence to the PLC (12),
• initiating at least a partial change of the PLC program (14) running thereon
9. Method according to claim 8, characterized in that the execution of a further function block (66) within the PLC (12) depends on the execution of the command corresponding to the previous function block (64) by the execution device (18 + 22).
10. Method according to claim 8 or 9, characterized in that the execution of at least some of the commands to be executed by the execution device (18 + 22) is subject to an acknowledgement.
11. Method according to claim 8 to 10, characterized in that data for identification of the belonging command currently in execution by the execution device are provided to the control device.
12. Method according to claim 11 , characterized in that the implementation of translated data into the source code of the PLC (32) stored on the control device (28) is done according to the data for identification of the actual command in execution by the execution device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2012/000407 WO2013113320A1 (en) | 2012-01-31 | 2012-01-31 | System for modifying a plc program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2012/000407 WO2013113320A1 (en) | 2012-01-31 | 2012-01-31 | System for modifying a plc program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013113320A1 true WO2013113320A1 (en) | 2013-08-08 |
Family
ID=45558680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2012/000407 WO2013113320A1 (en) | 2012-01-31 | 2012-01-31 | System for modifying a plc program |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2013113320A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2921920A1 (en) | 2014-01-30 | 2015-09-23 | Jean-Pierre Petit | Method for implementing an automation system |
CN109623817A (en) * | 2018-12-19 | 2019-04-16 | 上海振华重工(集团)股份有限公司 | A kind of welding box body robot parametric programming system and its programmed method |
CN111475159A (en) * | 2020-03-20 | 2020-07-31 | 吉利汽车研究院(宁波)有限公司 | Method, device and storage medium for automatically generating program |
CN113448296A (en) * | 2021-06-08 | 2021-09-28 | 东风柳州汽车有限公司 | Vehicle production control method, device, equipment and storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970243A (en) * | 1996-08-27 | 1999-10-19 | Steeplechase Software, Inc. | Online programming changes for industrial logic controllers |
US20030061311A1 (en) * | 2001-09-24 | 2003-03-27 | George Lo | Method for providing engineering tool services |
EP1457850A1 (en) * | 2003-03-13 | 2004-09-15 | Omron Corporation | Control system and method for on-line editing of user program |
-
2012
- 2012-01-31 WO PCT/EP2012/000407 patent/WO2013113320A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970243A (en) * | 1996-08-27 | 1999-10-19 | Steeplechase Software, Inc. | Online programming changes for industrial logic controllers |
US20030061311A1 (en) * | 2001-09-24 | 2003-03-27 | George Lo | Method for providing engineering tool services |
EP1457850A1 (en) * | 2003-03-13 | 2004-09-15 | Omron Corporation | Control system and method for on-line editing of user program |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2921920A1 (en) | 2014-01-30 | 2015-09-23 | Jean-Pierre Petit | Method for implementing an automation system |
CN109623817A (en) * | 2018-12-19 | 2019-04-16 | 上海振华重工(集团)股份有限公司 | A kind of welding box body robot parametric programming system and its programmed method |
CN111475159A (en) * | 2020-03-20 | 2020-07-31 | 吉利汽车研究院(宁波)有限公司 | Method, device and storage medium for automatically generating program |
CN111475159B (en) * | 2020-03-20 | 2023-03-14 | 吉利汽车研究院(宁波)有限公司 | Method, device and storage medium for automatically generating program |
CN113448296A (en) * | 2021-06-08 | 2021-09-28 | 东风柳州汽车有限公司 | Vehicle production control method, device, equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210039254A1 (en) | Method for extending end user programming of an industrial robot with third party contributions | |
US9840008B2 (en) | Robot system control method and robot system | |
CN108568818B (en) | Control system and method for robot | |
US9254567B2 (en) | System for commanding a robot | |
EP2665585B1 (en) | System for commanding a robot | |
US9632493B2 (en) | Method of controlling a robotic work station, as a function of synchronization states, and a corresponding robotic work station | |
US20170001307A1 (en) | Method for controlling an automated work cell | |
EP2666064B1 (en) | Method for teaching a robot movement | |
JP7184595B2 (en) | machine tool system | |
CN103386685A (en) | Robot programming control method | |
KR102033241B1 (en) | Device and method controlling a movement speed of robot | |
CN107791244B (en) | Controller, work control device, multi-axis operation control device, and drive control device | |
WO2013113320A1 (en) | System for modifying a plc program | |
KR102405096B1 (en) | Method for commanding an automated work cell | |
CN109414820B (en) | Robot operation method, storage unit, and robot system | |
WO2022139939A1 (en) | Robot planning | |
US20230099602A1 (en) | Device control based on execution command and updated environment information | |
US10105849B1 (en) | Manufacturing system having robotic apparatus | |
US20220283568A1 (en) | System and method for controlling at least one machine, more particularly a collective of machines | |
KR100812986B1 (en) | Multi-channel Robot Control System | |
CN111699079B (en) | Coordination system, operation device and method | |
EP0354968A1 (en) | Shaft control system for pc | |
CN112207831A (en) | Manipulator working method with small position deviation, computer readable storage medium and intelligent manipulator system | |
Casa et al. | Software development to program and operate a CRS A255 Robotic handler | |
Hörmann | Introduction to programming methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12701836 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12701836 Country of ref document: EP Kind code of ref document: A1 |