WO2019198456A1 - セーフティ制御システムおよびセーフティ制御システムにおける制御方法 - Google Patents
セーフティ制御システムおよびセーフティ制御システムにおける制御方法 Download PDFInfo
- Publication number
- WO2019198456A1 WO2019198456A1 PCT/JP2019/011876 JP2019011876W WO2019198456A1 WO 2019198456 A1 WO2019198456 A1 WO 2019198456A1 JP 2019011876 W JP2019011876 W JP 2019011876W WO 2019198456 A1 WO2019198456 A1 WO 2019198456A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- safety
- variable
- control unit
- safety control
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
- G05B19/0425—Safety, monitoring
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/048—Monitoring; Safety
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B9/00—Safety arrangements
- G05B9/02—Safety arrangements electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/14—Plc safety
- G05B2219/14012—Safety integrity level, safety integrated systems, SIL, SIS
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31103—Configure parameters of controlled devices
Definitions
- the present invention relates to a safety control system for realizing functional safety and a control method in the safety control system.
- Patent Document 1 discloses a safety controller that controls the operation of mechanical equipment by giving a safety output to a safety output control target based on an input from an input device.
- ICT Information and Communication Technology
- the present invention has an object to solve the above-described problems, and provides a safety control system that can ensure the security of an operation command given from an external device.
- the safety control system that realizes functional safety according to an example of the present disclosure includes an arithmetic processing unit that executes a safety program, and an access management unit that updates a variable held by receiving an access from an external device.
- the arithmetic processing unit starts executing the safety program when a specific variable is updated to a predetermined value by the access management unit.
- the access management unit receives a command for updating the variable by secure communication with the external device.
- the safety control system it is possible to instruct the safety control system to start executing the safety program from an operation terminal or the like placed at a remote location while maintaining the security. As a result, it is possible to achieve labor saving and wiring saving while maintaining security.
- the safety control system may include a standard control unit mainly responsible for standard control and a safety control unit primarily responsible for safety control.
- the arithmetic processing unit may be provided in the safety control unit, and the access management unit may be provided in the standard control unit.
- the system can be realized by integrating the standard control and the safety control without affecting each other.
- the update of the variable may be reflected between the standard control unit and the safety control unit via the local bus.
- data exchange between the standard control unit and the safety control unit can be realized via the local bus in which the security is maintained.
- the safety control system may further include an attribute setting receiving unit that receives setting of one or a plurality of attributes for variables managed by the safety control system.
- the one or more attributes may include a setting for enabling / disabling security.
- the access management unit may use secure communication for exchanging a command for updating the value of a variable for which secureness is effectively set.
- secure communication can be realized without the user being aware only by effectively setting the security.
- a control method in a safety control system for realizing functional safety includes a step of receiving a command for updating a variable value by secure communication with an external device, and a command from the external device. Receiving and holding a variable, and starting a safety program when a specific variable is updated to a predetermined value.
- the safety control system it is possible to instruct the safety control system to start executing the safety program from an operation terminal or the like placed at a remote location while maintaining the security. As a result, it is possible to achieve labor saving and wiring saving while maintaining security.
- FIG. 1 It is a schematic diagram which shows the hardware structural example of the communication coupler unit which comprises the control apparatus which concerns on this Embodiment. It is a sequence diagram which shows an example of the data transmission in the safety control system which concerns on this Embodiment.
- the user interface screen which defines the variable which can be utilized in the safety control unit which concerns on this Embodiment is shown.
- the user interface screen which defines the variable which can be utilized in the standard control unit which concerns on this Embodiment is shown.
- FIG. 1 is a schematic diagram illustrating a configuration example of a safety control system 1 according to the present embodiment.
- the safety control system 1 is a system for realizing functional safety.
- FIG. 1 shows a safety control system 1 centered on a control device 2 as an example.
- the control device 2 can execute standard control and safety control.
- standard control typically refers to a process for controlling a control target in accordance with a predetermined requirement specification.
- safety control is a general term for processing for preventing human safety from being threatened by some kind of equipment or machine due to some kind of trouble.
- Safety control realizes functional safety defined in IEC 61508, for example. More specifically, the safety control stops the control target not only when the behavior of the control target itself is different from the original but also when it is determined that some abnormality has occurred in the control device 2 itself. Such processing is included.
- the safety control system 1 includes a standard control unit 100 mainly responsible for standard control and a safety control unit 200 mainly responsible for safety control. A configuration example to be used is shown.
- control device 2 includes a standard control unit 100 and a safety control unit 200.
- the safety control unit 200 is connected to the standard control unit 100 via the local bus 10 as a kind of local unit.
- local unit is a generic term for any unit connected via the local bus 10.
- the control device 2 further includes one or more safety IO units 300.
- the safety IO unit 300 controls input of signals from the safety component and / or output of signals to the safety component.
- the “safety component” mainly includes an arbitrary device used for safety control, and includes, for example, a safety relay and various safety sensors.
- the safety control unit 200 exchanges safety IO data with one or a plurality of safety IO units 300 via the local bus 10.
- IO data includes input data acquired from a control target or a safety component and / or output data output to a control device or a safety component.
- safety input / output data used particularly for safety control is referred to as “safety IO data”.
- the control device 2 is further connected to the remote IO device 3 via the wiring LN1.
- the remote IO device 3 is arranged at a position different from the control device 2, exchanges signals with the control target and safety components, and sends IO data corresponding to the exchange of signals to and from the standard control unit 100. To exchange.
- the remote IO device 3 includes a communication coupler unit 400 and one or a plurality of safety IO units 300.
- the safety IO unit 300 is connected to the communication coupler unit 400 via a local bus (not shown) as a kind of local unit.
- control device 2 is also connected to the robot 500 including the safety component via the wiring LN2.
- the safety control unit 200 can establish one or a plurality of independent connections with other control units and / or the communication coupler unit 400. In each connection, safety IO data can be exchanged at predetermined intervals.
- the first connection 12 established between one or a plurality of safety IO units 300 connected via the local bus 10 of the control device 2
- the second connection 14 established between the control device 2 and the remote IO device 3 connected via the wiring LN1
- the robot 500 connected to the control device 2 via the wiring LN2.
- the third connection 16 established between the two.
- data transmission in accordance with a communication protocol unique to the manufacturer of the control device 2 may be used.
- a message frame called FSoE (Safety over EtherCAT) frame is inserted into the process data.
- data transmission according to a standardized communication protocol such as EtherCAT (registered trademark) may be used.
- EtherCAT registered trademark
- the exchange of safety IO data between connections can be realized by inserting an FSoE frame (message frame) into process data sequentially transferred according to EtherCAT.
- data transmission is performed in accordance with an industrial communication protocol.
- industrial communication protocols include EtherNet / IP, DeviceNet, CompoNet, and ControlNet.
- EtherNet / IP it is assumed that data transmission according to EtherNet / IP is adopted as a typical example.
- a communication protocol such as CIP (Common Industrial Protocol) or CIP Safety is implemented as an application layer.
- EtherNet / IP is an Ethernet (registered trademark) -based communication protocol.
- CIP Safety is a communication protocol based on CIP and corresponding to functional safety standards such as IEC 61508.
- the safety control unit 200 of the control device 2 holds a plurality of independent connections, and the safety IO data exchanged by each connection is stored. It is possible to realize either safety control that is independent for each connection and / or safety control that links a plurality of connections.
- control device 2 is connected to the wide area network 4 via the wiring LN3 and can communicate data with the remote control device 600 via the wide area network 4. It has become.
- the remote control device 600 corresponds to an operation terminal that accepts a remote operation on the control device 2.
- the remote control device 600 when the remote control device 600 receives a user operation, the content of the user operation is transmitted to the control device 2 via the wide area network 4. And in the control apparatus 2, safety control is started in response to the content of the transmitted user operation.
- FIG. 2 is a schematic diagram illustrating an example of a user interface screen 610 provided in the remote control device 600 of the safety control system 1 according to the present embodiment.
- user interface screen 610 includes a status display object 612 that indicates the execution status of safety control for each safety control unit 200 to be controlled. For example, when the user selects one display object 614 corresponding to the safety control whose execution is stopped from among the status display objects 612, the target safety is displayed together with a message 616 such as “Do you want to start safety control of plant A?”. A button object 618 for starting control is displayed.
- the safety control system 1 it is possible to maintain the security of any data including an operation command exchanged between the remote control device 600 and the control device 2.
- FIG. 3 is a schematic diagram for explaining data processing in the control device 2 according to the present embodiment.
- control device 2 includes a standard control unit 100 and a safety control unit 200. The two units are connected via a local bus 10 so that data communication is possible.
- the standard control unit 100 has an input / output data area 150 that can be accessed when the standard control program is executed.
- the input / output data area 150 stores one or more input data and one or more output data.
- the input data includes measurement values acquired from various sensors (which can include both general sensors and safety sensors), arbitrary values acquired from various devices, values input by the user, and the like.
- the output data includes a result calculated by executing the standard control program and / or the safety program 2064.
- the safety control unit 200 has an input / output data area 150 that can be accessed when the safety program 2064 is executed.
- the input / output data area 150 stores one or more input data and one or more output data updated via the standard control unit 100.
- Input / output data used in the safety control unit 200 is subjected to variable association and data update by the variable management unit 260.
- the variable management unit 260 is provided by a variable management program 2066 (see FIG. 5) executed by the safety control unit 200.
- the present invention is not limited to this, and the variable management unit 260 may be provided by the system program 2060 (see FIG. 5) and / or the system program 1060 (see FIG. 4) executed by the standard control unit 100.
- variables “Input01” and “Input02” corresponding to input data of the standard control unit 100 are associated with “StdInput01” and “StdInput02” of the safety control unit 200, respectively.
- variables “Output01” and “Output02” corresponding to output data of the standard control unit 100 are associated with “StdOutput01” and “StdOutput02” of the safety control unit 200, respectively.
- the standard control unit 100 has a function of accepting access from an external device such as the remote control device 600.
- the function of accepting access from such an external device is provided by the external public management unit 160.
- the external disclosure management unit 160 corresponds to an access management unit that updates a variable held in response to an access from an external device. In the following description, accepting access from an external device is also referred to as “external disclosure”.
- External disclosure by the external disclosure management unit 160 can be realized using an arbitrary protocol and architecture.
- a multi-layer architecture such as OPC UA (Unified Architecture) can be used.
- OPC UA Unified Architecture
- OPC UA is adopted as a typical example.
- arbitrary attributes can be assigned to various data (or arbitrary variables) that can be used in the standard control unit 100 and the safety control unit 200.
- attribute assignment is realized by the attribute management units 170 and 270.
- the attributes given by the attribute management units 170 and 270 can be arbitrarily determined, but in the present embodiment, at least security is included as an attribute.
- the standard control unit 100 and the safety control unit 200 handle the input / output data (or variable) to which the attribute management unit 170 or the attribute management unit 270 has an attribute indicating that the security is effective as secure data. Is called.
- the security is maintained even when accessed from an external device. That is, even when the value of input data stored in the input / output data area 150 is updated by an access from an external device, a command or the like for updating the value is transmitted by secure communication. More specifically, the external disclosure management unit 160 corresponding to the access management unit receives a command for updating a variable by secure communication with an external device.
- a protocol for ensuring arbitrary security implemented in the OPC UA may be used.
- the transmitted data may be encrypted by an arbitrary method, or an electronic signature or the like may be given by an arbitrary method.
- an arbitrary authentication method such as a password may be passed prior to data transmission.
- a general protocol such as SSL / TLS (Secure Sockets Layer / Transport Layer Security) may be used.
- the standard control unit 100 and the safety control unit 200 can use input / output data or variables that are secured by the method described above.
- Securing security against safety control startup operations can be ensured by using input data that has been secured, including access from external devices, as safety control startup conditions.
- a value indicating an operation command for starting remote control is input via the data transmission path 18 between the remote control device 600 and the standard control unit 100.
- the value of the variable in the standard control unit 100 is updated.
- the value of the variable managed by the standard control unit 100 is reflected on the value of the corresponding variable in the safety control unit 200 via the local bus 10.
- the safety control unit 200 starts the safety control using the value of the variable as an activation condition. By starting the safety control, calculation of safety output data is started and the corresponding safety output signal is validated, thereby providing functional safety.
- the safety control unit 200 starts the execution of the safety program 2064 when a specific variable is updated to a predetermined value by the external disclosure management unit 160.
- activation of safety control can be instructed via secure communication, thereby ensuring the security of an operation command given from an external device to the safety control device.
- FIG. 4 is a schematic diagram illustrating a hardware configuration example of the standard control unit 100 that configures the control device 2 according to the present embodiment.
- the standard control unit 100 includes a processor 102, a main memory 104, a storage 106, network controllers 108 and 110, a field bus controller 112, a memory card interface 116, and a local bus controller 120. including. These components are connected via a processor bus 130.
- the processor 102 corresponds to an arithmetic processing unit that executes control arithmetic and the like, and includes a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads out a program (for example, the system program 1060 and the standard control program 1062) stored in the storage 106, expands the program in the main memory 104, and executes the program, so as to correspond to the control target. Control and various processes described later are realized.
- a program for example, the system program 1060 and the standard control program 1062
- the main memory 104 includes a volatile storage device such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
- the storage 106 includes, for example, a nonvolatile storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
- the storage 106 stores a standard control program 1062 that is created according to a control target such as equipment or machine. Further, the storage 106 stores memory mapping information 1064 for relaying data transmission using the network controllers 108 and 110 and / or the fieldbus controller 112 by the safety control unit 200.
- the storage 106 further stores an external public program 1066 for realizing the external public management unit 160 (FIG. 3) and an attribute management program 1068 for realizing the attribute management unit 170 (FIG. 3).
- the network controllers 108 and 110 exchange data frames with other control apparatuses, arbitrary devices, and other arbitrary information processing apparatuses via arbitrary industrial networks.
- FIG. 4 illustrates a configuration including two network controllers 108 and 110, a configuration including a single network controller may be used.
- the fieldbus controller 112 exchanges data frames with a remote device via an arbitrary fieldbus.
- FIG. 4 illustrates a configuration having a single fieldbus controller 112, a configuration having a plurality of fieldbus controllers may be used.
- the memory card interface 116 is detachable from a memory card 118 that is an example of a recording medium.
- the memory card interface 116 can write arbitrary data to the memory card 118 and read arbitrary data from the memory card 118.
- the local bus controller 120 exchanges data frames with the safety control unit 200 or any safety IO unit 300 via the local bus 10. More specifically, the local bus controller 120 includes a master controller 122, an IO data memory 124, a transmission circuit (TX) 126, and a reception circuit (RX) 128.
- TX transmission circuit
- RX reception circuit
- the IO data memory 124 is a memory that temporarily holds IO data exchanged with an arbitrary local unit via the local bus 10, and an address is defined in advance in association with each local unit.
- the transmission circuit 126 generates a communication frame including output data and sends it onto the local bus 10.
- the receiving circuit 128 receives a communication frame transmitted on the local bus 10 and demodulates it into input data.
- the master controller 122 controls the IO data memory 124, the transmission circuit 126, and the reception circuit 128 according to the data transmission timing on the local bus 10.
- the master controller 122 provides control as a communication master that manages data transmission on the local bus 10.
- FIG. 4 shows a configuration example in which a necessary function is provided by the processor 102 executing a program. However, part or all of the provided function is transferred to a dedicated hardware circuit (for example, an ASIC). (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)) may be used.
- the main part of the standard control unit 100 may be realized using hardware according to a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, a plurality of OSs (Operating Systems) having different uses may be executed in parallel using a virtualization technique, and necessary applications may be executed on each OS. Further, a configuration in which functions such as a display device and a support device are integrated in the standard control unit 100 may be adopted.
- a USB (Universal Serial Bus) port and a USB controller for exchanging data with the support device may be further provided.
- FIG. 5 is a schematic diagram illustrating a hardware configuration example of the safety control unit 200 configuring the control device 2 according to the present embodiment.
- safety control unit 200 includes a processor 202, a main memory 204, a storage 206, and a local bus controller 220. These components are connected via a processor bus 230.
- the processor 202 corresponds to an arithmetic processing unit that executes the safety program 2064.
- the local bus controller 220 functions as a communication slave and provides the same communication interface as other local units. That is, the local bus controller 220 exchanges data frames between the standard control unit 100 and the local unit via the local bus 10.
- the safety control unit 200 and the safety IO unit 300 are daisy chain connected.
- the local bus controller 220 takes in the received communication frame.
- the local bus controller 220 takes in the received communication frame.
- the communication frame passes through the local bus controller 220 as it is.
- the local bus controller 220 includes a slave controller 222, a buffer memory 224, transmission circuits (TX) 225 and 226, and reception circuits (RX) 227 and 228.
- TX transmission circuits
- RX reception circuits
- the buffer memory 224 temporarily holds a communication frame transmitted through the local bus 10.
- the receiving circuit 227 When receiving the communication frame transmitted on the local bus 10, the receiving circuit 227 stores all or a part thereof in the buffer memory 224.
- the transmission circuit 226 sends the communication frame received by the reception circuit 227 to the local bus 10 on the downstream side.
- the receiving circuit 228 when receiving a communication frame transmitted on the local bus 10, stores all or part of the communication frame in the buffer memory 224.
- the transmission circuit 225 transmits the communication frame received by the reception circuit 128 to the local bus 10 on the downstream side.
- the slave controller 222 controls the transmission circuits 225 and 226, the reception circuits 227 and 228, and the buffer memory 224 in order to sequentially transfer communication frames on the local bus 10.
- the processor 202 corresponds to a calculation processing unit that executes control calculations and the like, and includes a CPU, a GPU, and the like. Specifically, the processor 202 reads out the programs (for example, the system program 2060, the communication processing program 2062, and the safety program 2064) stored in the storage 206, expands them in the main memory 204, and executes them. Control according to the control target and various processes as described later are realized.
- the programs for example, the system program 2060, the communication processing program 2062, and the safety program 2064
- the main memory 204 is configured by a volatile storage device such as DRAM or SRAM.
- the storage 206 is composed of, for example, a nonvolatile storage device such as an HDD or an SSD.
- the storage 206 establishes and maintains a connection for exchanging data frames with other safety control units 200 and / or safety IO units 300 in addition to a system program 2060 for realizing basic functions.
- Communication processing program 2062, a safety program 2064 created according to the target safety IO unit 300, a variable management program 2066 for realizing the variable management unit 260 (FIG. 3), and an attribute management unit 270 ( An attribute management program 2068 for realizing FIG. 3) is stored.
- FIG. 5 illustrates a configuration example in which a necessary function is provided by the processor 202 executing a program. However, part or all of the provided function is transferred to a dedicated hardware circuit (for example, an ASIC). Alternatively, it may be implemented using an FPGA or the like.
- a dedicated hardware circuit for example, an ASIC.
- FPGA field-programmable gate array
- FIG. 6 is a schematic diagram illustrating a hardware configuration example of the safety IO unit 300 included in the control device 2 according to the present embodiment.
- safety IO unit 300 includes a processor 302, a system memory 306, a safety IO module 308, and a local bus controller 320. These components are connected via a processor bus 330.
- the local bus controller 320 functions as a communication slave and provides the same communication interface as other local units.
- the local bus controller 320 includes a slave controller 322, a buffer memory 324, transmission circuits (TX) 325 and 326, and reception circuits (RX) 327 and 328. Since the basic configuration of local bus controller 320 is the same as that of local bus controller 220 shown in FIG. 5, detailed description will not be repeated.
- the processor 302 corresponds to an arithmetic processing unit that executes various processes in the safety IO unit 300.
- the system memory 306 is configured by flash memory, NVRAM (non-volatile RAM), and the like, and stores various settings and firmware necessary for processing in the safety IO unit 300.
- the safety IO module 308 performs an input process on a signal from the field and / or outputs a signal to the field according to the function of the safety IO unit 300.
- the safety IO module 308 further has functions unique to safety control such as disconnection detection and feedback detection.
- FIG. 6 shows a configuration example in which a necessary function is provided using the processor 302. However, a part or all of the provided function is provided with a dedicated hardware circuit (for example, ASIC or FPGA). You may implement using.
- a dedicated hardware circuit for example, ASIC or FPGA. You may implement using.
- FIG. 7 is a schematic diagram illustrating a hardware configuration example of the communication coupler unit 400 included in the control device 2 according to the present embodiment.
- communication coupler unit 400 includes a processor 402, a main memory 404, a storage 406, network controllers 408 and 410, a field bus controller 412, and a local bus controller 420. These components are connected via a processor bus 430.
- the processor 402 corresponds to a calculation processing unit that executes control calculations and the like, and includes a CPU, a GPU, and the like. Specifically, the processor 402 reads out the system program 4060 stored in the storage 406, develops it in the main memory 404, and executes it, whereby the local unit (safety IO unit 300) connected via the local bus 10 is read. Etc.) and the standard control unit 100 and / or the safety control unit 200, various processes for mediating the exchange of IO data are realized.
- the main memory 404 is composed of a volatile storage device such as DRAM or SRAM.
- the storage 406 is composed of, for example, a nonvolatile storage device such as an HDD or an SSD.
- the storage 406 stores a system program 4060 for realizing a function for exchanging IO data of the local unit.
- the network controllers 408 and 410 exchange data frames with other control apparatuses, arbitrary devices, and other arbitrary information processing apparatuses via arbitrary industrial networks.
- FIG. 7 illustrates a configuration having two network controllers 408 and 410, a configuration having a single network controller may be used.
- the fieldbus controller 412 exchanges data frames with a remote device via an arbitrary fieldbus.
- FIG. 7 illustrates a configuration having a single fieldbus controller 412, a configuration having a plurality of fieldbus controllers may be used.
- the local bus controller 420 exchanges data frames with the safety control unit 200 or any safety IO unit 300 via the local bus 10. More specifically, the local bus controller 420 includes a master controller 422, an IO data memory 424, a transmission circuit (TX) 426, and a reception circuit (RX) 428.
- a master controller 422 an IO data memory 424
- TX transmission circuit
- RX reception circuit
- the IO data memory 424 is a memory that temporarily holds IO data exchanged with an arbitrary local unit via the local bus 10, and an address is defined in advance in association with each local unit.
- the transmission circuit 426 generates a communication frame including output data and sends it to the local bus 10.
- the receiving circuit 428 receives a communication frame transmitted on the local bus 10 and demodulates it into input data.
- the master controller 422 controls the IO data memory 424, the transmission circuit 426, and the reception circuit 428 according to the data transmission timing on the local bus 10, and the like.
- the master controller 422 provides control as a communication master that manages data transmission on the local bus 10.
- FIG. 7 shows a configuration example in which a necessary function is provided by the processor 402 executing a program. However, a part or all of the provided function is transferred to a dedicated hardware circuit (for example, an ASIC). Alternatively, it may be implemented using an FPGA or the like.
- a dedicated hardware circuit for example, an ASIC.
- FPGA field-programmable gate array
- FIG. 8 is a sequence diagram showing an example of data transmission in the safety control system 1 according to the present embodiment.
- a value indicating the user operation is a standard control by secure communication between remote control device 600 and standard control unit 100. It is transmitted to unit 100 (sequence SQ2).
- Standard control unit 100 updates the corresponding internal variable with a value indicating the user operation from remote control device 600 (sequence SQ3).
- data update data refresh
- the safety control is performed according to the updated value of the internal variable in the standard control unit 100.
- the value of the internal variable in unit 200 is updated (sequence SQ5). That is, the update of the variable is reflected between the standard control unit 100 and the safety control unit 200 via the local bus 10.
- safety control unit 200 the internal variable is updated, whereby the activation condition of safety program 2064 is established, and execution of safety program 2064 is started (sequence SQ6).
- the safety program 2064 is cyclically executed.
- the settings in the present embodiment are mainly defined at the stage of defining variables and setting attributes that can be used in the safety control unit 200, and the variables defined in the safety control unit 200 and the standard control unit 100. And associating with a variable.
- FIG. 9 shows a user interface screen 700 for defining variables that can be used in the safety control unit 200 according to the present embodiment.
- FIG. 10 shows a user interface screen 702 for defining variables that can be used in the standard control unit 100 according to the present embodiment.
- the user interface screens shown in FIG. 9 and FIG. 10 are provided in a support device that performs programs and settings executed in the safety control system 1. That is, the support device corresponds to an attribute setting receiving unit that receives one or more attribute settings for variables managed by the safety control system 1.
- the user interface screen 700 shown in FIG. 9 includes a variable setting 710.
- the variable setting 710 includes a variable name column 711 indicating a defined variable name.
- the user defines any variable that can be used in a user program (ie, safety program 2064) executed by the safety control unit 200. In the example shown in FIG. 9, three variables “aa”, “bb”, and “cc” are defined.
- the variable setting 710 includes a data type column 712 that defines a data type in association with each defined variable.
- the user defines the data type (variable type) of each defined variable.
- the variables “aa” and “bb” are set to “Boolean constant”, and the variable “cc” is set to “safety Boolean constant”.
- the “Boolean constant” means a Boolean value managed in the standard control unit 100
- the “safety Boolean constant” means a Boolean value for which functional safety is guaranteed. Typically, it is associated with a state value acquired by any safety IO unit 300 or an output value output from any safety IO unit 300.
- the variable setting 710 includes an initial value setting field 713 for defining an initial value in association with each defined variable.
- the user defines initial values (values immediately after the safety control unit 200 is activated) of the defined variables. In the example shown in FIG. 9, “FALSE” (that is, “0”) is defined as an initial value for any variable.
- the variable setting 710 includes a fixed value check box 714 for setting whether or not each defined variable is a fixed value.
- a fixed value check box 714 for setting whether or not each defined variable is a fixed value.
- the user checks the corresponding check box. In the example shown in FIG. 9, none of the variables is entered, and it is shown that the variables are periodically refreshed.
- the variable setting 710 includes a disclosure setting field 715 indicating whether each defined variable is disclosed to the standard control unit 100 side. That is, the public setting column 715 accepts the setting of validity / invalidity of the public attribute on the standard control unit 100 side, which is an example of the attribute of each variable. By making it open to the standard control unit 100 side, variables can be shared between the safety control unit 200 and the standard control unit 100.
- the user defines whether or not to disclose to the standard control unit 100 side among the defined variables, and the type (input / output) when the variable is disclosed to the standard control unit 100 side.
- the variable “aa” is defined to be disclosed as input data (“Input”)
- the variable “bb” is defined to be disclosed as output data (“Output”).
- the variable “cc” is not disclosed (“Do not expire”).
- the variable setting 710 includes a secure setting field 716 that indicates whether or not to enter a setting for enabling / disabling the secure setting for each defined variable.
- the secure setting field 716 accepts the setting for valid / invalid of the secure attribute, which is an example of the attribute of each variable.
- the user checks the defined variables to be secured.
- the secure setting is enabled for the variable “aa”.
- the variable setting 710 includes an attribute setting field 717 for setting an arbitrary attribute for each defined variable. That is, the attribute setting column 717 can accept an arbitrary attribute setting or valid / invalid setting for each variable.
- variable indicating the safety IO data used in the safety control unit 200 (for example, the variable “cc” illustrated in FIG. 9) and the safety control unit 200 are used.
- variables “aa” and “bb” shown in FIG. 9) are defined (for example, variables “aa” and “bb” shown in FIG. 9).
- the attributes of variables supplied between the standard control unit 100 and the safety control unit 200 are defined. Examples of such attributes include whether each variable is disclosed to the standard control unit 100 side, a secure attribute, and other optional attributes.
- variable management unit 260 the definition of the variables supplied between the standard control unit 100 and the safety control unit 200 is referred to by the variable management unit 260 and the attribute management unit 270 (FIG. 3).
- the user interface screen 702 shown in FIG. 10 accepts definitions of variables that can be used in the standard control unit 100. More specifically, the user interface screen 702 includes a variable setting 720.
- the variable settings 720 include settings for variables shared (ie, linked to each other) between the safety control unit 200 and the standard control unit 100.
- variable setting 720 includes settings for the variables “aa” and “bb” set publicly on the user interface screen 700 shown in FIG. That is, variables set as input data (Input) or output data (Output) in the public setting field 715 of the user interface screen 700 shown in FIG. 9 are candidates for variable assignment in the standard control unit 100.
- the variable setting 720 includes an RW setting field 721 that defines Read / Write in association with each variable defined in the safety control unit 200.
- the user defines whether each defined variable is Read (read only) or Write (editable). In the example shown in FIG. 10, Write (editable) is set for the variable “aa” that is an input variable, and Read (read only) is set for the variable “bb” that is an output variable. ing.
- the variable setting 720 includes an RW setting field 721 that defines Read / Write in association with each variable defined in the safety control unit 200.
- the variable setting 720 includes a data type column 722 that defines a data type in association with each variable defined in the safety control unit 200.
- the user defines the data type (variable type) of each defined variable.
- the variables “aa” and “bb” are both set to “Boolean constants”.
- the variable setting 720 includes a variable name column 723 for defining a variable name when referring to the standard control unit 100 in association with each variable defined in the safety control unit 200.
- the user sets a variable name when referring to the standard control unit 100 for each variable defined in the safety control unit 200.
- a variable name “secure” is defined for the variable “aa”
- a variable name “notsecure” is defined for the variable “bb”.
- the variables defined in the safety control unit 200 are shared with the standard control unit 100. At this time, the attributes set for each variable in the safety control unit 200 are also reflected as they are.
- the external public management unit 160 of the standard control unit 100 uses secure communication for exchanging commands for updating the values of variables for which secureness is enabled.
- the definitions of the variables that can be used in the standard control unit 100 are referred to by the external disclosure management unit 160 and the attribute management unit 170 (FIG. 3).
- the safety control system 1 an environment is provided in which the user program executed in each of the standard control unit 100 and the safety control unit 200 and the setting can be performed by the same support device. Therefore, it is possible to comprehensively evaluate the contents set on the user interface screen as shown in FIGS. 9 and 10 described above.
- a variable for which the external public attribute is set in the standard control unit 100 is not treated as valid unless the secure attribute is enabled in the variable definition of the standard control unit 100 or the safety control unit 200. It may be. Specifically, unless the secure attribute is enabled, setting transfer from the support device to the standard control unit 100 and / or the safety control unit 200 may be prohibited, or a warning is issued to the user. You may do it.
- the support device is realized as an integrated management tool for managing information used in the safety control system 1 in an integrated manner, thereby achieving consistency across both standard control and safety control. Can be evaluated.
- a safety control system (1) for realizing functional safety An arithmetic processing unit (202) for executing a safety program (2064); An access management unit (160) for updating a variable held in response to access from the external device (600), When the specific variable is updated to a predetermined value by the access management unit, the arithmetic processing unit starts executing the safety program,
- the access control unit is a safety control system that receives a command for updating a variable by secure communication with the external device.
- the safety control system includes a standard control unit (100) mainly responsible for standard control and a safety control unit (200) mainly responsible for safety control, The safety control system according to Configuration 1, wherein the arithmetic processing unit is provided in the safety control unit, and the access management unit is provided in the standard control unit.
- the safety control system according to Configuration 2 wherein the update of variables is reflected between the standard control unit and the safety control unit via a local bus (10).
- An attribute setting receiving unit (700) that receives a setting of one or more attributes for a variable managed by the safety control system; The safety control system according to any one of configurations 1 to 3, wherein the one or more attributes include setting of validity / invalidity of security.
- a control method in a safety control system for realizing functional safety A step (SQ1) of receiving a command for updating a variable value by secure communication with an external device; A step (SQ3, SQ4, SQ5) of updating a variable held in response to the command from the external device;
- a control method in a safety control system comprising a step (SQ6) of starting execution of a safety program when a specific variable is updated to a predetermined value.
- a general safety control system is configured to activate safety control using an operation button or the like connected to an input unit via a hard wire. From the viewpoint of improvement in maintainability, wiring saving, noise that may occur in a transmitted signal, and the like, a method using data transmission is desired rather than a configuration using such a hard wire.
- the safety control system when the safety control system is arranged in an environment (for example, high temperature, presence of toxic gas, clean room, etc.) that is not easily accessible by the operator, a configuration capable of remote operation is required.
- remote operation may be required for the purpose of reducing the number of operators accompanying labor savings and improving productivity through batch operation.
- Securing security is also important when realizing such remote operation (output of operation commands by data transmission). By ensuring such security, unauthorized access by a malicious third party is prevented.
- 1 safety control system 2 control device, 3 remote IO device, 4 wide area network, 10 local bus, 12 first connection, 14 second connection, 16 third connection, 18 data transmission path, 100 standard control unit, 102, 202 , 302, 402 processor, 104, 204, 404 main memory, 106, 206, 406 storage, 108, 110, 408, 410 network controller, 112, 412 fieldbus controller, 116 memory card interface, 118 memory card, 120, 220 320, 420 Local bus controller, 122, 422 Master controller, 124, 424 IO data memory, 126, 225, 226, 325 326, 426 transmission circuit (TX), 128, 227, 228, 327, 328, 428 reception circuit (RX), 130, 230, 330, 430 processor bus, 150 I / O data area, 160 external public management unit, 170, 270 attribute management unit, 200 safety control unit, 222,322 slave controller, 224,324 buffer memory, 260 variable management unit, 300 safety IO unit, 306
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Safety Devices In Control Systems (AREA)
Abstract
外部装置から与えられる操作指令のセキュア性を確保できるセーフティ制御システムが提供される。セーフティ制御システムは、セーフティプログラムを実行する演算処理部と、外部装置からのアクセスを受けて保持する変数を更新するアクセス管理部とを含む。演算処理部は、アクセス管理部により特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始する。アクセス管理部は、外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける。
Description
本発明は、機能安全を実現するセーフティ制御システムおよび当該セーフティ制御システムおける制御方法に関する。
様々な製造現場で使用される設備や機械を安全に使用するためには、IEC 61508などの国際規格に従って機能安全を実現しなければならない。このような機能安全は、セーフティ制御装置にてセーフティプログラムを実行することで実現されることもある。例えば、特開2005-031778号公報(特許文献1)は、入力機器からの入力に基づいて、安全出力制御対象に安全出力を与えて機械設備の運転を制御するセーフティコントローラを開示する。
近年のICT(Information and Communication Technology)の進展に伴って、例えば、工場設備を遠隔地に配置された制御センターからリモート操作するような形態も実用化されている。このような遠隔地からの制御には、セーフティ制御装置に対する制御も想定される。
このようなセーフティ制御装置に対するリモート操作を実現するにあたっては、遣り取りされる操作指令についてもセキュア性を維持する必要がある。
本発明は、上述したような課題を解決することを一つの目的とし、外部装置から与えられる操作指令のセキュア性を確保できるセーフティ制御システムを提供する。
本開示の一例に従う機能安全を実現するセーフティ制御システムは、セーフティプログラムを実行する演算処理部と、外部装置からのアクセスを受けて保持する変数を更新するアクセス管理部とを含む。演算処理部は、アクセス管理部により特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始する。アクセス管理部は、外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける。
本開示によれば、例えば、遠隔地に配置された操作端末などから、セキュア性を維持しつつ、セーフティ制御システムに対して、セーフティプログラムの実行開始を指示できる。これによって、セキュア性を維持しつつ、省力化や省配線化を実現できる。
上述の開示において、セーフティ制御システムは、主として標準制御を担当する標準制御ユニットと、主としてセーフティ制御を担当するセーフティ制御ユニットとを含むようにしてもよい。演算処理部はセーフティ制御ユニットに設けられ、アクセス管理部は標準制御ユニットに設けられてもよい。
本開示によれば、標準制御およびセーフティ制御の間で影響が互いに及ぶことなく、かつ、統合化してシステムを実現できる。
上述の開示において、標準制御ユニットとセーフティ制御ユニットとの間は、ローカルバスを介して、変数の更新が反映されるようにしてもよい。
本開示によれば、標準制御ユニットとセーフティ制御ユニットとの間のデータの遣り取りを、セキュア性が維持されているローカルバスを介して実現できる。
上述の開示において、セーフティ制御システムは、セーフティ制御システムが管理する変数に対して、1または複数の属性の設定を受付ける属性設定受付部をさらに含んでいてもよい。1または複数の属性は、セキュア性の有効/無効の設定を含むようにしてもよい。
本開示によれば、事前にセキュア性の有効/無効の属性を設定することで、セーフティ制御システムで実行されるいずれのプログラムにおいても、セキュア性が保証された変数を利用できる。
上述の開示において、アクセス管理部は、セキュア性を有効に設定された変数の値を更新するための指令の遣り取りには、セキュア通信を用いるようにしてもよい。
本開示によれば、セキュア性を有効に設定するだけで、ユーザが意識することなく、セキュア通信を実現できる。
本開示の別の一例に従う機能安全を実現するセーフティ制御システムにおける制御方法は、外部装置との間で、セキュア通信により、変数値を更新するための指令を受付けるステップと、外部装置からの指令を受けて保持する変数を更新するステップと、特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始するステップとを含む。
本開示によれば、例えば、遠隔地に配置された操作端末などから、セキュア性を維持しつつ、セーフティ制御システムに対して、セーフティプログラムの実行開始を指示できる。これによって、セキュア性を維持しつつ、省力化や省配線化を実現できる。
本発明によれば、外部装置から与えられる操作指令のセキュア性を確保できる。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係るセーフティ制御システム1の構成例を示す模式図である。セーフティ制御システム1は、機能安全を実現するためのシステムである。
まず、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係るセーフティ制御システム1の構成例を示す模式図である。セーフティ制御システム1は、機能安全を実現するためのシステムである。
図1には、一例として、制御装置2を中心とするセーフティ制御システム1を示す。制御装置2は、標準制御およびセーフティ制御が実行可能になっている。
本明細書において、「標準制御」は、典型的には、予め定められた要求仕様に沿って、制御対象を制御するための処理を総称する。一方、「セーフティ制御」は、何らかの不具合によって、何らかの設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。セーフティ制御は、例えば、IEC 61508などに規定された機能安全を実現する。より具体的には、セーフティ制御は、制御対象自体の挙動が本来とは異なっている場合だけではなく、制御装置2自体に何らかの異常が発生したと判断される場合にも、制御対象を停止させるような処理を含む。
標準制御およびセーフティ制御の両方を同一のユニットで実現してもよいが、セーフティ制御システム1においては、主として標準制御を担当する標準制御ユニット100と、主としてセーフティ制御を担当するセーフティ制御ユニット200とを用いる構成例を示す。
すなわち、制御装置2は、標準制御ユニット100およびセーフティ制御ユニット200からなる。セーフティ制御ユニット200は、一種のローカルユニットとして、ローカルバス10を介して標準制御ユニット100に接続される。
本明細書において、「ローカルユニット」は、ローカルバス10を介して接続される任意のユニットを総称する。
制御装置2は、さらに、1または複数のセーフティIOユニット300を含む。セーフティIOユニット300は、セーフティコンポーネントからの信号の入力、および/または、セーフティコンポーネントへの信号の出力を司る。本明細書において、「セーフティコンポーネント」は、主として、セーフティ制御に用いられる任意の装置を包含するものであり、例えば、セーフティリレーや各種セーフティセンサなどを含む。
セーフティ制御ユニット200は、ローカルバス10を介して、1または複数のセーフティIOユニット300との間でセーフティIOデータを遣り取りする。本明細書において、「IOデータ」は、制御対象やセーフティコンポーネントから取得された入力データ、および/または、制御装置やセーフティコンポーネントへ出力される出力データを包含する。「IOデータ」のうち、特にセーフティ制御に用いられるセーフティ入出力データを「セーフティIOデータ」と称す。
制御装置2は、さらに配線LN1を介してリモートIO装置3に接続されている。通常、リモートIO装置3は、制御装置2とは異なる位置に配置され、制御対象やセーフティコンポーネントとの間で信号を遣り取りし、その信号の遣り取りに対応するIOデータを標準制御ユニット100との間で遣り取りする。
より具体的には、リモートIO装置3は、通信カプラユニット400および1または複数のセーフティIOユニット300からなる。セーフティIOユニット300は、一種のローカルユニットとして、ローカルバス(図示していない)を介して通信カプラユニット400に接続される。
さらに、制御装置2は、配線LN2を介して、セーフティコンポーネントを含むロボット500ともネットワーク接続されている。
本実施の形態に係るセーフティ制御システム1においては、セーフティ制御ユニット200は、他の制御ユニットおよび/または通信カプラユニット400との間に、互いに独立した1または複数のコネクションを確立できる。各コネクションにおいては、セーフティIOデータを予め定められた周期毎に遣り取りできるようになっている。
例えば、制御装置2のセーフティ制御ユニット200に着目すると、(1)制御装置2のローカルバス10を介して接続される1または複数のセーフティIOユニット300との間に確立される第1コネクション12と、(2)制御装置2と配線LN1を介して接続されるリモートIO装置3との間に確立される第2コネクション14と、(3)制御装置2と配線LN2を介して接続されるロボット500との間に確立される第3コネクション16とを管理する。
ローカルバス10においては、制御装置2のメーカ固有の通信プロトコルに従うデータ伝送が用いられてもよい。例えば、メーカ固有の通信プロトコルとして、所定周期でプロセスデータを逐次転送する形態の伝送を採用する場合には、当該プロセスデータ内に、FSoE(Safety over EtherCAT)フレームと称されるメッセージフレームを挿入することで、コネクション間のセーフティIOデータの遣り取りを実現できる。
また、制御装置2とリモートIO装置3との間の配線LN1においては、EtherCAT(登録商標)などの規格化された通信プロトコルに従うデータ伝送が用いられてもよい。EtherCATに従うデータ伝送を採用する場合には、EtherCATに従って逐次転送されるプロセスデータ内に、FSoEフレーム(メッセージフレーム)を挿入することで、コネクション間のセーフティIOデータの遣り取りを実現できる。
また、制御装置2とロボット500との間の配線LN2においては、産業用の通信プロトコルに従うデータ伝送が行われる。このような産業用の通信プロトコルとしては、EtherNet/IP、DeviceNet、CompoNet、ControlNetなどが挙げられる。本実施の形態においては、典型例として、EtherNet/IPに従うデータ伝送が採用されているものとする。このようなデータ伝送の通信プロトコルを利用して、アプリケーション層として、CIP(Common Industrial Protocol)あるいはCIP Safetyなどの通信プロトコルが実装されている。
典型例として、制御装置2のセーフティ制御ユニット200とロボット500との間では、EtherNet/IPを用いて実装されるCIP Safetyに従ってセーフティIOデータが遣り取りされる構成を示す。EtherNet/IPは、イーサネット(登録商標)ベースの通信プロトコルである。CIP Safetyは、CIPをベースとして、IEC 61508などの機能安全規格に対応させた通信プロトコルである。
上述したように、本実施の形態に係るセーフティ制御システム1においては、制御装置2のセーフティ制御ユニット200は、互いに独立した複数のコネクションを保持しており、各コネクションにより遣り取りされるセーフティIOデータを用いて、コネクション毎に独立したセーフティ制御、および/または、複数のコネクションを連係したセーフティ制御のいずれについても実現できる。
さらに、本実施の形態に係るセーフティ制御システム1において、制御装置2は、配線LN3を介して、広域ネットワーク4とネットワーク接続されており、広域ネットワーク4を介してリモート制御装置600とデータ通信可能になっている。リモート制御装置600は、制御装置2に対するリモート操作を受付ける操作端末に相当する。
典型的な使用形態として、リモート制御装置600がユーザ操作を受けると、そのユーザ操作の内容が広域ネットワーク4を介して制御装置2へ伝送される。そして、制御装置2においては、当該伝送されたユーザ操作の内容に応答して、セーフティ制御が起動される。
図2は、本実施の形態に係るセーフティ制御システム1のリモート制御装置600において提供されるユーザインターフェイス画面610の一例を示す模式図である。図6を参照して、ユーザインターフェイス画面610は、制御対象のセーフティ制御ユニット200毎にセーフティ制御の実行状況を示す状況表示オブジェクト612を含む。例えば、状況表示オブジェクト612のうち、実行停止中のセーフティ制御に対応する1つの表示オブジェクト614をユーザが選択すると、「プラントAのセーフティ制御を開始しますか?」といったメッセージ616とともに、対象のセーフティ制御を起動するためのボタンオブジェクト618が表示される。
ユーザがボタンオブジェクト618を選択すると、対象のセーフティ制御を担当するセーフティ制御ユニット200に対して起動指令が伝送される。そして、起動指令を受けたセーフティ制御ユニット200においては、セーフティ制御の実行が開始される。
本実施の形態に係るセーフティ制御システム1においては、リモート制御装置600と制御装置2との間で遣り取りされる操作指令などを含む任意のデータについて、セキュア性を維持できる。
図3は、本実施の形態に係る制御装置2におけるデータ処理を説明するための模式図である。図3を参照して、制御装置2は、標準制御ユニット100とセーフティ制御ユニット200とを含む。両ユニット間は、ローカルバス10を介してデータ通信可能に接続されている。
標準制御ユニット100は、標準制御プログラムの実行時にアクセス可能な入出力データ領域150を有している。入出力データ領域150には、1または複数の入力データと、1または複数の出力データとが格納される。入力データは、各種センサ(一般的なセンサおよびセーフティセンサのいずれをも含み得る)から取得された計測値、各種デバイスから取得された任意の値、ユーザにより入力された値などを含む。出力データは、標準制御プログラムおよび/またはセーフティプログラム2064の実行より演算された結果を含む。
セーフティ制御ユニット200は、セーフティプログラム2064の実行時にアクセス可能な入出力データ領域150を有している。入出力データ領域150には、標準制御ユニット100を介して更新される1または複数の入力データおよび1または複数の出力データが格納される。セーフティ制御ユニット200において利用される入出力データは、変数管理部260によって、変数の対応付けおよびデータ更新が実行される。変数管理部260は、セーフティ制御ユニット200で実行される変数管理プログラム2066(図5参照)によって提供される。但し、これに限らず、変数管理部260は、システムプログラム2060(図5参照)、および/または、標準制御ユニット100で実行されるシステムプログラム1060(図4参照)によって提供されてもよい。
図3に示す例では、標準制御ユニット100の入力データに相当する変数「Input01」および「Input02」が、セーフティ制御ユニット200の「StdInput01」および「StdInput02」にそれぞれ対応付けられている。また、標準制御ユニット100の出力データに相当する変数「Output01」および「Output02」が、セーフティ制御ユニット200の「StdOutput01」および「StdOutut02」にそれぞれ対応付けられている。
本実施の形態においては、標準制御ユニット100は、リモート制御装置600などの外部装置からのアクセスを受付ける機能を有している。このような外部装置からのアクセスを受付ける機能は、外部公開管理部160によって提供される。外部公開管理部160は、外部装置からのアクセスを受けて保持する変数を更新するアクセス管理部に相当する。以下の説明においては、外部装置からのアクセスを受付けることを、「外部公開」とも称す。
外部公開管理部160による外部公開は、任意のプロトコルおよびアーキテクチャを用いて実現可能である。産業用のネットワークにおいては、例えば、OPC UA(Unified Architecture)などのマルチレイヤアーキテクチャを利用できる。OPC UAを採用することで、通信プロトコルが異なる装置同士であっても、任意のデータの伝送、交換、更新などが可能である。本実施の形態においては、典型例として、OPC UAを採用することを想定する。
さらに、本実施の形態に係る制御装置2においては、標準制御ユニット100およびセーフティ制御ユニット200において利用可能な各種データ(あるいは、任意の変数)に対して任意の属性を付与することができる。このような属性の付与は、属性管理部170および270によって実現される。
属性管理部170および270が付与する属性については、任意に定めることができるが、本実施の形態においては、属性として少なくともセキュア性を含む。属性管理部170または属性管理部270によりセキュア性が有効であるとの属性が付与された入出力データ(あるいは、変数)については、標準制御ユニット100およびセーフティ制御ユニット200において、セキュアなデータとして取扱われる。
さらに、セキュア性が有効であるとの属性が付与されている入出力データ(あるいは、変数)のうち、外部公開されるものについては、外部装置からのアクセスにおいても、セキュア性が維持される。すなわち、外部装置からのアクセスによって、入出力データ領域150に格納される入力データの値が更新される場合にも、その値を更新するための指令などは、セキュア通信により伝送される。より具体的には、アクセス管理部に相当する外部公開管理部160は、外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける。
なお、入出力データ領域150に格納される出力データの値へのアクセス(プルあるいはプッシュ)についても、セキュア通信により提供される。
セキュア通信としては、OPC UAに実装されている任意のセキュア性を確保するためのプロトコルを利用してもよい。あるいは、伝送されるデータを任意の方法で暗号化してもよいし、任意の方法で電子署名などを付与するようにしてもよい。さらにあるいは、データ伝送に先だって、パスワードなどの任意の認証方法を経るようにしてもよい。さらにあるいは、SSL/TLS(Secure Sockets Layer/Transport Layer Security)などの汎用的なプロトコルを用いてもよい。
このように、任意の方法、スキーム、アーキテクチャを用いて、制御装置2と外部装置との間で遣り取りされるデータのセキュア性を担保するようにできる。
標準制御ユニット100およびセーフティ制御ユニット200は、上述のような方法によりセキュア性が確保された入出力データあるいは変数を利用可能である。
このような外部装置からのアクセスも含めてセキュア性が確保された入力データをセーフティ制御の起動条件に用いることで、セーフティ制御の起動操作に対して、セキュア性担保できる。
より具体的には、リモート制御装置600と標準制御ユニット100との間のデータ伝送経路18を介して、リモート制御を起動するための操作指令を示す値が入力される。この操作指令によって、標準制御ユニット100における変数の値が更新される。そして、ローカルバス10を介して、標準制御ユニット100が管理する変数の値がセーフティ制御ユニット200における対応する変数の値に反映される。最終的に、セーフティ制御ユニット200においては、当該変数の値を起動条件として、セーフティ制御を起動する。このセーフティ制御の起動によって、セーフティ出力データの演算が開始され、対応するセーフティ出力信号が有効化されることで、機能安全が提供されることになる。
このように、セーフティ制御ユニット200は、外部公開管理部160により特定の変数が予め定められた値に更新されると、セーフティプログラム2064の実行を開始する。すなわち、本実施の形態においては、セーフティ制御の起動をセキュアな通信を介して指示でき、これによって、セーフティ制御装置に対して外部装置から与えられる操作指令のセキュア性を確保できる。
以下、本実施の形態を実現するためのより具体的な構成および処理について説明する。
<B.ハードウェア構成例>
次に、本実施の形態に係るセーフティ制御システム1を構成する主たる装置のハードウェア構成例について説明する。
<B.ハードウェア構成例>
次に、本実施の形態に係るセーフティ制御システム1を構成する主たる装置のハードウェア構成例について説明する。
(b1:標準制御ユニット100)
図4は、本実施の形態に係る制御装置2を構成する標準制御ユニット100のハードウェア構成例を示す模式図である。図4を参照して、標準制御ユニット100は、プロセッサ102と、メインメモリ104と、ストレージ106と、ネットワークコントローラ108,110と、フィールドバスコントローラ112と、メモリカードインターフェイス116と、ローカルバスコントローラ120とを含む。これらのコンポーネントは、プロセッサバス130を介して接続されている。
図4は、本実施の形態に係る制御装置2を構成する標準制御ユニット100のハードウェア構成例を示す模式図である。図4を参照して、標準制御ユニット100は、プロセッサ102と、メインメモリ104と、ストレージ106と、ネットワークコントローラ108,110と、フィールドバスコントローラ112と、メモリカードインターフェイス116と、ローカルバスコントローラ120とを含む。これらのコンポーネントは、プロセッサバス130を介して接続されている。
プロセッサ102は、制御演算などを実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ106に格納されたプログラム(一例として、システムプログラム1060および標準制御プログラム1062)を読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ106は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
ストレージ106には、基本的な機能を実現するためのシステムプログラム1060に加えて、設備や機械などの制御対象に応じて作成される標準制御プログラム1062が格納される。さらに、ストレージ106には、セーフティ制御ユニット200による、ネットワークコントローラ108,110および/またはフィールドバスコントローラ112を利用したデータ伝送を中継するためのメモリマッピング情報1064が格納される。
ストレージ106には、さらに、外部公開管理部160(図3)を実現するための外部公開プログラム1066と、属性管理部170(図3)を実現するための属性管理プログラム1068とが格納される。
ネットワークコントローラ108,110は、任意の産業用ネットワークを介して、他の制御装置、任意のデバイス、その他任意の情報処理装置との間でデータフレームを遣り取りする。図4には、2つのネットワークコントローラ108,110を有する構成を図示するが、単一のネットワークコントローラを有する構成であってもよい。
フィールドバスコントローラ112は、任意のフィールドバスを介して、リモートデバイスとの間でデータフレームを遣り取りする。図4には、単一のフィールドバスコントローラ112を有する構成を図示するが、複数のフィールドバスコントローラを有する構成であってもよい。
メモリカードインターフェイス116は、記録媒体の一例であるメモリカード118が着脱可能になっている。メモリカードインターフェイス116は、メモリカード118に対して任意のデータの書込み、および、メモリカード118からの任意のデータの読出しが可能になっている。
ローカルバスコントローラ120は、ローカルバス10を介して、セーフティ制御ユニット200や任意のセーフティIOユニット300との間でデータフレームを遣り取りする。より具体的には、ローカルバスコントローラ120は、マスタコントローラ122と、IOデータメモリ124と、送信回路(TX)126と、受信回路(RX)128とを含む。
IOデータメモリ124は、ローカルバス10を介して任意のローカルユニットとの間で遣り取りするIOデータを一時的に保持するメモリであり、各ローカルユニットに対応付けてアドレスが予め規定されている。送信回路126は、出力データを含む通信フレームを生成してローカルバス10上に送出する。受信回路128は、ローカルバス10上を伝送する通信フレームを受信して入力データに復調する。マスタコントローラ122は、ローカルバス10上のデータ伝送タイミングなどに従って、IOデータメモリ124、送信回路126、および、受信回路128を制御する。マスタコントローラ122は、ローカルバス10上のデータ伝送などを管理する通信マスタとしての制御を提供する。
図4には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、標準制御ユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。さらに、標準制御ユニット100に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
例えば、標準制御ユニット100にサポート装置を直接接続する場合には、サポート装置との間でデータを遣り取りするためのUSB(Universal Serial Bus)ポートおよびUSBコントローラをさらに設けてもよい。
(b2:セーフティ制御ユニット200)
図5は、本実施の形態に係る制御装置2を構成するセーフティ制御ユニット200のハードウェア構成例を示す模式図である。図5を参照して、セーフティ制御ユニット200は、プロセッサ202と、メインメモリ204と、ストレージ206と、ローカルバスコントローラ220とを含む。これらのコンポーネントは、プロセッサバス230を介して接続されている。
図5は、本実施の形態に係る制御装置2を構成するセーフティ制御ユニット200のハードウェア構成例を示す模式図である。図5を参照して、セーフティ制御ユニット200は、プロセッサ202と、メインメモリ204と、ストレージ206と、ローカルバスコントローラ220とを含む。これらのコンポーネントは、プロセッサバス230を介して接続されている。
プロセッサ202は、セーフティプログラム2064を実行する演算処理部に相当する。
ローカルバスコントローラ220は、通信スレーブとして機能し、他のローカルユニットと同様の通信インターフェイスを提供する。すなわち、ローカルバスコントローラ220は、ローカルバス10を介して、標準制御ユニット100およびローカルユニットとの間でデータフレームを遣り取りする。
ローカルバス10上において、セーフティ制御ユニット200およびセーフティIOユニット300は、デイジーチェーン接続されている。ローカルバスコントローラ220は、ローカルバス10上で上流側に存在する装置から自ユニット宛ての通信フレームが入来すると、当該入来した通信フレームを取込む。同様に、ローカルバスコントローラ220は、ローカルバス10上で下流側に存在する装置から自ユニット宛ての通信フレームが入来すると、当該入来した通信フレームを取込む。自ユニット宛て以外の通信フレームが入来した場合には、当該通信フレームは、ローカルバスコントローラ220をそのまま通過する。このような通信フレームの受信または透過によって、標準制御ユニット100とローカルユニットおよびセーフティ制御ユニット200とのノード間のデータ伝送が実現される。
より具体的には、ローカルバスコントローラ220は、スレーブコントローラ222と、バッファメモリ224と、送信回路(TX)225,226と、受信回路(RX)227,228とを含む。
バッファメモリ224は、ローカルバス10を伝送する通信フレームを一時的に保持する。
受信回路227は、ローカルバス10上を伝送する通信フレームを受信すると、その全部または一部をバッファメモリ224に格納する。送信回路226は、受信回路227により受信された通信フレームを下流側のローカルバス10へ送出する。
同様に、受信回路228は、ローカルバス10上を伝送する通信フレームを受信すると、その全部または一部をバッファメモリ224に格納する。送信回路225は、受信回路128により受信された通信フレームを下流側のローカルバス10へ送出する。
スレーブコントローラ222は、ローカルバス10上の通信フレームの順次転送を実現するために、送信回路225,226、受信回路227,228、および、バッファメモリ224を制御する。
プロセッサ202は、制御演算などを実行する演算処理部に相当し、CPUやGPUなどで構成される。具体的には、プロセッサ202は、ストレージ206に格納されたプログラム(一例として、システムプログラム2060、通信処理プログラム2062、およびセーフティプログラム2064)を読出して、メインメモリ204に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。
メインメモリ204は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ206は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
ストレージ206には、基本的な機能を実現するためのシステムプログラム2060に加えて、他のセーフティ制御ユニット200および/またはセーフティIOユニット300との間でデータフレームを遣り取りするためのコネクションを確立および維持するための通信処理プログラム2062と、対象のセーフティIOユニット300に応じて作成されるセーフティプログラム2064と、変数管理部260(図3)を実現するための変数管理プログラム2066と、属性管理部270(図3)を実現するための属性管理プログラム2068とが格納される。
図5には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
(b3:セーフティIOユニット300)
図6は、本実施の形態に係る制御装置2を構成するセーフティIOユニット300のハードウェア構成例を示す模式図である。図6を参照して、セーフティIOユニット300は、プロセッサ302と、システムメモリ306と、セーフティIOモジュール308と、ローカルバスコントローラ320とを含む。これらのコンポーネントは、プロセッサバス330を介して接続されている。
図6は、本実施の形態に係る制御装置2を構成するセーフティIOユニット300のハードウェア構成例を示す模式図である。図6を参照して、セーフティIOユニット300は、プロセッサ302と、システムメモリ306と、セーフティIOモジュール308と、ローカルバスコントローラ320とを含む。これらのコンポーネントは、プロセッサバス330を介して接続されている。
ローカルバスコントローラ320は、通信スレーブとして機能し、他のローカルユニットと同様の通信インターフェイスを提供する。ローカルバスコントローラ320は、スレーブコントローラ322と、バッファメモリ324と、送信回路(TX)325,326と、受信回路(RX)327,328とを含む。ローカルバスコントローラ320の基本構成は、図5に示すローカルバスコントローラ220と同様であるので、詳細な説明は繰返さない。
プロセッサ302は、セーフティIOユニット300における各種処理を実行する演算処理部に相当する。システムメモリ306は、フラッシュメモリやNVRAM(non-volatile RAM)などで構成され、セーフティIOユニット300での処理に必要な各種設定やファームウェアを格納する。
セーフティIOモジュール308は、セーフティIOユニット300の機能に応じて、フィールドからの信号に対して入力処理し、および/または、フィールドへの信号を出力処理する。セーフティIOモジュール308は、さらに、断線検知やフィードバック検知などのセーフティ制御固有の機能も実装される。
図6には、プロセッサ302を用いて必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
(b4:通信カプラユニット400)
図7は、本実施の形態に係る制御装置2を構成する通信カプラユニット400のハードウェア構成例を示す模式図である。図7を参照して、通信カプラユニット400は、プロセッサ402と、メインメモリ404と、ストレージ406と、ネットワークコントローラ408,410と、フィールドバスコントローラ412と、ローカルバスコントローラ420とを含む。これらのコンポーネントは、プロセッサバス430を介して接続されている。
図7は、本実施の形態に係る制御装置2を構成する通信カプラユニット400のハードウェア構成例を示す模式図である。図7を参照して、通信カプラユニット400は、プロセッサ402と、メインメモリ404と、ストレージ406と、ネットワークコントローラ408,410と、フィールドバスコントローラ412と、ローカルバスコントローラ420とを含む。これらのコンポーネントは、プロセッサバス430を介して接続されている。
プロセッサ402は、制御演算などを実行する演算処理部に相当し、CPUやGPUなどで構成される。具体的には、プロセッサ402は、ストレージ406に格納されたシステムプログラム4060を読出して、メインメモリ404に展開して実行することで、ローカルバス10を介して接続されるローカルユニット(セーフティIOユニット300など)と標準制御ユニット100および/またはセーフティ制御ユニット200との間のIOデータの遣り取りを仲介するための各種処理を実現する。
メインメモリ404は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ406は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
ストレージ406には、ローカルユニットのIOデータを遣り取りするための機能を実現するためのシステムプログラム4060が格納される。
ネットワークコントローラ408,410は、任意の産業用ネットワークを介して、他の制御装置、任意のデバイス、その他任意の情報処理装置との間でデータフレームを遣り取りする。図7には、2つのネットワークコントローラ408,410を有する構成を図示するが、単一のネットワークコントローラを有する構成であってもよい。
フィールドバスコントローラ412は、任意のフィールドバスを介して、リモートデバイスとの間でデータフレームを遣り取りする。図7には、単一のフィールドバスコントローラ412を有する構成を図示するが、複数のフィールドバスコントローラを有する構成であってもよい。
ローカルバスコントローラ420は、ローカルバス10を介して、セーフティ制御ユニット200や任意のセーフティIOユニット300との間でデータフレームを遣り取りする。より具体的には、ローカルバスコントローラ420は、マスタコントローラ422と、IOデータメモリ424と、送信回路(TX)426と、受信回路(RX)428とを含む。
IOデータメモリ424は、ローカルバス10を介して任意のローカルユニットとの間で遣り取りするIOデータを一時的に保持するメモリであり、各ローカルユニットに対応付けてアドレスが予め規定されている。送信回路426は、出力データを含む通信フレームを生成してローカルバス10上に送出する。受信回路428は、ローカルバス10上を伝送する通信フレームを受信して入力データに復調する。マスタコントローラ422は、ローカルバス10上のデータ伝送タイミングなどに従って、IOデータメモリ424、送信回路426、および、受信回路428を制御する。マスタコントローラ422は、ローカルバス10上のデータ伝送などを管理する通信マスタとしての制御を提供する。
図7には、プロセッサ402がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
<C.データ伝送>
次に、本実施の形態に係るセーフティ制御システム1におけるデータ伝送の一例について説明する。図8は、本実施の形態に係るセーフティ制御システム1におけるデータ伝送の一例を示すシーケンス図である。
次に、本実施の形態に係るセーフティ制御システム1におけるデータ伝送の一例について説明する。図8は、本実施の形態に係るセーフティ制御システム1におけるデータ伝送の一例を示すシーケンス図である。
図8を参照して、リモート制御装置600に対してユーザ操作がなされると(シーケンスSQ1)、リモート制御装置600と標準制御ユニット100との間のセキュア通信により、ユーザ操作を示す値が標準制御ユニット100へ送信される(シーケンスSQ2)。
標準制御ユニット100は、リモート制御装置600からのユーザ操作を示す値で対応する内部変数を更新する(シーケンスSQ3)。標準制御ユニット100とセーフティ制御ユニット200との間のローカルバス10においては、周期的にデータ更新(データリフレッシュ)が実行されており、標準制御ユニット100における内部変数の更新後の値により、セーフティ制御ユニット200における内部変数の値が更新される(シーケンスSQ5)。すなわち、標準制御ユニット100とセーフティ制御ユニット200との間は、ローカルバス10を介して、変数の更新が反映される。
さらに、セーフティ制御ユニット200においては、内部変数が更新されることによって、セーフティプログラム2064の起動条件が成立し、セーフティプログラム2064の実行が開始される(シーケンスSQ6)。そして、セーフティ制御ユニット200においては、セーフティプログラム2064がサイクリック実行される。
図8のシーケンスに示すように、リモート制御装置600に対してユーザ操作がなされてセーフティ制御システム1(標準制御ユニット100およびセーフティ制御ユニット200)まで伝送される経路において、セキュア性が確保できる。
<D.設定用ユーザインターフェイス>
次に、本実施の形態に係るセーフティ制御システム1において提供される設定用ユーザインターフェイスの一例について説明する。本実施の形態における設定は、主として、セーフティ制御ユニット200において利用可能な変数の定義および属性の設定などを行なう段階、および、セーフティ制御ユニット200において定義された変数と標準制御ユニット100において定義される変数との関連付けを行なう段階とを含む。
次に、本実施の形態に係るセーフティ制御システム1において提供される設定用ユーザインターフェイスの一例について説明する。本実施の形態における設定は、主として、セーフティ制御ユニット200において利用可能な変数の定義および属性の設定などを行なう段階、および、セーフティ制御ユニット200において定義された変数と標準制御ユニット100において定義される変数との関連付けを行なう段階とを含む。
図9は、本実施の形態に係るセーフティ制御ユニット200において利用可能な変数を定義するユーザインターフェイス画面700を示す。図10は、本実施の形態に係る標準制御ユニット100において利用可能な変数を定義するユーザインターフェイス画面702を示す。
図9および図10に示すユーザインターフェイス画面は、セーフティ制御システム1において実行されるプログラムおよび設定などを行なうサポート装置において提供される。すなわち、サポート装置は、セーフティ制御システム1が管理する変数に対して、1または複数の属性の設定を受付ける属性設定受付部に相当する。
図9に示すユーザインターフェイス画面700は、変数設定710を含む。変数設定710は、定義された変数名を示す変数名欄711を含む。ユーザは、セーフティ制御ユニット200で実行されるユーザプログラム(すなわち、セーフティプログラム2064)で利用可能な任意の変数を定義する。図9に示す例では、3つの変数「aa」,「bb」,「cc」が定義されている。
変数設定710は、定義された各変数に対応付けてデータタイプを定義するデータタイプ欄712を含む。ユーザは、定義した各変数のデータタイプ(変数型)を定義する。図9に示す例では、変数「aa」,「bb」は「ブール定数」に設定され、変数「cc」は「セーフティブール定数」に設定されている。ここで、「ブール定数」は標準制御ユニット100において管理されるブール値を意味し、「セーフティブール定数」は機能安全が保証されたブール値を意味する。典型的には、任意のセーフティIOユニット300により取得された状態値、あるいは、任意のセーフティIOユニット300から出力する出力値に対応付けられる。
変数設定710は、定義された各変数に対応付けて初期値を定義する初期値設定欄713を含む。ユーザは、定義した各変数の初期値(セーフティ制御ユニット200が起動した直後の値)を定義する。図9に示す例では、いずれの変数についても「FALSE」(すなわち、「0」)が初期値として定義されている。
変数設定710は、定義された各変数が固定値であるか否かを設定する固定値チェックボックス714を含む。ユーザは、定義した各変数を固定値とする場合には、対応するチェックボックスにチェックを入れる。図9に示す例では、いずれの変数についても、入れられておらず、周期的にリフレッシュされる変数であることが示されている。
変数設定710は、定義された各変数を標準制御ユニット100側へ公開するか否かを示す公開設定欄715を含む。すなわち、公開設定欄715は、各変数の属性の一例である、標準制御ユニット100側への公開属性の有効/無効の設定を受付ける。標準制御ユニット100側へ公開されることで、セーフティ制御ユニット200と標準制御ユニット100との間で変数が共有可能になる。
ユーザは、定義した各変数のうち、標準制御ユニット100側へ公開すべきか否か、および、標準制御ユニット100側へ公開する場合には、その種類(入力/出力)を定義する。図9に示す例では、変数「aa」は入力データとして公開すること(「Input」)が定義されており、変数「bb」は出力データとして公開すること(「Output」)が定義されている。また、変数「cc」は公開しないこと(「Do not expose」)が定義されている。
変数設定710は、定義された各変数に対してセキュア設定を有効/無効の設定を入力するにするか否かを示すセキュア設定欄716を含む。すなわち、セキュア設定欄716は、各変数の属性の一例である、セキュア属性の有効/無効の設定を受付ける。ユーザは、定義した各変数のうち、セキュア設定すべきものをチェックする。図9に示す例では、変数「aa」に対してセキュア設定が有効化されている。
変数設定710は、定義された各変数に対して任意の属性設定を行なうための属性設定欄717を含む。すなわち、属性設定欄717は、各変数についての任意の属性の設定、あるいは、有効/無効の設定を受付けることができる。
このように、図8に示すユーザインターフェイス画面700においては、セーフティ制御ユニット200において利用されるセーフティIOデータを示す変数(例えば、図9に示す変数「cc」)、および、セーフティ制御ユニット200において利用される任意の変数(例えば、図9に示す変数「aa」,「bb」)が定義される。
また、標準制御ユニット100とセーフティ制御ユニット200との間で供給される、変数の属性も定義される。このような属性として、各変数の標準制御ユニット100側への公開の有無、セキュア属性、その他任意属性が挙げられる。
このように、標準制御ユニット100とセーフティ制御ユニット200との間で供給される変数についての定義は、変数管理部260および属性管理部270(図3)により参照される。
図10に示すユーザインターフェイス画面702は、標準制御ユニット100において利用可能な変数の定義を受付ける。より具体的には、ユーザインターフェイス画面702は、変数設定720を含む。変数設定720は、セーフティ制御ユニット200と標準制御ユニット100との間で共有(すなわち、互いにリンク)された変数についての設定を含む。
変数設定720は、図9に示すユーザインターフェイス画面700において公開設定された変数「aa」,「bb」についての設定を含む。すなわち、図9に示すユーザインターフェイス画面700の公開設定欄715において、入力データ(Input)または出力データ(Output)として設定された変数が、標準制御ユニット100において変数割付けの候補になる。
変数設定720は、セーフティ制御ユニット200において定義された各変数に対応付けてRead/Writeを定義するRW設定欄721を含む。ユーザは、定義した各変数がRead(読取専用)/Write(編集可能)のいずれであるかを定義する。図10に示す例では、入力変数である変数「aa」に対してはWrite(編集可能)が設定されており、出力変数である変数「bb」に対してはRead(読取専用)が設定されている。
変数設定720は、セーフティ制御ユニット200において定義された各変数に対応付けてRead/Writeを定義するRW設定欄721を含む。
変数設定720は、セーフティ制御ユニット200において定義された各変数に対応付けてデータタイプを定義するデータタイプ欄722を含む。ユーザは、定義した各変数のデータタイプ(変数型)を定義する。図10に示す例では、変数「aa」,「bb」はいずれも「ブール定数」に設定されている。
変数設定720は、セーフティ制御ユニット200において定義された各変数に対応付けて、標準制御ユニット100において参照するときの変数名を定義する変数名欄723を含む。ユーザは、セーフティ制御ユニット200において定義された各変数に対して、標準制御ユニット100において参照する際の変数名を設定する。図10に示す例では、変数「aa」に対して「secure」との変数名が定義され、変数「bb」に対して「notsecure」との変数名が定義されている。
これらの設定により、セーフティ制御ユニット200において定義された変数が標準制御ユニット100との間で共有される。このとき、セーフティ制御ユニット200において各変数に対して設定された属性もそのまま反映される。
さらに、変数「aa」(標準制御ユニット100における「secure」)に対して、外部公開属性を有効化することで、リモート制御装置600などの外部装置からのアクセスが許可される。このとき、変数「aa」に対しては、セキュア属性が有効化されているので、リモート制御装置600から標準制御ユニット100が取扱う変数「secure」(セーフティ制御ユニット200における変数「aa」に対応)を更新する際には、セキュア通信が利用される。すなわち、標準制御ユニット100の外部公開管理部160は、セキュア性を有効に設定された変数の値を更新するための指令の遣り取りには、セキュア通信を用いる。
このように、標準制御ユニット100において利用可能な変数についての定義は、外部公開管理部160および属性管理部170(図3)により参照される。
本実施の形態に係るセーフティ制御システム1においては、標準制御ユニット100およいセーフティ制御ユニット200のそれぞれで実行されるユーザプログラムおよび設定が同一のサポート装置により可能な環境が提供される。そのため、上述の図9および図10に示すようなユーザインターフェイス画面によって設定された内容を総合的に評価することができる。
例えば、標準制御ユニット100において外部公開属性が設定された変数については、標準制御ユニット100またはセーフティ制御ユニット200の変数定義において、セキュア属性が有効化されていない限り、有効なものとして取扱われないようにしてもよい。具体的には、セキュア属性が有効化されていない限り、サポート装置から標準制御ユニット100および/またはセーフティ制御ユニット200への設定転送を禁止してもよいし、あるいは、ユーザに対して警告を発するようにしてもよい。
このように、本実施の形態に係るサポート装置を、セーフティ制御システム1において利用される情報を統合的に管理する統合管理ツールとして実現することで、標準制御およびセーフティ制御の両方に亘って整合性などを評価できる。
<E.変形例>
本実施の形態においては、標準制御ユニット100とセーフティ制御ユニット200とを組み合わせた構成を主として例示したが、これに限らず、両ユニットを一体的に構成してもよい。この場合であっても、上述したような特徴的な処理を実装できる。
本実施の形態においては、標準制御ユニット100とセーフティ制御ユニット200とを組み合わせた構成を主として例示したが、これに限らず、両ユニットを一体的に構成してもよい。この場合であっても、上述したような特徴的な処理を実装できる。
<F.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
機能安全を実現するセーフティ制御システム(1)であって、
セーフティプログラム(2064)を実行する演算処理部(202)と、
外部装置(600)からのアクセスを受けて保持する変数を更新するアクセス管理部(160)とを備え、
前記演算処理部は、前記アクセス管理部により特定の変数が予め定められた値に更新されると、前記セーフティプログラムの実行を開始し、
前記アクセス管理部は、前記外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける、セーフティ制御システム。
[構成2]
前記セーフティ制御システムは、主として標準制御を担当する標準制御ユニット(100)と、主としてセーフティ制御を担当するセーフティ制御ユニット(200)とを備え、
前記演算処理部は前記セーフティ制御ユニットに設けられ、前記アクセス管理部は前記標準制御ユニットに設けられる、構成1に記載のセーフティ制御システム。
[構成3]
前記標準制御ユニットと前記セーフティ制御ユニットとの間は、ローカルバス(10)を介して、変数の更新が反映される、構成2に記載のセーフティ制御システム。
[構成4]
前記セーフティ制御システムが管理する変数に対して、1または複数の属性の設定を受付ける属性設定受付部(700)をさらに備え、
前記1または複数の属性は、セキュア性の有効/無効の設定を含む、構成1~3のいずれか1項に記載のセーフティ制御システム。
[構成5]
前記アクセス管理部は、前記セキュア性を有効に設定された変数の値を更新するための指令の遣り取りには、セキュア通信を用いる、構成4に記載のセーフティ制御システム。[構成6]
機能安全を実現するセーフティ制御システムにおける制御方法であって、
外部装置との間で、セキュア通信により、変数値を更新するための指令を受付けるステップ(SQ1)と、
前記外部装置からの前記指令を受けて保持する変数を更新するステップ(SQ3,SQ4,SQ5)と、
特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始するステップ(SQ6)とを備える、セーフティ制御システムにおける制御方法。
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
機能安全を実現するセーフティ制御システム(1)であって、
セーフティプログラム(2064)を実行する演算処理部(202)と、
外部装置(600)からのアクセスを受けて保持する変数を更新するアクセス管理部(160)とを備え、
前記演算処理部は、前記アクセス管理部により特定の変数が予め定められた値に更新されると、前記セーフティプログラムの実行を開始し、
前記アクセス管理部は、前記外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける、セーフティ制御システム。
[構成2]
前記セーフティ制御システムは、主として標準制御を担当する標準制御ユニット(100)と、主としてセーフティ制御を担当するセーフティ制御ユニット(200)とを備え、
前記演算処理部は前記セーフティ制御ユニットに設けられ、前記アクセス管理部は前記標準制御ユニットに設けられる、構成1に記載のセーフティ制御システム。
[構成3]
前記標準制御ユニットと前記セーフティ制御ユニットとの間は、ローカルバス(10)を介して、変数の更新が反映される、構成2に記載のセーフティ制御システム。
[構成4]
前記セーフティ制御システムが管理する変数に対して、1または複数の属性の設定を受付ける属性設定受付部(700)をさらに備え、
前記1または複数の属性は、セキュア性の有効/無効の設定を含む、構成1~3のいずれか1項に記載のセーフティ制御システム。
[構成5]
前記アクセス管理部は、前記セキュア性を有効に設定された変数の値を更新するための指令の遣り取りには、セキュア通信を用いる、構成4に記載のセーフティ制御システム。[構成6]
機能安全を実現するセーフティ制御システムにおける制御方法であって、
外部装置との間で、セキュア通信により、変数値を更新するための指令を受付けるステップ(SQ1)と、
前記外部装置からの前記指令を受けて保持する変数を更新するステップ(SQ3,SQ4,SQ5)と、
特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始するステップ(SQ6)とを備える、セーフティ制御システムにおける制御方法。
<G.利点>
一般的なセーフティ制御システムにおいては、入力ユニットにハードワイヤを介して接続された操作ボタンなどを用いて、セーフティ制御を起動するように構成される。メンテナンス性の向上、省配線性、伝達される信号に生じ得るノイズなどの観点から、このようなハードワイヤを用いる構成ではなく、データ伝送による方法が望まれている。
一般的なセーフティ制御システムにおいては、入力ユニットにハードワイヤを介して接続された操作ボタンなどを用いて、セーフティ制御を起動するように構成される。メンテナンス性の向上、省配線性、伝達される信号に生じ得るノイズなどの観点から、このようなハードワイヤを用いる構成ではなく、データ伝送による方法が望まれている。
また、オペレータが容易に近付けない環境(例えば、高温、有毒ガスの存在、クリーンルームなど)にセーフティ制御システムが配置されている場合などには、リモート操作可能な構成が要望される。また、省力化に伴うオペレータ数の減少や、一括したオペレーションによる生産性向上などを目的として、リモート操作化が要望されることもある。
このような、リモート操作(データ伝送による操作指令の出力)を実現する場合には、セキュリティ性の確保も重要となる。このようなセキュリティ性を確保することで、悪意をもった第三者による不正なアクセスなどを防止する。
本実施の形態によれば、上述したような構成を採用することで、入力ユニットにハードワイヤを介して接続された操作ボタンなどを用いることなく、遠隔地から、セキュア性を確保しつつ、セーフティコントローラに対する起動指令を与えることができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 セーフティ制御システム、2 制御装置、3 リモートIO装置、4 広域ネットワーク、10 ローカルバス、12 第1コネクション、14 第2コネクション、16 第3コネクション、18 データ伝送経路、100 標準制御ユニット、102,202,302,402 プロセッサ、104,204,404 メインメモリ、106,206,406 ストレージ、108,110,408,410 ネットワークコントローラ、112,412 フィールドバスコントローラ、116 メモリカードインターフェイス、118 メモリカード、120,220,320,420 ローカルバスコントローラ、122,422 マスタコントローラ、124,424 IOデータメモリ、126,225,226,325,326,426 送信回路(TX)、128,227,228,327,328,428 受信回路(RX)、130,230,330,430 プロセッサバス、150 入出力データ領域、160 外部公開管理部、170,270 属性管理部、200 セーフティ制御ユニット、222,322 スレーブコントローラ、224,324 バッファメモリ、260 変数管理部、300 セーフティIOユニット、306 システムメモリ、308 セーフティIOモジュール、400 通信カプラユニット、500 ロボット、600 リモート制御装置、610,700,702 ユーザインターフェイス画面、612 状況表示オブジェクト、614 表示オブジェクト、616 メッセージ、618 ボタンオブジェクト、710,720 変数設定、711,723 変数名欄、712,722 データタイプ欄、713 初期値設定欄、714 固定値チェックボックス、715 公開設定欄、716 セキュア設定欄、717 属性設定欄、721 設定欄、1060,2060,4060 システムプログラム、1062 標準制御プログラム、1064 メモリマッピング情報、1066 外部公開プログラム、1068,2068 属性管理プログラム、2062 通信処理プログラム、2064 セーフティプログラム、2066 変数管理プログラム、LN1,LN2,LN3 配線。
Claims (6)
- 機能安全を実現するセーフティ制御システムであって、
セーフティプログラムを実行する演算処理部と、
外部装置からのアクセスを受けて保持する変数を更新するアクセス管理部とを備え、
前記演算処理部は、前記アクセス管理部により特定の変数が予め定められた値に更新されると、前記セーフティプログラムの実行を開始し、
前記アクセス管理部は、前記外部装置との間で、セキュア通信により、変数を更新するための指令を受付ける、セーフティ制御システム。 - 前記セーフティ制御システムは、主として標準制御を担当する標準制御ユニットと、主としてセーフティ制御を担当するセーフティ制御ユニットとを備え、
前記演算処理部は前記セーフティ制御ユニットに設けられ、前記アクセス管理部は前記標準制御ユニットに設けられる、請求項1に記載のセーフティ制御システム。 - 前記標準制御ユニットと前記セーフティ制御ユニットとの間は、ローカルバスを介して、変数の更新が反映される、請求項2に記載のセーフティ制御システム。
- 前記セーフティ制御システムが管理する変数に対して、1または複数の属性の設定を受付ける属性設定受付部をさらに備え、
前記1または複数の属性は、セキュア性の有効/無効の設定を含む、請求項1~3のいずれか1項に記載のセーフティ制御システム。 - 前記アクセス管理部は、前記セキュア性を有効に設定された変数の値を更新するための指令の遣り取りには、セキュア通信を用いる、請求項4に記載のセーフティ制御システム。
- 機能安全を実現するセーフティ制御システムにおける制御方法であって、
外部装置との間で、セキュア通信により、変数値を更新するための指令を受付けるステップと、
前記外部装置からの前記指令を受けて保持する変数を更新するステップと、
特定の変数が予め定められた値に更新されると、セーフティプログラムの実行を開始するステップとを備える、セーフティ制御システムにおける制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201980018995.5A CN111868638B (zh) | 2018-04-13 | 2019-03-20 | 安全控制系统及安全控制系统的控制方法 |
EP19785876.4A EP3779614A4 (en) | 2018-04-13 | 2019-03-20 | SECURITY CONTROL SYSTEM AND CONTROL PROCEDURES IN A SECURITY CONTROL SYSTEM |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018077410A JP6915583B2 (ja) | 2018-04-13 | 2018-04-13 | セーフティ制御システムおよびセーフティ制御システムにおける制御方法 |
JP2018-077410 | 2018-04-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019198456A1 true WO2019198456A1 (ja) | 2019-10-17 |
Family
ID=68164030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/011876 WO2019198456A1 (ja) | 2018-04-13 | 2019-03-20 | セーフティ制御システムおよびセーフティ制御システムにおける制御方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3779614A4 (ja) |
JP (1) | JP6915583B2 (ja) |
CN (1) | CN111868638B (ja) |
WO (1) | WO2019198456A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005031778A (ja) | 2003-07-08 | 2005-02-03 | Omron Corp | セーフティコントローラおよびそれを用いたシステム |
JP2008310536A (ja) * | 2007-06-13 | 2008-12-25 | Omron Corp | 安全リモートi/oターミナル |
JP2013161106A (ja) * | 2012-02-01 | 2013-08-19 | Omron Corp | サポート装置およびサポートプログラム |
EP3112964A1 (en) * | 2015-07-01 | 2017-01-04 | Abb Ag | A method and system for safety-relevant input to a control system |
JP2017103677A (ja) * | 2015-12-03 | 2017-06-08 | 株式会社東芝 | 制御装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6999824B2 (en) * | 1997-08-21 | 2006-02-14 | Fieldbus Foundation | System and method for implementing safety instrumented systems in a fieldbus architecture |
US6975966B2 (en) * | 2003-01-28 | 2005-12-13 | Fisher-Rosemount Systems, Inc. | Integrated diagnostics in a process plant having a process control system and a safety system |
US7237109B2 (en) * | 2003-01-28 | 2007-06-26 | Fisher- Rosemount Systems, Inc. | Integrated security in a process plant having a process control system and a safety system |
AU2003900764A0 (en) * | 2003-02-20 | 2003-03-06 | Secure Systems Limited | Bus bridge security system and method for computers |
US8401003B1 (en) * | 2006-03-20 | 2013-03-19 | 8X8, Inc. | Method and system for updating physical location information |
US20070240069A1 (en) * | 2006-04-11 | 2007-10-11 | Invensys Systems, Inc. | Appearance objects for configuring and graphically displaying programmed/configured process control |
JP4491439B2 (ja) * | 2006-06-30 | 2010-06-30 | 株式会社日立製作所 | 制御装置及び制御方法 |
JP4783452B2 (ja) * | 2009-08-07 | 2011-09-28 | 富士通セミコンダクター株式会社 | セキュアプロセッサ |
DE102010062908B4 (de) * | 2010-12-13 | 2012-10-31 | Siemens Aktiengesellschaft | Verfahren zum Parametrisieren eines Gerätes, parametrisierbares Gerät und Parametrisierungsvorrlchtung |
US9489832B2 (en) * | 2014-04-04 | 2016-11-08 | Rockwell Automation Technologies, Inc. | Industrial-enabled mobile device |
US10097585B2 (en) * | 2016-01-22 | 2018-10-09 | Rockwell Automation Technologies, Inc. | Model-based security policy configuration and enforcement in an industrial automation system |
CN107220313A (zh) * | 2017-05-15 | 2017-09-29 | 太仓诚泽网络科技有限公司 | 一种基于数据查找的企业管理系统 |
-
2018
- 2018-04-13 JP JP2018077410A patent/JP6915583B2/ja active Active
-
2019
- 2019-03-20 CN CN201980018995.5A patent/CN111868638B/zh active Active
- 2019-03-20 EP EP19785876.4A patent/EP3779614A4/en active Pending
- 2019-03-20 WO PCT/JP2019/011876 patent/WO2019198456A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005031778A (ja) | 2003-07-08 | 2005-02-03 | Omron Corp | セーフティコントローラおよびそれを用いたシステム |
JP2008310536A (ja) * | 2007-06-13 | 2008-12-25 | Omron Corp | 安全リモートi/oターミナル |
JP2013161106A (ja) * | 2012-02-01 | 2013-08-19 | Omron Corp | サポート装置およびサポートプログラム |
EP3112964A1 (en) * | 2015-07-01 | 2017-01-04 | Abb Ag | A method and system for safety-relevant input to a control system |
JP2017103677A (ja) * | 2015-12-03 | 2017-06-08 | 株式会社東芝 | 制御装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3779614A4 |
Also Published As
Publication number | Publication date |
---|---|
EP3779614A4 (en) | 2022-01-05 |
JP6915583B2 (ja) | 2021-08-04 |
CN111868638B (zh) | 2024-07-19 |
CN111868638A (zh) | 2020-10-30 |
EP3779614A1 (en) | 2021-02-17 |
JP2019185516A (ja) | 2019-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3026863B1 (en) | Firewall with application packet classifier | |
JP6747525B2 (ja) | セーフティシステムおよびセーフティコントローラ | |
CN110320829B (zh) | 安全控制系统以及安全控制单元 | |
US10715396B2 (en) | Support apparatus, non-transitory computer readable recording medium and setting method | |
JP6954190B2 (ja) | 制御システム、コントローラ、および制御方法 | |
US20190268300A1 (en) | Communication device and method of controlling communication device | |
CN111788816A (zh) | 在自动化系统中建立网络通信的方法 | |
WO2019198456A1 (ja) | セーフティ制御システムおよびセーフティ制御システムにおける制御方法 | |
JP6149393B2 (ja) | 通信カプラ、情報処理装置、制御方法およびプログラム | |
US11226611B2 (en) | Control device, control method, and control program | |
JP4873220B2 (ja) | フィールド通信システム | |
KR101294308B1 (ko) | 설비 관제 시스템 및 이의 운전 방법 | |
JP2019180019A (ja) | 制御装置 | |
JP2014127055A (ja) | Plcの周辺装置 | |
JP7163657B2 (ja) | サポート装置、設定方法、および設定プログラム | |
WO2024014047A1 (ja) | 制御システム、制御装置および通信方法 | |
WO2022190186A1 (ja) | プログラマブルコントローラの通信ユニット、受信データ記憶方法及びプログラム | |
JP6409520B2 (ja) | 制御システム、および中継装置 | |
Ratcliff | CANopen implementation issues |
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: 19785876 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2019785876 Country of ref document: EP |