WO2014108999A1 - 制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法 - Google Patents

制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法 Download PDF

Info

Publication number
WO2014108999A1
WO2014108999A1 PCT/JP2013/050121 JP2013050121W WO2014108999A1 WO 2014108999 A1 WO2014108999 A1 WO 2014108999A1 JP 2013050121 W JP2013050121 W JP 2013050121W WO 2014108999 A1 WO2014108999 A1 WO 2014108999A1
Authority
WO
WIPO (PCT)
Prior art keywords
programmable controller
delay time
transmission delay
slave
master
Prior art date
Application number
PCT/JP2013/050121
Other languages
English (en)
French (fr)
Inventor
幸輝 湯尾
晃 藤森
Original Assignee
富士電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士電機株式会社 filed Critical 富士電機株式会社
Priority to KR1020157011274A priority Critical patent/KR101726743B1/ko
Priority to PCT/JP2013/050121 priority patent/WO2014108999A1/ja
Priority to CN201380062822.6A priority patent/CN104854523B/zh
Priority to JP2014556241A priority patent/JP5935903B2/ja
Publication of WO2014108999A1 publication Critical patent/WO2014108999A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/12Plc mp multi processor system
    • G05B2219/1215Master slave system

Definitions

  • the present invention relates to a control system, a master programmable controller, a slave programmable controller, and a control method in which a plurality of programmable controllers that respectively control controlled devices are connected to be communicable with each other.
  • the controller has a hierarchical structure from the viewpoint of system construction and ease of maintenance, and the layers are connected by a network.
  • a plurality of programmable controllers are connected to one management device via a network, and one or a plurality of controlled devices are connected to each programmable controller. Then, the programmable controller receives a control command from the upper management device, analyzes the control command, and controls the lower-level controlled device.
  • the control process proceeds in a closed range between the programmable controller and the controlled device. Then, the programmable controller transmits only the control result to the management device. Therefore, the management device collects control results at individual timings within the programmable controller.
  • communication can be established between programmable controllers under the same management device, and control results can be transmitted and received.
  • a technique for performing scheduling for transmitting / receiving control data between programmable controllers and switching a switch provided between the programmable controllers according to the scheduling is known (for example, Patent Document 1).
  • the programmable controllers can exchange information.
  • the plurality of programmable controllers in the control system operate at independent timings according to the control command of the management device, the programmable controller and the controlled device are synchronized, but the programmable controllers are synchronized. It becomes a state that is not taken.
  • the management device collects information from a plurality of programmable controllers
  • the timing at which the information is generated differs for each programmable controller, so the context of the information is not clear and strict control is difficult.
  • the present invention provides a control system, a master programmable controller, a slave programmable controller, and a control method capable of improving portability and improving control accuracy and stability. It is an object.
  • the programmable controller is another programmable controller.
  • a communication unit that establishes communication with the controlled device, and a common memory for sharing data with other programmable controllers via the communication unit, and the programmable controller includes a master programmable controller that functions as a master, There is a slave programmable controller that functions as a slave, and the master programmable controller further has a transmission delay between the master programmable controller and the slave programmable controller.
  • the transmission delay time request frame for measuring the transmission delay time request frame is transmitted to the slave programmable controller, and when the reception completion frame that is a response to the transmission delay time request frame is received, the time when the transmission delay time request frame is transmitted and the reception completion frame
  • a delay time measurement unit that calculates a transmission delay time from a difference from the time when the signal is received and transmits a transmission delay time notification frame including the transmission delay time to the slave programmable controller.
  • the slave programmable controller further includes a transmission delay.
  • the reception completion frame is transmitted to the master programmable controller, and when the transmission delay time notification frame is received, the delay time receiving unit that acquires the transmission delay time included in the transmission delay time notification frame , Based on the transmission delay time, characterized in that it comprises a synchronization correction unit for synchronizing the slave programmable controller to the master programmable controller.
  • the master programmable controller of this invention which controls a controlled device based on a program and functions as a master is a slave programmable controller that functions as a slave, and communication that establishes communication with the controlled device And the slave programmable controller with a common memory for sharing data with the slave programmable controller via the communication unit, and a transmission delay time request frame for measuring the transmission delay time between the master programmable controller and the slave programmable controller.
  • the master programmable controller of this invention which controls a controlled device based on a program and functions as a master is a slave, and communication that establishes communication with the controlled device
  • the slave programmable controller with a common memory for sharing data with the slave programmable controller via the communication unit, and a transmission delay time request frame for measuring the transmission delay time between the master programmable controller and the slave programmable controller.
  • the slave programmable controller of this invention which controls a controlled device based on a program and functions as a slave is another programmable controller including a master programmable controller that functions as a master, and a controlled device
  • a communication unit that establishes communication with the communication unit, a common memory for sharing data with other programmable controllers via the communication unit, and a transmission delay time request for measuring the transmission delay time between the master programmable controller and the slave programmable controller
  • a reception completion frame that is a response to the transmission delay time request frame is transmitted to the master programmable controller, and a transmission delay time notification frame including the transmission delay time is received.
  • a delay time receiving unit that acquires the transmission delay time included in the transmission delay time notification frame, and a synchronization correction unit that synchronizes the slave programmable controller with the master programmable controller based on the transmission delay time, To do.
  • a programmable controller is Establish communication with other programmable controllers and controlled devices, share data with other programmable controllers using a common memory via the communication unit, and among the programmable controllers, the master programmable controller that functions as the master is the master programmable A transmission delay time request frame for measuring the transmission delay time between the controller and the slave programmable controller functioning as a slave is transmitted to the slave programmable controller, and the slave program is transmitted.
  • the grammatic controller When receiving the transmission delay time request frame, the grammatic controller sends a reception completion frame, which is a response to the transmission delay time request frame, to the master programmable controller.
  • the transmission delay time is calculated from the difference between the time when the frame is transmitted and the time when the reception completion frame is received, and the transmission delay time notification frame including the transmission delay time is transmitted to the slave programmable controller.
  • the transmission delay time notification frame When the transmission delay time notification frame is received, the transmission delay time included in the transmission delay time notification frame is acquired, and the slave programmable controller is master-programmed based on the transmission delay time. And wherein the synchronizing between logic controllers.
  • control units In a control system applied to a large-scale plant or the like, control applications are divided and controlled by a plurality of control units (also referred to as configurations) depending on the processing complexity of the entire system and the physical arrangement.
  • the control unit mainly indicates a combination of a programmable controller and a controlled device controlled by the programmable controller.
  • a plurality of such control units are prepared and connected to a management apparatus that controls the entire control system.
  • each apparatus which comprises a control system is demonstrated.
  • FIG. 1 is an explanatory diagram showing a schematic relationship between devices constituting the control system 100
  • FIG. 2 is an explanatory diagram showing a schematic configuration of the control system 100.
  • the control system 100 includes a management device 110, a plurality of programmable controllers 120, and a plurality of controlled devices 130.
  • the management device 110 and the plurality of programmable controllers 120 are connected to each other by a network wiring 140 based on Ethernet (registered trademark) such as a Giga (G) base as a controller level network.
  • the plurality of programmable controllers 120 and the plurality of controlled devices 130 are connected to each other as a device level network through, for example, a dedicated connection wiring 142.
  • the management apparatus 110 collectively controls the plurality of programmable controllers 120 so that the entire control system 100 operates in accordance with the process flow defined in the application. For example, the management apparatus 110 collects status information and control results from the individual programmable controllers 120, and outputs various control commands to the individual programmable controllers 120 according to the collected contents.
  • the programmable controller 120 is also called PLC (Programmable Logic Controller), and includes a plurality of modules such as a CPU module 122, a communication module 124, an input / output (I / O) module 126, and a power supply module 128, as shown in FIG. Consists of.
  • the CPU module 122 downloads an execution program divided for each control unit from the management apparatus 110 in order to realize an application, executes the execution program, and does not show the operation status of the control unit. Or display on other monitors.
  • the controlled device 130 is controlled based on the control command received from the management device 110, the sensor detection result of the controlled device 130 input through the input / output module 126, information held by the other programmable controller 120, and the like.
  • the CPU module 122 transmits data such as status information indicating its own state, sensor detection results, and control results to the management device 110.
  • the communication module 124 is connected to the management apparatus 110, another programmable controller 120, and other modules through, for example, Ethernet (registered trademark) such as a Giga (G) base as a controller level network, and communicates with each other. Can be established. However, data may be exchanged between the modules via a bus provided on the base board.
  • Ethernet registered trademark
  • G Giga
  • the communication module 124 is formed integrally with the CPU module 122.
  • the input / output module 126 manages input / output with respect to the controlled device 130. For example, if the controlled device 130 is a sensor, the sensor detection result is collected, and if the controlled device 130 is an electric motor, a control command represented by a discrete is transmitted and the control result is collected.
  • the power supply module 128 supplies power to each module such as the CPU module 122, the communication module 124, and the input / output module 126.
  • the controlled device 130 includes sensors that detect various states in FA (Factory Automation), and electric devices such as an electric motor and an encoder that operate according to the detection results of the sensors.
  • FA Vectory Automation
  • electric devices such as an electric motor and an encoder that operate according to the detection results of the sensors.
  • control system 100 can be applied to various control objects.
  • MES production execution system
  • production device such as a center sealer unit, a film unit, or a rolling unit as the controlled device 130.
  • the programmable controller 120 is connected.
  • the programmable controller 120 reads the operating state of the production device from the input / output module 126 and the like, and controls the rotation of the electric motor in the production device through a motor driver or the like.
  • the management device 110 collects information for each programmable controller 120 and transmits a control command. In this way, the entire control system 100 can comprehensively perform production support management such as process management, quality management, and production amount management.
  • the CPU module 122 of the programmable controller 120 will be described in detail.
  • FIG. 3 is a diagram illustrating an example of a hardware configuration of the CPU module 122.
  • the CPU module 122 illustrated in FIG. 3 includes an input unit 150, an output unit 152, a communication unit 154, a logic circuit 156, a reference signal generation unit 158, a CPU 160, a ROM 162, a RAM 164, and a common memory 166. Consists of including. Among these, the input unit 150, the output unit 152, the logic circuit 156, the CPU 160, the ROM 162, the RAM 164, and the common memory 166 are connected so that data can be moved by the common bus 168.
  • the input unit 150 includes a keyboard, a pointing device such as a mouse and a touch panel, a voice input device, and the like, and accepts various operations such as execution of a program by the user.
  • the output unit 152 includes a liquid crystal display, an organic EL (Electro Luminescence) display, and the like, and various windows, data, control program progress statuses and control results necessary for operating the CPU module 122 that performs processing in the present embodiment. Etc. are displayed.
  • the communication unit 154 functions as the communication module 124 described above, and establishes communication with the management device 110, the other programmable controller 120, and the input / output module 126 through Ethernet (registered trademark). In the present embodiment, the communication unit 154 is built in the CPU 160.
  • the logic circuit 156 is composed of an integrated circuit that can rewrite a logic circuit such as CPLD (Complex Programmable Logic Device) or FPGA (Field-Programmable Gate Array), and incorporates various logic circuits that assist the CPU 160.
  • CPLD Complex Programmable Logic Device
  • FPGA Field-Programmable Gate Array
  • the reference signal generation unit 158 is configured with a hardware counter, performs counting, and generates a reference signal for the CPU 160 when the count value reaches a preset reference value. Such a count value is periodically counted based on a reference value.
  • the reference value is preset in each CPU module 122 and can be changed from the management device 110 or the input unit 150.
  • the reference signal generation unit 158 is shown separately from the CPU 160, but the reference signal generation unit 158 may be realized using a timer counter built in the CPU 160.
  • “built-in” means that only the function units used by the CPU 160 can access the reference signal generation unit 158, for example.
  • the CPU 160 controls processing of the entire CPU module 122 such as various operations and data input / output based on a basic program such as an OS (Operating System) and an execution program. Further, the CPU 160 executes the execution program stored in the ROM 162 and uses the RAM 164 as a work area, so that the delay time measuring unit 180, the synchronization frame transmitting unit 182, the delay time receiving unit 184, and the synchronization correcting unit 186 are used. , Function unit such as an application execution unit 188, a data update unit 190, and a data transmission unit 192. In addition, the CPU 160 includes a communication unit 154, and communicates with the management device 110, the other programmable controller 120, and the input / output module 126 based on interrupt processing.
  • a basic program such as an OS (Operating System) and an execution program. Further, the CPU 160 executes the execution program stored in the ROM 162 and uses the RAM 164 as a work area, so that the delay time measuring unit 180, the synchronization frame transmit
  • the ROM 162 stores the basic program and the execution program described above. Moreover, you may have storage means, such as a hard disk, as an auxiliary storage device.
  • the RAM 164 temporarily stores a part of the basic program and the execution program and data (for example, status information, sensor detection result, control result, etc.) generated by executing the execution program.
  • the common memory 166 is a storage area for sharing information with other CPU modules 122 and may be formed as a part of the RAM 164.
  • FIG. 4 is a functional block diagram for explaining each functional unit of the CPU module 122.
  • the CPU 160 also functions as the delay time measurement unit 180, the synchronization frame transmission unit 182, the delay time reception unit 184, the synchronization correction unit 186, the application execution unit 188, the data update unit 190, and the data transmission unit 192.
  • Each of these functional units may or may not function depending on whether the programmable controller 120 operates as a master (master programmable controller) or operates as a slave (slave programmable controller).
  • the CPU module 122 in the master programmable controller is the master CPU module 122a
  • the CPU module 122 in the slave programmable controller is the slave CPU module 122b.
  • functional units that do not function depending on whether they are masters or slaves are indicated by broken lines.
  • one CPU module 122 can be a master CPU module 122a or a slave CPU module 122b.
  • the delay time measuring unit 180 transmits a transmission delay time request frame for measuring the transmission delay time between the master CPU module 122a and the slave CPU module 122b to an arbitrary slave. It transmits to CPU module 122b.
  • This transmission delay time request frame has substantially the same format as a later-described synchronization frame and has a different data in a predetermined portion (for example, a command portion) in the synchronization frame.
  • the transmission delay time request frame is transmitted in synchronization with the reference signal generated by the reference signal generation unit 158 in the master CPU module 122a.
  • the delay time measuring unit 180 when the delay time measuring unit 180 receives the reception completion frame from any slave CPU module 122b after transmitting the transmission delay time request frame, the delay time measurement unit 180 acquires the time when the reception completion frame is received. The delay time measurement unit 180 then performs round-trip transmission between the master CPU module 122a and any slave CPU module 122b based on the difference between the time when the transmission delay time request frame is transmitted and the time when the reception completion frame is received. Calculate the delay time. Then, the delay time measuring unit 180 divides the calculated round trip transmission delay time by 2, and synchronizes the transmission delay time notification frame including the transmission delay time as a result with the next reference signal, so that the arbitrary slave CPU module 122b. Send to. In this way, the transmission delay time by the network wiring 140 can be notified to an arbitrary slave CPU module 122b.
  • the synchronization frame transmission unit 182 transmits a prepared synchronization frame to the plurality of slave CPU modules 122b in synchronization with the reference signal.
  • a synchronization frame is a signal for matching the count value of the reference signal generation unit 158 of the slave CPU module 122b with the count value of the reference signal generation unit 158 of the master CPU module 122a.
  • the delay time receiving unit 184 receives the transmission delay time request frame from the master CPU module 122a, and masters the reception completion frame according to the transmission delay time request frame. It transmits to CPU module 122a. Further, when receiving the transmission delay time notification frame from the master CPU module 122a, the delay time receiving unit 184 saves the transmission delay time included in the frame in the RAM 164 or the like. In this way, the slave CPU module 122b can obtain the transmission delay time between the master CPU module 122a and the slave CPU module 122b.
  • the synchronization correction unit 186 advances the reference signal generated by the reference signal generation unit 158 in the slave CPU module 122b by the transmission delay time. Specifically, when the synchronization correction unit 186 receives the synchronization frame from the master CPU module 122a, the synchronization correction unit 186 acquires a count value from the reference signal generation unit 158, and a value corresponding to the transmission delay time (time conversion of the reference signal generation unit 158). Value) and the obtained count value, a correction amount is calculated, a correction reference value is derived by subtracting the correction amount from the reference value, and the reference signal is temporarily set using the correction reference value as a new reference value. Set in the generation unit 158. Therefore, the correction reference value is represented by reference value ⁇ (value corresponding to transmission delay time ⁇ count value of reference signal generation unit 158).
  • the correction reference value is set, and when the reference signal generation unit 158 completes counting with the correction reference value, the synchronization correction unit 186 promptly sets the original reference value in the reference signal generation unit 158. .
  • the reference value can be temporarily advanced by the transmission delay time.
  • an example is given in which correction for the transmission delay time is performed at one time.
  • the present invention is not limited to this, and the correction may be performed in multiple steps. In this embodiment, even when the synchronization correction unit 186 receives the synchronization frame without obtaining the transmission delay time from the master CPU module 122a, the above correction processing is performed with the transmission delay time set to zero (0). Good.
  • the reference signal generation unit 158 of the master CPU module 122a and the reference signal generation unit 158 of the slave CPU module 122b can be synchronized with high accuracy.
  • Such synchronization correction processing may be performed continuously or intermittently at predetermined time intervals.
  • the application execution unit 188 executes the execution program in both the master CPU module 122a and the slave CPU module 122b in accordance with the reference signal generated by the reference signal generation unit 158 (receiving the reference signal as an interrupt signal). Then, the controlled device 130 is controlled through the input / output module 126. Therefore, the execution program is periodically executed according to the reference signal.
  • the data update unit 190 uses the generated data.
  • the contents of the common memory 166 in the CPU module 122 are updated.
  • the data update unit 190 transfers the data to another CPU module 122.
  • the data update unit 190 updates the contents of the common memory 166 in its own CPU module 122 based on the data. In this way, data can be shared with other CPU modules 122.
  • the transmission timing at which the data updating unit 190 transmits data to the other CPU modules 122 is predetermined for each CPU module 122 based on the reference signal generation unit 158. Such transmission timing will be described in detail later.
  • the data transmission unit 192 collects data that is requested to be collected by the management apparatus 110 among the data generated by the application execution unit 188 executing the execution program in both the master CPU module 122a and the slave CPU module 122b. To the management device 110.
  • the transmission timing follows the transmission timing of the data update unit 190. In this embodiment, since the CPU modules 122 are synchronized with each other, data having the same generation timing is collected in the management device 110.
  • FIG. 5 is a time chart for explaining an example of the synchronization correction processing.
  • the reference value is 1000 ⁇ sec, but is not limited to this, and can be appropriately changed by the management device 110, for example.
  • ⁇ sec is expressed as ⁇ s for simplification.
  • the reference signal generator 158 of the master CPU module 122a performs counting.
  • a reference signal is output in the master CPU module 122a.
  • the application execution unit 188 executes an execution program according to the reference signal.
  • a triangular area indicated by hatching indicates the transition of the count value. The count value increases as time passes, and is reset when the count target (for example, a reference value) is reached.
  • the reference signal generation unit 158 of the slave CPU module 122b is also counting. When the count value reaches the reference value at (2) in FIG. 5, a reference signal is output. Then, the application execution unit 188 executes an execution program according to the reference signal. As described above, in the master CPU module 122a and the slave CPU module 122b, predetermined processing is performed in accordance with the independent reference signals.
  • the delay time measuring unit 180 of the master CPU module 122a transmits a transmission delay time request frame in order to calculate the transmission delay time ((3 in FIG. 5). )).
  • the delay time receiving unit 184 of the slave CPU module 122b transmits a reception completion frame to the master CPU module 122a according to the transmission delay time request frame (FIG. 5). (4)).
  • the delay time measuring unit 180 of the master CPU module 122a calculates the round trip transmission delay time between the master CPU module 122a and the slave CPU module 122b. Then, the delay time measurement unit 180 transmits a transmission delay time notification frame including a transmission delay time (200 ⁇ sec) obtained by dividing the calculated round trip transmission delay time (400 ⁇ sec) by 2 to the slave CPU module 122b ((5 in FIG. 5). )).
  • the delay time receiving unit 184 of the slave CPU module 122b saves the round-trip transmission delay time (equivalent value) included in the frame in the RAM 164 or the like ((6) in FIG. 5).
  • the synchronization frame transmission unit 182 of the master CPU module 122a transmits the synchronization frame as an interrupt signal to the slave CPU module 122b ((7) in FIG. 5).
  • the slave CPU module 122b receives the synchronization frame at the time of (8) in FIG. 5 after one-way transmission delay time (200 ⁇ s) of the network wiring 140
  • the synchronization correction unit 186 receives the synchronization signal from the reference signal generation unit 158.
  • a count value (corresponding to 190 ⁇ sec) is acquired ((9) in FIG. 5).
  • the reference signal generation unit 158 restarts because the count value reaches the temporary correction reference value 990 ⁇ s at the time point (11) in FIG.
  • the reference signal of the slave CPU module 122b is synchronized with the reference signal of the master CPU module 122a.
  • FIG. 6 is a diagram showing a schematic sequence example of the synchronization correction processing.
  • synchronization using the master CPU module 122a and the slave CPU module 122b will be described.
  • the present embodiment is not limited to this, and one master CPU module 122a is used.
  • a plurality of slave CPU modules 122b can be synchronized.
  • the reference signal generator 158 of the master CPU module 122a generates a reference signal (S11), and the reference signal generator 158 of the slave CPU module 122b is independent of the master CPU module 122a.
  • a reference signal is generated (S12). Moreover, this process is performed periodically.
  • the delay time measuring unit 180 of the master CPU module 122a transmits a transmission delay time request frame to the slave CPU module 122b in order to calculate the transmission delay time (S13).
  • the delay time receiving unit 184 of the slave CPU module 122b transmits a reception completion frame to the master CPU module 122a (S14).
  • the delay time measuring unit 180 of the master CPU module 122a calculates, for example, a transmission delay time (S15), and generates a transmission delay time notification frame including the calculated transmission delay time (S16). Then, the delay time measuring unit 180 transmits the generated transmission delay time notification frame to the slave CPU module 122b via the network wiring 140 (S17).
  • the delay time reception unit 184 of the slave CPU module 122b saves the transmission delay time (converted value) included in the transmission delay time notification frame in the RAM 164 or the like (S18).
  • the synchronization frame transmission unit 182 of the master CPU module 122a transmits the synchronization frame as an interrupt signal to the slave CPU module 122b in synchronization with the reference signal (S19).
  • the synchronization correction unit 186 acquires a count value from the reference signal generation unit 158 (S20). Then, using the transmission delay time and the reference value, the synchronization correction unit 186 calculates a reference value— (value corresponding to the transmission delay time ⁇ count value of the reference signal generation unit 158) to obtain a correction reference value (S21). . Then, the correction reference value is temporarily set in the reference signal generation unit 158 as a new reference value (S22). When the correction reference value is set and counting with the correction reference value is completed, the synchronization correction unit 186 quickly sets the original reference value in the reference signal generation unit 158 (S23).
  • Such synchronization correction processing is executed for all the slave CPU modules 122b included in the control system 100.
  • the reference signal of the slave CPU module 122b is synchronized with the reference signal of the master CPU module 122a. That is, it is possible to synchronize execution programs (applications) that operate on the CPU modules 122.
  • FIG. 7 is a time chart for explaining data transmission / reception in the CPU module 122.
  • three CPU modules (CPU module A, CPU module B, and CPU module C in FIG. 7) are listed as the plurality of CPU modules 122.
  • the synchronization correction processing has already been completed, and the three CPU modules A, B, and C are synchronized.
  • the number of CPU modules is not limited to three.
  • the application execution unit 188 periodically operates in synchronization with the reference signal. Specifically, the execution of the execution program is started at the timing when the reference signal generation unit 158 generates the reference signal, that is, the count value of the reference signal generation unit 158 is reset to 0, and the data ( The detection result of the sensor, the control result, etc.) are latched (held).
  • the execution program is started when the count value is 0 here, the processing may be started after a predetermined time in consideration of the overhead of management function processing prior to the execution program.
  • the application execution unit 188 inputs the latched data via the input / output module 126 and performs a predetermined calculation based on the execution program. Then, the common memory 166 in the CPU module A is updated with data (status information, sensor detection result, control result, etc.) to which the calculated control result is added. When the predetermined calculation is completed, abnormality monitoring of the programmable controller 120, system control processing, and the like are executed until the next reference signal.
  • the data update unit 190 refers to the count value of the reference signal generation unit 158 and measures the transmission timing assigned to the CPU module A in advance (here, 0). When the transmission timing arrives, the data update unit 190 transmits the data stored in the common memory 166 to the other CPU modules B and C, and updates the common memory 166 in the CPU modules B and C.
  • CPU modules A, B, and C are assigned different transmission timings.
  • the CPU module A is transferred to the CPU modules B and C
  • the CPU module B is transferred to the CPU modules A and C
  • the CPU module C is transferred to the CPU modules A and B with sufficient time to complete the data transmission.
  • Data is sent in order.
  • the other CPU modules receive the data and reflect the data in each common memory 166.
  • the data update unit 190 is reflected in other CPU modules.
  • the common memory 166 is synchronized in the control system 100. As long as the data of the common memory 166 is updated, the data of other CPU modules may be automatically updated.
  • the data update unit 190 refers to the count value of the reference signal generation unit 158 in each CPU module A, B, C, and sends data to the transmission timing assigned to each CPU module A, B, C. Although it is transmitted, not only the reference signal generation unit 158 but also a separate counter that starts counting according to the reference signal can be used.
  • the controlled device 130 can be easily shared by any CPU module. Can be transplanted to.
  • the data is reflected in the same memory address of the common memory 166 in the CPU module after the change.
  • An environment can be formed.
  • access to the common memory 166 by the data update unit 190 will be described in detail.
  • FIG. 8 is an explanatory diagram for explaining an arrangement change of the controlled device 130.
  • three CPU modules (CPU module A, CPU module B, and CPU module C in FIG. 8) are listed as the plurality of CPU modules 122.
  • the CPU module B when focusing on the CPU module B, as shown in FIG. 8A, the CPU module B is connected to controlled devices D and E corresponding to sensors and a controlled device F corresponding to an electric motor. Yes.
  • the control command OUTf is sent to the controlled device F corresponding to the electric motor based on the detection results INd and INe of the controlled devices D and E corresponding to the sensors.
  • the controlled devices D, E, and F are included in the same control unit, and all belong to the same CPU module B. Therefore, the control command OUTf is generated in the control unit. It's enough. That is, in the CPU module B, the application execution unit 188 acquires sensor detection results INd and INe from the controlled devices D and E via the input / output module 126, generates a control command OUTf from the detection results, The generated control command OUTf may be output to the controlled device F.
  • the arrangement of the controlled devices D and E is changed, and as shown in FIG. 8B, the controlled device F belongs to the CPU module A without changing the controlled device F, and the controlled device E is the CPU module.
  • the controlled device F belongs to the CPU module A without changing the controlled device F
  • the controlled device E is the CPU module.
  • the CPU module B can easily refer to the data of the controlled devices D and E at the same timing as before. it can.
  • FIG. 9 is an explanatory diagram showing a memory map in the common memory 166.
  • common memories 166a, 166b, and 166c are arranged in the CPU modules A, B, and C, respectively.
  • FIG. 8B it is assumed that the controlled device D belongs to the CPU module A, the controlled device F belongs to the CPU module B, and the controlled device E belongs to the CPU module C.
  • the common memory 166 since the common memory 166 is used, as shown in FIG. 9, the sensor detection result INd acquired from the controlled device D in the CPU module A is stored in the common memory 166a of its own CPU module A. At the same time, it is also stored in the common memories 166b and 166c of the other CPU modules B and C. Here, the self data is indicated by a solid line, and the replicated data is indicated by a broken line.
  • the sensor detection result INe acquired from the controlled device E in the CPU module C in the synchronized state is stored in the common memory 166c of its own CPU module C, and the common memory of the other CPU modules A and B. Also stored in 166a, 166b.
  • the application execution unit 188 of the CPU module B reads the sensor detection results INd and INe of the controlled devices D and E from the common memory 166b of the CPU module B, performs a predetermined calculation, and outputs a control command OUTf of the controlled device F. Generate. Then, the application execution unit 188 outputs a control command OUTf to the controlled device F belonging to its own CPU module B via the input / output module 126.
  • FIG. 10 is an explanatory diagram showing an application example of the common memory 166.
  • common memories 166a, 166b, and 166c are arranged in the CPU modules A, B, and C, respectively.
  • the controlled device D belongs to the CPU module A
  • the controlled device F belongs to the CPU module B
  • the controlled device E belongs to the CPU module C.
  • the CPU module B In the common memory 166 shown in FIG. 10, in addition to the sensor detection result INd acquired from the controlled device D in the CPU module A and the sensor detection result INe acquired from the controlled device E in the CPU module C, the CPU module B The control command OUTf output to the controlled device F is also stored. Therefore, the application execution unit 188 of the CPU module B reads the control command OUTf from the common memory 166b of the CPU module B, and directly controls the controlled device F belonging to the CPU module B via the input / output module 126. OUTf may be output.
  • a process of reading the sensor detection results INd and INe of the controlled devices D and E from the common memory 166b of the CPU module B, performing a predetermined calculation, and generating a control command OUTf of the controlled device F May be performed by any apparatus.
  • the processing load can be distributed.
  • FIG. 10 the example which CPU module A performs is given.
  • the data transmission unit 192 manages the data requested to be collected from the management apparatus 110 among the data generated by the application execution unit 188 executing the execution program at the data transmission timing shown in FIG. To device 110.
  • the CPU modules 122 are synchronized with each other, data having the same generation timing is collected in the management device 110.
  • the CPU modules 122 are synchronized with each other, and data can be shared among a plurality of CPU modules 122 via a broadband network. Therefore, it is possible to synchronize the application and information of the controlled device 130 between the control units, improve portability of the controlled device 130 and the like, and improve the control accuracy and stability of the entire control system 100.
  • control system 100 for example, in a system that simultaneously controls a plurality of electric motors at a high speed, such as a steel plant or a paper pulp manufacturing plant such as a rolling system, the electric motors can be synchronized with higher accuracy. As a result, product quality and yield are improved.
  • a program that causes the computer to function as a control system 100, a master programmable controller, a slave programmable controller, and a computer-readable storage medium such as a flexible disk, a magneto-optical disk, a ROM, a CD, a DVD, or a BD that records the program.
  • the program refers to data processing means described in an arbitrary language or description method.
  • each step of the control method of the present specification does not necessarily have to be processed in time series in the order described in the flowchart, and may include processing in parallel or by a subroutine.
  • the present invention can be used in a control system, a master programmable controller, a slave programmable controller, and a control method in which a plurality of programmable controllers that respectively control controlled devices are connected to be communicable with each other.

Landscapes

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

Abstract

 被制御機器(130)と、プログラマブルコントローラ(120)とを組み合わせた制御ユニットを複数用いて制御する制御方法では、プログラマブルコントローラ同士が通信を確立し、コモンメモリを用いてデータを共有している。また、マスタープログラマブルコントローラは、伝送遅延時間リクエストフレームに対する応答である受信完了フレームを受信すると、伝送遅延時間リクエストフレームを送信したときの時刻と受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、伝送遅延時間を含む伝送遅延時間通知フレームをスレーブプログラマブルコントローラに送信し、スレーブプログラマブルコントローラは、伝送遅延時間通知フレームを受信すると、伝送遅延時間通知フレームに含まれる伝送遅延時間を取得し、伝送遅延時間に基づいて、スレーブプログラマブルコントローラをマスタープログラマブルコントローラに同期させる。

Description

制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法
 本発明は、それぞれ被制御機器を制御する複数のプログラマブルコントローラが互いに通信可能に接続された制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法に関する。
 大規模な制御システムでは、システムの構築やメンテナンスの容易性の観点からコントローラの階層構造がとられ、階層間はネットワークにより接続される。例えば、制御システムでは、1の管理装置に対して複数のプログラマブルコントローラがネットワークを介して接続され、それぞれのプログラマブルコントローラに1または複数の被制御機器が接続される。そして、プログラマブルコントローラは、上位の管理装置から制御指令を受けて、その制御指令を解析し、下位の被制御機器を制御する。
 このような制御システムでは、プログラマブルコントローラが管理装置から制御指令を受けると、後は、プログラマブルコントローラと被制御機器とのクローズした範囲で制御処理が進行する。そして、プログラマブルコントローラは、その制御結果のみを管理装置に送信する。したがって、管理装置では、プログラマブルコントローラ内部における個々のタイミングで制御結果を収集することとなる。
 また、同一の管理装置下にあるプログラマブルコントローラ同士で通信を確立し、制御結果を送受信することもできる。例えば、プログラマブルコントローラ間で制御データを送受信するスケジューリングを行い、そのスケジューリングに従ってプログラマブルコントローラ間に設けられたスイッチを切り替える技術が知られている(例えば、特許文献1)。
特開2012-108696号公報
 上述した技術を用いることで、管理装置のみならず、プログラマブルコントローラ同士も情報を交換することができる。しかし、制御システムにおける複数のプログラマブルコントローラは、管理装置の制御指令に従い、それぞれ独立したタイミングで動作するため、プログラマブルコントローラと被制御機器との間は同期がとれているが、プログラマブルコントローラ間では同期がとれていない状態となる。
 例えば、管理装置が複数のプログラマブルコントローラから情報を収集する場合、情報が生成されるタイミングがプログラマブルコントローラ毎に異なるため、情報の前後関係が明確ではなく、厳密な制御が困難であった。
 また、複数のプログラマブルコントローラ同士では、他のプログラマブルコントローラの情報と自己の情報とのいずれが先に生成されたか、また、生成タイミングがどの程度異なるのか明確ではなく、他のプログラマブルコントローラの情報を安易に利用できなかった。
 さらに、被制御機器の配置変更によって、被制御機器を他のプログラマブルコントローラに移植すると、アクセス先のアドレスや制御指令の内容等を変更しなければならなかった。また、被制御機器に関する情報が配置変更前と同一のタイミングで生成されるとは限らないので、どのプログラマブルコントローラに接続されており、どの程度の遅れが生じるのかを意識して設計しなければならなかった。さらに、その設計変更によって不具合が生じないことを再度確認する必要があった。
 したがって、実質的に機能が等しい制御システムであっても、エンドユーザにおける被制御機器の配置や運用上の要望によっては、構築したアプリケーションを汎用的に利用することができず、被制御機器の移植に対する個々の対応を余儀なくされていた。
 そこで、本発明は、このような課題に鑑み、移植性を高め、制御精度や安定性の向上を図ることが可能な制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法を提供することを目的としている。
 上記課題を解決するために、被制御機器と、プログラムに基づいて被制御機器を制御するプログラマブルコントローラとを組み合わせた制御ユニットを複数備えた本発明の制御システムでは、プログラマブルコントローラは、他のプログラマブルコントローラおよび被制御機器と通信を確立する通信部と、通信部を介して他のプログラマブルコントローラとデータを共有するためのコモンメモリと、をそれぞれ備え、プログラマブルコントローラには、マスターとして機能するマスタープログラマブルコントローラと、スレーブとして機能するスレーブプログラマブルコントローラとが存在し、マスタープログラマブルコントローラは、さらに、マスタープログラマブルコントローラとスレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、スレーブプログラマブルコントローラに送信し、伝送遅延時間リクエストフレームに対する応答である受信完了フレームを受信すると、伝送遅延時間リクエストフレームを送信したときの時刻と受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、伝送遅延時間を含む伝送遅延時間通知フレームをスレーブプログラマブルコントローラに送信する遅延時間計測部を備え、スレーブプログラマブルコントローラは、さらに、伝送遅延時間リクエストフレームを受信すると、受信完了フレームをマスタープログラマブルコントローラに送信し、伝送遅延時間通知フレームを受信すると、伝送遅延時間通知フレームに含まれる伝送遅延時間を取得する遅延時間受信部と、伝送遅延時間に基づいて、スレーブプログラマブルコントローラをマスタープログラマブルコントローラに同期させる同期補正部と、を備えることを特徴とする。
 また、上記課題を解決するために、プログラムに基づいて被制御機器を制御し、マスターとして機能する本発明のマスタープログラマブルコントローラは、スレーブとして機能するスレーブプログラマブルコントローラおよび被制御機器と通信を確立する通信部と、通信部を介してスレーブプログラマブルコントローラとデータを共有するためのコモンメモリと、マスタープログラマブルコントローラとスレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、スレーブプログラマブルコントローラに送信し、伝送遅延時間リクエストフレームに対する応答である受信完了フレームを受信すると、伝送遅延時間リクエストフレームを送信したときの時刻と受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、伝送遅延時間を含む伝送遅延時間通知フレームをスレーブプログラマブルコントローラに送信する遅延時間計測部と、を備えることを特徴とする。
 また、上記課題を解決するために、プログラムに基づいて被制御機器を制御し、スレーブとして機能する本発明のスレーブプログラマブルコントローラは、マスターとして機能するマスタープログラマブルコントローラを含む他のプログラマブルコントローラおよび被制御機器と通信を確立する通信部と、通信部を介して他のプログラマブルコントローラとデータを共有するためのコモンメモリと、マスタープログラマブルコントローラとスレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを受信すると、伝送遅延時間リクエストフレームに対する応答である受信完了フレームをマスタープログラマブルコントローラに送信し、伝送遅延時間を含む伝送遅延時間通知フレームを受信すると、伝送遅延時間通知フレームに含まれる伝送遅延時間を取得する遅延時間受信部と、伝送遅延時間に基づいて、スレーブプログラマブルコントローラをマスタープログラマブルコントローラに同期させる同期補正部と、を備えることを特徴とする。
 また、上記課題を解決するために、被制御機器と、プログラムに基づいて被制御機器を制御するプログラマブルコントローラとを組み合わせた制御ユニットを複数用いて制御する本発明の制御方法では、プログラマブルコントローラは、他のプログラマブルコントローラおよび被制御機器と通信を確立し、通信部を介して他のプログラマブルコントローラとコモンメモリを用いてデータを共有し、プログラマブルコントローラのうち、マスターとして機能するマスタープログラマブルコントローラは、マスタープログラマブルコントローラと、スレーブとして機能するスレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、スレーブプログラマブルコントローラに送信し、スレーブプログラマブルコントローラは、伝送遅延時間リクエストフレームを受信すると、伝送遅延時間リクエストフレームに対する応答である受信完了フレームをマスタープログラマブルコントローラに送信し、マスタープログラマブルコントローラは、受信完了フレームを受信すると、伝送遅延時間リクエストフレームを送信したときの時刻と受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、伝送遅延時間を含む伝送遅延時間通知フレームをスレーブプログラマブルコントローラに送信し、スレーブプログラマブルコントローラは、伝送遅延時間通知フレームを受信すると、伝送遅延時間通知フレームに含まれる伝送遅延時間を取得し、伝送遅延時間に基づいて、スレーブプログラマブルコントローラをマスタープログラマブルコントローラに同期させることを特徴とする。
 本発明によれば、制御システムの移植性を高め、制御精度や安定性の向上を図ることが可能となる。
制御システムを構成する各装置の概略的な関係を示した説明図である。 制御システムの概略的な構成を示した説明図である。 CPUモジュールのハードウェア構成の一例を示す図である。 CPUモジュールの各機能部を説明するための機能ブロック図である。 同期補正処理例を説明するためのタイムチャート図である。 同期補正処理の概略的なシーケンス例を示す図である。 CPUモジュールにおけるデータの送受信を説明するためのタイムチャート図である。 被制御機器の配置変更について説明するための説明図である。 コモンメモリ内のメモリマップを示した説明図である。 コモンメモリの応用例を示した説明図である。
 以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値などは、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
 大規模なプラント等に適用される制御システムでは、そのシステム全体の処理の複雑さや物理的配置の関係により、複数の制御ユニット(コンフィグレーションともいう)による制御アプリケーションの分割制御が行われる。ここで、制御ユニットは、主として、プログラマブルコントローラ、および、プログラマブルコントローラに制御される被制御機器との組み合わせを示す。制御システムでは、このような制御ユニットが複数準備され、当該制御システム全体の制御を担う管理装置に接続される。以下、制御システムを構成する各装置を説明する。
(制御システム100)
 図1は、制御システム100を構成する各装置の概略的な関係を示した説明図であり、図2は、制御システム100の概略的な構成を示した説明図である。制御システム100は、管理装置110と、複数のプログラマブルコントローラ120と、複数の被制御機器130とを含んで構成される。また、管理装置110と複数のプログラマブルコントローラ120とは、コントローラレベルのネットワークとして、例えば、ギガ(G)ベース等のEthernet(登録商標)によるネットワーク配線140によって互いに接続される。さらに、複数のプログラマブルコントローラ120と複数の被制御機器130とは、それぞれ、デバイスレベルのネットワークとして、例えば、専用の接続配線142を通じて通信可能に接続されている。
 管理装置110は、制御システム100全体がアプリケーションに定められた工程の流れに沿って動作するように、複数のプログラマブルコントローラ120を一括して制御する。例えば、管理装置110は、個々のプログラマブルコントローラ120からステータス情報や制御結果を収集したり、その収集した内容に応じて、個々のプログラマブルコントローラ120に各種制御指令を出力したりする。
 プログラマブルコントローラ120は、PLC(Programmable Logic Controller)とも呼ばれ、図2に示すように、CPUモジュール122、通信モジュール124、入出力(I/O)モジュール126、電源モジュール128等の複数のモジュールを含んで構成される。
 ここで、CPUモジュール122は、アプリケーションを実現するために、それぞれの制御ユニット用に分割された実行プログラムを管理装置110からダウンロードし、その実行プログラムを遂行したり、制御ユニットの動作状況を不図示のモニタに表示したりする。その際、管理装置110から受信した制御指令、入出力モジュール126を通じて入力された被制御機器130のセンサ検出結果、および、他のプログラマブルコントローラ120が有する情報等に基づいて被制御機器130を制御する。また、CPUモジュール122は、自己の状態を示すステータス情報、センサの検出結果、制御結果等のデータを管理装置110に送信する。
 通信モジュール124は、コントローラレベルのネットワークとしての、例えば、ギガ(G)ベース等のEthernet(登録商標)を通じて、管理装置110、他のプログラマブルコントローラ120、および、他のモジュールに接続され、それぞれと通信を確立することができる。ただし、各モジュール間は、ベースボードに設けられたバスによってデータを交換するとしてもよい。本実施形態において、通信モジュール124は、CPUモジュール122と一体的に形成されている。
 入出力モジュール126は、被制御機器130に対して入出力の管理を行う。例えば、被制御機器130がセンサであれば、センサ検出結果を収集し、電動機であれば、ディスクリートで表される制御指令を送信するとともに、その制御結果を収集する。電源モジュール128は、CPUモジュール122、通信モジュール124、入出力モジュール126等の各モジュールに電力を供給する。
 図1に戻って、被制御機器130は、FA(Factory Automation)における様々な状態を検知するセンサ、そのセンサの検知結果に応じて動作する電動機、エンコーダ等の電気機器で構成される。
 このような制御システム100は、様々な制御対象に適用できる。例えば、生産実行システム(MES:Manufacturing Execution System)に制御システム100を適用した場合、被制御機器130としての、センタシーラユニット(Center Sealer Unit)やフィルムユニット(Film Unit)、圧延ユニット等の生産機器にプログラマブルコントローラ120を接続する。
 例えば、プログラマブルコントローラ120は、入出力モジュール126等から生産機器の動作状態を読み出し、モータドライバ等を通じて生産機器内の電動機を回転制御する。管理装置110は、各プログラマブルコントローラ120単位の情報の収集および制御指令の送信を実行する。こうして、制御システム100全体として、工程管理、品質管理、製造量管理等の生産支援管理を総合的に行うことが可能となる。以下、プログラマブルコントローラ120の特にCPUモジュール122について詳述する。
(CPUモジュール122)
 図3は、CPUモジュール122のハードウェア構成の一例を示す図である。図3に示すCPUモジュール122は、入力部150と、出力部152と、通信部154と、ロジック回路156と、基準信号生成部158と、CPU160と、ROM162と、RAM164と、コモンメモリ166とを含んで構成される。このうち、入力部150と、出力部152と、ロジック回路156と、CPU160と、ROM162と、RAM164と、コモンメモリ166とは、共通バス168によりデータ移動が可能となるように接続されている。
 入力部150は、キーボードや、マウス、タッチパネル等のポインティングデバイス、音声入力デバイス等で構成され、例えば、ユーザによるプログラムの実行等、各種操作を受け付ける。
 出力部152は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等で構成され、本実施形態における処理を行うCPUモジュール122を操作するのに必要な各種ウィンドウ、データ、制御プログラムの進行状況や制御結果等を表示する。
 通信部154は、上述した通信モジュール124として機能し、Ethernet(登録商標)を通じて管理装置110、他のプログラマブルコントローラ120、入出力モジュール126との通信を確立する。本実施形態において通信部154はCPU160に内蔵されている。
 ロジック回路156は、CPLD(Complex Programmable Logic Device)やFPGA(Field-Programmable Gate Array)等の論理回路を書き換え可能な集積回路で構成され、CPU160を補助する様々な論理回路が組み込まれる。
 基準信号生成部158は、ハードウェア的なカウンタで構成され、計数を行い、予め設定された基準値に計数値が達することでCPU160に対して基準信号を生成する。かかる計数値は、基準値に基づいて周期的にカウントされている。ここで、基準値は、各CPUモジュール122それぞれに予め設定されており、管理装置110や入力部150から変更することができる。また、ここでは、基準信号生成部158をCPU160と別体で表しているが、CPU160に内蔵されたタイマカウンタを用いて、基準信号生成部158を実現してもよい。ここで、「内蔵された」とは、例えば基準信号生成部158に対して、CPU160で用いられる各機能部のみがアクセスできることを意味する。
 CPU160は、OS(Operating System)等の基本プログラムおよび実行プログラムに基づいて、各種演算やデータの入出力等、CPUモジュール122全体の処理を制御する。また、CPU160は、ROM162に格納された実行プログラムを遂行し、ワークエリアとしてのRAM164を利用することで、遅延時間計測部180、同期化フレーム送信部182、遅延時間受信部184、同期補正部186、アプリケーション実行部188、データ更新部190、データ送信部192といった機能部として機能する。また、CPU160は、通信部154を内蔵し、割込処理に基づいて管理装置110、他のプログラマブルコントローラ120、および、入出力モジュール126と通信を行う。
 ROM162は、上述した基本プログラムや実行プログラムを格納する。また、補助記憶装置として、ハードディスク等のストレージ手段を有していてもよい。RAM164は、基本プログラムや実行プログラムの一部や、実行プログラムを遂行することにより生じるデータ(例えば、ステータス情報、センサの検出結果、制御結果等)を一時的に格納する。コモンメモリ166は、他のCPUモジュール122と情報を共有するための記憶領域であり、RAM164の一部として形成されていてもよい。
(CPUモジュール122の各機能部)
 図4は、CPUモジュール122の各機能部を説明するための機能ブロック図である。上述したようにCPU160は、遅延時間計測部180、同期化フレーム送信部182、遅延時間受信部184、同期補正部186、アプリケーション実行部188、データ更新部190、データ送信部192としても機能する。また、これらの各機能部は、プログラマブルコントローラ120がマスターとして動作するか(マスタープログラマブルコントローラ)、あるいは、スレーブとして動作するか(スレーブプログラマブルコントローラ)に応じて機能する場合と機能しない場合がある。ここでは、マスタープログラマブルコントローラにおけるCPUモジュール122をマスターCPUモジュール122aとし、スレーブプログラマブルコントローラにおけるCPUモジュール122をスレーブCPUモジュール122bとする。また、図4中、マスターであるかスレーブであるかによって機能しない機能部については破線で示している。
 なお、本実施形態は、上記の構成に限定されるものではなく、1つのCPUモジュール122がマスターCPUモジュール122aにもスレーブCPUモジュール122bにもなり得るように同一の構成を有している。
 遅延時間計測部180は、CPUモジュール122がマスターCPUモジュール122aとして機能する場合に、マスターCPUモジュール122aとスレーブCPUモジュール122bとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、任意のスレーブCPUモジュール122bに送信する。この伝送遅延時間リクエストフレームは、後述の同期化フレームとフォーマットが実質的に等しく、同期化フレーム内の所定部分(例えば、コマンド部)のデータが異なるフレームである。かかる伝送遅延時間リクエストフレームは、マスターCPUモジュール122a内の基準信号生成部158によって生成された基準信号に同期して送信される。
 また、遅延時間計測部180は、伝送遅延時間リクエストフレームを送信後、任意のスレーブCPUモジュール122bから受信完了フレームを受信すると、受信完了フレームを受信したときの時刻を取得する。そして、遅延時間計測部180は、伝送遅延時間リクエストフレームを送信したときの時刻と受信完了フレームを受信したときの時刻との差分から、マスターCPUモジュール122aと任意のスレーブCPUモジュール122b間の往復伝送遅延時間を計算する。そして、遅延時間計測部180は、計算した往復伝送遅延時間を2で除算し、その結果である伝送遅延時間を含む伝送遅延時間通知フレームを次の基準信号に同期させて任意のスレーブCPUモジュール122bに送信する。こうして、任意のスレーブCPUモジュール122bに、ネットワーク配線140による伝送遅延時間を通知することができる。
 同期化フレーム送信部182は、CPUモジュール122がマスターCPUモジュール122aとして機能する場合に、基準信号に同期して、予め用意された同期化フレームを複数のスレーブCPUモジュール122bに送信する。かかる同期化フレームは、スレーブCPUモジュール122bの基準信号生成部158の計数値をマスターCPUモジュール122aの基準信号生成部158の計数値に合わせるための信号である。
 遅延時間受信部184は、CPUモジュール122がスレーブCPUモジュール122bとして機能する場合に、マスターCPUモジュール122aから伝送遅延時間リクエストフレームを受信し、その伝送遅延時間リクエストフレームに応じて、受信完了フレームをマスターCPUモジュール122aに送信する。また、遅延時間受信部184は、マスターCPUモジュール122aから伝送遅延時間通知フレームを受信すると、そのフレームに含まれる伝送遅延時間をRAM164等に退避する。このようにして、スレーブCPUモジュール122bは、マスターCPUモジュール122aとスレーブCPUモジュール122b間の伝送遅延時間を得ることができる。
 同期補正部186は、CPUモジュール122がスレーブCPUモジュール122bとして機能する場合に、スレーブCPUモジュール122b内の基準信号生成部158によって生成された基準信号を伝送遅延時間分進める。具体的に、同期補正部186は、マスターCPUモジュール122aから同期化フレームを受信すると、基準信号生成部158から計数値を取得し、伝送遅延時間に相当する値(基準信号生成部158の時間換算値)と、取得した計数値との差分である補正量を算出し、基準値から補正量を減算して補正基準値を導出し、その補正基準値を新たな基準値として一時的に基準信号生成部158に設定する。したがって、補正基準値は、基準値-(伝送遅延時間に相当する値-基準信号生成部158の計数値)で表される。
 そして、補正基準値を設定し、基準信号生成部158において、その補正基準値での計数が完了すると、同期補正部186は、速やかに、元の基準値を、基準信号生成部158に設定する。こうして、一時的に基準値を伝送遅延時間分だけ進めることができる。ここでは、伝送遅延時間分の補正を一度に実行する例を挙げているが、かかる場合に限らず、複数回に分けて実行してもよい。なお、本実施形態において、同期補正部186が、マスターCPUモジュール122aから伝送遅延時間を得ることなく同期化フレームを受信した場合でも、伝送遅延時間をゼロ(0)として上記の補正処理を行えばよい。
 こうして、本実施形態では、マスターCPUモジュール122aの基準信号生成部158とスレーブCPUモジュール122bの基準信号生成部158とを高精度に同期させることができる。なお、このような同期補正処理は、連続的に行ってもよいし、所定の時間毎に間欠的に行ってもよい。
 アプリケーション実行部188は、マスターCPUモジュール122aおよびスレーブCPUモジュール122bのいずれにおいても、基準信号生成部158で生成された基準信号に応じて(基準信号を割込信号として受けて)、実行プログラムを実行し、入出力モジュール126を通じて被制御機器130を制御する。したがって、当該実行プログラムは、基準信号に応じて周期的に実行されることとなる。
 データ更新部190は、マスターCPUモジュール122aおよびスレーブCPUモジュール122bのいずれにおいても、データ(例えば、ステータス情報、センサの検出結果、制御結果等)が生成されると、生成されたデータで、自己のCPUモジュール122内のコモンメモリ166の内容を更新する。また、データ更新部190は、他のCPUモジュール122にそのデータを転送する。また、データ更新部190は、他のCPUモジュール122からデータが転送されると、かかるデータに基づいて自己のCPUモジュール122内のコモンメモリ166の内容を更新する。こうして、他のCPUモジュール122とデータを共有化できる。また、データ更新部190がデータを他のCPUモジュール122に送信する送信タイミングは、基準信号生成部158に基づいてCPUモジュール122毎に予め定められている。かかる送信タイミングについては、後程詳述する。
 データ送信部192は、マスターCPUモジュール122aおよびスレーブCPUモジュール122bのいずれにおいても、アプリケーション実行部188が実行プログラムを遂行することで生成されたデータのうち、管理装置110に収集要求されているデータを、管理装置110に送信する。かかる送信タイミングは、データ更新部190の送信タイミングに倣う。本実施形態では、CPUモジュール122同士が同期しているので、管理装置110に、生成タイミングの等しいデータが収集される。
 以下、制御システム100の具体的な制御方法について、同期補正処理とデータの共有化処理とに分けて説明する。
(同期補正処理)
 図5は、同期補正処理例を説明するためのタイムチャート図である。ここでは、仮に、スレーブCPUモジュール122bの基準信号が、マスターCPUモジュール122aの基準信号より10μsec遅れているとする。なお、基準値(処理周期)は、1000μsecとするが、これに限定されるものではなく、例えば管理装置110により適宜設定を変更することができる。また、図中、簡略のためμsecをμsと表現する。
 図5では、マスターCPUモジュール122aの基準信号生成部158が計数を行っている。その計数値が図5の(1)時点で基準値に達すると、マスターCPUモジュール122a内において基準信号を出力する。そして、アプリケーション実行部188は、当該基準信号に応じて実行プログラムを遂行する。図5中、ハッチングで示した三角形の領域は、計数値の推移を示し、時間の経過に従い計数値が増加し、計数目標(例えば基準値)に達するとリセットされる。
 また、マスターCPUモジュール122aと並行して、スレーブCPUモジュール122bの基準信号生成部158も計数を行っている。その計数値が図5の(2)時点で基準値に達すると基準信号を出力する。そして、アプリケーション実行部188は、当該基準信号に応じて実行プログラムを遂行する。このように、マスターCPUモジュール122aおよびスレーブCPUモジュール122bでは、それぞれ、独立した基準信号に応じて所定の処理が遂行されている。
 また、マスターCPUモジュール122aにおいて同期補正処理が開始されると、マスターCPUモジュール122aの遅延時間計測部180は、伝送遅延時間を算出するために伝送遅延時間リクエストフレームを送信する(図5の(3))。スレーブCPUモジュール122bの遅延時間受信部184は、マスターCPUモジュール122aから伝送遅延時間リクエストフレームを受信すると、その伝送遅延時間リクエストフレームに応じて受信完了フレームをマスターCPUモジュール122aに送信する(図5の(4))。
 続いて、マスターCPUモジュール122aの遅延時間計測部180は、受信完了フレームを受信すると、マスターCPUモジュール122aとスレーブCPUモジュール122b間の往復伝送遅延時間を計算する。そして、遅延時間計測部180は、計算した往復伝送遅延時間(400μsec)を2で除算した伝送遅延時間(200μsec)を含む伝送遅延時間通知フレームをスレーブCPUモジュール122bに送信する(図5の(5))。スレーブCPUモジュール122bの遅延時間受信部184は、伝送遅延時間通知フレームを受信すると、そのフレームに含まれる往復伝送遅延時間(相当値)をRAM164等に退避する(図5の(6))。
 同期補正処理が開始後、マスターCPUモジュール122aの同期化フレーム送信部182は、同期化フレームを割り込み信号としてスレーブCPUモジュール122bに送信する(図5の(7))。そして、スレーブCPUモジュール122bは、ネットワーク配線140の片道の伝送遅延時間(200μs)を経て図5の(8)の時点で同期化フレームを受信すると、同期補正部186は、基準信号生成部158から計数値(190μsecに相当)を取得する(図5の(9))。そして、同期補正部186は、伝送遅延時間(200μsec)と、基準値(1000μsec)を用いて、基準値-(伝送遅延時間に相当する値-基準信号生成部158の計数値)=1000-(200-190)から補正基準値990μsecを得る。そして、同期補正部186は、その補正基準値を新たな基準値として一時的に基準信号生成部158に設定する(図5の(10))。
 その後、基準信号生成部158は、図5の(11)の時点で計数値が一時的な補正基準値990μsに達したため、リスタートしている。こうして、スレーブCPUモジュール122bの基準信号が、マスターCPUモジュール122aの基準信号と同期する。
 図6は、同期補正処理の概略的なシーケンス例を示す図である。図6の例では、説明の便宜上、マスターCPUモジュール122aとスレーブCPUモジュール122bとを用いた同期について説明するが、本実施形態においてはこれに限定されるものではなく、1つのマスターCPUモジュール122aに対して複数のスレーブCPUモジュール122bを同期させることができる。
 図6の同期補正処理において、まず、マスターCPUモジュール122aの基準信号生成部158は基準信号を生成し(S11)、スレーブCPUモジュール122bの基準信号生成部158は、マスターCPUモジュール122aと独立して基準信号を生成する(S12)。また、この処理は、周期的に行われる。
 マスターCPUモジュール122aの同期補正処理が開始されると、マスターCPUモジュール122aの遅延時間計測部180は、伝送遅延時間を算出するために伝送遅延時間リクエストフレームをスレーブCPUモジュール122bに送信する(S13)。スレーブCPUモジュール122bの遅延時間受信部184は、伝送遅延時間リクエストフレームを受信すると、マスターCPUモジュール122aに受信完了フレームを送信する(S14)。
 マスターCPUモジュール122aの遅延時間計測部180は、受信完了フレームを受信すると、例えば伝送遅延時間を算出し(S15)、算出した伝送遅延時間等を含む伝送遅延時間通知フレームを生成する(S16)。そして、遅延時間計測部180は、生成した伝送遅延時間通知フレームを、ネットワーク配線140を介してスレーブCPUモジュール122bに送信する(S17)。スレーブCPUモジュール122bの遅延時間受信部184は、伝送遅延時間通知フレームを受信すると、その伝送遅延時間通知フレームに含まれる伝送遅延時間(換算値)をRAM164等に退避する(S18)。
 そして、マスターCPUモジュール122aの同期化フレーム送信部182は、基準信号に同期させて、同期化フレームを割り込み信号としてスレーブCPUモジュール122bに送信する(S19)。
 スレーブCPUモジュール122bが同期化フレームを受信すると、同期補正部186は、基準信号生成部158から計数値を取得する(S20)。そして、同期補正部186は、伝送遅延時間と基準値を用いて、基準値-(伝送遅延時間に相当する値-基準信号生成部158の計数値)を計算し補正基準値を得る(S21)。そして、その補正基準値を新たな基準値として一時的に基準信号生成部158に設定する(S22)。また、補正基準値を設定し、その補正基準値での計数が完了すると、同期補正部186は、速やかに、元の基準値を基準信号生成部158に設定する(S23)。
 このような同期補正処理を、制御システム100に含まれる全てのスレーブCPUモジュール122bに対して実行する。こうして、スレーブCPUモジュール122bの基準信号は、マスターCPUモジュール122aの基準信号に同期する。すなわち、各CPUモジュール122上で動作する実行プログラム(アプリケーション)を同期させることができる。
(データの共有化処理)
 上述した構成により、制御システム100に含まれる全てのCPUモジュール122が同期することとなる。また、上述したように、CPUモジュール122同士は帯域の広いギガ(G)ベース等のEthernet(登録商標)で接続されているため、情報の交換に時間を要さない。ここでは、このようにCPUモジュール122が同期されていることを前提に、広帯域のネットワークを介して、複数のCPUモジュール122間でデータの共有化を図る。
 図7は、CPUモジュール122におけるデータの送受信を説明するためのタイムチャート図である。図7においては、複数のCPUモジュール122として3つのCPUモジュール(図7中、CPUモジュールA、CPUモジュールB、CPUモジュールC)を挙げる。ここでは、既に同期補正処理が完了し、3つのCPUモジュールA、B、Cは同期している。ただし、CPUモジュールの数が3つに限られないのは言うまでもない。
 例えば、CPUモジュールAに着目すると、アプリケーション実行部188は、基準信号に同期して周期的に動作する。具体的に、基準信号生成部158が基準信号を生成したタイミング、すなわち、基準信号生成部158の計数値が0にリセットされたタイミングで、実行プログラムを遂行開始し、被制御機器130のデータ(センサの検出結果、制御結果等)をラッチ(保持)させる。ただし、ここでは、計数値が0のときに実行プログラムを開始しているが、実行プログラムに先立つ管理機能処理のオーバーヘッドを考慮し、所定の時間後に処理を起動させてもよい。
 そして、アプリケーション実行部188は、ラッチしたデータを、入出力モジュール126を介して入力し、実行プログラムに基づいて所定の演算を行う。そして、その演算した制御結果を加えたデータ(ステータス情報、センサの検出結果、制御結果等)で、CPUモジュールA内のコモンメモリ166を更新する。所定の演算が終了すると、次の基準信号まで、プログラマブルコントローラ120の異常監視やシステム制御処理等が実行される。
 また、データ更新部190は、次の基準信号が生じると、基準信号生成部158の計数値を参照して、当該CPUモジュールAに対して予め割り当てられた送信タイミングを計る(ここでは0)。そして、送信タイミングが到来すると、データ更新部190は、コモンメモリ166に記憶されたデータを、他のCPUモジュールB、Cに送信し、CPUモジュールB、Cにおけるコモンメモリ166を更新させる。
 CPUモジュールA、B、Cでは、それぞれ異なる送信タイミングが割り当てられる。ここでは、データを送信完了するのに十分な時間を空けて、CPUモジュールAからCPUモジュールB、Cに、CPUモジュールBからCPUモジュールA、Cに、CPUモジュールCからCPUモジュールA、Bにといった順でデータが送信される。そして、1のCPUモジュールからデータが送信されると、他のCPUモジュールはそのデータを受信するとともに、それぞれのコモンメモリ166にそのデータを反映する。
 ここでは、各CPUモジュールA、B、Cでデータが生成される毎に、データ更新部190が他のCPUモジュールに反映させる例を挙げているが、制御システム100内でコモンメモリ166を同期させ、自己のコモンメモリ166のデータを更新しさえすれば、自動的に他のCPUモジュールのデータも更新される構成を採用してもよい。
 本実施形態では、データ更新部190が、各CPUモジュールA、B、Cにおける基準信号生成部158の計数値を参照して、各CPUモジュールA、B、Cに割り当てられた送信タイミングにデータを送信しているが、基準信号生成部158に限らず、基準信号に応じて計数を開始する別途のカウンタを用いることもできる。
 ところで、本実施形態におけるコモンメモリ166を用いたコモンメモリ方式では、各CPUモジュールA、B、Cそれぞれから送信されるデータを全てのCPUモジュールA、B、Cで受信し、他のCPUモジュールから受信したデータを自己のCPUモジュールに展開する。こうして、各CPUモジュールA、B、C内において、同一のメモリマップを用いて実行プログラムを実行することが可能となる。
 したがって、このようなコモンメモリ方式を採用し、さらに、他のCPUモジュールのデータも、デバイスレベルのネットワークで同期された状態で共有化することで、被制御機器130をいずれのCPUモジュールにも容易に移植することができる。
 例えば、被制御機器130の配置変更によって、自己が属するCPUモジュールが変更されたとしても、変更後のCPUモジュールにおいてコモンメモリ166の同一のメモリアドレスにデータを反映することで、変更前と同等の環境を形成することができる。以下、データ更新部190のコモンメモリ166へのアクセスについて詳述する。
 図8は、被制御機器130の配置変更について説明するための説明図である。図8においては、複数のCPUモジュール122として3つのCPUモジュール(図8中、CPUモジュールA、CPUモジュールB、CPUモジュールC)を挙げている。
 例えば、CPUモジュールBに着目すると、図8(a)に示すように、CPUモジュールBには、センサに相当する被制御機器D、Eと、電動機に相当する被制御機器Fとが接続されている。ここで、電動機に相当する被制御機器Fには、センサに相当する被制御機器D、Eの検出結果INd、INeに基づいて制御指令OUTfが送られるとする。
 図8(a)の例では、被制御機器D、E、Fが同一の制御ユニットに含まれ、全て、同一のCPUモジュールBに属しているので、その制御ユニット内で制御指令OUTfを生成すれば足りる。すなわち、CPUモジュールB内において、アプリケーション実行部188が、入出力モジュール126を介して被制御機器D、Eからセンサの検出結果INd、INeを取得し、その検出結果から制御指令OUTfを生成し、生成された制御指令OUTfを被制御機器Fに出力すればよい。
 ここで、被制御機器D、Eの配置変更が生じ、図8(b)のように、被制御機器Fはそのままで、被制御機器DがCPUモジュールAに属し、被制御機器EがCPUモジュールCに属すようになったとする。本実施形態では、こうした場合であっても、コモンメモリ166によってデータを共有化することで、CPUモジュールBは、被制御機器D、Eのデータをこれまで通りのタイミングで容易に参照することができる。
 図9は、コモンメモリ166内のメモリマップを示した説明図である。ここでは、CPUモジュールA、B、Cにそれぞれコモンメモリ166a、166b、166cが配されている。図8(b)に示したように、被制御機器DがCPUモジュールAに属し、被制御機器FがCPUモジュールBに属し、被制御機器EがCPUモジュールCに属す場合を想定する。
 本実施形態では、コモンメモリ166を用いているので、図9に示すように、CPUモジュールAにおいて被制御機器Dから取得したセンサの検出結果INdが、自己のCPUモジュールAのコモンメモリ166aに記憶されるとともに、他のCPUモジュールB、Cのコモンメモリ166b、166cにも記憶される。ここでは、自己のデータを実線で、複製されたデータを破線で示している。また、同期した状態で、CPUモジュールCにおいて被制御機器Eから取得したセンサの検出結果INeが、自己のCPUモジュールCのコモンメモリ166cに記憶されるとともに、他のCPUモジュールA、Bのコモンメモリ166a、166bにも記憶される。
 CPUモジュールBのアプリケーション実行部188は、CPUモジュールBのコモンメモリ166bから被制御機器D、Eのセンサ検出結果INd、INeを読み出し、所定の演算を行って、被制御機器Fの制御指令OUTfを生成する。そして、アプリケーション実行部188は、入出力モジュール126を介して、自己のCPUモジュールBに属す被制御機器Fに制御指令OUTfを出力する。
 ここでは、図8(a)から図8(b)のように被制御機器D、Eの配置が変更された場合であっても、CPUモジュールBにおけるセンサ検出結果INd、INeの読み出し先をコモンメモリ166bに変更するだけで、構築したアプリケーションの不要な改修を回避することが可能となる。
 図10は、コモンメモリ166の応用例を示した説明図である。ここでは、図9同様、CPUモジュールA、B、Cにそれぞれコモンメモリ166a、166b、166cが配されている。そして、被制御機器DがCPUモジュールAに属し、被制御機器FはCPUモジュールBに属し、被制御機器EがCPUモジュールCに属している。
 図10に示すコモンメモリ166では、CPUモジュールAにおいて被制御機器Dから取得したセンサの検出結果INd、および、CPUモジュールCにおいて被制御機器Eから取得したセンサの検出結果INeに加え、CPUモジュールBにおいて被制御機器Fに出力する制御指令OUTfも記憶されている。したがって、CPUモジュールBのアプリケーション実行部188は、CPUモジュールBのコモンメモリ166bから制御指令OUTfを読み出し、そのまま、入出力モジュール126を介して、自己のCPUモジュールBに属す被制御機器Fに制御指令OUTfを出力すればよい。
 また、かかる応用例では、CPUモジュールBのコモンメモリ166bから被制御機器D、Eのセンサ検出結果INd、INeを読み出し、所定の演算を行って、被制御機器Fの制御指令OUTfを生成する処理を、どの装置で行ってもよい。すなわち、CPUモジュールA、B、C、さらに他のCPUモジュール、または、管理装置110のいずれかで実行しさえすればよいので、処理負荷を分散することが可能となる。図10では、CPUモジュールAが実行する例を挙げている。
 このようにして実装されたアプリケーションは、その入出力としてコモンメモリ166の変数のみを取り扱うので、入出力モジュール126の実装位置がどのプログラマブルコントローラ120の配下となったとしてもアプリケーションそのものは修正する必要がない。
 また、データ送信部192は、アプリケーション実行部188が実行プログラムを遂行することで生成されたデータのうち、管理装置110に収集要求されているデータを、図7に示したデータの送信タイミングで管理装置110に送信する。本実施形態では、CPUモジュール122同士が同期しているので、管理装置110に、生成タイミングの等しいデータが収集される。
 したがって、情報が生成されるタイミングがプログラマブルコントローラ120毎に異なることがないので、情報の前後関係が明確となり、厳密な制御が可能となる。
 以上、説明したプログラマブルコントローラ120によると、CPUモジュール122同士が同期され、広帯域のネットワークを介して、複数のCPUモジュール122間でデータの共有化が図られる。したがって、制御ユニット間でアプリケーションや被制御機器130の情報を同期でき、被制御機器130等の移植性を高め、制御システム100全体の制御精度や安定性の向上を図ることが可能となる。
 当該制御システム100を採用することで、例えば、圧延システム等の鉄鋼プラントや紙パルプ製造プラント等、複数の電動機を同時に高速制御するようなシステムでは、より高い精度で電動機を同期することができ、ひいては製品品質や歩留まりが向上する。
 また、当該アプリケーションを設計する上でも、プログラマブルコントローラ120の位置や、被制御機器130の配置を考慮する必要がなくなるので、移植性および汎用性の高い実行プログラムを作成することが可能となる。
 また、コンピュータを、制御システム100、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラとして機能させるプログラムや当該プログラムを記録した、コンピュータで読み取り可能なフレキシブルディスク、光磁気ディスク、ROM、CD、DVD、BD等の記憶媒体も提供される。ここで、プログラムは、任意の言語や記述方法にて記述されたデータ処理手段をいう。
 以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
 なお、本明細書の制御方法の各工程は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。
 本発明は、それぞれ被制御機器を制御する複数のプログラマブルコントローラが互いに通信可能に接続された制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法に利用することができる。
100  …制御システム
110  …管理装置
120  …プログラマブルコントローラ
122  …CPUモジュール
122a  …マスターCPUモジュール
122b  …スレーブCPUモジュール
130  …被制御機器
154  …通信部
158  …基準信号生成部
160  …CPU
166  …コモンメモリ
180  …遅延時間計測部
182  …同期化フレーム送信部
184  …遅延時間受信部
186  …同期補正部
188  …アプリケーション実行部
190  …データ更新部
192  …データ送信部

Claims (17)

  1.  被制御機器と、プログラムに基づいて該被制御機器を制御するプログラマブルコントローラとを組み合わせた制御ユニットを複数備えた制御システムであって、
     前記プログラマブルコントローラは、
     他のプログラマブルコントローラおよび前記被制御機器と通信を確立する通信部と、
     前記通信部を介して他のプログラマブルコントローラとデータを共有するためのコモンメモリと、
    をそれぞれ備え、
     前記プログラマブルコントローラには、マスターとして機能するマスタープログラマブルコントローラと、スレーブとして機能するスレーブプログラマブルコントローラとが存在し、
     前記マスタープログラマブルコントローラは、さらに、
     前記マスタープログラマブルコントローラと前記スレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、該スレーブプログラマブルコントローラに送信し、該伝送遅延時間リクエストフレームに対する応答である受信完了フレームを受信すると、該伝送遅延時間リクエストフレームを送信したときの時刻と該受信完了フレームを受信したときの時刻との差分から該伝送遅延時間を計算し、該伝送遅延時間を含む伝送遅延時間通知フレームを該スレーブプログラマブルコントローラに送信する遅延時間計測部を備え、
     前記スレーブプログラマブルコントローラは、さらに、
     前記伝送遅延時間リクエストフレームを受信すると、前記受信完了フレームを前記マスタープログラマブルコントローラに送信し、前記伝送遅延時間通知フレームを受信すると、該伝送遅延時間通知フレームに含まれる前記伝送遅延時間を取得する遅延時間受信部と、
     前記伝送遅延時間に基づいて、前記スレーブプログラマブルコントローラを前記マスタープログラマブルコントローラに同期させる同期補正部と、
    を備えることを特徴とする制御システム。
  2.  前記プログラマブルコントローラは、
     前記プログラマブルコントローラ内で生成されたデータで自己のプログラマブルコントローラのコモンメモリを更新するとともに、他のプログラマブルコントローラのコモンメモリを更新するデータ更新部をさらに備えることを特徴とする請求項1に記載の制御システム。
  3.  前記プログラマブルコントローラを制御する管理装置をさらに含み、
     前記プログラマブルコントローラは、
     前記データを前記管理装置に送信するデータ送信部をさらに備えることを特徴とする請求項1または2に記載の制御システム。
  4.  前記データは、前記被制御機器での検出結果または制御結果であり、前記コモンメモリを通じて他のプログラマブルコントローラが参照可能であることを特徴とする請求項1から3のいずれか1項に記載の制御システム。
  5.  前記プログラマブルコントローラは、
     予め設定された基準値に計数値が達することで基準信号を生成する基準信号生成部と、
     前記基準信号に応じて実行プログラムを実行するアプリケーション実行部と、
    をさらに備え、
     前記同期補正部は、前記基準信号生成部の基準信号の生成タイミングを前記伝送遅延時間分だけ調整することで前記スレーブプログラマブルコントローラを前記マスタープログラマブルコントローラに同期させることを特徴とする請求項1から4のいずれか1項に記載の制御システム。
  6.  前記マスタープログラマブルコントローラは、前記スレーブプログラマブルコントローラに同期化フレームを送信する同期化フレーム送信部をさらに備え、
     前記同期補正部は、
     前記同期化フレームを受信したときの前記基準信号生成部の計数値を取得し、前記伝送遅延時間と該計数値との差分である補正量を算出し、前記基準値から該補正量を減算して補正基準値を導出し、該補正基準値を新たな基準値として一時的に該基準信号生成部に設定することを特徴とする請求項5に記載の制御システム。
  7.  前記基準値は、前記プログラマブルコントローラを制御する管理装置から設定できることを特徴とする請求項5または6に記載の制御システム。
  8.  前記スレーブプログラマブルコントローラは、該スレーブプログラマブルコントローラにおける演算を実行するCPUを含み、
     前記基準信号生成部は、前記CPUのみがアクセスできるカウンタであることを特徴とする請求項1から7のいずれか1項に記載の制御システム。
  9.  プログラムに基づいて被制御機器を制御し、マスターとして機能するマスタープログラマブルコントローラであって、
     スレーブとして機能するスレーブプログラマブルコントローラおよび前記被制御機器と通信を確立する通信部と、
     前記通信部を介して前記スレーブプログラマブルコントローラとデータを共有するためのコモンメモリと、
     前記マスタープログラマブルコントローラと前記スレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、前記スレーブプログラマブルコントローラに送信し、該伝送遅延時間リクエストフレームに対する応答である受信完了フレームを受信すると、該伝送遅延時間リクエストフレームを送信したときの時刻と該受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、該伝送遅延時間を含む伝送遅延時間通知フレームを該スレーブプログラマブルコントローラに送信する遅延時間計測部と、
    を備えることを特徴とするマスタープログラマブルコントローラ。
  10.  プログラムに基づいて被制御機器を制御し、スレーブとして機能するスレーブプログラマブルコントローラであって、
     マスターとして機能するマスタープログラマブルコントローラを含む他のプログラマブルコントローラおよび前記被制御機器と通信を確立する通信部と、
     前記通信部を介して他のプログラマブルコントローラとデータを共有するためのコモンメモリと、
     前記マスタープログラマブルコントローラと前記スレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを受信すると、該伝送遅延時間リクエストフレームに対する応答である受信完了フレームを前記マスタープログラマブルコントローラに送信し、該伝送遅延時間を含む伝送遅延時間通知フレームを受信すると、伝送遅延時間通知フレームに含まれる該伝送遅延時間を取得する遅延時間受信部と、
     前記伝送遅延時間に基づいて、前記スレーブプログラマブルコントローラを前記マスタープログラマブルコントローラに同期させる同期補正部と、
    を備えることを特徴とするスレーブプログラマブルコントローラ。
  11.  被制御機器と、プログラムに基づいて該被制御機器を制御するプログラマブルコントローラとを組み合わせた制御ユニットを複数用いて制御する制御方法であって、
     前記プログラマブルコントローラは、
     他のプログラマブルコントローラおよび前記被制御機器と通信を確立し、
     他のプログラマブルコントローラとコモンメモリを用いてデータを共有し、
     前記プログラマブルコントローラのうち、マスターとして機能するマスタープログラマブルコントローラは、
     前記マスタープログラマブルコントローラと、スレーブとして機能するスレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、該スレーブプログラマブルコントローラに送信し、
     前記スレーブプログラマブルコントローラは、
     前記伝送遅延時間リクエストフレームを受信すると、該伝送遅延時間リクエストフレームに対する応答である受信完了フレームを前記マスタープログラマブルコントローラに送信し、
     前記マスタープログラマブルコントローラは、
     前記受信完了フレームを受信すると、該伝送遅延時間リクエストフレームを送信したときの時刻と該受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、該伝送遅延時間を含む伝送遅延時間通知フレームを前記スレーブプログラマブルコントローラに送信し、
     前記スレーブプログラマブルコントローラは、
     前記伝送遅延時間通知フレームを受信すると、該伝送遅延時間通知フレームに含まれる前記伝送遅延時間を取得し、
     前記伝送遅延時間に基づいて、前記スレーブプログラマブルコントローラを前記マスタープログラマブルコントローラに同期させることを特徴とする制御方法。
  12.  前記プログラマブルコントローラは、
     前記プログラマブルコントローラ内で生成されたデータで自己のプログラマブルコントローラのコモンメモリを更新するとともに、他のプログラマブルコントローラのコモンメモリを更新することを特徴とする請求項11に記載の制御方法。
  13.  前記プログラマブルコントローラは、
     前記プログラマブルコントローラを制御する管理装置にデータを送信することを特徴とする請求項11または12に記載の制御方法。
  14.  前記データは、前記被制御機器での検出結果または制御結果であり、前記コモンメモリを通じて他のプログラマブルコントローラが参照可能であることを特徴とする請求項11から13のいずれか1項に記載の制御方法。
  15.  前記プログラマブルコントローラは、
     予め設定された基準値に計数値が達することで基準信号を生成し、
     前記基準信号に応じて実行プログラムを実行し、
     前記基準信号の生成タイミングを前記伝送遅延時間分だけ調整することで前記スレーブプログラマブルコントローラを前記マスタープログラマブルコントローラに同期させることを特徴とする請求項11から14のいずれか1項に記載の制御方法。
  16.  前記マスタープログラマブルコントローラは、前記スレーブプログラマブルコントローラに同期化フレームを送信し、
     前記スレーブプログラマブルコントローラでは、
     前記同期化フレームを受信したときの前記基準信号生成部の計数値を取得し、前記伝送遅延時間と該計数値との差分である補正量を算出し、前記基準値から該補正量を減算して補正基準値を導出し、該補正基準値を新たな基準値とすることを特徴とする請求項15に記載の制御方法。
  17.  前記基準値は、前記プログラマブルコントローラを制御する管理装置から設定できることを特徴とする請求項15または16に記載の制御方法。
PCT/JP2013/050121 2013-01-08 2013-01-08 制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法 WO2014108999A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020157011274A KR101726743B1 (ko) 2013-01-08 2013-01-08 제어 시스템, 마스터 프로그래머블 컨트롤러, 슬레이브 프로그래머블 컨트롤러 및 제어 방법
PCT/JP2013/050121 WO2014108999A1 (ja) 2013-01-08 2013-01-08 制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法
CN201380062822.6A CN104854523B (zh) 2013-01-08 2013-01-08 控制***、主可编程控制器、从可编程控制器以及控制方法
JP2014556241A JP5935903B2 (ja) 2013-01-08 2013-01-08 制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/050121 WO2014108999A1 (ja) 2013-01-08 2013-01-08 制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法

Publications (1)

Publication Number Publication Date
WO2014108999A1 true WO2014108999A1 (ja) 2014-07-17

Family

ID=51166676

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/050121 WO2014108999A1 (ja) 2013-01-08 2013-01-08 制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法

Country Status (4)

Country Link
JP (1) JP5935903B2 (ja)
KR (1) KR101726743B1 (ja)
CN (1) CN104854523B (ja)
WO (1) WO2014108999A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016110458A (ja) * 2014-12-08 2016-06-20 株式会社キーエンス プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム
CN110741322A (zh) * 2017-07-07 2020-01-31 欧姆龙株式会社 控制***以及控制方法
CN110771100A (zh) * 2017-07-07 2020-02-07 欧姆龙株式会社 控制***以及控制方法
CN112835321A (zh) * 2019-11-25 2021-05-25 富士电机株式会社 可编程控制器***和模块
JPWO2020026363A1 (ja) * 2018-07-31 2021-07-01 株式会社島津製作所 材料試験機
JP2022028059A (ja) * 2019-03-14 2022-02-14 オムロン株式会社 制御システム
CN116685914A (zh) * 2021-06-08 2023-09-01 三菱电机株式会社 可编程逻辑控制器、动态图像管理装置、动态图像管理***、动态图像管理方法以及程序

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108353368A (zh) * 2015-11-11 2018-07-31 华为技术有限公司 同步的方法与设备
KR102510900B1 (ko) * 2016-02-04 2023-03-15 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
JP7009751B2 (ja) * 2017-03-15 2022-01-26 オムロン株式会社 計測システム、制御装置、計測方法
CN112424717B (zh) * 2018-08-30 2024-04-16 株式会社安川电机 工业设备的数据采集***以及马达控制装置
JP7034399B1 (ja) * 2021-06-25 2022-03-11 三菱電機株式会社 入力ユニット、制御システム、通信方法及びプログラム
CN113630203B (zh) * 2021-07-22 2023-10-27 广州致远电子股份有限公司 一种多设备触发同步方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02179221A (ja) * 1988-12-28 1990-07-12 Meidensha Corp ループ状ディジタル保護継電装置のサンプリング同期システム
JPH04135210A (ja) * 1990-09-27 1992-05-08 Fanuc Ltd 同期信号発生装置
JP2001075932A (ja) * 1999-09-08 2001-03-23 Canon Inc ライン制御装置、ライン制御方法及びラインシステム
JP2007226492A (ja) * 2006-02-23 2007-09-06 Yaskawa Electric Corp モーションコントロールシステム
JP2009157913A (ja) * 2007-12-07 2009-07-16 Omron Corp 産業用コントローラ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4337543B2 (ja) * 2003-12-22 2009-09-30 三菱電機株式会社 通信状態監視装置
CN100595707C (zh) * 2008-08-29 2010-03-24 华中科技大学 一种数控机床双轴同步控制装置
JP5262674B2 (ja) * 2008-12-18 2013-08-14 富士通株式会社 遅延測定方法および通信装置
JP5411835B2 (ja) 2010-11-17 2014-02-12 株式会社日立製作所 プログラマブルコントローラ、および、通信制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02179221A (ja) * 1988-12-28 1990-07-12 Meidensha Corp ループ状ディジタル保護継電装置のサンプリング同期システム
JPH04135210A (ja) * 1990-09-27 1992-05-08 Fanuc Ltd 同期信号発生装置
JP2001075932A (ja) * 1999-09-08 2001-03-23 Canon Inc ライン制御装置、ライン制御方法及びラインシステム
JP2007226492A (ja) * 2006-02-23 2007-09-06 Yaskawa Electric Corp モーションコントロールシステム
JP2009157913A (ja) * 2007-12-07 2009-07-16 Omron Corp 産業用コントローラ

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016110458A (ja) * 2014-12-08 2016-06-20 株式会社キーエンス プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム
CN110741322B (zh) * 2017-07-07 2022-08-12 欧姆龙株式会社 控制***以及控制方法
CN110741322A (zh) * 2017-07-07 2020-01-31 欧姆龙株式会社 控制***以及控制方法
CN110771100A (zh) * 2017-07-07 2020-02-07 欧姆龙株式会社 控制***以及控制方法
JPWO2020026363A1 (ja) * 2018-07-31 2021-07-01 株式会社島津製作所 材料試験機
JP7021703B2 (ja) 2018-07-31 2022-02-17 株式会社島津製作所 材料試験機
JP7359199B2 (ja) 2019-03-14 2023-10-11 オムロン株式会社 制御システムにおいて実施される方法
JP2022028059A (ja) * 2019-03-14 2022-02-14 オムロン株式会社 制御システム
CN112835321A (zh) * 2019-11-25 2021-05-25 富士电机株式会社 可编程控制器***和模块
JP2021086211A (ja) * 2019-11-25 2021-06-03 富士電機株式会社 プログラマブルコントローラシステムおよびモジュール
JP7439474B2 (ja) 2019-11-25 2024-02-28 富士電機株式会社 プログラマブルコントローラシステムおよびモジュール
CN112835321B (zh) * 2019-11-25 2024-05-14 富士电机株式会社 可编程控制器***和模块
CN116685914A (zh) * 2021-06-08 2023-09-01 三菱电机株式会社 可编程逻辑控制器、动态图像管理装置、动态图像管理***、动态图像管理方法以及程序

Also Published As

Publication number Publication date
KR20150060972A (ko) 2015-06-03
KR101726743B1 (ko) 2017-04-13
JPWO2014108999A1 (ja) 2017-01-19
JP5935903B2 (ja) 2016-06-15
CN104854523A (zh) 2015-08-19
CN104854523B (zh) 2017-07-04

Similar Documents

Publication Publication Date Title
JP5935903B2 (ja) 制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法
EP3462257B1 (en) Control system and control device
EP3691192B1 (en) Control system and control device
US8315718B2 (en) Control systems and methods of providing the same
US11977362B2 (en) Control device and distributed control system
JP6465620B2 (ja) 制御システムおよび制御方法
JP2011193457A (ja) 時間同期を行うためのシステムおよび方法
JP2005293569A (ja) 同期コントローラ
US20220147022A1 (en) Control system
JP2011227902A (ja) 外部制御システムとフィールドバス装置を同期させるシステムおよび方法
EP3751364B1 (en) Process control device having modern architecture and legacy compatibility
JPWO2014091592A1 (ja) 信号同期システム、ノード同期システム、信号同期方法、及び、ノード同期方法
US9081371B2 (en) Method for synchronizing an operating clock with a time clock of an automation network
JP6301752B2 (ja) 情報サービス表示システムおよび時刻同期方法
JP2014106594A (ja) マイコン
US8375237B2 (en) Systems and methods for synchronization of an external control system with fieldbus devices
JP2011258125A (ja) プロセスデータ収集装置
CN210377133U (zh) 基于can总线的主从可配置plc控制器
Huang et al. Design of electronic shaft synchronization control system based on EtherCAT bus
JP2017062758A (ja) 制御システムおよび制御方法
RU2669073C1 (ru) Распределенная сетевая система управления
RU2688097C1 (ru) Способ функционирования территориально-распределенной системы управления
JP2015154261A (ja) マスタスレーブ相互間通信装置およびその通信方法
JP2023058938A (ja) 制御装置、制御システム、及び時刻同期方法
KR20210137819A (ko) 전력 시스템의 데이터 수집 장치

Legal Events

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

Ref document number: 13870719

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20157011274

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2014556241

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13870719

Country of ref document: EP

Kind code of ref document: A1