WO2013113320A1 - System for modifying a plc program - Google Patents

System for modifying a plc program Download PDF

Info

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
Application number
PCT/EP2012/000407
Other languages
French (fr)
Inventor
Fan Dai
Oliver Becker
Peter Weber
Original Assignee
Abb Technology Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Abb Technology Ag filed Critical Abb Technology Ag
Priority to PCT/EP2012/000407 priority Critical patent/WO2013113320A1/en
Publication of WO2013113320A1 publication Critical patent/WO2013113320A1/en

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13153Modification, 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

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.
PCT/EP2012/000407 2012-01-31 2012-01-31 System for modifying a plc program WO2013113320A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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