WO2012124134A1 - コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法 - Google Patents

コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法 Download PDF

Info

Publication number
WO2012124134A1
WO2012124134A1 PCT/JP2011/056770 JP2011056770W WO2012124134A1 WO 2012124134 A1 WO2012124134 A1 WO 2012124134A1 JP 2011056770 W JP2011056770 W JP 2011056770W WO 2012124134 A1 WO2012124134 A1 WO 2012124134A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
execution time
control
controller
test
Prior art date
Application number
PCT/JP2011/056770
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 EP11815660.3A priority Critical patent/EP2533114B1/en
Priority to CN201180003425.2A priority patent/CN102792235B/zh
Priority to US13/399,111 priority patent/US8977534B2/en
Publication of WO2012124134A1 publication Critical patent/WO2012124134A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13174Pc, computer connected to plc to simulate machine

Definitions

  • the present invention relates to estimation of the execution time of a control program in a controller support device for supporting the use of a controller such as a PLC (Programmable Logic Controller; also referred to as a programmable controller) used to control the operation of a machine or equipment. .
  • a controller such as a PLC (Programmable Logic Controller; also referred to as a programmable controller) used to control the operation of a machine or equipment.
  • Controllers used to control the operation of machines and equipment include general-purpose PLCs and dedicated program control controllers for individual machines.
  • the PLC is, for example, a CPU (Central Processing Unit) unit that includes a microprocessor that executes control programs, and an IO (Input Output) unit that is responsible for signal input from external switches and sensors and signal output to external relays and actuators.
  • a CPU Central Processing Unit
  • IO Input Output
  • the PLC performs a control operation while exchanging data via the PLC system bus and / or the field network for each control program execution cycle between these units.
  • the controller support device is used to create a control program to be executed by the controller and various setting information for the controller, and transfer them to the controller.
  • the controller support device is configured, for example, by installing a controller support program in a general-purpose computer.
  • the controller support device includes, for example, an editor function for creating a source list of a control program, a compiler function for generating an object program that operates on the controller from the source list of the control program, and a controller for causing the control program to be tested in the controller support device It has a simulator function and a communication function with the controller.
  • the execution time of the control program is referred to when determining the cycle of the execution cycle of the control program. Further, when different execution priorities and execution cycle periods are determined for a plurality of control programs to be executed by the controller, the execution time of each control program is referred to.
  • the controller support device and the controller often have different hardware and operation systems for control program execution. Also, the execution code itself of the control program may be different for the simulator and the controller. For this reason, the execution time of the control program executed by the simulator of the controller support apparatus may be different from the execution time of the control program executed by the controller.
  • Patent Document 1 discloses a method of obtaining an execution time in a PLC support device when a control program is executed by a PLC. Specifically, the actual processing time data in the PLC of each instruction used in the control program is prepared, and the actual processing time data is referred to each time each instruction is processed in the program simulation execution process in the simulator. Thus, a method for integrating the actual processing time corresponding to the command is disclosed.
  • the conventional PLC employs an ASIC (Application Specific Integrated Circuit) developed for executing a control program in its arithmetic unit, and the ASIC executes an execution code corresponding to a mnemonic instruction for the PLC.
  • ASIC Application Specific Integrated Circuit
  • an instruction used in a PLC programming language such as a ladder language can be converted into a PLC mnemonic instruction on a one-to-one basis.
  • the execution time of the control program can be determined to some extent by the method of accumulating the actual processing time data of each instruction as disclosed in Patent Document 1.
  • An object of the present invention is to estimate the execution time of a control program in a controller with higher accuracy in a controller support device.
  • a controller support device including a storage unit and a calculation unit.
  • the storage unit is used to store the controller support program and calibration data representing the relationship between the first test execution time and the second test execution time.
  • the first test execution time is an execution time measured in the simulator of the first test program that is an object program that is generated from the test source program and operates in the simulator of the controller
  • the second test execution time is the test source It is the execution time measured in the controller of the second test program, which is an object program operating in the controller, generated from the program.
  • the controller support program is an execution of a first control program, which is an object program operating in a simulator, generated from a control source program, which is a source program of a control program created according to a user's control purpose, measured in the simulator.
  • the calculation unit executes a process for calculating an estimated execution time that is an estimated value of the execution time in the controller and a process for outputting data representing the estimated execution time.
  • the storage unit is further used for storing the first control program.
  • the controller support program further causes the arithmetic unit to execute processing for causing the controller support device to function as a simulator and processing for measuring the first control execution time by executing the first control program in the simulator.
  • the controller support device further includes a display unit.
  • the storage unit is further used for storing the first test program and the second test execution time.
  • the controller support program further includes a process of measuring the first test execution time by executing the first test program in the simulator, and a process of calculating calibration data from the first test execution time and the second test execution time. Let the arithmetic unit execute it.
  • the process for outputting the data representing the estimated execution time is a process for creating display data for displaying the estimated execution time on the display unit.
  • a controller support program to be executed in a controller support device including a storage unit and a calculation unit.
  • the storage unit is used to store the controller support program and calibration data representing the relationship between the first test execution time and the second test execution time.
  • the first test execution time is an execution time measured in the simulator of the first test program that is an object program that is generated from the test source program and operates in the simulator of the controller
  • the second test execution time is the test source It is the execution time measured in the controller of the second test program, which is an object program operating in the controller, generated from the program.
  • the controller support program is an execution of a first control program, which is an object program operating in a simulator, generated from a control source program, which is a source program of a control program created according to a user's control purpose, measured in the simulator.
  • the calculation unit executes a process for calculating an estimated execution time that is an estimated value of the execution time in the controller and a process for outputting data representing the estimated execution time.
  • the storage unit is further used for storing the first control program.
  • the controller support program further causes the arithmetic unit to execute processing for causing the controller support device to function as a simulator and processing for measuring the first control execution time by executing the first control program in the simulator.
  • the storage unit is further used for storing the first test program and the second test execution time.
  • the controller support program further includes a process of measuring the first test execution time by executing the first test program in the simulator, and a process of calculating calibration data from the first test execution time and the second test execution time. Let the arithmetic unit execute it.
  • a recording medium storing a controller support program to be executed in a controller support device including a storage unit and a calculation unit.
  • the storage unit is used to store the controller support program and calibration data representing the relationship between the first test execution time and the second test execution time.
  • the first test execution time is an execution time measured in the simulator of the first test program that is an object program that is generated from the test source program and operates in the simulator of the controller
  • the second test execution time is the test source It is the execution time measured in the controller of the second test program, which is an object program operating in the controller, generated from the program.
  • the controller support program is an execution of a first control program, which is an object program operating in a simulator, generated from a control source program, which is a source program of a control program created according to a user's control purpose, measured in the simulator.
  • the calculation unit executes a process for calculating an estimated execution time that is an estimated value of the execution time in the controller and a process for outputting data representing the estimated execution time.
  • the storage unit is further used for storing the first control program.
  • the controller support program further causes the arithmetic unit to execute processing for causing the controller support device to function as a simulator and processing for measuring the first control execution time by executing the first control program in the simulator.
  • the storage unit is further used for storing the first test program and the second test execution time.
  • the controller support program further includes a process of measuring the first test execution time by executing the first test program in the simulator, and a process of calculating calibration data from the first test execution time and the second test execution time. Let the arithmetic unit execute it.
  • a method for estimating the execution time of a control program in a controller that controls a controlled object includes a calibration data calculation step of calculating calibration data representing a relationship between the first test execution time and the second test execution time.
  • the first test execution time is an execution time measured in the simulator of the first test program that is an object program that is generated from the test source program and operates in the simulator of the controller
  • the second test execution time is the test source It is the execution time measured in the controller of the second test program, which is an object program operating in the controller, generated from the program.
  • the method is further measured in the simulator of the first control program, which is an object program that operates in the simulator, generated from the control source program that is the source program of the control program created according to the control purpose of the user.
  • the first control execution time which is the execution time
  • an estimated value of the execution time in the controller of the second control program which is an object program operating in the controller, generated from the control source program.
  • An estimated execution time calculating step for calculating a certain estimated execution time is included.
  • the controller support device can estimate the execution time of the control program in the controller with higher accuracy.
  • a PLC will be described as a typical example of a controller that is supported by the controller support device according to the present embodiment.
  • the PLC controls objects to be controlled such as machines and equipment.
  • the PLC includes a CPU unit as its component.
  • the CPU unit includes a microprocessor, storage means, and a communication circuit.
  • the storage means is used to store a control program and a system program that controls execution of the program.
  • the microprocessor executes a system program and a control program stored in the storage means.
  • the communication circuit transmits output data and receives input data.
  • FIG. 1 is a schematic diagram showing a schematic configuration of a PLC system that supports use by a controller (PLC) support device according to an embodiment of the present invention.
  • PLC controller
  • PLC system SYS includes PLC 1, servo motor driver 3 and remote IO terminal 5 connected to PLC 1 via field network 2, detection switch 6 and relay 7 which are field devices. . Further, the controller support device 8 is connected to the PLC 1 via the connection cable 10 or the like.
  • the PLC 1 includes a CPU unit 13 that executes main arithmetic processing, one or more IO units 14, and a special unit 15. These units are configured to exchange data with each other via the PLC system bus 11. These units are supplied with power of an appropriate voltage by the power supply unit 12. Since each unit configured as the PLC 1 is provided by a PLC manufacturer, the PLC system bus 11 is generally developed and used independently for each PLC manufacturer. On the other hand, for the field network 2, there are many cases where the standards and the like are disclosed so that products from different manufacturers can be connected to each other.
  • the IO unit 14 is a unit related to general input / output processing, and controls input / output of binarized data such as on / off. In other words, the IO unit 14 collects information indicating whether a sensor such as the detection switch 6 is detecting a certain object (on) or not detecting any object (off). . In addition, the IO unit 14 outputs either an activation command (ON) or an inactivation command (OFF) to an output destination such as the relay 7 or the actuator.
  • the special unit 15 has functions not supported by the IO unit 14 such as analog data input / output, temperature control, and communication using a specific communication method.
  • the field network 2 transmits various data exchanged with the CPU unit 13.
  • various types of industrial Ethernet registered trademark
  • industrial Ethernet registered trademark
  • industrial Ethernet for example, EtherCAT (registered trademark), Profinet IRT, MECHATROLINK (registered trademark) -III, Powerlink, SERCOS (registered trademark) -III, and CIP Motion are known. Any of them may be adopted.
  • a field network other than industrial Ethernet may be used. For example, if the motion control is not performed, DeviceNet, CompoNet / IP (registered trademark), or the like may be used.
  • FIG. 1 illustrates the PLC system SYS having both the PLC system bus 11 and the field network 2, but a system configuration in which only one of them is mounted may be employed. For example, all units may be connected by the field network 2. Alternatively, the servo motor driver 3 may be directly connected to the PLC system bus 11 without using the field network 2. Further, a communication unit of the field network 2 may be connected to the PLC system bus 11 and communication may be performed between the CPU unit 13 and a device connected to the field network 2 via the communication unit.
  • the CPU unit 13 directly controls the control target without passing through the IO unit 14, the servo motor driver 3, or the like by providing the CPU unit 13 with the function of the IO unit 14 or the function of the servo motor driver 3. It may be configured.
  • the servo motor driver 3 is connected to the CPU unit 13 via the field network 2 and drives the servo motor 4 according to a command value from the CPU unit 13. More specifically, the servo motor driver 3 receives command values such as a position command value, a speed command value, and a torque command value from the PLC 1 at a constant cycle.
  • the servo motor driver 3 receives a position and speed (typically from the difference between the current position and the previous position) from a detector such as a position sensor (rotary encoder) or torque sensor connected to the shaft of the servo motor 4. (Calculated), an actual measurement value related to the operation of the servo motor 4 such as torque is acquired.
  • the servo motor driver 3 sets a command value from the CPU unit 13 as a target value, and performs feedback control using the actually measured value as a feedback value. That is, the servo motor driver 3 adjusts the current for driving the servo motor 4 so that the actual measurement value approaches the target value.
  • the servo motor driver 3 may be referred to as a servo motor amplifier.
  • FIG. 1 shows a system example in which the servo motor 4 and the servo motor driver 3 are combined, but other configurations, for example, a system in which a pulse motor and a pulse motor driver are combined may be employed.
  • a remote IO terminal 5 is further connected to the field network 2 of the PLC system SYS shown in FIG.
  • the remote IO terminal 5 basically performs processing related to general input / output processing in the same manner as the IO unit 14. More specifically, the remote IO terminal 5 includes a communication coupler 52 for performing processing related to data transmission in the field network 2 and one or more IO units 53. These units are configured to exchange data with each other via the remote IO terminal bus 51.
  • FIG. 2 is a schematic diagram showing a hardware configuration of the CPU unit 13 that is supported by the controller (PLC) support device 8 according to the embodiment of the present invention.
  • the CPU unit 13 includes a microprocessor 100, a chip set 102, a main memory 104, a nonvolatile memory 106, a system timer 108, a PLC system bus controller 120, a field network controller 140, USB connector 110.
  • the chip set 102 and other components are coupled via various buses.
  • the microprocessor 100 and the chipset 102 are typically configured according to a general-purpose computer architecture. That is, the microprocessor 100 interprets and executes the instruction codes sequentially supplied from the chip set 102 according to the internal clock.
  • the chip set 102 exchanges internal data with various connected components and generates instruction codes necessary for the microprocessor 100. Further, the chip set 102 has a function of caching data obtained as a result of execution of arithmetic processing in the microprocessor 100.
  • the CPU unit 13 includes a main memory 104 and a nonvolatile memory 106 as storage means.
  • the main memory 104 is a volatile storage area (RAM) and holds various programs to be executed by the microprocessor 100 after the CPU unit 13 is powered on.
  • the main memory 104 is also used as a working memory when the microprocessor 100 executes various programs.
  • a main memory 104 a device such as DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory) is used.
  • the non-volatile memory 106 holds data such as a real-time OS (Operating System), a PLC 1 system program, a user program, a motion calculation program, and system setting parameters in a non-volatile manner. These programs and data are copied to the main memory 104 so that the microprocessor 100 can access them as necessary.
  • a nonvolatile memory 106 a semiconductor memory such as a flash memory can be used.
  • a magnetic recording medium such as a hard disk drive or an optical recording medium such as a DVD-RAM (Digital Versatile Disk Random Access Memory) can be used.
  • the system timer 108 generates an interrupt signal at regular intervals and provides it to the microprocessor 100. Typically, it is configured to generate an interrupt signal at a plurality of different periods depending on the hardware specifications, but interrupts at an arbitrary period depending on the OS (Operating System), BIOS (Basic Input Output System), etc. It can also be set to generate a signal. Using the interrupt signal generated by the system timer 108, a control operation for each control cycle as described later is realized.
  • the CPU unit 13 includes a PLC system bus controller 120 and a field network controller 140 as communication circuits. These communication circuits transmit output data and receive input data.
  • the transmission of output data and the reception of input data by the communication circuit are performed by using the part responsible for these functions as a communication partner.
  • the PLC system bus controller 120 controls data exchange via the PLC system bus 11. More specifically, the PLC system bus controller 120 includes a DMA (Dynamic Memory Access) control circuit 122, a PLC system bus control circuit 124, and a buffer memory 126. The PLC system bus controller 120 is internally connected to the PLC system bus 11 via the PLC system bus connector 130.
  • DMA Dynamic Memory Access
  • the buffer memory 126 is a transmission buffer for data output to other units via the PLC system bus 11 (hereinafter also referred to as “output data”), and is input from other units via the PLC system bus 11. It functions as a data reception buffer (hereinafter also referred to as “input data”).
  • the output data created by the arithmetic processing by the microprocessor 100 is stored in the main memory 104 originally. Output data to be transferred to a specific unit is read from the main memory 104 and temporarily held in the buffer memory 126. Input data transferred from other units is temporarily stored in the buffer memory 126 and then transferred to the main memory 104.
  • the DMA control circuit 122 transfers output data from the main memory 104 to the buffer memory 126 and transfers input data from the buffer memory 126 to the main memory 104.
  • the PLC system bus control circuit 124 performs processing for transmitting output data of the buffer memory 126 and processing for receiving input data and storing it in the buffer memory 126 with other units connected to the PLC system bus 11. .
  • the PLC system bus control circuit 124 provides functions of a physical layer and a data link layer in the PLC system bus 11.
  • the field network controller 140 controls data exchange through the field network 2. That is, the field network controller 140 controls transmission of output data and reception of input data according to the standard of the field network 2 to be used. For example, when the field network 2 conforming to the EtherCAT (registered trademark) standard is adopted, a field network controller 140 including hardware for performing normal Ethernet (registered trademark) communication is used. In the EtherCAT (registered trademark) standard, a general Ethernet (registered trademark) controller that realizes a communication protocol according to the normal Ethernet (registered trademark) standard can be used. Depending on the type of industrial Ethernet (registered trademark) employed as the field network 2, a special specification Ethernet (registered trademark) controller corresponding to a dedicated communication protocol different from the normal communication protocol is used. When a field network other than industrial Ethernet (registered trademark) is adopted, a dedicated field network controller corresponding to the standard is used.
  • the buffer memory 146 is a transmission buffer for data output to other devices via the field network 2 (this data is also referred to as “output data” hereinafter), and other devices via the field network 2. Or the like (hereinafter, this data is also referred to as “input data”).
  • this data is also referred to as “input data”.
  • the output data created by the arithmetic processing by the microprocessor 100 is stored in the main memory 104 originally.
  • Output data to be transferred to a specific device is read from the main memory 104 and temporarily held in the buffer memory 146.
  • Input data transferred from another device is temporarily stored in the buffer memory 146 and then transferred to the main memory 104.
  • the DMA control circuit 142 transfers output data from the main memory 104 to the buffer memory 146 and transfers input data from the buffer memory 146 to the main memory 104.
  • the field network control circuit 144 performs processing for transmitting output data of the buffer memory 146 and processing for receiving input data and storing it in the buffer memory 146 with other devices connected to the field network 2.
  • the field network control circuit 144 provides physical layer and data link layer functions in the field network 2.
  • the USB connector 110 is an interface for connecting the controller support device 8 and the CPU unit 13. Typically, a program that can be executed by the microprocessor 100 of the CPU unit 13 and transferred from the controller support device 8 is taken into the PLC 1 via the USB connector 110.
  • FIG. 3 is a schematic diagram showing a software configuration executed by the CPU unit 13 that supports the use of the controller (PLC) support device 8 according to the embodiment of the present invention.
  • the software executed by the CPU unit 13 has three layers of a real-time OS 200, a system program 210, and a user program 236.
  • the real-time OS 200 is designed according to the computer architecture of the CPU unit 13, and provides a basic execution environment for the microprocessor 100 to execute the system program 210 and the user program 236.
  • This real-time OS is typically provided by a PLC manufacturer or a specialized software company.
  • the system program 210 is a software group for providing a function as the PLC 1.
  • the system program 210 includes a scheduler program 212, an output processing program 214, an input processing program 216, a sequence command operation program 232, a motion operation program 234, and other system programs 220.
  • the output processing program 214 and the input processing program 216 are executed continuously (integrally), so these programs may be collectively referred to as an IO processing program 218.
  • the user program 236 is created according to the control purpose of the user. In other words, the program is arbitrarily designed according to the line (process) to be controlled using the PLC system SYS.
  • the user program 236 realizes the control purpose of the user in cooperation with the sequence command calculation program 232 and the motion calculation program 234. That is, the user program 236 implements programmed operations by using instructions, functions, function modules, and the like provided by the sequence instruction calculation program 232 and the motion calculation program 234. Therefore, the user program 236, the sequence command calculation program 232, and the motion calculation program 234 may be collectively referred to as the control program 230.
  • the user program 236 is created according to a control purpose (for example, a target line or process) by the user.
  • the user program 236 is typically in the form of an object program that can be executed by the microprocessor 100 of the CPU unit 13.
  • the user program 236 is generated by compiling a source program described in a ladder language or the like in the controller support device 8 or the like. Then, the generated user program 236 in the object program format is transferred from the controller support device 8 to the CPU unit 13 via the connection cable 10 and stored in the nonvolatile memory 106 or the like.
  • the scheduler program 212 controls the process start in each execution cycle and the process resumption after the process interruption for the output process program 214, the input process program 216, and the control program 230. More specifically, the scheduler program 212 controls the execution of the user program 236 and the motion calculation program 234.
  • the CPU unit 13 adopts an execution cycle (control cycle) having a fixed period suitable for the motion calculation program 234 as a common cycle for the entire processing. For this reason, it is difficult to complete all the processes in one control cycle. Therefore, depending on the priority of the process to be executed, the process to be executed in each control cycle and the control cycles And processing that may be executed.
  • the scheduler program 212 manages the execution order of these divided processes. More specifically, the scheduler program 212 executes a program having a higher priority first in each control cycle period.
  • the output processing program 214 rearranges the output data generated by the execution of the user program 236 (control program 230) into a format suitable for transferring to the PLC system bus controller 120 and / or the field network controller 140.
  • the output processing program 214 issues such an instruction.
  • the input processing program 216 rearranges the input data received by the PLC system bus controller 120 and / or the field network controller 140 into a format suitable for use by the control program 230.
  • the sequence command calculation program 232 is a program that is called when a certain sequence command used in the user program 236 is executed and executed to realize the content of the command.
  • the motion calculation program 234 is executed in accordance with an instruction from the user program 236, and is calculated every time a command value output to a motor driver such as the servo motor driver 3 or the pulse motor driver is executed.
  • Other system programs 220 collectively show a group of programs for realizing various functions of the PLC 1 other than the programs individually shown in FIG.
  • the real-time OS 200 provides an environment for switching and executing a plurality of programs over time.
  • an interrupt for starting a control cycle is initialized as an event (interrupt) for outputting (transmitting) output data generated by program execution of the CPU unit 13 to another unit or another device.
  • the real-time OS 200 switches the execution target in the microprocessor 100 from the program being executed at the time of occurrence of the interrupt to the scheduler program 212.
  • the real-time OS 200 executes the programs included in the other system programs 210 when the scheduler program 212 and the program that controls the execution of the scheduler program 212 are not executed at all.
  • a program includes, for example, a program related to communication processing via the connection cable 10 (USB) between the CPU unit 13 and the controller support device 8.
  • control program 230 and the scheduler program 212 are stored in the main memory 104 and the nonvolatile memory 106 that are storage means.
  • FIG. 4 is a sequence diagram showing an example of an execution operation in the CPU unit 13 that is supported by the controller (PLC) support device 8 according to the embodiment of the present invention.
  • FIG. 4 shows a period in which the IO processing program, the control program A, and the control program B are executed along a time axis that passes from the top to the bottom of the page.
  • a broken-line rounded rectangle shown along each time axis of the control programs A and B indicates an execution cycle of the corresponding control program.
  • the control program A uses one control cycle as an execution cycle
  • the control program B uses four control cycles as an execution cycle. Further, it is assumed that the execution priority of the control program A is set higher than the execution priority of the control program B.
  • the sequence program (user program) of the control program A includes a motion command for realizing motion control, and the motion operation program 234 is called and executed by the execution of the motion command.
  • the sequence program of the control program B does not include a motion command.
  • the IO processing program is executed by the execution control of the scheduler program 212.
  • control program A When the output process and the input process by the execution of the IO process program are completed, the control program A is executed by the execution control performed by the scheduler program 212. In the execution of the control program A, the sequence program is first executed, and then the motion calculation program 234 is executed. The sequence instruction operation program 232 is executed each time it is called during execution of the sequence program. The entire control program A (sequence program and motion calculation program) is configured as one thread and is continuously executed without the involvement of the scheduler program 212 during execution.
  • control program B When the execution of the control program A is completed, the control program B is executed by the execution control performed by the scheduler program 212. However, since the control cycle 1 ends (the control cycle 2 starts) during the execution of the control program B, the execution of the control program B is interrupted at that time.
  • the IO processing program and the control program A repeat execution similar to the execution in the control cycle 1.
  • the unexecuted portion of the control program B is executed.
  • the control cycle 2 since the control cycle 2 ends during the execution of the control program B, the execution of the control program B is interrupted again.
  • control program B whose execution has been resumed in the control cycle 3 is completed until the control cycle 3 is completed.
  • control cycle 4 the execution cycle of the control program B started from the control cycle 1 is continued. However, since the control program B has already finished executing in the current execution cycle in the control cycle 3, the control cycle 4 Will not be executed.
  • FIG. 5 is a schematic diagram showing a hardware configuration of the controller support device 8 according to the embodiment of the present invention.
  • the controller support device 8 is typically composed of a general-purpose computer. From the viewpoint of maintainability, a notebook personal computer with excellent portability is preferable.
  • the controller support device 8 includes a CPU 81 that executes various programs including an OS, a ROM (Read Only Memory) 82 that stores BIOS and various data, and data necessary for the CPU 81 to execute the programs.
  • a memory RAM 83 that provides a work area for storing the program, and a hard disk (HDD) 84 that stores programs executed by the CPU 81 in a nonvolatile manner.
  • the CPU 81 corresponds to the calculation unit of the controller support device 8
  • the ROM 82, RAM 83, and hard disk 84 correspond to the storage unit of the controller support device 8.
  • the controller support device 8 further includes a keyboard 85 and a mouse 86 that accept operations from the user, and a monitor 87 for presenting information to the user. Furthermore, the controller support device 8 includes a communication interface (IF) 89 for communicating with the PLC 1 (CPU unit 13) and the like.
  • IF communication interface
  • various programs executed by the controller support device 8 are stored in the CD-ROM 9 and distributed.
  • the program stored in the CD-ROM 9 is read by a CD-ROM (Compact Disk-Read Only Memory) drive 88 and stored in a hard disk (HDD) 84 or the like.
  • the program may be downloaded from a host computer or the like via a network.
  • controller support device 8 is realized by using a general-purpose computer, no further detailed description will be given.
  • FIG. 6 is a schematic diagram showing a software configuration of the controller support device 8 according to the embodiment of the present invention.
  • controller support device 8 executes OS 310 and provides an environment in which various programs included in controller support program 320 can be executed.
  • the controller support program 320 includes an editor program 321, a compiler program 322, a debugger program 323, a simulator program 324, a calibration data calculation program 325, an estimated execution time calculation program 326, an output program 327, and a communication program 328. including.
  • Each program included in the controller support program 320 is typically distributed in a state stored in the CD-ROM 9 and installed in the controller support device 8.
  • the editor program 321 provides functions such as input and editing for creating a user program (source program) 330. More specifically, the editor program 321 provides a storage function and an editing function for the created source program 330 in addition to a function for the user to operate the keyboard 85 and the mouse 86 to create the source program 330 of the user program 236. To do.
  • the editor program 321 inputs a source program of an external control program 230 (in particular, the user program 236), and edits an existing source program of the control program 230 by a user operation.
  • the compiler program 322 provides a function of compiling a control program source program 330 and generating a user program (second control program) 236 in an object program format that can be executed by the microprocessor 100 of the CPU unit 13.
  • the compiler program 322 provides a function of compiling the source program 330 of the control program and generating a user program (first control program) 340 in an object program format that can be executed by the CPU 81 of the controller support device 8.
  • the user program 340 is a simulation object program used for simulating the operation of the PLC 1 by the controller support device 8.
  • the debugger program 323 provides a function for debugging the user program (source program) 330.
  • the contents of the debugging include operations such as partially executing a range designated by the user in the source program, and tracking temporal changes in variable values during the execution of the source program.
  • the simulator program 324 When the simulator program 324 is executed, it builds a simulator for the CPU unit 13 (controller) of the PLC 1 in the controller support device 8. This simulator provides the following functions.
  • the simulator program 324 is a program corresponding to the sequence instruction calculation program 232 and / or the motion calculation program 234 in the CPU unit 13 required when the first control program (simulator object program) 340 operates on the simulator. provide.
  • the execution code itself of the first control program (simulator object program) 340 is a code that can be executed by the CPU 81 of the controller support device 8
  • the execution code of the controller support device 8 is supported under the execution control or support by the above execution environment. Directly executed by the CPU 81.
  • the second control program (controller object program) 236 may be operated on the simulator by the simulator program 324 virtually constructing the microprocessor 100 of the CPU unit 13.
  • the first control program (simulator object program) 340 and the second control program (controller object program) 236 are the same program, it is not necessary to generate them separately.
  • the CPU 81 of the controller support device 8 and the microprocessor 100 of the CPU unit 13 are processors of the same series, and the CPU 81 can execute the execution code of the second control program (controller object program) 236.
  • the first control program (simulator object program) 340 and the second control program (controller object program) 236 are the same program.
  • the calibration data calculation program 325 constitutes a calibration data calculation unit 325A of FIG.
  • the estimated execution time calculation program 326 when executed, constitutes an estimated execution time calculation unit 326A in FIG.
  • the output program 327 constitutes an output unit 327A in FIG. The processing provided by these programs will be described in detail later with reference to FIG.
  • the communication program 328 provides a function of transferring the object program 236 for the CPU unit 13 of the control program 230 to the CPU unit 13 of the PLC 1.
  • the system program 210 mounted on the PLC 1 is stored in the nonvolatile memory 106 of the CPU unit 13 at the manufacturing stage of the CPU unit 13.
  • the system program 210 is stored in the CD-ROM 9
  • the user copies the system program 210 of the CD-ROM 9 to the controller support device 8 and copies the system program using the function provided by the communication program 328. It is also possible to transfer 210 to the CPU unit 13.
  • the real-time OS 200 executed by the CPU unit 13 of the PLC 1 is stored in the CD-ROM 9, the real-time OS 200 can also be reinstalled in the PLC 1 by a user operation.
  • FIG. 7 is a schematic diagram showing the overall processing related to the controller support device 8 according to the embodiment of the present invention.
  • the controller support device 8 whose software configuration is shown in FIG. 6 corresponds to the controller support device A shown in FIG.
  • the method for estimating the execution time of the control program shown in FIG. 7 is centered on the calibration data calculation process step and the estimated execution time calculation process step.
  • the calibration data calculation process is a process for calculating calibration data representing the relationship between the execution time in the controller and the execution time in the simulator measured in advance for the test program for calibration.
  • the estimated execution time calculation process acquires the execution time of the control program measured by the simulator, converts the execution time using the calibration data, and estimates the execution time when the control program is executed by the controller. Is a process for calculating.
  • test program source program (test source program) 370 is prepared.
  • the simulator object program (first test program) 390 is generated from the test source program 370 using the simulator compiler 380. Also, a controller object program (second test program) 392 is generated from the test source program 370 using the controller compiler 382.
  • the execution time is measured by executing the second test program 392 by the controller A, and data of the second test execution time that is the execution time of the second test program 392 is acquired.
  • the processing so far is generally performed by a controller supplier (controller manufacturer, distributor, technical service provider, etc.), and the first test program 390 and the second test execution time are provided to the user. Note that the user may perform the processing so far.
  • the first test program 390 is executed by the simulator 324A, the execution time is measured, and data of the first test execution time that is the execution time of the first test program 390 is acquired. Then, calibration data representing the relationship between the first test execution time and the second test execution time is calculated.
  • the calibration data calculation process is a process of calculating calibration data representing the relationship between the first test execution time and the second test execution time.
  • the first test execution time is an execution time measured in the simulator of the first test program 390, which is an object program that is generated from the test source program 370 and operates in the simulator of the controller.
  • the second test execution time is an execution time measured in the controller of the second test program 392 that is an object program that is generated from the test source program 370 and operates in the controller.
  • control source program 330 that is a source program of a control program created according to the control purpose of the user is prepared.
  • the simulator object program (first control program) 340 is generated from the control source program 330 using the simulator compiler 322A.
  • the first control program 340 is executed by the simulator 324A, the execution time is measured, and data of the first control execution time that is the execution time of the first control program is acquired.
  • the second control program 342 which is an object program operating in the controller, generated from the control source program 330, is an estimation value that is an estimated value of the execution time in the controller.
  • the execution time is calculated.
  • the second control program 342 is generated from the control source program 330 using the controller compiler 322B.
  • the actual generation of the second control program 342 may be performed after the control source program 330 is corrected as necessary based on the estimated execution time.
  • the generated second control program 342 is transferred to the controller B and executed in the controller B.
  • the controller A and the controller B are models that can be regarded as the same from the viewpoint of execution time.
  • the estimated execution time calculation process is a first control program that is an object program that operates in the simulator 324A and that is generated from the control source program 330 that is a source program of a control program created according to the control purpose of the user.
  • the second control program which is an object program that operates in the controller, is generated from the control source program 330 by converting the first control execution time, which is the execution time measured in the simulator 324A, using the calibration data.
  • 342 is a process of calculating an estimated execution time that is an estimated value of the execution time in the controller.
  • output data representing the estimated execution time is created and the output process is executed.
  • the process of creating and outputting the output data is a process of creating and displaying display data for displaying the estimated execution time on the screen of the monitor 87, for example.
  • the process of creating and outputting the output data may be a process of creating and transmitting transmission data for transmitting the estimated execution time to another device.
  • the process of outputting the output data may be a process of storing the output data in a storage unit accessible from outside the controller support device 8.
  • the simulator compiler 380 used for compiling the test source program 370 and the simulator compiler 322A used for compiling the control source program 330 are those that can generate the same object program by compiling the same source program. The same applies to the controller compiler.
  • the controller support device 8 is configured to be able to execute all the subsequent processes provided with the first test program 390 and the second test execution time on a single device. Convenient.
  • the object program may be generated by another device, and the processing performed by the controller support device 8 may be limited to the processing shown as the controller support device B in FIG.
  • the simulator may be configured in another device, and the controller support device 8 may acquire the first control execution time from a simulator that is another device.
  • the calibration data calculation process may be performed by another device, and the controller support device 8 may acquire the calculated calibration data, store it, and use it. Then, from the viewpoint of execution time estimation, the processing performed by the controller support device 8 may be limited to the processing shown as the controller support device C in FIG.
  • Controller support devices A, B, and C are suitable for implementation using, for example, a portable or desktop personal computer.
  • the stored first test program 390 and second test execution time may be deleted.
  • the controller support device C shown in FIG. 7 can be expressed as follows. That is, the controller support device C includes a storage unit (ROM 82, RAM 83, and hard disk 84 in FIG. 5) and a calculation unit (CPU 81 in FIG. 5).
  • the storage unit is used for storing the controller support program 320 and calibration data representing the relationship between the first test execution time and the second test execution time.
  • the first test execution time is an execution time measured in the simulator of the first test program 390 that is an object program that is generated from the test source program 370 and operates in the controller simulator.
  • the second test execution time is an execution time measured in the controller of the second test program 392 that is an object program that is generated from the test source program 370 and operates in the controller.
  • the controller support program 320 causes the calculation unit (CPU 81) to execute the following processing.
  • Execution measured in a simulator of a first control program 340 which is an object program operating in a simulator, generated from a control source program 330, which is a source program of a control program created according to a user's control purpose Process for Acquiring First Control Execution Time as Time
  • a second object program that is generated from control source program 330 and operates in the controller by converting first control execution time using calibration data
  • the process of calculating the estimated execution time that is the estimated value of the execution time in the controller of the control program 342
  • the process for outputting the data representing the estimated execution time The controller support device B also has a display unit (in FIG. Estimated on the screen of the monitor 87) And a device for displaying rows time.
  • the controller support device B is a device obtained by adding the following configuration to the controller support device C. That is, the controller support device B further includes a display unit.
  • the storage unit is further used to store the first control program 340, the first test program 390, and the second test execution time.
  • the controller support program 320 further causes the calculation unit (CPU 81) to execute the following processing.
  • Process for causing controller support device to function as simulator (5) Process for measuring first test execution time by executing first test program 390 in simulator (6) First test execution time and second test Process for calculating calibration data from execution time (7) Process for measuring first control execution time by executing first control program 340 in simulator The process for outputting data representing the estimated execution time is displayed This is processing for creating display data for displaying the estimated execution time on the part.
  • FIG. 8 is a diagram illustrating an example of a display screen of the estimated execution time output from the controller support device 8 according to the embodiment of the present invention.
  • control programs A and B shown in FIG. 4 are targets of execution time estimation.
  • the control program A is indicated as “TASK A”
  • the control program B is indicated as “TASK B”.
  • the estimated execution time is displayed as the net execution time.
  • the net execution time means the time during which the control program is actually executed, excluding the execution pause time.
  • the control program B is executed in three steps with two execution suspension periods. The total of the times actually executed in these three times becomes the net execution time.
  • the execution time of IO processing is also displayed on the net execution time display section.
  • IO processing is described as “I / O”. Note that the processing for obtaining the execution time of the IO processing is not shown in FIG.
  • the execution time of IO processing correlates with the number of other units connected to the CPU unit 13 and the amounts of output data and input data, and the IO processing execution time becomes longer as they increase. Since the controller support device 8 holds such information for setting in the controller, it is possible to calculate an estimated value of the execution time of the IO processing using the information.
  • the first control execution time from which the estimated execution time (net execution time) is calculated can be measured by separately executing the control programs A and B without an execution pause period.
  • the simulator also executes the program according to the execution priority and execution cycle as shown in the sequence of FIG. 4, and measures the time actually required for execution. May be.
  • the measurement of the first control execution time and the calculation of the estimated execution time may be repeated a plurality of times.
  • execution conditions such as values of variables used in the control program change, and the execution time changes accordingly.
  • the MAX value displayed along with the graph of the net execution time is the maximum value when repeatedly executed. In addition to this, a minimum value or an average value may be displayed.
  • the estimated execution time of the control program A is calculated separately for the sequence calculation part and the motion calculation part, and is also displayed separately in the graph display.
  • the total execution time means the time from the start of the execution cycle of each control program to the end of execution of the control program in the execution cycle. That is, the total execution time of the control program A corresponds to the time from the beginning of each control cycle in FIG. 4 until the control program A finishes executing in that control cycle. In addition to the execution time of the control program A itself, the execution time of the IO processing is added to this time.
  • the total execution time of the control program B corresponds to the time from the beginning of the control cycle 1 to the end of execution of the control program B in the control cycle 3 in FIG. This time is added with the execution time of three IO processes and the execution time of three control programs A executed until the execution of the control program B is completed.
  • “0.5 ms” and “2 ms” indicate the cycle of the execution cycle for each control program. Further, as in the case of the net execution time, the maximum value of the total execution time of each control program is displayed. By displaying the total execution time, the user can know whether or not each control program can be executed within the time of the execution cycle.
  • FIG. 9 is a diagram showing another example of the estimated execution time display screen output from the controller support device 8 according to the embodiment of the present invention.
  • the display screen shown in FIG. 9 is different from FIG. 8 in that the execution time of the IO process is included in the task A in the display section of the net execution time.
  • the execution time of the IO process executed in the same cycle as the cycle of the control program (control program A in this case) is added to the execution time of the control program. Is displayed.
  • the display of the estimated execution time of the control program includes the case where the execution time of other processes executed in combination with the execution of the control program is added and displayed. In other words, it is not always necessary to display the estimated execution time of the control program itself, and the control program can be useful for the user when determining the control cycle period, execution cycle period, determining how to divide the control program, etc. It may be displayed as a time including the estimated execution time of the program.
  • the graph of the task A of the net execution time is displayed in a form in which the execution time of the IO process and the execution time of the control program A can be distinguished.
  • the MAX value displayed along with this graph is the execution time including the IO processing time, and the estimated execution time of the control program is not displayed numerically. Thus, you may display the estimated execution time of a control program only by a graph.
  • the display of the total execution time is also a form of display of the estimated execution time of the control program.
  • FIG. 10 is a diagram illustrating an example of a relationship between the first test execution time and the second test execution time.
  • the X axis (horizontal axis) indicates the first test time (measured value of the execution time of the first test program 390 in the simulator)
  • the Y axis (vertical axis) indicates the second test execution time (the second test execution time in the controller). (Measurement value of execution time of test program 392).
  • the first test program 390 and the second test program 392 are object programs generated from the same test source program 370.
  • Measurement points P1 to P5 shown in the graph of FIG. 10 indicate the execution times of the first and second test programs respectively generated from five types of test source programs 370 having different numbers of executed instructions.
  • each of the measurement points P1 to P5 may be a measurement value of the execution time when the program is executed once, but considering that the execution time may vary from execution to execution depending on execution conditions such as input variable values, It is preferable to employ an average value of execution times when the same program is executed a plurality of times.
  • the first test program 390 When a general-purpose computer is used as the controller support device 8, the first test program 390 is normally executed in a non-real-time operating system environment. Therefore, the execution of the first test program may be temporarily interrupted by the operating system. Can happen.
  • the measurement value of the execution time in such a case is a large abnormal value, and therefore, when calculating the average value of the execution time, it is necessary to exclude such an abnormal value for calculation.
  • the estimated execution time must be calculated by eliminating such an abnormal value.
  • the straight line L is a straight line obtained by using the least square method so that the error from the measurement points P1 to P5 is minimized.
  • the estimated execution time can be calculated by multiplying the first control execution time, which is the execution time of the control program measured in the simulator, by the calibration data “a”.
  • the relationship between the first test execution time and the second test execution time can be expressed by a straight line.
  • the effect of the cache mechanism operation is considered. It can be considered that due to the operation of such a cache mechanism, a measurement value of a short execution time may not be on a straight line obtained by a measurement value of a somewhat long execution time.
  • the calibration data may be tabular data representing a plurality of first test times and second test times corresponding to the first test times.
  • two first test times that sandwich the first control execution time, or some first test times that are close to the first control execution time are selected and the calibration data is selected.
  • the estimated execution time corresponding to the first control execution time can be obtained by linear interpolation or curve interpolation from the data existing therein.
  • FIG. 11 is a schematic diagram showing an overall process related to the controller support device realized by the server computer according to the embodiment of the present invention.
  • FIG. 11 shows a series of processes related to estimation of the execution time of the control program and a program and data flow during each process when the controller support device is realized by the server computer.
  • a server computer that functions as a controller support device has a program group that functions as a simulator compiler 322A, a controller compiler 322B, a simulator 324A, an estimated execution time calculation unit 326A, and an output unit 327A. ing.
  • the server computer may be installed in the user's office and connected to the client computer via the LAN, or may be installed in the controller supplier's office and connected to the client computer in the user's office via the Internet. You may do it.
  • the calibration data stored in the storage unit is also calculated through the same processing as shown in FIG.
  • a process for calculating such calibration data may be performed using another computer, or all or part of the process for calculating such calibration data may be performed in the server computer itself.
  • the simulator needs to be capable of executing the same program in the same execution time as compared with the simulator in the server computer.
  • the server computer performs a series of processing until the calibration data is obtained, it is sufficient that the calibration data can be used when the server computer provides a service to the client computer. Therefore, the program and data used for obtaining the calibration data may be deleted from the server computer.
  • the control source program 330 is created on the client computer and sent to the server computer.
  • the server computer uses the controller compiler 322B to generate the second control program 342 from the control source program 330 in response to an instruction from the client computer, and transmit the second control program 342 to the client computer.
  • the server computer may not have the controller compiler 322B and may not perform the generation service of the second control program 342.
  • the simulator compiler 322A generates a first control program (simulator object program) 340 from the control source program 330.
  • the simulator 324A executes the first control program 340 and measures the first control execution time which is the execution time thereof.
  • the estimated execution time calculation unit 326A calculates the estimated execution time from the first control execution time using the calibration data.
  • the output unit 327A creates display data for displaying the estimated execution time in the form shown in FIG. 8 or 9, for example, and transmits it to the client computer.
  • the display data is, for example, HTML format data that can be displayed using a web browser.
  • the output unit 327A may transmit only numerical data representing the estimated execution time to the client computer, and the display form may be left to the client computer.
  • the server computer may receive the first control program 340 generated in the client computer without having the simulator compiler 322A.
  • the server computer has the simulator and calibration data, and the estimated execution time calculation processing is performed for a plurality of client computers, it becomes easy to add new simulator and calibration data suitable for a new model controller. .
  • the controller support apparatus shown in FIG. 11 includes the configuration of the controller support apparatus C shown in FIG. 7, and is obtained by adding at least the following configuration. That is, the storage unit is further used for storing the first control program 340.
  • the controller support program 320 further executes a process for causing the arithmetic unit to function as a simulator 324A and a process for measuring the first control execution time by executing the first control program 340 in the simulator 324A.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Programmable Controllers (AREA)

Abstract

 コントローラサポートプログラムは、ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラムから生成された、シミュレータにおいて動作するオブジェクトプログラムである第1制御プログラムの、シミュレータにおいて測定された実行時間である第1制御実行時間を取得する処理と、第1制御実行時間を較正データを用いて変換することにより、制御ソースプログラムから生成された、コントローラにおいて動作するオブジェクトプログラムである第2制御プログラムの、コントローラにおける実行時間の推定値である推定実行時間を算出する処理と、推定実行時間を表すデータを出力するための処理とを、演算部に実行させる。

Description

コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法
 本発明は、機械や設備などの動作を制御するために用いられるPLC(Programmable Logic Controller。プログラマブルコントローラともよばれる。)などのコントローラの使用を支援するためのコントローラサポート装置における制御プログラムの実行時間推定に関する。
 機械や設備などの動作を制御するために用いられるコントローラには、汎用のPLCや、個別の機械等に専用のプログラム制御のコントローラがある。
 PLCは、たとえば、制御プログラムを実行するマイクロプロセッサを含むCPU(Central Processing Unit)ユニット、外部のスイッチやセンサからの信号入力および外部のリレーやアクチュエータへの信号出力を担当するIO(Input Output)ユニット、といった複数のユニットで構成される。それらのユニット間で、制御プログラム実行サイクルごとに、PLCシステムバスおよび/またはフィールドネットワークを経由してデータの授受をしながら、PLCは制御動作を実行する。
 コントローラサポート装置は、コントローラに実行させる制御プログラムやコントローラに対する各種の設定情報を作成し、それらをコントローラに転送するために用いられる。コントローラサポート装置は、たとえば、汎用のコンピュータにコントローラサポートプログラムをインストールすることで構成される。コントローラサポート装置は、たとえば、制御プログラムのソースリストを作成するエディタ機能、制御プログラムのソースリストからコントローラで動作するオブジェクトプログラムを生成するコンパイラ機能、制御プログラムをコントローラサポート装置において試験実行させるためのコントローラのシミュレータ機能、および、コントローラとの通信機能などを有する。
 制御プログラムの開発段階では、コントローラがその制御プログラムを実行するのに要する実行時間を知る必要がある。この制御プログラムの実行時間は、その制御プログラムの実行サイクルの周期を定めるときに参照される。また、コントローラに実行させる複数の制御プログラムについて、互いに異なる実行優先度と実行サイクル周期とを定めるときに、それぞれの制御プログラムの実行時間が参照される。
 コントローラサポート装置とコントローラとでは、制御プログラムの実行に関するハードウェアやオペレーションシステムが異なることが多い。また、制御プログラムの実行コード自体もシミュレータ用とコントローラ用とでは異なる場合がある。そのため、コントローラサポート装置のシミュレータで実行した制御プログラムの実行時間は、コントローラで実行した制御プログラムの実行時間とは異なる場合がある。
 特開2001-209411号公報(特許文献1)には、制御プログラムをPLCで実行した場合の実行時間を、PLCサポート装置において求める方法を開示する。具体的には、制御プログラムに使用される各命令のPLCにおける実処理時間データを用意しておき、シミュレータにおけるプログラム模擬実行処理において、個々の命令が処理されるごとに実処理時間データを参照して、その命令に対応する実処理時間を積算する方法が開示されている。
特開2001-209411号公報
 従来のPLCは、その演算部に、制御プログラムを実行するために開発されたASIC(Application Specific Integrated Circuit)を採用し、そのASICがPLC用のニーモニック命令に対応する実行コードを実行する構成であることが多かった。一般に、ラダー言語等のPLC用のプログラミング言語で使用される命令は、PLC用のニーモニック命令に1対1に変換することができる。そのような場合には、特許文献1に示されるように各命令の実処理時間データを積算する方式によって、ある程度正確な制御プログラムの実行時間を求めることができた。
 しかし、近年は、汎用マイクロプロセッサの高速化に伴い、PLCの演算部にも汎用マイクロプロセッサが採用されることが多くなりつつある。そのような場合、ラダー言語やその他のPLC用のプログラミング言語で作成された制御プログラム(ソースプログラム)は、マイクロプロセッサに実行可能なオブジェクトプログラムにコンパイルされた形でPLCにおいて実行される。本願発明者らの経験によれば、PLC用のプログラミング言語における各命令に対応する、マイクロプロセッサにおける実処理時間は、オブジェクトプログラムが最適化されることの影響などにより、必ずしも一定とはならない。そのため、上述したような実処理時間データの積算方式では、高い精度の推定実行時間を得ることができない。さらに、制御プログラムが、特殊な命令やファンクションブロックのライブラリを利用する場合には、呼び出したライブラリ要素の実行時間が実行条件によって変動するため、実処理時間データの積算方式では、実行時間の推定精度がいっそう悪化する。
 このような状況を背景として、コントローラサポート装置において、汎用マイクロプロセッサを用いたPLC(より一般的に、コントローラ)における実行時間を、より高い精度で推定できる方式が必要である。もちろん、その方式がASICを用いたコントローラについての実行時間推定にも適用できることはより好ましい。
 本発明は、コントローラサポート装置において、コントローラにおける制御プログラムの実行時間をより高い精度で推定することを目的とする。
 本発明のある局面によれば、記憶部と演算部とを含むコントローラサポート装置を提供する。記憶部は、コントローラサポートプログラムと、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データとの格納に用いられる。第1テスト実行時間は、テストソースプログラムから生成された、コントローラのシミュレータにおいて動作するオブジェクトプログラムである第1テストプログラムの、シミュレータにおいて測定された実行時間であり、第2テスト実行時間は、テストソースプログラムから生成された、コントローラにおいて動作するオブジェクトプログラムである第2テストプログラムの、コントローラにおいて測定された実行時間である。コントローラサポートプログラムは、ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラムから生成された、シミュレータにおいて動作するオブジェクトプログラムである第1制御プログラムの、シミュレータにおいて測定された実行時間である第1制御実行時間を取得する処理と、第1制御実行時間を較正データを用いて変換することにより、制御ソースプログラムから生成された、コントローラにおいて動作するオブジェクトプログラムである第2制御プログラムの、コントローラにおける実行時間の推定値である推定実行時間を算出する処理と、推定実行時間を表すデータを出力するための処理とを、演算部に実行させる。
 好ましくは、記憶部は、さらに、第1制御プログラムの格納に用いられる。コントローラサポートプログラムは、さらに、コントローラサポート装置をシミュレータとして機能させるための処理と、シミュレータにおいて第1制御プログラムを実行することにより第1制御実行時間を測定する処理とを、演算部に実行させる。
 さらに好ましくは、コントローラサポート装置は、さらに、表示部を含む。記憶部は、さらに、第1テストプログラムと、第2テスト実行時間との格納に用いられる。コントローラサポートプログラムは、さらに、シミュレータにおいて第1テストプログラムを実行することにより第1テスト実行時間を測定する処理と、第1テスト実行時間および第2テスト実行時間から較正データを算出する処理とを、演算部に実行させる。推定実行時間を表すデータを出力するための処理は、表示部に推定実行時間を表示させるための表示用データを作成する処理である。
 この発明の別の局面に従えば、記憶部と演算部とを備えたコントローラサポート装置において実行されるためのコントローラサポートプログラムを提供する。記憶部は、コントローラサポートプログラムと、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データとの格納に用いられる。第1テスト実行時間は、テストソースプログラムから生成された、コントローラのシミュレータにおいて動作するオブジェクトプログラムである第1テストプログラムの、シミュレータにおいて測定された実行時間であり、第2テスト実行時間は、テストソースプログラムから生成された、コントローラにおいて動作するオブジェクトプログラムである第2テストプログラムの、コントローラにおいて測定された実行時間である。コントローラサポートプログラムは、ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラムから生成された、シミュレータにおいて動作するオブジェクトプログラムである第1制御プログラムの、シミュレータにおいて測定された実行時間である第1制御実行時間を取得する処理と、第1制御実行時間を較正データを用いて変換することにより、制御ソースプログラムから生成された、コントローラにおいて動作するオブジェクトプログラムである第2制御プログラムの、コントローラにおける実行時間の推定値である推定実行時間を算出する処理と、推定実行時間を表すデータを出力するための処理とを、演算部に実行させる。
 好ましくは、記憶部は、さらに、第1制御プログラムの格納に用いられる。コントローラサポートプログラムは、さらに、コントローラサポート装置をシミュレータとして機能させるための処理と、シミュレータにおいて第1制御プログラムを実行することにより第1制御実行時間を測定する処理とを、演算部に実行させる。
 さらに好ましくは、記憶部は、さらに、第1テストプログラムと、第2テスト実行時間との格納に用いられる。コントローラサポートプログラムは、さらに、シミュレータにおいて第1テストプログラムを実行することにより第1テスト実行時間を測定する処理と、第1テスト実行時間および第2テスト実行時間から較正データを算出する処理とを、演算部に実行させる。
 この発明のさらに別の局面に従えば、記憶部と演算部とを備えたコントローラサポート装置において実行されるためのコントローラサポートプログラムを格納した記録媒体を提供する。記憶部は、コントローラサポートプログラムと、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データとの格納に用いられる。第1テスト実行時間は、テストソースプログラムから生成された、コントローラのシミュレータにおいて動作するオブジェクトプログラムである第1テストプログラムの、シミュレータにおいて測定された実行時間であり、第2テスト実行時間は、テストソースプログラムから生成された、コントローラにおいて動作するオブジェクトプログラムである第2テストプログラムの、コントローラにおいて測定された実行時間である。コントローラサポートプログラムは、ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラムから生成された、シミュレータにおいて動作するオブジェクトプログラムである第1制御プログラムの、シミュレータにおいて測定された実行時間である第1制御実行時間を取得する処理と、第1制御実行時間を較正データを用いて変換することにより、制御ソースプログラムから生成された、コントローラにおいて動作するオブジェクトプログラムである第2制御プログラムの、コントローラにおける実行時間の推定値である推定実行時間を算出する処理と、推定実行時間を表すデータを出力するための処理とを、演算部に実行させる。
 好ましくは、記憶部は、さらに、第1制御プログラムの格納に用いられる。コントローラサポートプログラムは、さらに、コントローラサポート装置をシミュレータとして機能させるための処理と、シミュレータにおいて第1制御プログラムを実行することにより第1制御実行時間を測定する処理とを、演算部に実行させる。
 さらに好ましくは、記憶部は、さらに、第1テストプログラムと、第2テスト実行時間との格納に用いられる。コントローラサポートプログラムは、さらに、シミュレータにおいて第1テストプログラムを実行することにより第1テスト実行時間を測定する処理と、第1テスト実行時間および第2テスト実行時間から較正データを算出する処理とを、演算部に実行させる。
 この発明のさらに別の局面に従えば、制御対象を制御するコントローラにおける制御プログラムの実行時間を推定する方法を提供する。本方法は、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データを算出する較正データ算出ステップを含む。第1テスト実行時間は、テストソースプログラムから生成された、コントローラのシミュレータにおいて動作するオブジェクトプログラムである第1テストプログラムの、シミュレータにおいて測定された実行時間であり、第2テスト実行時間は、テストソースプログラムから生成された、コントローラにおいて動作するオブジェクトプログラムである第2テストプログラムの、コントローラにおいて測定された実行時間である。本方法は、さらに、ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラムから生成された、シミュレータにおいて動作するオブジェクトプログラムである第1制御プログラムの、シミュレータにおいて測定された実行時間である第1制御実行時間を較正データを用いて変換することにより、制御ソースプログラムから生成された、コントローラにおいて動作するオブジェクトプログラムである第2制御プログラムの、コントローラにおける実行時間の推定値である推定実行時間を算出する推定実行時間算出ステップを含む。
 本発明によれば、コントローラサポート装置において、コントローラにおける制御プログラムの実行時間をより高い精度で推定することができる。
本発明の実施の形態に係るコントローラ(PLC)サポート装置が使用を支援するPLCシステムの概略構成を示す模式図である。 本発明の実施の形態に係るコントローラ(PLC)サポート装置が使用を支援するCPUユニットのハードウェア構成を示す模式図である。 本発明の実施の形態に係るコントローラ(PLC)サポート装置が使用を支援するCPUユニットで実行されるソフトウェア構成を示す模式図である。 本発明の実施の形態に係るコントローラ(PLC)サポート装置が使用を支援するCPUユニットにおける実行動作の一例を示すシーケンス図である。 本発明の実施の形態に係るコントローラサポート装置のハードウェア構成を示す模式図である。 本発明の実施の形態に係るコントローラサポート装置のソフトウェア構成を示す模式図である。 本発明の実施の形態に係るコントローラサポート装置に関連する全体処理を示す模式図である。 本発明の実施の形態に係るコントローラサポート装置から出力される推定実行時間の表示画面の一例を示す図である。 本発明の実施の形態に係るコントローラサポート装置から出力される推定実行時間の表示画面の別の一例を示す図である。 第1テスト実行時間と第2テスト実行時間との間の関係の一例を示す図である。 本発明の実施の形態に係るサーバコンピュータで実現されたコントローラサポート装置に関連する全体処理を示す模式図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.システム構成>
 本実施の形態に係るコントローラサポート装置が使用を支援するコントローラの典型例としてPLCについて説明する。PLCは、機械や設備などの制御対象を制御する。PLCは、その構成要素としてCPUユニットを含む。CPUユニットは、マイクロプロセッサと、記憶手段と、通信回路とを含む。記憶手段は、制御プログラムおよびプログラムの実行を制御するシステムプログラムなどの格納に用いられる。マイクロプロセッサは、記憶手段に格納されたシステムプログラムおよび制御プログラムを実行する。通信回路は、出力データを送信しおよび入力データを受信する。
 まず、図1を参照して、PLC1のシステム構成について説明する。図1は、本発明の実施の形態に係るコントローラ(PLC)サポート装置が使用を支援するPLCシステムの概略構成を示す模式図である。
 図1を参照して、PLCシステムSYSは、PLC1と、PLC1とフィールドネットワーク2を介して接続されるサーボモータドライバ3およびリモートIOターミナル5と、フィールド機器である検出スイッチ6およびリレー7とを含む。また、PLC1には、接続ケーブル10などを介してコントローラサポート装置8が接続される。
 PLC1は、主たる演算処理を実行するCPUユニット13と、1つ以上のIOユニット14と、特殊ユニット15とを含む。これらのユニットは、PLCシステムバス11を介して、データを互いに遣り取りできるように構成される。また、これらのユニットには、電源ユニット12によって適切な電圧の電源が供給される。なお、PLC1として構成される各ユニットは、PLCメーカーが提供するものであるので、PLCシステムバス11は、一般にPLCメーカーごとに独自に開発され、使用されている。これに対して、フィールドネットワーク2については、異なるメーカーの製品同士が接続できるように、その規格などが公開されている場合も多い。
 CPUユニット13の詳細については、図2を参照して後述する。
 IOユニット14は、一般的な入出力処理に関するユニットであり、オン/オフといった2値化されたデータの入出力を司る。すなわち、IOユニット14は、検出スイッチ6などのセンサが何らかの対象物を検出している状態(オン)および何らの対象物も検出していない状態(オフ)のいずれであるかという情報を収集する。また、IOユニット14は、リレー7やアクチュエータといった出力先に対して、活性化するための指令(オン)および不活性化するための指令(オフ)のいずれかを出力する。
 特殊ユニット15は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、IOユニット14ではサポートしない機能を有する。
 フィールドネットワーク2は、CPUユニット13と遣り取りされる各種データを伝送する。フィールドネットワーク2としては、典型的には、各種の産業用イーサネット(登録商標)を用いることができる。産業用イーサネット(登録商標)としては、たとえば、EtherCAT(登録商標)、Profinet IRT、MECHATROLINK(登録商標)-III、Powerlink、SERCOS(登録商標)-III、CIP Motionなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット(登録商標)以外のフィールドネットワークを用いてもよい。たとえば、モーション制御を行わない場合であれば、DeviceNet、CompoNet/IP(登録商標)などを用いてもよい。
 なお、図1には、PLCシステムバス11およびフィールドネットワーク2の両方を有するPLCシステムSYSを例示するが、一方のみを搭載するシステム構成を採用することもできる。たとえば、フィールドネットワーク2ですべてのユニットを接続してもよい。あるいは、フィールドネットワーク2を使用せずに、サーボモータドライバ3をPLCシステムバス11に直接接続してもよい。さらに、フィールドネットワーク2の通信ユニットをPLCシステムバス11に接続し、CPUユニット13から当該通信ユニット経由で、フィールドネットワーク2に接続された機器との間の通信を行うようにしてもよい。
 なお、PLC1は、CPUユニット13にIOユニット14の機能やサーボモータドライバ3の機能を持たせることにより、IOユニット14やサーボモータドライバ3などを介さずにCPUユニット13が直接制御対象を制御する構成でもよい。
 サーボモータドライバ3は、フィールドネットワーク2を介してCPUユニット13と接続されるとともに、CPUユニット13からの指令値に従ってサーボモータ4を駆動する。より具体的には、サーボモータドライバ3は、PLC1から一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。また、サーボモータドライバ3は、サーボモータ4の軸に接続されている位置センサ(ロータリーエンコーダ)やトルクセンサといった検出器から、位置、速度(典型的には、今回位置と前回位置との差から算出される)、トルクといったサーボモータ4の動作に係る実測値を取得する。そして、サーボモータドライバ3は、CPUユニット13からの指令値を目標値に設定し、実測値をフィードバック値として、フィードバック制御を行う。すなわち、サーボモータドライバ3は、実測値が目標値に近づくようにサーボモータ4を駆動するための電流を調整する。なお、サーボモータドライバ3は、サーボモータアンプと称されることもある。
 また、図1には、サーボモータ4とサーボモータドライバ3とを組み合わせたシステム例を示すが、その他の構成、たとえば、パルスモータとパルスモータドライバとを組み合わせたシステムを採用することもできる。
 図1に示すPLCシステムSYSのフィールドネットワーク2には、さらに、リモートIOターミナル5が接続されている。リモートIOターミナル5は、基本的には、IOユニット14と同様に、一般的な入出力処理に関する処理を行う。より具体的には、リモートIOターミナル5は、フィールドネットワーク2でのデータ伝送に係る処理を行うための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、リモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。
 本発明の実施の形態に係るコントローラサポート装置8については後述する。
 <B.CPUユニットのハードウェア構成>
 次に、図2を参照して、CPUユニット13のハードウェア構成について説明する。図2は、本発明の実施の形態に係るコントローラ(PLC)サポート装置8が使用を支援するCPUユニット13のハードウェア構成を示す模式図である。図2を参照して、CPUユニット13は、マイクロプロセッサ100と、チップセット102と、メインメモリ104と、不揮発性メモリ106と、システムタイマ108と、PLCシステムバスコントローラ120と、フィールドネットワークコントローラ140と、USBコネクタ110とを含む。チップセット102と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
 マイクロプロセッサ100およびチップセット102は、典型的には、汎用的なコンピュータアーキテクチャに準じて構成される。すなわち、マイクロプロセッサ100は、チップセット102から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット102は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、マイクロプロセッサ100に必要な命令コードを生成する。さらに、チップセット102は、マイクロプロセッサ100での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
 CPUユニット13は、記憶手段として、メインメモリ104および不揮発性メモリ106を有する。
 メインメモリ104は、揮発性の記憶領域(RAM)であり、CPUユニット13への電源投入後にマイクロプロセッサ100で実行されるべき各種プログラムを保持する。また、メインメモリ104は、マイクロプロセッサ100による各種プログラムの実行時の作業用メモリとしても使用される。このようなメインメモリ104としては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)といったデバイスが用いられる。
 一方、不揮発性メモリ106は、リアルタイムOS(Operating System)、PLC1のシステムプログラム、ユーザプログラム、モーション演算プログラム、システム設定パラメータといったデータを不揮発的に保持する。これらのプログラムやデータは、必要に応じて、マイクロプロセッサ100がアクセスできるようにメインメモリ104にコピーされる。このような不揮発性メモリ106としては、フラッシュメモリのような半導体メモリを用いることができる。あるいは、ハードディスクドライブのような磁気記録媒体や、DVD-RAM(Digital Versatile Disk Random Access Memory)のような光学記録媒体などを用いることもできる。
 システムタイマ108は、一定周期ごとに割り込み信号を発生してマイクロプロセッサ100に提供する。典型的には、ハードウェアの仕様によって、複数の異なる周期でそれぞれ割り込み信号を発生するように構成されるが、OS(Operating System)やBIOS(Basic Input Output System)などによって、任意の周期で割り込み信号を発生するように設定することもできる。このシステムタイマ108が発生する割り込み信号を利用して、後述するような制御サイクルごとの制御動作が実現される。
 CPUユニット13は、通信回路として、PLCシステムバスコントローラ120およびフィールドネットワークコントローラ140を有する。これらの通信回路は、出力データの送信および入力データの受信を行う。
 なお、CPUユニット13自体にIOユニット14やサーボモータドライバ3の機能を持たせる場合は、通信回路による出力データの送信および入力データの受信は、それらの機能を担う部分を通信の相手方としてCPUユニット13の内部で行われる送信および受信となる。
 PLCシステムバスコントローラ120は、PLCシステムバス11を介したデータの遣り取りを制御する。より具体的には、PLCシステムバスコントローラ120は、DMA(Dynamic Memory Access)制御回路122と、PLCシステムバス制御回路124と、バッファメモリ126とを含む。なお、PLCシステムバスコントローラ120は、PLCシステムバスコネクタ130を介してPLCシステムバス11と内部的に接続される。
 バッファメモリ126は、PLCシステムバス11を介して他のユニットへ出力されるデータ(以下「出力データ」とも称す。)の送信バッファ、および、PLCシステムバス11を介して他のユニットから入力されるデータ(以下「入力データ」とも称す。)の受信バッファとして機能する。なお、マイクロプロセッサ100による演算処理によって作成された出力データは、原始的にはメインメモリ104に格納される。そして、特定のユニットへ転送されるべき出力データは、メインメモリ104から読み出されて、バッファメモリ126に一次的に保持される。また、他のユニットから転送された入力データは、バッファメモリ126に一次的に保持された後、メインメモリ104に移される。
 DMA制御回路122は、メインメモリ104からバッファメモリ126への出力データの転送、および、バッファメモリ126からメインメモリ104への入力データの転送を行う。
 PLCシステムバス制御回路124は、PLCシステムバス11に接続される他のユニットとの間で、バッファメモリ126の出力データを送信する処理および入力データを受信してバッファメモリ126に格納する処理を行う。典型的には、PLCシステムバス制御回路124は、PLCシステムバス11における物理層およびデータリンク層の機能を提供する。
 フィールドネットワークコントローラ140は、フィールドネットワーク2を介したデータの遣り取りを制御する。すなわち、フィールドネットワークコントローラ140は、用いられるフィールドネットワーク2の規格に従い、出力データの送信および入力データの受信を制御する。たとえば、EtherCAT(登録商標)規格に従うフィールドネットワーク2が採用される場合には、通常のイーサネット(登録商標)通信を行うためのハードウェアを含む、フィールドネットワークコントローラ140が用いられる。EtherCAT(登録商標)規格では、通常のイーサネット(登録商標)規格に従う通信プロトコルを実現する一般的なイーサネット(登録商標)コントローラを利用できる。フィールドネットワーク2として採用される産業用イーサネット(登録商標)の種類によっては、通常の通信プロトコルとは異なる専用仕様の通信プロトコルに対応した特別仕様のイーサネット(登録商標)コントローラが用いられる。また、産業用イーサネット(登録商標)以外のフィールドネットワークを採用した場合には、当該規格に応じた専用のフィールドネットワークコントローラが用いられる。
 バッファメモリ146は、フィールドネットワーク2を介して他の装置などへ出力されるデータ(このデータについても、以下「出力データ」と称す。)の送信バッファ、および、フィールドネットワーク2を介して他の装置などから入力されるデータ(このデータについても、以下「入力データ」とも称す。)の受信バッファとして機能する。上述したように、マイクロプロセッサ100による演算処理によって作成された出力データは、原始的にはメインメモリ104に格納される。そして、特定の装置へ転送されるべき出力データは、メインメモリ104から読み出されて、バッファメモリ146に一次的に保持される。また、他の装置から転送された入力データは、バッファメモリ146に一次的に保持された後、メインメモリ104に移される。
 DMA制御回路142は、メインメモリ104からバッファメモリ146への出力データの転送、および、バッファメモリ146からメインメモリ104への入力データの転送を行う。
 フィールドネットワーク制御回路144は、フィールドネットワーク2に接続される他の装置との間で、バッファメモリ146の出力データを送信する処理および入力データを受信してバッファメモリ146に格納する処理を行う。典型的には、フィールドネットワーク制御回路144は、フィールドネットワーク2における物理層およびデータリンク層の機能を提供する。
 USBコネクタ110は、コントローラサポート装置8とCPUユニット13とを接続するためのインターフェイスである。典型的には、コントローラサポート装置8から転送される、CPUユニット13のマイクロプロセッサ100で実行可能なプログラムなどは、USBコネクタ110を介してPLC1に取込まれる。
 <C.CPUユニットのソフトウェア構成>
 次に、図3を参照して、コントローラ(PLC1)が各種機能を提供するためのソフトウェア群について説明する。これらのソフトウェアに含まれる命令コードは、適切なタイミングで読み出され、CPUユニット13のマイクロプロセッサ100によって実行される。
 図3は、本発明の実施の形態に係るコントローラ(PLC)サポート装置8が使用を支援するCPUユニット13で実行されるソフトウェア構成を示す模式図である。図3を参照して、CPUユニット13で実行されるソフトウェアとしては、リアルタイムOS200と、システムプログラム210と、ユーザプログラム236との3階層になっている。
 リアルタイムOS200は、CPUユニット13のコンピュータアーキテクチャに応じて設計されており、マイクロプロセッサ100がシステムプログラム210およびユーザプログラム236を実行するための基本的な実行環境を提供する。このリアルタイムOSは、典型的には、PLCのメーカーあるいは専門のソフトウェア会社などによって提供される。
 システムプログラム210は、PLC1としての機能を提供するためのソフトウェア群である。具体的には、システムプログラム210は、スケジューラプログラム212と、出力処理プログラム214と、入力処理プログラム216と、シーケンス命令演算プログラム232と、モーション演算プログラム234と、その他のシステムプログラム220とを含む。なお、一般には出力処理プログラム214および入力処理プログラム216は、連続的(一体として)に実行されるので、これらのプログラムを、IO処理プログラム218と総称する場合もある。
 ユーザプログラム236は、ユーザにおける制御目的に応じて作成される。すなわち、PLCシステムSYSを用いて制御する対象のライン(プロセス)などに応じて、任意に設計されるプログラムである。
 ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234と協働して、ユーザにおける制御目的を実現する。すなわち、ユーザプログラム236は、シーケンス命令演算プログラム232およびモーション演算プログラム234によって提供される命令、関数、機能モジュールなどを利用することで、プログラムされた動作を実現する。そのため、ユーザプログラム236、シーケンス命令演算プログラム232、およびモーション演算プログラム234を、制御プログラム230と総称する場合もある。
 以下、各プログラムについてより詳細に説明する。
 ユーザプログラム236は、上述したように、ユーザにおける制御目的(たとえば、対象のラインやプロセス)に応じて作成される。ユーザプログラム236は、典型的には、CPUユニット13のマイクロプロセッサ100で実行可能なオブジェクトプログラム形式になっている。このユーザプログラム236は、コントローラサポート装置8などにおいて、ラダー言語などによって記述されたソースプログラムがコンパイルされることで生成される。そして、生成されたオブジェクトプログラム形式のユーザプログラム236は、コントローラサポート装置8から接続ケーブル10を介してCPUユニット13へ転送され、不揮発性メモリ106などに格納される。
 スケジューラプログラム212は、出力処理プログラム214、入力処理プログラム216、および制御プログラム230について、各実行サイクルでの処理開始および処理中断後の処理再開を制御する。より具体的には、スケジューラプログラム212は、ユーザプログラム236およびモーション演算プログラム234の実行を制御する。
 CPUユニット13では、モーション演算プログラム234に適した一定周期の実行サイクル(制御サイクル)を処理全体の共通サイクルとして採用する。そのため、1つの制御サイクル内で、すべての処理を完了することは難しいので、実行すべき処理の優先度などに応じて、各制御サイクルにおいて実行を完了すべき処理と、複数の制御サイクルに亘って実行してもよい処理とが区分される。スケジューラプログラム212は、これらの区分された処理の実行順序などを管理する。より具体的には、スケジューラプログラム212は、各制御サイクル期間内において、より高い優先度が与えられているプログラムほど先に実行する。
 出力処理プログラム214は、ユーザプログラム236(制御プログラム230)の実行によって生成された出力データを、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140へ転送するのに適した形式に再配置する。PLCシステムバスコントローラ120またはフィールドネットワークコントローラ140が、マイクロプロセッサ100からの、送信を実行するための指示を必要とする場合は、出力処理プログラム214がそのような指示を発行する。
 入力処理プログラム216は、PLCシステムバスコントローラ120および/またはフィールドネットワークコントローラ140によって受信された入力データを、制御プログラム230が使用するのに適した形式に再配置する。
 シーケンス命令演算プログラム232は、ユーザプログラム236で使用されるある種のシーケンス命令が実行されるときに呼び出されて、その命令の内容を実現するために実行されるプログラムである。
 モーション演算プログラム234は、ユーザプログラム236による指示に従って実行され、サーボモータドライバ3やパルスモータドライバといったモータドライバに対して出力する指令値を実行されるごとに算出するプログラムである。
 その他のシステムプログラム220は、図3に個別に示したプログラム以外の、PLC1の各種機能を実現するためのプログラム群をまとめて示したものである。
 リアルタイムOS200は、複数のプログラムを時間の経過に従い切り替えて実行するための環境を提供する。PLC1においては、CPUユニット13のプログラム実行によって生成された出力データを他のユニットまたは他の装置へ出力(送信)するためのイベント(割り込み)として、制御サイクル開始の割り込みが初期設定される。リアルタイムOS200は、制御サイクル開始の割り込みが発生すると、マイクロプロセッサ100での実行対象を、割り込み発生時点で実行中のプログラムからスケジューラプログラム212に切り替える。なお、リアルタイムOS200は、スケジューラプログラム212およびスケジューラプログラム212がその実行を制御するプログラムが何ら実行されていない場合に、その他のシステムプログラム210に含まれているプログラムを実行する。このようなプログラムとしては、たとえば、CPUユニット13とコントローラサポート装置8との間の接続ケーブル10(USB)などを介した通信処理に関するものが含まれる。
 なお、制御プログラム230およびスケジューラプログラム212は、記憶手段であるメインメモリ104および不揮発性メモリ106に格納される。
 <D.CPUユニットにおける実行動作>
 次に、CPUユニット13における実行動作について説明する。
 図4は、本発明の実施の形態に係るコントローラ(PLC)サポート装置8が使用を支援するCPUユニット13における実行動作の一例を示すシーケンス図である。図4においては、紙面の上から下に向かって経過する時間軸に沿って、IO処理プログラム、制御プログラムA、および制御プログラムBが実行される期間が示されている。
 制御プログラムAおよびBのそれぞれの時間軸に沿って示した破線の角丸の矩形は、対応する制御プログラムの実行サイクルを示す。図4に示す例では、制御プログラムAは、1回分の制御サイクルを実行サイクルとしており、制御プログラムBは、4回分の制御サイクルを実行サイクルとしている。また、制御プログラムAの実行優先度は、制御プログラムBの実行優先度よりも高く設定されているものとする。
 制御プログラムAのシーケンスプログラム(ユーザプログラム)は、モーション制御を実現するためのモーション命令を含んでおり、モーション命令の実行によりモーション演算プログラム234が呼び出されて実行される。一方、制御プログラムBのシーケンスプログラムは、モーション命令を含んでいない。
 制御サイクル1が開始すると、スケジューラプログラム212の実行制御により、IO処理プログラムが実行される。
 IO処理プログラムの実行による出力処理および入力処理が終了すると、スケジューラプログラム212が行う実行制御により、制御プログラムAが実行される。制御プログラムAの実行においては、まずシーケンスプログラムが実行され、引き続いて、モーション演算プログラム234が実行される。シーケンス命令演算プログラム232は、シーケンスプログラムの実行中に、呼び出される都度、実行される。制御プログラムAの全体(シーケンスプログラムおよびモーション演算プログラム)は1つのスレッドとして構成されており、実行途中でスケジューラプログラム212の関与なしに連続して実行される。
 制御プログラムAの実行が終了すると、スケジューラプログラム212が行う実行制御により、制御プログラムBが実行される。しかし、制御プログラムBの実行中に制御サイクル1が終了する(制御サイクル2が開始する)ので、その時点で制御プログラムBの実行は中断される。
 制御サイクル2以降においても、IO処理プログラムおよび制御プログラムAは、制御サイクル1での実行と同様の実行を繰り返す。制御サイクル2における制御プログラムAの実行が終了すると、制御プログラムBの未実行の部分が実行される。しかし、制御サイクル2においても、制御プログラムBの実行中に制御サイクル2が終了するので、制御プログラムBの実行は、再び中断される。
 制御サイクル3において実行再開した制御プログラムBは、制御サイクル3が終了するまでに実行終了する。
 制御サイクル4においても制御サイクル1から開始した制御プログラムBの実行サイクルが継続しているが、制御プログラムBは、制御サイクル3においてすでに今回の実行サイクルにおける実行を終了しているため、制御サイクル4においては実行されない。
 <E.サポート装置のハードウェア構成>
 次に、PLC1で実行されるプログラムの作成およびPLC1のメンテナンスなどを行うためのコントローラサポート装置8について説明する。
 図5は、本発明の実施の形態に係るコントローラサポート装置8のハードウェア構成を示す模式図である。図5を参照して、コントローラサポート装置8は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
 図5を参照して、コントローラサポート装置8は、OSを含む各種プログラムを実行するCPU81と、BIOSや各種データを格納するROM(Read Only Memory)82と、CPU81でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM83と、CPU81で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)84とを含む。CPU81がコントローラサポート装置8の演算部に相当し、ROM82、RAM83およびハードディスク84がコントローラサポート装置8の記憶部に相当する。
 コントローラサポート装置8は、さらに、ユーザからの操作を受付けるキーボード85およびマウス86と、情報をユーザに提示するためのモニタ87とを含む。さらに、コントローラサポート装置8は、PLC1(CPUユニット13)などと通信するための通信インターフェイス(IF)89を含む。
 後述するように、コントローラサポート装置8で実行される各種プログラムは、CD-ROM9に格納されて流通する。このCD-ROM9に格納されたプログラムは、CD-ROM(Compact Disk-Read Only Memory)ドライブ88によって読取られ、ハードディスク(HDD)84などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
 上述したように、コントローラサポート装置8は、汎用的なコンピュータを用いて実現されるので、これ以上の詳細な説明は行わない。
 <F.コントローラサポート装置のソフトウェア構成>
 次に、図6を参照して、本実施の形態に係るコントローラサポート装置8が各種機能を提供するためのソフトウェア群について説明する。
 図6は、本発明の実施の形態に係るコントローラサポート装置8のソフトウェア構成を示す模式図である。図6を参照して、コントローラサポート装置8ではOS310が実行され、コントローラサポートプログラム320に含まれる各種のプログラムを実行可能な環境が提供される。
 コントローラサポートプログラム320は、エディタプログラム321と、コンパイラプログラム322と、デバッガプログラム323と、シミュレータプログラム324と、較正データ算出プログラム325と、推定実行時間算出プログラム326と、出力プログラム327と、通信プログラム328とを含む。コントローラサポートプログラム320に含まれるそれぞれのプログラムは、典型的には、CD-ROM9に格納された状態で流通して、コントローラサポート装置8にインストールされる。
 エディタプログラム321は、ユーザプログラム(ソースプログラム)330を作成するための入力および編集といった機能を提供する。より具体的には、エディタプログラム321は、ユーザがキーボード85やマウス86を操作してユーザプログラム236のソースプログラム330を作成する機能に加えて、作成したソースプログラム330の保存機能および編集機能を提供する。また、エディタプログラム321は、外部からの制御プログラム230(その中でも特に、ユーザプログラム236)のソースプログラムを入力し、またユーザの操作により既存の制御プログラム230のソースプログラムを編集する。
 コンパイラプログラム322は、制御プログラムのソースプログラム330をコンパイルして、CPUユニット13のマイクロプロセッサ100で実行可能なオブジェクトプログラム形式のユーザプログラム(第2制御プログラム)236を生成する機能を提供する。また、コンパイラプログラム322は、制御プログラムのソースプログラム330をコンパイルして、コントローラサポート装置8のCPU81で実行可能なオブジェクトプログラム形式のユーザプログラム(第1制御プログラム)340を生成する機能を提供する。このユーザプログラム340は、コントローラサポート装置8によってPLC1の動作をシミュレート(模擬)するために使用される、シミュレーション用のオブジェクトプログラムである。
 デバッガプログラム323は、ユーザプログラム(ソースプログラム)330に対してデバッグを行うための機能を提供する。このデバッグの内容としては、ソースプログラムのうちユーザが指定した範囲を部分的に実行する、ソースプログラムの実行中における変数値の時間的な変化を追跡する、といった動作を含む。
 シミュレータプログラム324は、実行されると、コントローラサポート装置8内にPLC1のCPUユニット13(コントローラ)のシミュレータを構築する。本シミュレータは、以下のような機能を提供する。
 (1)システムタイマの信号により制御サイクルを開始させるCPUユニット13のリアルタイムOSの機能。
 (2)制御プログラムの実行優先度と実行サイクルとに従って制御プログラム230の実行を制御する、CPUユニット13のスケジューラプログラム212の機能。
 (3)CPUユニット13の出力処理プログラム214および入力処理プログラム216の機能。
 (4)制御対象に代わって入力データを与える機能、および、可能な場合には、出力データを受けて動作する制御対象を模倣し、動作の結果を入力データに反映する機能。
 また、シミュレータプログラム324は、第1制御プログラム(シミュレータ用オブジェクトプログラム)340がシミュレータ上で動作するときに必要な、CPUユニット13におけるシーケンス命令演算プログラム232および/またはモーション演算プログラム234に相当するプログラムを提供する。
 第1制御プログラム(シミュレータ用オブジェクトプログラム)340の実行コード自体は、コントローラサポート装置8のCPU81が実行可能なコードであるので、上記の実行環境による実行制御または支援のもと、コントローラサポート装置8のCPU81によって直接実行される。
 あるいは、シミュレータプログラム324がCPUユニット13のマイクロプロセッサ100を仮想的に構築することにより、シミュレータ上で第2制御プログラム(コントローラ用オブジェクトプログラム)236を動作させてもよい。その場合は、第1制御プログラム(シミュレータ用オブジェクトプログラム)340と第2制御プログラム(コントローラ用オブジェクトプログラム)236とは同一のプログラムとなるので、これらを別々に生成する必要はない。
 また、コントローラサポート装置8のCPU81とCPUユニット13のマイクロプロセッサ100とが同系列のプロセッサであって、CPU81が第2制御プログラム(コントローラ用オブジェクトプログラム)236の実行コードを実行可能である場合も、第1制御プログラム(シミュレータ用オブジェクトプログラム)340と第2制御プログラム(コントローラ用オブジェクトプログラム)236とは同一のプログラムとなる。
 較正データ算出プログラム325は、実行されることにより、後述する図7の較正データ算出部325Aを構成する。推定実行時間算出プログラム326は、実行されることにより、後述する図7の推定実行時間算出部326Aを構成する。出力プログラム327は、実行されることにより、後述する図7の出力部327Aを構成する。これらのプログラムにより提供される処理については、図7を参照して後に詳述する。
 通信プログラム328は、PLC1のCPUユニット13へ制御プログラム230のCPUユニット13用のオブジェクトプログラム236を転送する機能を提供する。
 一般的には、PLC1に実装されるシステムプログラム210は、CPUユニット13の製造段階でCPUユニット13の不揮発性メモリ106へ格納される。但し、CD-ROM9にシステムプログラム210を格納しておけば、ユーザは、CD-ROM9のシステムプログラム210をコントローラサポート装置8へコピーし、通信プログラム328が提供する機能を利用してコピーしたシステムプログラム210をCPUユニット13へ転送することもできる。さらに、CD-ROM9に、PLC1のCPUユニット13で実行されるリアルタイムOS200を格納しておけば、リアルタイムOS200についてもユーザ操作によってPLC1へ再インストールできる。
 <G.コントローラサポート装置に関連する全体処理>
 (g1:概要)
 次に、図7を参照して、コントローラサポート装置8において行われる処理に加えて、制御プログラムの実行時間推定に関連する一連の処理、ならびに、各処理の間のプログラムおよびデータの流れについて説明する。
 図7は、本発明の実施の形態に係るコントローラサポート装置8に関連する全体処理を示す模式図である。図6にソフトウェア構成を示すコントローラサポート装置8は、図7に示すコントローラサポート装置Aに相当する。
 図7に示される、制御プログラムの実行時間を推定する方法は、較正データ算出処理のステップと推定実行時間算出処理のステップとを中心としている。
 較正データ算出処理は、較正用のテストプログラムを対象として事前に測定されるコントローラにおける実行時間とシミュレータにおける実行時間とを用いて、それらの間の関係を表す較正データを算出する処理である。
 推定実行時間算出処理は、シミュレータで測定された制御プログラムの実行時間を取得し、その実行時間を較正データを用いて変換することにより、その制御プログラムをコントローラで実行した場合の実行時間の推定値を算出する処理である。
 各処理の内容をより詳細に説明すると以下のとおりである。
 (g2:較正データ算出処理)
 まず、テストプログラムのソースプログラム(テストソースプログラム)370が用意される。
 テストソースプログラム370から、シミュレータ用コンパイラ380を用いて、シミュレータ用オブジェクトプログラム(第1テストプログラム)390が生成される。また、テストソースプログラム370から、コントローラ用コンパイラ382を用いて、コントローラ用オブジェクトプログラム(第2テストプログラム)392が生成される。
 第2テストプログラム392をコントローラAで実行することで、その実行時間が測定され、第2テストプログラム392の実行時間である第2テスト実行時間のデータが取得される。
 ここまでの処理は、一般にコントローラの供給者(コントローラの製造業者、販売業者、技術サービス業者など)において行われ、第1テストプログラム390と第2テスト実行時間とがユーザに提供される。なお、ここまでの処理をユーザ自身が行ってもよい。
 第1テストプログラム390をシミュレータ324Aで実行し、その実行時間を測定し、第1テストプログラム390の実行時間である第1テスト実行時間のデータが取得される。そして、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データが算出される。
 このように、較正データ算出処理は、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データを算出する処理である。ここで、第1テスト実行時間は、テストソースプログラム370から生成された、コントローラのシミュレータにおいて動作するオブジェクトプログラムである第1テストプログラム390の、シミュレータにおいて測定された実行時間である。また、第2テスト実行時間は、テストソースプログラム370から生成された、コントローラにおいて動作するオブジェクトプログラムである第2テストプログラム392の、コントローラにおいて測定された実行時間である。
 (g3:推定実行時間算出処理)
 次に、ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラム330が用意される。
 制御ソースプログラム330から、シミュレータ用コンパイラ322Aを用いて、シミュレータ用オブジェクトプログラム(第1制御プログラム)340が生成される。
 第1制御プログラム340をシミュレータ324Aで実行し、その実行時間を測定し、第1制御プログラムの実行時間である第1制御実行時間のデータが取得される。
 第1制御実行時間を較正データを用いて変換することにより、制御ソースプログラム330から生成された、コントローラにおいて動作するオブジェクトプログラムである第2制御プログラム342の、コントローラにおける実行時間の推定値である推定実行時間が算出される。
 第2制御プログラム342は、制御ソースプログラム330から、コントローラ用コンパイラ322Bを用いて生成される。第2制御プログラム342の実際の生成は、推定実行時間をふまえて、必要に応じて制御ソースプログラム330を修正した後に行えばよい。生成された第2制御プログラム342は、コントローラBに転送され、コントローラBにおいて実行される。なお、コントローラAとコントローラBとは、実行時間の観点で同一とみなせる機種である。
 このように、推定実行時間算出処理は、ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラム330から生成された、シミュレータ324Aにおいて動作するオブジェクトプログラムである第1制御プログラム340の、シミュレータ324Aにおいて測定された実行時間である第1制御実行時間を較正データを用いて変換することにより、制御ソースプログラム330から生成された、コントローラにおいて動作するオブジェクトプログラムである第2制御プログラム342の、コントローラにおける実行時間の推定値である推定実行時間を算出する処理である。
 推定実行時間が算出されると、推定実行時間を表す出力用データが作成され、出力する処理が実行される。出力用データを作成し、出力する処理は、たとえば、推定実行時間をモニタ87の画面に表示するための表示用データを作成し、表示させる処理である。出力用データを作成し、出力する処理は、推定実行時間を他の装置に送信するための送信用データを作成し、送信する処理であってもよい。出力用データを出力する処理は、コントローラサポート装置8外からアクセス可能な記憶部に出力用データを格納する処理であってもよい。
 (g4:変形例)
 シミュレータ(コントローラサポート装置8)とコントローラ(PLC1)とが同一のオブジェクトコードを実行できる場合は、シミュレータ用コンパイラとコントローラ用コンパイラとを使い分ける必要はなく、共通のコンパイラを用いればよい。その場合は、第1テストプログラム390と第2テストプログラム392とは同一のプログラムとなり、第1制御プログラム340と第2制御プログラム342とは同一のプログラムとなる。
 テストソースプログラム370のコンパイルに用いるシミュレータ用コンパイラ380と制御ソースプログラム330のコンパイルに用いるシミュレータ用コンパイラ322Aとは、同じソースプログラムをコンパイルすれば同じオブジェクトプログラムを生成できるものを使用する。コントローラ用コンパイラについても同様である。
 (g5:別形態)
 コントローラサポート装置8は、図7にコントローラサポート装置Aとして示したように、第1テストプログラム390および第2テスト実行時間を提供された以降のすべての処理を単一の装置で実行できるようにすると便利である。
 しかし、実行時間推定の観点からは、オブジェクトプログラムの生成を別の装置に行わせ、コントローラサポート装置8が行う処理を図7にコントローラサポート装置Bとして示した処理に限定してもよい。
 あるいは、シミュレータを別の装置において構成し、コントローラサポート装置8は、別の装置であるシミュレータから第1制御実行時間を取得するようにしてもよい。
 あるいは、較正データ算出処理を別の装置に行わせ、コントローラサポート装置8は、算出された較正データを取得し、それを記憶して使用するようにしてもよい。そうすると、実行時間推定の観点からは、コントローラサポート装置8が行う処理を図7にコントローラサポート装置Cとして示した処理に限定してもよい。
 コントローラサポート装置A,B,Cは、たとえば、可搬型または机上型のパーソナルコンピュータを用いて実現するのに好適である。
 なお、いずれの場合も、いったん較正データを算出した後は、記憶していた第1テストプログラム390と第2テスト実行時間とについては削除してもよい。
 図7に示すコントローラサポート装置Cは、以下のように表現することができる。すなわち、コントローラサポート装置Cは、記憶部(図5のROM82、RAM83およびハードディスク84)と演算部(図5のCPU81)とを含む。記憶部は、コントローラサポートプログラム320と、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データとの格納に用いられる。第1テスト実行時間は、テストソースプログラム370から生成された、コントローラのシミュレータにおいて動作するオブジェクトプログラムである第1テストプログラム390の、シミュレータにおいて測定された実行時間である。第2テスト実行時間は、テストソースプログラム370から生成された、コントローラにおいて動作するオブジェクトプログラムである第2テストプログラム392の、コントローラにおいて測定された実行時間である。
 コントローラサポートプログラム320は、以下の処理を演算部(CPU81)に実行させる。
 (1)ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラム330から生成された、シミュレータにおいて動作するオブジェクトプログラムである第1制御プログラム340の、シミュレータにおいて測定された実行時間である第1制御実行時間を取得する処理
 (2)第1制御実行時間を較正データを用いて変換することにより、制御ソースプログラム330から生成された、コントローラにおいて動作するオブジェクトプログラムである第2制御プログラム342の、コントローラにおける実行時間の推定値である推定実行時間を算出する処理
 (3)推定実行時間を表すデータを出力するための処理
 また、コントローラサポート装置Bは、表示部(図5のモニタ87の画面)に推定実行時間を表示する装置であるとする。コントローラサポート装置Bは、コントローラサポート装置Cに次の構成を加えた装置である。すなわち、コントローラサポート装置Bは、さらに表示部を含む。記憶部は、さらに、第1制御プログラム340と、第1テストプログラム390と、第2テスト実行時間との格納に用いられる。コントローラサポートプログラム320は、さらに以下の処理を演算部(CPU81)に実行させる。
 (4)コントローラサポート装置をシミュレータとして機能させるための処理
 (5)シミュレータにおいて第1テストプログラム390を実行することにより第1テスト実行時間を測定する処理
 (6)第1テスト実行時間および第2テスト実行時間から較正データを算出する処理
 (7)シミュレータにおいて第1制御プログラム340を実行することにより第1制御実行時間を測定する処理
 上述の推定実行時間を表すデータを出力するための処理は、表示部に推定実行時間を表示させるための表示用データを作成する処理である。
 <H.推定実行時間の表示例>
 次に、上述したような処理によって算出された推定実行時間の出力例(表示例)について説明する。
 図8は、本発明の実施の形態に係るコントローラサポート装置8から出力される推定実行時間の表示画面の一例を示す図である。
 図8に示す推定実行時間の表示画面例では、図4に示した制御プログラムAおよびBが実行時間推定の対象となっている。本表示画面においては、制御プログラムAは「TASK A」、制御プログラムBは「TASK B」とそれぞれ表記されている。
 正味実行時間として表示されているのが推定実行時間である。正味実行時間は、実行休止時間を除いた、その制御プログラムが実際に実行されている時間を意味する。たとえば、図4において、制御プログラムBは、2回の実行休止期間をはさんで、3回に分けて実行されている。この3回に分かれて実際に実行されている時間の合計が正味実行時間となる。
 正味実行時間の表示部には、IO処理の実行時間も表示されている。IO処理は「I/O」と表記されている。なお、IO処理の実行時間を求めるための処理については、図7において図示していない。IO処理の実行時間は、CPUユニット13に接続される他のユニットの数や、出力データおよび入力データの量と相関があり、それらが多いほどIO処理の実行時間が長くなる。コントローラサポート装置8は、それらの情報をコントローラに設定するために保有しているから、それらの情報を用いて、IO処理の実行時間の推定値を算出することができる。
 正味実行時間の表示部において「500μs」とあるのは、制御サイクルの周期が500μsであることを示している。
 シミュレータにおいて、推定実行時間(正味実行時間)の算出の元となる第1制御実行時間は、制御プログラムAおよびBを別々に、実行休止期間なしに実行することにより測定することができる。また、実際にコントローラにおいて実行されるときと同様に、シミュレータにおいても、図4のシーケンスのとおりに、実行優先度および実行サイクルに従ってプログラムを実行させ、実際に実行に要している時間を測定してもよい。
 第1制御実行時間の測定と推定実行時間の算出とは、複数回繰り返して行ってもよい。制御プログラムが繰り返し実行されると、制御プログラムにおいて使用する変数の値などの実行条件が変化し、それに応じて実行時間も変動する。正味実行時間のグラフに添えて表示しているMAX値は、繰り返し実行した場合の最大値である。これに加えて、最小値や平均値を表示してもよい。
 制御プログラムAの推定実行時間は、シーケンス演算部分とモーション演算部分とに分けて算出しており、グラフ表示においても分けて表示している。
 総計実行時間は、それぞれの制御プログラムの実行サイクルの開始からその実行サイクルにおける制御プログラムの実行終了までの時間を意味する。すなわち、制御プログラムAの総計実行時間は、図4の各制御サイクルの冒頭から、その制御サイクルにおいて制御プログラムAが実行終了するまでの時間に相当する。この時間には、制御プログラムA自体の実行時間のほか、IO処理の実行時間が加算される。
 同様に、制御プログラムBの総計実行時間は、図4の制御サイクル1の冒頭から制御サイクル3において制御プログラムBが実行終了するまでの時間に相当する。この時間には、制御プログラムBが実行終了するまでに実行される、3回のIO処理の実行時間と3回の制御プログラムAの実行時間とが加算される。
 総計実行時間の表示部において、「0.5ms」および「2ms」とあるのは、それぞれの制御プログラムについての実行サイクルの周期を示している。また、正味実行時間の場合と同様、各制御プログラムの総計実行時間の最大値が表示されている。総計実行時間の表示により、ユーザは、各制御プログラムが実行サイクルの時間内に実行終了できるのかどうかを知ることができる。
 図9は、本発明の実施の形態に係るコントローラサポート装置8から出力される推定実行時間の表示画面の別の一例を示す図である。
 図9に示す表示画面は、正味実行時間の表示部において、IO処理の実行時間をタスクAに含めて表示している点において、図8と相違する。
 すなわち、図9に示す表示画面においては、制御プログラム(この場合は制御プログラムA)の実行サイクルの周期と同じ周期で実行されるIO処理の実行時間と、その制御プログラムの実行時間とが加算して表示されている。このように、制御プログラムの推定実行時間の表示は、その制御プログラムの実行と組み合わせて実行される他の処理の実行時間を加算して表示する場合を含む。言い換えれば、必ずしも、制御プログラムの推定実行時間自体を表示する必要はなく、制御サイクル周期や実行サイクル周期の決定、制御プログラムの分割の仕方の決定などを行うときに、ユーザにとって役立つように、制御プログラムの推定実行時間を含む時間として表示されればよい。
 正味実行時間のタスクAのグラフは、IO処理の実行時間と制御プログラムAの実行時間とが区別できる形態で表示されている。このグラフに添えて表示されているMAX値は、IO処理時間を含めた実行時間であり、制御プログラムの推定実行時間は、数値では表示されていない。このように、制御プログラムの推定実行時間をグラフのみによって表示してもよい。
 さらに、正味実行時間および総計実行時間のいずれか一方だけを表示してもよい。総計実行時間の表示も、制御プログラムの推定実行時間の表示の一形態である。
 <I.較正データの算出処理>
 次に、第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データの算出処理について説明する。
 図10は、第1テスト実行時間と第2テスト実行時間との間の関係の一例を示す図である。図10において、X軸(横軸)は第1テスト時間(シミュレータにおける第1テストプログラム390の実行時間の測定値)を示し、Y軸(縦軸)は第2テスト実行時間(コントローラにおける第2テストプログラム392の実行時間の測定値)を示す。
 上述したように、第1テストプログラム390および第2テストプログラム392は、同一のテストソースプログラム370から生成されたオブジェクトプログラムである。図10のグラフ中に示される測定点P1~P5は、実行される命令の数が異なる5種類のテストソースプログラム370からそれぞれ生成された第1および第2テストプログラムの実行時間を示している。
 なお、測定点P1~P5は、それぞれプログラムを1回実行したときの実行時間の測定値でもよいが、実行時間は入力変数値等の実行条件によって実行ごとに変動し得ることを考慮して、同じプログラムを複数回実行したときの実行時間の平均値を採用することが好ましい。
 コントローラサポート装置8として汎用コンピュータを利用する場合は、通常、非リアルタイムオペレーティングシステム環境で第1テストプログラム390を実行することになるので、第1テストプログラムの実行がオペレーティングシステムにより一時中断されることが起こり得る。そのような場合の実行時間の測定値は、大きな値の異常値となるので、実行時間の平均値を求める場合には、そのような異常値を排除して計算する必要がある。同様に、推定実行時間の算出の基礎とする第1制御実行時間にも異常値は発生し得るので、そのような異常値を排除して推定実行時間を算出しなければならない。
 直線Lは、最小二乗法を用いて測定点P1~P5との誤差が最小になるようにして求めた直線である。この例では、直線Lは、式Y=aXによって表される。この比例係数「a」が較正データとなる。
 シミュレータにおいて測定された制御プログラムの実行時間である第1制御実行時間に、この較正データ「a」を乗じることにより、推定実行時間を算出することができる。
 直線Lは、式Y=aX+bによって表すこともでき、その場合には、「a」および「b」の値が較正データとなる。
 第1テスト実行時間と第2テスト実行時間とはほぼ比例関係となるため、その間の関係を直線で表現することができるが、より正確に関係を表現するために2次曲線や3次曲線といった多次関数を用いた方がよい場合もある。その場合には、多次関数を規定する各係数が較正データとなる。
 第1テスト実行時間と第2テスト実行時間との間の関係が直線で表せない場合があることの一つの原因としては、コントローラサポート装置8のCPU81やコントローラのマイクロプロセッサ(PLC1のマイクロプロセッサ100)のキャッシュ機構の動作の影響が考えられる。このようなキャッシュ機構の動作により、短い実行時間の測定値が、ある程度長い実行時間の測定値によって求めた直線上に乗らない場合がある、ということが考えられる。
 較正データは、複数の第1テスト時間と、各第1テスト時間に対応する第2テスト時間とを表す表形式のデータとしてもよい。そのような較正データを用いる場合には、第1制御実行時間をはさむ2つの第1テスト時間、または、第1制御実行時間に値が近いいくつかの第1テスト時間、を選んで、較正データ中に存在するデータからの直線補完または曲線補完によって、第1制御実行時間に対応する推定実行時間を求めることができる。
 <J.サーバ-クライアント形態>
 上述の説明においては、制御プログラムの実行時間を推定する処理をスタンドアローンの形態で実現する場合の例を示したが、いわゆるサーバ-クライアントの形態で実現してもよい。
 図11は、本発明の実施の形態に係るサーバコンピュータで実現されたコントローラサポート装置に関連する全体処理を示す模式図である。図11には、サーバコンピュータでコントローラサポート装置を実現した場合の、制御プログラムの実行時間推定に関連する一連の処理、ならびに、各処理の間のプログラムおよびデータの流れを示す。
 図11を参照して、コントローラサポート装置として機能するサーバコンピュータは、シミュレータ用コンパイラ322A、コントローラ用コンパイラ322B、シミュレータ324A、推定実行時間算出部326A、および、出力部327Aとして機能するプログラム群を有している。
 サーバコンピュータは、たとえば、ユーザの事業所内に設置されてLANによってクライアントコンピュータと接続するようにしてもよいし、コントローラ供給者の事業所に設置されインターネットによってユーザの事業所にあるクライアントコンピュータと接続するようにしてもよい。
 図11において記憶部に格納される較正データについても、図7に示したのと同様の処理を経て算出される。別のコンピュータを用いてこのような較正データを算出する処理を行ってもよいし、サーバコンピュータ自体においてこのような較正データを算出する処理の全部または一部を行ってもよい。但し、第1テストプログラムを実行するシミュレータを別のコンピュータに設ける場合には、サーバコンピュータにおけるシミュレータと比較して、同じプログラムを同じ実行時間で実行できるシミュレータであることが必要である。
 サーバコンピュータにおいて較正データを求めるまでの一連の処理を行った場合であっても、サーバコンピュータがクライアントコンピュータに対してサービスを提供する段階においては、較正データを使用できれば足りる。そのため、較正データを求めるために使用したプログラムおよびデータは、サーバコンピュータから削除されていても構わない。
 制御ソースプログラム330は、クライアントコンピュータにおいて作成され、サーバコンピュータに送られる。
 サーバコンピュータは、コントローラ用コンパイラ322Bにより、クライアントコンピュータからの指示に応じて、制御ソースプログラム330から第2制御プログラム342を生成し、クライアントコンピュータに送信する。サーバコンピュータは、コントローラ用コンパイラ322Bを有さないようにして、第2制御プログラム342の生成サービスを行わないようにしてもよい。
 シミュレータ用コンパイラ322Aは、制御ソースプログラム330から第1制御プログラム(シミュレータ用オブジェクトプログラム)340を生成する。
 シミュレータ324Aは、第1制御プログラム340を実行して、その実行時間である第1制御実行時間を測定する。
 推定実行時間算出部326Aは、較正データを用いて、第1制御実行時間から推定実行時間を算出する。
 出力部327Aは、たとえば、図8または図9に示す形態で推定実行時間を表示するための表示用データを作成し、クライアントコンピュータに送信する。表示用データは、たとえば、ウエブブラウザを用いて表示できるHTML形式のデータである。出力部327Aは、推定実行時間を表す数値データだけをクライアントコンピュータに送信し、その表示形態はクライアントコンピュータにまかせるようにしてもよい。
 サーバコンピュータは、シミュレータ用コンパイラ322Aを有さないようにして、クライアントコンピュータにおいて生成された第1制御プログラム340を受信するようにしてもよい。
 サーバコンピュータにシミュレータおよび較正データを有して、複数のクライアントコンピュータのために推定実行時間算出処理を行うようにすると、新しい機種のコントローラに適合する新しいシミュレータおよび較正データを追加する作業が容易になる。
 図11に示すコントローラサポート装置は、図7に示すコントローラサポート装置Cの構成を含み、その上で、少なくとも次の構成を追加した装置である。すなわち、記憶部は、さらに、第1制御プログラム340の格納に用いられる。コントローラサポートプログラム320は、演算部に、コントローラサポート装置をシミュレータ324Aとして機能させるための処理と、シミュレータ324Aにおいて第1制御プログラム340を実行することにより第1制御実行時間を測定する処理とをさらに実行させる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 PLC、2 フィールドネットワーク、3 サーボモータドライバ、4 サーボモータ、5 リモートIOターミナル、6 検出スイッチ、7 リレー、8 コントローラサポート装置、9 CD-ROM、10 接続ケーブル、11 PLCシステムバス、12 電源ユニット、13 CPUユニット、14,53 IOユニット、15 特殊ユニット、51 リモートIOターミナルバス、52 通信カプラ、81 CPU、82 ROM、83 RAM、84 ハードディスク、85 キーボード、86 マウス、87 モニタ、88 CD-ROMドライブ、100 マイクロプロセッサ、102 チップセット、104 メインメモリ、106 不揮発性メモリ、108 システムタイマ、110 USBコネクタ、120 PLCシステムバスコントローラ、122 DMA制御回路、124 PLCシステムバス制御回路、126,146 バッファメモリ、130 コネクタ、140 フィールドネットワークコントローラ、142 DMA制御回路、144 フィールドネットワーク制御回路、200 リアルタイムOS、210 システムプログラム、212 スケジューラプログラム、214 出力処理プログラム、216 入力処理プログラム、218 IO処理プログラム、220 その他のシステムプログラム、230 ユーザプログラム、230 制御プログラム、232 シーケンス命令演算プログラム、234 モーション演算プログラム、236 ユーザプログラム、320 コントローラサポートプログラム、321 エディタプログラム、322 コンパイラプログラム、322A,380 シミュレータ用コンパイラ、322B,382 コントローラ用コンパイラ、323 デバッガプログラム、324 シミュレータプログラム、324A シミュレータ、325 較正データ算出プログラム、325A 較正データ算出部、326 推定実行時間算出プログラム、326A 推定実行時間算出部、327 出力プログラム、327A 出力部、328 通信プログラム、330 制御ソースプログラム、340 第1制御プログラム、342 第2制御プログラム、370 テストソースプログラム、390 第1テストプログラム、392 第2テストプログラム、SYS システム。

Claims (10)

  1.  記憶部と演算部とを備えたコントローラサポート装置であって、
     前記記憶部は、
      コントローラサポートプログラムと、
      第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データとの格納に用いられ、前記第1テスト実行時間は、テストソースプログラムから生成された、コントローラのシミュレータにおいて動作するオブジェクトプログラムである第1テストプログラムの、前記シミュレータにおいて測定された実行時間であり、前記第2テスト実行時間は、前記テストソースプログラムから生成された、前記コントローラにおいて動作するオブジェクトプログラムである第2テストプログラムの、前記コントローラにおいて測定された実行時間であり、
     前記コントローラサポートプログラムは、
      ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラムから生成された、前記シミュレータにおいて動作するオブジェクトプログラムである第1制御プログラムの、前記シミュレータにおいて測定された実行時間である第1制御実行時間を取得する処理と、
      前記第1制御実行時間を前記較正データを用いて変換することにより、前記制御ソースプログラムから生成された、前記コントローラにおいて動作するオブジェクトプログラムである第2制御プログラムの、前記コントローラにおける実行時間の推定値である推定実行時間を算出する処理と、
      前記推定実行時間を表すデータを出力するための処理とを、前記演算部に実行させる、コントローラサポート装置。
  2.  前記記憶部は、さらに、前記第1制御プログラムの格納に用いられ、
     前記コントローラサポートプログラムは、さらに、
      前記コントローラサポート装置を前記シミュレータとして機能させるための処理と、
      前記シミュレータにおいて前記第1制御プログラムを実行することにより前記第1制御実行時間を測定する処理とを、前記演算部に実行させる、請求項1に記載のコントローラサポート装置。
  3.  前記コントローラサポート装置は、さらに、表示部を備え、
     前記記憶部は、さらに、前記第1テストプログラムと、前記第2テスト実行時間との格納に用いられ、
     前記コントローラサポートプログラムは、さらに、
      前記シミュレータにおいて前記第1テストプログラムを実行することにより前記第1テスト実行時間を測定する処理と、
      前記第1テスト実行時間および前記第2テスト実行時間から前記較正データを算出する処理とを、前記演算部に実行させ、
     前記推定実行時間を表すデータを出力するための処理は、前記表示部に前記推定実行時間を表示させるための表示用データを作成する処理である、請求項2に記載のコントローラサポート装置。
  4.  記憶部と演算部とを備えたコントローラサポート装置において実行されるためのコントローラサポートプログラムであって、
     前記記憶部は、
      前記コントローラサポートプログラムと、
      第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データとの格納に用いられ、前記第1テスト実行時間は、テストソースプログラムから生成された、コントローラのシミュレータにおいて動作するオブジェクトプログラムである第1テストプログラムの、前記シミュレータにおいて測定された実行時間であり、前記第2テスト実行時間は、前記テストソースプログラムから生成された、前記コントローラにおいて動作するオブジェクトプログラムである第2テストプログラムの、前記コントローラにおいて測定された実行時間であり、
     前記コントローラサポートプログラムは、
      ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラムから生成された、前記シミュレータにおいて動作するオブジェクトプログラムである第1制御プログラムの、前記シミュレータにおいて測定された実行時間である第1制御実行時間を取得する処理と、
      前記第1制御実行時間を前記較正データを用いて変換することにより、前記制御ソースプログラムから生成された、前記コントローラにおいて動作するオブジェクトプログラムである第2制御プログラムの、前記コントローラにおける実行時間の推定値である推定実行時間を算出する処理と、
      前記推定実行時間を表すデータを出力するための処理とを、前記演算部に実行させる、コントローラサポートプログラム。
  5.  前記記憶部は、さらに、前記第1制御プログラムの格納に用いられ、
     前記コントローラサポートプログラムは、さらに、
      前記コントローラサポート装置を前記シミュレータとして機能させるための処理と、
      前記シミュレータにおいて前記第1制御プログラムを実行することにより前記第1制御実行時間を測定する処理とを、前記演算部に実行させる、請求項4に記載のコントローラサポートプログラム。
  6.  前記記憶部は、さらに、前記第1テストプログラムと、前記第2テスト実行時間との格納に用いられ、
     前記コントローラサポートプログラムは、さらに、
      前記シミュレータにおいて前記第1テストプログラムを実行することにより前記第1テスト実行時間を測定する処理と、
      前記第1テスト実行時間および前記第2テスト実行時間から前記較正データを算出する処理とを、前記演算部に実行させる、請求項5に記載のコントローラサポートプログラム。
  7.  記憶部と演算部とを備えたコントローラサポート装置において実行されるためのコントローラサポートプログラムを格納した記録媒体であって、
     前記記憶部は、
      前記コントローラサポートプログラムと、
      第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データとの格納に用いられ、前記第1テスト実行時間は、テストソースプログラムから生成された、コントローラのシミュレータにおいて動作するオブジェクトプログラムである第1テストプログラムの、前記シミュレータにおいて測定された実行時間であり、前記第2テスト実行時間は、前記テストソースプログラムから生成された、前記コントローラにおいて動作するオブジェクトプログラムである第2テストプログラムの、前記コントローラにおいて測定された実行時間であり、
     前記コントローラサポートプログラムは、
      ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラムから生成された、前記シミュレータにおいて動作するオブジェクトプログラムである第1制御プログラムの、前記シミュレータにおいて測定された実行時間である第1制御実行時間を取得する処理と、
      前記第1制御実行時間を前記較正データを用いて変換することにより、前記制御ソースプログラムから生成された、前記コントローラにおいて動作するオブジェクトプログラムである第2制御プログラムの、前記コントローラにおける実行時間の推定値である推定実行時間を算出する処理と、
      前記推定実行時間を表すデータを出力するための処理とを、前記演算部に実行させる、コントローラサポートプログラムを格納した記録媒体。
  8.  前記記憶部は、さらに、前記第1制御プログラムの格納に用いられ、
     前記コントローラサポートプログラムは、さらに、
      前記コントローラサポート装置を前記シミュレータとして機能させるための処理と、
      前記シミュレータにおいて前記第1制御プログラムを実行することにより前記第1制御実行時間を測定する処理とを、前記演算部に実行させる、請求項7に記載のコントローラサポートプログラムを格納した記録媒体。
  9.  前記記憶部は、さらに、前記第1テストプログラムと、前記第2テスト実行時間との格納に用いられ、
     前記コントローラサポートプログラムは、さらに、
      前記シミュレータにおいて前記第1テストプログラムを実行することにより前記第1テスト実行時間を測定する処理と、
      前記第1テスト実行時間および前記第2テスト実行時間から前記較正データを算出する処理とを、前記演算部に実行させる、請求項8に記載のコントローラサポートプログラムを格納した記録媒体。
  10.  制御対象を制御するコントローラにおける制御プログラムの実行時間を推定する方法であって、
     第1テスト実行時間と第2テスト実行時間との間の関係を表す較正データを算出する較正データ算出ステップを含み、前記第1テスト実行時間は、テストソースプログラムから生成された、前記コントローラのシミュレータにおいて動作するオブジェクトプログラムである第1テストプログラムの、前記シミュレータにおいて測定された実行時間であり、前記第2テスト実行時間は、前記テストソースプログラムから生成された、前記コントローラにおいて動作するオブジェクトプログラムである第2テストプログラムの、前記コントローラにおいて測定された実行時間であり、
     ユーザにおける制御目的に応じて作成された制御プログラムのソースプログラムである制御ソースプログラムから生成された、前記シミュレータにおいて動作するオブジェクトプログラムである第1制御プログラムの、前記シミュレータにおいて測定された実行時間である第1制御実行時間を前記較正データを用いて変換することにより、前記制御ソースプログラムから生成された、前記コントローラにおいて動作するオブジェクトプログラムである第2制御プログラムの、前記コントローラにおける実行時間の推定値である推定実行時間を算出する推定実行時間算出ステップを含む、制御プログラムの実行時間を推定する方法。
PCT/JP2011/056770 2011-03-15 2011-03-22 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法 WO2012124134A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP11815660.3A EP2533114B1 (en) 2011-03-15 2011-03-22 Controller support device, controller support program to be executed in said device, recording medium storing said program, and method for estimating execution duration of control program
CN201180003425.2A CN102792235B (zh) 2011-03-15 2011-03-22 控制器支持装置、以及估计控制程序的执行时间的方法
US13/399,111 US8977534B2 (en) 2011-03-15 2012-02-17 Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011056775A JP4748286B1 (ja) 2011-03-15 2011-03-15 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法
JP2011-056775 2011-03-15

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/399,111 Continuation US8977534B2 (en) 2011-03-15 2012-02-17 Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program

Publications (1)

Publication Number Publication Date
WO2012124134A1 true WO2012124134A1 (ja) 2012-09-20

Family

ID=44597050

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/056770 WO2012124134A1 (ja) 2011-03-15 2011-03-22 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法

Country Status (4)

Country Link
EP (1) EP2533114B1 (ja)
JP (1) JP4748286B1 (ja)
CN (1) CN102792235B (ja)
WO (1) WO2012124134A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372478B2 (en) * 2012-01-04 2016-06-21 General Electric Company Control system for a power application
CN104252347A (zh) * 2013-06-27 2014-12-31 鸿富锦精密工业(深圳)有限公司 任务等待时间处理系统及方法
JP6676883B2 (ja) * 2015-06-01 2020-04-08 株式会社Ihi シミュレーション装置
JP6624008B2 (ja) * 2016-10-27 2019-12-25 横河電機株式会社 エンジニアリングツール連携装置、エンジニアリングツール連携方法、エンジニアリングツール連携プログラム及び記録媒体
JP7037289B2 (ja) * 2017-06-26 2022-03-16 三菱重工業株式会社 制御切替装置、プラント、制御切替方法およびプログラム
CN109814480B (zh) * 2019-01-18 2021-10-08 广州宁基智能系统有限公司 Plc与线控程序之间的可视化交互方法及系统
JP7512886B2 (ja) 2020-12-23 2024-07-09 オムロン株式会社 制御装置、制御方法および制御プログラム
JP2023002081A (ja) * 2021-06-22 2023-01-10 オムロン株式会社 予測システム、情報処理装置および情報処理プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001209411A (ja) 2000-01-25 2001-08-03 Omron Corp Plcシミュレータ
JP2008123559A (ja) * 2008-02-15 2008-05-29 Omron Corp Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024495B2 (en) * 2001-03-30 2006-04-04 Omron Corporation Programmable controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001209411A (ja) 2000-01-25 2001-08-03 Omron Corp Plcシミュレータ
JP2008123559A (ja) * 2008-02-15 2008-05-29 Omron Corp Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
CN102792235A (zh) 2012-11-21
EP2533114A1 (en) 2012-12-12
EP2533114A4 (en) 2014-02-26
JP4748286B1 (ja) 2011-08-17
JP2012194669A (ja) 2012-10-11
EP2533114B1 (en) 2015-10-28
CN102792235B (zh) 2016-02-17

Similar Documents

Publication Publication Date Title
JP4905597B1 (ja) コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体
JP4748286B1 (ja) コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、そのプログラムを格納した記録媒体、および、制御プログラムの実行時間を推定する方法
US8977534B2 (en) Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program
JP6540166B2 (ja) 制御装置
JP6488830B2 (ja) 制御装置
JP4807475B1 (ja) 演算ユニット、出力制御方法、およびプログラム
JP6409557B2 (ja) 制御装置、コントローラ・システム、出力制御方法、およびプログラム
JP4752984B1 (ja) Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体
WO2013011713A1 (ja) Plcのcpuユニット、plc用のシステムプログラム、plc用のシステムプログラムを格納した記録媒体、plcシステム、plcサポート装置、plcサポートプログラム、および、plcサポートプログラムを格納した記録媒体
JP6299064B2 (ja) 制御装置、制御方法、およびプログラム
JP2019053459A (ja) 制御装置および制御方法
WO2018147058A1 (ja) 制御装置
EP3441831B1 (en) Information processing device, information processing method, and information processing program
JP6729746B2 (ja) 制御装置
US20190095246A1 (en) Support device and non-transitory storage medium
JP5891891B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2016012191A (ja) 情報処理装置、情報処理方法、およびプログラム
JP2016194831A (ja) 制御装置
WO2012124145A1 (ja) 演算ユニット、支援装置、支援プログラム、支援プログラムを格納した記憶媒体、および、支援装置における動作方法
JP2012194955A (ja) 支援装置、表示制御方法、およびプログラム

Legal Events

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

Ref document number: 201180003425.2

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2011815660

Country of ref document: EP

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

Ref document number: 11815660

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE