WO2020246088A1 - 制御システム - Google Patents

制御システム Download PDF

Info

Publication number
WO2020246088A1
WO2020246088A1 PCT/JP2020/009293 JP2020009293W WO2020246088A1 WO 2020246088 A1 WO2020246088 A1 WO 2020246088A1 JP 2020009293 W JP2020009293 W JP 2020009293W WO 2020246088 A1 WO2020246088 A1 WO 2020246088A1
Authority
WO
WIPO (PCT)
Prior art keywords
phase
control
value
engine
security
Prior art date
Application number
PCT/JP2020/009293
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 US17/616,003 priority Critical patent/US20220327206A1/en
Priority to EP20818934.0A priority patent/EP3982212A4/en
Priority to CN202080040334.5A priority patent/CN113950647A/zh
Publication of WO2020246088A1 publication Critical patent/WO2020246088A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/058Safety, monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • 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/048Monitoring; Safety

Definitions

  • the present invention relates to a control system for controlling a controlled object.
  • control devices such as PLCs (programmable logic controllers) are used to control the various facilities and the various devices placed in each facility.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2000-137506
  • it is designated in advance when the abnormality history is registered or when a predetermined time arrives. It only sends an e-mail to the recipient, and no security measures are taken into consideration.
  • control device Information and Communication Technology
  • ICT Information and Communication Technology
  • countermeasures against possible incidents are designed according to the security policy set by each customer who uses the control system, and are arbitrarily designed according to each customer. Therefore, it is required to provide a control system in which the relationship between the operating state of the controlled object and the incident response operation is arbitrarily designed.
  • One object of the present invention is to provide a control system in which the relationship between the operating state of the controlled object and the incident response operation is arbitrarily designed.
  • a control system for controlling a controlled object includes a control engine that periodically updates an internal state value based on a signal exchanged with the controlled object, and an incident that may occur in the control system. Based on a security engine that performs the corresponding incident response action, an internal state value held by the control engine, and one or more values arbitrarily selected by the user among the internal state values held by the security engine. It includes a phase update means for updating the value of the phase indicating the operating state of the controlled object.
  • the security engine has a means of holding the action definition information in which the content of the incident response action is defined for each phase, and the corresponding incident response defined in the action definition information according to the value of the phase updated by the phase update means. Includes execution means to perform the operation.
  • the value of the phase indicating the operating state of the controlled object is updated based on one or a plurality of values arbitrarily selected by the user in advance. That is, the operating state of the controlled object is defined based on one or a plurality of values arbitrarily selected by the user in advance. Since the content of the incident response operation is defined for each phase, it is possible to provide a control system in which the relationship between the operation state of the controlled object and the incident response operation is arbitrarily designed.
  • control system may include setting means for accepting selection of one or more values used for updating the values of the phase. According to this configuration, the selection of one or more values is accepted, and the relationship between the operation state of the controlled object and the incident response operation is newly designed, or the relationship between the operation state of the control target and the incident response operation is changed. It is possible to do.
  • phase update means may be incorporated as part of the control engine.
  • the control program executed by the control engine contains one or more instructions for updating the value of the phase. According to this configuration, it is possible to provide a control system in which the relationship between the operating state of the controlled object and the incident response operation is arbitrarily designed.
  • the setting means may accept the execution condition of the instruction for each of the one or a plurality of instructions for updating the value of the phase.
  • the phase can be arbitrarily defined by setting the execution condition of the instruction.
  • the phase update means updates the value of the phase according to the determination condition that defines the phase. According to this configuration, it is possible to provide a control system in which the relationship between the operating state of the controlled object and the incident response operation is arbitrarily designed.
  • the setting means accepts the selection of the value that defines the phase from the internal state value held by the control engine and the internal state value held by the security engine as a determination condition.
  • the phase can be arbitrarily defined by accepting the selection of the value that defines the phase.
  • control system may further include a control unit having a control engine and a security unit having a security engine.
  • the cycle in which the control unit updates one or more values used for updating the value of the phase may be synchronized with the cycle in which the phase updating means updates the value of the phase.
  • the update cycle is synchronized between the value of the phase indicating the operating state of the controlled object and the internal state value updated based on the signal exchanged with the controlled object.
  • the state of the controlled object can be reflected in the phase value in real time.
  • FIG. 1 is a schematic diagram showing an example of a control system 10 according to the present embodiment.
  • the control system 10 includes a control engine 150, a security engine 250, and a phase update means 252.
  • Each of the control engine 150, the security engine 250, and the phase update means 252 is realized by an arbitrary hardware element such as a processor, an arbitrary software element such as various programs, or a combination of these elements.
  • Each engine can be implemented in any form.
  • the control engine 150, the security engine 250, and the phase update means 252 may be realized by one processor executing various programs. That is, the control engine 150, the security engine 250, and the phase update means 252 may be realized by one device.
  • the control engine 150 periodically updates the value of the variable 1510, which is an internal state value, based on the signal exchanged with the field device 500 to be controlled.
  • the variable 1510 includes a device variable indicating a value held by the field device 500 and an internal variable used only inside the program executed by the control unit 100.
  • the device variables include variables of input data input from the field device 500 and output data output to the field device 500.
  • the internal variable includes, for example, a system variable indicating the state of the control unit 100 and the like.
  • the security engine 250 executes an incident response operation according to an incident that may occur in the control system 10.
  • incident means a sign, phenomenon, or abnormality that may pose a security threat to the control system 10 centered on the controller system 1.
  • the "incident response operation” includes an operation of preventing the occurrence of an incident, an operation of changing the behavior according to the incident that has occurred, and an operation associated with the occurrence of the incident.
  • Actions to prevent the occurrence of an incident include actions to detect an incident.
  • the action of changing the behavior according to the incident includes the action of notifying the incident that occurred to change the behavior according to the incident that occurred.
  • the phase update means 252 updates the phase value 2522 based on the determination variable (phase update variable 1512) arbitrarily selected by the user among the values of the variable 1510 updated by the control engine 150.
  • the phase update means 252 may be incorporated in a part of the control engine 150 or the security engine 250. In the present embodiment described with reference to FIGS. 2 to 11, the phase updating means 252 will be described as being provided by the security engine 250.
  • the security engine 250 includes a response database 254 and an incident response means 256.
  • the phase update variable 1512 is selected by, for example, a device that provides the user with functions such as program creation, debugging, and setting of various parameters.
  • the correspondence table 2542 which is the action definition information in which the contents of the incident response operation are defined, is stored for each phase.
  • Each correspondence table 2542 and the phase value 2522 have a correspondence relationship.
  • the incident response means 256 refers to the phase value 2522 updated by the phase update means 252 and the correspondence database 254, and refers to the correspondence table 2542 corresponding to the phase indicated by the phase value 2522, and executes the incident response operation. ..
  • the incident response means 256 changes the conditions for detecting the occurrence of an incident, changes the behavior according to the incident that has occurred, and the like.
  • the phase indicating the operating state of the controlled object is a state defined by the value of the phase update variable 1512 arbitrarily selected by the user, and is arbitrarily defined by the user. It is in a state where it can be done. That is, the controller system 1 in the present embodiment can change the incident response operation for each phase arbitrarily defined by the user. That is, in the control system 10, the relationship between the operating state of the controlled object and the incident response operation is arbitrarily designed.
  • FIG. 2 is an external view showing a configuration example of the controller system 1 according to the present embodiment.
  • the controller system 1 includes a control unit 100, a security unit 200, a safety unit 300, one or more functional units 400, and a power supply unit 450.
  • control unit 100 and the security unit 200 are connected via an arbitrary data transmission line (for example, PCI Express or Ethernet (registered trademark)).
  • control unit 100 and the safety unit 300 and one or more functional units 400 are connected via an internal bus (not shown).
  • the control unit 100 and the security unit 200 may be connected via an internal bus (not shown).
  • the control unit 100 executes a central process in the controller system 1.
  • the control unit 100 has a control engine 150 and executes a control operation for controlling a controlled object according to an arbitrarily designed requirement specification.
  • the control calculation executed by the control unit 100 is also referred to as "standard control" in comparison with the control calculation executed by the safety unit 300 described later.
  • the control unit 100 has one or a plurality of communication ports.
  • the security unit 200 is connected to the control unit 100, has a security engine 250, and is in charge of a security function for the controller system 1.
  • the security unit 200 has one or more communication ports.
  • the security unit 200 realizes the execution of the incident response operation by detecting the incident and executing the processing according to the detected incident.
  • the safety unit 300 executes a control calculation for realizing a safety function related to a controlled object independently of the control unit 100.
  • the control calculation executed by the safety unit 300 is also referred to as "safety control".
  • safety control is designed to meet the requirements for realizing the safety function specified in IEC 61508 or the like.
  • Safety control is a general term for processes for preventing human safety from being threatened by equipment or machines.
  • the functional unit 400 provides various functions for realizing control for various control targets by the controller system 1.
  • the functional unit 400 may typically include an I / O unit, a safety I / O unit, a communication unit, a motion controller unit, a temperature control unit, a pulse counter unit, and the like.
  • the I / O unit for example, a digital input (DI) unit, a digital output (DO) unit, an analog output (AI) unit, an analog output (AO) unit, a pulse catch input unit, and a plurality of types are mixed. Examples include a composite unit.
  • the safety I / O unit is in charge of I / O processing related to safety control.
  • the power supply unit 450 supplies power of a predetermined voltage to each unit constituting the controller system 1.
  • FIG. 3 is a schematic diagram showing a hardware configuration example of the control unit 100 constituting the controller system 1 according to the present embodiment.
  • the control unit 100 has a processor 102 such as a CPU (Central Processing Unit) and a GPU (Graphical Processing Unit), a chipset 104, a main storage device 106, and a secondary storage device as main components. It includes 108, a communication controller 110, a USB controller 112, a memory card interface 114, network controllers 116, 118, 120, an internal bus controller 122, and an indicator 124.
  • a processor 102 such as a CPU (Central Processing Unit) and a GPU (Graphical Processing Unit)
  • chipset 104 such as a main storage device 106
  • main storage device 106 main storage device
  • secondary storage device main components. It includes 108, a communication controller 110, a USB controller 112, a memory card interface 114, network controllers 116, 118, 120, an internal bus controller 122, and an indicator 124.
  • the processor 102 reads various programs stored in the secondary storage device 108 or the memory card 115, expands them in the main storage device 106, and executes them to perform control calculations related to standard control and various programs as described later. Realize the processing.
  • the main storage device 106 is composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory) or a SRAM (Static Random Access Memory).
  • the secondary storage device 108 is composed of, for example, a non-volatile storage device such as an HDD (Hard Disc Drive) or an SSD (Solid State Drive).
  • the chipset 104 realizes the processing of the control unit 100 as a whole by mediating the exchange of data between the processor 102 and each component.
  • the secondary storage device 108 stores, in addition to the system program for realizing the basic functions of the control unit 100, a control program that operates in the execution environment provided by the system program.
  • the control program includes a user program that is a program created by the user.
  • the communication controller 110 is in charge of exchanging data with the security unit 200.
  • the communication controller 110 for example, a communication chip corresponding to PCI Express or Ethernet (registered trademark) can be adopted.
  • the USB controller 112 is in charge of exchanging data with an arbitrary information processing device via a USB connection.
  • the USB controller 112 is in charge of exchanging data with the support device 600.
  • the memory card interface 114 is configured so that the memory card 115, which is an example of a storage medium, can be attached and detached.
  • the memory card interface 114 can write data such as a control program and various settings to the memory card 115, or can read data such as a control program and various settings from the memory card 115.
  • Each of the network controllers 116, 118, 120 is in charge of exchanging data with any device via the network.
  • the network controllers 116, 118, 120 may employ industrial network protocols such as EtherCAT®, EtherNet / IP®, DeviceNet®, CompoNet®.
  • the internal bus controller 122 is in charge of exchanging data with the safety unit 300 and one or a plurality of functional units 400 constituting the controller system 1.
  • a manufacturer-specific communication protocol may be used, or a communication protocol that is the same as or compliant with any of the industrial network protocols may be used.
  • the indicator 124 notifies the operating state of the control unit 100 and the like, and is composed of one or a plurality of LEDs arranged on the surface of the unit.
  • FIG. 3 shows a configuration example in which the necessary functions are provided by the processor 102 executing the program, and some or all of these provided functions are provided by a dedicated hardware circuit (for example, ASIC). Alternatively, it may be implemented using an FPGA or the like). Alternatively, the main part of the control unit 100 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • a general-purpose architecture for example, an industrial personal computer based on a general-purpose personal computer.
  • virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • FIG. 4 is a schematic diagram showing a hardware configuration example of the security unit 200 constituting the controller system 1 according to the present embodiment.
  • the security unit 200 has, as main components, a processor 202 such as a CPU and a GPU, a chipset 204, a main storage device 206, a secondary storage device 208, a communication controller 210, and a USB controller. Includes 212, memory card interface 214, network controllers 216, 218, and indicator 224.
  • the processor 202 realizes various security functions as described later by reading various programs stored in the secondary storage device 208 or the memory card 215, deploying them in the main storage device 206, and executing the programs.
  • the main storage device 206 is composed of a volatile storage device such as DRAM or SRAM.
  • the secondary storage device 208 is composed of, for example, a non-volatile storage device such as an HDD or an SSD.
  • the chipset 204 realizes the processing of the security unit 200 as a whole by mediating the exchange of data between the processor 202 and each component.
  • the security system program that operates in the execution environment provided by the system program is stored.
  • the communication controller 210 is in charge of exchanging data with the control unit 100.
  • a communication chip corresponding to, for example, PCI Express or Ethernet (registered trademark) can be adopted for the control unit 100 in the same manner as the communication controller 210.
  • the USB controller 212 is in charge of exchanging data with an arbitrary information processing device via a USB connection.
  • the USB controller 212 is in charge of exchanging data with the support device 600.
  • the memory card interface 214 is configured so that the memory card 215, which is an example of a storage medium, can be attached and detached.
  • the memory card interface 214 can write data such as a control program and various settings to the memory card 215, or can read data such as a control program and various settings from the memory card 215.
  • Each of the network controllers 216 and 218 is in charge of exchanging data with and from any device via the network.
  • the network controllers 216 and 218 may employ a general-purpose network protocol such as Ethernet®.
  • the indicator 224 notifies the operating state of the security unit 200, etc., and is composed of one or a plurality of LEDs arranged on the surface of the unit.
  • FIG. 4 shows a configuration example in which the necessary functions are provided by the processor 202 executing the program, and some or all of these provided functions are provided by a dedicated hardware circuit (for example, ASIC). Alternatively, it may be implemented using an FPGA or the like). Alternatively, the main part of the security unit 200 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • a general-purpose architecture for example, an industrial personal computer based on a general-purpose personal computer.
  • virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • FIG. 5 is a schematic diagram showing a typical example of the control system 10 including the controller system 1 according to the present embodiment.
  • DB in FIG. 5 means a database
  • UPG means a user program.
  • the control system 10 shown in FIG. 5 targets the equipment X as a control target.
  • the equipment X is, for example, equipment for an assembly process, and includes a conveyor that conveys a work as a field device 500, and a robot that can give an arbitrary physical action to the work on the conveyor.
  • the control unit 100 has communication ports 142, 144, 146, 148.
  • the communication port 142 corresponds to the USB controller 112 in FIG.
  • the communication port 144 corresponds to the network controller 116 in FIG.
  • the communication port 146 corresponds to the network controller 118 in FIG.
  • the communication port 148 corresponds to the network controller 120 in FIG.
  • the control unit 100 is communicably connected to the support device 600 via the communication port 142.
  • the support device 600 provides the user with functions such as creating a program executed by each unit included in the controller system 1, debugging, and setting various parameters.
  • a program created by a user using the support device 600 is referred to as a user program 1086, and the user program 1086 is transmitted from the support device 600 to the control unit 100 and executed by the control unit 100.
  • the support device 600 and the control unit 100 are typically connected using a USB cable.
  • the user program 1086 may be stored in a storage medium such as a memory card 115.
  • the control unit 100 is configured so that the memory card 115 can be attached and detached via the memory card interface 114, and the user program 1086 stored in the memory card 115 can be read out.
  • the control unit 100 is communicably connected to one or more field devices 500 via the communication port 144.
  • the field device 500 includes a sensor and a detector that collect various information necessary for control calculation from a controlled object, an actuator that exerts some action on the controlled object, and the like.
  • the field device 500 exchanges signals with a robot that exerts some external action on the work, a conveyor that conveys the work, and sensors and actuators arranged in the field. Including units and so on.
  • the communication protocol between the field device 500 and the control unit 100 typically utilizes EtherCAT®.
  • the control unit 100 is communicably connected to one or more HMIs (Human Machine Interface) 800 via the communication port 146.
  • the HMI 800 presents various information obtained by the control calculation in the controller system 1 to the operator, and generates an internal command or the like for the controller system 1 according to the operation from the operator.
  • the communication protocol between the HMI 800 and the control unit 100 typically utilizes EtherNet / IP®.
  • the control unit 100 is communicably connected to the database 900 via the communication port 148.
  • the database 900 collects various data transmitted from the controller system 1 (for example, information on traceability measured from the work to be controlled).
  • the database 900 may be communicably connected to the control unit 100 via an in-house network, or may be communicably connected to the control unit 100 via a VPN (Virtual Private Network) or the like.
  • EtherNet / IP registered trademark
  • the security unit 200 has a communication port 242 and a communication port 244.
  • the communication port 242 corresponds to the network controller 216 in FIG.
  • the communication port 244 corresponds to the USB controller 212 in FIG.
  • the security unit 200 is communicably connected to the SCADA (Supervisory Control And Data Acquisition) device 700 via the communication port 242. Communication between the security unit 200 and the SCAD device 700 is typically performed using a VPN.
  • SCADA Supervisory Control And Data Acquisition
  • the security unit 200 is communicably connected to the support device 600 via the communication port 244.
  • the support device 600 and the security unit 200 are communicably connected, it is possible to install security-related settings from the support device 600 to the security unit 200.
  • the user program 1086 executed by the control unit 100 may be installed. Further, by connecting the control unit 100 and the support device 600, security-related settings may be installed. Further, the support device 600 capable of communicating with the security unit 200 and the support device 600 capable of communicating with the control unit 100 may be different support devices 600 or a common support device 600. Further, one support device 600 may be configured to be connected to the control unit 100 and the security unit 200 at the same time, or may not be connected to the control unit 100 and the security unit 200 at the same time.
  • the security unit 200 may be configured to be able to connect to a router having a function of relaying communication with an external network and a function of FW (Fire Wall) via the communication port 244. Good. By connecting to the router, the security unit 200 can communicate with the network outside the control system 10 via the external network.
  • FW Fire Wall
  • FIG. 6 is a block diagram showing a functional configuration of the controller system 1.
  • the control unit 100 includes a control engine 150, which is a processing execution unit that executes control calculations related to standard control, and an information engine 160 that exchanges data between an external device and the control engine 150.
  • the security unit 200 includes a security engine 250 for realizing a security function.
  • Each engine is realized by any hardware element such as the processor of each unit, any software element such as various programs, or a combination of these elements.
  • Each engine can be implemented in any form.
  • the control engine 150 periodically updates the value of the variable 1510, which is an internal state value, based on the signal exchanged with the field device 500 to be controlled.
  • the information engine 160 executes arbitrary information processing on the data (variable value) held by the control unit 100.
  • the information engine 160 includes a process of periodically transmitting data held by the control unit 100 to a database 900 or the like. SQL or the like is used for transmitting such data.
  • the security engine 250 executes an incident response operation according to an incident that may occur in the control system 10.
  • the security engine 250 includes a phase update means 252, a response database 254, and an incident response means 256.
  • the phase update means 252 and the incident response means 256 are, for example, a system program for realizing the basic functions of the security unit 200 or a function realized by executing a security system program operating on the execution environment provided by the system program. Is. Further, the corresponding database 254 is realized by the secondary storage device 208 of FIG.
  • the phase update means 252 updates the phase value (phase value 2522) indicating the operating state of the controlled object.
  • the phase update means 252 updates the phase value 2522 based on the determination variable (phase update variable 1512) arbitrarily selected by the user among the values of the variable 1510 updated by the control engine 150. More specifically, the phase updating means 252 updates the phase value 2522 with reference to the determination table 2524.
  • the determination table 2524 defines the conditions for updating the phase value 2522, and the information that can identify the phase update variable 1512 arbitrarily selected by the user and the phase value 2522 according to the value of the phase update variable 1512. Includes information indicating.
  • the determination table 2524 is generated by the support device 600.
  • the generation scene of the determination table 2524 by the support device 600 will be described later.
  • the correspondence table 2542 which is the action definition information in which the contents of the incident response operation are defined, is stored for each phase.
  • Each correspondence table 2542 and the phase value 2522 have a correspondence relationship.
  • the incident response means 256 refers to the phase value 2522 updated by the phase update means 252 and the correspondence database 254, and refers to the correspondence table 2542 according to the phase indicated by the phase value 2522. Refer to and perform the incident response operation.
  • the incident response means 256 instructs the control engine 150 to change the behavior according to the incident that has occurred.
  • the detection means 258 detects the occurrence of an incident according to the detection conditions.
  • the detection condition is not limited to the detection logic, and includes a threshold value for determining that an incident has occurred.
  • the phase indicating the operating state of the controlled object is a state defined by the value of the phase update variable 1512 arbitrarily selected by the user, and can be arbitrarily defined by the user. That is, the controller system 1 in the present embodiment can change the incident response operation for each phase arbitrarily defined by the user. This makes it possible to design security according to different security policies for each user.
  • the phase update means 252 of the controller system 1 shown in FIG. 6 periodically receives the value of the phase update variable 1512 from the control unit 100, and periodically updates the phase value 2522.
  • the incident response means 256 executes an incident response operation according to the phase value 2522 with reference to the periodically updated phase value 2522.
  • the incident response action may include a preventive action in preparation for a possible incident.
  • the preventive action may include, for example, detecting the occurrence of an incident, allowing the connection to the controller system 1, and the like.
  • the detection conditions may be changed according to the phase value 2522. That is, the security unit 200 may set detection conditions for each phase. For example, the threshold value for determining that an incident has occurred may be changed according to the phase.
  • the incident response means 256 may select the response table 2542 that defines the incident response operation periodically or according to the change of the phase value 2522.
  • the response table 2542 is selected in response to the change in the phase value 2522, for example, when the phase update means 252 changes the value of the phase value 2522, the incident response means 256 is notified, and the incident response means 256 is notified according to the notification. Performs an incident response action corresponding to the changed phase value.
  • the preventive action for the incident that may occur as the response table 2542 is specified, the incident response means 256 periodically according to the phase value 2522 regardless of whether the detection means 258 has detected the incident. , Or the preventive action may be changed according to the change of the phase value 2522.
  • phase update variables and phase value update timing The update timing of the phase update variable 1512 and the phase value 2522 will be described with reference to FIG. 7.
  • the phase update variable 1512 is periodically updated by the control engine 150 of the control unit 100. Further, the security engine 250 of the security unit 200 periodically acquires the phase update variable 1512 and periodically updates the phase value 2522.
  • FIG. 7 is a diagram showing a cycle in which the phase update variable 1512 is updated by the control engine 150 and a cycle in which the phase value 2522 is updated by the security engine 250.
  • Data exchange between the control engine 150 and the security engine 250 is performed by the communication controller 110 of the control unit 100 and the communication controller 210 of the security unit 200.
  • the control engine 150 periodically updates the value of the variable 1510.
  • the variable 1510 includes the phase update variable 1512.
  • FIG. 7 the description will be focused on updating the value of the phase update variable 1512.
  • updating the value of the phase update variable 1512 executed by the control engine 150 is also referred to as an update process.
  • the security engine 250 periodically executes the process for updating the phase value 2522 and executing the incident response operation.
  • this process executed periodically is also referred to as a security process.
  • the update processing cycle and the security processing are executed in synchronization with each other.
  • the security processing on the nth lap will be described.
  • the security engine 250 acquires the phase update variable 1512.
  • the phase update variable 1512 acquired in S210 is the phase update variable 1512 after the control engine 150 has updated in the previous cycle (n-1th lap).
  • the security engine 250 acquires the phase update variable 1512 via the communication controller 110 of the control unit 100 and the communication controller 210 of the security unit 200.
  • the security engine 250 updates the phase value 2522. Specifically, the security engine 250 updates the phase value 2522 based on the phase update variable 1512 and the determination table 2524 acquired in S210.
  • the security engine 250 determines whether or not an incident has been detected. If no incident is detected (NO in S214), the security engine 250 ends the security process and waits until the next cycle of n + 1 laps starts.
  • the security engine 250 executes an incident response operation. Specifically, the security engine 250 executes an incident response operation according to the phase value 2522 and the response database 254 updated in S212.
  • the security engine 250 After executing the incident response operation, the security engine 250 ends the security process and waits until the next cycle of n + 1 laps starts.
  • control engine 150 updates the value of the phase update variable 1512 at regular intervals in S110. After updating the value of the phase update variable 1512, the control engine 150 ends the update process and waits until the next control cycle starts.
  • phase value 2522 indicating the operating state of the control target and the variable 1510 updated based on the signal exchanged with the control target synchronize the update cycle with the control target. Can be reflected in the phase value 2522 in real time.
  • the incident response operation which is the behavior of the controller system 1 according to the incident that may occur, will be specifically described.
  • Incident response operations can be broadly divided into equipment control and information communication.
  • Equipment control mainly means the processing in charge of the safety engine, which is the processing execution unit that executes the control calculation related to the control engine 150 of the control unit 100 and / or the safety control of the safety unit 300, and the equipment or machine to be controlled. It means the correspondence about the operation of.
  • Information communication mainly means the processing in charge of the information engine 160 of the control unit 100, and handles the exchange of data between the control unit 100 and the external device and the handling of information inside the control unit 100. means.
  • Examples of the behavior (correspondence) of the controller system 1 include “normal operation”, “degenerate”, and “stop”.
  • Normal operation means a state in which equipment and machines can be continuously operated according to the system design and production plan.
  • Degenerate means to continue the operation of the controller system 1 in a limited manner such as partial stop (only a part of the operation), performance reduction (performance deterioration), and function limitation.
  • Stand means to safely stop the operation of the target equipment or machine or the controller system 1.
  • Degeneration of equipment control means operating in a restricted state in terms of range, function, productivity, and the like.
  • the zone to be controlled can be limited.
  • the control side such as a control device, a module mounted on the control device, and a unit mounted on the control device can be restricted.
  • the controlled side controlled object
  • the controlled side controlled object
  • a specific machine, line, floor, or the entire factory can be restricted.
  • productivity for example, line speed, number of production per unit time, production amount per unit time, etc.
  • productivity can be temporarily limited for safety and security.
  • Degeneracy of information communication means operating in a restricted state in terms of range, direction, bandwidth, quality of service (QoS), data, and the like.
  • communication physical port for example, communication physical port, communication logic port, network withdrawal, etc. can be restricted.
  • the available TCP / UDP port may be limited, or the available communication protocol may be limited. Furthermore, the MAC address and IP address that accept access may be restricted.
  • the direction in which data flows in each port may be limited to only one direction.
  • the direction in which data flows in each port may be limited to only one direction.
  • only data reception is permitted, or data transmission only is permitted.
  • the communication speed may be limited (for example, changed from 1 Gbps to 100 Mbps) in order to reduce the communication load or the processing load of the controller system 1.
  • the priority of packets to be passed may be dynamically changed. For example, when some kind of security threat is detected, the priority of the packet to be passed may be changed to a higher priority.
  • the process data communication may be enabled / disabled and the update of the output value may be restricted (update stop / zero clear / hold the previous value, etc.).
  • degenerate can include operation in a state where any restriction is applied to normal operation. It should be noted that “degenerate” can be regarded as a partial stop, and “stop” can be regarded as an extended concept of “degenerate” because it can include stopping a specific function completely.
  • FIG. 8 is a schematic view showing a hardware configuration example of the support device 600.
  • the support device 600 is realized by using hardware (for example, a general-purpose personal computer) that follows a general-purpose architecture.
  • the support device 600 includes a processor 602, a main memory 604, an input unit 606, a display unit 608, a storage 610, an optical drive 612, and a USB controller 620. These components are connected via the processor bus 618.
  • the processor 602 is configured for the controller system 1 by reading a program (OS 6102 and support program 6104 as an example) stored in the storage 610, expanding the program in the main memory 604, and executing the program, which is composed of a CPU, a GPU, and the like. Realize processing etc.
  • a program OS 6102 and support program 6104 as an example
  • the main memory 604 is composed of a volatile storage device such as DRAM or SRAM.
  • the storage 610 is composed of, for example, a non-volatile storage device such as an HDD or SSD.
  • the support program 6104 for providing the function as the support device 600 is stored. That is, the support program 6104 is executed by the computer connected to the controller system 1 to realize the support device 600 according to the present embodiment.
  • the input unit 606 is composed of a keyboard, a mouse, and the like, and accepts user operations.
  • the display unit 608 is composed of a display, various indicators, a printer, and the like, and outputs a processing result from the processor 602 and the like.
  • the USB controller 620 exchanges data with the controller system 1 and the like via the USB connection.
  • the support device 600 has an optical drive 612, and is stored in a recording medium 614 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that non-transiently stores a computer-readable program.
  • a recording medium 614 for example, an optical recording medium such as a DVD (Digital Versatile Disc)
  • the stored program is read and installed in the storage 610 or the like.
  • the support program 6104 or the like executed by the support device 600 may be installed via a computer-readable recording medium 614, or may be installed by downloading from a server device or the like on the network. Further, the function provided by the support device 600 according to the present embodiment may be realized by using a part of the module provided by the OS.
  • FIG. 8 shows a configuration example in which the functions required as the support device 600 are provided by the processor 602 executing the program, and some or all of these provided functions are provided by dedicated hardware. It may be implemented using a circuit (eg, ASIC or FPGA).
  • the determination table 2524 contains information that can identify the phase update variable 1512.
  • the phase update variable 1512 is selected, for example, by being operated by the user according to the setting screens shown in FIGS. 9 to 11 provided by the support device 600. That is, the support device 600 functions as a setting means for accepting the selection of the phase update variable 1512 used for updating the phase value 1514.
  • FIG. 9 is a diagram showing an example of initial values of the setting screen.
  • FIG. 10 is a diagram for explaining a method of adding phases.
  • FIG. 11 is a diagram for explaining an example when a phase update variable 1512 newly used for phase determination is selected.
  • the setting screen 640 includes a phase area 642 for displaying the name of the phase and a condition input area 644 for defining each phase.
  • the setting screen 640 further includes a cancel button 646 for canceling the input setting content and a confirmation button 648 for confirming the input setting content.
  • the phase area 642 includes a phase name cell 6422 for displaying the name of the phase and a phase addition button 6424 for adding a new phase.
  • the phase names (“startup / maintenance”, “abnormality occurring”, and “operating” in the example shown in FIG. 9) described in each name cell 6422 can be arbitrarily changed.
  • the condition input area 644 includes a condition name cell 6442 for displaying the condition name, a condition addition button 6444 for adding a new condition, and a selection tab 6446 for selecting a setting value of each condition.
  • a condition name cell 6442 it is possible to display the phase update variable 1512 arbitrarily selected by the user.
  • startup / maintenance means a state in which a PC is connected ("True” in the figure).
  • startup / maintenance means a state in which a PC is connected (“True” in the figure).
  • Abnormality is occurring means a state in which the PC is not connected (“False” in the figure) and an abnormality is occurring (“True” in the figure).
  • During operation means a state in which the PC is not connected (“False” in the figure) and no abnormality has occurred (“False” in the figure).
  • phase addition button 6424 When the phase addition button 6424 is operated, an empty phase name cell 6422D is added. Also, an empty selection tab 6446 for setting conditions is added. Similarly, when the condition addition button 6444 is operated, an empty condition name cell 6442 is added. Also, an empty selection tab 6446 for setting conditions is added.
  • the user can newly input an arbitrary name in the empty phase name cell 6422D. Further, the user can select an arbitrary variable in the empty condition name cell 6442 and set and register the selected variable as a phase update variable. Further, the support device 600 sets a value that can be taken by the selected phase update variable as a selection candidate that can be selected by operating the selection tab 6446.
  • the support device 600 is configured so that the variable 1510 updated by the control engine 150 can be specified. As a result, the user can surely select the phase update variable 1512 from the variables 1510 updated by the control engine 150.
  • phase variable is newly selected as the phase update variable, a new phase "setup change” is added as a phase, and the name of the phase "in operation" is "normal operation". It shall be changed to. Also, when the selection tab 6446 is manipulated, the possible values of the phase variables are displayed as a selectable list 6448.
  • phase update variable 1512 a variable indicating the presence or absence of a PC connection and a variable indicating the presence or absence of an abnormality are selected.
  • the phase variable and the variable indicating the value of the abnormality counter are sent from the control engine 150 to the security engine 250.
  • the phase update means 252 of the security engine 250 sets the phase value 2522 based on these phase update variables 1512 as "startup / maintenance", “abnormality occurring", “normal operation”, and "setup change”. Update to a value indicating one of the above.
  • phase update variable 1512 is not limited to the value updated by the control engine 150.
  • it may be an internal state value included in the security engine 250.
  • the security engine 250 has a variable (internal state value) indicating the presence / absence of a PC connection, the presence / absence of a PC connection may be determined according to this variable.
  • the abnormality counter is not limited to the abnormality detected by the control unit, and may include an incident (abnormality) detected by the detection means 258 of the security engine 250.
  • the phase update means 252 updates the phase value 2522 with reference to the determination table 2524 that defines the conditions for updating the phase value 2522. Further, the support device 600 provides a setting screen 640 for creating the determination table 2524, and accepts the selection of the variable 1510 that defines each phase and the designation of the value of the variable 1510.
  • phase update means 252 shows an example realized by the security unit 200.
  • the phase update means may be realized by the system program of the control unit 100.
  • the determination table 2524 is preferably stored in the control unit 100.
  • phase updating means 252 updates the phase value 2522 with reference to the determination table 2524.
  • the phase update means 252 may be realized by executing a user program created by the user and including an instruction for changing the value of the phase.
  • FIG. 12 is a block diagram showing a functional configuration of the control system 10a including the controller system 1a in the modified example.
  • the control system 10a shown in FIG. 12 differs from the control system 10 in that the support device 600a is provided. Further, the controller system 1a shown in FIG. 12 is different from the controller system 1 in that it has a control engine 150a and a security engine 250a instead of the control engine 150 and the security engine 250.
  • control engine 150a updates the phase value
  • the incident response means 256 of the security engine 250a executes the incident response operation according to the phase value updated by the control engine 150a and the response database 254. ..
  • the security engine 250a differs from the security engine 250 in that it does not have the phase update means 252 and the determination table 2524. Other configurations will be omitted because they are common to the security engine 250.
  • the control engine 150a differs from the control engine 150 in that it has the phase update means 152. Unlike the phase updating means 252, the phase updating means 152 is incorporated in a part of the control engine 150a. That is, the variable 1510 updated by the control engine 150a includes the phase value 1514.
  • the phase update means 152 determines whether or not to execute an instruction for changing the phase value 1514 by referring to the phase update variable 1512 included in the variable 1510, and updates the phase value 1514 according to the determination.
  • the support device 600a has an editor function for creating a user program for executing the phase update means 152, and provides an object of a change instruction for changing the phase value 1514. That is, the function of the phase update means 152 is provided by the support device 600a.
  • FIG. 13 is a diagram showing an example of a user program for realizing the phase update means 152.
  • the user program shown in FIG. 13 can be created by using the editor function provided by the support device 600a.
  • the user program shown in FIG. 13 is created by the code of the ladder program, it may be created by another programming language.
  • the user program for realizing the phase update means 152 defines a plurality of change instructions 660 (660A, 660B, 660C, 660D) for updating the phase value 1514 and execution conditions for executing each change instruction 660. Includes the execution condition specification unit 670 (670A, 670B, 670C, 670D).
  • the user program is created so that the change instruction 660A is executed when the condition specified by the execution condition defining unit 670A is satisfied.
  • the user defines the conditions in the execution condition defining unit 670 by combining the conditions defined by each of the A contact 662A, 664A, the B contact 662B, 664B, and the comparison instruction 666A, 666B.
  • the variables referred to by each condition correspond to the phase update variables.
  • the user can create a user program for updating the phase value 1514 by combining an arbitrary change instruction 660 and an arbitrary condition by using the edit function provided by the support device 600a. It is possible. That is, the support device 600a functions as a setting means for receiving the execution condition of the change instruction.
  • a control system (10, 10a) for controlling a controlled object for controlling a controlled object.
  • a control engine (150, 150a) that periodically updates the internal state value based on a signal exchanged with the controlled object.
  • a security engine (250, 250a) that executes an incident response operation according to an incident that may occur in the control system, and The control target is based on the internal state value (1510) held by the control engine and one or more values (1512) arbitrarily selected by the user among the internal state values held by the security engine. It is provided with a phase updating means (252) for updating the phase values (2522, 1514) indicating the operating state of the above.
  • the security engine Means for holding action definition information (2542) in which the content of incident response actions is defined for each phase, and A control system including an execution means (256) that executes a corresponding incident response operation defined in the action definition information according to the value of the phase updated by the phase update means.
  • phase update means (152) is incorporated in a part of the control engine (150a).
  • phase update means is incorporated in a part of the control engine (150a).
  • the control program executed by the control engine includes one or more instructions (660) for updating the value of the phase.
  • the control system according to configuration 2, wherein the setting means (600a) receives an execution condition (670) of the instruction.
  • phase updating means updates the value of the phase according to a determination condition that defines the phase.
  • the phase update means (252) updates the value of the phase according to the determination condition (2524) that defines the phase.
  • the setting means (600) accepts selection of a value that defines the phase from the internal state value held by the control engine and the internal state value held by the security engine.
  • the control system according to configuration 2.
  • a control unit (100) having the control engine and A security unit (200) having the security engine is provided.
  • the control system according to any one of 6.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

制御対象の動作状態とインシデント対応動作との関係が任意に設計された制御システムの提供を目的とする。制御システム(10)は、制御対象(500)との間で遣り取りする信号に基づいて内部状態値(1510)を周期的に更新する制御エンジン(150)と、制御システムに発生し得るインシデントに応じたインシデント対応動作を実行するセキュリティエンジン(250)と、制御エンジンが保持する内部状態値のうちのユーザにより予め任意に選択された1または複数の値(1512)に基づいて制御対象の動作状態を示すフェーズの値(2522)を更新するフェーズ更新手段(252)とを含む。セキュリティエンジンは、フェーズごとにインシデント対応動作の内容が定義された動作定義情報(2542)を保持し、フェーズ更新手段により更新されるフェーズの値(2522)に応じて、動作定義情報に定義された対応するインシデント対応動作を実行する。

Description

制御システム
 本発明は、制御対象を制御するための制御システムに関する。
 工場などの製造現場では、様々な種類の設備が稼働しており、各種設備および各設備に配置される各種装置の制御には、PLC(プログラマブルロジックコントローラ)などの制御装置が用いられる。
 近年、工場などの製造現場では、マルウェアなどの被害が発生しており、PLCなどの制御装置に対してもセキュリティ対策が必須となってきた。そのため、工場などの装置、生産ラインを開発する場合には、セキュリティ対策を生産技術者、装置メーカ開発者などが行う必要がある。
 PLCでは、例えば、特開2000-137506号公報(特許文献1)に開示されているように、異常履歴が登録されたとき、または、予め定められた時間が到来したときに、予め指定された宛先に電子メールを送信する程度で、セキュリティ対策については何ら考慮されていない。
特開2000-137506号公報
 近年のICT(Information and Communication Technology)の進歩に伴って、制御装置も様々な外部装置とネットワーク接続されるとともに、制御装置において実行される処理も高度化している。このようなネットワーク化あるいはインテリジェント化に伴って、想定されるインシデントの種類も増加している。
 このようなネットワーク化あるいはインテリジェント化に伴う様々なインシデント発生リスクに備え、発生し得るインシデントへの対応が望まれている。発生し得るインシデントへの対応は、制御対象が停止しているのか、あるいは、動いているのかなど、制御対象の動作状態に応じて異なることが予想される。そのため、制御対象の動作状態に応じたインシデント対応動作の設定が望まれる。
 また、発生し得るインシデントへの対策は、制御システムを利用する各顧客が定めるセキュリティポリシーに応じて設計され、各顧客に応じて任意に設計される。そのため、制御対象の動作状態とインシデント対応動作との関係が任意に設計された制御システムの提供が求められている。
 本発明は、制御対象の動作状態とインシデント対応動作との関係が任意に設計された制御システムの提供を一つの目的としている。
 本開示のある局面に従う制御対象を制御するための制御システムは、制御対象との間で遣り取りする信号に基づいて内部状態値を周期的に更新する制御エンジンと、制御システムに発生し得るインシデントに応じたインシデント対応動作を実行するセキュリティエンジンと、制御エンジンが保持する内部状態値、および、セキュリティエンジンが保持する内部状態値のうちのユーザにより予め任意に選択された1または複数の値に基づいて制御対象の動作状態を示すフェーズの値を更新するフェーズ更新手段とを含む。セキュリティエンジンは、フェーズごとにインシデント対応動作の内容が定義された動作定義情報を保持する手段と、フェーズ更新手段により更新されるフェーズの値に応じて、動作定義情報に定義された対応するインシデント対応動作を実行する実行手段とを含む。
 この構成によれば、制御対象の動作状態を示すフェーズの値は、ユーザにより予め任意に選択された1または複数の値に基づいて更新される。すなわち、制御対象の動作状態は、ユーザにより予め任意に選択された1または複数の値に基づいて定義される。インシデント対応動作の内容がフェーズごとに定義されていることから、制御対象の動作状態とインシデント対応動作との関係が任意に設計された制御システムを提供できる。
 上述の開示において、制御システムは、フェーズの値の更新に用いられる、1または複数の値の選択を受け付ける設定手段を含んでもよい。この構成によれば、1または複数の値の選択を受け付けて、新たに制御対象の動作状態とインシデント対応動作との関係を設計したり、制御対象の動作状態とインシデント対応動作との関係を変更したりすることが可能である。
 上述の開示において、フェーズ更新手段は、制御エンジンの一部に組み込まれていてもよい。制御エンジンで実行される制御プログラムは、フェーズの値を更新するための1または複数の命令を含む。この構成によれば、制御対象の動作状態とインシデント対応動作との関係が任意に設計された制御システムを提供できる。
 上述の開示において、設定手段は、フェーズの値を更新するための1または複数の命令の各々について、当該命令の実行条件を受け付けてもよい。この構成によれば、命令の実行条件の設定により、フェーズを任意に定義することができる。
 上述の開示において、フェーズ更新手段は、フェーズを定義する判定条件に従ってフェーズの値を更新する。この構成によれば、制御対象の動作状態とインシデント対応動作との関係が任意に設計された制御システムを提供できる。
 上述の開示において、設定手段は、判定条件として、制御エンジンが保持する内部状態値、および、セキュリティエンジンが保持する内部状態値のうちから、フェーズを定義する値の選択を受け付ける。この構成によれば、フェーズを定義する値の選択を受け付けることで、フェーズを任意に定義することができる。
 上述の開示において、制御システムは、制御エンジンを有する制御ユニットと、セキュリティエンジンを有するセキュリティユニットとをさらに含んでもよい。フェーズの値の更新に用いられる、1または複数の値を制御ユニットが更新する周期と、フェーズの値をフェーズ更新手段が更新する周期とは同期していてもよい。
 この構成によれば、制御対象の動作状態を示すフェーズの値と、制御対象との間でやり取りされる信号に基づいて更新される内部状態値とで、更新される周期が同期することで、制御対象の状態をリアルタイムでフェーズの値に反映することができる。
 本発明によれば、制御対象の動作状態とインシデント対応動作との関係が任意に設計された制御システムを提供することができる。
本実施の形態に係る制御システム10の一例を示す模式図である。 本実施の形態に係るコントローラシステム1の構成例を示す外観図である。 本実施の形態に従うコントローラシステム1を構成する制御ユニット100のハードウェア構成例を示す模式図である。 本実施の形態に従うコントローラシステム1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。 本実施の形態に従うコントローラシステム1を含む制御システム10の典型例を示す模式図である。 コントローラシステム1の機能構成を示すブロック図である。 制御エンジン150によってフェーズ更新用変数1512が更新される周期と、セキュリティエンジン250によってフェーズ値2522が更新される周期を示す図である。 サポート装置600のハードウェア構成例を示す模式図である。 設定画面の初期値の一例を示す図である。 フェーズの追加方法を説明するための図である。 新たにフェーズ判定に利用するフェーズ更新用変数1512を選択したときの一例を説明するための図である。 変形例におけるコントローラシステム1aを含む制御システム10aの機能構成を示すブロック図である。 フェーズ更新手段152を実現するためのユーザプログラムの一例を示す図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.適用例>
 本発明が適用される場面の一例について説明する。まず、本実施の形態に係る制御システム10の構成について説明する。図1は、本実施の形態に係る制御システム10の一例を示す模式図である。
 制御システム10は、制御エンジン150と、セキュリティエンジン250と、フェーズ更新手段252とを含む。なお、制御エンジン150と、セキュリティエンジン250と、フェーズ更新手段252の各々は、プロセッサなどの任意のハードウェア要素または各種プログラムなどの任意のソフトウェア要素、あるいは、それら要素の組合せによって実現される。各エンジンは任意の形態で実装できる。なお、制御エンジン150と、セキュリティエンジン250と、フェーズ更新手段252とを一のプロセッサが各種プログラムを実行することで実現してもよい。すなわち、制御エンジン150と、セキュリティエンジン250と、フェーズ更新手段252とは、一のデバイスによって実現されてもよい。
 制御エンジン150は、制御対象であるフィールドデバイス500との間で遣り取りする信号に基づいて内部状態値である変数1510の値を周期的に更新する。変数1510は、フィールドデバイス500が保持する値を示すデバイス変数と、制御ユニット100で実行されるプログラムの内部だけで使用する内部変数とを含む。デバイス変数は、フィールドデバイス500から入力される入力データ、フィールドデバイス500に出力する出力データの変数を含む。また、内部変数は、たとえば、制御ユニット100の状態などを示すシステム変数を含む。
 セキュリティエンジン250は、制御システム10に発生し得るインシデントに応じたインシデント対応動作を実行する。本明細書において、「インシデント」は、コントローラシステム1を中心とする制御システム10に対してセキュリティ上の脅威となり得る兆候,現象または異常を意味する。
 本明細書において、「インシデント対応動作」は、インシデントの発生を防ぐ動作、発生したインシデントに応じて挙動を変更する動作と、インシデントが発生したことに伴う動作とを含む。インシデントの発生を防ぐ動作には、インシデントを検知する動作などが含まれる。インシデントに応じて挙動を変更する動作は、発生したインシデントに応じて挙動を変更するために発生したインシデントを通知する動作を含む。
 フェーズ更新手段252は、制御エンジン150が更新する変数1510の値のうち、ユーザによって任意に選択された判定用の変数(フェーズ更新用変数1512)に基づいてフェーズ値2522を更新する。
 フェーズ更新手段252は、制御エンジン150またはセキュリティエンジン250の一部に組み込まれていてもよい。なお、図2~図11を用いて説明する本実施の形態においては、フェーズ更新手段252は、セキュリティエンジン250が備えるものとして説明する。
 セキュリティエンジン250は、対応データベース254と、インシデント対応手段256とを含む。
 フェーズ更新用変数1512は、たとえば、プログラムの作成、デバッグ、各種パラメータの設定などの機能をユーザに提供する装置によって選択される。
 対応データベース254は、インシデント対応動作の内容が定義された動作定義情報である対応テーブル2542がフェーズごとに格納されている。各対応テーブル2542とフェーズ値2522とは対応関係にある。
 インシデント対応手段256は、フェーズ更新手段252によって更新されるフェーズ値2522と対応データベース254とを参照して、フェーズ値2522が示すフェーズに応じた対応テーブル2542を参照して、インシデント対応動作を実行する。
 たとえば、インシデント対応手段256は、インシデントの発生を検知する条件の変更、発生したインシデントに応じた挙動の変更などを行う。
 以上のように、本実施の形態において、制御対象の動作状態を示すフェーズとは、ユーザによって任意に選択されたフェーズ更新用変数1512の値によって定義される状態であって、ユーザによって任意に定義することが可能な状態である。すなわち、本実施の形態におけるコントローラシステム1は、ユーザによって任意に定義されたフェーズごとに、インシデント対応動作を変更することが可能である。すなわち、制御システム10においては、制御対象の動作状態とインシデント対応動作との関係が任意に設計されている。
 <B.コントローラシステム1>
 本実施の形態に従うコントローラシステム1の構成について説明する。図2は、本実施の形態に係るコントローラシステム1の構成例を示す外観図である。図2を参照して、コントローラシステム1は、制御ユニット100と、セキュリティユニット200と、セーフティユニット300と、1または複数の機能ユニット400と、電源ユニット450とを含む。
 制御ユニット100とセキュリティユニット200との間は、任意のデータ伝送路(例えば、PCI Expressあるいはイーサネット(登録商標)など)を介して接続されている。制御ユニット100とセーフティユニット300および1または複数の機能ユニット400との間は、図示しない内部バスを介して接続されている。なお、制御ユニット100とセキュリティユニット200との間は、図示しない内部バスを介して接続されていてもよい。
 制御ユニット100は、コントローラシステム1において中心的な処理を実行する。制御ユニット100は、制御エンジン150を有し、任意に設計された要求仕様に従って、制御対象を制御するための制御演算を実行する。後述のセーフティユニット300で実行される制御演算との対比で、制御ユニット100で実行される制御演算を「標準制御」とも称す。図2に示す構成例において、制御ユニット100は、1または複数の通信ポートを有している。
 セキュリティユニット200は、制御ユニット100に接続され、セキュリティエンジン250を有し、コントローラシステム1に対するセキュリティ機能を担当する。図2に示す構成例において、セキュリティユニット200は、1または複数の通信ポートを有している。セキュリティユニット200は、インシデントの検知および、検知したインシデントに応じた処理を実行することで、インシデント対応動作の実行を実現する。
 セーフティユニット300は、制御ユニット100とは独立して、制御対象に関するセーフティ機能を実現するための制御演算を実行する。セーフティユニット300で実行される制御演算を「セーフティ制御」とも称す。通常、「セーフティ制御」は、IEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。
 機能ユニット400は、コントローラシステム1による様々な制御対象に対する制御を実現するための各種機能を提供する。機能ユニット400は、典型的には、I/Oユニット、セーフティI/Oユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。I/Oユニットとしては、例えば、デジタル入力(DI)ユニット、デジタル出力(DO)ユニット、アナログ出力(AI)ユニット、アナログ出力(AO)ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニットなどが挙げられる。セーフティI/Oユニットは、セーフティ制御に係るI/O処理を担当する。
 電源ユニット450は、コントローラシステム1を構成する各ユニットに対して、所定電圧の電源を供給する。
 <C.各ユニットのハードウェア構成例>
 本実施の形態に従うコントローラシステム1を構成する各ユニットのハードウェア構成例について説明する。
 (c1:制御ユニット100)
 図3は、本実施の形態に従うコントローラシステム1を構成する制御ユニット100のハードウェア構成例を示す模式図である。図3を参照して、制御ユニット100は、主たるコンポーネントとして、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、通信コントローラ110と、USBコントローラ112と、メモリカードインターフェイス114と、ネットワークコントローラ116,118,120と、内部バスコントローラ122と、インジケータ124とを含む。
 プロセッサ102は、二次記憶装置108またはメモリカード115に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、標準制御に係る制御演算、および、後述するような各種処理を実現する。主記憶装置106は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。二次記憶装置108は、例えば、HDD(Hard Disc Drive)またはSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
 チップセット104は、プロセッサ102と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット100全体としての処理を実現する。
 二次記憶装置108には、制御ユニット100の基本的な機能を実現するためのシステムプログラムに加えて、システムプログラムが提供する実行環境上で動作する制御プログラムが格納される。制御プログラムには、ユーザが作成したプログラムをユーザプログラムが含まれる。
 通信コントローラ110は、セキュリティユニット200との間のデータの遣り取りを担当する。通信コントローラ110としては、例えば、PCI Expressあるいはイーサネット(登録商標)などに対応する通信チップを採用できる。
 USBコントローラ112は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。たとえば、USBコントローラ112は、サポート装置600との間のデータの遣り取りを担当する。
 メモリカードインターフェイス114は、記憶媒体の一例であるメモリカード115を着脱可能に構成される。メモリカードインターフェイス114は、メモリカード115に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード115から制御プログラムや各種設定などのデータを読出すことが可能になっている。
 ネットワークコントローラ116,118,120の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ116,118,120は、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用ネットワークプロトコルを採用してもよい。
 内部バスコントローラ122は、コントローラシステム1を構成するセーフティユニット300や1または複数の機能ユニット400との間のデータの遣り取りを担当する。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
 インジケータ124は、制御ユニット100の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
 図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御ユニット100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 (c2:セキュリティユニット200)
 図4は、本実施の形態に従うコントローラシステム1を構成するセキュリティユニット200のハードウェア構成例を示す模式図である。図4を参照して、セキュリティユニット200は、主たるコンポーネントとして、CPUやGPUなどのプロセッサ202と、チップセット204と、主記憶装置206と、二次記憶装置208と、通信コントローラ210と、USBコントローラ212と、メモリカードインターフェイス214と、ネットワークコントローラ216,218と、インジケータ224とを含む。
 プロセッサ202は、二次記憶装置208またはメモリカード215に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、後述するような各種セキュリティ機能を実現する。主記憶装置206は、DRAMまたはSRAMなどの揮発性記憶装置などで構成される。二次記憶装置208は、例えば、HDDまたはSSDなどの不揮発性記憶装置などで構成される。
 チップセット204は、プロセッサ202と各コンポーネントとの間のデータの遣り取りを仲介することで、セキュリティユニット200全体としての処理を実現する。
 二次記憶装置208には、セキュリティユニット200の基本的な機能を実現するためのシステムプログラムに加えて、システムプログラムが提供する実行環境上で動作するセキュリティシステムプログラムが格納される。
 通信コントローラ210は、制御ユニット100との間のデータの遣り取りを担当する。通信コントローラ210としては、制御ユニット100に通信コントローラ210と同様に、例えば、PCI Expressあるいはイーサネット(登録商標)などに対応する通信チップを採用できる。
 USBコントローラ212は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。たとえば、USBコントローラ212は、サポート装置600との間のデータの遣り取りを担当する。
 メモリカードインターフェイス214は、記憶媒体の一例であるメモリカード215を着脱可能に構成される。メモリカードインターフェイス214は、メモリカード215に対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード215から制御プログラムや各種設定などのデータを読出すことが可能になっている。
 ネットワークコントローラ216,218の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ216,218は、イーサネット(登録商標)などの汎用的なネットワークプロトコルを採用してもよい。
 インジケータ224は、セキュリティユニット200の動作状態などを通知するものであり、ユニット表面に配置された1または複数のLEDなどで構成される。
 図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、セキュリティユニット200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 <D.制御システム10>
 コントローラシステム1を含む制御システム10の典型例について説明する。図5は、本実施の形態に従うコントローラシステム1を含む制御システム10の典型例を示す模式図である。なお、説明の便宜上、図5には、機能ユニット400および電源ユニット450の記載を省略している。また、図5中の「DB」はデータベースを、「UPG」はユーザプログラムを意味する。
 一例として、図5に示す制御システム10は、設備Xを制御対象とする。設備Xは、一例として組み立て工程の設備であって、フィールドデバイス500としてワークを搬送するコンベアに加えて、コンベア上のワークに対して任意の物理的作用を与えることが可能なロボットを含む。
 図5に示す例では、制御ユニット100は、通信ポート142,144,146,148を有している。通信ポート142は、図3のUSBコントローラ112に相当する。通信ポート144は、図3のネットワークコントローラ116に相当する。通信ポート146は、図3のネットワークコントローラ118に相当する。通信ポート148は、図3のネットワークコントローラ120に相当する。
 制御ユニット100は、通信ポート142を介して、サポート装置600と通信可能に接続される。サポート装置600は、コントローラシステム1に含まれる各ユニットで実行されるプログラムの作成、デバッグ、各種パラメータの設定などの機能をユーザに提供する。
 サポート装置600を用いてユーザが作成したプログラムをユーザプログラム1086と称し、ユーザプログラム1086は、サポート装置600から制御ユニット100に向けて送信され、制御ユニット100で実行される。サポート装置600と制御ユニット100とは、典型的には、USBケーブルを用いて接続される。
 なお、ユーザプログラム1086は、メモリカード115などの記憶媒体に格納されていてもよい。制御ユニット100は、メモリカードインターフェイス114を介してメモリカード115を着脱可能に構成されており、メモリカード115に格納されたユーザプログラム1086を読み出すことができる。
 制御ユニット100は、通信ポート144を介して、1または複数のフィールドデバイス500と通信可能に接続される。フィールドデバイス500は、制御対象から制御演算に必要な各種情報を収集するセンサや検出器、および、制御対象に対して何らかの作用を与えるアクチュエータなどを含む。図5に示す例では、フィールドデバイス500は、ワークに対して何らかの外的な作用を与えるロボット、ワークを搬送するコンベヤ、フィールドに配置されたセンサやアクチュエータとの間で信号を遣り取りするI/Oユニットなどを含む。フィールドデバイス500と制御ユニット100との間の通信プロトコルは、典型的には、EtherCAT(登録商標)が利用される。
 制御ユニット100は、通信ポート146を介して、1または複数のHMI(Human Machine Interface)800と通信可能に接続される。HMI800は、コントローラシステム1での制御演算によって得られる各種情報をオペレータへ提示するとともに、オペレータからの操作に従ってコントローラシステム1に対して内部コマンドなどを生成する。HMI800と制御ユニット100との間の通信プロトコルは、典型的には、EtherNet/IP(登録商標)が利用される。
 制御ユニット100は、通信ポート148を介してデータベース900と通信可能に接続される。データベース900は、コントローラシステム1から送信される各種データ(たとえば、制御対象であるワークから計測されたトレーサビリティに関する情報など)を収集する。なお、データベース900は、制御ユニット100と、社内ネットワークを介して通信可能に接続されていてもよく、また、VPN(Virtual Private Network)などを介して通信可能に接続されていてもよい。図5に示す例では、データベース900と制御ユニット100との間の通信プロトコルは、EtherNet/IP(登録商標)が利用される。
 セキュリティユニット200は、通信ポート242および通信ポート244を有している。通信ポート242は、図4のネットワークコントローラ216に相当する。通信ポート244は、図4のUSBコントローラ212に相当する。
 セキュリティユニット200は、通信ポート242を介して、SCADA(Supervisory Control And Data Acquisition)装置700と通信可能に接続されている。セキュリティユニット200とSCAD装置700との間の通信は、典型的には、VPNを利用して行われる。
 セキュリティユニット200は、通信ポート244を介して、サポート装置600と通信可能に接続される。サポート装置600とセキュリティユニット200とが通信可能に接続されると、サポート装置600からセキュリティに関する設定をセキュリティユニット200にインストールすることが可能である。
 なお、セキュリティユニット200とサポート装置600とを接続することで、制御ユニット100で実行されるユーザプログラム1086をインストールできるようにしてもよい。また、制御ユニット100とサポート装置600とを接続することで、セキュリティに関する設定をインストールできるようにしてもよい。また、セキュリティユニット200と通信可能なサポート装置600と、制御ユニット100と通信可能なサポート装置600とは、互いに異なるサポート装置600であっても、共通のサポート装置600であってもよい。また、一台のサポート装置600が、制御ユニット100およびセキュリティユニット200に同時に接続できるような構成でもよく、また、同時には接続できないような構成であってもよい。
 また、図示しないものの、セキュリティユニット200は、通信ポート244を介して、外部ネットワークとの間の通信を中継する機能およびFW(Fire Wall)の機能などを備えたルーターと接続可能に構成されてもよい。ルーターと接続されることで、セキュリティユニット200は、外部ネットワークを介して、制御システム10の外のネットワークと通信可能となる。
 <E.コントローラシステム1の機能構成>
 図6を参照して、コントローラシステム1の機能面について説明する。図6は、コントローラシステム1の機能構成を示すブロック図である。
 制御ユニット100は、標準制御に係る制御演算を実行する処理実行部である制御エンジン150と、外部装置との間でデータを遣り取りする情報エンジン160とを含む。セキュリティユニット200は、セキュリティ機能を実現するためのセキュリティエンジン250を含む。
 各エンジンは、各ユニットのプロセッサなどの任意のハードウェア要素または各種プログラムなどの任意のソフトウェア要素、あるいは、それら要素の組合せによって実現される。各エンジンは任意の形態で実装できる。
 制御エンジン150は、制御対象であるフィールドデバイス500との間で遣り取りする信号に基づいて内部状態値である変数1510の値を周期的に更新する。
 情報エンジン160は、制御ユニット100が保持するデータ(変数の値)に対して任意の情報処理を実行する。典型的には、情報エンジン160は、制御ユニット100が保持するデータを周期的にデータベース900などへ送信する処理を含む。このようなデータの送信には、SQLなどが用いられる。
 セキュリティエンジン250は、制御システム10に発生し得るインシデントに応じたインシデント対応動作を実行する。
 セキュリティエンジン250は、フェーズ更新手段252と、対応データベース254と、インシデント対応手段256とを含む。フェーズ更新手段252およびインシデント対応手段256は、たとえば、セキュリティユニット200の基本的な機能を実現するためのシステムプログラムまたはシステムプログラムが提供する実行環境上で動作するセキュリティシステムプログラムの実行により実現される機能である。また、対応データベース254は、図4の二次記憶装置208により実現される。
 フェーズ更新手段252は、制御対象の動作状態を示すフェーズの値(フェーズ値2522)を更新する。フェーズ更新手段252は、制御エンジン150が更新する変数1510の値のうち、ユーザによって任意に選択された判定用の変数(フェーズ更新用変数1512)に基づいてフェーズ値2522を更新する。より具体的には、フェーズ更新手段252は、判定テーブル2524を参照してフェーズ値2522を更新する。
 判定テーブル2524は、フェーズ値2522を更新する条件を定義しており、ユーザによって任意に選択されたフェーズ更新用変数1512を特定可能な情報と、フェーズ更新用変数1512の値に応じたフェーズ値2522を示す情報とを含む。
 判定テーブル2524は、サポート装置600により生成される。サポート装置600による判定テーブル2524の生成場面については、後述する。
 対応データベース254は、インシデント対応動作の内容が定義された動作定義情報である対応テーブル2542がフェーズごとに格納されている。各対応テーブル2542とフェーズ値2522とは対応関係にある。
 インシデント対応手段256は、検知手段258がインシデントの発生を検知すると、フェーズ更新手段252によって更新されるフェーズ値2522と対応データベース254とを参照して、フェーズ値2522が示すフェーズに応じた対応テーブル2542を参照して、インシデント対応動作を実行する。
 たとえば、インシデント対応手段256は、発生したインシデントに応じて挙動を変更するように制御エンジン150に命令する。
 検知手段258は、検知条件に従ってインシデントの発生を検知する。なお、検知条件は、検知ロジックに限らず、インシデントが発生したと判断する閾値を含む。
 制御対象の動作状態を示すフェーズとは、ユーザによって任意に選択されたフェーズ更新用変数1512の値によって定義される状態であって、ユーザによって任意に定義することが可能な状態である。すなわち、本実施の形態におけるコントローラシステム1は、ユーザによって任意に定義されたフェーズごとに、インシデント対応動作を変更することが可能である。これにより、ユーザごとに異なるセキュリティポリシーに応じたセキュリティ設計をすることが可能である。
 なお、図6に示すコントローラシステム1のフェーズ更新手段252は、周期的にフェーズ更新用変数1512の値を制御ユニット100から受け取り、周期的にフェーズ値2522を更新する。
 インシデント対応手段256は、検知手段258がインシデントの発生を検知すると、周期的に更新されているフェーズ値2522を参照して、フェーズ値2522に応じたインシデント対応動作を実行する。
 なお、インシデント対応動作に、発生し得るインシデントに備えた予防動作を含めてもよい。予防動作には、たとえば、インシデントの発生を検知すること、コントローラシステム1への接続を許可する動作などが含まれ得る。具体的には、インシデント対応動作に、インシデントの発生を検知することを含めた場合、フェーズ値2522に応じて検知条件を変更するようにしてもよい。すなわち、セキュリティユニット200は、フェーズごとに検知条件を設定してもよい。たとえば、フェーズに応じて、インシデントが発生していると判断する閾値を変更するようにしてもよい。
 また、インシデント対応手段256は、インシデント対応動作を規定する対応テーブル2542を周期的に、または、フェーズ値2522の変更に応じて、選択するようにしてもよい。フェーズ値2522の変更に応じて対応テーブル2542が選択される場合、たとえば、フェーズ更新手段252がフェーズ値2522の値を変更したときにインシデント対応手段256に通知し、当該通知に従って、インシデント対応手段256は、変更後のフェーズ値に対応するインシデント対応動作を実行する。対応テーブル2542として発生し得るインシデントに備えた予防動作が規定されている場合、インシデント対応手段256は、検知手段258がインシデントを検知したか否かに関わらず、フェーズ値2522に応じて周期的に、またはフェーズ値2522の変更に応じて予防動作を変更してもよい。
 <F.フェーズ更新用変数およびフェーズ値の更新タイミング>
 図7を参照して、フェーズ更新用変数1512およびフェーズ値2522の更新タイミングについて説明する。フェーズ更新用変数1512は、制御ユニット100の制御エンジン150によって周期的に更新される。また、セキュリティユニット200のセキュリティエンジン250は、フェーズ更新用変数1512を周期的に取得して、フェーズ値2522を周期的に更新する。
 図7は、制御エンジン150によってフェーズ更新用変数1512が更新される周期と、セキュリティエンジン250によってフェーズ値2522が更新される周期を示す図である。制御エンジン150とセキュリティエンジン250との間のデータのやり取りは、制御ユニット100の通信コントローラ110およびセキュリティユニット200の通信コントローラ210によって行われる。
 制御エンジン150は、周期的に変数1510の値を更新する。変数1510は、フェーズ更新用変数1512を含む。図7においては、フェーズ更新用変数1512の値の更新に絞って説明する。以下、制御エンジン150が実行するフェーズ更新用変数1512の値の更新を更新処理ともいう。
 セキュリティエンジン250は、フェーズ値2522の更新、およびインシデント対応動作を実行するための処理を周期的に実行する。以下、この周期的に実行される処理をセキュリティ処理ともいう。
 更新処理の周期とセキュリティ処理とは互いにその周期を同期させて実行される。以下では、たとえば、n周目のセキュリティ処理について説明する。
 S210において、セキュリティエンジン250は、フェーズ更新用変数1512を取得する。S210に取得するフェーズ更新用変数1512は、前周期(n-1周目)に制御エンジン150が更新した後のフェーズ更新用変数1512である。セキュリティエンジン250は、制御ユニット100の通信コントローラ110およびセキュリティユニット200の通信コントローラ210を介して、フェーズ更新用変数1512を取得する。
 S212において、セキュリティエンジン250は、フェーズ値2522を更新する。具体的には、セキュリティエンジン250は、S210で取得したフェーズ更新用変数1512および判定テーブル2524に基づいてフェーズ値2522を更新する。
 S214において、セキュリティエンジン250は、インシデントが検知されたか否かを判定する。インシデントを検知していない場合(S214においてNO)、セキュリティエンジン250は、セキュリティ処理を終了し、次のn+1周目の周期が開始するまで待機する。
 インシデントを検知した場合は(S214においてYES)、セキュリティエンジン250は、インシデント対応動作を実行する。具体的には、セキュリティエンジン250は、S212において更新したフェーズ値2522および対応データベース254に従ってインシデント対応動作を実行する。
 インシデント対応動作を実行した後、セキュリティエンジン250は、セキュリティ処理を終了し、次のn+1周目の周期が開始するまで待機する。
 一方、制御エンジン150は、S110において、定周期でフェーズ更新用変数1512の値を更新する。制御エンジン150は、フェーズ更新用変数1512の値を更新したのち、更新処理を終了し、次の制御周期が開始するまで待機する。
 以上のように、制御対象の動作状態を示すフェーズ値2522と、制御対象との間でやり取りされる信号に基づいて更新される変数1510とで、更新される周期が同期することで、制御対象の状態をリアルタイムでフェーズ値2522に反映することができる。
 <G.インシデント対応動作>
 発生し得るインシデントに応じたコントローラシステム1の挙動である、インシデント対応動作について、具体的に説明する。インシデント対応動作として、設備制御についての対応、および、情報通信についての対応に大別できる。設備制御は、主として、制御ユニット100の制御エンジン150および/またはセーフティユニット300のセーフティ制御に係る制御演算を実行する処理実行部であるセーフティエンジンが担当する処理を意味し、制御対象の設備や機械の動作についての対応を意味する。情報通信は、主として、制御ユニット100の情報エンジン160が担当する処理を意味し、制御ユニット100と外部装置との間のデータの遣り取りや、制御ユニット100内部での情報の取り扱いなどについての対応を意味する。
 コントローラシステム1の挙動(対応)として、たとえば、「正常運転」、「縮退」、「停止」などがあげられる。「正常運転」は、システム設計通りおよび生産計画通りに、設備や機械を運転継続できる状態を意味する。「縮退」は、コントローラシステム1の部分停止(一部のみ稼働)、性能縮小(性能低下)、機能制限などの、限定的ながら稼働を続行することを意味する。「停止」は、安全に、対象の設備や機械あるいはコントローラシステム1の動作を止めることを意味する。
 「縮退」の一例について説明する。
 (1)設備制御の縮退
 設備制御の縮退は、範囲、機能、生産性などの面において制限を受けた状態で運転することを意味する。
 範囲としては、制御対象となるゾーンを制限することができる。制御対象となるゾーンとしては、例えば、制御装置、制御装置に装着されるモジュール、制御装置に装着されるユニットなどの制御側を制限することができる。あるいは、特定の機械、ライン、フロア、工場全体といった被制御側(制御対象)を制限することができる。
 機能としては、コントローラシステム1が提供する処理のうち特定の処理(例えば、情報制御、標準制御、セーフティ制御など)を制限することができる。
 生産性としては、安全、安心のために一時的に生産性(例えば、ラインスピード、単位時間あたりの生産数、単位時間あたりの生産量など)を制限することができる。
 (2)情報通信の縮退
 情報通信の縮退は、範囲、方向、帯域、QoS(Quality of Service)、データなどの面において制限を受けた状態で運転することを意味する。
 範囲としては、例えば、通信物理ポート、通信論理ポート、ネットワーク離脱などを制限できる。
 通信物理ポートを制限する場合には、制御ユニット100およびセキュリティユニット200にそれぞれ配置されている通信ポートのうち特定のポート使用を制限することができる。あるいは、コントローラシステム1に実装される通信ポートのうち、上位側あるいはフィールド側のみを有効化してもよい。
 通信論理ポートを制限する場合には、利用可能なTCP/UDPポートを制限してもよいし、利用可能な通信プロトコルを制限してもよい。さらに、アクセスを受け付けるMACアドレスやIPアドレスを制限してもよい。
 方向としては、例えば、各ポートにおいてデータが流れる方向を一方向のみに制限してもよい。例えば、特定のポートについて、データの受信のみ許可、あるいは、データの送信のみ許可といった具合である。このような一方向のデータのみを許可することで、何らかのセキュリティ脅威が検知されたときに、コントローラシステム1からデータが流出することを防止できる。
 帯域としては、コントローラシステム1の通信負荷あるいは処理負荷を低減させるために、通信速度を制限(例えば、1Gbpsから100Mbpsに変更)してもよい。
 QoSとしては、通過させるパケットの優先度を動的に変化させてもよい。例えば、何らかのセキュリティ脅威が検知された場合には、通過させるパケットの優先度を高く変更してもよい。
 データとしては、例えば、EtherCATなどの産業用ネットワークプロトコルにおいては、プロセスデータ通信の有効/無効の切り替えや、出力値の更新を制限(更新停止/ゼロクリア/前回値を保持など)してもよい。
 上述したものに限らず、「縮退」は、正常運転に対して任意の制限が加えられた状態での運転を包含し得る。なお、「縮退」は、部分停止と見なすこともでき、「停止」は、特定の機能を全面的に停止することを包含し得るので、「縮退」を拡張した概念と見なすこともできる。
 <H.サポート装置600のハードウェア構成>
 以下、サポート装置600による判定テーブル2524の生成場面について説明する。まず、サポート装置600のハードウェア構成について説明する。図8は、サポート装置600のハードウェア構成例を示す模式図である。サポート装置600は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
 図8を参照して、サポート装置600は、プロセッサ602と、メインメモリ604と、入力部606と、表示部608と、ストレージ610と、光学ドライブ612と、USBコントローラ620とを含む。これらのコンポーネントは、プロセッサバス618を介して接続されている。
 プロセッサ602は、CPUやGPUなどで構成され、ストレージ610に格納されたプログラム(一例として、OS6102およびサポートプログラム6104)を読出して、メインメモリ604に展開して実行することで、コントローラシステム1に対する設定処理などを実現する。
 メインメモリ604は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ610は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
 ストレージ610には、基本的な機能を実現するためのOS6102に加えて、サポート装置600としての機能を提供するためのサポートプログラム6104が格納される。すなわち、サポートプログラム6104は、コントローラシステム1に接続されるコンピュータにより実行されることで、本実施の形態に係るサポート装置600を実現する。
 入力部606は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部608は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ602からの処理結果などを出力する。
 USBコントローラ620は、USB接続を介して、コントローラシステム1などとの間のデータを遣り取りする。
 サポート装置600は、光学ドライブ612を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体614(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ610などにインストールされる。
 サポート装置600で実行されるサポートプログラム6104などは、コンピュータ読取可能な記録媒体614を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置600が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
 図8には、プロセッサ602がプログラムを実行することで、サポート装置600として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
 <I.任意のフェーズを定義するための設定画面>
 図9~図11を参照して、フェーズを定義する方法(設定方法)、すなわち、判定テーブル2524の生成方法について説明する。判定テーブル2524は、フェーズ更新用変数1512を特定可能な情報を含む。フェーズ更新用変数1512は、たとえば、サポート装置600が提供する、図9~図11に示す設定画面に従ってユーザが操作することで選択される。すなわち、サポート装置600は、フェーズ値1514の更新に用いられるフェーズ更新用変数1512の選択を受け付ける設定手段として機能する。
 図9は、設定画面の初期値の一例を示す図である。図10は、フェーズの追加方法を説明するための図である。図11は、新たにフェーズ判定に利用するフェーズ更新用変数1512を選択したときの一例を説明するための図である。
 図9を参照して、設定画面640は、フェーズの名称を表示するフェーズ領域642と、各フェーズを定義するための条件入力領域644とを含む。設定画面640は、さらに、入力した設定内容をキャンセルするためのキャンセルボタン646と、入力した設定内容を確定するための確定ボタン648とを含む。
 フェーズ領域642は、フェーズの名称を表示するフェーズ名称セル6422と、新たなフェーズを追加するためのフェーズ追加ボタン6424とを含む。各名称セル6422内に記載されたフェーズ名称(図9に示す例では、「立ち上げ・保守」、「異常発生中」、「運転中」)は、任意に変更することも可能である。
 条件入力領域644は、条件名を表示する条件名セル6442と、新たな条件を追加するための条件追加ボタン6444と、各条件の設定値を選択するための選択タブ6446とを含む。条件名セル6442には、ユーザが任意に選択したフェーズ更新用変数1512を表示することが可能である。
 図9に示す例では、フェーズの初期値として、「立ち上げ・保守」、「異常発生中」、「運転中」がフェーズとして登録されている。図9中の「-」は、条件としないことを意味する。たとえば、「立ち上げ・保守」は、PCが接続された状態(図中の「True」)を意味する。「異常発生中」は、PCが接続されていない状態(図中の「False」)であって、かつ異常が発生している状態(図中の「True」)を意味する。「運転中」は、PCが接続されていない状態(図中の「False」)であって、かつ異常が発生していない状態(図中の「False」)を意味する。
 図10を参照して、フェーズの追加方法について説明する。フェーズ追加ボタン6424が操作されると、空のフェーズ名称セル6422Dが追加される。また、条件設定用の空の選択タブ6446が追加される。同様に、条件追加ボタン6444が操作されると、空の条件名セル6442が追加される。また、条件設定用の空の選択タブ6446が追加される。
 ユーザは、空のフェーズ名称セル6422Dに、新たに任意の名称を入力することができる。また、ユーザは、空の条件名セル6442に、任意の変数を選択して、選択した変数をフェーズ更新用変数として設定、登録できる。また、サポート装置600は、選択したフェーズ更新用変数が取り得る値を、選択タブ6446を操作して選択することが可能な選択候補として設定する。
 なお、好ましくは、サポート装置600は、制御エンジン150が更新する変数1510を特定可能に構成されている。これにより、ユーザは、制御エンジン150が更新する変数1510の中から、フェーズ更新用変数1512を確実に選択することができる。
 図10に示す例では、新たに、フェーズ更新用変数として、フェーズ変数が選択され、フェーズとして新たに「段取り替え」というフェーズが追加され、「運転中」というフェーズの名称が「正常運転中」に変更されたものとする。また、選択タブ6446が操作されると、フェーズ変数がとり得る値が選択可能なリスト6448として表示される。
 図11を参照して、フェーズ更新用変数だけを新たに追加することも可能である。図11に示す例では、異常発生中のフェーズに変更する条件が新たに追加されたものとする。この場合に、併せて、他のフェーズについての、設定条件を変更してもよい。
 たとえば、図11に示す設定条件によって生成された判定テーブル2524を、セキュリティユニットにインストールした場合、フェーズ更新用変数1512として、PC接続の有無を示す変数と、異常が発生の有無を示す変数、選択したフェーズ変数、および異常カウンタの値を示す変数が制御エンジン150からセキュリティエンジン250に送られる。また、セキュリティエンジン250のフェーズ更新手段252は、これらのフェーズ更新用変数1512に基づいてフェーズ値2522を、「立ち上げ・保守」、「異常発生中」、「正常運転中」および「段取り替え中」のうちのいずれかを示す値に更新する。
 なお、フェーズ更新用変数1512は、制御エンジン150が更新する値に限られない。たとえば、セキュリティエンジン250が備える内部状態値であってもよい。たとえば、セキュリティエンジン250が、PC接続の有無を示す変数(内部状態値)を有する場合、この変数に従って、PC接続の有無を判断してもよい。
 また、異常カウンタは、制御ユニットが検知する異常に限らず、セキュリティエンジン250の検知手段258が検知するインシデント(異常)を含むものであってもよい。
 以上のように、本実施の形態においては、フェーズ更新手段252は、フェーズ値2522を更新する条件を定義した判定テーブル2524を参照してフェーズ値2522を更新する。また、サポート装置600は、判定テーブル2524を作成するための設定画面640を提供し、各フェーズを定義する変数1510の選択と、当該変数1510の値の指定とを受け付ける。
 <J.フェーズ更新手段の実装方法の変形例>
 上記実施の形態においては、フェーズ更新手段252は、セキュリティユニット200により実現される例を示した。なお、制御ユニット100のシステムプログラムによりフェーズ更新手段が実現されてもよい。この場合、判定テーブル2524は、制御ユニット100に格納されることが好ましい。
 また、上記実施の形態においては、フェーズ更新手段252は、判定テーブル2524を参照してフェーズ値2522を更新するものとした。なお、フェーズ更新手段252は、ユーザによって作成された、フェーズの値を変更する命令を含むユーザプログラムが実行されることで実現されてもよい。
 図12は、変形例におけるコントローラシステム1aを含む制御システム10aの機能構成を示すブロック図である。図12に示す制御システム10aは、サポート装置600aを備える点で、制御システム10と異なる。また、図12に示すコントローラシステム1aは、制御エンジン150およびセキュリティエンジン250に変わり、制御エンジン150aおよびセキュリティエンジン250aを有する点で、コントローラシステム1と異なる。
 具体的には、コントローラシステム1aは、制御エンジン150aがフェーズ値の更新を行い、セキュリティエンジン250aのインシデント対応手段256が制御エンジン150aによって更新されるフェーズ値と対応データベース254に従ってインシデント対応動作を実行する。
 セキュリティエンジン250aは、フェーズ更新手段252および判定テーブル2524を有していない点で、セキュリティエンジン250と異なる。他の構成については、セキュリティエンジン250と共通するための、説明を省略する。
 制御エンジン150aは、フェーズ更新手段152を有する点で制御エンジン150と異なる。フェーズ更新手段152は、フェーズ更新手段252と異なり、制御エンジン150aの一部に組み込まれている。すなわち、制御エンジン150aが更新する変数1510に、フェーズ値1514が含まれている。
 フェーズ更新手段152は、変数1510に含まれるフェーズ更新用変数1512を参照することで、フェーズ値1514を変更する命令を実行するか否かを決定し、決定に従ってフェーズ値1514を更新する。
 サポート装置600aは、フェーズ更新手段152を実行するためのユーザプログラムを作成するためのエディタ機能を有し、フェーズ値1514を変更するための変更命令のオブジェクトを提供する。すなわち、フェーズ更新手段152の機能は、サポート装置600aにより提供される。
 図13は、フェーズ更新手段152を実現するためのユーザプログラムの一例を示す図である。図13に示すユーザプログラムは、サポート装置600aにより提供されるエディタ機能を利用して作成することができる。なお、図13に示すユーザプログラムは、ラダープログラムのコードで作成されているものの、他のプログラミング言語で作成されてもよい。
 フェーズ更新手段152を実現するためのユーザプログラムは、フェーズ値1514を更新するための複数の変更命令660(660A,660B,660C,660D)と、各変更命令660を実行するための実行条件を既定した実行条件規定部670(670A,670B,670C,670D)とを含む。
 たとえば、実行条件規定部670Aが規定する条件が成立すると、変更命令660Aが実行されるように、ユーザプログラムは作成されている。
 ユーザは、A接点662A,664A、B接点662B,664Bおよび比較命令666A,666Bの各々によって定義された条件を組み合わせることで、実行条件規定部670内の条件を定義する。各条件が参照する変数(PC接続中、異常発生中、フェーズ変数など)が、フェーズ更新用変数に相当する。
 このように、ユーザは、サポート装置600aが提供するエディット機能を利用して、任意の変更命令660と、任意の条件とを組み合わせて、フェーズ値1514を更新するためのユーザプログラムを作成することが可能である。すなわち、サポート装置600aは、変更命令の実行条件を受け付ける設定手段として機能する。
 <K.付記>
 上述したような本実施の形態および変形例は、以下のような技術思想を含む。
 [構成1]
 制御対象を制御するための制御システム(10,10a)であって、
 前記制御対象との間で遣り取りする信号に基づいて内部状態値を周期的に更新する制御エンジン(150,150a)と、
 前記制御システムに発生し得るインシデントに応じたインシデント対応動作を実行するセキュリティエンジン(250,250a)と、
 前記制御エンジンが保持する前記内部状態値(1510)、および、前記セキュリティエンジンが保持する内部状態値のうちのユーザにより予め任意に選択された1または複数の値(1512)に基づいて前記制御対象の動作状態を示すフェーズの値(2522,1514)を更新するフェーズ更新手段(252)とを備え、
 前記セキュリティエンジンは、
  フェーズごとにインシデント対応動作の内容が定義された動作定義情報(2542)を保持する手段(254)と、
  前記フェーズ更新手段により更新される前記フェーズの値に応じて、前記動作定義情報に定義された対応するインシデント対応動作を実行する実行手段(256)とを含む、制御システム。
 [構成2]
 前記フェーズの値の更新に用いられる、前記1または複数の値の選択を受け付ける設定手段(600,600a)をさらに備える、構成1に記載の制御システム。
 [構成3]
 前記フェーズ更新手段(152)は、前記制御エンジン(150a)の一部に組み込まれており、
 前記制御エンジンで実行される制御プログラムは、前記フェーズの値を更新するための1または複数の命令(660)を含む、構成1または2に記載の制御システム。
 [構成4]
 前記フェーズ更新手段は、前記制御エンジン(150a)の一部に組み込まれており、
 前記制御エンジンで実行される制御プログラムは、前記フェーズの値を更新するための1または複数の命令(660)を含み、
 前記設定手段(600a)は、前記命令の実行条件(670)を受け付ける、構成2に記載の制御システム。
 [構成5]
 前記フェーズ更新手段は、前記フェーズを定義する判定条件に従って前記フェーズの値を更新する、構成1または2に記載の制御システム。
 [構成6]
 前記フェーズ更新手段(252)は、前記フェーズを定義する判定条件(2524)に従って前記フェーズの値を更新し、
 前記設定手段(600)は、前記判定条件として、前記制御エンジンが保持する前記内部状態値、および、前記セキュリティエンジンが保持する内部状態値のうちから、前記フェーズを定義する値の選択を受け付ける、構成2に記載の制御システム。
 [構成7]
 前記制御エンジンを有する制御ユニット(100)と、
 前記セキュリティエンジンを有するセキュリティユニット(200)とを備え、
 前記フェーズの値の更新に用いられる、前記1または複数の値を前記制御ユニットが更新する周期と、前記フェーズの値を前記フェーズ更新手段が更新する周期とは同期している、構成1~構成6のうちいずれか1に記載の制御システム。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1,1a コントローラシステム、10,10a 制御システム、100 制御ユニット、102,202,602 プロセッサ、104,204 チップセット、106,206 主記憶装置、108,208 二次記憶装置、110,210 通信コントローラ、112,212,620 USBコントローラ、114,214 メモリカードインターフェイス、115,215 メモリカード、116,118,120,216,218 ネットワークコントローラ、122 内部バスコントローラ、124,224 インジケータ、142,144,146,148,242,244 通信ポート、150,150a 制御エンジン、152,252 フェーズ更新手段、160 情報エンジン、200 セキュリティユニット、250,250a セキュリティエンジン、254 対応データベース、256 インシデント対応手段、258 検知手段、300 セーフティユニット、400 機能ユニット、450 電源ユニット、500 フィールドデバイス、600,600a サポート装置、604 メインメモリ、606 入力部、608 表示部、610 ストレージ、612 光学ドライブ、614 記録媒体、618 プロセッサバス、640 設定画面、642 フェーズ領域、644 条件入力領域、646 キャンセルボタン、648 確定ボタン、660,660A 変更命令、662A,662B,664A,664B 接点、666A,666B 比較命令、670,670A 実行条件規定部、700 SCADA装置、800 HMI、900 データベース、1086 ユーザプログラム、1510 変数、1512 フェーズ更新用変数、1514,2522 フェーズ値、2524 判定テーブル、2542 対応テーブル、6104 サポートプログラム、6422,6422D フェーズ名称セル、6424 フェーズ追加ボタン、6442 条件名セル、6444 条件追加ボタン、6446 選択タブ、6448 リスト。

Claims (7)

  1.  制御対象を制御するための制御システムであって、
     前記制御対象との間で遣り取りする信号に基づいて内部状態値を周期的に更新する制御エンジンと、
     前記制御システムに発生し得るインシデントに応じたインシデント対応動作を実行するセキュリティエンジンと、
     前記制御エンジンが保持する前記内部状態値、および、前記セキュリティエンジンが保持する内部状態値のうちのユーザにより予め任意に選択された1または複数の値に基づいて前記制御対象の動作状態を示すフェーズの値を更新するフェーズ更新手段とを備え、
     前記セキュリティエンジンは、
      フェーズごとにインシデント対応動作の内容が定義された動作定義情報を保持する手段と、
      前記フェーズ更新手段により更新される前記フェーズの値に応じて、前記動作定義情報に定義された対応するインシデント対応動作を実行する実行手段とを含む、制御システム。
  2.  前記フェーズの値の更新に用いられる、前記1または複数の値の選択を受け付ける設定手段をさらに備える、請求項1に記載の制御システム。
  3.  前記フェーズ更新手段は、前記制御エンジンの一部に組み込まれており、
     前記制御エンジンで実行される制御プログラムは、前記フェーズの値を更新するための1または複数の命令を含む、請求項1または2に記載の制御システム。
  4.  前記フェーズ更新手段は、前記制御エンジンの一部に組み込まれており、
     前記制御エンジンで実行される制御プログラムは、前記フェーズの値を更新するための1または複数の命令を含み、
     前記設定手段は、前記命令の実行条件を受け付ける、請求項2に記載の制御システム。
  5.  前記フェーズ更新手段は、前記フェーズを定義する判定条件に従って前記フェーズの値を更新する、請求項1または2に記載の制御システム。
  6.  前記フェーズ更新手段は、前記フェーズを定義する判定条件に従って前記フェーズの値を更新し、
     前記設定手段は、前記判定条件として、前記制御エンジンが保持する前記内部状態値、および、前記セキュリティエンジンが保持する前記内部状態値のうちから、前記フェーズを定義する値の選択を受け付ける、請求項2に記載の制御システム。
  7.  前記制御エンジンを有する制御ユニットと、
     前記セキュリティエンジンを有するセキュリティユニットとを備え、
     前記フェーズの値の更新に用いられる、前記1または複数の値を前記制御ユニットが更新する周期と、前記フェーズの値を前記フェーズ更新手段が更新する周期とは同期している、請求項1~請求項6のうちいずれか1項に記載の制御システム。
PCT/JP2020/009293 2019-06-06 2020-03-05 制御システム WO2020246088A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/616,003 US20220327206A1 (en) 2019-06-06 2020-03-05 Control system
EP20818934.0A EP3982212A4 (en) 2019-06-06 2020-03-05 CONTROL SYSTEM
CN202080040334.5A CN113950647A (zh) 2019-06-06 2020-03-05 控制系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-106286 2019-06-06
JP2019106286A JP7255369B2 (ja) 2019-06-06 2019-06-06 制御システム

Publications (1)

Publication Number Publication Date
WO2020246088A1 true WO2020246088A1 (ja) 2020-12-10

Family

ID=73652529

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/009293 WO2020246088A1 (ja) 2019-06-06 2020-03-05 制御システム

Country Status (5)

Country Link
US (1) US20220327206A1 (ja)
EP (1) EP3982212A4 (ja)
JP (1) JP7255369B2 (ja)
CN (1) CN113950647A (ja)
WO (1) WO2020246088A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022114753A (ja) * 2021-01-27 2022-08-08 オムロン株式会社 制御システム、ロボットコントローラおよび制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137506A (ja) 1998-11-02 2000-05-16 Omron Corp プログラマブルコントローラ
WO2015001594A1 (ja) * 2013-07-01 2015-01-08 株式会社日立製作所 制御システム、制御方法及びコントローラ
WO2019102811A1 (ja) * 2017-11-24 2019-05-31 オムロン株式会社 制御装置および制御システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316884A (ja) * 2006-05-25 2007-12-06 Hitachi Ltd 制御装置、制御方法、及び、制御プログラム
DE102009011679A1 (de) * 2009-02-23 2010-08-26 Pilz Gmbh & Co. Kg Verfahren und Vorrichtung zum Erstellen eines Anwenderprogrammes für eine Sicherheitssteuerung
JP6442131B2 (ja) * 2012-11-14 2018-12-19 オムロン株式会社 制御システムおよび制御装置
DE102013112488A1 (de) * 2013-11-13 2015-05-13 Pilz Gmbh & Co. Kg Sicherheitssteuerung mit konfigurierbaren Eingängen
US10049112B2 (en) * 2014-11-10 2018-08-14 Business Objects Software Ltd. System and method for monitoring of database data
CN105794146A (zh) * 2014-11-13 2016-07-20 松下电器(美国)知识产权公司 密钥管理方法、车载网络系统以及密钥管理装置
EP3065076A1 (en) * 2015-03-04 2016-09-07 Secure-Nok AS System and method for responding to a cyber-attack-related incident against an industrial control system
US10042354B2 (en) * 2015-06-02 2018-08-07 Rockwell Automation Technologies, Inc. Security system for industrial control infrastructure using dynamic signatures
US11176584B2 (en) * 2016-08-03 2021-11-16 Raise Marketplace, Llc Cross-brand redemption in an exchange item marketplace network
WO2018048351A1 (en) * 2016-09-07 2018-03-15 Singapore University Of Technology And Design Defense system and method against cyber-physical attacks
JP7245486B2 (ja) * 2016-11-01 2023-03-24 俊雄 荒井 情報処理システム、情報処理方法、情報処理プログラム
JP6881174B2 (ja) * 2017-09-13 2021-06-02 オムロン株式会社 制御装置および制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137506A (ja) 1998-11-02 2000-05-16 Omron Corp プログラマブルコントローラ
WO2015001594A1 (ja) * 2013-07-01 2015-01-08 株式会社日立製作所 制御システム、制御方法及びコントローラ
WO2019102811A1 (ja) * 2017-11-24 2019-05-31 オムロン株式会社 制御装置および制御システム

Also Published As

Publication number Publication date
CN113950647A (zh) 2022-01-18
EP3982212A1 (en) 2022-04-13
US20220327206A1 (en) 2022-10-13
JP7255369B2 (ja) 2023-04-11
JP2020201584A (ja) 2020-12-17
EP3982212A4 (en) 2023-06-14

Similar Documents

Publication Publication Date Title
CN108513655B (zh) 软件定义自动化系统及其架构
WO2020246088A1 (ja) 制御システム
WO2020202809A1 (ja) コントローラシステム、サポート装置および評価方法
US20220147623A1 (en) Controller system
JP7180500B2 (ja) 制御システム、および設定方法
RU2750629C2 (ru) Система и способ выявления аномалий в технологической системе
JP2023068023A (ja) コントローラシステム
EP3940476A1 (en) Controller system
WO2020110876A1 (ja) コントローラシステム
WO2020240969A1 (ja) サポート装置および設定プログラム
JP2019174950A (ja) サポート装置、サポートプログラム、設定方法
US20220100162A1 (en) Control device, recording medium storing management program, and control system
JP7016837B2 (ja) コントローラシステム
JP7103214B2 (ja) サポート装置および支援プログラム
RU2747461C2 (ru) Система и способ противодействия аномалиям в технологической системе
JP7143762B2 (ja) コントローラシステム、制御装置および制御プログラム
WO2020195640A1 (ja) 監視システム、設定装置および監視方法
Hajarnavis et al. A Framework for Implementing Process Applications using CIP Technologies

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: 20818934

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: 2020818934

Country of ref document: EP