The present invention relates to a processing technique for displaying results of simulation of synchronous control.
In recent years, factory automation (FA) techniques using control devices such as programmable logic controllers (PLCs) have been widespread at various production sites. Such control devices can perform synchronous control of motion axes and robots. For example, a robot arm picks up a first workpiece being transported on a conveyor and assembles the workpiece with a second workpiece gripped by another robot. Such serial synchronous control minimizes the time for interlocking.
To precisely determine the success or failure of fitting of the first workpiece with the second workpiece, a known robot control device includes a workpiece position obtainer that detects the relative positions of the first workpiece and the second workpiece, a force detector that detects a force applied to the first workpiece or the second workpiece in the fitting process, and an actual fitting amount obtainer that obtains a value indicating the actual fitting amount of the first workpiece with respect to the second workpiece (refer to, for example, Patent Literature 1).
Patent Literature 1: Japanese Unexamined Patent Application Publication No. 2018-24049
Although the robot control device described above can synchronize a motion axis with a robot or a robot with another robot, such synchronous control may be preceded by simulation between synchronization targets. However, the known technique cannot facilitate real-time determination of synchronization targets, or a master robot and a slave robot, as well as synchronization timing of these targets during simulation, and cannot facilitate debugging or adjusting the synchronization function as designed.
In response to the above issue, one or more aspects of the present invention are directed to a technique that allows viewing of the state of control targets in synchronization during simulation of synchronous control.
In the aspects of the present invention, a processing device and a processing method allow display of results of simulation of synchronous control performed by a control device that synchronously controls at least two of multiple control targets by executing a program.
More specifically, a processing device is a device for displaying a result of simulation of synchronous control performed by a control device to synchronously control at least two of a plurality of control targets by executing a program. The processing device includes a display that displays the plurality of control targets in accordance with execution of the program in the simulation, an identification unit that identifies, among the plurality of control targets, a synchronization target group including control targets synchronously controlled in the execution of the program in the simulation, and a controller that causes the display to display the synchronization target group identified by the identification unit among the plurality of control targets displayed by the display in a manner distinguishable from control targets other than the synchronization target group.
The above processing device includes the display that allows viewing of the start and end times of synchronization in synchronous control during stepwise implementation of the synchronization function of the control device, and thus allows debugging or adjusting the synchronization function as designed. This structure reduces man-hours to be used for designing and verification.
The control device may further include a first processor that executes a first program in a first execution format in which the first program is fully executed for each execution in every predetermined control cycle to calculate a first command value for controlling one or more first control targets being one or more of the plurality of control targets, and a second processor that executes a second program in a second execution format in which parts of the second program are successively executed to calculate a second command value for controlling one or more second control targets being another control target of the plurality of control targets in every predetermined control cycle in accordance with an intermediate code generated by an interpreter interpreting at least a part of the second program. In this case, the display may display the one or more first control targets controlled by the first processor and the one or more second control targets controlled by the second processor in accordance with execution of the first program and the second program in the simulation. The identification unit may identify, among the one or more first control targets and the one or more second control targets, the synchronization target group synchronously controlled in the execution of the first program and the second program in the simulation. The controller may cause the display to display the synchronization target group identified by the identification unit among the one or more of first control targets and the one or more of second control targets displayed by the display in a manner distinguishable from control targets other than the synchronization target group.
The control device may synchronously control different synchronization target groups with different degrees of synchronization precision by executing the program. In this case, the controller may cause the display to display the different synchronization target groups in different display forms in accordance with types of synchronization precision in the synchronous control. This allows the manner of displaying each synchronization target group to be changed in accordance with the precision of synchronization, thus improving the efficiency of debugging associated with synchronous control performed by the control device.
For the control device to perform the synchronous control with another control device including predetermined processors corresponding to the first processor and the second processor in the control device with a degree of synchronization precision different from a degree of synchronization precision within the control device, the controller may cause the display to display the synchronization target group synchronously controlled by the control device and an inter-device synchronization target group synchronously controlled between the control device and the other control device in different display forms in accordance with a difference between the synchronization precision within the control device and the synchronization precision between the control device and the other control device. This allows the manner of displaying each synchronization target group to be changed between synchronous control performed within the control device and synchronous control performed between the control device and the other control device, thus improving the efficiency of debugging associated with synchronous control performed by the control devices.
The controller may cause the display to further display temporal transitions of predetermined signals associated with the synchronous control for the control targets included in the synchronization target group in accordance with the execution of the first program and the second program, and the temporal transitions of the predetermined signals may be displayed with time axes matching each other. This allows efficient debugging associated with synchronous control through visual and quantitative adjustments of, for example, the motor position and trigger time.
During a predetermined period including a switching time between the synchronous control and asynchronous control of the synchronization target group, the controller may cause the display to display the plurality of control targets at a slower speed than during a period other than the predetermined period. Typically, synchronous control and asynchronous control are switched instantaneously. The switching timing is thus difficult to determine visually. The simulation results are displayed at a lower speed before and after the start or end time of the synchronization to allow the user to easily identify portions to be debugged, and improves efficiency.
One or more aspects of the present invention may be directed to a processing method for displaying a result of simulation of synchronous control performed by a control device. More specifically, the processing method includes causing a display device to display the plurality of control targets in accordance with execution of the program in the simulation, identifying, among the plurality of control targets, a synchronization target group including control targets synchronously controlled in the execution of the program in the simulation, and causing the display device to display the synchronization target group identified among the plurality of control targets displayed by the display device in a manner distinguishable from control targets other than the synchronization target group. The technical ideas described in relation to the above processing device may be applied to the above processing method unless any technical contradiction arises.
The states of control targets in synchronization can be viewed during simulation of synchronous control.
An example use of a processing device according to one or more embodiments of the present invention will now be described with reference to the drawings. The embodiments below are not intended to limit the present invention in claims, and all combinations of the features described in the embodiments may not be essential to the solutions to the invention.
A processing device 10 according to the present embodiment is a simulation device, with its simulation targets being control targets (e.g., a robot 210 and a motor 222 described later) that are controlled by the control device 100. The processing device 10 is directly connected to the control device 100. The processing device 10 obtains information about the control targets and information about synchronous control of the control targets (e.g., programs) from the control device 100 and analyzes the synchronous control to be performed. The analysis results are displayed on a display as simulation results. The processing device 10 will be described in detail later.
The control device 100 in the present embodiment corresponds to an industrial controller that controls control targets being various equipment or devices. The control device 100 is a computer that performs control computations described later. The control device 100 may be connected to various field devices through a field network 2. The field devices include, for example, an actuator that physically acts on, for example, a production device or a production line (hereafter also collectively referred to as a field) and an input and output device that transmits and receives information to and from the field. In the example shown in
The control device 100 transmits or receives data to or from one or more field devices through, for example, the field network 2. The control device 100 performs a process (input process) for collecting data collected or generated by various field devices (hereafter also referred to as input data), a process (calculation process) for generating data such as commands to the field devices (hereafter also referred to as output data), and a process (output process) for transmitting the generated data to target field devices.
The field network 2 may be a bus or a network that allows pre-timed communications for guaranteed data arrival time. For example, EtherCAT (registered trademark) is known as an example of such a bus or a network that allows pre-timed communications. Data communications between the control device 100 and a field device through the field network 2 is updated in very short cycles of the order of several hundred microseconds (μs) to several ten milliseconds (ms). Such update of exchanged data is also referred to as an input-output refresh.
The control device 100 is also connected to another device through a host network 6. The host network 6 may be EtherNet/IP (registered trademark), which is a typical network protocol. More specifically, the control device 100 is also connected to another control device 100A through the host network 6. In the other control device 100A, a robot 210A, a servo driver 220A, and a motor 222A, which are the field devices, are also connected through a field network.
Referring now to
In one or more embodiments of the present disclosure, the IEC program 51 is fully scanned for each execution for calculating one or more command values for each execution. The IEC program 51 typically contains a program including one or more commands described in accordance with the international standard IEC61131-3 defined by the International Electrotechnical Commission (IEC). The IEC program 51 contains commands for sequence control and motion control. The IEC program 51 is in an execution format in which the program is fully executed (scanned) in each control cycle, and is suitable for instantaneous and speedy control. The application program 52 in one or more embodiments of the present disclosure is a control program for performing specific processing or a specific operation with a robot, and contains a program including one or more commands for implementing a control application with the robot. The application program 52 is basically distinguishable from the IEC program 51.
As shown in
The IEC program processor 40 executes (scans) the IEC program 51 in each predetermined control cycle and calculates one or more command values. In one or more embodiments of the present disclosure, the IEC program 51 is executed to control a predetermined device including the motor 222. A motion processor 42 calculates command values in each control cycle in accordance with a motion command contained in the IEC program 51. More specifically, the motion command contained in the IEC program 51 includes a command indicating the behavior over multiple control cycles (for example, a command instructing the predetermined device including the motor 222 to have an output for drawing a certain locus). When the motion command is executed, the motion processor 42 calculates command values in each control cycle in accordance with the instruction in the executed motion command. In other words, the motion processor 42 outputs command values in each control cycle to the predetermined device to implement the behavior instructed by the motion command.
The control application processor 30 calculates command values for controlling the control application based on, for example, the application program 52 and recipe information. In one or more embodiments of the present disclosure, the control application processor 30 executes the application program 52 to control the robot 210. The control application processor 30 calculates and outputs command values for the control application in synchronization with the IEC program processor 40 calculating and outputting the command values. In other words, the control application processor 30 calculates the command values in synchronization with the IEC program processor 40. This synchronous processing between the IEC program processor 40 and the control application processor 30 is not constantly performed and is switched appropriately between the synchronous process and the asynchronous process in accordance with the details of control for the control target. To calculate the command values in synchronization with the IEC program processor 40 calculating the command values, the control application processor 30 includes a motion processor 32, a buffer 33, and an interpreter 34.
The interpreter 34 successively interprets at least a part of the application program 52 and generates an intermediate code. The interpreter 34 includes the buffer 33 to store the generated intermediate code. In one or more embodiments of the present disclosure, the intermediate code contains a command for calculating command values in each control cycle, and may contain one or more commands or one or more functions. The motion processor 32 calculates command values in each control cycle in accordance with intermediate codes pre-generated by the interpreter 34 and stored in the buffer 33.
A shared memory 31 allows data sharing between the IEC program processor 40 and the control application processor 30. In one or more embodiments of the present disclosure, the shared memory 31 stores a part or all of the results of the processing performed by the control application processor 30. The IEC program processor 40 can access data stored in the shared memory 31 in the control application processor 30. The IEC program processor 40 may write data into the shared memory 31 in the control application processor 30. Such data written by the IEC program processor 40 is accessible by the interpreter 34 and the motion processor 32.
The control device 100 can synchronously execute the IEC program 51 and the application program 52. In this case, the interpreter 34 in the control application processor 30 successively executes parts of the application program 52 in each cycle longer than the control cycle, for example, in each cycle twice as long as the control cycle. The motion processor 42 in the IEC program processor 40 and the motion processor 32 in the control application processor 30 calculate command values in each control cycle. Thus, command values are output from the control device 100 in synchronization in the predetermined control cycle. As described above, the IEC program processor 40 and the control application processor 30 each include the motion processor for serially controlling the movement of the actuator. These motion processors calculate command values in synchronization. This allows the control in accordance with the IEC program 51 and the control in accordance with the application program 52 to be performed in synchronization with the control cycle. Thus, precise control in each control cycle can be performed.
Before each predetermined control application synchronization cycle (integral multiple of the control cycle), the interpreter 34 temporarily stops interpretation of the application program 52. At the time of temporary stop, the IEC program processor 40 and the control application processor 30 perform data synchronization with each other to share data consistent for the two processors. The interpreter 34 thus updates data shared with the IEC program processor 40 in each synchronization cycle. In addition to updating shared data, the interpreter 34 may also update (synchronize) input data and output data obtained from the field. This allows the control application processor 30 to control the robot 210 using data obtained by the IEC program processor 40. The control application synchronization cycle may have any length corresponding to an integral multiple of the control cycle. The control application synchronization cycle is appropriately set in accordance with, for example, the precision of control intended in the control application.
The control device 100 uses the IEC program 51 and the application program 52 to achieve synchronous control of multiple control targets. The other control device 100A has the same functional components as the control device 100. The synchronous control of each field device can also be performed. In the control devices 100 and 100A, the IEC program 51 or the application program 52 can be selected appropriately based on, for example, the details of control of the control target. In synchronous control, the movements of the control targets for the synchronous control are to be synchronized as expected to obtain intended results. For example, any incorrect setting of the start time of synchronous control, the end time of synchronous control, or a group of control targets for synchronous control (synchronization target group) disables an intended result of the synchronous control from being obtained. The processing device 10 thus performs simulation in advance to determine whether the details of synchronous control for the control targets defined in each program are appropriate. The processing device 10 will now be described. More specifically, display control in synchronous simulation performed by the processing device 10 will be described.
As shown in
The display 310 is typically a display device such as a liquid crystal display, or another display unit, such as a display using a projector. The display 310 can analyze the programs in the control device 100 and visualizes the control operations of, for example, the robot 210 and the motor 222 that are control targets. In the present embodiment, the programs are the IEC program 51 and the application program 52 described above. The display 310 can directly obtain the programs in the control device 100 with the communication unit 70 in the control device 100. The display 310 then analyzes the obtained programs and obtains the details of synchronous control for the field devices including the robot 210, the servo driver 220, and the motor 222 that are the control targets, and determines the movements of the control targets in accordance with the control details. The movements of the control targets are displayed in accordance with execution of the programs on a display device such as a display. The user can view the movements of the control targets using the IEC program 51 and the application program 52. Instead of the display 310 directly obtaining the programs from the control device 100, information about the synchronous control of the control targets may be provided by a user operation. In this case, the processing device 10 may not be connected to the control device 100 with the communication unit 70.
For synchronous control performed by the control device 100, as described above, the times for the synchronous control for the control targets and the control targets (synchronization target group) to be synchronously controlled are set appropriately to obtain intended control results. The identification unit 320 then identifies a synchronization target group under synchronous control in the execution of the IEC program 51 and the application program 52 in the simulation, among the control targets including the robot 210, a robot 211, and the motor 222. The synchronization target group includes multiple control targets under synchronous control while the IEC program 51 and the application program 52 are being executed, among the control targets including the above field devices.
The identification unit 320 identifies the synchronization target group under synchronous control within the same control device 100. When the control device 100 can perform synchronous control with another control device (e.g., another control device 100A) including predetermined processors corresponding to the IEC program processor 40 and the control application processor 30 in the control device 100, the identification unit 320 can also identify the synchronization target group under synchronous control between the control device 100 and the other control device 100A.
The controller 330 causes the display 310 to display the synchronization target group identified by the identification unit 320 in a manner distinguishable from other control targets displayed by the display 310. For example, the controller 330 may cause the display 310 to display the synchronization target group identified by the identification unit 320 with a color different from the color for displaying control targets other than the synchronization target group to allow the positions and the states of the synchronization target group identified by the identification unit 320 to be readily distinguishable. However, the manner of display is not limited to this example. The display may be in any manner (e.g., with a dotted frame) to distinguish the synchronization target group from the control targets other than the synchronization target group. The controller 330 controlling the manner of display used by the display 310 as described above allows the user to easily obtain the states about the synchronous control (e.g., the switching time between the synchronous control and the asynchronous control, and the control targets to be controlled synchronously), and to easily determine whether the details of control are as intended.
In a first embodiment described below with reference to
Referring now to
The display performed in a distinguishable manner in step S304 may be any of various manners. For example, each synchronization target group may be highlighted with a different color, or may be displayed with visual motion such as blinking.
In a second embodiment described below, the processing device 10 performs display in a highlighted manner in synchronous simulation. More specifically, the synchronous control described below is performed when the assembled workpieces shown in
In this case as well, the processing method shown in
In the embodiment, more specifically, the controller 330 causes the display 310 to display multiple synchronization target groups in different display forms (e.g., display with different colors) in accordance with the types of synchronization precision in the synchronous control. As a result, the state of the synchronous control for gripping the workpieces, assembling the workpieces, and delivering the workpieces with the synchronization functions of control devices 100 and 100A can be visualized together with the movement of each control target. This allows the user to, for example, easily debug and adjust the synchronization function in real time.
The above example focuses on the precision of the synchronous control between the control device 100 and the other control device 100A and the precision of the synchronous control within the control device 100. For the synchronous control with different degrees of precision performed within one control device 100, the above processing associated with the display in a distinguishable manner can also be used.
A start time t1 and an end time t2 of the synchronization function can also be displayed as shown in
Number | Date | Country | Kind |
---|---|---|---|
2020-024608 | Feb 2020 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2020/046905 | 12/16/2020 | WO |