WO2019171501A1 - Cpu unit of programmable logic controller, programmable logic controller, method, computer, and computer program - Google Patents

Cpu unit of programmable logic controller, programmable logic controller, method, computer, and computer program Download PDF

Info

Publication number
WO2019171501A1
WO2019171501A1 PCT/JP2018/008798 JP2018008798W WO2019171501A1 WO 2019171501 A1 WO2019171501 A1 WO 2019171501A1 JP 2018008798 W JP2018008798 W JP 2018008798W WO 2019171501 A1 WO2019171501 A1 WO 2019171501A1
Authority
WO
WIPO (PCT)
Prior art keywords
instruction
programmable logic
unit
arithmetic
logic device
Prior art date
Application number
PCT/JP2018/008798
Other languages
French (fr)
Japanese (ja)
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 PCT/JP2018/008798 priority Critical patent/WO2019171501A1/en
Priority to JP2019502024A priority patent/JP6591116B1/en
Priority to CN201880090694.9A priority patent/CN111819503B/en
Priority to DE112018007018.2T priority patent/DE112018007018B4/en
Priority to TW108106511A priority patent/TWI701592B/en
Publication of WO2019171501A1 publication Critical patent/WO2019171501A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts

Definitions

  • the present invention relates to a CPU unit of a programmable logic controller, a programmable logic controller, a method, a computer, and a computer program.
  • the CPU Central Processing Unit
  • ASIC application specific integrated circuit
  • MPU microprocessor
  • the ASIC executes a specific process determined at the time of design, and the microprocessor executes a process that cannot be processed by the ASIC. Since the computing performance of the microprocessor is not as high as that of the ASIC, the processing capability of the microprocessor has been a difficulty in speeding up the operation of the CPU unit.
  • Patent Document 1 discloses a method for speeding up a process for causing a reconfigurable processor corresponding to a programmable logic device to execute a part of the process of a microprocessor.
  • a programmable logic device executes a program element that includes a function that takes time to process
  • a microprocessor executes a program element that does not include a function.
  • the programmable logic device executes only the processing of the program element including the function.
  • the present invention has been made in view of the above circumstances, and in a programmable logic controller, when processing of a microprocessor is distributed to programmable logic devices, it is possible to select an arithmetic device after creating a program, It is an object of the present invention to make it possible to change an arithmetic device without requiring correction.
  • the CPU unit of the programmable logic controller includes a microprocessor and a programmable logic device as an arithmetic unit.
  • Each instruction in the user program includes arithmetic unit information indicating the arithmetic unit that processes the instruction selected by the user.
  • the microprocessor processes instructions if the computing device information indicates a microprocessor.
  • a programmable logic device processes instructions when the computing device information indicates a programmable logic device.
  • the microprocessor or the programmable logic device processes an instruction based on the changed arithmetic device information.
  • the microprocessor processes the instruction and calculates the instruction. If the device information indicates a programmable logic device, the programmable logic device processes the instructions.
  • the microprocessor or the programmable logic device processes an instruction based on the changed arithmetic device information.
  • FIG. 1 The block diagram which shows the structure of PLC which concerns on embodiment of this invention Flowchart of program scan of CPU unit of PLC according to embodiment Detailed flowchart of program execution of FIG.
  • the flowchart which shows the process of selection of an arithmetic unit in the automatic selection mode of the engineering tool which changes the arithmetic unit information which concerns on embodiment
  • PLC programmable logic controller
  • the detector 901 including a sensor, a switch, etc. is connected to the input unit 200.
  • An on / off signal output from a sensor, switch, or the like of the detector 901 is supplied from the input unit 200 to the CPU unit 100.
  • the input unit 200 supplies the CPU unit 100 with an ON signal as a notification that the switch of the detector 901 has been turned ON and an OFF signal as a notification that the switch has been turned OFF.
  • the on signal is represented by “1”
  • the off signal is represented by “0”
  • the input unit 200 supplies “1” to the CPU unit 100 when the switch is turned on.
  • the input unit 200 supplies “0” to the CPU unit 100 when the switch is turned off.
  • the output unit 300 is connected to a controlled device 902 including an actuator, an indicator light, and the like.
  • the CPU unit 100 supplies the output unit 300 with an on / off signal for controlling the actuator, indicator lamp, and the like of the controlled device 902.
  • the CPU unit 100 supplies an ON signal to the output unit 300 as an instruction to drive the actuator of the controlled device 902 and an OFF signal as an instruction to stop the actuator.
  • the on signal is represented as “1”
  • the off signal is represented as “0”
  • the CPU unit 100 supplies “1” to the output unit in order to drive the actuator.
  • the CPU unit 100 supplies “0” to the output unit to stop the actuator.
  • the CPU unit 100, the input unit 200, and the output unit 300 are connected via a shared bus 400 and communicate via the shared bus 400. Although not shown, the CPU unit 100, the input unit 200, and the output unit 300 are connected to the power supply unit via the base unit, and operate by the power supplied from the power supply unit.
  • the CPU unit 100 includes a storage unit 110 that stores various data, a tool interface 120 for communication with an engineering tool 500 to be described later, a shared bus interface 130 for communication via the shared bus 400, and an arithmetic device.
  • An arithmetic unit 140 including an ASIC (Application Specific Integrated Circuit) 141, a microprocessor 142 (hereinafter referred to as MPU 142), and an FPGA (Field Programmable Gate Array) 143 is included.
  • Each part of the CPU unit 100 is connected via a bus 190.
  • the FPGA 143 is an example of a programmable logic device.
  • the storage unit 110 includes a ROM (Read Only Memory), a RAM (Random Access Memory), a memory card, and the like.
  • the storage unit 110 stores a user program 111.
  • the user program 111 is a program for controlling the controlled device 902.
  • a user creates a user program 111 using an engineering tool 500 described later.
  • the created user program 111 is converted into a mnemonic assembly language, then uploaded to the CPU unit 100 of the PLC 1 and stored in the storage unit 110.
  • each command is turned on or off by the input of an on / off signal. Only instructions that are turned on are executed.
  • Each instruction in the user program 111 includes arithmetic device information as information indicating which arithmetic device of the arithmetic unit 140 executes the instruction.
  • ASIC 141 is represented by “1”
  • MPU 142 is represented by “2”
  • FPGA 143 is represented by “3”
  • a bit string indicating these values is added to each instruction.
  • the arithmetic unit information cannot be changed for a specific instruction decided to be processed by the ASIC.
  • the tool interface 120 is an interface for the CPU unit 100 to communicate with the engineering tool 500.
  • the tool interface 120 operates according to the control of the calculation unit 140.
  • the shared bus interface 130 is a communication interface for the CPU unit 100 to communicate with the input unit 200 and the output unit 300 via the shared bus 400.
  • the shared bus interface 130 operates according to the control of the arithmetic unit 140.
  • the calculation unit 140 executes each command of the user program 111 using the input data supplied from the input unit 200. More specifically, the arithmetic device specified by the arithmetic device information of each instruction in the user program 111 executes the instruction.
  • the input data is a value indicating an on / off signal output from a sensor, a switch, or the like of the detector 901.
  • the calculation unit 140 executes only the instruction that is turned on by the ON signal, and supplies the ON / OFF signal to the output unit 300 based on the output obtained as a result of the calculation.
  • the output unit 300 controls the controlled device 902 according to the supplied on / off signal.
  • the ASIC 141 includes a register 1411 that temporarily stores data when an instruction is executed, and a program counter 1412 that stores an address of an instruction to be executed next.
  • the ASIC 141 processes only specific commands in the execution of the user program 111. This is because the ASIC 141 can execute only specific instructions determined in the design stage. This specific instruction is called an ASIC compatible instruction.
  • An instruction other than the ASIC compatible instruction of the user program 111 is referred to as an ASIC non-compliant instruction.
  • the MPU 142 has a register 1421 for temporarily storing data when an instruction is executed.
  • the MPU 142 processes an instruction selected to be processed by the MPU 142 among non-ASIC instructions.
  • the FPGA 143 includes a register 1431 that temporarily stores data when an instruction is executed.
  • the FPGA 143 processes an instruction selected by the FPGA 143 to be processed among the ASIC non-compliant instructions.
  • the user can change the configuration of the logic circuit of the FPGA 143 after manufacturing. For example, if a new command is added to the user program 111 due to a change in the user program 111 and the command is not an ASIC-compatible command, the ASIC 141 cannot execute the added new command.
  • the FPGA 143 can execute a newly added instruction by changing the configuration of the logic circuit.
  • the MPU 142 can execute an ASIC non-corresponding instruction similarly to the FPGA 143, but the FPGA 143 is faster in processing speed. A method for selecting an instruction executed by the MPU 142 and an instruction executed by the FPGA 143 will be described later.
  • the input unit 200 includes a storage unit 210 for storing various data, a shared memory 220 for exchanging data with the CPU unit 100, a shared bus interface 230 for communication via the shared bus 400, and the entire input unit 200.
  • MPU 240 for controlling Each part of the input unit 200 is connected via a bus 290.
  • the storage unit 210 includes a ROM, a RAM, a memory card, and the like.
  • the storage unit 210 stores an operation program 211 for the operation of the input unit 200.
  • the shared memory 220 is a memory that can be read and written by both the CPU unit 100 and the input unit 200.
  • the shared memory 220 stores a value indicating an on / off signal output from a sensor, a switch, or the like of the detector 901.
  • the shared bus interface 230 is a communication interface for the input unit 200 to communicate with the CPU unit 100 via the shared bus 400.
  • the shared bus interface 130 operates according to the control of the MPU 240.
  • the MPU 240 executes the operation program 211 to turn on the state where the sensor, switch, etc. of the detector 901 detect some object, and turn off the state where no object is detected. Is stored in the shared memory 220. This value is an input on / off signal in the calculation in the CPU unit 100.
  • the output unit 300 includes a storage unit 310 for storing various data, a shared memory 320 for exchanging data with the CPU unit 100, a shared bus interface 330 for communication via the shared bus 400, and the entire output unit 300. And MPU 340 for controlling. Each part of the output unit 300 is connected via a bus 390.
  • the storage unit 310 includes a ROM, a RAM, a memory card, and the like.
  • the storage unit 310 stores an operation program 311 for the operation of the output unit 300.
  • the shared memory 320 is a memory in which both the CPU unit 100 and the output unit 300 can read and write.
  • the shared memory 320 stores a value indicating an on / off signal that is an output of the calculation of the CPU unit 100. This value is control data for controlling the actuator, indicator lamp, and the like of the controlled device 902 and is written into the shared memory 320 by the CPU unit 100.
  • the shared bus interface 330 is a communication interface for the output unit 300 to communicate with the CPU unit 100 via the shared bus 400.
  • the shared bus interface 330 operates according to the control of the MPU 340.
  • the MPU 340 executes the operation program 311 and controls the controlled device 902 based on the on / off signal supplied from the CPU unit 100. For example, when the ON signal is supplied, the MPU 340 turns on the actuator of the controlled device 902.
  • the user uses the engineering tool 500 to create the user program 111 that is executed by the CPU unit 100.
  • the created user program 111 is uploaded to the CPU unit 100 in a state where the engineering tool 500 and the CPU unit 100 are connected by the communication cable 501.
  • the engineering tool 500 is a device in which an application for creating a program is installed in a personal computer.
  • the engineering tool 500 includes a storage unit 510 that stores various data, an operation input unit 520 that receives user operations, a display unit 530 that displays an image on a display device, and a tool interface 540 for communication with the CPU unit 100. And a CPU 550 that controls the entire engineering tool 500.
  • Each part of the engineering tool 500 is connected by a bus 590.
  • the storage unit 510 includes an operating system 511 and a program creation application 512.
  • the operating system 511 is a program for controlling the engineering tool 500 as a whole.
  • the program creation application 512 is a program for creating a user program 111 and selecting an arithmetic device for each command of the created user program 111.
  • the operation input unit 520 includes an input device such as a keyboard and a mouse, receives an operation input from the user, and outputs a signal based on the received operation to the CPU 550.
  • Display unit 530 includes an image display device, and outputs an image to the screen of the image display device under the control of CPU 550.
  • the operation input unit 520 and the display unit 530 function as a reception unit that receives a user instruction.
  • the tool interface 540 transmits / receives data to / from the CPU unit 100 connected by the communication cable 501 according to the control of the CPU 550.
  • the CPU 550 executes the operating system 511 to control the engineering tool 500 as a whole. Further, the CPU 550 implements a function of executing the program creation application 512 to create the user program 111 and a function of changing the selection of the arithmetic device for each instruction in the user program 111.
  • the CPU unit 100 described above executes the user program 111 as follows.
  • the CPU unit 100 sequentially processes the user program 111 from the top instruction and reads an END instruction indicating the end of the program, the CPU unit 100 returns to the processing of the top instruction again. This method is called a scan method.
  • the CPU unit 100 acquires the input necessary for executing each instruction and outputs the execution result of the instruction in addition to executing each instruction of the user program 111. Specifically, as shown in FIG. 2, the arithmetic unit 140 of the CPU unit 100 executes a series of processes of refresh processing (step S11), program execution (step S12), and end processing (step S13) as one cycle. And repeat this cycle.
  • step S11 the calculation unit 140 writes the output data obtained by executing the user program 111 in the previous cycle stored in the storage unit 110 in the shared memory 320 of the output unit 300. Thereafter, the output data is deleted from the storage unit 110. Further, the arithmetic unit 140 reads input data from the shared memory 220 of the input unit 200 via the shared bus 400 and stores the read input value in the storage unit 110.
  • the arithmetic unit 140 sequentially reads the instructions of the user program 111 from the beginning and executes the read instructions.
  • the ASIC 141 processes an ASIC compatible instruction
  • the MPU 142 or the FPGA 143 processes an ASIC non-compatible instruction.
  • the arithmetic unit 140 reads an END instruction indicating the end of the program of the user program 111
  • the arithmetic unit 140 ends the execution of the user program 111.
  • Processing of ASIC non-compliant instructions by MPU 142 or FPGA 143 is an example of steps in which either the microprocessor or programmable logic device of the present invention processes instructions.
  • the CPU unit 100 executes data transfer processing with a network unit (not shown) that communicates with other devices via the network, and other common processing.
  • the ASIC 141, the MPU 142, and the FPGA 143 share and process the instructions of the user program 111.
  • the operations of the ASIC 141, the MPU 142, and the FPGA 143 in the program execution step of Step S12 in FIG. 2 will be described in more detail.
  • the address of the first instruction of the user program 111 is stored in the program counter 1412 of the ASIC 141.
  • the ASIC 141 reads the instruction indicated by the address of the program counter 1412 from the user program 111 to the register 1411 (step S121).
  • the ASIC 141 also counts up the address of the program counter 1412. Therefore, an address indicating the next instruction is set in the program counter 1412.
  • the ASIC 141 determines whether or not the read instruction is an END instruction (step S122). If it is determined that the instruction is not an END instruction (step S122; No), the ASIC 141 determines whether or not the read instruction is an ASIC-compatible instruction (step S123). Specifically, it is determined whether or not the bit string indicating the arithmetic device information included in the instruction is a bit string indicating the ASIC 141.
  • step S123 If the ASIC 141 determines that the read instruction is an ASIC-compatible instruction (step S123; Yes), the ASIC 141 executes the instruction (step S124). Subsequently, the ASIC 141 reads the instruction at the address set in the program counter 1412 to the register 1411 (step S121).
  • step S123 when the ASIC 141 determines that the read instruction is not an ASIC compatible instruction (step S123; No), the ASIC 141 outputs the interrupt instruction to the MPU 142, and then holds the value of the program counter 1412 and stops.
  • the MPU 142 When the MPU 142 receives an interrupt instruction from the ASIC 141, the MPU 142 reads the instruction stored in the register 1411 of the ASIC 141 into its own register 1421. Based on the arithmetic unit information of the read instruction, the MPU 142 determines whether or not the instruction is an instruction selected to be processed by the MPU 142 (step S125). When the MPU 142 determines that the instruction is an instruction selected to be processed by the MPU 142 (step S125; Yes), the MPU 142 executes the instruction (step S126). After that, the MPU 142 writes a value instructing the restart into the register 1411 of the ASIC 141 in order to restart the ASIC 141. As a result, the ASIC 141 restarts, reads the instruction indicated by the address held in the program counter 1412 to the register 1411 (step S121), and resumes execution of the instruction.
  • the MPU 142 determines that the instruction read in step S125 is not the instruction selected to be processed by the MPU 142 (step S125; No)
  • the MPU 142 writes the instruction in the register 1431 of the FPGA 143 and executes the instruction in the FPGA 143.
  • the FPGA 143 executes the instruction stored in the register 1431 of the FPGA 143 and writes a return value indicating that the calculation is completed to the register 1431.
  • the MPU 142 writes a value instructing the restart into the register 1411 of the ASIC 141 in order to restart the ASIC 141.
  • the ASIC 141 reads the instruction indicated by the address held in the program counter 1412 to the register 1411 (step S121), and resumes the execution of the instruction.
  • step S122 when the ASIC 141 determines that the read instruction is an END instruction (step S122; Yes), the execution of the user program 111 is terminated. Thereafter, the CPU unit 100 executes the end process of step S13 in FIG.
  • the ASIC non-compliant instruction is processed by the MPU 142 or the FPGA 143 according to the value set in the arithmetic unit information.
  • a value indicating the MPU 142 is set as a default value in the arithmetic unit information of all ASIC non-corresponding instructions.
  • the user starts the program creation application 512 of the engineering tool 500 by operating the operation input unit 520 such as a keyboard and a mouse.
  • the user selects a “create user program” menu from the menu screen shown in FIG. 4 displayed on the display unit 530 and causes the display unit 530 to display a program creation screen (not shown).
  • the user creates and saves the user program 111 on a program creation screen (not shown).
  • the created user program 111 is stored in the storage unit 510 of the engineering tool 500.
  • the user operates the operation input unit 520 to display the menu screen shown in FIG. 4 on the display unit 530 again.
  • the user selects the “select arithmetic device” menu and causes the display unit 530 to display a submenu screen as shown in FIG.
  • the engineering tool 500 analyzes the user program 111, and the FPGA 143 executes and selects an instruction that can be accelerated and improved in performance as an instruction to be executed by the FPGA 143. Is set to a value indicating the FPGA 143.
  • manual selection modes 1 and 2 the user selects an arithmetic device for each command.
  • Automatic selection mode When executing the automatic selection mode, the user selects an arbitrary user program 111 as a target program on the submenu screen and designates “automatic selection mode”. In the illustrated example, “program 001” is selected as the user program 111.
  • the CPU 550 of the engineering tool 500 executes the program creation application 512 to perform the following processing.
  • the storage unit 510 stores the following information in advance.
  • N 1 Number of non-ASIC instructions. This value is the number of types of all ASIC non-corresponding instructions. It does not matter whether the user program 111 is included in the “program 001”.
  • G FPGA The total number of gates of FPGA 143. This value is a value based on the hardware specifications of the FPGA 143.
  • Time that can be reduced by using the FPGA 143 for each instruction (reducible time): T n (n 1, 2,..., N 1 ). here.
  • the difference between the processing time of the instruction of the MPU 142 and the processing time of the instruction of the FPGA 143 is set as a difference.
  • the reducible time is an example of the processing time of each instruction by the programmable logic device of the present invention.
  • said (2), (3), (4) is an example of the definition information of the programmable logic device of this invention.
  • processing time per gate of the FPGA 143 is obtained (step S22).
  • the instructions are sorted by the processing time P n per gate for each instruction obtained in step S22 (step S23). Here, it sorts in descending order.
  • the number of used gates G n of the instruction is sequentially added.
  • the total of use gate number G n is, while not exceeding the total number of gates G FPGA of FPGA143, continue the addition.
  • the counter i is set to “1”, and the number of used gates G n of the i-th instructions sorted in step S23 is set to the total value s as the current G i (step S24). .
  • step S25 it is determined whether or not the total value s is larger than the total gate number G FPGA (step S25). If it is determined that the total value s is equal to or less than the total gate number G FPGA (step S25; No), the FPGA 143 is set in the arithmetic unit information of the i-th instruction (step S26). The counter i is incremented, and the sum of the current total value s and the number of gates G i used for the i-th instruction is set as a new total value s (step S27). The process returns to step S25 again.
  • step S25 If it is determined in step S25 that the total value s is greater than G FPGA (step S25; Yes), the process ends.
  • the CPU 550 sets the FPGA 143 to the arithmetic device information of the instruction selected as the instruction to be executed by the FPGA 143.
  • the arithmetic unit information of an instruction not selected as an instruction to be executed by the FPGA 143 is not updated.
  • the CPU 550 functions as a determination unit that determines an instruction processed by the FPGA 143 and an instruction that the FPGA 143 does not process, and an update unit that updates arithmetic unit information of the instruction determined as an instruction processed by the FPGA 143.
  • the instruction selected as the instruction to be processed by the FPGA 143 is an example of the first instruction of the present invention.
  • the instruction not processed by the FPGA 143 is an example of the second instruction of the present invention.
  • the user When the processing in the automatic selection mode is completed, the user operates the operation input unit 520 to display the submenu screen shown in FIG. 5 again.
  • the user selects “Upload Program” on the submenu screen. It is assumed that the engineering tool 500 and the CPU unit 100 are connected with a communication cable 501 in advance.
  • “Upload Program” is selected, CPU 550 transfers “program 001”, which is user program 111 stored in storage unit 510, to storage unit 110 of CPU unit 100.
  • the CPU 550 functions as a transfer unit that transfers the user program 111 with the updated arithmetic device information to the CPU unit 100.
  • the FPGA 143 selects the instructions to be executed in order from the instruction having the largest processing time per gate. By assigning an instruction with a large processing load to the FPGA 143, the operation of the PLC 1 can be speeded up.
  • the user program 111 is analyzed and an instruction to be executed by the FPGA 143 is selected.
  • the user can select an arithmetic device for each instruction.
  • Manual selection mode 1 When executing the manual selection mode 1, the user operates the operation input unit 520 to display the submenu screen of FIG. 5, selects an arbitrary user program 111 as a target program on the submenu screen, “Selection mode 1” is designated.
  • the CPU 550 of the engineering tool 500 displays a selection screen as shown in FIG. On this screen, a list of ASIC non-corresponding instructions called in the user program 111 is displayed.
  • the list of non-ASIC instructions that are called in the user program 111 the number of calls that indicate the number of times each instruction is called in the user program 111, and the load caused by executing each instruction once Displays the resource load to represent and the current execution part of each instruction.
  • the value of the execution unit indicates whether the arithmetic unit that executes the instruction is the MPU 142 or the FPGA 143. When the execution unit is “S / W”, this indicates that the MPU 142 processes an instruction.
  • the execution unit When the execution unit is “H / W”, it indicates that the FPGA 143 processes an instruction. In the manual selection mode 1, all the same ASIC non-corresponding instructions are processed by any one of the designated arithmetic units of the MPU 142 and the FPGA 143. For example, when the execution unit of the instruction A is updated from “S / W” to “H / W”, the FPGA 143 processes all the instructions A in the user program 111.
  • the user changes the value of the execution part of the selected command and selects “Save” at the bottom of the screen to save the change. Therefore, the CPU 550 updates the arithmetic device information with the value of the selected execution unit for each instruction in the user program 111. For example, the user changes the execution part of the instruction A from “S / W” to “H / W” and selects “save”. In this case, the arithmetic unit information of all the instructions A in the user program 111 is updated to a value indicating the FPGA 143.
  • the number of calls for each command and the resource load are also displayed. Therefore, the user can select whether the MPU 142 or the FPGA 143 processes the instruction in consideration of the number of times each instruction is called and the resource load.
  • each instruction of the user program 111 is executed only when turned on, for example, not all the instructions A included in the user program 111 are executed within one cycle. Under such circumstances, it is also possible for the user who knows the situation in the field to make a more suitable selection by selecting which of the MPU 142 and FPGA 143 is used to process each command.
  • the manual selection mode 1 In the above-described manual selection mode 1, all the same ASIC non-corresponding instructions are processed by one of the designated arithmetic units of the MPU 142 or FPGA 143. For this reason, while the selected contents are not changed, the MPU 142 or the FPGA 143 is selected to execute the instruction regardless of how many times the instruction is called.
  • the manual selection mode 2 described below has a configuration that allows finer selection.
  • Manual selection mode 2 Next, the manual selection mode 2 will be described.
  • the user operates the operation input unit 520 to display the submenu screen of FIG. On the submenu screen, the user selects “program 001” as the target user program, and selects “manual selection mode 2” as the selection mode.
  • the CPU 550 of the engineering tool 500 displays the ladder diagram of the program 001 selected by the user and the execution unit of each instruction on the display unit 530, as shown in FIG. .
  • the value of the execution unit indicates which of the MPU 142 and the FPGA 143 is the arithmetic device that executes the instruction.
  • arithmetic units for all instructions in the user program 111 are individually selected.
  • all the same ASIC non-corresponding instructions are set to be processed by one of the MPU 142 and the FPGA 143.
  • the arithmetic unit of each ASIC non-corresponding instruction is individually specified. For example, even for the same instruction A, it is possible to specify that the instruction A called first is executed by the MPU 142 and the instruction A called next is executed by the FPGA 143.
  • the user changes the value of the execution part of the selected command and selects “Save” at the bottom of the screen to save the change. Therefore, the CPU 550 updates the arithmetic device information with the value of the selected execution unit for each instruction in the user program 111.
  • the user selects “Upload Program” on the submenu screen shown in FIG. 5 and changes the arithmetic device information in the same manner as in the automatic selection mode.
  • the program 111 is uploaded to the CPU unit 100.
  • the manual selection mode 2 has the following advantages. Since each instruction of the user program 111 is executed only when it is turned on, not all instructions included in the user program 111 are executed within one cycle. There is such a situation, and a user who knows the situation in the field can select which of the MPU 142 and the FPGA 143 to process each command, and a more suitable selection can be made.
  • information indicating the MPU 142 or the FPGA 143 is set in the arithmetic device information included in the ASIC non-compliant instruction.
  • the arithmetic device indicated by the arithmetic device information processes the instruction.
  • the arithmetic device information can be changed using the engineering tool 500. With such a configuration, the user does not need to be aware of the arithmetic device that executes each process at the time of creating the program, and can select the arithmetic device after creating the program. Furthermore, the arithmetic unit can be changed without requiring significant program correction.
  • the automatic selection mode analysis is performed based on the number of calls in the user program 111 for the same ASIC non-compliant instruction, the processing time for each instruction, and the number of gates used to execute each instruction.
  • the operation of the PLC 1 can be speeded up.
  • a suitable arithmetic device can be selected without the user himself / herself being set, the operation is easy even for a user who does not have hardware knowledge.
  • the processing for selecting the arithmetic device is executed again in the automatic selection mode, and the user program 111 with the updated arithmetic device information may be uploaded to the CPU unit 100, so that the operation is easy.
  • the specifications of the FPGA 143 are changed without changing the user program 111
  • the created user program 111 is executed by the CPU unit 100 having a different specification, the above (1) to (4)
  • These parameters may be stored in the storage unit 510 of the engineering tool 500 and the processing for selecting the arithmetic device may be executed again in the automatic selection mode. In this way, a suitable arithmetic device can be selected.
  • the individual user programs 111 are analyzed based on the specifications of the FPGA 143, so that it is possible to suitably select an arithmetic device according to the execution environment.
  • manual selection modes 1 and 2 it is possible for the user who knows the situation at the site to select a computing device that processes each command, thereby making a selection more suitable than the automatic selection mode. Also in the manual selection modes 1 and 2, since the arithmetic device can be changed after the user program 111 is created, it is not necessary to be aware of the arithmetic device when the user program 111 is created. Similarly, when the user program 111 is changed, after the user program 111 is corrected, it is only necessary to select the arithmetic device again. Therefore, it is not necessary to be aware of the arithmetic device even when the user program 111 is changed.
  • the computing device information can be easily changed using the engineering tool 500, when the created user program 111 is executed by the CPU unit 100 having a different specification, the optimum computing device is selected. Until it is possible, the selection of the computing device can be repeated several times.
  • manual selection mode 1 can be used to evaluate the performance of PLC1. For example, it is possible to measure the processing time when processing is performed by the MPU 142 and the processing time when processing is performed by the FPGA 143 for one instruction, and obtain the difference between the actual processing times. For each instruction, statistical data of the actual processing time of the arithmetic unit is created in advance. Based on this statistical data, in the manual selection mode 1 or the manual selection mode 2, an arithmetic device can be selected for each instruction. Also, in the manual selection mode, only a certain instruction at a specific location can be executed by an arithmetic device different from other instructions in the user program 111 of the MPU 142 or FPGA 143. In this way, it can also be used for finding bugs in the user program 111.
  • a ladder diagram may also be displayed as shown in FIG.
  • the user can confirm where the instruction is called in the user program 111, and the user can select an arithmetic device in consideration of this point.
  • the time that can be reduced by using the FPGA 143 was used as an example of the processing time of each instruction by the programmable logic device. Or you may use the actual measured value of the processing time of each command by a programmable logic device. Alternatively, a theoretically predicted value may be used as the processing time of each instruction by the programmable logic device.
  • the selection method of the arithmetic unit is assigned to the FPGA 143 in order from the instruction having the longest processing time per gate as described above, but is not limited to this method.
  • the instructions may be assigned to the FPGA 143 in descending order of the value obtained by multiplying the number of calls of each instruction in the user program 111 by the processing time of each instruction by the programmable logic device.
  • the instructions are assigned to the FPGA 143 in descending order of the value obtained by multiplying the number of calls of each instruction in the user program 111, the processing time of each instruction by the programmable logic device, and the number of gates used in each instruction. Also good.
  • the FPGA 143 may be assigned simply in order from the instruction with the largest number of calls, or in order from the instruction having the longer processing time of each instruction by the programmable logic device.
  • Recording media for recording the above programs include USB memory, flexible disk, CD, DVD, Blu-ray (registered trademark), MO, SD card, Memory Stick (registered trademark), magnetic disk, optical disk, magneto-optical disk, Computer-readable recording media including semiconductor memory and magnetic tape can be used.
  • 1 PLC 100 CPU unit, 110 storage unit, 111 user program, 120 tool interface, 130 shared bus interface, 140 arithmetic unit, 141 ASIC, 1411 register, 1412 program counter, 142 MPU, 1421 register, 143 FPGA, 1431 register, 190 bus, 200 input unit, 210 storage unit, 211 operation program, 220 shared memory, 230 shared bus interface, 240 MPU, 290 bus, 300 output unit, 310 storage unit, 311 operation program, 320 shared memory, 330 shared bus interface 340 MPU, 390 bus, 400 shared bus, 500 engineering tool, 501 communication cable Le, 510 storage unit, 511 operating system, 512 programming application, 520 operation input section, 530 display unit, 540 tool interface, 550 CPU, 590 Bus, 901 detector, 902 the controlled device

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

A CPU unit (100) has, as computation devices, an FPGA (143) and an MPU (142) for processing a command. The command includes computation device information indicating a computation device selected by a user as a computation device for processing the command. The MPU (142) processes the command if the computation device information indicates the MPU (142). The FPGA (143) processes the command if the computation device information indicates the FPGA (143). When the computation device information is changed, the MPU (142) or the FPGA (143) processes the command on the basis of the changed computation device information.

Description

プログラマブルロジックコントローラのCPUユニット、プログラマブルロジックコントローラ、方法、コンピュータ、及びコンピュータプログラムProgrammable logic controller CPU unit, programmable logic controller, method, computer, and computer program
 本発明は、プログラマブルロジックコントローラのCPUユニット、プログラマブルロジックコントローラ、方法、コンピュータ、及びコンピュータプログラムに関する。 The present invention relates to a CPU unit of a programmable logic controller, a programmable logic controller, a method, a computer, and a computer program.
 ファクトリーオートメーションの分野で使用されているプログラマブルロジックコントローラ(Programmable Logic Controller: PLC)において、CPU(Central Processing Unit)ユニットは、特定用途向け集積回路であるASIC(Application Specific Integrated Circuit)と、汎用的な処理を行うマイクロプロセッサ(Microprocessor: MPU)とを備える。ASICは、設計時に決められた特定の処理を実行し、マイクロプロセッサは、ASICが設計上処理することができない処理を実行する。マイクロプロセッサの演算性能は、ASICほど高くないため、マイクロプロセッサの処理能力が、CPUユニットの動作の高速化の難点となっていた。 In the programmable logic controller (Programmable Logic Controller: PLC) used in the field of factory automation, the CPU (Central Processing Unit) unit is an application specific integrated circuit (ASIC) and general-purpose processing. And a microprocessor (MPU). The ASIC executes a specific process determined at the time of design, and the microprocessor executes a process that cannot be processed by the ASIC. Since the computing performance of the microprocessor is not as high as that of the ASIC, the processing capability of the microprocessor has been a difficulty in speeding up the operation of the CPU unit.
 ASICにすべての命令を処理させれば、CPUユニットの動作の高速化が可能である。しかし、ASICにプログラム内のすべての処理に特化した演算回路を追加することが必要となり、開発コストがかかりすぎてしまうため現実的ではない。 Accelerating the operation of the CPU unit is possible if all instructions are processed by the ASIC. However, it is necessary to add an arithmetic circuit specialized for all the processes in the program to the ASIC, which is not realistic because it takes too much development cost.
 特許文献1には、マイクロプロセッサの処理の一部をプログラマブルロジックデバイスに相当するリコンフィギャラブルプロセッサに実行させる処理の高速化の方法が開示されている。この方法では、プログラマブルロジックデバイスが、処理に時間がかかる関数を含むプログラム要素を実行し、マイクロプロセッサが、関数を含まないプログラム要素を実行する。 Patent Document 1 discloses a method for speeding up a process for causing a reconfigurable processor corresponding to a programmable logic device to execute a part of the process of a microprocessor. In this method, a programmable logic device executes a program element that includes a function that takes time to process, and a microprocessor executes a program element that does not include a function.
特開2009-251782号公報JP 2009-251782 A
 特許文献1の方法では、プログラマブルロジックデバイスは、関数を含むプログラム要素の処理のみを実行する。 In the method of Patent Document 1, the programmable logic device executes only the processing of the program element including the function.
 このため、新規にプログラムを作成する場合、プログラマブルロジックデバイスに実行させたい処理については、その処理を関数に含ませるようユーザが演算装置を意識して初期プログラムを作成しなければならない。 For this reason, when a new program is created, for the process that the programmable logic device wants to execute, the user must create an initial program in consideration of the arithmetic unit so that the process is included in the function.
 また、既存のプログラムのある処理を、マイクロプロセッサではなくプログラマブルロジックデバイスが実行するように変更する場合には、その処理を関数に含ませるようにプログラムを修正する必要があり、手間がかかる。 Also, when changing a certain process of an existing program so that it is executed by a programmable logic device instead of a microprocessor, it is necessary to modify the program so that the process is included in the function, which is troublesome.
 本発明は、上記実情に鑑みてなされたものであり、プログラマブルロジックコントローラにおいて、マイクロプロセッサの処理をプログラマブルロジックデバイスに分散する場合において、プログラム作成後に演算装置の選択を可能とし、さらに、大幅なプログラム修正を要することなく、演算装置の変更を可能とすることを目的とする。 The present invention has been made in view of the above circumstances, and in a programmable logic controller, when processing of a microprocessor is distributed to programmable logic devices, it is possible to select an arithmetic device after creating a program, It is an object of the present invention to make it possible to change an arithmetic device without requiring correction.
 上記目的を達成するため、本発明の第1の観点に係るプログラマブルロジックコントローラのCPUユニットは、演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスとを有する。ユーザプログラム内の命令それぞれは、ユーザが選択した、命令を処理する演算装置を示す演算装置情報を含む。マイクロプロセッサは、演算装置情報がマイクロプロセッサを示す場合、命令を処理する。プログラマブルロジックデバイスは、演算装置情報がプログラマブルロジックデバイスを示す場合、命令を処理する。演算装置情報が変更されると、変更後の演算装置情報に基づいて、マイクロプロセッサまたはプログラマブルロジックデバイスが命令を処理する。 In order to achieve the above object, the CPU unit of the programmable logic controller according to the first aspect of the present invention includes a microprocessor and a programmable logic device as an arithmetic unit. Each instruction in the user program includes arithmetic unit information indicating the arithmetic unit that processes the instruction selected by the user. The microprocessor processes instructions if the computing device information indicates a microprocessor. A programmable logic device processes instructions when the computing device information indicates a programmable logic device. When the arithmetic device information is changed, the microprocessor or the programmable logic device processes an instruction based on the changed arithmetic device information.
 本発明の第1の観点に係るプログラマブルロジックコントローラのCPUユニットにおいては、命令を処理する演算装置としてユーザが選択した演算装置情報がマイクロプロセッサを示す場合、マイクロプロセッサが命令を処理し、命令の演算装置情報がプログラマブルロジックデバイスを示す場合、プログラマブルロジックデバイスが命令を処理する。演算装置情報が変更されると、変更後の演算装置情報に基づいて、マイクロプロセッサまたはプログラマブルロジックデバイスが命令を処理する。このような構成を備えることで、プログラム作成時に各処理を実行する演算装置を意識することなく、プログラム作成後に演算装置の選択が可能となる。さらに、大幅なプログラム修正を要することなく、演算装置の変更が可能となる。 In the CPU unit of the programmable logic controller according to the first aspect of the present invention, when the arithmetic device information selected by the user as the arithmetic device for processing an instruction indicates a microprocessor, the microprocessor processes the instruction and calculates the instruction. If the device information indicates a programmable logic device, the programmable logic device processes the instructions. When the arithmetic device information is changed, the microprocessor or the programmable logic device processes an instruction based on the changed arithmetic device information. With such a configuration, it is possible to select an arithmetic device after creating a program without being conscious of the arithmetic device that executes each process at the time of creating the program. Furthermore, the arithmetic unit can be changed without requiring significant program correction.
本発明の実施の形態に係るPLCの構成を示すブロック図The block diagram which shows the structure of PLC which concerns on embodiment of this invention 実施の形態に係るPLCのCPUユニットのプログラムのスキャンのフローチャートFlowchart of program scan of CPU unit of PLC according to embodiment 図2のプログラム実行の詳細なフローチャートDetailed flowchart of program execution of FIG. 実施の形態に係る演算装置情報を変更するエンジニアリングツールのメニュー画面の一例を示す図The figure which shows an example of the menu screen of the engineering tool which changes the arithmetic unit information which concerns on embodiment 実施の形態に係る演算装置情報を変更するエンジニアリングツールのサブメニュー画面の一例を示す図The figure which shows an example of the submenu screen of the engineering tool which changes the arithmetic unit information which concerns on embodiment 実施の形態に係る演算装置情報を変更するエンジニアリングツールの自動選択モードにおける、演算装置の選択の処理を示すフローチャートThe flowchart which shows the process of selection of an arithmetic unit in the automatic selection mode of the engineering tool which changes the arithmetic unit information which concerns on embodiment 実施の形態に係る演算装置情報を変更するエンジニアリングツールの手動選択モード1における選択画面の一例を示す図The figure which shows an example of the selection screen in the manual selection mode 1 of the engineering tool which changes the arithmetic unit information which concerns on embodiment 実施の形態に係る演算装置情報を変更するエンジニアリングツールの手動選択モード2における選択画面の一例を示す図The figure which shows an example of the selection screen in the manual selection mode 2 of the engineering tool which changes the arithmetic unit information which concerns on embodiment 実施の形態に係る演算装置情報を変更するエンジニアリングツールの手動選択モード1における選択画面の他の例を示す図The figure which shows the other example of the selection screen in the manual selection mode 1 of the engineering tool which changes the arithmetic unit information which concerns on embodiment 実施の形態に係る演算装置情報を変更するエンジニアリングツールの手動選択モード2における選択画面の他の例を示す図The figure which shows the other example of the selection screen in the manual selection mode 2 of the engineering tool which changes the arithmetic unit information which concerns on embodiment
(実施の形態)
 以下、本発明の実施の形態に係るプログラマブルロジックコントローラ(Programmable Logic Controller、以下、PLCと示す)1を説明する。
 図1に示すように、PLC1は、PLC1全体を制御するCPUユニット100と、CPUユニット100の演算の入力データをCPUユニット100に供給する入力ユニット200と、CPUユニット100から出力データが供給される出力ユニット300とを含む。
(Embodiment)
Hereinafter, a programmable logic controller (hereinafter referred to as PLC) 1 according to an embodiment of the present invention will be described.
As shown in FIG. 1, the PLC 1 is supplied with output data from the CPU unit 100 that controls the entire PLC 1, an input unit 200 that supplies input data for operations of the CPU unit 100 to the CPU unit 100, and the CPU unit 100. Output unit 300.
 入力ユニット200には、センサ、スイッチ等を含む検出器901が接続されている。入力ユニット200からCPUユニット100には、検出器901のセンサ、スイッチ等から出力されたオン/オフ信号が供給される。 The detector 901 including a sensor, a switch, etc. is connected to the input unit 200. An on / off signal output from a sensor, switch, or the like of the detector 901 is supplied from the input unit 200 to the CPU unit 100.
 例えば、入力ユニット200は、検出器901のスイッチがオンしたことの通知としてオン信号を、スイッチがオフしたことの通知としてオフ信号を、CPUユニット100に供給する。オン信号を“1”、オフ信号を“0”と表した場合、入力ユニット200は、スイッチがオンすると、“1”をCPUユニット100に供給する。入力ユニット200は、スイッチがオフすると、“0”をCPUユニット100に供給する。 For example, the input unit 200 supplies the CPU unit 100 with an ON signal as a notification that the switch of the detector 901 has been turned ON and an OFF signal as a notification that the switch has been turned OFF. When the on signal is represented by “1” and the off signal is represented by “0”, the input unit 200 supplies “1” to the CPU unit 100 when the switch is turned on. The input unit 200 supplies “0” to the CPU unit 100 when the switch is turned off.
 出力ユニット300には、アクチュエータ、表示灯等を含む被制御機器902が接続されている。CPUユニット100から出力ユニット300には、被制御機器902のアクチュエータ、表示灯等を制御するオン/オフ信号が供給される。 The output unit 300 is connected to a controlled device 902 including an actuator, an indicator light, and the like. The CPU unit 100 supplies the output unit 300 with an on / off signal for controlling the actuator, indicator lamp, and the like of the controlled device 902.
 例えば、CPUユニット100は、被制御機器902のアクチュエータを駆動させる指示としてオン信号を、アクチュエータを停止させる指示としてオフ信号を、出力ユニット300に供給する。オン信号を“1”、オフ信号を“0”として表した場合、CPUユニット100は、アクチュエータを駆動させるため、“1”を出力ユニットに供給する。CPUユニット100は、アクチュエータを停止させるため、“0”を出力ユニットに供給する。 For example, the CPU unit 100 supplies an ON signal to the output unit 300 as an instruction to drive the actuator of the controlled device 902 and an OFF signal as an instruction to stop the actuator. When the on signal is represented as “1” and the off signal is represented as “0”, the CPU unit 100 supplies “1” to the output unit in order to drive the actuator. The CPU unit 100 supplies “0” to the output unit to stop the actuator.
 CPUユニット100と入力ユニット200と出力ユニット300とは、共有バス400を介して接続され、共有バス400を介して通信を行う。また、図示していないが、CPUユニット100と入力ユニット200と出力ユニット300とは、ベースユニットを介して電源ユニットに接続されており、電源ユニットから供給される電源によって動作する。 The CPU unit 100, the input unit 200, and the output unit 300 are connected via a shared bus 400 and communicate via the shared bus 400. Although not shown, the CPU unit 100, the input unit 200, and the output unit 300 are connected to the power supply unit via the base unit, and operate by the power supplied from the power supply unit.
 CPUユニット100は、各種データを記憶する記憶部110と、後述するエンジニアリングツール500との通信のためのツールインタフェース120と、共有バス400を介した通信のための共有バスインタフェース130と、演算装置としてASIC(Application Specific Integrated Circuit)141とマイクロプロセッサ142(以下、MPU142と称する)とFPGA(Field Programmable Gate Array)143とを有する演算部140とを含む。CPUユニット100の各部はバス190を介して接続されている。FPGA143は、プログラマブルロジックデバイスの一例である。 The CPU unit 100 includes a storage unit 110 that stores various data, a tool interface 120 for communication with an engineering tool 500 to be described later, a shared bus interface 130 for communication via the shared bus 400, and an arithmetic device. An arithmetic unit 140 including an ASIC (Application Specific Integrated Circuit) 141, a microprocessor 142 (hereinafter referred to as MPU 142), and an FPGA (Field Programmable Gate Array) 143 is included. Each part of the CPU unit 100 is connected via a bus 190. The FPGA 143 is an example of a programmable logic device.
 記憶部110は、ROM(Read Only Memory)、RAM(Random Access Memory)、メモリカード等を含む。記憶部110は、ユーザプログラム111を格納する。 The storage unit 110 includes a ROM (Read Only Memory), a RAM (Random Access Memory), a memory card, and the like. The storage unit 110 stores a user program 111.
 ユーザプログラム111は、被制御機器902を制御するためのプログラムである。ユーザが後述のエンジニアリングツール500を用いてユーザプログラム111を作成する。作成されたユーザプログラム111は、ニーモニック方式のアセンブリ言語に変換された後、PLC1のCPUユニット100にアップロードされ、記憶部110に格納される。ユーザプログラム111において、オン/オフ信号の入力により、各命令はオンまたはオフの状態になる。実行されるのはオンの状態になった命令のみである。 The user program 111 is a program for controlling the controlled device 902. A user creates a user program 111 using an engineering tool 500 described later. The created user program 111 is converted into a mnemonic assembly language, then uploaded to the CPU unit 100 of the PLC 1 and stored in the storage unit 110. In the user program 111, each command is turned on or off by the input of an on / off signal. Only instructions that are turned on are executed.
 ユーザプログラム111内の各命令は、当該命令が演算部140のいずれの演算装置により実行されるかを示す情報として演算装置情報を含む。例えば、ASIC141を“1”、MPU142を“2”、FPGA143を“3”で表すものとし、これらの値を示すビット列が、各命令に追加されている。本実施の形態では、ASICが処理するよう決められた特定の命令については、演算装置情報を変更することができない。 Each instruction in the user program 111 includes arithmetic device information as information indicating which arithmetic device of the arithmetic unit 140 executes the instruction. For example, ASIC 141 is represented by “1”, MPU 142 is represented by “2”, and FPGA 143 is represented by “3”, and a bit string indicating these values is added to each instruction. In the present embodiment, the arithmetic unit information cannot be changed for a specific instruction decided to be processed by the ASIC.
 ツールインタフェース120は、CPUユニット100がエンジニアリングツール500と通信するためのインタフェースである。ツールインタフェース120は、演算部140の制御に従って動作する。 The tool interface 120 is an interface for the CPU unit 100 to communicate with the engineering tool 500. The tool interface 120 operates according to the control of the calculation unit 140.
 共有バスインタフェース130は、CPUユニット100が共有バス400を介して入力ユニット200と出力ユニット300と通信するための通信インタフェースである。共有バスインタフェース130は、演算部140の制御に従って動作する。 The shared bus interface 130 is a communication interface for the CPU unit 100 to communicate with the input unit 200 and the output unit 300 via the shared bus 400. The shared bus interface 130 operates according to the control of the arithmetic unit 140.
 演算部140は、入力ユニット200から供給される入力データを使用して、ユーザプログラム111の各命令を実行する。より具体的には、ユーザプログラム111内の各命令の演算装置情報で指定された演算装置が、その命令を実行する。入力データは、検出器901のセンサ、スイッチ等が出力したオン/オフ信号を示す値である。演算部140は、オン信号により、オンの状態になった命令のみを実行し、演算の結果得られた出力に基づいてオン/オフ信号を出力ユニット300に供給する。出力ユニット300は供給されたオン/オフ信号に従って被制御機器902を制御する。 The calculation unit 140 executes each command of the user program 111 using the input data supplied from the input unit 200. More specifically, the arithmetic device specified by the arithmetic device information of each instruction in the user program 111 executes the instruction. The input data is a value indicating an on / off signal output from a sensor, a switch, or the like of the detector 901. The calculation unit 140 executes only the instruction that is turned on by the ON signal, and supplies the ON / OFF signal to the output unit 300 based on the output obtained as a result of the calculation. The output unit 300 controls the controlled device 902 according to the supplied on / off signal.
 ASIC141は、命令の実行時に一時的にデータを格納するレジスタ1411と、次に実行すべき命令のアドレスを格納するプログラムカウンタ1412とを有する。ASIC141は、ユーザプログラム111の実行において、特定の命令のみを処理する。ASIC141は設計段階に決められた特定の命令しか実行できないからである。この特定の命令をASIC対応命令という。また、ユーザプログラム111のASIC対応命令以外の命令をASIC非対応命令という。 The ASIC 141 includes a register 1411 that temporarily stores data when an instruction is executed, and a program counter 1412 that stores an address of an instruction to be executed next. The ASIC 141 processes only specific commands in the execution of the user program 111. This is because the ASIC 141 can execute only specific instructions determined in the design stage. This specific instruction is called an ASIC compatible instruction. An instruction other than the ASIC compatible instruction of the user program 111 is referred to as an ASIC non-compliant instruction.
 MPU142は、命令の実行時に一時的にデータを格納するレジスタ1421を有する。MPU142は、ASIC非対応命令のうち、MPU142が処理するように選択された命令を処理する。 The MPU 142 has a register 1421 for temporarily storing data when an instruction is executed. The MPU 142 processes an instruction selected to be processed by the MPU 142 among non-ASIC instructions.
 FPGA143は、命令の実行時に一時的にデータを格納するレジスタ1431を有する。FPGA143は、ASIC非対応命令のうち、FPGA143が処理するよう選択された命令を処理する。FPGA143については、製造後に、ユーザがFPGA143の論理回路の構成を変更することが可能である。例えば、ユーザプログラム111の変更により、ユーザプログラム111に新たな命令が追加され、その命令がASIC対応命令でない場合には、ASIC141は、追加された新たな命令を実行することができない。一方、FPGA143は、論理回路の構成の変更により、新たに追加された命令を実行することができる。MPU142も、FPGA143と同様に、ASIC非対応命令を実行することができるが、処理速度については、FPGA143の方が高速である。
 MPU142が実行する命令とFPGA143が実行する命令の選択方法については後述する。
The FPGA 143 includes a register 1431 that temporarily stores data when an instruction is executed. The FPGA 143 processes an instruction selected by the FPGA 143 to be processed among the ASIC non-compliant instructions. With respect to the FPGA 143, the user can change the configuration of the logic circuit of the FPGA 143 after manufacturing. For example, if a new command is added to the user program 111 due to a change in the user program 111 and the command is not an ASIC-compatible command, the ASIC 141 cannot execute the added new command. On the other hand, the FPGA 143 can execute a newly added instruction by changing the configuration of the logic circuit. The MPU 142 can execute an ASIC non-corresponding instruction similarly to the FPGA 143, but the FPGA 143 is faster in processing speed.
A method for selecting an instruction executed by the MPU 142 and an instruction executed by the FPGA 143 will be described later.
 入力ユニット200は、各種データを記憶する記憶部210と、CPUユニット100とのデータ交換のための共有メモリ220と、共有バス400を介した通信のための共有バスインタフェース230と、入力ユニット200全体を制御するMPU240とを含む。入力ユニット200の各部はバス290を介して接続されている。 The input unit 200 includes a storage unit 210 for storing various data, a shared memory 220 for exchanging data with the CPU unit 100, a shared bus interface 230 for communication via the shared bus 400, and the entire input unit 200. MPU 240 for controlling Each part of the input unit 200 is connected via a bus 290.
 記憶部210は、ROM、RAM、メモリカード等を含む。記憶部210は、入力ユニット200の動作のための動作プログラム211を格納する。 The storage unit 210 includes a ROM, a RAM, a memory card, and the like. The storage unit 210 stores an operation program 211 for the operation of the input unit 200.
 共有メモリ220は、CPUユニット100、入力ユニット200のいずれもが読み書き可能なメモリである。共有メモリ220には、検出器901のセンサ、スイッチ等が出力したオン/オフ信号を示す値が格納される。 The shared memory 220 is a memory that can be read and written by both the CPU unit 100 and the input unit 200. The shared memory 220 stores a value indicating an on / off signal output from a sensor, a switch, or the like of the detector 901.
 共有バスインタフェース230は、入力ユニット200が共有バス400を介してCPUユニット100と通信するための通信インタフェースである。共有バスインタフェース130は、MPU240の制御に従って動作する。 The shared bus interface 230 is a communication interface for the input unit 200 to communicate with the CPU unit 100 via the shared bus 400. The shared bus interface 130 operates according to the control of the MPU 240.
 MPU240は、動作プログラム211を実行して、検出器901のセンサ、スイッチ等が何らかの対象物を検出している状態をオン、何らかの対象物を検出していない状態をオフとして、検出したオンまたはオフを示す値を共有メモリ220に格納する。この値がCPUユニット100での演算における入力のオン/オフ信号となる。 The MPU 240 executes the operation program 211 to turn on the state where the sensor, switch, etc. of the detector 901 detect some object, and turn off the state where no object is detected. Is stored in the shared memory 220. This value is an input on / off signal in the calculation in the CPU unit 100.
 出力ユニット300は、各種データを記憶する記憶部310と、CPUユニット100とのデータ交換のための共有メモリ320と、共有バス400を介した通信のための共有バスインタフェース330と、出力ユニット300全体を制御するMPU340とを含む。出力ユニット300の各部はバス390を介して接続されている。 The output unit 300 includes a storage unit 310 for storing various data, a shared memory 320 for exchanging data with the CPU unit 100, a shared bus interface 330 for communication via the shared bus 400, and the entire output unit 300. And MPU 340 for controlling. Each part of the output unit 300 is connected via a bus 390.
 記憶部310は、ROM、RAM、メモリカード等を含む。記憶部310は、出力ユニット300の動作のための動作プログラム311を格納する。 The storage unit 310 includes a ROM, a RAM, a memory card, and the like. The storage unit 310 stores an operation program 311 for the operation of the output unit 300.
 共有メモリ320は、CPUユニット100、出力ユニット300のいずれもが読み書き可能なメモリである。共有メモリ320には、CPUユニット100の演算の出力であるオン/オフ信号を示す値が格納される。この値は、被制御機器902のアクチュエータ、表示灯等を制御するための制御データであり、CPUユニット100により共有メモリ320に書き込まれる。 The shared memory 320 is a memory in which both the CPU unit 100 and the output unit 300 can read and write. The shared memory 320 stores a value indicating an on / off signal that is an output of the calculation of the CPU unit 100. This value is control data for controlling the actuator, indicator lamp, and the like of the controlled device 902 and is written into the shared memory 320 by the CPU unit 100.
 共有バスインタフェース330は、出力ユニット300が共有バス400を介してCPUユニット100と通信するための通信インタフェースである。共有バスインタフェース330は、MPU340の制御に従って動作する。 The shared bus interface 330 is a communication interface for the output unit 300 to communicate with the CPU unit 100 via the shared bus 400. The shared bus interface 330 operates according to the control of the MPU 340.
 MPU340は、動作プログラム311を実行して、CPUユニット100から供給されたオン/オフ信号に基づいて被制御機器902を制御する。例えば、オン信号が供給された場合、MPU340は、被制御機器902のアクチュエータをオンする。 The MPU 340 executes the operation program 311 and controls the controlled device 902 based on the on / off signal supplied from the CPU unit 100. For example, when the ON signal is supplied, the MPU 340 turns on the actuator of the controlled device 902.
 前述のように、ユーザは、エンジニアリングツール500を使用して、CPUユニット100が実行するユーザプログラム111を作成する。作成されたユーザプログラム111は、通信ケーブル501によりエンジニアリングツール500とCPUユニット100とを接続した状態で、CPUユニット100にアップロードされる。 As described above, the user uses the engineering tool 500 to create the user program 111 that is executed by the CPU unit 100. The created user program 111 is uploaded to the CPU unit 100 in a state where the engineering tool 500 and the CPU unit 100 are connected by the communication cable 501.
 エンジニアリングツール500は、パーソナルコンピュータにプログラム作成用のアプリケーションをインストールした装置である。エンジニアリングツール500は、各種データを記憶する記憶部510と、ユーザの操作を受け付ける操作入力部520と、画像を表示装置に表示する表示部530と、CPUユニット100との通信のためのツールインタフェース540と、エンジニアリングツール500全体を制御するCPU550とを含む。エンジニアリングツール500の各部はバス590により接続されている。 The engineering tool 500 is a device in which an application for creating a program is installed in a personal computer. The engineering tool 500 includes a storage unit 510 that stores various data, an operation input unit 520 that receives user operations, a display unit 530 that displays an image on a display device, and a tool interface 540 for communication with the CPU unit 100. And a CPU 550 that controls the entire engineering tool 500. Each part of the engineering tool 500 is connected by a bus 590.
 記憶部510は、オペレーティングシステム511、プログラム作成アプリケーション512を含む。オペレーティングシステム511は、エンジニアリングツール500全体を制御するためのプログラムである。プログラム作成アプリケーション512は、ユーザプログラム111を作成し、作成したユーザプログラム111の各命令の演算装置を選択するためのプログラムである。 The storage unit 510 includes an operating system 511 and a program creation application 512. The operating system 511 is a program for controlling the engineering tool 500 as a whole. The program creation application 512 is a program for creating a user program 111 and selecting an arithmetic device for each command of the created user program 111.
 操作入力部520は、キーボード、マウス等の入力装置を含み、ユーザからの操作入力を受け付け、受け付けた操作に基づく信号をCPU550に出力する。表示部530は、画像表示装置を含み、CPU550の制御に従って、画像を画像表示装置の画面に出力する。操作入力部520と表示部530は、ユーザの指示を受け付ける受付部として機能する。 The operation input unit 520 includes an input device such as a keyboard and a mouse, receives an operation input from the user, and outputs a signal based on the received operation to the CPU 550. Display unit 530 includes an image display device, and outputs an image to the screen of the image display device under the control of CPU 550. The operation input unit 520 and the display unit 530 function as a reception unit that receives a user instruction.
 ツールインタフェース540は、CPU550の制御に従って、通信ケーブル501で接続されたCPUユニット100との間でデータの送受信を行う。 The tool interface 540 transmits / receives data to / from the CPU unit 100 connected by the communication cable 501 according to the control of the CPU 550.
 CPU550は、オペレーティングシステム511を実行して、エンジニアリングツール500全体を制御する。また、CPU550は、プログラム作成アプリケーション512を実行して、ユーザプログラム111を作成する機能、ユーザプログラム111内の各命令について演算装置の選択を変更する機能を実現する。 The CPU 550 executes the operating system 511 to control the engineering tool 500 as a whole. Further, the CPU 550 implements a function of executing the program creation application 512 to create the user program 111 and a function of changing the selection of the arithmetic device for each instruction in the user program 111.
 上述のCPUユニット100は、ユーザプログラム111を次のように実行する。CPUユニット100は、ユーザプログラム111を先頭の命令から順次処理し、プログラム終了を示すEND命令を読み込むと、再び先頭の命令の処理へ戻る。この方式をスキャン方式という。 The CPU unit 100 described above executes the user program 111 as follows. When the CPU unit 100 sequentially processes the user program 111 from the top instruction and reads an END instruction indicating the end of the program, the CPU unit 100 returns to the processing of the top instruction again. This method is called a scan method.
 CPUユニット100は、ユーザプログラム111の各命令の実行に加え、各命令の実行に必要な入力の取得と、命令の実行結果の出力を行う。具体的には、図2に示すように、CPUユニット100の演算部140は、リフレッシュ処理(ステップS11)、プログラム実行(ステップS12)、エンド処理(ステップS13)の一連の処理を1サイクルとして実行し、このサイクルを繰り返す。 The CPU unit 100 acquires the input necessary for executing each instruction and outputs the execution result of the instruction in addition to executing each instruction of the user program 111. Specifically, as shown in FIG. 2, the arithmetic unit 140 of the CPU unit 100 executes a series of processes of refresh processing (step S11), program execution (step S12), and end processing (step S13) as one cycle. And repeat this cycle.
 ステップS11のリフレッシュ処理では、まず、演算部140は、記憶部110に格納されている前回のサイクルでユーザプログラム111を実行して得られた出力データを出力ユニット300の共有メモリ320に書き込む。その後、当該出力データを記憶部110から削除する。さらに、演算部140は、共有バス400を介して、入力ユニット200の共有メモリ220から入力データを読み出し、読み出した入力値を記憶部110に格納する。 In the refresh process of step S11, first, the calculation unit 140 writes the output data obtained by executing the user program 111 in the previous cycle stored in the storage unit 110 in the shared memory 320 of the output unit 300. Thereafter, the output data is deleted from the storage unit 110. Further, the arithmetic unit 140 reads input data from the shared memory 220 of the input unit 200 via the shared bus 400 and stores the read input value in the storage unit 110.
 ステップS12のプログラム実行では、演算部140は、ユーザプログラム111の命令を最初から順次読み出し、読み出した命令を実行する。本実施の形態では、ASIC141がASIC対応命令を処理し、MPU142またはFPGA143がASIC非対応命令を処理する。演算部140は、ユーザプログラム111のプログラム終了を示すEND命令を読み出すと、ユーザプログラム111の実行を終了する。MPU142またはFPGA143によるASIC非対応命令の処理は、本発明のマイクロプロセッサまたはプログラマブルロジックデバイスのいずれかが命令を処理するステップの一例である。 In the program execution in step S12, the arithmetic unit 140 sequentially reads the instructions of the user program 111 from the beginning and executes the read instructions. In the present embodiment, the ASIC 141 processes an ASIC compatible instruction, and the MPU 142 or the FPGA 143 processes an ASIC non-compatible instruction. When the arithmetic unit 140 reads an END instruction indicating the end of the program of the user program 111, the arithmetic unit 140 ends the execution of the user program 111. Processing of ASIC non-compliant instructions by MPU 142 or FPGA 143 is an example of steps in which either the microprocessor or programmable logic device of the present invention processes instructions.
 ステップS13のエンド処理では、CPUユニット100は、ネットワークを介して他の機器と通信する不図示のネットワークユニットとのデータ転送処理、その他の共通処理を実行する。 In the end processing of step S13, the CPU unit 100 executes data transfer processing with a network unit (not shown) that communicates with other devices via the network, and other common processing.
 本実施の形態では、ユーザプログラム111の命令をASIC141、MPU142、FPGA143が分担して処理する。以下、図2のステップS12のプログラム実行のステップにおける、ASIC141、MPU142、FPGA143の動作をより詳しく説明する。 In this embodiment, the ASIC 141, the MPU 142, and the FPGA 143 share and process the instructions of the user program 111. Hereinafter, the operations of the ASIC 141, the MPU 142, and the FPGA 143 in the program execution step of Step S12 in FIG. 2 will be described in more detail.
 ASIC141のプログラムカウンタ1412には、ユーザプログラム111の最初の命令のアドレスが格納されているものとする。 Suppose that the address of the first instruction of the user program 111 is stored in the program counter 1412 of the ASIC 141.
 図3に示すように、ASIC141は、プログラムカウンタ1412のアドレスが示す命令を、ユーザプログラム111からレジスタ1411に読み出す(ステップS121)。ASIC141は、併せてプログラムカウンタ1412のアドレスをカウントアップする。従って、プログラムカウンタ1412には、次の命令を指すアドレスがセットされる。 As shown in FIG. 3, the ASIC 141 reads the instruction indicated by the address of the program counter 1412 from the user program 111 to the register 1411 (step S121). The ASIC 141 also counts up the address of the program counter 1412. Therefore, an address indicating the next instruction is set in the program counter 1412.
 ASIC141は、読み出した命令がEND命令であるか否かを判別する(ステップS122)。END命令でないと判別すると(ステップS122;No)、ASIC141は、読み出した命令がASIC対応命令であるか否かを判別する(ステップS123)。具体的には、その命令に含まれる演算装置情報を示すビット列が、ASIC141を示すビット列であるか否かを判別する。 The ASIC 141 determines whether or not the read instruction is an END instruction (step S122). If it is determined that the instruction is not an END instruction (step S122; No), the ASIC 141 determines whether or not the read instruction is an ASIC-compatible instruction (step S123). Specifically, it is determined whether or not the bit string indicating the arithmetic device information included in the instruction is a bit string indicating the ASIC 141.
 ASIC141は、読み出した命令がASIC対応命令であると判別すると(ステップS123;Yes)、その命令を実行する(ステップS124)。続いて、ASIC141は、プログラムカウンタ1412にセットされているアドレスの命令をレジスタ1411に読み出す(ステップS121)。 If the ASIC 141 determines that the read instruction is an ASIC-compatible instruction (step S123; Yes), the ASIC 141 executes the instruction (step S124). Subsequently, the ASIC 141 reads the instruction at the address set in the program counter 1412 to the register 1411 (step S121).
 ステップS123で、ASIC141が、読み出した命令がASIC対応命令でない(ステップS123;No)と判別すると、ASIC141は、MPU142に割り込み命令を出力した後、プログラムカウンタ1412の値を保持し、停止する。 In step S123, when the ASIC 141 determines that the read instruction is not an ASIC compatible instruction (step S123; No), the ASIC 141 outputs the interrupt instruction to the MPU 142, and then holds the value of the program counter 1412 and stops.
 MPU142は、ASIC141から割り込み命令を受けると、ASIC141のレジスタ1411に格納された命令を自身のレジスタ1421に読み出す。MPU142は、読み出した命令の演算装置情報に基づいて、その命令が、MPU142が処理するよう選択された命令であるか否かを判別する(ステップS125)。MPU142は、その命令が、MPU142が処理するよう選択された命令であると判別すると(ステップS125;Yes)、その命令を実行する(ステップS126)。その後、MPU142は、ASIC141を再起動するため、ASIC141のレジスタ1411に再起動を指示する値を書き込む。これにより、ASIC141は、再起動し、プログラムカウンタ1412に保持したアドレスが示す命令をレジスタ1411に読み出し(ステップS121)、命令の実行を再開する。 When the MPU 142 receives an interrupt instruction from the ASIC 141, the MPU 142 reads the instruction stored in the register 1411 of the ASIC 141 into its own register 1421. Based on the arithmetic unit information of the read instruction, the MPU 142 determines whether or not the instruction is an instruction selected to be processed by the MPU 142 (step S125). When the MPU 142 determines that the instruction is an instruction selected to be processed by the MPU 142 (step S125; Yes), the MPU 142 executes the instruction (step S126). After that, the MPU 142 writes a value instructing the restart into the register 1411 of the ASIC 141 in order to restart the ASIC 141. As a result, the ASIC 141 restarts, reads the instruction indicated by the address held in the program counter 1412 to the register 1411 (step S121), and resumes execution of the instruction.
 一方、MPU142は、ステップS125で読み出した命令が、MPU142が処理するよう選択された命令ではないと判別すると(ステップS125;No)、FPGA143のレジスタ1431にその命令を書き込み、FPGA143にその命令を実行させる(ステップS127)。FPGA143は、自身のレジスタ1431に格納された命令を実行し、演算が終了したことを示すリターン値をレジスタ1431に書き込む。MPU142は、リターン値がレジスタ1431に書き込まれると、ASIC141を再起動するため、ASIC141のレジスタ1411に再起動を指示する値を書き込む。これにより、ASIC141は、プログラムカウンタ1412に保持したアドレスが示す命令をレジスタ1411に読み出し(ステップS121)、命令の実行を再開する。 On the other hand, when the MPU 142 determines that the instruction read in step S125 is not the instruction selected to be processed by the MPU 142 (step S125; No), the MPU 142 writes the instruction in the register 1431 of the FPGA 143 and executes the instruction in the FPGA 143. (Step S127). The FPGA 143 executes the instruction stored in the register 1431 of the FPGA 143 and writes a return value indicating that the calculation is completed to the register 1431. When the return value is written in the register 1431, the MPU 142 writes a value instructing the restart into the register 1411 of the ASIC 141 in order to restart the ASIC 141. Thereby, the ASIC 141 reads the instruction indicated by the address held in the program counter 1412 to the register 1411 (step S121), and resumes the execution of the instruction.
 また、ステップS122で、ASIC141は、読み出した命令がEND命令であると判別すると(ステップS122;Yes)、ユーザプログラム111の実行を終了する。
 その後、CPUユニット100は、図2のステップS13のエンド処理を実行する。
In step S122, when the ASIC 141 determines that the read instruction is an END instruction (step S122; Yes), the execution of the user program 111 is terminated.
Thereafter, the CPU unit 100 executes the end process of step S13 in FIG.
 前述のように、ASIC非対応命令は,演算装置情報に設定された値に応じて、MPU142またはFPGA143により処理される。ユーザプログラム作成時においては、すべてのASIC非対応命令の演算装置情報には、デフォルト値としてMPU142を示す値が設定されている。 As described above, the ASIC non-compliant instruction is processed by the MPU 142 or the FPGA 143 according to the value set in the arithmetic unit information. At the time of creating the user program, a value indicating the MPU 142 is set as a default value in the arithmetic unit information of all ASIC non-corresponding instructions.
 以下、エンジニアリングツール500を使用して、ASIC非対応命令の演算装置情報を変更する方法を説明する。 Hereinafter, a method for changing the arithmetic device information of the ASIC non-compliant instruction using the engineering tool 500 will be described.
 まず、ユーザは、キーボード、マウス等の操作入力部520を操作して、エンジニアリングツール500のプログラム作成アプリケーション512を起動する。ユーザは、表示部530に表示された図4に示すようなメニュー画面から、「ユーザプログラムの作成」メニューを選択し、不図示のプログラム作成画面を表示部530に表示させる。ユーザは、ユーザプログラム111を不図示のプログラム作成画面上で作成し、保存する。作成されたユーザプログラム111はエンジニアリングツール500の記憶部510に格納される。 First, the user starts the program creation application 512 of the engineering tool 500 by operating the operation input unit 520 such as a keyboard and a mouse. The user selects a “create user program” menu from the menu screen shown in FIG. 4 displayed on the display unit 530 and causes the display unit 530 to display a program creation screen (not shown). The user creates and saves the user program 111 on a program creation screen (not shown). The created user program 111 is stored in the storage unit 510 of the engineering tool 500.
 続いて、ユーザは、操作入力部520を操作して、再び図4に示すメニュー画面を表示部530に表示させる。ユーザは、「演算装置の選択」メニューを選択し、図5に示すようなサブメニュー画面を表示部530に表示させる。 Subsequently, the user operates the operation input unit 520 to display the menu screen shown in FIG. 4 on the display unit 530 again. The user selects the “select arithmetic device” menu and causes the display unit 530 to display a submenu screen as shown in FIG.
 図5に示すように、演算装置の選択のサブメニューには、「自動選択モード」、「手動選択モード1」、「手動選択モード2」がある。自動選択モードにおいては、エンジニアリングツール500が、ユーザプログラム111を分析し、FPGA143が実行することで、高速化、性能向上が見込める命令をFPGA143が実行する命令として選択し、選択した命令の演算装置情報にFPGA143を示す値を設定する。手動選択モード1、2においては、ユーザが、各命令の演算装置を選択する。 As shown in FIG. 5, there are “automatic selection mode”, “manual selection mode 1”, and “manual selection mode 2” in the selection menu of the computing device. In the automatic selection mode, the engineering tool 500 analyzes the user program 111, and the FPGA 143 executes and selects an instruction that can be accelerated and improved in performance as an instruction to be executed by the FPGA 143. Is set to a value indicating the FPGA 143. In manual selection modes 1 and 2, the user selects an arithmetic device for each command.
(自動選択モード)
 自動選択モードを実行する場合、ユーザは、サブメニュー画面で、対象プログラムとして、任意のユーザプログラム111を選択し、「自動選択モード」を指定する。図示する例では、ユーザプログラム111として「プログラム001」が選択されている。
(Automatic selection mode)
When executing the automatic selection mode, the user selects an arbitrary user program 111 as a target program on the submenu screen and designates “automatic selection mode”. In the illustrated example, “program 001” is selected as the user program 111.
 「自動選択モード」が選択されると、エンジニアリングツール500のCPU550は、プログラム作成アプリケーション512を実行して下記の処理を行う。 When “automatic selection mode” is selected, the CPU 550 of the engineering tool 500 executes the program creation application 512 to perform the following processing.
 ここで、あらかじめ記憶部510には下記の情報が格納されている。
(1)ASIC非対応命令の数:N。この値は、全てのASIC非対応命令の種類の数である。ユーザプログラム111である「プログラム001」内に含まれているか否かを問わない。
(2)FPGA143の総ゲート数:GFPGA。この値は、FPGA143のハードウェアの仕様に基づく値である。
(3)各命令の処理のために使用されるFPGA143のゲート数(使用ゲート数):G(n=1、2、…、N)。
(4)各命令について、FPGA143を使用することで削減することが可能な時間(削減可能時間):T(n=1、2、…、N)。ここでは。MPU142の命令の処理の時間と、FPGA143の当該命令の処理の時間との差分とする。削減可能時間は、本発明のプログラマブルロジックデバイスによる各命令の処理時間の一例である。また、上記(2)、(3)、(4)は、本発明のプログラマブルロジックデバイスの定義情報の一例である。
Here, the storage unit 510 stores the following information in advance.
(1) Number of non-ASIC instructions: N 1 . This value is the number of types of all ASIC non-corresponding instructions. It does not matter whether the user program 111 is included in the “program 001”.
(2) The total number of gates of FPGA 143: G FPGA . This value is a value based on the hardware specifications of the FPGA 143.
(3) Number of gates (number of gates used) of the FPGA 143 used for processing each instruction: G n (n = 1, 2,..., N 1 ).
(4) Time that can be reduced by using the FPGA 143 for each instruction (reducible time): T n (n = 1, 2,..., N 1 ). here. The difference between the processing time of the instruction of the MPU 142 and the processing time of the instruction of the FPGA 143 is set as a difference. The reducible time is an example of the processing time of each instruction by the programmable logic device of the present invention. Moreover, said (2), (3), (4) is an example of the definition information of the programmable logic device of this invention.
 図6に示すように、N種類の命令のそれぞれが、ユーザプログラム111内でコールされている回数(コール数)C(n=1、2、…、N)をカウントする(ステップS21)。 As shown in FIG. 6, the number of calls (number of calls) C n (n = 1, 2,..., N 1 ) of each of the N 1 types of instructions is counted in the user program 111 (step S21). ).
 各命令について、FPGA143の1ゲート当たりの処理時間を求める(ステップS22)。ここでは、次の式(1)を使用する。
 各命令についての1ゲート当たりの処理時間P=削減可能時間T×ステップS21で求めたコール数C÷使用ゲート数G(n=1、2、…、N)・・・・・式(1)
For each instruction, the processing time per gate of the FPGA 143 is obtained (step S22). Here, the following equation (1) is used.
Processing time P n for each instruction P n = reducible time T n × number of calls C n obtained in step S21 ÷ number of gates used G n (n = 1, 2,..., N 1 ),.・ Formula (1)
 命令を、ステップS22で求めた各命令についての1ゲート当たりの処理時間Pでソートする(ステップS23)。ここでは、降順にソートする。 The instructions are sorted by the processing time P n per gate for each instruction obtained in step S22 (step S23). Here, it sorts in descending order.
 1ゲート当たりの処理時間Pが一番大きな命令から、当該命令の使用ゲート数Gを順次加算する。使用ゲート数Gの合計が、FPGA143の総ゲート数GFPGAを超えない間、加算を続ける。 From the instruction having the longest processing time P n per gate, the number of used gates G n of the instruction is sequentially added. The total of use gate number G n is, while not exceeding the total number of gates G FPGA of FPGA143, continue the addition.
 具体的には、まず、カウンタiに“1”をセットし、ステップS23でソートされたi番目の命令の使用ゲート数Gを、現在のGとして合計値sにセットする(ステップS24)。 Specifically, first, the counter i is set to “1”, and the number of used gates G n of the i-th instructions sorted in step S23 is set to the total value s as the current G i (step S24). .
 次に、合計値sが総ゲート数GFPGAより大きいか否かを判別する(ステップS25)。合計値sが総ゲート数GFPGA以下であると判別すると(ステップS25;No)、i番目の命令の演算装置情報にFPGA143を設定する(ステップS26)。カウンタiをインクリメントし、現在の合計値sと、i番目の命令の使用ゲート数Gとを加算したものを、新たな合計値sとする(ステップS27)。再び、ステップS25へ戻る。 Next, it is determined whether or not the total value s is larger than the total gate number G FPGA (step S25). If it is determined that the total value s is equal to or less than the total gate number G FPGA (step S25; No), the FPGA 143 is set in the arithmetic unit information of the i-th instruction (step S26). The counter i is incremented, and the sum of the current total value s and the number of gates G i used for the i-th instruction is set as a new total value s (step S27). The process returns to step S25 again.
 ステップS25で、合計値sがGFPGAより大きいと判別すると(ステップS25;Yes)、処理を終了する。 If it is determined in step S25 that the total value s is greater than G FPGA (step S25; Yes), the process ends.
 上記処理により、CPU550は、FPGA143が実行する命令として選択した命令の演算装置情報にFPGA143を設定する。一方、FPGA143が実行する命令として選択しなかった命令の演算装置情報を更新しない。このように、CPU550は、FPGA143が処理する命令と、FPGA143が処理しない命令とを判別する判別部、FPGA143が処理する命令と判別した命令の演算装置情報を更新する更新部として機能する。FPGA143が処理する命令として選択された命令は、本発明の第1命令の一例である。FPGA143が処理しない命令は、本発明の第2命令の一例である。 Through the above processing, the CPU 550 sets the FPGA 143 to the arithmetic device information of the instruction selected as the instruction to be executed by the FPGA 143. On the other hand, the arithmetic unit information of an instruction not selected as an instruction to be executed by the FPGA 143 is not updated. As described above, the CPU 550 functions as a determination unit that determines an instruction processed by the FPGA 143 and an instruction that the FPGA 143 does not process, and an update unit that updates arithmetic unit information of the instruction determined as an instruction processed by the FPGA 143. The instruction selected as the instruction to be processed by the FPGA 143 is an example of the first instruction of the present invention. The instruction not processed by the FPGA 143 is an example of the second instruction of the present invention.
 自動選択モードでの処理が終わると、ユーザは操作入力部520を操作して、再び図5に示すサブメニュー画面を表示させる。ユーザは、更新後のプログラム001をCPUユニット100にアップロードするため、サブメニュー画面で、「プログラムのアップロード」を選択する。なお、エンジニアリングツール500とCPUユニット100とはあらかじめ通信ケーブル501で接続されているものとする。CPU550は、「プログラムのアップロード」が選択されると、記憶部510に格納されているユーザプログラム111である「プログラム001」を、CPUユニット100の記憶部110に転送する。このように、CPU550は、演算装置情報が更新されたユーザプログラム111を、CPUユニット100に転送する転送部として機能する。 When the processing in the automatic selection mode is completed, the user operates the operation input unit 520 to display the submenu screen shown in FIG. 5 again. In order to upload the updated program 001 to the CPU unit 100, the user selects “Upload Program” on the submenu screen. It is assumed that the engineering tool 500 and the CPU unit 100 are connected with a communication cable 501 in advance. When “Upload Program” is selected, CPU 550 transfers “program 001”, which is user program 111 stored in storage unit 510, to storage unit 110 of CPU unit 100. As described above, the CPU 550 functions as a transfer unit that transfers the user program 111 with the updated arithmetic device information to the CPU unit 100.
 上記の自動選択モードにおいては、同じASIC非対応命令がユーザプログラム111内でコールされた回数を示す同一のASIC非対応命令のコール数、各命令の1回当たりの処理時間、使用するゲート数に基づいて分析を行い、1ゲート当たりの処理時間が大きい命令から順に、FPGA143が処理を実行する命令として選択する。処理の負荷が大きい命令をFPGA143に割り当てることで、PLC1の動作の高速化を図ることができる。 In the automatic selection mode, the number of calls of the same non-ASIC instruction that indicates the number of times the same non-ASIC instruction is called in the user program 111, the processing time for each instruction, and the number of gates used Based on the analysis, the FPGA 143 selects the instructions to be executed in order from the instruction having the largest processing time per gate. By assigning an instruction with a large processing load to the FPGA 143, the operation of the PLC 1 can be speeded up.
 上述の自動選択モードでは、ユーザプログラム111を分析して、FPGA143で実行する命令が選択されたが、以下の手動選択モード1ではユーザ自身が、各命令の演算装置を選択することができる。 In the above-described automatic selection mode, the user program 111 is analyzed and an instruction to be executed by the FPGA 143 is selected. However, in the following manual selection mode 1, the user can select an arithmetic device for each instruction.
(手動選択モード1)
 手動選択モード1を実行する場合、ユーザは、操作入力部520を操作して、図5のサブメニュー画面を表示させ、サブメニュー画面で、対象プログラムとして任意のユーザプログラム111を選択し、「手動選択モード1」を指定する。
(Manual selection mode 1)
When executing the manual selection mode 1, the user operates the operation input unit 520 to display the submenu screen of FIG. 5, selects an arbitrary user program 111 as a target program on the submenu screen, “Selection mode 1” is designated.
 「手動選択モード1」が選択されると、エンジニアリングツール500のCPU550は、図7に示すような選択画面を表示部530に表示する。この画面には、ユーザプログラム111内でコールされているASIC非対応命令の一覧が表示される。ここでは、ユーザプログラム111内でコールされているASIC非対応命令の一覧と、各命令がユーザプログラム111内でコールされている回数を示すコール回数と、各命令を1回実行することによる負荷を表すリソース負荷と、それぞれの命令の現在の実行部とを表示する。実行部の値は、当該命令を実行する演算装置がMPU142とFPGA143のいずれであるかを示す。実行部が「S/W」である場合、MPU142が命令を処理することを表す。実行部が「H/W」である場合、FPGA143が命令を処理することを表す。手動選択モード1においては、同じASIC非対応命令はすべて、MPU142あるいはFPGA143のうち指定されたいずれかの演算装置が処理する。例えば、命令Aの実行部を「S/W」から「H/W」に更新した場合、FPGA143がユーザプログラム111内のすべての命令Aを処理する。 When “manual selection mode 1” is selected, the CPU 550 of the engineering tool 500 displays a selection screen as shown in FIG. On this screen, a list of ASIC non-corresponding instructions called in the user program 111 is displayed. Here, the list of non-ASIC instructions that are called in the user program 111, the number of calls that indicate the number of times each instruction is called in the user program 111, and the load caused by executing each instruction once Displays the resource load to represent and the current execution part of each instruction. The value of the execution unit indicates whether the arithmetic unit that executes the instruction is the MPU 142 or the FPGA 143. When the execution unit is “S / W”, this indicates that the MPU 142 processes an instruction. When the execution unit is “H / W”, it indicates that the FPGA 143 processes an instruction. In the manual selection mode 1, all the same ASIC non-corresponding instructions are processed by any one of the designated arithmetic units of the MPU 142 and the FPGA 143. For example, when the execution unit of the instruction A is updated from “S / W” to “H / W”, the FPGA 143 processes all the instructions A in the user program 111.
 ユーザが、選択した命令の実行部の値を変更し、画面下部の「保存」を選択して、変更内容を保存する。従って、CPU550は、ユーザプログラム111内のそれぞれの命令について、演算装置情報を選択された実行部の値で更新する。例えば、ユーザが、命令Aの実行部を「S/W」から「H/W」に変更して、「保存」を選択する。この場合、ユーザプログラム111内のすべての命令Aの演算装置情報は、FPGA143を示す値に更新される。 The user changes the value of the execution part of the selected command and selects “Save” at the bottom of the screen to save the change. Therefore, the CPU 550 updates the arithmetic device information with the value of the selected execution unit for each instruction in the user program 111. For example, the user changes the execution part of the instruction A from “S / W” to “H / W” and selects “save”. In this case, the arithmetic unit information of all the instructions A in the user program 111 is updated to a value indicating the FPGA 143.
 手動選択モード1での処理が終わると、ユーザは自動選択モードのときと同様に、図5に示すサブメニュー画面上で、「プログラムのアップロード」を選択して、演算装置情報が変更されたユーザプログラム111をCPUユニット100にアップロードする。 When the processing in the manual selection mode 1 is completed, the user selects “Program Upload” on the submenu screen shown in FIG. 5 and changes the arithmetic device information in the same manner as in the automatic selection mode. The program 111 is uploaded to the CPU unit 100.
 また、図7に示す画面では、各命令のコール回数、リソース負荷を併せて表示する。よって、ユーザは、各命令の呼び出し回数、リソース負荷を考慮した上で、当該命令をMPU142とFPGA143のどちらの演算装置で処理するかを選択することができる。 In the screen shown in FIG. 7, the number of calls for each command and the resource load are also displayed. Therefore, the user can select whether the MPU 142 or the FPGA 143 processes the instruction in consideration of the number of times each instruction is called and the resource load.
 ユーザプログラム111の各命令はオンした場合のみ実行されるので、例えば、ユーザプログラム111に含まれる命令Aがすべて1サイクル内で実行されるわけではない。このような実情もあり、現場の状況を知るユーザが各命令をMPU142とFPGA143のどちらの演算装置で処理するかを選択するほうが、より好適な選択を行うことも可能である。 Since each instruction of the user program 111 is executed only when turned on, for example, not all the instructions A included in the user program 111 are executed within one cycle. Under such circumstances, it is also possible for the user who knows the situation in the field to make a more suitable selection by selecting which of the MPU 142 and FPGA 143 is used to process each command.
 上述の手動選択モード1では、同じASIC非対応命令はすべて、MPU142あるいはFPGA143のうち指定されたいずれかの演算装置が処理する。このため、選択内容が変更されない間は、当該命令が何度呼び出されたとしても、その命令を実行するのは、MPU142またはFPGA143のいずれか選択された方である。次に説明する手動選択モード2では、より細かな選択が可能な構成を有する。 In the above-described manual selection mode 1, all the same ASIC non-corresponding instructions are processed by one of the designated arithmetic units of the MPU 142 or FPGA 143. For this reason, while the selected contents are not changed, the MPU 142 or the FPGA 143 is selected to execute the instruction regardless of how many times the instruction is called. The manual selection mode 2 described below has a configuration that allows finer selection.
(手動選択モード2)
 次に手動選択モード2を説明する。ユーザは、操作入力部520を操作して、図5のサブメニュー画面を表示させる。ユーザは、サブメニュー画面で、対象とするユーザプログラムとして「プログラム001」を選択し、選択モードとして「手動選択モード2」を選択する。
(Manual selection mode 2)
Next, the manual selection mode 2 will be described. The user operates the operation input unit 520 to display the submenu screen of FIG. On the submenu screen, the user selects “program 001” as the target user program, and selects “manual selection mode 2” as the selection mode.
 「手動選択モード2」が選択されると、エンジニアリングツール500のCPU550は、表示部530に図8に示すように、ユーザが選択したプログラム001のラダー図と、各命令の実行部とを表示する。実行部の値は、手動選択モード1と同様に、当該命令を実行する演算装置がMPU142とFPGA143のいずれであるかを示す。図示する例では、ユーザプログラム111内のすべての命令の演算装置を個別に選択する。前述の手動選択モード1では、同じASIC非対応命令はすべて、MPU142あるいはFPGA143のうち一方の演算装置が処理するように設定した。これに対し、手動選択モード2では、ユーザプログラム111内で同じASIC非対応命令が複数回コールされていても、それぞれのASIC非対応命令の演算装置を個別に指定する。例えば、同じ命令Aであっても、1番始めにコールされる命令AをMPU142に実行させ、次にコールされる命令AをFPGA143に実行させるように指定することが可能である。 When “manual selection mode 2” is selected, the CPU 550 of the engineering tool 500 displays the ladder diagram of the program 001 selected by the user and the execution unit of each instruction on the display unit 530, as shown in FIG. . As in the manual selection mode 1, the value of the execution unit indicates which of the MPU 142 and the FPGA 143 is the arithmetic device that executes the instruction. In the example shown in the figure, arithmetic units for all instructions in the user program 111 are individually selected. In the above-described manual selection mode 1, all the same ASIC non-corresponding instructions are set to be processed by one of the MPU 142 and the FPGA 143. On the other hand, in the manual selection mode 2, even when the same ASIC non-corresponding instruction is called a plurality of times in the user program 111, the arithmetic unit of each ASIC non-corresponding instruction is individually specified. For example, even for the same instruction A, it is possible to specify that the instruction A called first is executed by the MPU 142 and the instruction A called next is executed by the FPGA 143.
 ユーザが、選択した命令の実行部の値を変更し、画面下部の「保存」を選択して、変更内容を保存する。従って、CPU550は、ユーザプログラム111内のそれぞれの命令について、演算装置情報を選択された実行部の値で更新する。 The user changes the value of the execution part of the selected command and selects “Save” at the bottom of the screen to save the change. Therefore, the CPU 550 updates the arithmetic device information with the value of the selected execution unit for each instruction in the user program 111.
 手動選択モード2での処理が終わると、ユーザは自動選択モードのときと同様に、図5に示すサブメニュー画面上で、「プログラムのアップロード」を選択して、演算装置情報が変更されたユーザプログラム111をCPUユニット100にアップロードする。 When the processing in the manual selection mode 2 is completed, the user selects “Upload Program” on the submenu screen shown in FIG. 5 and changes the arithmetic device information in the same manner as in the automatic selection mode. The program 111 is uploaded to the CPU unit 100.
 手動選択モード2おいても、手動選択モード1と同様に、以下のようなメリットがある。ユーザプログラム111の各命令はオンした場合のみ実行されるので、ユーザプログラム111に含まれるすべての命令が1サイクル内で実行されるわけではない。このような実情もあり、現場の状況を知るユーザが各命令をMPU142とFPGA143のどちらの演算装置で処理するかを選択することができ、より好適な選択を行うことも可能である。 As with the manual selection mode 1, the manual selection mode 2 has the following advantages. Since each instruction of the user program 111 is executed only when it is turned on, not all instructions included in the user program 111 are executed within one cycle. There is such a situation, and a user who knows the situation in the field can select which of the MPU 142 and the FPGA 143 to process each command, and a more suitable selection can be made.
 以上説明したように、本発明の実施の形態に係るPLC1では、ASIC非対応命令に含まれる演算装置情報に、MPU142またはFPGA143を示す情報を設定する。プログラム実行時には、演算装置情報が示す演算装置が命令を処理する。また、エンジニアリングツール500を使用して、演算装置情報を変更することができる。このような構成を備えることで、ユーザは、プログラム作成時に各処理を実行する演算装置を意識する必要がなく、プログラム作成後に演算装置を選択することができる。さらに、大幅なプログラム修正を要することなく、演算装置を変更することができる。 As described above, in the PLC 1 according to the embodiment of the present invention, information indicating the MPU 142 or the FPGA 143 is set in the arithmetic device information included in the ASIC non-compliant instruction. When the program is executed, the arithmetic device indicated by the arithmetic device information processes the instruction. Further, the arithmetic device information can be changed using the engineering tool 500. With such a configuration, the user does not need to be aware of the arithmetic device that executes each process at the time of creating the program, and can select the arithmetic device after creating the program. Furthermore, the arithmetic unit can be changed without requiring significant program correction.
 さらに、上記の実施の形態に係る構成においては、以下のような有利な効果が期待できる。 Furthermore, the following advantageous effects can be expected in the configuration according to the above embodiment.
 自動選択モードでは、同一のASIC非対応命令のユーザプログラム111内でのコール数、各命令の1回当たりの処理時間、各命令の実行に使用されるゲート数に基づいて分析を行い、処理の負荷が大きい命令をFPGA143に割り当てることで、PLC1の動作の高速化を図ることができる。また、ユーザ自身が設定せずとも、好適な演算装置の選択をすることができるため、ハードウェアの知識がないユーザであっても操作が容易である。 In the automatic selection mode, analysis is performed based on the number of calls in the user program 111 for the same ASIC non-compliant instruction, the processing time for each instruction, and the number of gates used to execute each instruction. By assigning a heavy load instruction to the FPGA 143, the operation of the PLC 1 can be speeded up. In addition, since a suitable arithmetic device can be selected without the user himself / herself being set, the operation is easy even for a user who does not have hardware knowledge.
 ユーザプログラム111を修正した場合、自動選択モードで演算装置の選択の処理を再度実行し、演算装置情報を更新したユーザプログラム111をCPUユニット100にアップロードすればよく、操作が容易である。また、ユーザプログラム111を変更しなくとも、FPGA143の仕様を変更した場合、作成済みのユーザプログラム111を別の仕様の異なるCPUユニット100で実行する場合には、上述の(1)~(4)の各種パラメータをエンジニアリングツール500の記憶部510に格納した上で、自動選択モードで演算装置の選択の処理を再度実行すればよい。このようにして、好適な演算装置の選択をすることが可能である。 When the user program 111 is corrected, the processing for selecting the arithmetic device is executed again in the automatic selection mode, and the user program 111 with the updated arithmetic device information may be uploaded to the CPU unit 100, so that the operation is easy. In addition, when the specifications of the FPGA 143 are changed without changing the user program 111, when the created user program 111 is executed by the CPU unit 100 having a different specification, the above (1) to (4) These parameters may be stored in the storage unit 510 of the engineering tool 500 and the processing for selecting the arithmetic device may be executed again in the automatic selection mode. In this way, a suitable arithmetic device can be selected.
 自動選択モードでは、FPGA143の仕様を踏まえて、個々のユーザプログラム111を分析するため、実行環境に応じた演算装置の好適な選択が可能である。 In the automatic selection mode, the individual user programs 111 are analyzed based on the specifications of the FPGA 143, so that it is possible to suitably select an arithmetic device according to the execution environment.
 また、分析処理は、エンジニアリングツール500において行われるため、実行時のPLC1の性能に影響することはない。 Further, since the analysis process is performed in the engineering tool 500, the performance of the PLC 1 at the time of execution is not affected.
 手動選択モード1及び2では、現場の状況を知るユーザが各命令を処理する演算装置を選択することで、自動選択モードより好適な選択を行うことが可能である。手動選択モード1及び2においても、ユーザプログラム111の作成後に演算装置を変更することができるので、ユーザプログラム111の作成時に演算装置を意識する必要がない。同様に、ユーザプログラム111を変更する際も、ユーザプログラム111を修正後は、演算装置の選択を再度行えばよいため、ユーザプログラム111の変更時においても演算装置を意識する必要がない。また、エンジニアリングツール500を使用して、演算装置情報を容易に変更することができるため、作成済みのユーザプログラム111を、別の仕様の異なるCPUユニット100で実行する場合、最適な演算装置を選択できるまで、演算装置の選択を何度か繰り返すこともできる。 In manual selection modes 1 and 2, it is possible for the user who knows the situation at the site to select a computing device that processes each command, thereby making a selection more suitable than the automatic selection mode. Also in the manual selection modes 1 and 2, since the arithmetic device can be changed after the user program 111 is created, it is not necessary to be aware of the arithmetic device when the user program 111 is created. Similarly, when the user program 111 is changed, after the user program 111 is corrected, it is only necessary to select the arithmetic device again. Therefore, it is not necessary to be aware of the arithmetic device even when the user program 111 is changed. In addition, since the computing device information can be easily changed using the engineering tool 500, when the created user program 111 is executed by the CPU unit 100 having a different specification, the optimum computing device is selected. Until it is possible, the selection of the computing device can be repeated several times.
 また、手動選択モード1を使用して、PLC1の性能を評価することができる。例えば、1つの命令について、MPU142で処理した場合の処理時間、FPGA143で処理した場合の処理時間をそれぞれ計測して、実処理時間の差を求める可能である。各命令について、事前に演算装置の実処理時間の統計データを作成しておく。この統計データに基づいて、手動選択モード1または手動選択モード2において、命令毎に演算装置を選択することができる。
 また、手動選択モードで、特定の箇所でのある命令だけをMPU142またはFPGA143のユーザプログラム111内の他の命令とは異なる演算装置で実行させることもできる。このようにして、ユーザプログラム111のバグの発見のために使用することも可能である。
Also, manual selection mode 1 can be used to evaluate the performance of PLC1. For example, it is possible to measure the processing time when processing is performed by the MPU 142 and the processing time when processing is performed by the FPGA 143 for one instruction, and obtain the difference between the actual processing times. For each instruction, statistical data of the actual processing time of the arithmetic unit is created in advance. Based on this statistical data, in the manual selection mode 1 or the manual selection mode 2, an arithmetic device can be selected for each instruction.
Also, in the manual selection mode, only a certain instruction at a specific location can be executed by an arithmetic device different from other instructions in the user program 111 of the MPU 142 or FPGA 143. In this way, it can also be used for finding bugs in the user program 111.
 手動選択モード1の選択画面では、図9に示すように、ラダー図を併せて表示してもよい。命令がユーザプログラム111内のどこでコールされているかをユーザが確認することができ、ユーザがその点も考慮して演算装置を選択することが可能となる。 In the manual selection mode 1 selection screen, a ladder diagram may also be displayed as shown in FIG. The user can confirm where the instruction is called in the user program 111, and the user can select an arithmetic device in consideration of this point.
 手動選択モード2の選択画面では、図8に示すようにラダー図だけ表示するのではなく、図10のように、命令の一覧と、コール回数、その命令を実行する場合のリソースの負荷を併せて表示してもよい。 In the selection screen of the manual selection mode 2, not only a ladder diagram is displayed as shown in FIG. 8, but a list of instructions, the number of calls, and the resource load when executing the instructions are combined as shown in FIG. May be displayed.
 上述の自動選択モードでは、プログラマブルロジックデバイスによる各命令の処理時間の一例として、FPGA143を使用することで削減することが可能な時間を使用した。あるいは、プログラマブルロジックデバイスによる各命令の処理時間の実際の計測値を使用してもよい。あるいは、プログラマブルロジックデバイスによる各命令の処理時間として理論上予測される値を使用してもよい。 In the automatic selection mode described above, the time that can be reduced by using the FPGA 143 was used as an example of the processing time of each instruction by the programmable logic device. Or you may use the actual measured value of the processing time of each command by a programmable logic device. Alternatively, a theoretically predicted value may be used as the processing time of each instruction by the programmable logic device.
 自動選択モードにおける、演算装置の選択の方法は、上記のように、1ゲートあたりの処理時間の大きな命令から順にFPGA143に割り当てていたが、この方法に限られない。例えば、ユーザプログラム111内の各命令のコール回数と、プログラマブルロジックデバイスによる各命令の処理時間とを乗じて得られた値の大きな命令から順にFPGA143に割り当ててもよい。あるいは、ユーザプログラム111内の各命令のコール回数と、プログラマブルロジックデバイスによる各命令の処理時間と、各命令で使用されるゲート数とを乗じて得られた値の大きな命令から順にFPGA143に割り当ててもよい。または、単に、コール回数の多い命令から順に、または、プログラマブルロジックデバイスによる各命令の処理時間が大きな命令から順に、FPGA143に割り当ててもよい。 In the automatic selection mode, the selection method of the arithmetic unit is assigned to the FPGA 143 in order from the instruction having the longest processing time per gate as described above, but is not limited to this method. For example, the instructions may be assigned to the FPGA 143 in descending order of the value obtained by multiplying the number of calls of each instruction in the user program 111 by the processing time of each instruction by the programmable logic device. Alternatively, the instructions are assigned to the FPGA 143 in descending order of the value obtained by multiplying the number of calls of each instruction in the user program 111, the processing time of each instruction by the programmable logic device, and the number of gates used in each instruction. Also good. Alternatively, the FPGA 143 may be assigned simply in order from the instruction with the largest number of calls, or in order from the instruction having the longer processing time of each instruction by the programmable logic device.
 上記プログラムを記録する記録媒体としては、USBメモリ、フレキシブルディスク、CD、DVD、Blu-ray(登録商標)、MO、SDカード、メモリースティック(登録商標)、その他、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。 Recording media for recording the above programs include USB memory, flexible disk, CD, DVD, Blu-ray (registered trademark), MO, SD card, Memory Stick (registered trademark), magnetic disk, optical disk, magneto-optical disk, Computer-readable recording media including semiconductor memory and magnetic tape can be used.
 本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。 The present invention is capable of various embodiments and modifications without departing from the spirit and scope of the broad sense. Further, the above-described embodiment is for explaining the present invention, and does not limit the scope of the present invention. That is, the scope of the present invention is shown not by the embodiments but by the claims. Various modifications within the scope of the claims and within the scope of the equivalent invention are considered to be within the scope of the present invention.
1 PLC、100 CPUユニット、110 記憶部、111 ユーザプログラム、120 ツールインタフェース、130 共有バスインタフェース、140 演算部、141 ASIC、1411 レジスタ、1412 プログラムカウンタ、142 MPU、1421 レジスタ、143 FPGA、1431 レジスタ、190 バス、200 入力ユニット、210 記憶部、211 動作プログラム、220 共有メモリ、230 共有バスインタフェース、240 MPU、290 バス、300 出力ユニット、310 記憶部、311 動作プログラム、320 共有メモリ、330 共有バスインタフェース、340 MPU、390 バス、400 共有バス、500 エンジニアリングツール、501 通信ケーブル、510 記憶部、511 オペレーティングシステム、512 プログラム作成アプリケーション、520 操作入力部、530 表示部、540 ツールインタフェース、550 CPU、590 バス、901 検出器、902 被制御機器 1 PLC, 100 CPU unit, 110 storage unit, 111 user program, 120 tool interface, 130 shared bus interface, 140 arithmetic unit, 141 ASIC, 1411 register, 1412 program counter, 142 MPU, 1421 register, 143 FPGA, 1431 register, 190 bus, 200 input unit, 210 storage unit, 211 operation program, 220 shared memory, 230 shared bus interface, 240 MPU, 290 bus, 300 output unit, 310 storage unit, 311 operation program, 320 shared memory, 330 shared bus interface 340 MPU, 390 bus, 400 shared bus, 500 engineering tool, 501 communication cable Le, 510 storage unit, 511 operating system, 512 programming application, 520 operation input section, 530 display unit, 540 tool interface, 550 CPU, 590 Bus, 901 detector, 902 the controlled device

Claims (17)

  1.  演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスとを有するプログラマブルロジックコントローラのCPUユニットであって、
     ユーザプログラム内の命令それぞれは、ユーザが選択した、前記命令を処理する演算装置を示す演算装置情報を含み、
     前記マイクロプロセッサは、前記演算装置情報が前記マイクロプロセッサを示す場合、前記命令を処理し、
     前記プログラマブルロジックデバイスは、前記演算装置情報が前記プログラマブルロジックデバイスを示す場合、前記命令を処理し、
     前記演算装置情報が変更されると、変更後の前記演算装置情報に基づいて、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスが前記命令を処理する、
     プログラマブルロジックコントローラのCPUユニット。
    A CPU unit of a programmable logic controller having a microprocessor and a programmable logic device as an arithmetic unit,
    Each instruction in the user program includes arithmetic device information indicating an arithmetic device that processes the instruction selected by the user,
    The microprocessor processes the instruction if the computing device information indicates the microprocessor;
    The programmable logic device processes the instruction when the computing device information indicates the programmable logic device,
    When the arithmetic device information is changed, the microprocessor or the programmable logic device processes the instructions based on the changed arithmetic device information.
    Programmable logic controller CPU unit.
  2.  前記演算装置として、ASICを更に備え、
     前記命令は、前記ASICが実行可能な特定の命令と、前記特定の命令以外のASIC非対応命令とを含み、
     前記ASICは、前記特定の命令を処理し、
     前記ASIC非対応命令が含む前記演算装置情報は、前記マイクロプロセッサ及び前記プログラマブルロジックデバイスのうち、前記ASIC非対応命令を処理する演算装置を示し、
     前記マイクロプロセッサは、前記演算装置情報が前記マイクロプロセッサを示す場合、前記ASIC非対応命令を処理し、
     前記プログラマブルロジックデバイスは、前記演算装置情報が前記プログラマブルロジックデバイスを示す場合、前記ASIC非対応命令を処理し、
     前記演算装置情報が変更されると、変更後の前記演算装置情報に基づいて、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスが前記ASIC非対応命令を処理する、
     請求項1に記載のプログラマブルロジックコントローラのCPUユニット。
    The arithmetic device further includes an ASIC,
    The instructions include a specific instruction that can be executed by the ASIC, and an ASIC non-compliant instruction other than the specific instruction,
    The ASIC processes the specific instruction,
    The arithmetic device information included in the ASIC non-compliant instruction indicates an arithmetic device that processes the ASIC non-compliant instruction among the microprocessor and the programmable logic device,
    The microprocessor processes the ASIC non-compliant instruction when the arithmetic unit information indicates the microprocessor;
    When the arithmetic device information indicates the programmable logic device, the programmable logic device processes the ASIC non-compliant instruction,
    When the arithmetic device information is changed, based on the changed arithmetic device information, the microprocessor or the programmable logic device processes the ASIC non-compliant instruction.
    The CPU unit of the programmable logic controller according to claim 1.
  3.  前記ASICが処理する前記特定の命令は、前記特定の命令を処理する演算装置を示す演算装置情報を含む、
     請求項2に記載のプログラマブルロジックコントローラのCPUユニット。
    The specific instruction processed by the ASIC includes arithmetic unit information indicating an arithmetic unit that processes the specific instruction.
    The CPU unit of the programmable logic controller according to claim 2.
  4.  CPUユニットと、前記CPUユニットに検出器の出力データを供給する入力ユニットと、前記CPUユニットから被制御機器を制御するための制御データが供給される出力ユニットと、を有するプログラマブルロジックコントローラであって、
     前記CPUユニットは、演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスとを有し、
     ユーザプログラム内の命令それぞれは、ユーザが選択した、前記命令を処理する演算装置を示す演算装置情報を含み、
     前記マイクロプロセッサは、前記演算装置情報が前記マイクロプロセッサを示す場合、前記命令を処理し、
     前記プログラマブルロジックデバイスは、前記演算装置情報が前記プログラマブルロジックデバイスを示す場合、前記命令を処理し、
     前記演算装置情報が変更されると、変更後の前記演算装置情報に基づいて、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスが前記命令を処理する、
     プログラマブルロジックコントローラ。
    A programmable logic controller comprising: a CPU unit; an input unit for supplying detector output data to the CPU unit; and an output unit for supplying control data for controlling a controlled device from the CPU unit. ,
    The CPU unit has a microprocessor and a programmable logic device as an arithmetic unit,
    Each instruction in the user program includes arithmetic device information indicating an arithmetic device that processes the instruction selected by the user,
    The microprocessor processes the instruction if the computing device information indicates the microprocessor;
    The programmable logic device processes the instruction when the computing device information indicates the programmable logic device,
    When the arithmetic device information is changed, the microprocessor or the programmable logic device processes the instructions based on the changed arithmetic device information.
    Programmable logic controller.
  5.  演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスを有するCPUユニットが、ユーザプログラムを実行する方法であって、
     前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのいずれかが、前記ユーザプログラム内の命令を処理するステップ、
     を含み、
     前記命令は、ユーザが選択した、前記命令を処理する前記演算装置を示す演算装置情報を含み、
     前記ステップにおいて、前記演算装置情報が前記マイクロプロセッサを示す場合、前記マイクロプロセッサが前記命令を処理し、
     前記ステップにおいて、前記演算装置情報が前記プログラマブルロジックデバイスを示す場合、前記プログラマブルロジックデバイスが前記命令を処理し、
     前記演算装置情報が変更されると、変更後の前記演算装置情報に基づいて、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスが前記命令を処理する、
     方法。
    A CPU unit having a microprocessor and a programmable logic device as an arithmetic unit is a method for executing a user program,
    Either the microprocessor or the programmable logic device processes instructions in the user program;
    Including
    The instruction includes arithmetic device information selected by a user and indicating the arithmetic device that processes the instruction.
    In the step, when the arithmetic device information indicates the microprocessor, the microprocessor processes the instruction,
    In the step, when the arithmetic device information indicates the programmable logic device, the programmable logic device processes the instruction,
    When the arithmetic device information is changed, the microprocessor or the programmable logic device processes the instructions based on the changed arithmetic device information.
    Method.
  6.  演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスを有するプログラマブルロジックコントローラのCPUユニットに、接続可能であるコンピュータであって、
     前記コンピュータは、
     ユーザプログラムと、前記プログラマブルロジックデバイスの定義情報と、を記憶する記憶部と、
     前記ユーザプログラムと前記定義情報とに基づいて、前記ユーザプログラム内の命令から、前記プログラマブルロジックデバイスが処理する第1命令と、前記プログラマブルロジックデバイスが処理しない第2命令とを判別する判別部と、
     前記第1命令と判別された命令の、前記命令を処理する演算装置を示す演算装置情報を、前記プログラマブルロジックデバイスを示す値で更新する更新部と、
     前記演算装置情報が更新された前記ユーザプログラムを、前記CPUユニットの記憶部に転送する転送部と、
     を備えるコンピュータ。
    A computer connectable to a CPU unit of a programmable logic controller having a microprocessor and a programmable logic device as an arithmetic unit,
    The computer
    A storage unit for storing a user program and definition information of the programmable logic device;
    Based on the user program and the definition information, a determination unit that determines, from instructions in the user program, a first instruction processed by the programmable logic device and a second instruction not processed by the programmable logic device;
    An update unit that updates the arithmetic device information indicating the arithmetic device that processes the instruction of the instruction determined to be the first instruction with a value indicating the programmable logic device;
    A transfer unit that transfers the user program in which the arithmetic device information is updated to a storage unit of the CPU unit;
    A computer comprising:
  7.  前記プログラマブルロジックデバイスの定義情報は、命令それぞれの処理のため使用される前記プログラマブルロジックデバイスのゲート数と前記プログラマブルロジックデバイスの総ゲート数とを含み、
     前記判別部は、前記ゲート数と前記総ゲート数に基づいて、前記第1命令と前記第2命令とをそれぞれ判別する、
     請求項6に記載のコンピュータ。
    The definition information of the programmable logic device includes the number of gates of the programmable logic device used for processing each instruction and the total number of gates of the programmable logic device,
    The determining unit determines the first instruction and the second instruction based on the number of gates and the total number of gates, respectively.
    The computer according to claim 6.
  8.  前記判別部は、更に、前記ユーザプログラム内の前記各命令のコール数と、前記プログラマブルロジックデバイスによる前記各命令の処理時間と、に基づいて、前記プログラマブルロジックデバイスが処理する前記第1命令と、前記プログラマブルロジックデバイスが処理しない前記第2命令とを判別する、
     請求項7に記載のコンピュータ。
    The determination unit further includes the first instruction processed by the programmable logic device based on the number of calls of each instruction in the user program and the processing time of each instruction by the programmable logic device; Distinguishing the second instruction not processed by the programmable logic device;
    The computer according to claim 7.
  9.  前記演算装置情報のデフォルト値は、前記マイクロプロセッサを示す値である、
     請求項6から8のいずれか1項に記載のコンピュータ。
    The default value of the arithmetic device information is a value indicating the microprocessor.
    The computer according to any one of claims 6 to 8.
  10.  演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスを有するプログラマブルロジックコントローラのCPUユニットに、接続可能であるコンピュータであって、
     前記コンピュータは、
     ユーザプログラムを記憶する記憶部と、
     前記ユーザプログラム内の命令それぞれを処理する演算装置について、前記マイクロプロセッサ及び前記プログラマブルロジックデバイスのうちのどちらかを選択するユーザの指示を受け付ける受付部と、
     前記ユーザから前記プログラマブルロジックデバイスを選択する指示を受け付けた場合、前記命令に含まれ、前記命令を処理する演算装置を示す演算装置情報を、前記プログラマブルロジックデバイスを示す値で更新し、前記ユーザから前記マイクロプロセッサを選択する指示を受け付けた場合、前記演算装置情報を、前記マイクロプロセッサを示す値で更新する更新部と、
     前記演算装置情報が更新された前記ユーザプログラムを、前記CPUユニットの記憶部に転送する転送部と、
     を備えるコンピュータ。
    A computer connectable to a CPU unit of a programmable logic controller having a microprocessor and a programmable logic device as an arithmetic unit,
    The computer
    A storage unit for storing a user program;
    A reception unit that receives an instruction from a user to select either the microprocessor or the programmable logic device for an arithmetic device that processes each instruction in the user program;
    When an instruction to select the programmable logic device is received from the user, the arithmetic device information included in the instruction and indicating the arithmetic device that processes the instruction is updated with a value indicating the programmable logic device. When receiving an instruction to select the microprocessor, an update unit that updates the arithmetic device information with a value indicating the microprocessor;
    A transfer unit that transfers the user program in which the arithmetic device information is updated to a storage unit of the CPU unit;
    A computer comprising:
  11.  演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスを有するプログラマブルロジックコントローラのCPUユニットに、接続可能なコンピュータに実行させるコンピュータプログラムであって、
     前記コンピュータプログラムは、前記コンピュータに、
     ユーザプログラムと、前記プログラマブルロジックデバイスの定義情報と、に基づいて、前記ユーザプログラム内の命令から、前記プログラマブルロジックデバイスが処理する第1命令と、前記プログラマブルロジックデバイスが処理しない第2命令とを判別させ、
     前記第1命令と判別された命令の、前記命令を処理する演算装置を示す演算装置情報を、前記プログラマブルロジックデバイスを示す値で更新させる、
     コンピュータプログラム。
    A computer program to be executed by a connectable computer to a CPU unit of a programmable logic controller having a microprocessor and a programmable logic device as an arithmetic unit,
    The computer program is stored in the computer.
    Based on the user program and the definition information of the programmable logic device, a first instruction processed by the programmable logic device and a second instruction not processed by the programmable logic device are determined from the instructions in the user program. Let
    The arithmetic unit information indicating the arithmetic unit that processes the instruction of the instruction determined to be the first instruction is updated with a value indicating the programmable logic device.
    Computer program.
  12.  前記プログラマブルロジックデバイスの定義情報は、命令それぞれの処理のため使用される前記プログラマブルロジックデバイスのゲート数と前記プログラマブルロジックデバイスの総ゲート数とを含み、
     前記コンピュータプログラムは、前記コンピュータに、
     前記ゲート数と前記総ゲート数に基づいて、前記第1命令と前記第2命令とをそれぞれ判別させる、
     請求項11に記載のコンピュータプログラム。
    The definition information of the programmable logic device includes the number of gates of the programmable logic device used for processing each instruction and the total number of gates of the programmable logic device,
    The computer program is stored in the computer.
    Determining the first instruction and the second instruction based on the number of gates and the total number of gates, respectively;
    The computer program according to claim 11.
  13.  前記コンピュータに、
     更に、前記ユーザプログラム内の前記各命令のコール数と、前記プログラマブルロジックデバイスによる前記各命令の処理時間と、に基づいて、前記第1命令と前記第2命令とをそれぞれ判別させる、
     請求項12に記載のコンピュータプログラム。
    In the computer,
    Further, the first instruction and the second instruction are discriminated based on the number of calls of each instruction in the user program and the processing time of each instruction by the programmable logic device, respectively.
    The computer program according to claim 12.
  14.  前記演算装置情報のデフォルト値は、前記マイクロプロセッサを示す値である、
     請求項11から13のいずれか1項に記載のコンピュータプログラム。
    The default value of the arithmetic device information is a value indicating the microprocessor.
    The computer program according to any one of claims 11 to 13.
  15.  演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスを有するプログラマブルロジックコントローラのCPUユニットに、接続可能なコンピュータに実行させるコンピュータプログラムであって、
     前記コンピュータプログラムは、前記コンピュータに、
     ユーザプログラム内の命令それぞれを処理する演算装置について、前記マイクロプロセッサ及び前記プログラマブルロジックデバイスのうちのどちらかを選択するユーザの指示を受け付けさせ、
     前記ユーザから前記命令の演算装置として前記プログラマブルロジックデバイスを選択する指示を受け付けた場合、前記命令の、前記命令を処理する演算装置情報を、前記プログラマブルロジックデバイスを示す値で更新させ、前記ユーザから前記命令の演算装置として前記マイクロプロセッサを選択する指示を受け付けた場合、前記命令の前記演算装置情報を、前記マイクロプロセッサを示す値で更新させる、
     コンピュータプログラム。
    A computer program to be executed by a connectable computer to a CPU unit of a programmable logic controller having a microprocessor and a programmable logic device as an arithmetic unit,
    The computer program is stored in the computer.
    For an arithmetic device that processes each instruction in the user program, the instruction of the user to select either the microprocessor or the programmable logic device is accepted,
    When receiving an instruction to select the programmable logic device as the arithmetic device for the instruction from the user, the arithmetic device information for processing the instruction is updated with a value indicating the programmable logic device from the user. When receiving an instruction to select the microprocessor as the arithmetic unit of the instruction, the arithmetic unit information of the instruction is updated with a value indicating the microprocessor.
    Computer program.
  16.  前記ユーザプログラム内に、同じ前記命令が2以上含まれている場合、前記ユーザの指示に基づいて、同じ前記命令の前記演算装置情報をすべて、前記マイクロプロセッサと前記プログラマブルロジックデバイスのいずれかの演算装置を示す値で更新させる、
     請求項15に記載のコンピュータプログラム。
    When two or more of the same instructions are included in the user program, all of the arithmetic device information of the same instructions are calculated by either the microprocessor or the programmable logic device based on the instruction of the user. Update with a value indicating the device,
    The computer program according to claim 15.
  17.  前記ユーザプログラム内に、同じ前記命令が2以上含まれている場合であっても、前記ユーザの指示に基づいて、前記命令の演算装置情報を個別に前記マイクロプロセッサと前記プログラマブルロジックデバイスのいずれかの演算装置を示す値で更新させる、
     請求項15に記載のコンピュータプログラム。
    Even if two or more of the same instructions are included in the user program, based on the instruction of the user, the arithmetic device information of the instructions is individually set to either the microprocessor or the programmable logic device. Update with a value indicating the arithmetic unit of
    The computer program according to claim 15.
PCT/JP2018/008798 2018-03-07 2018-03-07 Cpu unit of programmable logic controller, programmable logic controller, method, computer, and computer program WO2019171501A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/JP2018/008798 WO2019171501A1 (en) 2018-03-07 2018-03-07 Cpu unit of programmable logic controller, programmable logic controller, method, computer, and computer program
JP2019502024A JP6591116B1 (en) 2018-03-07 2018-03-07 Programmable logic controller CPU unit, programmable logic controller, method, and computer
CN201880090694.9A CN111819503B (en) 2018-03-07 2018-03-07 CPU unit of programmable logic controller, method and computer
DE112018007018.2T DE112018007018B4 (en) 2018-03-07 2018-03-07 CPU unit of a programmable logic controller, programmable logic controller, method and computer
TW108106511A TWI701592B (en) 2018-03-07 2019-02-26 Cpu unit of programmable logic controller, programmable logic controller, method, computer, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/008798 WO2019171501A1 (en) 2018-03-07 2018-03-07 Cpu unit of programmable logic controller, programmable logic controller, method, computer, and computer program

Publications (1)

Publication Number Publication Date
WO2019171501A1 true WO2019171501A1 (en) 2019-09-12

Family

ID=67846525

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/008798 WO2019171501A1 (en) 2018-03-07 2018-03-07 Cpu unit of programmable logic controller, programmable logic controller, method, computer, and computer program

Country Status (5)

Country Link
JP (1) JP6591116B1 (en)
CN (1) CN111819503B (en)
DE (1) DE112018007018B4 (en)
TW (1) TWI701592B (en)
WO (1) WO2019171501A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278606A (en) * 2001-03-15 2002-09-27 Omron Corp Programming tool and controller
JP2006243841A (en) * 2005-02-28 2006-09-14 Omron Corp Plc tool device
JP2006294005A (en) * 2005-03-14 2006-10-26 Omron Corp Programmable controller
WO2009038682A1 (en) * 2007-09-21 2009-03-26 Siemens Energy & Automation, Inc. Systems, devices, and/or methods for managing programmable logic controller processing
JP2016212710A (en) * 2015-05-12 2016-12-15 三菱電機株式会社 Ladder program syntactic analysis tool

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818736A (en) * 1996-10-01 1998-10-06 Honeywell Inc. System and method for simulating signal flow through a logic block pattern of a real time process control system
US7024495B2 (en) 2001-03-30 2006-04-04 Omron Corporation Programmable controller
KR100745959B1 (en) * 2002-04-17 2007-08-02 후지쯔 가부시끼가이샤 Integrated circuit development method, program recording medium containing integrated circuit development method
JP2009251782A (en) * 2008-04-03 2009-10-29 Koyo Electronics Ind Co Ltd Acceleration method, and the like, of programmable controller
JP6443190B2 (en) * 2015-04-06 2018-12-26 オムロン株式会社 Programmable logic controller, control method of programmable logic controller, and control program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278606A (en) * 2001-03-15 2002-09-27 Omron Corp Programming tool and controller
JP2006243841A (en) * 2005-02-28 2006-09-14 Omron Corp Plc tool device
JP2006294005A (en) * 2005-03-14 2006-10-26 Omron Corp Programmable controller
WO2009038682A1 (en) * 2007-09-21 2009-03-26 Siemens Energy & Automation, Inc. Systems, devices, and/or methods for managing programmable logic controller processing
JP2016212710A (en) * 2015-05-12 2016-12-15 三菱電機株式会社 Ladder program syntactic analysis tool

Also Published As

Publication number Publication date
JPWO2019171501A1 (en) 2020-04-16
DE112018007018B4 (en) 2024-05-02
TW201939273A (en) 2019-10-01
JP6591116B1 (en) 2019-10-16
TWI701592B (en) 2020-08-11
CN111819503B (en) 2021-08-24
DE112018007018T5 (en) 2020-11-05
CN111819503A (en) 2020-10-23

Similar Documents

Publication Publication Date Title
US20130282148A1 (en) Motion controller
JPH0561646B2 (en)
US20150356220A1 (en) Automated input simulation for simulated programmable logic controller
US8793668B2 (en) Protocol independent programming environment
JPWO2014125587A1 (en) Programmable display, its program
JP6591116B1 (en) Programmable logic controller CPU unit, programmable logic controller, method, and computer
WO2015181921A1 (en) Programmable display device and rendering software
US20140309751A1 (en) Controller, device control system, computer program, computer readable storage medium
JP5521889B2 (en) Automatic program generator
EP3118696A1 (en) Programmable controller system
JP5156775B2 (en) Plant monitoring / control device and maintenance support method thereof
KR101333639B1 (en) Facility control method of remote supervisory control apparatus using machine code generation, and the remote supervisory control apparatus
WO2024062548A1 (en) Setting assistance device, control system, setting assistance method, and program
JP6173645B1 (en) Digital-to-analog converter, control device, and control system
CN114424175A (en) Device management apparatus and software generation method
US20170003985A1 (en) Procede de configuration et procede de commande d'un systeme de modules d'execution interconnectes
US11204782B2 (en) Computer system and method for controlling arrangement of application data
JP2012208932A (en) Plc system, state display method, plc, and programmable display
CN111913751B (en) Method for changing setting of basic input output system
EP3361329B1 (en) Information processing apparatus, system, method and recording medium for generating a user interface
KR100396725B1 (en) A keyboard of instruction inputting for programmable logic controller using shortened instruction code
JP2016224600A (en) Controller, storage device, and reproduction device
US20220253289A1 (en) WEB BROWSER BASED DEVELOPMENT PLATFORM FOR CREATING IoT WEB PAGES
JP2022013144A (en) Machine operation device, machine operation system, controller, and machine operation method
JP6146277B2 (en) Inverter control device and its peripheral devices

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019502024

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 18908738

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 18908738

Country of ref document: EP

Kind code of ref document: A1