WO2011114825A1 - コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体 - Google Patents

コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体 Download PDF

Info

Publication number
WO2011114825A1
WO2011114825A1 PCT/JP2011/053032 JP2011053032W WO2011114825A1 WO 2011114825 A1 WO2011114825 A1 WO 2011114825A1 JP 2011053032 W JP2011053032 W JP 2011053032W WO 2011114825 A1 WO2011114825 A1 WO 2011114825A1
Authority
WO
WIPO (PCT)
Prior art keywords
control
simulation
execution
control cycle
data
Prior art date
Application number
PCT/JP2011/053032
Other languages
English (en)
French (fr)
Inventor
泰規 阪口
健一郎 森
Original Assignee
オムロン株式会社
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 オムロン株式会社 filed Critical オムロン株式会社
Priority to EP11756015.1A priority Critical patent/EP2549344B1/en
Priority to US13/634,907 priority patent/US9607112B2/en
Priority to CN201180014340.4A priority patent/CN102804087B/zh
Publication of WO2011114825A1 publication Critical patent/WO2011114825A1/ja

Links

Images

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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32352Modular modeling, decompose large system in smaller systems to simulate
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the present invention relates to a controller support device capable of executing a simulation of a control program including a sequence control portion and a motion control portion, which is executed at each control cycle in a controller that controls machine motion, a control program simulation method, and a controller
  • the present invention relates to a computer-readable storage medium storing a support program and a controller support program.
  • Patent Document 1 describes a PLC simulator device that simulates instruction execution of a PLC (Programmable Logic Controller) program.
  • the PLC program here is specifically a sequence program described in the language of a ladder diagram or an instruction list.
  • This PLC simulator device can execute a PLC program for each instruction and display an execution result. This facilitates debugging of the PLC program.
  • the operation check of the sequence program is basically to check that the expected output can be obtained for each command under a predetermined input condition.
  • a control program that includes a motion control that controls a motor operation by giving a command value to a motor driver that drives a servo motor, a stepping motor, etc. at each control cycle
  • the command value provided to the motor driver is assumed at the time of design. It is necessary to track the operation of the program over a very large number of control cycles in order to check whether it is calculated correctly.
  • the motion control part of the program cannot be confirmed by giving a predetermined input condition and executing only the control cycle. Therefore, it is necessary to create a new operation confirmation method suitable for a control program including a motion control part.
  • control program changes the content of motion control according to the input from the sensor or the input from the manual switch, the input content and input timing are changed each time the simulation is re-executed. It is also inconvenient that it must be accurately reproduced.
  • the present invention relates to a controller support device that enables re-execution from a control cycle in the middle from the start to the end of execution when executing a simulation of a control program including motion control.
  • An object of the present invention is to provide a computer-readable storage medium storing a support program and a controller support program.
  • a controller support device is a controller support device capable of executing a simulation of a control program including a sequence control portion and a motion control portion, which is executed at each control cycle in a controller that controls the movement of a machine.
  • Simulation means for executing a control program and generating execution result data display data generating means for generating display data for displaying temporal changes in the execution result data generated by the simulation means, and simulation means Receiving means for receiving an instruction from the user, and a display capable of displaying the display data created by the display data creating means.
  • the simulation means executes a simulation of the sequence control portion of the control program and generates execution result data relating to the sequence control portion, a sequence variable storage portion used for the sequence calculation execution portion to execute a simulation, a control Simulation execution of the motion control part of the program and generation of execution result data related to the motion control part, motion variable storage part used for simulation execution by the motion calculation execution part, and the number of executions of the control cycle Control cycle counting unit for counting, execution frequency data corresponding to resumable control cycle, which is a control cycle capable of starting simulation re-execution, and stored in sequence variable storage unit and motion variable storage unit And among the data it has and a resumption data storage unit for storing the resume data including a variable data used to start the re-execution of the simulation from the resumable control period.
  • the simulation means specifies the resumable control cycle and stores the resuming data corresponding to the resumable control cycle in the resuming data storage unit.
  • the simulation means obtains a specification for specifying a control cycle for starting re-execution from the accepting means, specifies a control cycle for starting re-execution using the specification, and stores a resume corresponding to the specified control cycle The simulation is re-executed from the control cycle specified using the data.
  • an editing means that can edit the control program is further provided.
  • the editing means can accept a user operation to correct a control program that has been simulated by the simulation means.
  • the simulation means is capable of accepting a user operation for starting re-execution of the simulation using the resumption data saved before the control program is corrected for the control program corrected by the editing means.
  • the editing means modifies the motion control part of the control program by the user's operation.
  • the simulation means obtains information identifying the modified motion control part from the editing means, and identifies a control period that can be re-executed from the most recently modified motion control part from among the resumable control periods.
  • the simulation re-execution is started from the control cycle.
  • the editing means displays the contents of the control program on the display as a list.
  • the accepting unit accepts designation of a motion control part to start re-execution on the list display.
  • the simulation means specifies a control cycle that can be re-executed from the designated motion control portion from among the resumable control cycles, and starts re-execution of the simulation from the control cycle.
  • the motion control portion of the control program is in an active state in which a command value is calculated or an inactive state that is not an active state in each control cycle.
  • the simulation means specifies a resumable control cycle based on a control cycle in which the motion control part is changed from the inactive state to the active state.
  • the motion control portion of the control program is in any state of an execution state in which the motion control portion is being executed and a non-execution state that is not being executed in each control cycle.
  • the simulation means specifies a resumable control cycle based on a control cycle in which the motion control portion changes from the non-execution state to the execution state.
  • the simulation unit specifies a control cycle at regular intervals as a resumable control cycle.
  • the display data creation means creates display data for displaying a temporal change in the execution result data as a graph.
  • the accepting means accepts a user instruction regarding a position on the graph displayed on the display.
  • the simulation unit specifies a control cycle corresponding to the position on the graph instructed by the user from the resumable control cycle, and starts re-execution of the simulation from the control cycle.
  • the display data creation means creates display data for displaying a temporal change in the execution result data for the position generated by the simulation means as a trajectory in a two-dimensional space or a three-dimensional space.
  • the accepting unit accepts a user instruction regarding a position on the trajectory.
  • the simulation unit specifies a control cycle corresponding to the position on the locus instructed by the user from the resumable control cycle, and starts re-execution of the simulation from the control cycle.
  • the display data creating means creates display data for displaying a temporal change in the execution result data as a list of positions.
  • the accepting means accepts a user instruction regarding a position on the list of positions displayed on the display.
  • the simulation unit specifies a control cycle corresponding to a position on the list of positions designated by the user from the resumable control cycle, and starts re-execution of the simulation from the control cycle.
  • a simulation method for a control program provides a control program including a sequence control portion and a motion control portion, which is executed at each control cycle in a controller that controls the movement of a machine, in a controller support device having a display.
  • a simulation method of a control program for performing a simulation wherein a simulation calculation step for executing a control program by simulation according to a user instruction and generating execution result data, and a temporal change in the execution result data generated by the simulation calculation step
  • a display data creation step for creating display data for displaying the display data, and a display step for displaying the display data created in the display data creation step on the display.
  • the simulation calculation step executes a simulation of the sequence control part of the control program, generates a result of execution related to the sequence control part, executes a simulation of the motion control part of the control program, and executes result data of the motion control part.
  • a controller support program simulates a control program including a sequence control portion and a motion control portion, which is executed at each control cycle in a controller that controls machine movement, in a controller support device having a display.
  • This is a controller support program for execution.
  • the control program simulates execution of the control program according to a user instruction to the controller support device, and generates a simulation result step for generating execution result data, and displays temporal changes in the execution result data generated by the simulation calculation step.
  • the simulation calculation step performs a sequence calculation execution step for executing the simulation of the sequence control portion of the control program and generating execution result data relating to the sequence control portion, and executing a simulation for the motion control portion of the control program and generating execution result data relating to the motion control portion.
  • a motion calculation execution step a control cycle counting step for counting the number of executions of the control cycle, a step for specifying a resumable control cycle that is a control cycle capable of starting re-execution of the simulation, and a resumable control cycle. Re-execute the simulation from the resumable control cycle of the corresponding execution count data, sequence variable data related to the execution of the sequence control part, and motion variable data related to the execution of the motion control part.
  • Resuming data storage step for saving resuming data including variable data used to start the operation, and accepting a specification by the user for specifying a control cycle for starting re-execution, and re-execution using the designation
  • a recording medium storing a controller support program has a display of a control program including a sequence control portion and a motion control portion, which is executed for each control period in a controller that controls the movement of a machine.
  • a computer-readable storage medium storing a controller support program for executing a simulation in a controller support apparatus.
  • the control program displays, on the controller support device, a simulation calculation step for executing a simulation of the control program according to a user instruction and generating execution result data, and a temporal change in the execution result data generated by the simulation calculation step.
  • the simulation calculation step performs a sequence calculation execution step for executing the simulation of the sequence control portion of the control program and generating execution result data relating to the sequence control portion, and executing a simulation for the motion control portion of the control program and generating execution result data relating to the motion control portion.
  • a motion calculation execution step a control cycle counting step for counting the number of executions of the control cycle, a step for specifying a resumable control cycle that is a control cycle capable of starting re-execution of the simulation, and a resumable control cycle. Re-execute the simulation from the resumable control cycle of the corresponding execution count data, sequence variable data related to the execution of the sequence control part, and motion variable data related to the execution of the motion control part.
  • Resuming data storage step for saving resuming data including variable data used to start the operation, and accepting a specification by the user for specifying a control cycle for starting re-execution, and re-execution using the designation
  • the present invention when executing a simulation of a control program including motion control, it is possible to re-execute from a control cycle in the middle from the start to the end of execution, so that it is easy to check the operation of the program. .
  • FIG. It is a figure explaining the structure of the control system according to embodiment of this invention. It is a figure explaining the hardware constitutions of PC6 according to embodiment of this invention. It is a figure explaining the functional block implement
  • FIG. It is a detailed block diagram explaining the function of the simulation part 806 according to embodiment of this invention. It is a flowchart explaining the debug operation
  • FIG. 1 is a diagram illustrating a configuration of a control system according to the embodiment of the present invention.
  • the control system according to the embodiment of the present invention includes a server 2, a network 4, a PC (personal computer) 6, a controller 14, and a control target device 16.
  • PC personal computer
  • the server 2 is connected to the PC 6 via the network 4.
  • the PC 6 is communicably connected to a controller 14 that controls the control target device 16.
  • the PC 6 corresponds to the controller support device in one embodiment of the present invention.
  • a controller support program 8 is installed in the PC 6, and a control program 10 created by the user is stored.
  • a CD-ROM (Compact Disc-Read Only Memory) 12 stores a controller support program 8.
  • the controller support program 8 installed on the PC 6 is installed from the CD-ROM 12.
  • the controller 14 controls the movement of the control target device 16.
  • a PLC Programmable Logic Controller
  • the controller 14 stores a control program 15 that defines the control contents for the control target device 16.
  • the controller 14 executes the control program 15 once for each control cycle.
  • the control program 15 stored in the controller 14 is copy data obtained by copying the control program 10 stored in the PC 6, and is transmitted from the PC 6.
  • the control target device 16 includes a motor 18 such as a servo motor or a stepping motor, and a motor driver 17 that drives the motor.
  • a motor 18 such as a servo motor or a stepping motor
  • a motor driver 17 that drives the motor.
  • the motor 18 is supplied with drive current from the motor driver 17.
  • the motor driver 17 is given a position command value for each control cycle from the controller 14 that executes the control program 15, and supplies a drive current corresponding to the command value to the motor 18.
  • the motor 18 is a servo motor
  • the motor 18 is provided with an encoder, and an actual measurement value of the rotational position of the motor 18 is detected by the encoder. The measured value of the rotational position of the motor is used by the motor driver 17 for feedback control.
  • controller support program is installed in the PC 6 via the CD-ROM 12
  • the present invention is not limited to this, and the controller support program may be downloaded from the server 2 to the PC 6 via the network 4.
  • the control program may be downloaded from the server 2 to the PC 6 via the network 4.
  • FIG. 2 is a diagram illustrating a hardware configuration of PC 6 according to the embodiment of the present invention.
  • PC 6 according to the embodiment of the present invention communicates with CPU 901 as processing means, ROM 902, RAM 903 and HDD 904 as storage means, and CD-ROM drive device 908 as a data reading unit.
  • a communication IF 909 as a means, a monitor 907 as a display means, and a keyboard 905 and a mouse 906 as input means are included. These parts are connected to each other via an internal bus 910.
  • the HDD 904 is typically a nonvolatile magnetic memory, and stores a controller support program read from the CD-ROM 12 by the CD-ROM driving device 908. A control program 15 is also stored.
  • the CPU 901 expands the controller support program 8 according to the present embodiment stored in the HDD 904 in the RAM 903 and executes it.
  • the RAM 903 is a volatile memory and is used as a work memory.
  • the ROM 902 generally stores programs such as an operating system (OS).
  • OS operating system
  • the communication IF 909 typically supports general-purpose communication protocols such as Ethernet (registered trademark) and USB (Universal Serial Bus), and provides data communication with the server 2 via the network 4 and the controller 14. Provide data communication to and from.
  • general-purpose communication protocols such as Ethernet (registered trademark) and USB (Universal Serial Bus)
  • the monitor 907 is composed of a liquid crystal display device, a CRT (Cathode Ray Tube), a plasma display device, and the like, and displays a processing result by the PC 6.
  • the keyboard 905 accepts key input by the user, and the mouse 906 accepts pointing operation by the user.
  • FIG. 3 is a diagram for explaining functional blocks realized by the CPU 901 executing the controller support program 8.
  • a user interface unit 802 a display data creation unit 804, a simulation unit 806, a control program storage unit 808, a control program editing unit 810, and a controller interface unit 812 are shown. ing.
  • the user interface unit 802 is a part that creates the contents of the window screen to be displayed on the monitor 907 of the PC 6 and accepts user operations with the keyboard 905 and the mouse 906.
  • the control program editing unit 810 allows the user to input and edit the control program. If it is necessary to compile to execute the control program, it is also compiled.
  • the created control program is sent to the controller 14 via the controller interface unit 812.
  • the created control program is stored in a control program storage unit 808 that is a predetermined area of the HDD 904. Further, the control program editing unit 810 can read and edit the control program 15 stored in the controller 14 via the controller interface unit 812.
  • the simulation unit 806 is a simulator of the controller 14.
  • the simulation unit 806 simulates the operation of the controller 14 executing the control program 15 according to the control program 10 stored in the control program storage unit 808, and calculates the command value of the position that the controller 14 should output every control cycle. To do.
  • the simulation unit 806 simulates a state in which an external signal arrives and affects the operation of the control program, or the execution of the control program 15 itself causes the internal contents of the controller 14 to be stored in the memory of the controller 14. It is possible to simulate a state in which the state changes and the change affects the operation of the control program 15.
  • the simulation unit 806 accepts a user instruction regarding simulation execution via the user interface unit 802. That is, the user interface unit 802 also functions as a means for receiving a user instruction to the simulation unit 806.
  • the display data creation unit 804 creates display data for displaying temporal changes in the execution result data created by the simulation unit 806.
  • the display data creation unit 804 displays the display data on the monitor 907 of the PC 6 in the form of a graph or characters by sending the created display data to the user interface unit 802.
  • FIG. 4 is a detailed block diagram illustrating functions of simulation unit 806 according to the embodiment of the present invention.
  • simulation unit 806 includes a simulation control unit 820, a debug support unit 822, a control cycle counting unit 824, a restart data storage unit 826, and a restart data buffer. 828, an execution result data storage unit 830, a sequence control simulation unit 840, and a motion control simulation unit 850.
  • the restart data storage unit 826, the restart data buffer 828, and the execution result data storage unit 830 use predetermined areas of the RAM 903 or the HDD 904, respectively.
  • the simulation control unit 820 reads the control program 10 from the control program storage unit 808, executes the control program 10 again, and re-executes the control program 10 along the way.
  • the data flow among the unit 824, the restart data buffer 828, the restart data storage unit 826 and the execution result data storage unit 830 is controlled. A specific data flow will be described later.
  • the sequence control simulation unit 840 executes the sequence control part of the control program 10.
  • the motion control simulation unit 850 executes the motion control part of the control program 10.
  • the motion control part of the control program 10 is a part for calculating a command value to be given to the motor driver 17 for each control cycle.
  • the motion control portion is described in the form of a motion function block used in a ladder chart, for example.
  • the motion function block may be simply referred to as FB.
  • the sequence control portion of the control program 10 refers to a portion other than the motion control portion of the control program 10.
  • the sequence control part includes a numerical sequence instruction or a numerical function block in addition to the relay sequence part of the ladder chart.
  • Sequence control simulation unit 840 includes a sequence calculation execution unit 844, a sequence variable storage unit 846, and a sequence calculation control unit 842.
  • the sequence calculation control unit 842 controls execution of the sequence control part.
  • the sequence calculation execution unit 844 executes simulation execution of the sequence control portion of the control program in accordance with an instruction from the sequence calculation control unit 842, and generates execution result data regarding the sequence control portion.
  • the sequence variable storage unit 846 stores sequence variables related to the execution of the sequence control part in accordance with instructions from the sequence calculation control unit 842. Note that the sequence variable storage unit 846 uses a predetermined area of the RAM 903 or the HDD 904.
  • the motion control simulation unit 850 includes a motion calculation execution unit 854, a motion variable storage unit 856, and a motion calculation control unit 852.
  • the motion calculation control unit 852 controls execution of the motion control part.
  • the motion calculation execution unit 854 executes a simulation of the motion control portion of the control program in accordance with an instruction from the motion calculation control unit 852, and generates execution result data related to the motion control portion.
  • the motion variable storage unit 856 stores motion variables related to the execution of the motion control part in accordance with instructions from the motion calculation control unit 852. Note that the motion variable storage unit 856 uses a predetermined area of the RAM 903 or the HDD 904.
  • the control cycle counting unit 824 counts the number of executions of the control cycle.
  • the resumption data buffer 828 temporarily saves the type of data saved in the resumption data storage unit 826 every control cycle.
  • the resumption data storage unit 826 stores resumption data necessary for starting re-execution from the middle of the simulation after the simulation is executed at least once.
  • the data to be stored is data temporarily stored in the resumption data buffer 828.
  • the restart data includes the following three types of data.
  • the first is data on the number of executions of the control cycle corresponding to the resumable control cycle that can start re-execution of the simulation.
  • the second is sequence variable data used to start re-execution of the simulation from the resumable control cycle among the data stored in the sequence variable storage unit 846.
  • 3rd is motion variable data used to start re-execution of simulation from the resumable control cycle among the data stored in the motion variable storage unit 856.
  • the execution result data storage unit 830 stores execution result data used for display.
  • the debug support unit 822 uses functions for debugging, such as setting a breakpoint where the simulation is paused in the middle of the control program, and setting step execution for pausing each time the control program is executed one step. I will provide a.
  • the debug support unit 822 receives a user instruction regarding execution of simulation, re-execution from the middle, and other debugging functions via the user interface unit 802, and causes the simulation control unit 820 to perform an operation based on the user instruction.
  • the simulation unit 806 obtains a specification for specifying a control cycle for starting re-execution via the user interface unit 802 by cooperation of the respective units constituting the simulation unit 806, and re-uses this specification.
  • a control cycle for starting execution is specified, and re-execution of the simulation is started from the specified control cycle by using data for restart corresponding to the specified control cycle.
  • FIG. 5 is a flowchart illustrating debugging of the control program according to the embodiment of the present invention.
  • step S0 a control program is created (step S0). Then, the control program is simulated (step S2). Next, it is determined whether the expected result has been acquired (step S4). If it is determined in step S4 that the expected result has been obtained, the process proceeds to step S6, the operation is confirmed by the controller 14 which is an actual machine, and the control program is corrected in the PC 6 according to the controller support program 8 as necessary. . Then, the process ends.
  • step S4 determines whether the expected result cannot be obtained (NO in step S4). If it is determined in step S4 that the expected result cannot be obtained (NO in step S4), the control program is modified (step S8). Then, the process returns to step S2 again, and simulation is executed based on the corrected control program. Since the subsequent processing is the same as described above, detailed description thereof will not be repeated. Note that the control program for which the expected result is acquired is stored in the control program storage unit 808.
  • FIG. 6 is a flowchart illustrating execution of controller support program 8 according to the embodiment of the present invention.
  • a control program 10 is prepared (step S10).
  • steps S10 There are various methods for preparing the control program 10. For example, as described with reference to FIG. 5, it is possible to use a control program created by a new input and stored in the control program storage unit 808. Alternatively, the control program can be read from the server 2 via the storage medium (CD-ROM 12) or the network 4. Or you may make it read from the controller 14 which is an actual machine.
  • the simulation unit 806 executes the simulation of the control program 10 according to a user instruction, and generates execution result data (step S14).
  • the display data creation unit 804 creates display data for displaying temporal changes in the execution result data (step S16).
  • the user interface unit 802 displays the display data on the monitor 907 (step S18).
  • control program editing unit 810 determines whether there is an instruction to start correction (step S20). Specifically, the control program editing unit 810 determines whether there is an instruction to start correction from the user via the user interface unit 802.
  • step S20 when the control program editing unit 810 determines that there is an instruction to start correction from the user via the user interface unit 802 (YES in step S20), the control program editing unit 810 corrects the control program according to the user's instruction ( Step S22). Then, the process returns to step S12 again, and the control program is simulated by a user instruction (step S12). The subsequent processing is the same.
  • control program editing unit 810 determines in step S20 that there has been no instruction to start correction (NO in step S20), the control program editing unit 810 transmits the control program to the actual controller 14 in accordance with the user instruction (step S24). ). Then, the process ends.
  • FIG. 7 is a flowchart illustrating simulation execution in simulation unit 806 according to the embodiment of the present invention.
  • the simulation control unit 820 executes an initialization process or a restart initial process (step S30).
  • the “initialization process” means a process of initializing the value of a variable when the control program is executed from the first control cycle.
  • “Restart initial processing” refers to preparation for starting re-execution of a simulation by reading resumption data from the resumption data storage unit 826 when the control program is re-executed from an intermediate control cycle. Means processing to be performed.
  • the simulation control unit 820 executes a simulation of the I / O refresh process (step S32).
  • the “I / O refresh process” includes an output process and an input process.
  • the output process is a process for outputting execution result data in the previous cycle.
  • the output process includes a process of outputting output variable data that is an execution result of the sequence control part of the control program, and a process of outputting a command value that is an execution result of the motion control part of the control program.
  • the output variable data is sent to the control target device 16 via the I / O unit and used for driving the actuator.
  • the command value is sent to the motor driver 17 and used for controlling the motor 18 of the control target device 16.
  • execution result data is not actually sent to the control target device 16, and a part of the execution result data is stored in the execution result data storage unit 830.
  • the input process is a process of taking in input variable data used by the sequence control part, position data used by the motion control part, and the like.
  • the input variable data is manually given by the user or a debugging program that imitates the operation of the control target device.
  • the position data the command value of the position in the previous cycle can be adopted as it is.
  • sequence control simulation unit 840 executes a simulation of the sequence control portion of the control program for one period, and generates an execution result related to the sequence control portion (step S36).
  • the motion control simulation unit 850 executes the simulation of the motion control part for one cycle, and generates an execution result related to the motion control part (step S38).
  • the simulation controller 820 increments and updates the control cycle number (step S40).
  • the simulation control unit 820 determines whether the control cycle being executed is a resumable control cycle (step S42). In other words, if the control cycle being executed matches the resumable control cycle conditions such as “FB Active ON”, “FB Busy ON”, and “Fixed Interval” which will be described later
  • the inside control cycle is determined to be a resumable control cycle.
  • a resumable control cycle is specified from a series of control cycles.
  • the resumable control cycle condition is “fixed interval”
  • the resumable control cycle can be specified by preparing a list of control cycles that are resumable control cycles in advance. In this case, it is possible to determine whether or not the control cycle being executed is a resumable control cycle by checking the list.
  • step S42 If the simulation control unit 820 determines that the control period is a resumable control period in step S42 (YES in step S42), the contents of the resumption data buffer 828 updated in the previous control period are stored in the resumption data storage unit. It is stored in 826 (step S44).
  • step S46 the simulation control unit 820 determines in step S42 that the control period is not resumable (NO in step S42), based on the execution results generated in the sequence control simulation unit 840 and the motion control simulation unit 850.
  • the contents of the restart data buffer 828 are updated (step S46).
  • the simulation control unit 820 determines whether or not the simulation execution is completed (step S48).
  • step S48 the simulation control unit 820 ends the process when determining that the execution of the simulation has ended.
  • step S48 determines in step S48 that the simulation execution has not ended (NO in step S48)
  • the process returns to step S32, and the I in step S32 is performed according to the next control cycle number that has been incremented. / O Refresh simulation is executed. The above processing is repeated until the simulation execution is completed.
  • control program editing unit 810 is capable of accepting a user's operation for correcting a control program that has been simulated in simulation unit 806. ing.
  • the simulation unit 806 re-executes the simulation for the control program modified by the control program editing unit 810 using the resumption data stored before the control program is modified.
  • the user's operation to start can be accepted.
  • FIG. 8 is a diagram illustrating a case where the processes within the control cycle are arranged in time series.
  • I / O refresh processing when it is not the resumable control cycle, I / O refresh processing, sequence control portion execution, motion control portion execution, and control cycle number update processing are executed. Thereafter, the restart data buffer is overwritten and updated (update data buffer for restart) with the updated control cycle number and the execution result data generated in the control cycle.
  • the I / O refresh processing, the sequence control portion execution, the motion control portion execution, and the control cycle number update processing are executed.
  • the control cycle number updated in the previous control cycle stored in the restart data buffer 828 and the execution result data generated in the previous control cycle are stored in the restart data storage unit 826 (restore data for restart).
  • the resumption data buffer 828 is overwritten and updated (resumption data buffer update) with the control cycle number updated in the control cycle and the execution result data generated in the control cycle.
  • control cycle number update process the restart data buffer update process, and the restart data storage process are simulation-specific processes that are not executed by the controller 14 that is a real machine.
  • the time that each control cycle occupies is constant in the controller 14 that is an actual machine, but the control cycle is set to a constant time by starting with a timer interrupt in simulation execution.
  • the time after completing the necessary processing within the control cycle is the idling time. In this way, the accuracy of predicting the execution time in the controller 14 which is an actual machine is increased from the time required for simulation execution. If this is not necessary, the processing of the next control cycle may be started immediately after completing the necessary processing within the control cycle.
  • FIG. 9 is a diagram illustrating a data flow in simulation unit 806 regarding the control cycle in which the command value according to the embodiment of the present invention is calculated.
  • control cycle counting section 824 counts the current “control cycle number”.
  • the “control cycle number” is the total number of executions of the control cycle from the start of execution of the control program.
  • the sequence variable storage unit 846 stores sequence variables.
  • the “sequence variable” is data related to the execution of the sequence control portion of the control program. Includes both data read for execution of the sequence control portion and data written as a result of execution. Specifically, the current “I / O data” and “internal variable data” are stored.
  • I / O data is variable data related to the execution of the sequence control portion, and is the data to be subjected to the I / O refresh process. That is, input variable data and output variable data.
  • Internal variable data is variable data related to the execution of the sequence control part, but is limited to use within the program and is not subject to I / O refresh processing.
  • the motion variable storage unit 856 stores motion variables.
  • “Motion variable” is data related to the execution of the motion control portion of the control program. Includes both data read for execution of the motion control portion and data written as a result of execution. Specifically, the current “FB setting parameter”, “command value”, “axis position”, “Active FB ID”, and “Busy FB ID” are stored as motion variables. To do.
  • the motion control part is described as a motion function block (FB).
  • the “FB setting parameter” is a parameter that specifies how the FB operates.
  • the FB setting parameter may be a constant value given in the programming stage and a variable value whose value is determined by execution of the program.
  • the FB setting parameter may include a secondary parameter calculated in the FB using the input value of the FB.
  • the acceleration time is calculated from the speed and acceleration, which are input values of the FB, and is referred to in a plurality of control cycles during acceleration. The acceleration time is calculated in the control cycle in which the execution of the FB is started, and the motion variable is stored. If stored in the unit, it is not necessary to perform the same calculation every control cycle.
  • the motion calculation execution unit 854 is configured to be able to access the sequence variable storage unit 846
  • “Command value” is data output by the motion control part for each control cycle.
  • at least the position command value is included.
  • the “axis position” is the rotational position of the motor 18 or the position of a specific part of the control target device driven by the motor 18.
  • the actual position of the shaft of the device to be controlled is measured by a rotary encoder or the like.
  • a virtual axis is prepared in the motion variable storage unit 856, the command value is written in the virtual axis storage area, the stored content is used as the axis position, and the value is updated with the new command value. To go.
  • the position of the shaft is a command value for the position calculated in the previous control cycle.
  • the position of the axis is not updated and the same value is maintained.
  • the command value is not used as it is, but a predicted position calculated from the command value history in consideration of physical characteristics such as moment, mass, friction and the like of the movable part of the control target device may be used. .
  • Active is the state of the FB calculating the command value for each control cycle. Also called active state.
  • Busy is a state where the FB is being executed.
  • the FB in the Busy state may be active or not active.
  • FB is given Execute ON input, it becomes Busy.
  • a state that is Busy but not Active appears in the FB other than the connected head. .
  • FB ID is information for individually identifying the FB used in one control program. For example, it is the name of the FB given at the time of programming.
  • the simulation control unit 820 When the control cycle is started, the simulation control unit 820 causes the sequence control simulation unit 840 and the motion control simulation unit 850 to perform simulation for one cycle.
  • the control cycle counting unit 824 increments and updates the “current control cycle number”. Then, as described above, the simulation control unit 820 determines whether or not it is a resumable control cycle, and when it is determined that it is not a resumable control cycle, the “current control cycle number” is obtained from the control cycle counting unit 824.
  • the simulation control unit 820 determines that it is a resumable control cycle
  • the contents of the resuming data buffer 828 are added to the resuming data storage unit 826 and then it is determined that it is not a resumable control cycle. As in the case, the resumption data buffer 828 is overwritten.
  • the control cycle number stored in the restart data storage unit 826 is the control cycle number of the cycle immediately before the resumable control cycle that can start re-execution.
  • the control cycle number itself of the resumable control cycle may be stored as the restart data.
  • the control cycle number included in the restart data indicates that the control cycle next to the control cycle in which the restart data other than the control cycle number is generated is displayed.
  • a preparation process for starting re-execution is performed.
  • control cycle numbers other than those described above are stored. You can also That is, what is saved is a control cycle number that can be associated with a resumable control cycle.
  • the resuming data used to start re-execution from the resumable control cycle is read from the resuming data buffer and appended. This is not the same meaning as storing the data for resumption generated in the resumable control cycle. In the case of FIG. 8, resumption data generated in the control cycle immediately before the resumable control cycle is stored. If the restart data buffer 828 is configured as a ring buffer for a plurality of cycles, the restart data generated in the control cycle several cycles before can be stored in the restart data storage unit 826.
  • re-execution is started from the control cycle specified by the user's specification by performing preparatory execution for several cycles from the control cycle next to the control cycle in which the data for resumption is generated It becomes a state that can be done.
  • both the command value and the axis position are stored in the restart data storage unit 826, if the axis position is the command value of the previous cycle, the speed is calculated from the difference between the command value and the axis position. Can be sought.
  • the position of the axis updated in the previous cycle of the control cycle in which the restart data was generated is stored in the restart data storage unit 826.
  • the position of the axis is calculated as a predicted position in consideration of physical characteristics of the control target device, a predicted speed corresponding to the calculated position can be obtained.
  • the speed value calculated in advance may be stored in the restart data storage unit 826.
  • the restart data for all control cycles may be stored in the restart data storage unit 826. Then, re-execution of the simulation can be started from any control cycle.
  • the simulation control unit 820 performs the control cycle as shown in (1), (2), and (3) in FIG. 9 at the simulation execution timing (step S32) of the I / O refresh process of FIG. 7 in each control cycle.
  • “Current control cycle number” is stored from the counting unit 824
  • “Current I / O data” is stored from the sequence variable storage unit 846
  • “Current command value” and “Current position of axis” are stored from the motion variable storage unit 856 as execution result data
  • an “execution flag during movement of axis” is generated and added to the execution result data storage section 830.
  • the “axis movement execution flag” is a flag indicating that any FB that controls the axis is active.
  • I / O data may be stored as I / O data
  • the user designates I / O data that is scheduled to be displayed in a time chart and is limited to that. By storing it, the storage capacity can be saved. Only one of the command value and the axis position may be stored in the execution result data storage unit. If both are stored, the difference between the command value and the predicted position can be confirmed when the position of the axis is the predicted position calculated in consideration of the physical characteristics of the control target device.
  • the axis position of the previous cycle (control cycle number # N-1) and the axis of the current cycle (control cycle number #N) The speed can be obtained from the difference from the position.
  • the speed can be obtained from the difference between the command value and the shaft position in the same control cycle.
  • the speed value calculated in advance may be stored in the execution result data storage unit 830.
  • the command value, the position of the axis, and the axis movement execution flag are stored for each axis in each storage unit in which they are stored.
  • FB setting parameter and FB ID are stored for each FB when there are a plurality of target FBs.
  • any control cycle can be a resumable control cycle.
  • FIG. 10 is a diagram illustrating a data flow in simulation unit 806 regarding a control cycle in which a command value is not calculated according to the embodiment of the present invention.
  • FIG. 10 the flow of data during a period when none of the FBs is active is shown.
  • data related to the FB status (FB setting parameter, command value, Active FB ID, Busy FB ID) does not exist effectively, so the data related to the FB status is the restart data and execution result data.
  • the position of the axis is memorized because it exists effectively even during the period when the FB is not active.
  • the data area which is not stored is displayed in a packed form, but the data area itself may be secured.
  • the period in which the resumable control cycle can be set is limited to a period in which none of the FBs is active, there is no need to save data relating to the FB state as resuming data, so the storage capacity for saving the resuming data is reduced. be able to. Even if the first control cycle in which any FB becomes active from a period in which any FB is not active can be set as a resumable control cycle, in the cycle before the data to be saved is generated Since none of the FBs is active yet, the period in which the resumable control period can be set is similar to the case where any FB is not active.
  • FIG. 11 is a diagram illustrating IC chip transfer apparatus 100 according to the embodiment of the present invention.
  • an IC chip transfer device 100 will be described as an example of a control target device.
  • FIG. 11A shows a plan view of the IC chip transfer device 100.
  • FIG. 11B shows a front view of the IC chip transfer device 100.
  • an IC chip transfer device 100 includes an X guide 51 capable of positioning the X axis by a motor (not shown), a Y guide 52 capable of positioning the Y axis, and a Z axis.
  • the XYZ guide 50 is configured by a Z guide 53 that can be positioned, and the vacuum suction chuck 60 for vacuum suction of the IC chip TP using the XYZ guide 50.
  • the vacuum suction chuck 60 vacuum suctions the IC chips TP arranged on the IC chip conveyor 80 at predetermined intervals. Then, the IC chip TP is placed at a predetermined position of the IC tray 70 placed on the IC tray conveyor 75 using the XYZ guide 50.
  • the IC tray 70 is provided with empty cells RN for placing IC chips in a matrix.
  • the XYZ guide 50 is assumed to transfer the IC chips one by one to the empty cell RN provided on the IC tray 70. Specifically, the workpiece supply position to which the IC chip TP is supplied is set in advance, and the workpiece transfer position is designated in one of the empty cells RN of the IC tray 70.
  • the XYZ guide 50 transfers the IC chip TP vacuum-sucked using the vacuum suction chuck 60 from the work supply position to the work transfer position, and places the IC chip TP at the designated work transfer position. Put.
  • the IC chip TP placed on the IC chip conveyor 80 is moved to the workpiece supply position by moving the IC chip conveyor 80. It is assumed that the IC chips TP are arranged at predetermined intervals along the traveling direction of the IC chip conveyor 80.
  • FIG. 12 is a diagram illustrating an operation flow of IC chip transfer apparatus 100 according to the embodiment of the present invention.
  • step S50 first, IC chip TP is not placed, that is, unmounted IC tray 70 is moved to the supply reception position using IC tray conveyor 75 (step S50).
  • the IC chip conveyor 80 is moved to move the IC chip TP to the workpiece supply position (step S52).
  • step S54 the vacuum suction chuck 60 is moved to the workpiece supply position using the XYZ guide 50.
  • step S56 the IC chip TP is vacuum-sucked using the vacuum suction chuck 60.
  • step S58 the IC chip TP vacuum-sucked using the XYZ guide 50 is moved to the empty cell position (work transfer position) of the IC tray 70 (step S58).
  • the IC chip TP is placed at the empty cell position (work transfer position) of the IC tray 70 (step S60).
  • step S62 it is determined whether or not to continue the transfer of the IC chip TP (step S62). If it is determined in step S62 that the transfer of the IC chip TP is not continued (NO in step S62), the process ends.
  • step S62 determines whether or not there is an empty cell RN in the IC tray 70 (step S64). If it is determined that there is an empty cell RN on the IC tray 70 (YES in step S64), the IC chip TP is moved to the supply position (step S52). Since the subsequent processing is the same, detailed description thereof will not be repeated. That is, one IC chip TP is placed on the empty cell RN of the IC tray 70 one by one.
  • step S64 If it is determined in step S64 that there is no empty cell in the IC tray 70 (NO in step S64), the IC tray 70 that is not placed is moved to the supply reception position (step S50).
  • FIG. 13 is a diagram for explaining a part of a control program for controlling the XYZ guide 50 in the IC chip transfer device 100.
  • FIG. 13 here is shown a program of a part for controlling the XYZ guide 50 to move the vacuum suction chuck 60 to the position of the empty cell RN of the IC tray 70.
  • FB1 and FB2 are motion function blocks of the same type named MC_MoveAbsolute. Each axis (motor rotation position) is moved from the current position to the target position given in absolute coordinates for each control cycle. It has a function to generate command values.
  • FB1 MoveToTray_X is used to move the X coordinate position of the vacuum suction chuck 60 to the X coordinate position of the empty cell.
  • FB2 (MoveToTray_Y) is used to move the Y coordinate position of the vacuum suction chuck 60 to the Y coordinate position of the empty cell.
  • FB1 and FB2 correspond to the motion control portion of the control program.
  • each FB is an input terminal
  • the right terminal is an output terminal. First, the input terminal will be described.
  • FB is activated and becomes Busy state and Active state.
  • the target position is given to the“ Position ”terminal with variable names Cell_X and Cell_Y.
  • Cell_X and Cell_Y store the X coordinate and Y coordinate of an empty cell calculated in another place of the program.
  • Direction is a terminal for the ring mode that does not distinguish whether the rotation position of the shaft within the same rotation is the same, regardless of how many times the shaft rotates and is in that position, and is not used here.
  • BufferMode will be described later. Here, BufferMode is not used. Next, the output terminal will be described.
  • the output “Axis” terminal outputs the data of the input Axis terminal as it is.
  • the “Done” terminal outputs ON in the control cycle next to the control cycle in which the execution of FB is completed.
  • the “Busy” terminal outputs ON while the FB is in the Busy state.
  • the “Active” terminal outputs ON while the FB is in the Active state.
  • the “Error” terminal outputs ON when an error occurs.
  • the “ErrorID” terminal outputs an error code when an error occurs.
  • FIG. 14 is a diagram illustrating a window screen of the controller support program according to the embodiment of the present invention.
  • setting window 1002 and control program editing field 1004 are provided in window screen 1000 of the controller support program according to the embodiment of the present invention.
  • the setting column 1002 is a part for inputting various settings necessary for editing and simulating the control program.
  • the control program edit field 1004 is used for inputting and editing a control program.
  • the selection window screen 1100 in FIG. 15 is opened as a separate window.
  • the restart data is saved.
  • buttons 1006 are provided as simulation execution control buttons 1006, and buttons for instructing execution start, stop, pause, and step execution of the simulation are provided from the left.
  • FIG. 15 is a diagram illustrating a selection window screen 1100 of the resumable point setting method according to the embodiment of the present invention.
  • selection window screen 1100 has check boxes 1102 capable of checking “FB Active ON”, “FB Busy ON”, and “Fixed Interval”, respectively.
  • “FB Active ON” is checked via the mouse 906 or the like.
  • An “OK” button 1104 and a “Cancel” button 1106 are provided, and the setting method in which the check box is checked becomes valid by clicking (pressing) the “OK” button 1104.
  • the window screen is closed by clicking (pressing) the “OK” button 1104 or the “Cancel” button 1106.
  • the control cycle that is a certain number before the control cycle in which each FB is Active ON may be the resumable control cycle. If the resumable control period is set based on the control period in which the motion control part is activated as described above, the user can easily start re-execution from the vicinity where the motion control part is activated. If the resumable control cycle that is not related to the control cycle in which the motion control part is activated is not set or the number of settings is reduced, the amount of data to be saved can be saved, and even so, some convenience is maintained. It is.
  • a control cycle a certain number before the control cycle in which each FB is Busy ON may be a resumable control cycle.
  • the resumable control period is set based on the control period in which the motion control part is in the execution state in this way, the user can easily start re-execution from the vicinity where the motion control part is in the execution state. If the resumable control cycle that is not related to the control cycle in which the motion control part is being executed is not set or the number of settings is reduced, the amount of data to be saved can be saved, and even so, a certain level of convenience is maintained. Be drunk.
  • the control cycle corresponding to the specified time interval will be the resumable control cycle. If the setting interval of the resumable control cycle is sufficiently small, re-execution can be started approximately anywhere.
  • FIG. 16 is a diagram illustrating time chart window screen 1200 according to the embodiment of the present invention.
  • time chart window screen 1200 is opened by clicking (pressing) simulation execution result display link unit 1008 in FIG.
  • the restart point designation method can be selected alternatively from five methods.
  • the restart point can be designated by dragging the time designation knob in the horizontal direction. If the resumable point is set to “FB Active ON” or “FB Busy ON”, the rising timing of the movement execution flag of either axis is the resumable point.
  • the restart point is indicated by the position of the vertical cursor line 1208, which moves with the movement of the time designation knob 1206, while the time designation knob 1206 can be continuously changed in position, Since restartable points exist discretely, the movement of the cursor line 1208 is also discrete. In this example, the cursor line 1208 is positioned at the resumable point of 3.18 seconds closest to the position of the time designation knob 1206.
  • the cursor line 1208 moves discretely to the position of 3.04 seconds when the Z-axis movement execution flag rises.
  • the time display column 1203 displays the time at the position of the cursor line 1208 on the time scale 1212
  • the value display column 1204 displays the value of the vertical axis of each graph at the position of the cursor line 1208. is there. Further, the position of the time scale 1212 can be changed by operating the scroll bar 1210.
  • the user's instruction regarding the position on the graph displayed on the monitor 907 is received, the resumable control period corresponding to the position on the graph instructed by the user is specified, and the simulation is started from the resumable control period.
  • the user can instruct the start of the re-execution in association with the transition of the execution result of the control program.
  • the simulation unit 806 acquires information identifying the modified FB from the control program editing unit 810, identifies a resumable control cycle that can be re-executed from the most recently modified FB, and resumes the process. Start the simulation again from the possible control cycle. In this way, re-execution from the corrected motion control portion can be facilitated.
  • “on program list” When “on program list” is selected in the “resuming point designation method” field, it can be re-executed from that FB by selecting the FB on the program list displayed in the control program edit field 1004 in FIG.
  • a resumable control cycle is identified as a restart point. Specifically, one FB is selected by clicking on the program list, and “Specify as a restart point” is selected from the pull-down menu.
  • the simulation unit 806 specifies a resumable control period that can be re-executed from the FB designated on the program list display, and starts re-execution of the simulation from the resumable control period. By doing so, the user can instruct the start of re-execution in association with the motion control portion appearing in the list display of the control program.
  • the control cycle corresponding to the position designated on the spatial trajectory displayed on the spatial trajectory display window screen 1300 in FIG. 17 is designated as the resume point. .
  • restart point is designated according to the designation on the axis position list in FIG.
  • the graph is automatically scrolled so that the specified restart point is displayed in any case of “final correction FB”, “on program list”, “on spatial locus”, and “on axis position list”.
  • FIG. 17 is a diagram illustrating a spatial trajectory display window screen 1300 according to the embodiment of the present invention.
  • the spatial trajectory displayed on the spatial trajectory display window screen 1300 is drawn using a series of axis positions stored in the execution result data storage unit.
  • the spatial locus displayed in FIG. 17 shows an example of a locus that draws a semicircle as the projection onto the XY coordinate plane while rising in the Z direction. Has been.
  • the name of the currently used virtual mechanism is displayed in the virtual mechanism setting field 1301 at the top of the screen.
  • the virtual mechanism is a model constructed electronically, and is a three-dimensional model that moves according to a series of command values, abstracting the configuration for each type of mechanism such as an XYZ guide. If you click the triangle mark on the right of the column, a list of virtual mechanisms appears, from which you can change the currently used virtual mechanism to another virtual mechanism.
  • the virtual mechanism setting screen is opened as a separate window screen.
  • the coordinate value display field 1304 displays the current position of the axis for each coordinate axis.
  • the correspondence display column 1306 of the axis and motion FB displays the correspondence between the name of the axis used in the control program and the name of the currently working FB.
  • the “3D” button 1307A in the display setting field 1307 is pressed to display a large 3D display in the image display field 1302.
  • a quadrant display including a projection view on the XY plane, a projection view on the XZ plane, and a projection view on the YZ plane is displayed.
  • the corresponding planar projection view is enlarged and displayed.
  • the 3D display is depicted by a perspective method, and the position of the viewpoint and the direction of the line of sight can be freely changed by operating the mouse.
  • a small sphere is displayed as the current position marker indicating the current position at the tip of the linear movement element in the Z direction.
  • the display setting field 1307 it is possible to select whether or not to display the trajectory of the command value and whether or not to display the virtual mechanism.
  • the virtual mechanism is not displayed, only the trajectory curve is displayed.
  • the detailed setting button 1307P is pressed, setting of the thickness of the locus, setting of the display color of the locus, setting for displaying the coordinate axes and the coordinate numerical values, and the like can be further performed.
  • a moving image playback control button 1310 is displayed at the bottom of the screen.
  • the playback time bar 1314 represents the time required to execute the control program from the beginning to the end.
  • the current time knob 1312 moves from the left to the right on the reproduction time bar 1314 as the control program execution time elapses.
  • the display start time of the moving image can be adjusted by dragging the current time knob 1312 with the mouse 906.
  • a trajectory start point knob 1308 and a trajectory end point knob 1316 indicate the display start time and end time of the trajectory, and both can be moved along the playback time bar 1314 by dragging with the mouse 906.
  • the length of the displayed trajectory changes accordingly when the trajectory start point knob 1308 or the trajectory end point knob 1316 is moved.
  • the mechanism elements move and the current position marker moves along the trajectory.
  • Each still image that is sequentially displayed that constitutes a moving image may not be created for all control cycles, but may be created for control cycles at regular intervals.
  • a large number of cross marks displayed on the locus indicate positions where simulation resumable points are set.
  • resumable points are set at regular intervals in time.
  • the user can specify a simulation restart point by clicking and selecting one of these marks and selecting “Specify as restart point” from the pull-down menu.
  • the simulation unit specifies a resumable control period corresponding to the position on the locus instructed by the user, and starts re-execution of the simulation from the resumable control period. In this way, the user can instruct the start of re-execution in association with the spatial trajectory of the position command value.
  • FIG. 18 is a diagram illustrating an axis position list display window screen 1400 according to the embodiment of the present invention.
  • display window screen 1400 displays a list of times and axis positions corresponding to control cycles in which resumable points are set, and designates a resuming point from the list. can do.
  • the contents displayed on the display window screen can be scrolled by operating the scroll bar 1402. Only one restart point can be specified.
  • the position of each axis is displayed as a numerical value, but it may be displayed by a variable name representing the axis position. Then, by clicking (pressing) the “OK” button 1404, the restart point designation becomes valid. Also, by clicking (pressing) the “Cancel” button 1406, the specification of the restart point can be canceled.
  • the simulation unit 806 specifies a resumable control period corresponding to a position on the list of positions designated by the user, and starts re-execution of the simulation from the resumable control period. In this way, the user can instruct the start of re-execution in association with the transition of the execution result of the control program.
  • FIG. 19 is a diagram illustrating the Buffered mode according to the embodiment of the present invention.
  • two FBs are connected in series by directly connecting the Axis output terminal of the preceding (left) FB and the Axis input terminal of the succeeding (right) FB.
  • ON a value of 1 is input to the Execute terminal of the succeeding FB to place the succeeding FB in the Busy state.
  • the succeeding FB that has been set to the Busy state in advance becomes Active from the control cycle next to the control cycle in which the preceding FB has completed execution, and starts calculating the command value.
  • ⁇ Buffered mode is specified by inputting “Buffered” to the BufferMode terminal of the subsequent FB.
  • FIG. 19B here, there is shown a timing chart of signals inputted and outputted for some terminals of the FB in the Buffered mode.
  • FIG. 20 is a diagram illustrating a timing chart of signals input to and signals output from some terminals of the FB in the Aborting mode according to the embodiment of the present invention.
  • the Aborting mode is set.
  • ON value of 1
  • execution of the preceding FB is immediately stopped and the succeeding FB is executed in the next control cycle.
  • the FB becomes Active and the calculation of the command value is started. It is also possible to connect another FB in series behind the succeeding FB and specify the Aborting mode for the FB.
  • Blending mode is the same as Buffered mode in that execution is completed without stopping the preceding FB, but the speed does not become zero as in Buffered mode, but the preceding side remains moving at the relay speed.
  • the FB on the succeeding side shifts from the active state to the active state.
  • BlendingNext mode BlendingPrevious mode
  • BlendingHigh mode BlendingLow mode
  • FIG. 21 is a diagram showing a timing chart of signals input and output for some terminals of the FB in the BlendingNext mode according to the embodiment of the present invention.
  • BlendingNext mode is set.
  • BlendingNext mode if ON (value of 1) is input to the Execute terminal of the succeeding FB during execution of the preceding FB, the ending speed of the preceding FB becomes the target speed of the succeeding FB.
  • the command value calculation content of the preceding side FB is adjusted.
  • the succeeding FB that has been set to the Busy state in advance becomes Active from the control cycle next to the control cycle in which the preceding FB has completed execution, and starts calculating the command value.
  • FIG. 22 is a diagram showing a timing chart of an input signal and an output signal for some terminals of the FB in the Blending Previous mode according to the embodiment of the present invention.
  • BlendingPrevious mode is set.
  • BlendingPrevious mode if ON (value of 1) is input to the Execute terminal of the succeeding FB during execution of the preceding FB, the leading FB will maintain the target speed until the execution is completed. The command value calculation content is adjusted.
  • the succeeding FB that has been set to the Busy state in advance becomes Active from the control cycle next to the control cycle in which the preceding FB has completed execution, and starts calculating the command value.
  • BlendingPrevious mode for another FB connected in series behind the FB on the subsequent side.
  • BlendingHigh mode In the state where the two FBs in FIG. 19A are connected in series, when “BlendingHigh” is input to the BufferMode terminal of the subsequent FB, the BlendingHigh mode is set.
  • the higher of the target speed of the preceding FB and the target speed of the subsequent FB is the relay speed. That is, the operation when the target speed of the preceding FB is larger is the same as the operation in the Blending Previous mode, and the operation when the target speed of the preceding FB is smaller is the same as the operation in the BlendingNext mode.
  • the BlendingLow mode is set.
  • the relay speed is the smaller of the target speed of the preceding FB and the target speed of the succeeding FB. That is, the operation when the target speed of the preceding side FB is larger is the same as the operation in the BlendingNext mode, and the operation when the target speed of the preceding side FB is smaller is the same as the operation in the BlendingPrevious mode.
  • the motion function block that specifies the target position with respect to one axis has been described as an example.
  • the target position is specified with the relative coordinates from the position at the start of execution of the FB.
  • the target position is specified with the relative coordinates from the position at the start of execution of the FB.
  • it moves linearly between two points in two-dimensional space or three-dimensional space.
  • various types such as those that move and draws an arc-shaped trajectory between two points. Needless to say, the present invention can be applied to either case.
  • Such programs can be read by non-temporary computers such as flexible disks attached to computers, CD-ROM (Compact Disk-Read Only Memory), ROM (Read Only Memory), RAM (Random Access Memory) and memory cards. It can also be recorded on a recording medium and provided as a program product. Alternatively, the program can be provided by being recorded on a recording medium such as a hard disk built in the computer. A program can also be provided by downloading via a network.
  • the program may be a program module that is provided as a part of an operation system (OS) of a computer and that calls necessary modules in a predetermined arrangement at a predetermined timing to execute processing.
  • OS operation system
  • the program itself does not include the module, and the process is executed in cooperation with the OS.
  • a program that does not include such a module can also be included in the program according to the present invention.
  • the program according to the present invention may be provided by being incorporated in a part of another program. Even in this case, the program itself does not include the module included in the other program, and the process is executed in cooperation with the other program. Such a program incorporated in another program can also be included in the program according to the present invention.
  • the provided program product is installed in a program storage unit such as a hard disk and executed.
  • the program product includes the program itself and a recording medium on which the program is recorded.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Programmable Controllers (AREA)

Abstract

 制御プログラムのシーケンス制御部分を1周期分シミュレーション実行し、シーケンス制御部分に関する実行結果を生成する。モーション制御部分を1周期分シミュレーション実行し、モーション制御部分に関する実行結果を生成する。そして、次に、制御周期番号をインクリメント更新する。再開可能制御周期かどうかを判断し、再開可能制御周期であると判断した場合には、前の制御周期で更新された再開用データバッファ(828)の内容を再開用データ記憶部(826)に保存する。

Description

コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体
 本発明は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムをシミュレーション実行することができるコントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体に関する。
 特開2001-209406号公報(特許文献1)には、PLC(Programmable Logic Controller)プログラムの命令実行をシミュレーションするPLCシミュレータ装置が記載されている。ここでいうPLCプログラムは、具体的にはラダーダイアグラムやインストラクションリストの言語で記述されるシーケンスプログラムである。このPLCシミュレータ装置は、PLCプログラムを1命令ごとに実行し、実行結果を表示することができる。これにより、PLCプログラムのデバッグが容易にできる。
特開2001-209406号公報
 一般的にシーケンスプログラムの動作確認は、命令ごとに、所定の入力条件のときに想定された出力が得られることを確認するのが基本である。
 特許文献1でも言及されているように、所定の入力条件が現れるのを待つために一巡実行を多数回繰り返すことはあるが、所定の入力条件が現れれば、命令の動作自体は1周期の実行で確認することができる。
 また、一巡実行を繰り返すことなく、手入力で、あるいはデバッグ用のプログラムを用いて、所定の入力条件を与えて、ある命令の動作を1周期の実行で確認することが行われている。
 ところが、サーボモータ、ステッピングモータなどを駆動するモータドライバに制御周期ごとに指令値を与えてモータの動作を制御するモーション制御を含む制御プログラムにおいては、モータドライバに提供する指令値が設計時の想定どおりに算出されているかどうかを確認するためには、非常に多数の制御周期にわたってプログラムの動作を追跡する必要がある。
 たとえば、制御周期が1msの場合に10秒間のモータ動作を確認するためには1万回算出される指令値の推移を確認する必要がある。この場合に、途中の任意の制御周期の指令値を調べるためには、その制御周期にいたるまで最初から制御プログラムを繰り返し実行しなければならない。
 このように、プログラムのモーション制御部分については、シーケンス制御部分の場合とは異なり、所定の入力条件を与えてその制御周期のみ実行することにより動作確認するということができない。そのため、モーション制御部分を含む制御プログラムに適した動作確認の手法を新たに創出する必要がある。
 その場合に次のような事情を考慮すべきである。
 モーション制御においては、「現在位置から目標位置まで与えられた速度で動く」というような単位となる動きをいくつもつなげて、全体として長時間にわたる複雑な動きがプログラムされることが多い。そのような場合に、制御プログラムのモーション制御部分を修正したりモーション制御部分の起動や中断に影響するシーケンス制御部分を修正したりしてその結果を確認しようとすると、一連の動きについてまた最初からシミュレーション実行しなければならないため、プログラム修正の結果の確認に非常に時間がかかることがある。
 その上、制御プログラムが、センサからの入力や手動スイッチからの入力に応じてモーション制御の内容を変化させるようになっている場合には、シミュレーションの再実行のたびに、入力内容や入力タイミングを正確に再現しなければならないことも不便である。
 上記の事情を考慮した結果、発明者らは、モーション制御を含む制御プログラムをシミュレーション実行する場合に、実行の開始から終了までの間の途中の制御周期からの再実行を可能にすることができれば高い利便性が得られることを見出した。
 本発明は、モーション制御を含む制御プログラムをシミュレーション実行する場合に、実行の開始から終了までの間の途中の制御周期からの再実行を可能にするコントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体を提供することを目的とする。
 本発明のある局面に従うコントローラサポート装置は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムをシミュレーション実行することができるコントローラサポート装置であって、制御プログラムをシミュレーション実行し実行結果データを生成するシミュレーション手段と、シミュレーション手段によって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成手段と、シミュレーション手段に対するユーザの指示を受け付ける受け付け手段と、表示データ作成手段によって作成された表示データを表示することができる表示器とを備える。シミュレーション手段は、制御プログラムのシーケンス制御部分をシミュレーション実行し、シーケンス制御部分に関する実行結果データを生成するシーケンス演算実行部と、シーケンス演算実行部がシミュレーション実行するために使用するシーケンス変数記憶部と、制御プログラムのモーション制御部分をシミュレーション実行し、モーション制御部分に関する実行結果データを生成するモーション演算実行部と、モーション演算実行部がシミュレーション実行するために使用するモーション変数記憶部と、制御周期の実行回数を計数する制御周期計数部と、シミュレーションの再実行を開始することができる制御周期である再開可能制御周期に対応する実行回数のデータと、シーケンス変数記憶部およびモーション変数記憶部に記憶されているデータのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ記憶部とを備える。シミュレーション手段は、再開可能制御周期を特定し、再開可能制御周期に対応する再開用データを再開用データ記憶部に記憶する。シミュレーション手段は、再実行を開始する制御周期を特定するための指定を受け付け手段から取得し、指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する保存された再開用データを用いて特定された制御周期からシミュレーションの再実行を開始する。
 好ましくは、制御プログラムを編集することができる編集手段をさらに備える。編集手段は、シミュレーション手段においてシミュレーション実行されたことがある制御プログラムを修正するユーザの操作を受け付け可能にされている。シミュレーション手段は、編集手段により修正された制御プログラムについて、当該制御プログラムが修正される前に保存した再開用データを用いてシミュレーションの再実行を開始するユーザの操作を受け付け可能にされている。
 特に、編集手段は、ユーザの操作により制御プログラムのモーション制御部分を修正する。シミュレーション手段は、修正されたモーション制御部分を特定する情報を編集手段から取得し、再開可能制御周期の中から、最も最近に修正されたモーション制御部分から再実行することができる制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する。
 特に、編集手段は、表示器に制御プログラムの内容をリスト表示する。受け付け手段は、リスト表示上で、再実行を開始するモーション制御部分の指定を受け付ける。シミュレーション手段は、再開可能制御周期の中から、指定されたモーション制御部分から再実行することができる制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する。
 好ましくは、制御プログラムのモーション制御部分は、それぞれの制御周期において、指令値を算出する状態である活性状態および活性状態でない非活性状態のいずれかの状態である。シミュレーション手段は、モーション制御部分が非活性状態から活性状態となる制御周期を基準として再開可能制御周期を特定する。
 好ましくは、制御プログラムのモーション制御部分は、それぞれの制御周期において、当該モーション制御部分が実行中の状態である実行中状態および実行中状態でない非実行中状態のいずれかの状態である。シミュレーション手段は、モーション制御部分が非実行中状態から実行中状態となる制御周期を基準として再開可能制御周期を特定する。
 好ましくは、シミュレーション手段は、一定間隔ごとの制御周期を再開可能制御周期として特定する。
 好ましくは、表示データ作成手段は、実行結果データの時間的な変化をグラフとして表示するための表示データを作成する。受け付け手段は、表示器に表示されたグラフ上の位置についてのユーザの指示を受け付ける。シミュレーション手段は、再開可能制御周期の中から、ユーザによって指示されたグラフ上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する。
 好ましくは、表示データ作成手段は、シミュレーション手段によって生成された位置についての実行結果データの時間的な変化を2次元空間または3次元空間における軌跡として表示するための表示データを作成する。受け付け手段は、軌跡上の位置についてのユーザの指示を受け付ける。シミュレーション手段は、再開可能制御周期の中から、ユーザによって指示された軌跡上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する。
 好ましくは、表示データ作成手段は、実行結果データの時間的な変化を位置のリストとして表示するための表示データを作成する。受け付け手段は、表示器に表示された位置のリスト上の位置についてのユーザの指示を受け付ける。シミュレーション手段は、再開可能制御周期の中から、ユーザによって指示された位置のリスト上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する。
 本発明のある局面に従う制御プログラムのシミュレーション方法は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行する、制御プログラムのシミュレーション方法であって、ユーザの指示により制御プログラムをシミュレーション実行し、実行結果データを生成するシミュレーション演算ステップと、シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップと、表示データ作成ステップによって作成された表示データを表示器に表示する表示ステップとを備える。シミュレーション演算ステップは、制御プログラムのシーケンス制御部分をシミュレーション実行し、シーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップと、制御プログラムのモーション制御部分をシミュレーション実行し、モーション制御部分に関する実行結果データを生成するモーション演算実行ステップと、制御周期の実行回数を計数する制御周期計数ステップと、シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップと、再開可能制御周期に対応する実行回数のデータと、シーケンス制御部分の実行に関係するシーケンス変数データおよびモーション制御部分の実行に関係するモーション変数データのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップと、再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する保存された再開用データを用いて特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップとを含む。
 本発明のある局面に従うコントローラのサポートプログラムは、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行するためのコントローラのサポートプログラムである。制御プログラムは、コントローラサポート装置に対して、ユーザの指示により制御プログラムをシミュレーション実行し、実行結果データを生成するシミュレーション演算ステップと、シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップと、表示データ作成ステップによって作成された表示データを表示器に表示する表示ステップとを実行させる。シミュレーション演算ステップは、制御プログラムのシーケンス制御部分をシミュレーション実行しシーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップと、制御プログラムのモーション制御部分をシミュレーション実行しモーション制御部分に関する実行結果データを生成するモーション演算実行ステップと、制御周期の実行回数を計数する制御周期計数ステップと、シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップと、再開可能制御周期に対応する実行回数のデータと、シーケンス制御部分の実行に関係するシーケンス変数データおよびモーション制御部分の実行に関係するモーション変数データのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップと、再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する保存された再開用データを用いて特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップとを含む。
 本発明のある局面に従うコントローラのサポートプログラムを格納した記録媒体は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行するためのコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体である。制御プログラムは、コントローラサポート装置に対して、ユーザの指示により制御プログラムをシミュレーション実行し実行結果データを生成するシミュレーション演算ステップと、シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップと、表示データ作成ステップによって作成された表示データを表示器に表示する表示ステップとを実行させる。シミュレーション演算ステップは、制御プログラムのシーケンス制御部分をシミュレーション実行しシーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップと、制御プログラムのモーション制御部分をシミュレーション実行しモーション制御部分に関する実行結果データを生成するモーション演算実行ステップと、制御周期の実行回数を計数する制御周期計数ステップと、シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップと、再開可能制御周期に対応する実行回数のデータと、シーケンス制御部分の実行に関係するシーケンス変数データおよびモーション制御部分の実行に関係するモーション変数データのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップと、再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する保存された再開用データを用いて特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップとを含む。
 本発明によれば、モーション制御を含む制御プログラムをシミュレーション実行する場合に、実行の開始から終了までの間の途中の制御周期からの再実行が可能になるので、プログラムの動作確認が容易になる。
本発明の実施の形態に従う制御システムの構成を説明する図である。 本発明の実施の形態に従うPC6のハードウェア構成を説明する図である。 CPU901がコントローラサポートプログラム8を実行することにより実現される機能ブロックを説明する図である。 本発明の実施の形態に従うシミュレーション部806の機能を説明する詳細なブロック図である。 本発明の実施の形態に従う制御プログラムのデバッグ作業を説明するフロー図である。 本発明の実施の形態に従うコントローラサポートプログラム8の実行を説明するフロー図である。 本発明の実施の形態に従うシミュレーション部806におけるシミュレーション実行を説明するフロー図である。 制御周期内の処理を時系列的に配列した場合を説明する図である。 本発明の実施の形態に従う指令値が算出されている制御周期に関するシミュレーション部806におけるデータの流れを説明する図である。 本発明の実施の形態に従う指令値が算出されていない制御周期に関するシミュレーション部806におけるデータの流れについて説明する図である。 本発明の実施の形態に従うICチップ移載装置100を説明する図である。 本発明の実施の形態に従うICチップ移載装置100の動作のフローを説明する図である。 ICチップ移載装置100におけるXYZガイド50を制御する制御プログラムの一部を説明する図である。 本発明の実施の形態に従うコントローラサポートプログラムのウインドウ画面について説明する図である。 本発明の実施の形態に従う再開可能点設定方式の選択ウインドウ画面1100を説明する図である。 本発明の実施の形態に従うタイムチャートウインドウ画面1200について説明する図である。 本発明の実施の形態に従う空間軌跡表示ウインドウ画面1300を説明する図である。 本発明の実施の形態に従う軸位置のリストの表示ウインドウ画面1400を説明する図である。 本発明の実施の形態に従うBufferedモードを説明する図である。 本発明の実施の形態に従うAbortingモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを説明する図である。 本発明の実施の形態に従うBlendingNextモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを示す図である。 本発明の実施の形態に従うBlendingPreviousモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを示す図である。
 以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。
 図1は、本発明の実施の形態に従う制御システムの構成を説明する図である。
 図1を参照して、本発明の実施の形態に従う制御システムは、サーバ2と、ネットワーク4と、PC(パーソナルコンピュータ)6と、コントローラ14と、制御対象装置16とから構成されている。
 サーバ2は、ネットワーク4を介してPC6と接続されている。PC6は、制御対象装置16を制御するコントローラ14と通信可能に接続されている。
 PC6は、本発明の一実施形態におけるコントローラサポート装置に相当する。PC6には、コントローラサポートプログラム8がインストールされており、また、ユーザが作成した制御プログラム10が記憶されている。CD-ROM(Compact Disc-Read Only Memory)12は、コントローラサポートプログラム8を格納している。PC6にインストールされているコントローラサポートプログラム8は、このCD-ROM12からインストールされたものである。
 コントローラ14は、制御対象装置16の動きを制御する。
 本発明の実施の形態においては、コントローラ14として一例として、PLC(Programmable Logic Controller)が用いられる。すなわち、このPLCには、いわゆるモーションコントロール機能が備えられている。コントローラ14は、制御対象装置16に対する制御内容を規定する制御プログラム15を記憶している。コントローラ14は、制御周期ごとに制御プログラム15を一巡実行する。ここで、コントローラ14に記憶されている制御プログラム15は、PC6に記憶されている制御プログラム10をコピーしたコピーデータであり、PC6から送信されたものである。
 制御対象装置16は、サーボモータ、ステッピングモータなどのモータ18およびモータを駆動するモータドライバ17を含む。
 モータ18はモータドライバ17から駆動電流を供給される。モータドライバ17は、制御プログラム15を実行するコントローラ14から制御周期ごとに位置の指令値を与えられ、それに応じた駆動電流をモータ18に供給する。モータ18がサーボモータである場合、モータ18にはエンコーダが備えられており、モータ18の回転位置の実測値がエンコーダによって検出される。モータの回転位置の実測値は、モータドライバ17がフィードバック制御に利用する。
 なお、上記においては、CD-ROM12を介して、PC6にコントローラサポートプログラムをインストールする場合について説明したが、特にこれに限られず、サーバ2からネットワーク4を介してコントローラサポートプログラムをPC6にダウンロードするようにしても良い。制御プログラムについても同様である。
 図2は、本発明の実施の形態に従うPC6のハードウェア構成を説明する図である。
 図2を参照して、本発明の実施の形態に従うPC6は、処理手段であるCPU901と、記憶手段であるROM902、RAM903、およびHDD904と、データ読取部であるCD-ROM駆動装置908と、通信手段である通信IF909と、表示手段であるモニタ907と、入力手段であるキーボード905およびマウス906とを含む。なお、これらの部位は、内部バス910を介して互いに接続される。
 HDD904は、典型的には不揮発性の磁気メモリであり、CD-ROM駆動装置908によりCD-ROM12から読取られたコントローラサポートプログラムを格納する。また、制御プログラム15も格納している。
 CPU901は、HDD904に格納されている、本実施の形態に従うコントローラサポートプログラム8をRAM903などに展開して実行する。
 RAM903は、揮発性メモリであり、ワークメモリとして使用される。ROM902は、一般的に、オペレーティングシステム(OS:Operating System)等のプログラムを格納している。
 通信IF909は、典型的にはイーサネット(登録商標)およびUSB(Universal Serial Bus)といった汎用的な通信プロトコルをサポートし、ネットワーク4を介してサーバ2との間でデータ通信を提供するとともに、コントローラ14との間でデータ通信を提供する。
 モニタ907は、液晶表示装置、CRT(Cathode Ray Tube)、プラズマディスプレイ装置などで構成され、PC6による処理結果などを表示する。キーボード905は、ユーザによるキー入力を受付け、マウス906は、ユーザによるポインティング操作を受付ける。
 図3は、CPU901がコントローラサポートプログラム8を実行することにより実現される機能ブロックを説明する図である。
 図3を参照して、ここでは、ユーザインタフェース部802と、表示データ作成部804と、シミュレーション部806と、制御プログラム記憶部808と、制御プログラム編集部810と、コントローラインタフェース部812とが示されている。
 ユーザインタフェース部802は、PC6のモニタ907に表示するウインドウ画面の内容を作成し、また、キーボード905やマウス906によるユーザの操作を受け付ける部位である。
 制御プログラム編集部810は、ユーザに制御プログラムの入力および編集を行わせる。制御プログラムを実行するためにコンパイルが必要である場合はコンパイルも行う。作成された制御プログラムは、コントローラインタフェース部812を介してコントローラ14に送られる。また、作成された制御プログラムは、HDD904の所定領域である制御プログラム記憶部808に格納される。また、制御プログラム編集部810は、コントローラインタフェース部812を介してコントローラ14に記憶されている制御プログラム15を読み出して編集することもできる。
 シミュレーション部806は、コントローラ14のシミュレータである。シミュレーション部806は、制御プログラム記憶部808に記憶された制御プログラム10に従ってコントローラ14が制御プログラム15を実行する動作をシミュレートし、コントローラ14が制御周期ごとに出力するはずの位置の指令値を算出する。
 また、シミュレーション部806は、外部からの信号が到来して制御プログラムの動作に影響を与える状態をシミュレートしたり、制御プログラム15の実行自体によってコントローラ14のメモリの記憶内容などのコントローラ14の内部状態が変化して、その変化が制御プログラム15の動作に影響を与える状態をシミュレートしたりすることができる。
 また、シミュレーション部806は、ユーザインタフェース部802を介してシミュレーション実行に関するユーザの指示を受け付ける。すなわち、ユーザインタフェース部802は、シミュレーション部806に対するユーザの指示を受け付ける手段としても働く。
 表示データ作成部804は、シミュレーション部806によって作成された実行結果データの時間的な変化を表示するための表示データを作成する。表示データ作成部804は、作成した表示データをユーザインタフェース部802に送ることによりPC6のモニタ907に表示データをグラフや文字の態様で表示する。
 図4は、本発明の実施の形態に従うシミュレーション部806の機能を説明する詳細なブロック図である。
 図4を参照して、本発明の実施の形態に従うシミュレーション部806は、シミュレーション制御部820と、デバッグ支援部822と、制御周期計数部824と、再開用データ記憶部826と、再開用データバッファ828と、実行結果データ記憶部830と、シーケンス制御シミュレーション部840と、モーション制御シミュレーション部850とを含む。ここで、再開用データ記憶部826、再開用データバッファ828、実行結果データ記憶部830は、それぞれRAM903あるいはHDD904の所定領域が用いられるものとする。
 シミュレーション制御部820は、制御プログラム記憶部808から制御プログラム10を読み込み、制御プログラム10をシミュレーション実行および途中から再実行し、それに伴って、シーケンス制御シミュレーション部840、モーション制御シミュレーション部850、制御周期計数部824、再開用データバッファ828、再開用データ記憶部826および実行結果データ記憶部830の間のデータの流れを制御する。具体的なデータの流れについては後述する。
 シーケンス制御シミュレーション部840は、制御プログラム10のシーケンス制御部分を実行する。
 モーション制御シミュレーション部850は、制御プログラム10のモーション制御部分を実行する。
 制御プログラム10のモーション制御部分は、制御周期ごとに、モータドライバ17に与える指令値を算出する部分である。モーション制御部分は、たとえば、ラダーチャートの中で用いられるモーションファンクションブロックの形式で記述される。以下、モーションファンクションブロックを単にFBと記載することがある。
 制御プログラム10のシーケンス制御部分とは、制御プログラム10のモーション制御部分以外の部分を指すこととする。シーケンス制御部分は、ラダーチャートのリレーシーケンス部分のほか、数値演算用命令または数値演算用ファンクションブロックなども含むものとする。
 シーケンス制御シミュレーション部840は、シーケンス演算実行部844と、シーケンス変数記憶部846と、シーケンス演算制御部842とを含む。
 シーケンス演算制御部842は、シーケンス制御部分の実行を制御する。
 シーケンス演算実行部844は、シーケンス演算制御部842の指示に従って制御プログラムのシーケンス制御部分をシミュレーション実行し、シーケンス制御部分に関する実行結果データを生成する。
 シーケンス変数記憶部846は、シーケンス演算制御部842の指示に従ってシーケンス制御部分の実行に関係するシーケンス変数を記憶する。なお、シーケンス変数記憶部846は、RAM903あるいはHDD904の所定領域が用いられるものとする。
 モーション制御シミュレーション部850は、モーション演算実行部854と、モーション変数記憶部856と、モーション演算制御部852とを含む。
 モーション演算制御部852は、モーション制御部分の実行を制御する。
 モーション演算実行部854は、モーション演算制御部852の指示に従って制御プログラムのモーション制御部分をシミュレーション実行し、モーション制御部分に関する実行結果データを生成する。
 モーション変数記憶部856は、モーション演算制御部852の指示に従ってモーション制御部分の実行に関係するモーション変数を記憶する。なお、モーション変数記憶部856は、RAM903あるいはHDD904の所定領域が用いられるものとする。
 制御周期計数部824は、制御周期の実行回数を計数する。
 再開用データバッファ828は、再開用データ記憶部826に保存される種類のデータを毎制御周期ごとに一時保存する。
 再開用データ記憶部826は、少なくとも一度シミュレーションが実行された後にシミュレーションの途中から再実行を開始するために必要な再開用データを保存する。保存するデータは、再開用データバッファ828に一時保存されていたデータである。再開用データは、次の3種類のデータを含む。
 第1は、シミュレーションの再実行を開始することができる再開可能制御周期に対応する制御周期の実行回数のデータである。
 第2は、シーケンス変数記憶部846に記憶されているデータのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられるシーケンス変数データである。
 第3は、モーション変数記憶部856に記憶されているデータのうち再開可能制御周期からシミュレーションの再実行を開始するのに用いられるモーション変数データである。
 実行結果データ記憶部830は、表示に用いる実行結果データを記憶する。
 デバッグ支援部822は、制御プログラムの途中でシミュレーションを一時停止する箇所であるブレークポイントの設定や、制御プログラムを1ステップ実行するごとに一時停止するステップ実行の設定などの、デバッグの際に用いる機能を提供する。デバッグ支援部822は、ユーザインタフェース部802を介して、シミュレーションの実行および途中からの再実行やその他のデバッグ機能に関するユーザの指示を受け付け、シミュレーション制御部820にユーザの指示に基づく動作を行わせる。
 シミュレーション部806は、シミュレーション部806を構成する各部が協調して働くことにより、再実行を開始する制御周期を特定するための指定をユーザインタフェース部802を介して取得し、この指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する再開用データを用いて、特定した制御周期からシミュレーションの再実行を開始する。
 図5は、本発明の実施の形態に従う制御プログラムのデバッグ作業を説明するフロー図である。
 図5を参照して、まず、制御プログラムを作成する(ステップS0)。そして、次に、制御プログラムをシミュレーション実行する(ステップS2)。そして、次に、想定どおりの結果が取得できたかどうかを判断する(ステップS4)。ステップS4において、想定でおりの結果が取得できたと判断した場合には、ステップS6に進み、実機であるコントローラ14で動作確認し、必要に応じてコントローラサポートプログラム8に従ってPC6において制御プログラムを修正する。そして、処理を終了する。
 一方、ステップS4において、想定どおりの結果が取得できなかったと判断した場合(ステップS4においてNO)には、制御プログラムを修正する(ステップS8)。そして、再び、ステップS2に戻り、修正した制御プログラムに基づいてシミュレーション実行する。以降の処理については、上述したのと同様であるのでその詳細な説明は繰り返さない。なお、想定どおりの結果が取得された制御プログラムは、制御プログラム記憶部808に記憶されるものとする。
 図6は、本発明の実施の形態に従うコントローラサポートプログラム8の実行を説明するフロー図である。
 図6を参照して、まず、制御プログラム10を準備する(ステップS10)。制御プログラム10の準備は、種々の方式があり、たとえば、図5で説明したように新規入力により作成され、制御プログラム記憶部808に記憶された制御プログラムを用いることが可能である。あるいは、記憶媒体(CD-ROM12)またはネットワーク4を介してサーバ2から当該制御プログラムを読み込むことも可能である。あるいは、実機であるコントローラ14から読み込むようにしても良い。
 そして、次に、シミュレーション部806は、ユーザの指示により制御プログラム10をシミュレーション実行し、実行結果データを生成する(ステップS14)。
 そして、表示データ作成部804は、実行結果データの時間的な変化を表示するための表示データを作成する(ステップS16)。
 次に、ユーザインタフェース部802は、表示データをモニタ907に表示する(ステップS18)。
 そして、次に、制御プログラム編集部810は、修正開始の指示が有ったかどうかを判断する(ステップS20)。具体的には、制御プログラム編集部810は、ユーザインタフェース部802を介してユーザから修正開始の指示があったかどうかを判断する。
 ステップS20において、制御プログラム編集部810は、ユーザインタフェース部802を介してユーザから修正開始の指示が有ったと判断した場合(ステップS20においてYES)には、ユーザの指示により制御プログラムを修正する(ステップS22)。そして、再び、ステップS12に戻り、ユーザの指示により制御プログラムをシミュレーション実行する(ステップS12)。以降の処理は同様である。
 一方、ステップS20において、制御プログラム編集部810は、修正開始の指示が無かったと判断した場合(ステップS20においてNO)には、ユーザの指示により実機であるコントローラ14に制御プログラムを送信する(ステップS24)。そして、処理を終了する。
 次に、図6のステップS12におけるユーザの指示により制御プログラムをシミュレーション実行する処理と、ステップS14における実行結果データを生成する処理の具体的な内容について説明する。
 図7は、本発明の実施の形態に従うシミュレーション部806におけるシミュレーション実行を説明するフロー図である。
 図7を参照して、まず、シミュレーション制御部820は、初期化処理または再開初期処理を実行する(ステップS30)。ここで、「初期化処理」とは、制御プログラムを最初の制御周期から実行する場合に、変数の値を初期化するなどの処理を意味する。また、「再開初期処理」とは、制御プログラムを途中の制御周期から再実行する場合に、再開用データ記憶部826から再開用データを読み込み、それを用いてシミュレーションの再実行を開始する準備を行う処理を意味する。
 次に、シミュレーション制御部820は、I/Oリフレッシュ処理のシミュレーションを実行する(ステップS32)。「I/Oリフレッシュ処理」は、出力処理と入力処理とからなる。
 出力処理は、前の周期における実行結果データを出力する処理である。
 出力処理は、制御プログラムのシーケンス制御部分の実行結果である出力変数データを出力する処理と、制御プログラムのモーション制御部分の実行結果である指令値を出力する処理とを含む。
 実際のコントローラ14では、出力変数データはI/Oユニットを経由して制御対象装置16に送られ、そのアクチュエータの駆動などに使用される。また、指令値はモータドライバ17に送られ、制御対象装置16のモータ18の制御に使用される。しかし、シミュレーション実行の場合は実行結果データが制御対象装置16に実際に送られることはなく、実行結果データの一部が実行結果データ記憶部830に記憶される。
 入力処理は、シーケンス制御部分が使用する入力変数データ、モーション制御部分が使用する位置データなどを取り込む処理である。シミュレーション実行の場合、入力変数データは、ユーザが手動で与えたり、制御対象装置の動作を模倣するデバッグ用のプログラムが与えたりする。位置データは、前の周期における位置の指令値をそのまま採用することができる。
 そして、次に、シーケンス制御シミュレーション部840は、制御プログラムのシーケンス制御部分を1周期分シミュレーション実行し、シーケンス制御部分に関する実行結果を生成する(ステップS36)。
 次に、モーション制御シミュレーション部850は、モーション制御部分を1周期分シミュレーション実行し、モーション制御部分に関する実行結果を生成する(ステップS38)。
 そして、次に、シミュレーション制御部820は、制御周期番号をインクリメント更新する(ステップS40)。
 そして、シミュレーション制御部820は、実行中の制御周期が再開可能制御周期かどうかを判断する(ステップS42)。すなわち、実行中の制御周期が、後述する「FBのActive ON」、「FBのBusy ON」、「一定間隔」などの指定された再開可能制御周期の条件に合致している場合には、実行中の制御周期は再開可能制御周期であると判断する。この判断により一連の制御周期の中から再開可能制御周期が特定される。なお、再開可能制御周期の条件が「一定間隔」である場合には、あらかじめ再開可能制御周期である制御周期のリストを用意することによって再開可能制御周期を特定することもできる。この場合には、当該リストと照合することによって、実行中の制御周期が再開可能制御周期かどうかを判断することができる。
 ステップS42において、シミュレーション制御部820は、再開可能制御周期であると判断した場合には(ステップS42においてYES)、前の制御周期で更新された再開用データバッファ828の内容を再開用データ記憶部826に保存する(ステップS44)。
 そして、ステップS46に進む。
 一方、ステップS42において、シミュレーション制御部820は、再開可能制御周期でないと判断した場合(ステップS42においてNO)には、シーケンス制御シミュレーション部840およびモーション制御シミュレーション部850において生成された実行結果に基づいて再開用データバッファ828の内容を更新する(ステップS46)。
 そして、次に、シミュレーション制御部820は、シミュレーション実行が終了したかどうかを判断する(ステップS48)。
 ステップS48において、シミュレーション制御部820は、シミュレーション実行が終了したと判断した場合には処理を終了する。
 一方、ステップS48において、シミュレーション制御部820は、シミュレーション実行が終了していないと判断した場合(ステップS48においてNO)には、ステップS32に戻り、インクリメント更新した次の制御周期番号に従ってステップS32におけるI/Oリフレッシュのシミュレーションを実行する。そしてシミュレーション実行が終了するまで上記した処理を繰り返す。
 本実施の形態に従うコントローラサポートプログラムにおいては、図6に示されるように、制御プログラム編集部810は、シミュレーション部806においてシミュレーション実行されたことがある制御プログラムを修正するユーザの操作を受け付け可能にされている。
 また、図7に示されるように、シミュレーション部806は、制御プログラム編集部810により修正された制御プログラムについて、当該制御プログラムが修正される前に保存した再開用データを用いてシミュレーションの再実行を開始するユーザの操作を受け付け可能にされている。
 したがって、修正によって実行結果が影響を受ける制御プログラムの部分が実行される制御周期より前の制御周期をユーザが指定してシミュレーションの再実行を開始すれば、修正の影響が及ぶ制御プログラムの部分の動作を迅速に確認することができる。
 図8は、制御周期内の処理を時系列的に配列した場合を説明する図である。
 図8(A)を参照して、再開可能制御周期でない場合、I/Oリフレッシュ処理、シーケンス制御部分の実行、モーション制御部分の実行、制御周期番号更新の各処理を実行する。そしてその後、更新した制御周期番号とその制御周期で生成した実行結果データで再開用データバッファを上書き更新(再開用データバッファ更新)する。
 図8(B)を参照して、再開可能制御周期である場合、I/Oリフレッシュ処理、シーケンス制御部分の実行、モーション制御部分の実行、制御周期番号更新の各処理を実行する。そしてその後、再開用データバッファ828に格納されている前の制御周期で更新した制御周期番号と前の制御周期で生成された実行結果データを再開用データ記憶部826に保存(再開用データ保存)する。その後、その制御周期で更新した制御周期番号とその制御周期で生成した実行結果データで再開用データバッファ828を上書き更新(再開用データバッファ更新)する。
 ここで、制御周期番号更新処理、再開用データバッファ更新処理および再開用データ保存処理は、実機であるコントローラ14では実行されないシミュレーション特有の処理である。
 各制御周期が占める時間は、実機であるコントローラ14では一定であるが、シミュレーション実行においても、制御周期はタイマ割り込みで開始することにより一定時間になるようにしている。
 制御周期内の必要な処理を完了した後の時間はアイドリング時間である。このようにすると、シミュレーション実行の所要時間から実機であるコントローラ14における実行時間を予測する精度が高まる。その必要がなければ、制御周期内の必要な処理を完了した後、ただちに次の制御周期の処理を開始するようにしてもよい。
 図9は、本発明の実施の形態に従う指令値が算出されている制御周期に関するシミュレーション部806におけるデータの流れを説明する図である。
 図9を参照して、制御周期計数部824は、現在の「制御周期番号」をカウントする。「制御周期番号」とは、制御プログラムの実行開始からの制御周期の通算実行回数である。
 ここで、「現在」として示されているのは、実行中の制御周期におけるデータであることを意味する。以下においても同様である。制御周期ごとに変化しうるデータであることが前提である。
 また、シーケンス変数記憶部846は、シーケンス変数を記憶する。「シーケンス変数」とは、制御プログラムのシーケンス制御部分の実行に関係するデータである。シーケンス制御部分の実行のために読み込まれるデータと実行の結果書き出されるデータの両方を含む。具体的には、現在の「I/Oデータ」と、「内部変数データ」とを記憶する。
 「I/Oデータ」とは、シーケンス制御部分の実行に関係する変数データであって、I/Oリフレッシュ処理の対象となるデータである。すなわち、入力変数データおよび出力変数データである。
 「内部変数データ」とは、シーケンス制御部分の実行に関係する変数データであるが、プログラム内部での使用に限られ、I/Oリフレッシュ処理の対象とならないデータである。
 また、モーション変数記憶部856は、モーション変数を記憶する。「モーション変数」とは、制御プログラムのモーション制御部分の実行に関係するデータである。モーション制御部分の実行のために読み込まれるデータと実行の結果書き出されるデータの両方を含む。具体的には、モーション変数として、現在の「FB設定パラメータ」と、「指令値」と、「軸の位置」と、「ActiveなFBのID」と、「BusyなFBのID」とを記憶する。
 本実施形態では、モーション制御部分はモーションファンクションブロック(FB)として記述されているものとする。「FB設定パラメータ」とは、FBの動作の仕方を指定するパラメータである。FB設定パラメータは、プログラミング段階で与えられている定数値およびプログラムの実行によって値が決定される変数値でありうる。FB設定パラメータは、FBの入力値を用いてFB内で算出される2次的なパラメータを含む場合がある。たとえば、加速時間は、FBの入力値である速度と加速度から算出されて加速中の複数の制御周期において参照されるが、FBの実行を開始した制御周期において加速時間を算出してモーション変数記憶部に格納しておけば、制御周期ごとに同じ計算を行う必要がない。
 なお、FB設定パラメータがFBの入力値である定数およびシーケンス変数のみで構成されている場合であって、モーション演算実行部854がシーケンス変数記憶部846にアクセスできるように構成した場合には、プログラム自体が与える定数およびシーケンス変数記憶部846に格納されたシーケンス変数によりFB設定パラメータが決定されるので、FB設定パラメータのモーション変数記憶部856への格納は必須ではない。
 「指令値」とは、モーション制御部分が制御周期ごとに出力するデータである。本実施形態では少なくとも位置の指令値を含む。ほかに、速度の指令値、トルクの指令値などがありうる。
 「軸の位置」とは、モータ18の回転位置またはモータ18によって駆動される制御対象装置の特定部位の位置である。実際の制御対象装置の軸の位置はロータリエンコーダなどで計測される。シミュレーションでは、モーション変数記憶部856の中に仮想的な軸を用意し、指令値を仮想的な軸の記憶領域に書き込んでその記憶内容を軸の位置とし、その値を新しい指令値で更新していく。ある軸についてモーション制御部分が制御周期ごとに指令値を出力している期間においては、軸の位置は1つ前の制御周期で算出された位置の指令値となっている。モーション制御部分が制御周期ごとに指令値を出力していない期間は、軸の位置は更新されず、同じ値が保持されている。
 軸の位置としては、指令値をそのまま採用するのでなく、指令値の履歴から制御対象装置の可動部のモーメント、質量、摩擦などの物理特性を考慮して算出した予測位置を採用してもよい。
 「Active」とは、制御周期ごとに指令値を算出しているFBの状態である。活性状態ともいう。
 「Busy」とは、FBが実行中の状態である。Busy状態のFBは、Activeである場合とActiveでない場合がある。後述するが、FBがExecute ONの入力を与えられるとBusyとなる。通常はBusyであればActiveであるが、後述するBufferedモードまたはBlendingモードにより複数のFBが連結されている場合には、連結された先頭以外のFBにおいて、BusyであるがActiveでない状態が出現する。
 「FBのID」とは、1つの制御プログラムにおいて使用されているFBを個別に特定する情報である。たとえばプログラミングの際に与えられたFBの名称である。
 制御周期が開始されると、シミュレーション制御部820は、1周期分、シーケンス制御シミュレーション部840およびモーション制御シミュレーション部850にシミュレーション実行させる。制御周期計数部824は、「現在制御周期番号」をインクリメント更新する。そして、上述したようにシミュレーション制御部820は、再開可能制御周期であるかどうかを判断し、再開可能制御周期でないと判断した場合には、制御周期計数部824から「現在制御周期番号」を、シーケンス変数記憶部846から「現在I/Oデータ」、「現在内部変数データ」を、モーション変数記憶部856から「現在FB設定パラメータ」、「現在指令値」、「軸の現在位置」、「現在ActiveなFBのID」、「現在BusyなFBのID」を再開用データバッファ828に上書き保存する。
 一方、シミュレーション制御部820が再開可能制御周期であると判断した場合には、まず、再開用データバッファ828の内容を再開用データ記憶部826に追記し、その後、再開可能制御周期でないと判断した場合と同様に再開用データバッファ828を上書きする。
 再開用データ記憶部826に保存する制御周期番号は、本実施形態では再実行を開始することができる再開可能制御周期の1つ前の周期の制御周期番号であるが、制御周期番号を再開用データバッファ828から転送するのではなく、再開可能制御周期の制御周期番号自体を再開用データとして保存するようにしてもよい。その場合は、シミュレーションを再実行するときに、再開用データに含まれている制御周期番号は、制御周期番号以外の再開用データが生成された制御周期の次の制御周期を示していることを前提として再実行を開始する準備の処理を行う。また、たとえば、一定のオフセット値を加算した制御周期番号を再開用データとして保存し、再開時には同じオフセット値を減算するというような約束があれば、上記以外の制御周期番号を保存するようにすることもできる。すなわち、保存するのは、再開可能制御周期に対応させることができる制御周期番号である。
 再開用データ記憶部826には、再開可能制御周期から再実行を開始するのに用いられる再開用データを再開用データバッファから読み出して追記する。このことは、再開可能制御周期において生成された再開用データを記憶するということと同じ意味ではない。図8の場合には、再開可能制御周期の1つ前の制御周期において生成された再開用データを記憶している。再開用データバッファ828を複数周期分のリングバッファとして構成すれば、数周期前の制御周期において生成された再開用データを再開用データ記憶部826に記憶することもできる。この場合、再実行時には、再開用データが生成された制御周期の次の制御周期から数周期分準備的な実行をすることにより、ユーザの指定を用いて特定された制御周期から再実行を開始することができる状態となる。
 再開用データ記憶部826に指令値と軸の位置の両方を記憶しておくと、軸の位置が前の周期の指令値である場合には、指令値と軸の位置との差から速度を求めることができる。
 再開用データ記憶部826に、指令値に代えて、再開用データが生成された制御周期の1つ前の周期で更新された軸の位置、すなわち2つ前の周期において出力された指令値を反映した軸の位置を記憶するようにしてもよい。そうすると、2つの「軸の位置」の差から速度を求めることができる。軸の位置を、制御対象装置の物理特性を考慮した予測位置として算出している場合には、それに対応する予測速度を求めることができる。
 以上のように2つの位置の値から再開時に速度を求める代わりに、あらかじめ算出した速度値を再開用データ記憶部826に記憶するようにしてもよい。
 再開用データ記憶部826にすべての制御周期の再開用データを保存するようにしてもよい。そうすると、どの制御周期からでもシミュレーションの再実行を開始することができる。
 再開用データ記憶部826にすべての制御周期の再開用データをいったん保存した後、再開可能制御周期を任意の数だけ設定し、その後再開可能制御周期の設定対象とならなかった制御周期に対応する再開用データを削除するようにしてもよい。
 シミュレーション制御部820は、毎制御周期における図7のI/Oリフレッシュ処理のシミュレーション実行のタイミング(ステップS32)で、図9に(1)、(2)、(3)で示したとおり、制御周期計数部824から「現在制御周期番号」を、シーケンス変数記憶部846から「現在I/Oデータ」を、モーション変数記憶部856から「現在指令値」、「軸の現在位置」を実行結果データ記憶部830に追記するとともに、「軸の移動中実行フラグ」を生成して実行結果データ記憶部830に追記する。「軸の移動実行中フラグ」は、その軸を制御するいずれかのFBがActiveであることを示すフラグである。なお、I/Oデータは、すべての種類のI/Oデータを記憶してもよいが、タイムチャートのグラフ表示をすることを予定しているI/Oデータをユーザが指定し、それに限って記憶することにすれば記憶容量を節約できる。指令値と軸の位置は、どちらか一方だけを実行結果データ記憶部に記憶させるようにしてもよい。両方を記憶しておくと、軸の位置が制御対象装置の物理特性を考慮して算出した予測位置である場合に、指令値と予測位置との差異を確認することができる。
 実行結果データ記憶部830に記憶された実行結果データから速度を得たい場合は、前の周期(制御周期番号#N-1)の軸の位置と本周期(制御周期番号#N)の軸の位置との差から速度を求めることができる。
 軸の位置が前の周期の指令値である場合には、同じ制御周期における指令値と軸の位置との差から速度を求めることができる。
 以上のように実行結果データを表示するときに2つの位置の値から速度を求める代わりに、あらかじめ算出した速度値を実行結果データ記憶部830に記憶するようにしてもよい。
 制御対象の軸が複数ある場合には、指令値、軸の位置、軸の移動実行中フラグは、それらが記憶される各記憶部において、軸ごとに記憶される。
 FB設定パラメータ、FBのIDは、対象となるFBが複数ある場合には、FBごとに記憶される。
 図9においては、いずれかのFBがActive、すなわちいずれかのFBが指令値を算出している期間中の制御周期であるか、シーケンス制御部分のみが実行されている期間の制御周期であるかにかかわらず、どの制御周期も再開可能制御周期とすることができる。
 図10は、本発明の実施の形態に従う指令値が算出されていない制御周期に関するシミュレーション部806におけるデータの流れについて説明する図である。
 図10を参照して、いずれのFBもActiveでない期間におけるデータの流れを示す。この期間中は、FBの状態に関するデータ(FB設定パラメータ、指令値、ActiveなFBのID、BusyなFBのID)が有効に存在しないので、FBの状態に関するデータは再開用データおよび実行結果データとして記憶されない。軸の位置はFBがActiveでない期間にも有効に存在するので記憶される。
 本例においては、記憶されないデータの領域を詰めた態様で表示しているが、データ領域自体は確保したままでもかまわない。
 再開可能制御周期を設定できる期間をいずれのFBもActiveでない期間に限定すると、FBの状態に関するデータを再開用データとして保存する必要がないので、再開用データの保存のための記憶容量を削減することができる。いずれのFBもActiveでない期間からいずれかのFBがActiveになった最初の制御周期を再開可能制御周期とすることができるようにした場合も、保存されるデータが生成された前の周期においてはまだいずれのFBもActiveではないから、上記の再開可能制御周期を設定できる期間をいずれのFBもActiveでない期間に限定した場合と同様である。
 FBの途中から再開せず、常にFBの冒頭から再開できればよい場合には、このように再開可能制御周期とすることができる制御周期を限定する方式も有用である。
 図11は、本発明の実施の形態に従うICチップ移載装置100を説明する図である。本発明の実施の形態においては、制御対象装置としてICチップ移載装置100を例に挙げて説明する。
 図11(A)には、ICチップ移載装置100の平面図が示されている。
 また、図11(B)には、ICチップ移載装置100の正面図が示されている。
 図11(A)および(B)を参照して、ICチップ移載装置100は、図示しないモータによりX軸の位置決めが可能なXガイド51、Y軸の位置決めが可能なYガイド52、Z軸の位置決めが可能なZガイド53により構成されるXYZガイド50と、XYZガイド50を用いてICチップTPを真空吸着するための真空吸着式チャック60とで構成されている。真空吸着式チャック60は、ICチップコンベア80に所定間隔置きに配置されたICチップTPを真空吸着する。そして、XYZガイド50を用いてICトレイコンベア75に載置されたICトレイ70の所定の位置にICチップTPを載置する。
 ICトレイ70には、行列状にICチップを載置するための空きセルRNが設けられる。そして、XYZガイド50は、ICトレイ70に設けられた空きセルRNに1つずつICチップを移載するものとする。具体的には、ICチップTPが供給されるワーク供給位置が予め設定されており、また、ICトレイ70の空きセルRNのいずれかにワーク移載位置が指定される。XYZガイド50は、当該ワーク供給位置から当該ワーク移載位置に、真空吸着式チャック60を用いて真空吸着したICチップTPを移送して、当該指定されたワーク移載位置にICチップTPを載置する。
 ICチップコンベア80に載置されているICチップTPは、ICチップコンベア80を移動させることにより当該ワーク供給位置に移動させられる。ICチップTPは、ICチップコンベア80の進行方向に沿って所定間隔おきに配置されているものとする。
 図12は、本発明の実施の形態に従うICチップ移載装置100の動作のフローを説明する図である。
 図12を参照して、まず、ICチップTPが載置されていないすなわち、未載置のICトレイ70を供給受付位置へICトレイコンベア75を用いて移動させる(ステップS50)。
 そして、次に、ICチップコンベア80を移動させてICチップTPをワーク供給位置へ移動する(ステップS52)。
 そして、次に、XYZガイド50を用いて真空吸着式チャック60をワーク供給位置へ移動させる(ステップS54)。
 そして、次に、真空吸着式チャック60を用いてICチップTPを真空吸着する(ステップS56)。
 そして、XYZガイド50を用いて真空吸着したICチップTPをICトレイ70の空きセル位置(ワーク移載位置)へ移動させる(ステップS58)。
 そして、ICチップTPをICトレイ70の空きセル位置(ワーク移載位置)に載置する(ステップS60)。
 次に、ICチップTPの移載を継続するかどうかを判断する(ステップS62)。
 ステップS62において、ICチップTPの移載を継続しないと判断した場合(ステップS62においてNO)には、処理を終了する。
 一方、ステップS62において、ICチップの移載を継続すると判断した場合(ステップS62においてYES)には、次にICトレイ70に空きセルRNがあるかどうかを判断する(ステップS64)。ICトレイ70に空きセルRNがあると判断した場合(ステップS64においてYES)には、ICチップTPを供給位置へ移動する(ステップS52)。以降の処理は同様であるのでその詳細な説明は繰返さない。すなわち、1つずつICチップTPをICトレイ70の空きセルRNに載置していくことになる。
 ステップS64において、ICトレイ70に空きセルがないと判断した場合(ステップS64においてNO)には、未載置のICトレイ70を供給受付位置へ移動させる(ステップS50)。
 そして、上記処理を繰り返すものとする。
 図13は、ICチップ移載装置100におけるXYZガイド50を制御する制御プログラムの一部を説明する図である。
 図13を参照して、ここでは、XYZガイド50を制御して真空吸着式チャック60をICトレイ70の空きセルRNの位置へ移動する部分のプログラムが示されている。
 ここで、FB1およびFB2は、MC_MoveAbsoluteという名称の同じ種類のモーションファンクションブロックであり、1つの軸(モータの回転位置)を現在位置から絶対座標で与えた目標位置まで移動させるように制御周期ごとに指令値を生成する機能を有する。
 FB1(MoveToTray_X)は、真空吸着式チャック60のX座標位置を空きセルのX座標位置まで移動させるために用いられている。
 FB2(MoveToTray_Y)は、真空吸着式チャック60のY座標位置を空きセルのY座標位置まで移動させるために用いられている。ここでは、FB1とFB2が制御プログラムのモーション制御部分に該当する。
 各FBの左側の端子は入力端子、右側の端子は出力端子である。
 まず、入力端子について説明する。
 「Axis」端子にはそのFBに対応付ける軸名称を与える。Axis_1にはX軸、Axis_2にはY軸が割り当てられている。
 「Execute」端子にON入力を与えるとFBが起動し、Busy状態およびActive状態となる。
 「Position」、「Velocity」、「Acceleration」、「Deceleration」、「Jerk」の各端子には、それぞれ目標とする位置、速度、加速度、減速度、躍度の値を与える。
 「Position」端子へはCell_X, Cell_Yという変数名で目標位置が与えられている。Cell_X, Cell_Yには、プログラムの別の場所で計算された空きセルのX座標、Y座標が格納されている。
 「Velocity」、「Acceleration」、「Deceleration」の各端子には、プログラミング段階で定数値が与えられている。「Jerk」端子への入力は省略されている。
 「Direction」は、1周内の軸の回転位置が同じであれば軸が何周してその位置にあっても区別しないリングモードのための端子であり、ここでは使用しない。
 「BufferMode」については後述する。ここではBufferModeは使用されていない。
 次に、出力端子について説明する。
 出力の「Axis」端子は、入力のAxis端子のデータをそのまま出力する。
 「Done」端子は、FBの実行が完了した制御周期の次の制御周期においてONを出力する。
 「CommandAborted」端子は、FBの実行が中止した制御周期の次の制御周期においてONを出力する。
 「Busy」端子は、FBがBusy状態である間、ONを出力する。
 「Active」端子は、FBがActive状態である間、ONを出力する。
 「Error」端子は、なんらかのエラーが発生したときにONを出力する。
 「ErrorID」端子は、エラーが発生したときにエラーコードを出力する。
 ここでは、Under_MovingToTrayと名づけられた接点(変数)がONになると、FB1およびFB2の「Execute」端子にONが与えられ、FB1およびFB2は空きセルRNの位置へ向かってX軸とY軸を移動させるための指令値算出を開始する。それぞれの軸の移動が完了すると、各「Done」端子はONを出力する。「Done」端子の出力のONまたはOFFの値は、ToTray_Done_X, ToTray_Done_Yと名づけられた接点(変数)に格納される。これらの接点は、ICチップTPを空きセルに載置するためのZ軸の下降動作を開始するために用いられる。
 図14は、本発明の実施の形態に従うコントローラサポートプログラムのウインドウ画面について説明する図である。
 図14を参照して、本発明の実施の形態に従うコントローラサポートプログラムのウインドウ画面1000には、設定欄1002と、制御プログラム編集欄1004とが設けられる。
 設定欄1002は、制御プログラムの編集やシミュレーションを行う上で必要となる種々の設定入力をする部分である。
 また、制御プログラム編集欄1004は、制御プログラムを入力し、編集するために用いられる。
 また、右下領域においては、再開可能点設定方式の設定ボタン1010およびシミュレーション実行制御ボタン1006と、シミュレーション実行結果表示リンク部1008とが設けられている場合が示されている。
 再開可能点設定方式の設定ボタン1010を押下すると、図15の選択ウインドウ画面1100が別ウインドウとして開くものとする。この設定をした後にシミュレーションを実行すると再開用データが保存される。
 シミュレーション実行制御ボタン1006として4つのボタンが設けられ、左から、シミュレーションの実行開始、停止、一時停止、ステップ実行を指示するためのボタンがそれぞれ設けられている。
 シミュレーション実行結果表示リンク部1008は、当該リンク部をクリック(押下)すると、図16のタイムチャートウインドウ画面が別ウインドウとして開くものとする。
 図15は、本発明の実施の形態に従う再開可能点設定方式の選択ウインドウ画面1100を説明する図である。
 図15を参照して、本発明の実施の形態に従う選択ウインドウ画面1100は、「FBのActive ON」、「FBのBusy ON」、「一定間隔」をそれぞれチェックすることが可能なチェックボックス1102が設けられており、本例においては、マウス906等を介して「FBのActive ON」にチェックが付けられた場合が示されている。そして、「OK」ボタン1104と、「キャンセル」ボタン1106とがそれぞれ設けられており、「OK」ボタン1104をクリック(押下)することによりチェックボックスにチェックした設定方式が有効となる。当該「OK」ボタン1104あるいは「キャンセル」ボタン1106をクリック(押下)することにより当該ウインドウ画面は閉じるものとする。
 「FBのActive ON」にチェックを入れると、各FBがActive ONとなる制御周期が再開可能制御周期とされる。
 各FBがActive ONとなる制御周期より一定数前の制御周期が再開可能制御周期とされるようにしてもよい。このようにモーション制御部分が活性状態となる制御周期を基準として再開可能制御周期を設定すると、ユーザはモーション制御部分が活性状態になる付近から再実行を開始させることが容易になる。モーション制御部分が活性状態となる制御周期と関係しない再開可能制御周期を設定しないか設定数を少なくすれば再開用データの保存量が少なくて済み、そのようにしてもある程度の利便性が保たれる。
 「FBのBusy ON」にチェックを入れると、各FBがBusy ONとなる制御周期が再開可能制御周期とされる。あるFBがBusy ONとなる制御周期を再開可能制御周期とする場合は
、1つ前の周期、すなわち再開用データが生成される周期において、その軸に関してBusyかつActiveである他のFBが存在する可能性があるので「現在ActiveなFBのID」を再開用データとして保存する必要はあるが、その軸に関してBusyであるがActiveでない他のFBは存在しないので、「現在BusyなFBのID」を再開用データとして保存することを省略してもよい。各FBがBusy ONとなる制御周期より一定数前の制御周期が再開可能制御周期となるようにしてもよい。このようにモーション制御部分が実行中状態となる制御周期を基準として再開可能制御周期を設定すると、ユーザはモーション制御部分が実行中状態になる付近から再実行を開始させることが容易になる。モーション制御部分が実行中状態となる制御周期と関係しない再開可能制御周期を設定しないか設定数を少なくすれば再開用データの保存量が少なくて済み、そのようにしてもある程度の利便性が保たれる。
 「一定間隔」にチェックを入れ、時間(秒)を指定すると、指定した時間間隔ごとの時間に相当する制御周期が再開可能制御周期とされる。再開可能制御周期の設定間隔が十分小さければ、近似的にどこからでも再実行を開始させることができる。
 なお、1つに限られず複数の設定方式を同時に有効とすることが可能である。
 図16は、本発明の実施の形態に従うタイムチャートウインドウ画面1200について説明する図である。
 図16を参照して、本発明の実施の形態に従うタイムチャートウインドウ画面1200は、図14のシミュレーション実行結果表示リンク部1008をクリック(押下)すると開かれる。
 ここでは、1つのICチップTPの吸着と載置の1サイクルの動作について、各軸の速度と移動実行中フラグの状態を示している。
 「再開点指定方式」の欄では、再開点指定方式が5つの方式の中から択一的に選択できるようになっている。
 具体的には、「再開点指定方式」の欄で「チャート上」を選択すると時間指定つまみを横方向にドラッグすることにより再開点を指定することができる。再開可能点が「FBのActive ON」または「FBのBusy ON」に設定されているとすると、いずれかの軸の移動実行中フラグの立ち上がりタイミングが再開可能点となっている。再開点は垂直のカーソル線1208の位置によって示されており、このカーソル線1208は時間指定つまみ1206の移動に伴って移動するが、時間指定つまみ1206は連続的に位置を変更できるのに対し、再開可能点は離散的に存在しているのでカーソル線1208の移動の仕方も離散的となる。本例においては、時間指定つまみ1206の位置に最も近い3.18秒の再開可能点にカーソル線1208が位置している。この状態から時間指定つまみをわずかに左に動かすと、カーソル線1208はZ軸の移動実行中フラグが立ち上がる3.04秒の位置に離散的に移動する。時間表示欄1203には、時間スケール1212において、カーソル線1208の位置における時間が表示されており、値表示欄1204に表示されているのはカーソル線1208の位置における各グラフの縦軸の値である。また、スクロールバー1210を操作することにより時間スケール1212の位置を変更することが可能である。
 このように、モニタ907に表示されたグラフ上の位置についてのユーザの指示を受け付け、ユーザによって指示されたグラフ上の位置に対応する再開可能制御周期を特定し、当該再開可能制御周期からシミュレーションの再実行を開始することにより、ユーザは、制御プログラムの実行結果の推移と対応付けて再実行の開始を指示することができる。
 「再開点指定方式」の欄で「チャート上」の右側にある「一時解除」をチェックすると、再開点の指定操作の状態が一時的に解除され、カーソル線1208が時間指定つまみ1206と同じ位置に表示されて連続的に移動するようになり、値表示欄1204の表示によって任意の時間における各グラフの値を調べることができる。
 「再開点指定方式」の欄で「最終修正FB」を選択すると、図14の制御プログラム編集欄1004で最も最近に入力値が修正されたFBから再実行することができる再開可能制御周期が再開点として指定される。この場合、シミュレーション部806は、修正されたFBを特定する情報を制御プログラム編集部810から取得し、最も最近に修正されたFBから再実行することができる再開可能制御周期を特定し、当該再開可能制御周期からシミュレーションの再実行を開始する。このようにすることにより、修正したモーション制御部分から再実行することが容易にできる。
 「再開点指定方式」の欄で「プログラムリスト上」を選択すると、図14の制御プログラム編集欄1004に表示されたプログラムリスト上でFBを選択することにより、そのFBから再実行することができる再開可能制御周期が再開点として特定される。具体的には、プログラムリスト上で1つのFBをクリックして選択し、プルダウンメニューから「再開点として指定」を選択する。この場合、シミュレーション部806は、プログラムのリスト表示上で指定されたFBから再実行することができる再開可能制御周期を特定し、当該再開可能制御周期からシミュレーションの再実行を開始する。このようにすることにより、ユーザは制御プログラムのリスト表示に表れたモーション制御部分と対応付けて再実行の開始を指示することができる。
 「再開点指定方式」の欄で「空間軌跡上」を選択すると、図17の空間軌跡表示ウインドウ画面1300に表示される空間軌跡上で指定した位置に対応する制御周期が再開点として指定される。
 「再開点指定方式」の欄で「軸位置リスト上」を選択すると、図18の軸位置リスト上での指定に従い再開点が指定される。
 「最終修正FB」、「プログラムリスト上」、「空間軌跡上」、「軸位置リスト上」のいずれの場合も、指定された再開点が表示されるようにグラフは自動的にスクロールされる。
 「プログラムリスト上」、「空間軌跡上」、「軸位置リスト上」のいずれかを選択して「GO」ボタン1201を押すと、対応する図14、図17、または図18のウインドウ画面が開き、または手前のウインドウ画面として表示される。
 図17は、本発明の実施の形態に従う空間軌跡表示ウインドウ画面1300を説明する図である。
 図17を参照して、空間軌跡表示ウインドウ画面1300に表示される空間軌跡は、実行結果データ記憶部に記憶された一連の軸の位置を用いて描画される。
 軸の位置に代えて記憶された指令値を用いて描画してもよい。
 図17に表示されている空間軌跡は、ICチップ移載装置100のXYZガイド50の場合と異なり、Z方向に上昇しつつ、XY座標平面への投影としては半円を描く軌跡の例が示されている。
 画面上部の仮想機構設定欄1301には現在使用されている仮想機構の名称が表示されている。仮想機構は、電子的に構築されたモデルであって、XYZガイドのような機構の種類ごとにその構成を抽象化した、一連の指令値によって動く3次元モデルである。同欄右の三角マークをクリックすると仮想機構のリストが現れ、そこから現在使用されている仮想機構を他の仮想機構に変更することができる。
 設定編集のボタン1303を押すと、仮想機構設定画面が別ウインドウ画面として開く。
 座標値表示欄1304には、座標軸ごとの軸の現在位置が表示されている。
 軸とモーションFBの対応表示欄1306には制御プログラムの中で使われている軸名と現在働いているFB名との対応関係が表示されている。
 本例においては、表示設定欄1307の「3D」ボタン1307Aを押して画像表示欄1302において、3D表示を大きく表示したところである。「3D」ボタン1307Aをもう一度押すと3D表示のほかに、XY平面への投影図、XZ平面への投影図、YZ平面への投影図からなる4分割表示となる。「3D」以外の1つのボタンを押すと対応する平面投影図が拡大表示される。
 3D表示は、透視図法によって描写されており、マウス操作によって3次元空間内での視点の位置と視線方向を自由に変更することができる。
 Z方向の直動要素の先端に現在位置を示す現在位置マーカーとして小さな球が表示されている。
 表示設定欄1307では、指令値の軌跡を表示するかどうかの選択、および仮想機構を表示するのかどうかの選択ができるようになっている。仮想機構を表示しない場合には軌跡の曲線だけの表示となる。詳細設定ボタン1307Pを押すと、さらに、軌跡の太さの設定、軌跡の表示色の設定、座標軸と座標数値を表示する設定などを行うことができる。
 画面の下部には動画再生制御ボタン1310が表示されている。
 再生時間バー1314は、制御プログラムを最初から最後まで実行するのに要する時間を表している。現在時刻つまみ1312は、再生時間バー1314上を制御プログラムの実行時間の経過にしたがって左から右に移動する。現在時刻つまみ1312をマウス906でドラッグ操作することにより動画の表示開始時刻を調整することができる。軌跡始点つまみ1308、軌跡終点つまみ1316は、軌跡の表示開始時刻、終了時刻を示しており、いずれもマウス906でドラッグ操作することにより再生時間バー1314に沿って移動させることができる。現在位置が時間の経過とともに連続的に移動する場合は、軌跡始点つまみ1308または軌跡終点つまみ1316を動かすとそれに応じて表示されている軌跡の長さが変わる。
 動画の表示を開始すると、各機構要素が動いて現在位置マーカーが軌跡に沿って動いていく様子が表示される。
 動画を構成する順次に表示される各静止画は、すべての制御周期について作成せず、一定間隔ごとの制御周期について作成してもよい。
 画像表示欄1302において、軌跡に重ねて表示されている多数の十字マークはシミュレーションの再開可能点が設定されている位置を示す。この例では、時間的に一定間隔で再開可能点が設定されている。ユーザは、これらのマークのいずれかをクリックして選択し、プルダウンメニューから「再開点として指定」を選択することにより、シミュレーション再開点を指定することができる。この場合、シミュレーション部は、ユーザによって指示された軌跡上の位置に対応する再開可能制御周期を特定し、当該再開可能制御周期からシミュレーションの再実行を開始する。このようにすることにより、ユーザは、位置の指令値の空間的軌跡と対応付けて再実行の開始を指示することができる。
 図18は、本発明の実施の形態に従う軸位置のリストの表示ウインドウ画面1400を説明する図である。
 図18を参照して、本発明の実施の形態に従う表示ウインドウ画面1400は、再開可能点が設定されている制御周期に対応する時間と軸位置のリストが表示され、その中から再開点を指定することができる。
 スクロールバー1402を操作することにより表示ウインドウ画面に表示される内容をスクロールすることができる。指定できる再開点は1つのみである。本例においては、各軸の位置が数値で表示されているが、軸位置を表す変数名によって表示してもよい。そして、「OK」ボタン1404をクリック(押下)することにより再開点の指定が有効となる。また、「キャンセル」ボタン1406をクリック(押下)することにより再開点の指定を中止することができる。
 この場合、シミュレーション部806は、ユーザによって指示された位置のリスト上の位置に対応する再開可能制御周期を特定し、当該再開可能制御周期からシミュレーションの再実行を開始する。このようにすることにより、ユーザは、制御プログラムの実行結果の推移と対応付けて再実行の開始を指示することができる。
 図19は、本発明の実施の形態に従うBufferedモードを説明する図である。
 図19(A)を参照して、Bufferedモードは、先行側(左側)のFBのAxis出力端子と後続側(右側)のFBのAxis入力端子を直結することにより2つのFBを直列に接続し、先行側のFBの実行中に、後続側のFBのExecute端子にON(1の値)を入力して後続側のFBをBusy状態としておくモードである。あらかじめBusy状態とされた後続側のFBは先行側のFBが実行完了した制御周期の次の制御周期からActiveとなって指令値の算出を開始する。
 Bufferedモードは、後続側のFBのBufferMode端子に「Buffered」を入力することにより指定する。
 後続側のFBの後ろにさらに別のFBを直列に接続してそのFBにもBufferedモードを指定することも可能である。
 図19(B)を参照して、ここでは、BufferedモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートが示されている。
 時刻t1にFB1が起動してBusy状態およびActive状態となる場合が示されている。また、時刻t2にFB2が起動してBusy状態となる場合が示されている。また、時刻t3にFB2がActive状態となる場合が示されている。
 再開可能点の設定方式として、「FBのActive ON」と「FBのBusy ON」の両方を指定すると、グラフの時刻t1,t2,t3に対応する制御周期が再開可能点となる。
 図20は、本発明の実施の形態に従うAbortingモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを説明する図である。
 図19(A)の2つのFBを直列接続した状態で、後続側のFBのBufferMode端子に「Aborting」を入力すると、Abortingモードとなる。Abortingモードでは、先行側のFBの実行中に、後続側のFBのExecute端子にON(1の値)を入力すると、直ちに、先行側のFBの実行が中止され、次の制御周期で後続側のFBがActiveとなって指令値の算出を開始する。後続側のFBの後ろにさらに別のFBを直列に接続してそのFBにもAbortingモードを指定することも可能である。
 再開可能点の設定方式として、「FBのActive ON」と「FBのBusy ON」の両方を指定すると、グラフの時刻t1,t2に対応する制御周期が再開可能点となる。Bufferedモードの場合に後続側のFBが実行開始した時刻t3はAbortingモードでは再開可能点とならない。
 次に、Blendingモードについて説明する。Blendingモードは先行側のFBが中止されずに実行完了する点でBufferedモードと共通するが、Bufferedモードのように速度がいったんゼロになるのではなく、中継速度での移動を継続したまま先行側のFBがActiveな状態から後続側のFBがActiveな状態に移行する。Blendingモードには、中継速度の決定のされ方により、BlendingNextモード、BlendingPreviousモード、BlendingHighモード、BlendingLowモードの4つのモードがある。
 図21は、本発明の実施の形態に従うBlendingNextモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを示す図である。
 図19(A)の2つのFBを直列接続した状態で、後続側のFBのBufferMode端子に「BlendingNext」を入力するとBlendingNextモードになる。
 BlendingNextモードでは、先行側のFBの実行中に、後続側のFBのExecute端子にON(1の値)を入力すると、先行側のFBの終了速度が後続側のFBの目標速度となるように先行側FBの指令値演算内容が調整される。あらかじめBusy状態とされた後続側のFBは先行側のFBが実行完了した制御周期の次の制御周期からActiveとなって指令値の算出を開始する。
 後続側のFBの後ろにさらに別のFBを直列に接続してそのFBにもBlendingNextモードを指定することも可能である。
 再開可能点の設定方式として、「FBのActive ON」と「FBのBusy ON」の両方を指定すると、グラフの時刻t1,t2,t3に対応する制御周期が再開可能点となる。
 図22は、本発明の実施の形態に従うBlendingPreviousモードにおけるFBの一部の端子について入力される信号および出力される信号のタイミングチャートを示す図である。
 図19(A)の2つのFBを直列接続した状態で、後続側のFBのBufferMode端子に「BlendingPrevious」を入力するとBlendingPreviousモードになる。
 BlendingPreviousモードでは、先行側のFBの実行中に、後続側のFBのExecute端子にON(1の値)を入力すると、先行側のFBが実行完了まで目標速度を維持するように先行側FBの指令値演算内容が調整される。あらかじめBusy状態とされた後続側のFBは先行側のFBが実行完了した制御周期の次の制御周期からActiveとなって指令値の算出を開始する。
 後続側のFBの後ろにさらに別のFBを直列に接続してそのFBにもBlendingPreviousモードを指定することができる。
 再開可能点の設定方式として、「FBのActive ON」と「FBのBusy ON」の両方を指定すると、グラフの時刻t1,t2,t3に対応する制御周期が再開可能点となる。
 また、図19(A)の2つのFBを直列接続した状態で、後続側のFBのBufferMode端子に「BlendingHigh」を入力するとBlendingHighモードになる。BlendingHighモードでは、先行側FBの目標速度と後続側FBの目標速度の大きい方が中継速度となる。すなわち、先行側FBの目標速度の方が大きい場合の動作はBlendingPreviousモードの動作と同じであり、先行側FBの目標速度の方が小さい場合の動作はBlendingNextモードの動作と同じである。
 また、図19(A)の2つのFBを直列接続した状態で、後続側のFBのBufferMode端子に「BlendingLow」を入力するとBlendingLowモードになる。BlendingLowモードでは、先行側FBの目標速度と後続側FBの目標速度の小さい方が中継速度となる。すなわち、先行側FBの目標速度の方が大きい場合の動作はBlendingNextモードの動作と同じであり、先行側FBの目標速度の方が小さい場合の動作はBlendingPreviousモードの動作と同じである。
 以上、1つの軸について目標位置を絶対座標で指定するモーションファンクションブロックを例に説明してきたが、モーションファンクションブロックには、目標位置をそのFBの実行開始時の位置からの相対座標で指定するものや、複数の軸をグループ化してグループに含まれる各軸の移動開始と移動終了のタイミングおよび途中の速度制御を同期させることにより2次元空間または3次元空間内の2点間を直線的に移動させるもの、さらに2点間を円弧状の軌跡を描いて移動させるものなど、いろいろな種類がある。いうまでもなく、いずれの場合にも本発明を適用することができる。
 なお、コンピュータを機能させて、上述のフローで説明したような制御を実行させる方法あるいは当該方法を実現するプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、CD-ROM(Compact Disk-Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)およびメモリカードなどの一時的でないコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
 なお、プログラムは、コンピュータのオペレーションシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
 また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
 提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
 以上、本発明の実施の形態について説明したが、今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は請求の範囲によって示され、請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
 2 サーバ、4 ネットワーク、8 コントローラサポートプログラム、10,15 制御プログラム、14 コントローラ、16 制御対象装置、17 モータドライバ、18 モータ、50 XYZガイド、60 真空吸着式チャック、70 ICトレイ、75 ICトレイコンベア、80 ICチップコンベア、100 ICチップ移載装置、802 ユーザインタフェース部、804 表示データ作成部、806 シミュレーション部、808 制御プログラム記憶部、810 制御プログラム編集部、812 コントローラインタフェース部、820 シミュレーション制御部、822 デバッグ支援部、824 制御周期計数部、826 再開用データ記憶部、828 再開用データバッファ、830 実行結果データ記憶部、840 シーケンス制御シミュレーション部、842 シーケンス演算制御部、844 シーケンス演算実行部、846 シーケンス変数記憶部、850 モーション制御シミュレーション部、852 モーション演算制御部、854 モーション演算実行部、856 モーション変数記憶部。

Claims (13)

  1.  機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムをシミュレーション実行することができるコントローラサポート装置であって、
     前記制御プログラムをシミュレーション実行し実行結果データを生成するシミュレーション手段(806)と、
     前記シミュレーション手段によって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成手段(804)と、
     前記シミュレーション手段に対するユーザの指示を受け付ける受け付け手段(802)と、
     前記表示データ作成手段によって作成された表示データを表示することができる表示器(907)とを備え、
     前記シミュレーション手段は、
     前記制御プログラムのシーケンス制御部分をシミュレーション実行し、前記シーケンス制御部分に関する実行結果データを生成するシーケンス演算実行部(844)と、
     前記シーケンス演算実行部がシミュレーション実行するために使用するシーケンス変数記憶部(846)と、
     前記制御プログラムのモーション制御部分をシミュレーション実行し、前記モーション制御部分に関する実行結果データを生成するモーション演算実行部(854)と、
     前記モーション演算実行部がシミュレーション実行するために使用するモーション変数記憶部(856)と、
     制御周期の実行回数を計数する制御周期計数部(824)と、
     シミュレーションの再実行を開始することができる制御周期である再開可能制御周期に対応する前記実行回数のデータと、前記シーケンス変数記憶部および前記モーション変数記憶部に記憶されているデータのうち前記再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ記憶部(828)とを備え、
     前記シミュレーション手段は、前記再開可能制御周期を特定し、前記再開可能制御周期に対応する前記再開用データを前記再開用データ記憶部に記憶し、
     前記シミュレーション手段は、再実行を開始する制御周期を特定するための指定を前記受け付け手段から取得し、前記指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する前記保存された再開用データを用いて前記特定された制御周期からシミュレーションの再実行を開始する、コントローラサポート装置。
  2.  前記制御プログラムを編集することができる編集手段(810)をさらに備え、
     前記編集手段は、前記シミュレーション手段においてシミュレーション実行されたことがある制御プログラムを修正するユーザの操作を受け付け可能にされており、
     前記シミュレーション手段は、前記編集手段により修正された制御プログラムについて、当該制御プログラムが修正される前に保存した再開用データを用いてシミュレーションの再実行を開始するユーザの操作を受け付け可能にされている、請求項1に記載のコントローラサポート装置。
  3.  前記編集手段は、ユーザの操作により前記制御プログラムのモーション制御部分を修正し、
     前記シミュレーション手段は、修正されたモーション制御部分を特定する情報を前記編集手段から取得し、前記再開可能制御周期の中から、最も最近に修正されたモーション制御部分から再実行することができる制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する、請求項2に記載のコントローラサポート装置。
  4.  前記編集手段は、前記表示器に前記制御プログラムの内容をリスト表示し、
     前記受け付け手段は、前記リスト表示上で、再実行を開始するモーション制御部分の指定を受け付け、
     前記シミュレーション手段は、前記再開可能制御周期の中から、前記指定されたモーション制御部分から再実行することができる制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する、請求項2に記載のコントローラサポート装置。
  5.  前記制御プログラムのモーション制御部分は、それぞれの前記制御周期において、指令値を算出する状態である活性状態および前記活性状態でない非活性状態のいずれかの状態であり、
     前記シミュレーション手段は、前記モーション制御部分が前記非活性状態から前記活性状態となる制御周期を基準として前記再開可能制御周期を特定する、請求項1に記載のコントローラサポート装置。
  6.  前記制御プログラムのモーション制御部分は、それぞれの前記制御周期において、当該モーション制御部分が実行中の状態である実行中状態および前記実行中状態でない非実行中状態のいずれかの状態であり、
     前記シミュレーション手段は、前記モーション制御部分が前記非実行中状態から前記実行中状態となる制御周期を基準として前記再開可能制御周期を特定する、請求項1に記載のコントローラサポート装置。
  7.  前記シミュレーション手段は、一定間隔ごとの制御周期を前記再開可能制御周期として特定する、請求項1に記載のコントローラサポート装置。
  8.  前記表示データ作成手段は、前記実行結果データの時間的な変化をグラフとして表示するための表示データを作成し、
     前記受け付け手段は、前記表示器に表示された前記グラフ上の位置についてのユーザの指示を受け付け、
     前記シミュレーション手段は、前記再開可能制御周期の中から、ユーザによって指示された前記グラフ上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する、請求項1に記載のコントローラサポート装置。
  9.  前記表示データ作成手段は、前記シミュレーション手段によって生成された位置についての実行結果データの時間的な変化を2次元空間または3次元空間における軌跡として表示するための表示データを作成し、
     前記受け付け手段は、前記軌跡上の位置についてのユーザの指示を受け付け、
     前記シミュレーション手段は、前記再開可能制御周期の中から、ユーザによって指示された前記軌跡上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する、請求項1に記載のコントローラサポート装置。
  10.  前記表示データ作成手段は、前記実行結果データの時間的な変化を位置のリストとして表示するための表示データを作成し、
     前記受け付け手段は、前記表示器に表示された前記位置のリスト上の位置についてのユーザの指示を受け付け、
     前記シミュレーション手段は、前記再開可能制御周期の中から、ユーザによって指示された前記位置のリスト上の位置に対応する制御周期を特定し、当該制御周期からシミュレーションの再実行を開始する、請求項1に記載のコントローラサポート装置。
  11.  機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行する、制御プログラムのシミュレーション方法であって、
     ユーザの指示により前記制御プログラムをシミュレーション実行し、実行結果データを生成するシミュレーション演算ステップ(S14)と、
     前記シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップ(S16)と、
     前記表示データ作成ステップによって作成された表示データを前記表示器に表示する表示ステップ(S18)とを備え、
     前記シミュレーション演算ステップは、
     前記制御プログラムのシーケンス制御部分をシミュレーション実行し、シーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップ(S36)と、
     前記制御プログラムのモーション制御部分をシミュレーション実行し、モーション制御部分に関する実行結果データを生成するモーション演算実行ステップ(S38)と、
     制御周期の実行回数を計数する制御周期計数ステップ(S40)と、
     前記シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップ(S42)と、
     前記再開可能制御周期に対応する前記実行回数のデータと、前記シーケンス制御部分の実行に関係するシーケンス変数データおよび前記モーション制御部分の実行に関係するモーション変数データのうち前記再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップ(S44)と、
     再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、前記指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する前記保存された再開用データを用いて前記特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップ(S48)とを含む、制御プログラムのシミュレーション方法。
  12.  機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行するためのコントローラのサポートプログラムであって、
     前記制御プログラムは、前記コントローラサポート装置に対して、
     ユーザの指示により前記制御プログラムをシミュレーション実行し、実行結果データを生成するシミュレーション演算ステップ(S14)と、
     前記シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップ(S16)と、
     前記表示データ作成ステップによって作成された表示データを前記表示器に表示する表示ステップ(S18)とを実行させ、
     前記シミュレーション演算ステップは、
     前記制御プログラムのシーケンス制御部分をシミュレーション実行しシーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップ(S36)と、
     前記制御プログラムのモーション制御部分をシミュレーション実行しモーション制御部分に関する実行結果データを生成するモーション演算実行ステップ(S38)と、
     制御周期の実行回数を計数する制御周期計数ステップ(S40)と、
     前記シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップ(S42)と、
     前記再開可能制御周期に対応する前記実行回数のデータと、前記シーケンス制御部分の実行に関係するシーケンス変数データおよび前記モーション制御部分の実行に関係するモーション変数データのうち前記再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップ(S44)と、
     再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、前記指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する前記保存された再開用データを用いて前記特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップ(S48)とを含む、コントローラのサポートプログラム。
  13.  機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、表示器を有するコントローラサポート装置においてシミュレーション実行するためのコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体であって、
     前記制御プログラムは、前記コントローラサポート装置に対して、
     ユーザの指示により前記制御プログラムをシミュレーション実行し実行結果データを生成するシミュレーション演算ステップ(S14)と、
     前記シミュレーション演算ステップによって生成された実行結果データの時間的な変化を表示するための表示データを作成する表示データ作成ステップ(S16)と、
     前記表示データ作成ステップによって作成された表示データを前記表示器に表示する表示ステップ(S18)とを実行させ、
     前記シミュレーション演算ステップは、
     前記制御プログラムのシーケンス制御部分をシミュレーション実行しシーケンス制御部分に関する実行結果データを生成するシーケンス演算実行ステップ(S36)と、
     前記制御プログラムのモーション制御部分をシミュレーション実行しモーション制御部分に関する実行結果データを生成するモーション演算実行ステップ(S38)と、
     制御周期の実行回数を計数する制御周期計数ステップ(S40)と、
     前記シミュレーションの再実行を開始することができる制御周期である再開可能制御周期を特定するステップ(S42)と、
     前記再開可能制御周期に対応する前記実行回数のデータと、前記シーケンス制御部分の実行に関係するシーケンス変数データおよび前記モーション制御部分の実行に関係するモーション変数データのうち前記再開可能制御周期からシミュレーションの再実行を開始するのに用いられる変数データとを含む再開用データを保存する再開用データ保存ステップ(S44)と、
     再実行を開始する制御周期を特定するためのユーザによる指定を受け付け、前記指定を用いて再実行を開始する制御周期を特定し、特定した制御周期に対応する前記保存された再開用データを用いて前記特定された制御周期からシミュレーションの再実行を開始する再実行開始ステップ(S48)とを含む、コントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体。
PCT/JP2011/053032 2010-03-15 2011-02-14 コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体 WO2011114825A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP11756015.1A EP2549344B1 (en) 2010-03-15 2011-02-14 Simulation method of control program enabling a selective restart of the simulation
US13/634,907 US9607112B2 (en) 2010-03-15 2011-02-14 Controller support device, simulation method of control program, support program for a controller, and computer readable storage medium for storing the support program of the controller
CN201180014340.4A CN102804087B (zh) 2010-03-15 2011-02-14 控制器支持装置、控制程序的仿真方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010057467A JP5246186B2 (ja) 2010-03-15 2010-03-15 コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体
JP2010-057467 2010-03-15

Publications (1)

Publication Number Publication Date
WO2011114825A1 true WO2011114825A1 (ja) 2011-09-22

Family

ID=44648932

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/053032 WO2011114825A1 (ja) 2010-03-15 2011-02-14 コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体

Country Status (5)

Country Link
US (1) US9607112B2 (ja)
EP (1) EP2549344B1 (ja)
JP (1) JP5246186B2 (ja)
CN (1) CN102804087B (ja)
WO (1) WO2011114825A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014052037A1 (en) * 2012-09-27 2014-04-03 Siemens Product Lifecycle Management Software Inc. System and method for simulation of virtual model
JP2015147259A (ja) * 2014-02-05 2015-08-20 株式会社デンソーウェーブ ロボットの教示装置
EP2816426A4 (en) * 2012-03-15 2017-01-04 Omron Corporation Information processing apparatus, simulation method, and program
JP2019053718A (ja) * 2017-09-14 2019-04-04 オークマ株式会社 加工シミュレーション装置
JP2021036479A (ja) * 2020-08-07 2021-03-04 株式会社キーエンス プログラマブルロジックコントローラおよびメインユニット
US11188048B2 (en) 2018-10-23 2021-11-30 Keyence Corporation Programmable logic controller and main unit
JP7466768B2 (ja) 2021-05-10 2024-04-12 三菱電機株式会社 製造装置設計検証システム

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8893065B2 (en) * 2012-07-11 2014-11-18 Mentor Graphics Corporation Biometric markers in a debugging environment
KR101775808B1 (ko) * 2013-04-12 2017-09-06 미쓰비시덴키 가부시키가이샤 프로그래머블 컨트롤러의 주변장치 및 디버그 지원 프로그램
CN106104397B (zh) * 2014-03-14 2018-07-10 欧姆龙株式会社 控制装置及控制系统
JP6399082B2 (ja) * 2014-03-14 2018-10-03 オムロン株式会社 制御システム
CN105393180B (zh) * 2014-04-30 2017-08-25 三菱电机株式会社 仿真系统、可编程控制器、仿真装置、工程设计工具
WO2015173886A1 (ja) * 2014-05-13 2015-11-19 三菱電機株式会社 制御装置および制御方法
JP5956506B2 (ja) 2014-05-23 2016-07-27 ファナック株式会社 プログラム加工再開機能を有する数値制御装置
JP6476594B2 (ja) * 2014-05-26 2019-03-06 オムロン株式会社 シミュレーションシステム
JP6395467B2 (ja) * 2014-06-19 2018-09-26 三菱電機株式会社 ラダー関数シミュレータ、ラダー回路図編集装置及びラダー関数シミュレータプログラム
JP2016012191A (ja) * 2014-06-27 2016-01-21 オムロン株式会社 情報処理装置、情報処理方法、およびプログラム
JP6140111B2 (ja) 2014-07-14 2017-05-31 ファナック株式会社 設定の自動復元機能および誤設定防止機能を備えた数値制御装置
JP6117281B2 (ja) * 2015-06-23 2017-04-19 Thk株式会社 電動アクチュエータを用いたエアポンプ装置及びエアポンプシステム
KR102079499B1 (ko) * 2015-10-20 2020-02-21 엘에스산전 주식회사 Plc 위치 결정 시스템의 축별 제어주기 독립 할당 방법
JP6432494B2 (ja) * 2015-11-30 2018-12-05 オムロン株式会社 監視装置、監視システム、監視プログラムおよび記録媒体
JP6639310B2 (ja) * 2016-04-06 2020-02-05 株式会社東芝 仮想プラントシミュレーションシステム、指令装置、仮想プラントシミュレーション方法
WO2017179120A1 (ja) * 2016-04-12 2017-10-19 三菱電機株式会社 シミュレーション再現装置およびシミュレーション再現プログラム
JP2018055654A (ja) * 2016-09-30 2018-04-05 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
CN109844659B (zh) * 2016-10-14 2022-04-05 三菱电机株式会社 仿真装置
KR102126270B1 (ko) * 2017-08-28 2020-06-24 (주)이노시뮬레이션 실시간 모션 시뮬레이션 시스템의 모션버퍼 제어방법
US20190079489A1 (en) * 2017-09-14 2019-03-14 Okuma Corporation Machining simulation apparatus
JP7087316B2 (ja) * 2017-09-27 2022-06-21 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
CN112783617B (zh) * 2020-12-10 2024-03-29 国电南京自动化股份有限公司 一种适用于轨道交通监控应用的带虚拟执行的顺序控制方法
JP7433550B1 (ja) 2023-03-27 2024-02-19 三菱電機株式会社 動作予測プログラム、動作予測装置及び動作予測方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1011116A (ja) * 1996-06-19 1998-01-16 Keyence Corp データ処理装置、シミュレーション方法、及び記録媒体
JP2001209406A (ja) 2000-01-25 2001-08-03 Omron Corp Plcシミュレータ装置
JP2002091523A (ja) * 2000-09-14 2002-03-29 Mori Seiki Co Ltd 自動プログラミング・シミュレーション装置
JP2007293409A (ja) * 2006-04-21 2007-11-08 Mitsubishi Electric Corp シミュレーション方法およびその装置
JP2009265943A (ja) * 2008-04-25 2009-11-12 Sodick Co Ltd 加工シミュレーション装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5229948A (en) * 1990-11-03 1993-07-20 Ford Motor Company Method of optimizing a serial manufacturing system
US5485620A (en) * 1994-02-25 1996-01-16 Automation System And Products, Inc. Integrated control system for industrial automation applications
CN1427337A (zh) * 2001-12-21 2003-07-02 洛阳玻璃股份有限公司 开关量顺序控制过程的模拟仿真系统和模拟仿真方法
CA2510556C (en) * 2004-07-01 2013-02-19 Cae Inc. Method and system for simulation-based troubleshooting and fault verification in operator-controlled complex systems
JP4343072B2 (ja) * 2004-09-16 2009-10-14 ヤマザキマザック株式会社 Nc加工シミュレーション装置
JP4505295B2 (ja) * 2004-09-16 2010-07-21 ヤマザキマザック株式会社 Nc加工シミュレーション方法及びnc加工シミュレーション装置
JP4920785B2 (ja) * 2008-04-22 2012-04-18 三菱電機株式会社 数値制御方法及びその装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1011116A (ja) * 1996-06-19 1998-01-16 Keyence Corp データ処理装置、シミュレーション方法、及び記録媒体
JP2001209406A (ja) 2000-01-25 2001-08-03 Omron Corp Plcシミュレータ装置
JP2002091523A (ja) * 2000-09-14 2002-03-29 Mori Seiki Co Ltd 自動プログラミング・シミュレーション装置
JP2007293409A (ja) * 2006-04-21 2007-11-08 Mitsubishi Electric Corp シミュレーション方法およびその装置
JP2009265943A (ja) * 2008-04-25 2009-11-12 Sodick Co Ltd 加工シミュレーション装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2549344A4 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2816426A4 (en) * 2012-03-15 2017-01-04 Omron Corporation Information processing apparatus, simulation method, and program
WO2014052037A1 (en) * 2012-09-27 2014-04-03 Siemens Product Lifecycle Management Software Inc. System and method for simulation of virtual model
JP2015147259A (ja) * 2014-02-05 2015-08-20 株式会社デンソーウェーブ ロボットの教示装置
JP2019053718A (ja) * 2017-09-14 2019-04-04 オークマ株式会社 加工シミュレーション装置
US11188048B2 (en) 2018-10-23 2021-11-30 Keyence Corporation Programmable logic controller and main unit
JP2021036479A (ja) * 2020-08-07 2021-03-04 株式会社キーエンス プログラマブルロジックコントローラおよびメインユニット
JP7466768B2 (ja) 2021-05-10 2024-04-12 三菱電機株式会社 製造装置設計検証システム

Also Published As

Publication number Publication date
CN102804087A (zh) 2012-11-28
EP2549344A1 (en) 2013-01-23
JP2011192016A (ja) 2011-09-29
US20130124184A1 (en) 2013-05-16
CN102804087B (zh) 2015-04-15
EP2549344B1 (en) 2016-05-18
JP5246186B2 (ja) 2013-07-24
US9607112B2 (en) 2017-03-28
EP2549344A4 (en) 2014-10-01

Similar Documents

Publication Publication Date Title
JP5246186B2 (ja) コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体
US7945349B2 (en) Method and a system for facilitating calibration of an off-line programmed robot cell
US7194396B2 (en) Simulation device
US20190051049A1 (en) Information processing apparatus, information processing method, and non-transitory storage medium
US9563195B2 (en) Device and method for displaying a change in the position of an object
US7174225B2 (en) Method and system for simulating processing of a workpiece with a machine tool
US10814486B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
US10761513B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
US10860010B2 (en) Information processing apparatus for estimating behaviour of driving device that drives control target, information processing method and computer readable recording medium
TWI661358B (zh) 模擬裝置
US20210018903A1 (en) Information processing system, information processing method, and recording medium
US20190101893A1 (en) Information processing device, information processing method, and computer-readable recording medium
JP2004259112A (ja) 評価用システム及び評価方法並びにモーションコントローラ
JP2010033192A (ja) 情報処理装置装置、及びその制御方法、コンピュータプログラム、記憶媒体
JP3948329B2 (ja) ロボットコントローラシミュレーション装置
JPH11272307A (ja) モーションコントロール装置
JP2002301673A (ja) ロボット
JPH1139011A (ja) プログラム作成支援方法およびプログラム作成支援装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180014340.4

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11756015

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011756015

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13634907

Country of ref document: US