WO2022254953A1 - Control system and control method - Google Patents

Control system and control method Download PDF

Info

Publication number
WO2022254953A1
WO2022254953A1 PCT/JP2022/016753 JP2022016753W WO2022254953A1 WO 2022254953 A1 WO2022254953 A1 WO 2022254953A1 JP 2022016753 W JP2022016753 W JP 2022016753W WO 2022254953 A1 WO2022254953 A1 WO 2022254953A1
Authority
WO
WIPO (PCT)
Prior art keywords
container
protocol
communication
control system
controller
Prior art date
Application number
PCT/JP2022/016753
Other languages
French (fr)
Japanese (ja)
Inventor
弓束 重森
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2022254953A1 publication Critical patent/WO2022254953A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the present disclosure relates to a control system and control method, and more particularly to a control system and control method for FA (Factory Automation) controllers and network communication.
  • FA Vectory Automation
  • an information processing device that communicates with a PLC (Programmable Logic Controller) via a network exchanges various types of information, including production information, with the PLC.
  • a PLC has communication middleware for network communication according to a protocol set by a supplier (vendor, supplier, manufacturer, etc.) of the PLC.
  • the communication middleware of each controller (communication middleware compatible with the protocol set by the supplier) is different from the communication middleware of other PLCs. Therefore, when a plurality of PLCs with different communication middleware (communication protocols) are connected to a network, it is desired that the information processing apparatus be compatible with the communication middleware (protocol) of each supply source.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2005-260893 (Patent Document 1) meets this demand by using an information conversion server on a network.
  • an information conversion server receives and stores a profile (definition of an access type, a command name, and a response name) defining a protocol of the PLC from a PLC connected to a network. Based on the access type name received from the information processing device, the information conversion server converts the access type name into a command that the PLC can interpret according to the stored profile. This allows the information conversion server to support multiple protocols.
  • the information conversion server of Patent Document 1 is configured to perform profile communication with the PLC, if the type of protocol that can be set in the network-connected PLC can change, the information conversion server can change the application that communicates with the PLC to It must be recreated so that it can communicate according to the changed protocol.
  • One object of the present disclosure is to provide an environment in which communication can be performed with a simple mechanism even if the type of communication protocol used by the controller changes.
  • a control system is a control system including one or more controllers of FA (factory automation) and an information processing device that performs network communication with the one or more controllers, and for each of a plurality of types of protocols, the A repository that manages a protocol container that is a container containing middleware for network communication according to a protocol; a protocol acquisition unit that acquires, for each controller or multiple controllers, the type of protocol used by the controller for network communication; a container engine that activates middleware of the protocol container by deploying the protocol container of the repository corresponding to the protocol type of each controller acquired by the acquisition unit.
  • FA factory automation
  • the protocol acquisition unit acquires the type of communication protocol of each controller, and the acquired protocol of each controller A container corresponding to the type of is deployed and middleware is started.
  • the repository further manages a gateway container, which is a container containing middleware that relays communication data between the application and the deployed protocol containers corresponding to each of the protocol types, and the container engine further , by deploying the gateway container of the repository, the middleware of the gateway container is activated.
  • a gateway container which is a container containing middleware that relays communication data between the application and the deployed protocol containers corresponding to each of the protocol types
  • gateway container since the gateway container is deployed and started, data communication between the application and the deployed protocol container can be relayed by the gateway container.
  • the communication data includes a controller identifier that identifies the controller that is the destination of the communication data, and the middleware of the gateway container determines the relay destination of the communication data based on the communication data to be relayed by the protocol of each controller. Decide among the deployed protocol containers corresponding to the type.
  • the gateway container can determine the relay destination of communication data to be a protocol container corresponding to the protocol type of the controller indicated by the communication data controller identifier.
  • the container engine deploys the gateway container when receiving communication data to be relayed.
  • the timing conditions for deploying and starting the container engine can be determined based on the timing at which the container engine receives communication data to be relayed.
  • the communication data includes a controller identifier that identifies the controller that is the destination of the communication data, and the control system further includes identification data that identifies each controller and a protocol type corresponding to the controller. Equipped with an information acquisition unit that acquires relationship information indicating the relationship with the communication address of the deployed protocol container, the middleware of the gateway container relays the communication address corresponding to the identification data indicating the controller identifier of the communication data in the relationship information. Decide first.
  • the gateway container can determine the communication address of the protocol container to which the communication data is relayed from the acquired relationship information.
  • the communication data includes sequence data indicating a communication sequence
  • the deployed middleware of the protocol container converts the sequence data included in the communication data from the gateway container according to the protocol type corresponding to the protocol container. Convert to data that indicates a sequence.
  • the protocol container converts the communication sequence data included in the communication data to indicate the sequence according to the protocol.
  • the communication data can be exchanged between the application and the controller that uses the protocol for communication.
  • the sequence data includes commands for controlling communication connections and processing commands for causing the controller to perform processing.
  • sequence data converted by the middleware of the protocol container can include commands for controlling communication connections and processing commands for the controller.
  • each controller includes a first connector connected to the network to which the information processing device belongs, a second connector connected to a network different from the network to which the controlled object belongs, and A storage unit for storing a received state value of a controlled object and a control command for the controlled object, and a calculation unit for executing a control calculation for calculating the control command using the stored state value. It includes commands to read stored state values or control instructions or to write state values or control instructions to storage.
  • an application can communicate with any controller using processing commands to obtain state values or Control commands can be read or written.
  • a control method is a method of controlling communication performed in a control system including one or more controllers of FA (factory automation) and an information processing device that communicates with the one or more controllers over a network
  • the control system comprises a repository for managing a protocol container, which is a container containing middleware for network communication according to the protocol, for each of a plurality of types of protocols; a step of acquiring the type of protocol used for network communication, and a step of starting the middleware of the protocol container by deploying the protocol container of the repository corresponding to the acquired protocol type of each controller, and , provided.
  • the repository acquires the communication protocol type of each controller in a configuration in which the repository manages a container having middleware of the protocol for each different protocol, and corresponds to the acquired protocol type of each controller.
  • the container that was created is deployed and the middleware is started.
  • FIG. 2 is a diagram schematically showing the configuration of a server for communicating with a PLC in the control system 1 of FIG. 1;
  • FIG. 2 is a block diagram showing a hardware configuration example of a PLC 100 configuring the control system 1 according to the present embodiment;
  • FIG. 2 is a block diagram showing a hardware configuration example of a server 200 configuring the control system 1 according to this embodiment;
  • FIG. 3 is a block diagram showing a hardware configuration example of a terminal 300 configuring the control system 1 according to the present embodiment;
  • FIG. FIG. 3 is a diagram schematically showing the sequence shown in FIG. 2 in association with a container setting table 258;
  • FIG. 11 is a diagram showing an example of a scene in which a container setting table 258 according to the embodiment is created; 8 is a diagram showing an example of a usage scene of the container setting table 258 created in FIG. 7;
  • FIG. FIG. 4 is a diagram schematically showing an example of conversion processing by a protocol container according to the present embodiment;
  • FIG. 10 is a diagram showing a modification of deployment of protocol containers according to the present embodiment;
  • 4 is a flowchart of a startup sequence according to the embodiment;
  • 4 is a flow chart of a usage sequence according to the present embodiment;
  • FIG. 2 is a diagram for explaining advantages obtained by the control system 1 implementing the protocol container according to the present embodiment;
  • FIG. 1 is a diagram schematically showing the overall configuration of a control system 1 according to this embodiment.
  • FIG. 2 is a diagram schematically showing the configuration of a server for communicating with a PLC (Programmable Logic Controller) in the control system 1 of FIG.
  • FIG. 2 shows the configuration of a server for communicating with a PLC in a control system 1 that can be applied to FA.
  • PLC Protein Chemical Logic Controller
  • control system 1 includes one or more PLC systems 2-1, 2-2, 2-3 (hereinafter collectively referred to as “PLC system 2”),
  • the control system 1 includes a server 200, which is an example of an “information processing device,” and a terminal 300 responsible for development and maintenance.
  • a server 200 which is an example of an “information processing device”
  • terminal 300 responsible for development and maintenance.
  • Each of the PLC systems 2 is also called a line, and may control the entire FA factory, or may control specific manufacturing equipment or manufacturing equipment installed in the factory.
  • PLC systems 2-1, 2-2, and 2-3 as main components, are PLCs 100-1, 100-2, and 100-3 (hereinafter also referred to as "PLC 100"), which are typical examples of control devices that control objects to be controlled. collectively).
  • the PLC 100 is connected to the field device 10.
  • Field device 10 encompasses any equipment necessary to control a controlled object. More specifically, the field device 10 includes a device for exchanging information with a controlled object (eg, manufacturing equipment, manufacturing equipment, sensors and actuators included in manufacturing equipment or manufacturing equipment, etc.). In the example shown in FIG. 1, field device 10 includes relays 14 and servo motor 18 . Field device 10 may further include any device such as servo driver 16 and remote Input/Output (I/O) 12 shown in FIG.
  • I/O remote Input/Output
  • the PLC 100 acquires information from the field device 10 and generates information to be given to the field device 10 by executing control calculations according to a user program created in advance.
  • information acquired by the PLC 100 from the field device 10 is also referred to as "input data”, and information given to the field device 10 is also referred to as “output data”.
  • Input data and output data are also collectively referred to as “input/output data" or "I/O data”.
  • the input data may include values indicating the state of the field device 10 (eg, sensor output values), and the output data may include command values for controlling the field device 10 based on the results of control calculations.
  • the PLC 100 and the field device 10 are connected via the control system network 4, but are not limited to this, and may be connected by hard wire.
  • EtherCAT registered trademark
  • EtherNet/IP registered trademark
  • DeviceNet registered trademark
  • CompoNet registered trademark
  • Each PLC system 2 can access a cloud-based server 200 existing on the Internet 8 via an information system network 6 and a relay device 20 such as a gateway or router.
  • a relay device 20 such as a gateway or router.
  • the server 200 deploys containers to provide an executable environment and manages the containers.
  • "deployment" of a container indicates a process of instructing the execution of a target container, such as a process including installation. Deploying may include installing and starting the container, or it may be just installing and starting at another time. In this embodiment, deploying includes installing and starting a container.
  • the server 200 may be located on the cloud via the Internet 8 or may be located within the local network where the PLC system 2 exists without the Internet 8 .
  • the implementation form of the server 200 can be arbitrarily determined according to the required performance and functions.
  • the terminal 300 can access the server 200 and perform user operations to implement various processes described later.
  • this user operation is realized by the application 311 of the terminal 300, which will be described later, providing a GUI (Graphical User Interface) for operating the desktop environment of the server 200 connected to the terminal 300 via the Internet 8.
  • GUI Graphic User Interface
  • a “container” corresponds to a container image that constitutes a process executed by a “container engine”, which will be described later. file or collection of meta information).
  • containers include, for example, a "protocol container” and a "gateway container”.
  • a "protocol container” includes middleware including a protocol stack that implements communication according to the protocol.
  • the “protocol container” includes a “protocol container” for each type of communication protocol of the information system network 6 that can be set in the PLC 100 that can configure the control system 1 .
  • types of communication protocols that can be set in the PLC 100 include, for example, OPC-UA (Object Linking and Embedding for Process Control Unified Architecture), EIP (Ethernet/IP), and HTTPS (Hypertext Transfer Protocol Secure).
  • OPC-UA Object Linking and Embedding for Process Control Unified Architecture
  • EIP Ethernet/IP
  • HTTPS Hypertext Transfer Protocol Secure
  • a "gateway container” includes middleware that relays communication between an application and multiple types of protocol containers.
  • a “container engine” provides an execution environment for containers (more specifically, container images) stored in the container repository 250, and deploys the container images to the deployment area 280. By deploying, the container engine generates a module (instance) for executing processing from the container image, and executes (starts) the deployed container.
  • the server 200 includes a container repository 250 that stores a plurality of containers, a container engine 270, a deployment area 280 that constitutes a storage area such as RAM (Random Access Memory) in which the containers of the container repository 250 are deployed, and a kernel 291. It has an OS (Operating System) 212 and physical H/W (hardware) 292 such as various memories and communication circuits. In the server 200, a plurality of containers share the physical H/W 292 and OS 212 of the server 200 as their execution base. A container deployed in the deploy area 280 is managed as a process by the container engine 270 running on the OS 212 . Each container operates in parallel with other containers while using various resources including the physical H/W 292 managed by the container engine 270 via the kernel 291 of the OS 212 .
  • OS Operating System
  • H/W hardware
  • the terminal 300 Based on the information acquired for each PLC 100 connected to the information system network 6, the terminal 300 creates, for each PLC 100, a container setting table 258 having protocol designation data 257 indicating the protocol set for that PLC 100.
  • the container repository 250 stores, as containers, a gateway container 25 and a protocol container group 26 including protocol containers for each protocol type of the information system network 6 that can be set in the PLC 100 that can configure the control system 1 .
  • the container engine 270 deploys the gateway container 25 of the container repository 250 and each protocol container of the protocol container group 26 in the deploy area 280 .
  • the module of the protocol acquisition unit 260 of the server 200 searches (extracts) from the protocol container group 26 for a protocol container corresponding to the protocol type indicated by the protocol designation data 257 of the container setting table 258 received from the terminal 300. ) and deploy the found protocol container.
  • an OPC-UA protocol container 261, an EIP protocol container 262, and an HTTPS protocol container 263 are deployed.
  • Deployed containers are assigned container IP addresses that follow Internet protocols so that they can communicate with each other.
  • Each container is deployed in the startup sequence of the server 200 according to the procedure described above.
  • a usage sequence that utilizes the deployed container can then be performed.
  • a transfer route 80 for communication data 70 is indicated by a thick arrow.
  • the communication data 70 includes the IP address of the destination PLC 100 and communication sequence data for communicating with the PLC 100 .
  • the communication data 70 employs, for example, a frame configuration, but may employ a packet configuration.
  • the destination of the frame of the communication data 70 indicates, for example, the PLC 100-1.
  • the gateway container 25 receives the frame of the communication data 70 transferred from the terminal 300, and based on the destination of the frame, from the container setting table 258 acquired by the protocol acquisition unit 260, the destination (that is, the PLC 100-1) Search for protocol types that support .
  • the retrieved protocol type is, for example, OPC-UA.
  • the gateway container 25 transfers the received data to the protocol container 261 corresponding to the retrieved protocol type.
  • the protocol container 261 processes the communication data 70 transferred from the gateway container 25 according to OPC-UA, and transfers the processed communication data 70 according to OPC-UA to the destination PLC 100-1.
  • PLC 100-1 receives and processes the transferred communication data 70, and transmits response data based on the processing.
  • the response data follows the forwarding route 80 in the reverse direction to reach the application.
  • the control system 1 of FIG. 2 manages middleware implementing different protocols as a protocol container group 26 in a container repository 250, and is connected to a PLC 100 that can be accessed (communicated) by an application, that is, the information system network 6.
  • a container corresponding to the protocol type set in each PLC 100 is retrieved from the protocol container group 26 and deployed.
  • the control system 1 can easily provide an environment in which an application can communicate with the PLC 100 (and the field device 10 connected to the PLC 100) without additionally implementing a module according to the protocol.
  • FIG. 3 is a block diagram showing a hardware configuration example of the PLC 100 configuring the control system 1 according to this embodiment.
  • PLC 100 includes a processor 102 such as a CPU (Central Processing Unit) or MPU (Micro-Processing Unit), a chipset 104, a main memory 106, a storage 110, and physical circuits.
  • an information system network controller 120 connected to a connector 121 connected to a physical circuit; a control system network controller 122 connected to a connector 123 configured by a physical circuit; a USB (Universal Serial Bus) controller 124;
  • the connector 121 is connected to the network to which the server 200 belongs, and the connector 123 is connected to the network to which the PLC 100 belongs, which is different from the network to which the server 200 belongs.
  • the processor 102 reads various programs stored in the storage 110, develops them in the main memory 106, and executes them to perform control calculations and external devices (server 200, terminal 300, and field device 10) for controlling controlled objects. ) to implement communication processing.
  • the chipset 104 controls data transmission between the processor 102 and each component.
  • the storage 110 stores an OS (Operating System) 112, a system program 114, and a user program 115.
  • System program 114 includes communication firmware for communicating with external devices including server 200 via information network 6 and communication firmware for communicating with external devices including PLC 100 via control network 4 .
  • the user program 115 includes a control program 116, a communication program 117 and an IO (Input/Output) refresh 118.
  • the IO refresh 118 collects the state values of the field devices 10 to be controlled via the control system network 4 and stores them in the IO refresh area 113 , while transmitting the control command stored in the IO refresh area 113 to the control system network 4 . to the control target via
  • the control program 116 uses the state values stored in the IO refresh area 113 to perform control calculations on the controlled object to calculate the above control commands, and the communication firmware to perform communication processing.
  • communication program 117 may include other various processing programs.
  • the information system network controller 120 controls data exchange with external devices (the terminal 300 and the server 200) via the information system network 6 connected to the connector 121.
  • the control system network controller 122 controls data exchange with the field device 10 via the control system network 4 connected to the connector 123 .
  • the USB controller 124 controls data exchange with an external device (eg, support device) via a USB connection.
  • an external device eg, support device
  • the memory card interface 126 is configured such that a memory card 128 can be detachably attached to the memory card 128 so that data can be written to the memory card 128 and various data (such as the user program 115 and data) can be read from the memory card 128.
  • the PLC 100 may have an optical drive.
  • the optical drive reads the program from a recording medium that non-transitory stores a computer-readable program (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) and stores the program in the storage 110 or the like.
  • a computer-readable program for example, an optical recording medium such as a DVD (Digital Versatile Disc)
  • Various programs executed by the PLC 100 may be installed via a computer-readable recording medium or memory card 128, or may be installed by downloading from a device such as any computer on the network. .
  • FIG. 3 shows a configuration example in which necessary processing is provided by the processor 102 executing a program.
  • the main part of the PLC 100 may be realized using hardware conforming to a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer).
  • 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 with different purposes in parallel, and necessary applications may be executed on each OS.
  • FIG. 4 is a block diagram showing a hardware configuration example of the server 200 configuring the control system 1 according to this embodiment.
  • server 200 includes one or more processors 202 such as a CPU or MPU, a main memory 206, a storage 210, one or more network controllers 220, an input unit 226, a display unit 228, and including. These components are connected via bus 208 .
  • the processor 202 reads various programs stored in the storage 210, develops them in the main memory 206, and executes them, thereby realizing various processes to be described later.
  • the main memory 206 in part constitutes a deploy area 280 .
  • the storage 210 is composed of, for example, an HDD (Hard Disk Drive) or an SSD (Flash Solid State Drive).
  • the storage 210 typically stores an OS 212 for realizing basic processing and a container application 214 including programs and data for realizing various kinds of processing provided by the server 200 as described later.
  • the container application 214 includes a container repository 250, a protocol acquisition program 264 that configures the protocol acquisition unit 260 when executed, and a container engine program 275 that configures the container engine 270 when executed.
  • the network controller 220 controls data exchange with various devices via the network.
  • the input unit 226 is composed of a keyboard, mouse, etc., and receives instructions from the user.
  • the display unit 228 is configured by a display or the like, and outputs processing results from the processor 202 and the like.
  • the server 200 may have an optical drive 203.
  • the optical drive 203 reads the program from a recording medium 204 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program non-transitory, and stores the program in a storage 210 or the like.
  • a recording medium 204 for example, an optical recording medium such as a DVD (Digital Versatile Disc)
  • DVD Digital Versatile Disc
  • Various programs to be executed on the server 200 may be installed via the computer-readable recording medium 204 or memory card, or may be installed by downloading from a device such as any computer on the network. good.
  • FIG. 4 shows a configuration example in which necessary processing is provided by the processor 202 executing a program. Alternatively, it may be implemented using an FPGA, etc.).
  • FIG. 5 is a block diagram showing a hardware configuration example of the terminal 300 configuring the control system 1 according to this embodiment.
  • a terminal 300 includes a processor 302 such as a CPU or MPU, an optical drive 304, a main memory 306, a storage 310, a network controller 320, a USB controller 324, an input unit 326, and a display. 328. These components are connected via bus 308 .
  • the processor 302 reads various programs stored in the storage 310 , develops them in the main memory 306 , and executes them, thereby realizing necessary processing in the terminal 300 .
  • the storage 310 is composed of, for example, an HDD or SSD.
  • the storage 310 contains an OS 312, an application 311, a development program 314 for instructing processing to be described later, configuration information 256 indicating the configuration of the network 400, and a container setting table 258 containing protocol designation data 257.
  • the application 311 includes a table setting program 315 including a UI program 316 that provides UI (User Interface) tools, and a configuration program 317 .
  • the configuration program 317 When the configuration program 317 is executed, it scans the configuration of the network 400 and collects communication-related information from each PLC 100 . For example, the configuration program 317 receives and collects from each PLC 00 information on communication firmware including the type of protocol set in the PLC 100 to communicate with an external device including the server 200 via the information system network 6 .
  • the table setting program 315 When executed, the table setting program 315 receives information from the user via the UI tool provided by the UI program 316, and uses the received information to create the container setting table 258.
  • the storage 310 may store necessary programs other than the programs shown in FIG.
  • the network controller 320 controls data exchange with devices such as each PLC 100 and server 200 via the information system network 6 .
  • the USB controller 324 controls data exchange with external devices via a USB connection.
  • the input unit 326 is composed of a mouse, keyboard, touch panel, etc., and receives instructions from the user.
  • the display unit 228 includes a display, various indicators, and the like, and outputs processing results from the processor 302 and the like.
  • the terminal 300 may have an optical drive 304.
  • the optical drive 304 reads the program from a recording medium 305 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program non-transitory, and stores the program in a storage 310 or the like.
  • a recording medium 305 for example, an optical recording medium such as a DVD (Digital Versatile Disc)
  • DVD Digital Versatile Disc
  • Various programs to be executed on the terminal 300 may be installed via the computer-readable recording medium 305, or may be installed by downloading from any server on the network.
  • FIG. 5 shows a configuration example in which necessary processing is provided by the processor 302 executing a program. Alternatively, it may be implemented using an FPGA, etc.).
  • FIG. 6 is a diagram schematically showing the sequence shown in FIG. 2 in association with the container setting table 258.
  • application 311 creates container setting table 258 based on a user operation received via a UI tool, for example, in configuration processing (step T1) performed by terminal 300 (step T2).
  • the container setting table 258 includes, for each PLC 100 connected to the information system network 6, a device name 2A representing the model name given by the vendor of the PLC 100, a device IP address 2B according to IP (Internet Protocol), and the name of the PLC 100.
  • a container image name 2C for identifying a container corresponding to a protocol and an IP address 2D of the container are associated with each other.
  • the container image name 2C indicates the protocol name.
  • the container setting table 258 includes the container image name 2C as the protocol designation data 257.
  • the protocol acquisition unit 260 acquires the container image name 2C of the container setting table 258 or the type of protocol set in the PLC 100 configuring the control system 1 (step T3). According to the container setting table 258 of FIG. 6, OPC-UA, EIP and HTTPS are obtained as protocol types.
  • the container engine 270 deploys protocol containers 261, 262 and 263 corresponding to the acquired protocol type from among the protocol container group 26 of the container repository 250 (step T4).
  • the application 311 of the terminal 300 communicates the communication data 70 addressed to the PLC 100-1 to the server 200 based on the user's operation (step R1).
  • the gateway container 25 Based on the destination (device IP address) indicated by the communication data 70 transferred from the application 311, the gateway container 25, from the container setting table 258, sends a message to the container IP address 2D corresponding to the device IP address 2B that matches the destination. Send communication data 70 .
  • the gateway container 25 assigns the communication data 70 to the protocol container corresponding to the protocol type set in the destination PLC 100-1 of the deployed protocol containers 261, 262, and 263. 70 is distributed (step R2). By this sorting, for example, the communication data 70 is sent to the OPC-UA protocol container 261 .
  • the OPC-UA protocol container 261 receives the communication data 70 transferred from the gateway container 25 (step R3), converts the received communication data 70 according to the OPC-UA protocol, and converts the converted communication data 70 to By executing it, it communicates with the destination (device IP address) of the communication data 70 (step R4). Details of the conversion processing in step R4 will be described later. Thereby, the PLC 100-1 can respond to the communication data 70 according to the protocol of the PLC 100-1.
  • communication data 70 addressed to PLC 100-1 has been described here, communication data 70 addressed to PLC 100-2 according to EIP or PLC 100-3 according to HTTPS can be similarly processed.
  • the container setting table 258 has the device IP address 2B, it may be a URL (Uniform Resource Locator) instead of the device IP address 2B.
  • URL Uniform Resource Locator
  • the communication data 70 includes a controller identifier (eg, device name) that identifies the PLC 100 that is the destination of the communication data.
  • the application 311 obtains identification data (device name 2A, device IP address 2B, etc.) that identifies each PLC 100 and the protocol type of the PLC 100.
  • the container setting table 258, which is an example of relationship information indicating the relationship with the communication address (container IP address 2D) of the corresponding deployed protocol container.
  • the middleware of the gateway container 25 converts the communication address (container IP address 2D) corresponding to the identification data (device name 2A) indicating the controller identifier (for example, device name) of the communication data 70 in the relationship information into the communication data. 70 relay destination.
  • FIG. 7 is a diagram showing an example of a creation scene of the container setting table 258 according to this embodiment.
  • the user creates the container setting table 258 by operating the UI tool provided by the UI program 316 of the terminal 300.
  • FIG. For example, the application 311 displays a monitor screen (lower left screen in FIG. 7) on the display unit 328 of the terminal 300 . From the monitor screen, the user can monitor the status values that each PLC 100 collects from the field devices 10 by pairs of the variable name to which the status value is set and the status value.
  • the user operates the button 330 to instruct to start monitoring the monitor screen.
  • the table setting program 315 activates the setting screen (step Q2) in response to the operation of the button 330.
  • the display unit 328 displays a container setting table 258 having setting contents according to user operations.
  • the container setting table 258 is created according to the user's operation, but it may be set by other methods.
  • the container setting table 258 may be created based on the configuration information 256 stored in the terminal 300.
  • the configuration information 256 includes information (device name 2A, device IP address 2B, set protocol (container image name) 2C) received from the PLC 100 connected to the information system network 6 and indicating the configuration of the PLC 100 .
  • the user operates the conversion button 329.
  • the table setting program 315 converts the container setting table 258 into a file format according to the operation of the button 329 .
  • the server 200 or the terminal 300 can handle the container setting table 258 in file format.
  • the device IP address 2B and the container IP address 2D may be obtained from the device name 2A by searching for information that manages the correspondence between the device name, the device IP address, and the container IP address.
  • the container IP address may be a predetermined address or may point to the IP address of the deployed protocol container.
  • FIG. 8 is a diagram showing an example of a usage scene of the container setting table 258 created in FIG. As a usage scene, a case where the user monitors the state values of the field device 10 of the PLC 100-2 will be described.
  • application 311 transmits communication data 70 including device name 2A, variable read command CM, and variable name N indicating "Variable B" to server 200 (step Q7).
  • the gateway container 25 of the server 200 searches the container setting table 258 for the device IP address 2B and container IP address 2D corresponding to the device name 2A (step Q8, Q9).
  • the gateway container 25 replaces the device name 2A of the communication data 70 with the retrieved device IP address 2B, and transfers the replaced communication data 70 to the protocol container with the retrieved container IP address 2D as the destination (step Q10). ).
  • communication data 70 is transferred to EIP's protocol container 262 .
  • the protocol container 262 converts the communication sequence into the communication data 70 according to EIP (step Q11), and transmits the processed communication data 70 to the information system network 6 with the device IP address 2B of the communication data 70 as the destination. (Step Q11).
  • the communication program 117 of the PLC 100-2 designated by the device IP address 2B included in the communication data 70 receives the communication data 70.
  • the user program 115 of the PLC 100-2 executes the command CM indicated by the communication sequence of the communication data 70, and according to the execution result, specifies the variable name N of "Variable B" from among the state values output by the field device 10. Get the state value to be set as the variable value V.
  • variable value V acquired by the PLC 100-2 is transferred to the application 311, which is the sender of the communication data 70, via the protocol container 262 and the gateway container 25 (steps Q12, Q13, Q14).
  • the application 311 uses the variable value V received from the PLC 100-2 to update the value indicated by the arrow B2 on the monitor screen of the display unit 328 to indicate the variable value V (step Q15).
  • FIG. 9 is a diagram schematically showing an example of conversion processing by a protocol container according to this embodiment.
  • the protocol container converts the communication sequence of the communication data 70 transferred from the gateway container 25 according to the protocol by middleware, and executes the converted communication sequence to set the protocol. It can communicate with PLC 100 according to communication data 70 .
  • a communication sequence includes data of a sequence of one or more commands for communicating with PLC 100 .
  • the communication sequence includes a command to establish a communication connection, one or more commands for processing to be executed by the PLC 100 after establishing the communication connection, and a command to terminate (shut off) the established communication connection after execution of the processing command.
  • a command to establish a communication connection one or more commands for processing to be executed by the PLC 100 after establishing the communication connection
  • a command to terminate (shut off) the established communication connection after execution of the processing command.
  • the communication sequence of the variable read command CM includes, in addition to the variable read command CM, a command CM1 for establishing a communication connection and a command (not shown) for disconnecting the communication connection.
  • the protocol container converts the command CM1 for establishing a communication connection indicated by the communication sequence of the communication data 70 transferred from the gateway container 25 into a command defined by the protocol (step Q20), and outputs a variable read command CM. It is converted into a command specified by the protocol (step Q21).
  • the EIP protocol container 262 converts the command CM1 of the communication data 70 into a command of "EstablishClass3Connection( )" conforming to the EIP (step Q20), and a variable variable read command Convert CM to "ConnectionObjectGetInstanceTypeForAttribute(variable)" according to EIP.
  • the OPC-UA protocol container 261 and the HTTPS protocol container 263 also convert the sequence data of the communication sequence as shown in FIG.
  • a communication sequence composed of commands converted in this way is executed by the middleware of the container protocol and the communication middleware of the PLC 100, so that the server 200 (more specifically, establishes a communication connection with the PLC 100 corresponding to the protocol container), the PLC 100 executes processing based on the variable read command after conversion, and then cuts off the communication connection between the middleware of the container protocol and the communication middleware of the PLC 100 Command is executed.
  • a command for reading data from a variable is shown as a communication sequence processing command, but other commands, such as a command for writing data to a variable, can be included.
  • the sequence data indicating the communication sequence is a communication connection control command (a command to establish a communication connection and a command to cut off the communication connection) and the PLC 100 between the establishment and cutoff of the communication connection. and processing commands that cause the to perform processing.
  • the processing command may include a command to read the state value or control instruction stored in the IO refresh area 113 or a write command to write data (state value or control instruction) to the IO refresh area 113. can.
  • FIG. 10 is a diagram showing a modified example of deployment of protocol containers according to the present embodiment.
  • the PLC 100 may be provided with communication middleware on a container basis.
  • the communication middleware of the protocol container of the server 200 dynamically provides each PLC 100 with a gateway container corresponding to the protocol set in the PLC and a protocol corresponding to various protocols from the container repository 250.
  • a container may be loaded (deployed).
  • FIG. 11 is a flowchart of the startup sequence according to this embodiment.
  • application 311 of terminal 300 creates container setting table 258 as shown in step T1 of FIG. 6 (step S1). Note that the container setting table 258 may be created in an environment different from that of the application 311 .
  • the server 200 deploys the gateway container 25 and the protocol container corresponding to the container image name 2C in the container setting table 258 (step S3), as shown in step T4 of FIG. 6, according to the instruction from the application 311.
  • the server 200 deploys the protocol container corresponding to the container image name 2C in the container setting table 258 according to the instruction from the application 311, as shown in step T4 of FIG. 6 (step S5).
  • FIG. 12 is a flowchart of the usage sequence according to this embodiment.
  • application 311 transmits communication data 70 having the communication sequence to gateway container 25 as shown in step R1 of FIG. 6 in order to issue a communication sequence to PLC 100 specified by the user. (step S7).
  • the gateway container 25 searches the container setting table 258 for the device IP address 2B and container IP address 2D corresponding to the device name 2A (step S9). Note that when a URL (Uniform Resource Locator) is set in the container setting table 258 instead of the device IP address 2B, the gateway container 25 converts the URL to the device IP address 2B using DNS (Domain Name System). Convert.
  • URL Uniform Resource Locator
  • the gateway container 25 determines whether or not the device IP address 2B could be retrieved from the container setting table 258 based on the search result of step S9 (step S11). If the search is not possible (NO in step S11), communication error processing is performed. is determined (step S13). More specifically, the gateway container 25 executes a predetermined status confirmation command, and determines the status of the container with the container IP address 2D based on the execution result. If it is determined that the state is not in a communicable state (NO in step S13), a communication error process is executed. If it is determined that the state is in a communicable state (YES in step S13), step Move to S15.
  • step S15 as shown in step R2 of FIG. 6, the gateway container 25 transmits the communication sequence of the communication data 70 and the device IP address 2B to the protocol container of the container IP address 2D (step S15).
  • the protocol container with the container IP address 2D receives the communication data 70 from the gateway container 25 and communicates with the PLC 100 according to the received communication data 70, as shown in steps R3 and R4 of FIG. 6 (step S17). More specifically, the protocol container converts the command of the communication sequence of the received communication data 70 into a command conforming to the protocol of the protocol container, and executes the communication sequence composed of the converted command to obtain the device IP address 2B. Communicate with the PLC 100 specified by.
  • the gateway container 25 may be deployed at a different timing than the protocol container.
  • container engine 270 may be configured to perform deployment for gateway container 25 upon receipt of communication data 70 to be relayed.
  • FIG. 13 is a diagram for explaining advantages obtained by the control system 1 implementing the protocol container according to the present embodiment.
  • an application generally calls middleware (communication middleware) for each protocol associated with the application in order to communicate with a device, and communicates with a device such as the PLC 100 via the called middleware.
  • middleware communication middleware
  • the application and middleware are tightly coupled. Therefore, in order for an application to switch and operate a plurality of middlewares, it is necessary to create an application in advance so that it can call a plurality of middlewares. Also, to make an application compatible with a new protocol, it is necessary to rewrite the application so that it can call the new middleware.
  • the container repository 250 stores containers having middleware for each different protocol
  • the container engine 270 is connected to the information system network 6 of the control system 1.
  • a container corresponding to the protocol set in each PLC 100 that is in the application 311, that is, in each PLC 100 that can be a communication partner of the application 311 is deployed.
  • the application 311 and the middleware are loosely coupled.
  • protocol-compatible middleware for the application 311 to communicate with the PLC 100 or field device 10 that is a local device can provide an environment dynamically supported by the container engine 270 .
  • a control system (1) including one or more controllers (100) for FA (factory automation) and an information processing device (200) that performs network communication with the one or more controllers, a repository (250) that manages a protocol container (26), which is a container containing middleware for network communication according to each protocol, for each of a plurality of types of protocols; a protocol acquisition unit (260) for acquiring, for each of the one or more controllers, the type of protocol used by the controller for the network communication; a container engine (270) for starting middleware of the protocol container by deploying the protocol container of the repository corresponding to the protocol type of each controller acquired by the protocol acquisition unit; , control system.
  • Said repository further comprises: managing a gateway container (25), which is a container containing middleware for relaying communication data (70) between the application (311) and the deployed protocol container corresponding to each protocol type; 2.
  • the communication data includes a controller identifier (2A) that identifies the controller that is the destination of the communication data;
  • the control according to configuration 2 wherein the middleware of the gateway container determines a relay destination of the communication data based on the communication data to be relayed from among the deployed protocol containers corresponding to the protocol types of the controllers. system.
  • the control system according to configuration 3, wherein the container engine performs the deployment for the gateway container when receiving the communication data to be relayed.
  • the control system further comprises: an information acquisition unit (260) for acquiring relationship information (258) indicating a relationship between identification data identifying each controller and a communication address of the deployed protocol container corresponding to the protocol type of the controller;
  • relationship information (258) indicating a relationship between identification data identifying each controller and a communication address of the deployed protocol container corresponding to the protocol type of the controller
  • the control system according to configuration 3 or 4, wherein the middleware of the gateway container determines the communication address corresponding to the identification data indicating the controller identifier of the communication data in the relationship information as the relay destination.
  • the communication data includes sequence data indicating a communication sequence
  • the deployed middleware of the protocol container converts the sequence data included in the communication data from the gateway container into data indicating a sequence according to the type of the protocol corresponding to the protocol container, configurations 2 to 5 A control system according to any one of the preceding claims.
  • Each of the controllers a first connector (121) connected to a network to which the information processing device belongs; a second connector (123) that connects a network different from the network to which the controlled object belongs; a storage unit (113) for storing a state value of the controlled object received via the different network and a control command for the controlled object; a calculation unit (116, 102) that executes a control calculation for calculating the control command using the stored state value; 8.
  • the processing command comprises a command to read the stored state values or the control instructions or a command to write the state values or the control instructions to the store.
  • a method of controlling said communication performed in a control system (1) comprising one or more controllers (100) of FA (factory automation) and an information processing device (200) in network communication with said one or more controllers
  • the control system is A repository (250) for managing a protocol container (26), which is a container containing middleware for network communication according to the protocol, for each of a plurality of types of protocols;
  • the method includes obtaining, for each of the one or more controllers, the type of protocol that the controller uses for the network communication; a step of deploying the protocol container of the repository corresponding to the acquired protocol type of each controller, thereby activating the middleware of the protocol container.
  • control system 2A, device name, 2B, device IP address, 2C, container image name, 2D, container address, 4, control system network, 6, information system network, 8, Internet, 10, field device, 14, relay group, 16, servo driver, 18, servo motor , 20 relay device, 25 gateway container, 26 protocol container group, 70 communication data, 80 transfer route, 102, 202, 302 processor, 104 chipset, 106, 206, 306 main memory, 110, 210, 310 storage, 113 IO Refresh area, 114 system program, 115 user program, 116 control program, 117 communication program, 118 IO refresh, 120 information network controller, 121, 123 connector, 122 control network controller, 124, 324 controller, 126 memory card interface, 127, 128 memory card, 200 server, 203, 304 optical drive, 204, 305 recording medium, 208, 308 bus, 220, 320 network controller, 226, 326 input section, 228, 328 display section, 250 container repository, 256 configuration information, 257 protocol specification

Abstract

This invention achieves communication with a controller, using a simple system. This control system, which includes one or more factory automation (FA) controllers and an information processing device, comprises: a repository that manages protocol containers for each of a plurality of types of protocols, each protocol container including middleware for network communications in accordance with the relevant protocol; and a protocol acquisition unit that acquires the type of protocol used in network communications by each controller. The control system launches the middleware of a given protocol container by deploying the repository protocol container corresponding to the given protocol type.

Description

制御システムおよび制御方法Control system and control method
 本開示は制御システムおよび制御方法に関し、特に、FA(Factory Automation)のコントローラとネットワーク通信のための制御システムおよび制御方法に関する。 The present disclosure relates to a control system and control method, and more particularly to a control system and control method for FA (Factory Automation) controllers and network communication.
 FA分野では、PLC(プログラマブルロジックコントローラ)とネットワークを介して通信する情報処理装置は、生産情報を含む各種情報をPLCと遣り取りする。PLCは、当該PLCの供給元(ベンダ、サプライヤ、メーカーなど)が設定したプロトコルに従ってネットワーク通信するための通信ミドルウェアを有する。異なるベンダのPLCがネットワークに接続される場合、各コントローラが有する通信ミドルウェア(供給元が設定のプロトコルに対応の通信ミドルウェア)は他のPLCの通信ミドルウェアと異なってしまう。したがって、互いの通信ミドルウェア(通信プロトコル)が異なる複数のPLCがネットワークに接続される場合は、情報処理装置は、供給元毎の通信ミドルウェア(プロトコル)に対応可能な環境が望まれる。 In the FA field, an information processing device that communicates with a PLC (Programmable Logic Controller) via a network exchanges various types of information, including production information, with the PLC. A PLC has communication middleware for network communication according to a protocol set by a supplier (vendor, supplier, manufacturer, etc.) of the PLC. When PLCs of different vendors are connected to a network, the communication middleware of each controller (communication middleware compatible with the protocol set by the supplier) is different from the communication middleware of other PLCs. Therefore, when a plurality of PLCs with different communication middleware (communication protocols) are connected to a network, it is desired that the information processing apparatus be compatible with the communication middleware (protocol) of each supply source.
 例えば、特開2005-260893号公報(特許文献1)は、ネットワーク上の情報変換サーバを用いることで、この要望に応えている。特許文献1では、情報変換サーバは、ネットワークに接続されるPLCから、当該PLCのプロトコルを定義したプロファイル(アクセス種別とコマンド名、レスポンス名の定義)を受信し格納する。情報変換サーバは、情報処理機器から受信するアクセス種別名に基づき、格納しているプロファイルに従って、当該アクセス種別名をPLCが解釈できるコマンドに変換する。これにより、情報変換サーバは複数のプロトコルをサポートする。 For example, Japanese Patent Application Laid-Open No. 2005-260893 (Patent Document 1) meets this demand by using an information conversion server on a network. In Patent Document 1, an information conversion server receives and stores a profile (definition of an access type, a command name, and a response name) defining a protocol of the PLC from a PLC connected to a network. Based on the access type name received from the information processing device, the information conversion server converts the access type name into a command that the PLC can interpret according to the stored profile. This allows the information conversion server to support multiple protocols.
特開2005-260893号公報JP 2005-260893 A
 特許文献1の情報変換サーバは、PLCとプロファイル通信する構成であるから、ネットワーク接続されるPLCに設定され得るプロトコルの種類が変化し得る場合は、情報変換サーバは、PLCと通信するアプリケーションを、変化後のプロトコルに従い通信可能となるように再作成する必要がある。 Since the information conversion server of Patent Document 1 is configured to perform profile communication with the PLC, if the type of protocol that can be set in the network-connected PLC can change, the information conversion server can change the application that communicates with the PLC to It must be recreated so that it can communicate according to the changed protocol.
 本開示の1つの目的は、コントローラが用いる通信プロトコルの種類に変化があるとしても、当該コントローラと簡単な仕組みで通信を実施できる環境を提供することである。 One object of the present disclosure is to provide an environment in which communication can be performed with a simple mechanism even if the type of communication protocol used by the controller changes.
 この開示に係る制御システムは、FA(ファクトリオートメーション)の1または複数のコントローラと、1または複数のコントローラとネットワーク通信する情報処理装置を含む制御システムであって、複数種類のプロトコルのそれぞれについて、当該プロトコルに従ったネットワーク通信のためのミドルウェアを含むコンテナであるプロトコルコンテナを管理するリポジトリと、各1または複数のコントローラについて、当該コントローラがネットワーク通信に用いるプロトコルの種類を取得するプロトコル取得部と、プロトコル取得部によって取得された各コントローラのプロトコル種類について、当該プロトコル種類に対応するリポジトリのプロトコルコンテナをデプロイすることで、当該プロトコルコンテナのミドルウェアを起動するコンテナエンジンと、を備える。 A control system according to the present disclosure is a control system including one or more controllers of FA (factory automation) and an information processing device that performs network communication with the one or more controllers, and for each of a plurality of types of protocols, the A repository that manages a protocol container that is a container containing middleware for network communication according to a protocol; a protocol acquisition unit that acquires, for each controller or multiple controllers, the type of protocol used by the controller for network communication; a container engine that activates middleware of the protocol container by deploying the protocol container of the repository corresponding to the protocol type of each controller acquired by the acquisition unit.
 この開示によれば、リポジトリが、異なるプロトコルそれぞれについて、当該プロトコルのミドルウェアを有したコンテナを管理する構成において、プロトコル取得部が各コントローラの通信プロトコルの種類を取得し、取得された各コントローラのプロトコルの種類に対応したコンテナがデプロイされてミドルウェアが起動される。これにより、コントローラが用いる通信プロトコルの種類に変化があるとしても、変化後のプロトコルの種類に対応のプロトコルコンテナをデプロイするだけで済むから、コントローラと簡単な仕組みで通信を実施できる環境を提供できる。 According to this disclosure, in a configuration in which the repository manages containers having middleware for each protocol for each different protocol, the protocol acquisition unit acquires the type of communication protocol of each controller, and the acquired protocol of each controller A container corresponding to the type of is deployed and middleware is started. As a result, even if there is a change in the type of communication protocol used by the controller, it is only necessary to deploy a protocol container that supports the type of protocol after the change, so it is possible to provide an environment in which communication with the controller can be implemented with a simple mechanism. .
 上述の開示において、リポジトリは、さらに、アプリケーションとデプロイされた各前記プロトコル種類に対応のプロトコルコンテナとの間で通信データを中継するミドルウェアを含むコンテナであるゲートウェイコンテナを管理し、コンテナエンジンは、さらに、リポジトリの前記ゲートウェイコンテナをデプロイすることで、当該ゲートウェイコンテナのミドルウェアを起動する。 In the above disclosure, the repository further manages a gateway container, which is a container containing middleware that relays communication data between the application and the deployed protocol containers corresponding to each of the protocol types, and the container engine further , by deploying the gateway container of the repository, the middleware of the gateway container is activated.
 この開示によれば、ゲートウェイコンテナがデプロイされて起動されるので、アプリケーションとデプロイされたプロトコルコンテナとの両者間におけるデータ通信を、ゲートウェイコンテナによって中継することができる。 According to this disclosure, since the gateway container is deployed and started, data communication between the application and the deployed protocol container can be relayed by the gateway container.
 上述の開示において、通信データは、当該通信データの宛先であるコントローラを識別するコントローラ識別子を含み、ゲートウェイコンテナのミドルウェアは、中継する通信データに基づき、当該通信データの中継先を、各コントローラのプロトコル種類に対応するデプロイされたプロトコルコンテナのうちから決定する。 In the above disclosure, the communication data includes a controller identifier that identifies the controller that is the destination of the communication data, and the middleware of the gateway container determines the relay destination of the communication data based on the communication data to be relayed by the protocol of each controller. Decide among the deployed protocol containers corresponding to the type.
 この開示によれば、ゲートウェイコンテナは、通信データの中継先を、当該通信データコントローラ識別子が示すコントローラのプロトコル種類に対応のプロトコルコンテナに決定できる。 According to this disclosure, the gateway container can determine the relay destination of communication data to be a protocol container corresponding to the protocol type of the controller indicated by the communication data controller identifier.
 上述の開示において、コンテナエンジンは、中継する通信データを受付けたとき、ゲートウェイコンテナについてデプロイを実施する。 In the above disclosure, the container engine deploys the gateway container when receiving communication data to be relayed.
 この開示によれば、コンテナエンジンをデプロイして起動する時期的条件を、コンテナエンジンが中継するべき通信データを受け付けたタイミングに基づき決定できる。 According to this disclosure, the timing conditions for deploying and starting the container engine can be determined based on the timing at which the container engine receives communication data to be relayed.
 上述の開示によれば、通信データは、当該通信データの宛先であるコントローラを識別するコントローラ識別子を含み、制御システムは、さらに、各コントローラを識別する識別データと、当該コントローラのプロトコル種類に対応するデプロイされたプロトコルコンテナの通信アドレスとの関係を示す関係情報を取得する情報取得部を備え、ゲートウェイコンテナのミドルウェアは、関係情報における、通信データのコントローラ識別子を示す識別データに対応の通信アドレスを中継先に決定する。 According to the above disclosure, the communication data includes a controller identifier that identifies the controller that is the destination of the communication data, and the control system further includes identification data that identifies each controller and a protocol type corresponding to the controller. Equipped with an information acquisition unit that acquires relationship information indicating the relationship with the communication address of the deployed protocol container, the middleware of the gateway container relays the communication address corresponding to the identification data indicating the controller identifier of the communication data in the relationship information. Decide first.
 この開示によれば、ゲートウェイコンテナは、取得された関係情報から、通信データの中継先となるプロトコルコンテナの通信アドレスを決定できる。 According to this disclosure, the gateway container can determine the communication address of the protocol container to which the communication data is relayed from the acquired relationship information.
 上述の開示において、通信データは、通信シーケンスを示すシーケンスデータを含み、デプロイされたプロトコルコンテナのミドルウェアは、ゲートウェイコンテナからの通信データに含まれるシーケンスデータを、当該プロトコルコンテナに対応するプロトコルの種類に従うシーケンスを示すデータに変換する。 In the above disclosure, the communication data includes sequence data indicating a communication sequence, and the deployed middleware of the protocol container converts the sequence data included in the communication data from the gateway container according to the protocol type corresponding to the protocol container. Convert to data that indicates a sequence.
 この開示によれば、プロトコルコンテナは、通信データに含まれる通信シーケンスのデータを、当該プロトコルに従うシーケンスを示すように変換する。このような変換後の通信シーケンスに従うことで、アプリケーションと当該プロトコルを通信に用いるコントローラとの間で、当該通信データの遣り取りが可能になる。 According to this disclosure, the protocol container converts the communication sequence data included in the communication data to indicate the sequence according to the protocol. By following the communication sequence after such conversion, the communication data can be exchanged between the application and the controller that uses the protocol for communication.
 上述の開示において、シーケンスデータは、通信接続を制御するコマンドと、コントローラに処理を実施させる処理コマンドとを含む。 In the above disclosure, the sequence data includes commands for controlling communication connections and processing commands for causing the controller to perform processing.
 この開示によれば、プロトコルコンテナのミドルウェアで変換されるシーケンスデータに、通信接続を制御するコマンドと、コントローラの処理コマンドを含めることができる。 According to this disclosure, the sequence data converted by the middleware of the protocol container can include commands for controlling communication connections and processing commands for the controller.
 上述の開示において、各コントローラは、情報処理装置が属するネットワークと接続する第1コネクタと、ネットワークとは異なるネットワークであって、制御対象が属するネットワークを接続する第2コネクタと、異なるネットワークを介して受信する制御対象の状態値と、制御対象に対する制御指令を格納する格納部と、格納された状態値を用いて制御指令を算出する制御演算を実行する演算部と、を備え、処理コマンドは、格納された状態値または制御指令の読み出しコマンド、または、格納部に対する状態値または制御指令の書込みコマンドを含む。 In the above disclosure, each controller includes a first connector connected to the network to which the information processing device belongs, a second connector connected to a network different from the network to which the controlled object belongs, and A storage unit for storing a received state value of a controlled object and a control command for the controlled object, and a calculation unit for executing a control calculation for calculating the control command using the stored state value. It includes commands to read stored state values or control instructions or to write state values or control instructions to storage.
 この開示によれば、アプリケーションは、任意のコントローラが通信に用いているプロトコルが何であるかを知らずとも、処理コマンドを用いることで、当該コントローラと通信して、格納部における制御対象の状態値または制御指令の読み出しまたは書込みをすることができる。 According to this disclosure, an application can communicate with any controller using processing commands to obtain state values or Control commands can be read or written.
 この開示に係る制御方法は、FA(ファクトリオートメーション)の1または複数のコントローラと、1または複数のコントローラとネットワーク通信する情報処理装置を含む制御システムにおいて実行される通信を制御する方法であって、制御システムは、複数種類のプロトコルのそれぞれについて、当該プロトコルに従ったネットワーク通信のためのミドルウェアを含むコンテナであるプロトコルコンテナを管理するリポジトリを備え、方法は、各1または複数のコントローラについて、当該コントローラがネットワーク通信に用いるプロトコルの種類を取得するステップと、取得された各コントローラのプロトコル種類について、当該プロトコル種類に対応するリポジトリのプロトコルコンテナをデプロイすることで、当該プロトコルコンテナのミドルウェアを起動するステップと、を備える。 A control method according to the present disclosure is a method of controlling communication performed in a control system including one or more controllers of FA (factory automation) and an information processing device that communicates with the one or more controllers over a network, The control system comprises a repository for managing a protocol container, which is a container containing middleware for network communication according to the protocol, for each of a plurality of types of protocols; a step of acquiring the type of protocol used for network communication, and a step of starting the middleware of the protocol container by deploying the protocol container of the repository corresponding to the acquired protocol type of each controller, and , provided.
 この開示によれば、リポジトリが、異なるプロトコルそれぞれについて、当該プロトコルのミドルウェアを有したコンテナを管理する構成において、各コントローラの通信プロトコルの種類を取得し、取得された各コントローラのプロトコルの種類に対応したコンテナがデプロイされてミドルウェアが起動される。これにより、コントローラが用いる通信プロトコルの種類に変化があるとしても、変化後のプロトコルの種類に対応のプロトコルコンテナをデプロイするだけで済むから、簡単な仕組みでコントローラと通信可能な環境を提供できる。 According to this disclosure, the repository acquires the communication protocol type of each controller in a configuration in which the repository manages a container having middleware of the protocol for each different protocol, and corresponds to the acquired protocol type of each controller. The container that was created is deployed and the middleware is started. As a result, even if there is a change in the type of communication protocol used by the controller, it is only necessary to deploy a protocol container that supports the type of protocol after the change.
 本開示によれば、コントローラが用いる通信プロトコルの種類に変化があるとしても、当該コントローラと簡単な仕組みで通信可能な環境を提供できる。 According to the present disclosure, even if there is a change in the type of communication protocol used by the controller, it is possible to provide an environment in which communication with the controller is possible with a simple mechanism.
本実施の形態に係る制御システム1の全体構成を模式的に示す図である。It is a figure showing typically the whole control system 1 composition concerning this embodiment. 図1の制御システム1におけるPLCと通信するためのサーバの構成を模式的に示す図である。FIG. 2 is a diagram schematically showing the configuration of a server for communicating with a PLC in the control system 1 of FIG. 1; FIG. 本実施の形態に係る制御システム1を構成するPLC100のハードウェア構成例を示すブロック図である。2 is a block diagram showing a hardware configuration example of a PLC 100 configuring the control system 1 according to the present embodiment; FIG. 本実施の形態に係る制御システム1を構成するサーバ200のハードウェア構成例を示すブロック図である。2 is a block diagram showing a hardware configuration example of a server 200 configuring the control system 1 according to this embodiment; FIG. 本実施の形態に係る制御システム1を構成する端末300のハードウェア構成例を示すブロック図である。3 is a block diagram showing a hardware configuration example of a terminal 300 configuring the control system 1 according to the present embodiment; FIG. 図2に示したシーケンスをコンテナ設定テーブル258に関連付けて模式的に示す図である。FIG. 3 is a diagram schematically showing the sequence shown in FIG. 2 in association with a container setting table 258; FIG. 本実施の形態に係るコンテナ設定テーブル258の作成シーンの一例を示す図である。FIG. 11 is a diagram showing an example of a scene in which a container setting table 258 according to the embodiment is created; 図7で作成されたコンテナ設定テーブル258の利用シーンの一例を示す図である。8 is a diagram showing an example of a usage scene of the container setting table 258 created in FIG. 7; FIG. 本実施の形態に係るプロトコルコンテナによる変換処理の一例を模式的に示す図である。FIG. 4 is a diagram schematically showing an example of conversion processing by a protocol container according to the present embodiment; FIG. 本実施の形態に係るプロトコルコンテナのデプロイの変形例を示す図である。FIG. 10 is a diagram showing a modification of deployment of protocol containers according to the present embodiment; 本実施の形態に係る起動シーケンスのフローチャートである。4 is a flowchart of a startup sequence according to the embodiment; 本実施の形態に係る利用シーケンスのフローチャートである。4 is a flow chart of a usage sequence according to the present embodiment; 本実施の形態に係るプロトコルコンテナを実装した制御システム1により得られる利点を説明するための図である。FIG. 2 is a diagram for explaining advantages obtained by the control system 1 implementing the protocol container according to the present embodiment; FIG.
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 Embodiments of the present invention will be described in detail with reference to the drawings. The same or corresponding parts in the drawings are given the same reference numerals, and the description thereof will not be repeated.
 <A.適用例>
 まず、本発明が適用される場面の一例について説明する。
<A. Application example>
First, an example of a scene to which the present invention is applied will be described.
 図1は、本実施の形態に係る制御システム1の全体構成を模式的に示す図である。図2は、図1の制御システム1におけるPLC(Programmable Logic Controller)と通信するためのサーバの構成を模式的に示す図である。図2では、FAに適用され得る制御システム1において、PLCと通信するためのサーバの構成が示される。ここでは、主に、図2を参照して適用例を説明する。 FIG. 1 is a diagram schematically showing the overall configuration of a control system 1 according to this embodiment. FIG. 2 is a diagram schematically showing the configuration of a server for communicating with a PLC (Programmable Logic Controller) in the control system 1 of FIG. FIG. 2 shows the configuration of a server for communicating with a PLC in a control system 1 that can be applied to FA. Here, an application example will be mainly described with reference to FIG.
 図2を参照して、本実施の形態に係る制御システム1は、1または複数のPLCシステム2-1,2-2,2-3(以下、「PLCシステム2」とも総称する。)と、「情報処理装置の」の一実施例であるサーバ200と、制御システム1に開発および保守を担う端末300とを含む。以下の説明において、PLCシステム2-1,2-2,2-3のそれぞれを区別する必要がある場合には、関係する構成要素について、「-1」,「-2」,「-3」といった添え字を付与することもある。 Referring to FIG. 2, control system 1 according to the present embodiment includes one or more PLC systems 2-1, 2-2, 2-3 (hereinafter collectively referred to as “PLC system 2”), The control system 1 includes a server 200, which is an example of an “information processing device,” and a terminal 300 responsible for development and maintenance. In the following description, when it is necessary to distinguish between the PLC systems 2-1, 2-2, and 2-3, "-1", "-2", and "-3" are used for related components. A subscript such as .
 PLCシステム2の各々は、ラインとも称され、FAの工場全体を制御するものであってもよいし、工場に設置された特定の製造設備や製造装置を制御するものであってもよい。PLCシステム2-1,2-2,2-3は、主たる構成要素として、制御対象を制御する制御装置の典型例であるPLC100-1,100-2,100-3(以下、「PLC100」とも総称する。)をそれぞれ主体に構成される。 Each of the PLC systems 2 is also called a line, and may control the entire FA factory, or may control specific manufacturing equipment or manufacturing equipment installed in the factory. PLC systems 2-1, 2-2, and 2-3, as main components, are PLCs 100-1, 100-2, and 100-3 (hereinafter also referred to as "PLC 100"), which are typical examples of control devices that control objects to be controlled. collectively).
 PLC100は、フィールドデバイス10に接続される。フィールドデバイス10は、制御対象を制御するために必要な任意の装置を包含する。より具体的には、フィールドデバイス10は、制御対象(例えば、製造設備、製造装置、製造設備あるいは製造装置に含まれるセンサおよびアクチュエータなど)との間で情報をやり取りするための装置を含む。図1に示す例では、フィールドデバイス10はリレー群14とサーボモータ18を含む。フィールドデバイス10は、さらに、図1に示すサーボドライバ16およびリモートI/O(Input/Output)12など、任意のデバイスを含み得る。 The PLC 100 is connected to the field device 10. Field device 10 encompasses any equipment necessary to control a controlled object. More specifically, the field device 10 includes a device for exchanging information with a controlled object (eg, manufacturing equipment, manufacturing equipment, sensors and actuators included in manufacturing equipment or manufacturing equipment, etc.). In the example shown in FIG. 1, field device 10 includes relays 14 and servo motor 18 . Field device 10 may further include any device such as servo driver 16 and remote Input/Output (I/O) 12 shown in FIG.
 PLC100は、フィールドデバイス10から情報を取得し、予め作成されたユーザプログラムに従って制御演算を実行することで、フィールドデバイス10へ与えられる情報を生成する。以下では、PLC100がフィールドデバイス10から取得する情報を「入力データ」とも称し、フィールドデバイス10へ与えられる情報を「出力データ」とも称す。また、入力データおよび出力データを「入出力データ」あるいは「I/Oデータ」とも総称する。入力データは、フィールドデバイス10の状態を示す値(例えば、センサの出力値)を含み、出力データは、制御演算の結果に基づき、フィールドデバイス10を制御する指令値を含み得る。 The PLC 100 acquires information from the field device 10 and generates information to be given to the field device 10 by executing control calculations according to a user program created in advance. Hereinafter, information acquired by the PLC 100 from the field device 10 is also referred to as "input data", and information given to the field device 10 is also referred to as "output data". Input data and output data are also collectively referred to as "input/output data" or "I/O data". The input data may include values indicating the state of the field device 10 (eg, sensor output values), and the output data may include command values for controlling the field device 10 based on the results of control calculations.
 図2に示す例では、PLC100とフィールドデバイス10とは、制御系ネットワーク4を介して接続されているが、これに限らず、ハードワイヤーで接続されていてもよい。 In the example shown in FIG. 2, the PLC 100 and the field device 10 are connected via the control system network 4, but are not limited to this, and may be connected by hard wire.
 制御系ネットワーク4としては、産業用の通信プロトコルを採用することが好ましい。このような通信プロトコルとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。 For the control system network 4, it is preferable to adopt an industrial communication protocol. EtherCAT (registered trademark), EtherNet/IP (registered trademark), DeviceNet (registered trademark), CompoNet (registered trademark), and the like are known as such communication protocols.
 PLCシステム2の各々は、情報系ネットワーク6およびゲートウェイまたはルータなどの中継装置20を介して、インターネット8上に存在するクラウドベースのサーバ200にアクセス可能になっている。 Each PLC system 2 can access a cloud-based server 200 existing on the Internet 8 via an information system network 6 and a relay device 20 such as a gateway or router.
 サーバ200は、コンテナをデプロイして実行可能な環境を提供するとともに、コンテナを管理する。本明細書において、コンテナの「デプロイ」は、対象のコンテナの実行可能化を指示する処理、例えばインストールを包含する処理を示す。デプロイは、コンテナのインストールおよび起動を含む、または、インストールのみであって、起動は別のタイミングで実施されるとしてもよい。本実施の形態では、デプロイは、コンテナのインストールおよび起動を含む。 The server 200 deploys containers to provide an executable environment and manages the containers. In this specification, "deployment" of a container indicates a process of instructing the execution of a target container, such as a process including installation. Deploying may include installing and starting the container, or it may be just installing and starting at another time. In this embodiment, deploying includes installing and starting a container.
 サーバ200は、インターネット8を介してクラウド上に配置してもよいし、インターネット8を介することなく、PLCシステム2が存在するローカルネットワーク内に配置してもよい。サーバ200の実装形態としては、要求される性能および機能などに応じて、任意に決定できる。 The server 200 may be located on the cloud via the Internet 8 or may be located within the local network where the PLC system 2 exists without the Internet 8 . The implementation form of the server 200 can be arbitrarily determined according to the required performance and functions.
 端末300は、サーバ200にアクセスして、後述するような各種処理を実現するためのユーザ操作が可能になっている。本実施の形態では、このユーザ操作は、端末300の後述するアプリケーション311が、端末300からインターネット8で接続されたサーバ200のデスクトップ環境を操作するGUI(Graphical User Interface)を提供することで実現されてもよい。 The terminal 300 can access the server 200 and perform user operations to implement various processes described later. In this embodiment, this user operation is realized by the application 311 of the terminal 300, which will be described later, providing a GUI (Graphical User Interface) for operating the desktop environment of the server 200 connected to the terminal 300 via the Internet 8. may
 図2を参照して、制御システム1におけるコンテナを利用した処理の概要を説明する。
 本明細書においては、「コンテナ」は、後述する「コンテナエンジン」によって実行されるプロセスを構成するコンテナイメージに相当し、コンテナイメージは、コンテナの実行に必要なパッケージ(ミドルウェアおよびライブラリなどのプログラムのファイルまたはメタ情報の集合体)を示す。
An outline of processing using containers in the control system 1 will be described with reference to FIG. 2 .
In this specification, a "container" corresponds to a container image that constitutes a process executed by a "container engine", which will be described later. file or collection of meta information).
 本実施の形態では、コンテナとして、例えば「プロトコルコンテナ」と「ゲートウェイコンテナ」とを含む。「プロトコルコンテナ」は、プロトコルに従う通信を実現するプロトコルスタックを含むミドルウェアを含む。本実施の形態に係る「プロトコルコンテナ」では、制御システム1を構成し得るPLC100に設定され得る情報系ネットワーク6の通信プロトコルの種類毎に「プロトコルコンテナ」を含む。例えば、PLC100に設定され得る通信プロトコルの種類は、例えばOPC-UA(Object Linking and Embedding for Process Control Unified Architecture)、EIP(Ethernet/IP)、およびHTTPS(Hypertext Transfer Protocol Secure)を含むが、PLC100に設定され得る通信プロトコルの種類は、これらに限定されない。以下の説明では、通信プロトコルを「プロトコル」と称する場合がある。 In this embodiment, containers include, for example, a "protocol container" and a "gateway container". A "protocol container" includes middleware including a protocol stack that implements communication according to the protocol. The “protocol container” according to the present embodiment includes a “protocol container” for each type of communication protocol of the information system network 6 that can be set in the PLC 100 that can configure the control system 1 . For example, types of communication protocols that can be set in the PLC 100 include, for example, OPC-UA (Object Linking and Embedding for Process Control Unified Architecture), EIP (Ethernet/IP), and HTTPS (Hypertext Transfer Protocol Secure). The types of communication protocols that can be set are not limited to these. In the description below, the communication protocol may be referred to as a "protocol".
 「ゲートウェイコンテナ」は、アプリケーションと複数種類のプロトコルコンテナとの間で通信を中継するミドルウェアを含む。 A "gateway container" includes middleware that relays communication between an application and multiple types of protocol containers.
 「コンテナエンジン」は、コンテナリポジトリ250に格納されたコンテナ(より特定的にはコンテナイメージ)の実行環境を提供するものであり、コンテナイメージをデプロイ領域280にデプロイする。デプロイすることにより、コンテナエンジンは、コンテナイメージから処理を実行するためのモジュール(インスタンス)を生成し、デプロイされたコンテナを実行(起動)する。 A "container engine" provides an execution environment for containers (more specifically, container images) stored in the container repository 250, and deploys the container images to the deployment area 280. By deploying, the container engine generates a module (instance) for executing processing from the container image, and executes (starts) the deployed container.
 サーバ200は、複数のコンテナを格納するコンテナリポジトリ250と、コンテナエンジン270と、コンテナリポジトリ250のコンテナがデプロイされるRAM(Random Access Memory)などの記憶領域を構成するデプロイ領域280と、カーネル291を有するOS(Operating System)212と、各種メモリおよび通信回路などの物理H/W(ハードウェア)292を有する。サーバ200では、複数のコンテナが、その実行基盤としてサーバ200が有する物理H/W292とOS212を共有する。デプロイ領域280にデプロイされたコンテナは、OS212上で動作するコンテナエンジン270によってプロセスとして管理される。各コンテナは、コンテナエンジン270が管理する物理H/W292を含む各種のリソースを、OS212のカーネル291を介して利用しながら、他のコンテナと並列に動作する。 The server 200 includes a container repository 250 that stores a plurality of containers, a container engine 270, a deployment area 280 that constitutes a storage area such as RAM (Random Access Memory) in which the containers of the container repository 250 are deployed, and a kernel 291. It has an OS (Operating System) 212 and physical H/W (hardware) 292 such as various memories and communication circuits. In the server 200, a plurality of containers share the physical H/W 292 and OS 212 of the server 200 as their execution base. A container deployed in the deploy area 280 is managed as a process by the container engine 270 running on the OS 212 . Each container operates in parallel with other containers while using various resources including the physical H/W 292 managed by the container engine 270 via the kernel 291 of the OS 212 .
 端末300は、情報系ネットワーク6に接続されている各PLC100について取得した情報に基づき、各PLC100について、当該PLC100に設定されるプロトコルを示すプロトコル指定データ257を有するコンテナ設定テーブル258を作成する。 Based on the information acquired for each PLC 100 connected to the information system network 6, the terminal 300 creates, for each PLC 100, a container setting table 258 having protocol designation data 257 indicating the protocol set for that PLC 100.
 コンテナリポジトリ250は、コンテナとして、ゲートウェイコンテナ25と、制御システム1を構成し得るPLC100に設定され得る情報系ネットワーク6のプロトコルの種類毎のプロトコルコンテナを含むプロトコルコンテナ群26とを格納する。 The container repository 250 stores, as containers, a gateway container 25 and a protocol container group 26 including protocol containers for each protocol type of the information system network 6 that can be set in the PLC 100 that can configure the control system 1 .
 予め定められたタイミング、例えばサーバ200の起動時に、コンテナエンジン270は、コンテナリポジトリ250のゲートウェイコンテナ25およびプロトコルコンテナ群26の各プロトコルコンテナを、デプロイ領域280においてデプロイする。デプロイの際に、サーバ200のプロトコル取得部260のモジュールは、端末300から受信するコンテナ設定テーブル258のプロトコル指定データ257が示すプロトコルの種類に対応したプロトコルコンテナを、プロトコルコンテナ群26から検索(抽出)し、検索されたプロトコルコンテナをデプロイする。本実施の形態では、例えば、OPC-UAのプロトコルコンテナ261と、EIPのプロトコルコンテナ262と、HTTPSのプロトコルコンテナ263がデプロイされる。デプロイされたコンテナは、相互に通信が可能なようにインターネットプロトコルに従うコンテナIPアドレスが割当てられる。 At a predetermined timing, for example, when the server 200 is started, the container engine 270 deploys the gateway container 25 of the container repository 250 and each protocol container of the protocol container group 26 in the deploy area 280 . At the time of deployment, the module of the protocol acquisition unit 260 of the server 200 searches (extracts) from the protocol container group 26 for a protocol container corresponding to the protocol type indicated by the protocol designation data 257 of the container setting table 258 received from the terminal 300. ) and deploy the found protocol container. In this embodiment, for example, an OPC-UA protocol container 261, an EIP protocol container 262, and an HTTPS protocol container 263 are deployed. Deployed containers are assigned container IP addresses that follow Internet protocols so that they can communicate with each other.
 上記に述べた手順に従い、サーバ200の起動シーケンスにおいて、各コンテナがデプロイされる。その後、デプロイされたコンテナを利用する利用シーケンスを実施することができる。 Each container is deployed in the startup sequence of the server 200 according to the procedure described above. A usage sequence that utilizes the deployed container can then be performed.
 起動後の運用シーンにおける利用シーケンスでは、端末300は、アプリケーションからPLC100宛ての通信データ70を受信すると、端末300は、通信データ70を、インターネット8を介してサーバ200に転送する。図2では、通信データ70の転送ルート80が、太い矢印で示される。 In the usage sequence in the operation scene after startup, when the terminal 300 receives communication data 70 addressed to the PLC 100 from the application, the terminal 300 transfers the communication data 70 to the server 200 via the Internet 8 . In FIG. 2, a transfer route 80 for communication data 70 is indicated by a thick arrow.
 本実施の形態では、通信データ70は、宛先のPLC100のIPアドレスと、当該PLC100と通信するための通信シーケンスのデータを含む。通信データ70は、例えばフレーム構成を採用するが、パケットの構成を採用してもよい。図2では、通信データ70のフレームの宛先は、例えばPLC100-1を示している。 In this embodiment, the communication data 70 includes the IP address of the destination PLC 100 and communication sequence data for communicating with the PLC 100 . The communication data 70 employs, for example, a frame configuration, but may employ a packet configuration. In FIG. 2, the destination of the frame of the communication data 70 indicates, for example, the PLC 100-1.
 ゲートウェイコンテナ25は、端末300から転送された通信データ70のフレームを受信し、当該フレームの宛先に基づき、プロトコル取得部260によって取得されるコンテナ設定テーブル258から、当該宛先(すなわち、PLC100-1)に対応のプロトコル種類を検索する。検索されたプロトコル種類は、例えばOPCーUAである。ゲートウェイコンテナ25は、検索されたプロトコル種類に対応のプロトコルコンテナ261に、受信データを転送する。 The gateway container 25 receives the frame of the communication data 70 transferred from the terminal 300, and based on the destination of the frame, from the container setting table 258 acquired by the protocol acquisition unit 260, the destination (that is, the PLC 100-1) Search for protocol types that support . The retrieved protocol type is, for example, OPC-UA. The gateway container 25 transfers the received data to the protocol container 261 corresponding to the retrieved protocol type.
 プロトコルコンテナ261は、ゲートウェイコンテナ25から転送された通信データ70を、OPC-UAに従い処理し、処理後のOPC-UAに従う通信データ70を、宛先のPLC100-1に転送する。PLC100-1は、転送された通信データ70を受信し、処理し、処理に基づく応答のデータを送信する。応答データは、転送ルート80を逆方向に辿り、アプリケーションに到達する。 The protocol container 261 processes the communication data 70 transferred from the gateway container 25 according to OPC-UA, and transfers the processed communication data 70 according to OPC-UA to the destination PLC 100-1. PLC 100-1 receives and processes the transferred communication data 70, and transmits response data based on the processing. The response data follows the forwarding route 80 in the reverse direction to reach the application.
 図2の制御システム1は、異なるプロトコルを実装したミドルウェアをプロトコルコンテナ群26としてコンテナリポジトリ250に管理しており、アプリケーションがアクセス(通信)する対象となり得るPLC100、すなわち情報系ネットワーク6に接続される各PLC100に設定されたプロトコル種類に応じたコンテナを、プロトコルコンテナ群26から検索してデプロイする。これにより、制御システム1は、プロトコルに応じたモジュールを追加実装することなく、アプリケーションはPLC100(および当該PLC100に接続されるフィールドデバイス10)と通信可能な環境を、簡単に提供することができる。 The control system 1 of FIG. 2 manages middleware implementing different protocols as a protocol container group 26 in a container repository 250, and is connected to a PLC 100 that can be accessed (communicated) by an application, that is, the information system network 6. A container corresponding to the protocol type set in each PLC 100 is retrieved from the protocol container group 26 and deployed. As a result, the control system 1 can easily provide an environment in which an application can communicate with the PLC 100 (and the field device 10 connected to the PLC 100) without additionally implementing a module according to the protocol.
 以下、本発明のより具体的な応用例として、本実施の形態に係るPLC100のより詳細な構成および処理について説明する。 Below, as a more specific application example of the present invention, a more detailed configuration and processing of the PLC 100 according to the present embodiment will be described.
 <B.ハードウェア構成>
 次に、本実施の形態に係る制御システム1を構成する装置のハードウェア構成の一例について説明する。
<B. Hardware Configuration>
Next, an example of the hardware configuration of the devices that constitute the control system 1 according to the present embodiment will be described.
 (b1:PLC100)
 図3は、本実施の形態に係る制御システム1を構成するPLC100のハードウェア構成例を示すブロック図である。図4を参照して、PLC100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、主メモリ106と、ストレージ110と、物理的回路で構成されるコネクタ121と接続する情報系ネットワークコントローラ120と、物理的回路で構成されるコネクタ123と接続する制御系ネットワークコントローラ122と、USB(Universal Serial Bus)コントローラ124と、メモリカードインターフェイス126とを含む。コネクタ121は、サーバ200が属するネットワークと接続し、コネクタ123は、PLC100が属するネットワークであって、サーバ200が属するネットワークとは異なるネットワークと接続する。
(b1: PLC100)
FIG. 3 is a block diagram showing a hardware configuration example of the PLC 100 configuring the control system 1 according to this embodiment. Referring to FIG. 4, PLC 100 includes a processor 102 such as a CPU (Central Processing Unit) or MPU (Micro-Processing Unit), a chipset 104, a main memory 106, a storage 110, and physical circuits. an information system network controller 120 connected to a connector 121 connected to a physical circuit; a control system network controller 122 connected to a connector 123 configured by a physical circuit; a USB (Universal Serial Bus) controller 124; The connector 121 is connected to the network to which the server 200 belongs, and the connector 123 is connected to the network to which the PLC 100 belongs, which is different from the network to which the server 200 belongs.
 プロセッサ102は、ストレージ110に格納された各種プログラムを読み出して、主メモリ106に展開して実行することで、制御対象を制御するための制御演算および外部装置(サーバ200、端末300およびフィールドデバイス10)と通信するための通信処理を実現する。チップセット104は、プロセッサ102と各コンポーネントとのデータ伝送などを制御する。 The processor 102 reads various programs stored in the storage 110, develops them in the main memory 106, and executes them to perform control calculations and external devices (server 200, terminal 300, and field device 10) for controlling controlled objects. ) to implement communication processing. The chipset 104 controls data transmission between the processor 102 and each component.
 ストレージ110には、OS(Operating System)112と、システムプログラム114と、ユーザプログラム115とが格納される。システムプログラム114は、情報系ネットワーク6を介してサーバ200を含む外部装置と通信するための通信ファームウェアおよび制御系ネットワーク4を介してPLC100を含む外部装置と通信するための通信ファームウェアを含む。 The storage 110 stores an OS (Operating System) 112, a system program 114, and a user program 115. System program 114 includes communication firmware for communicating with external devices including server 200 via information network 6 and communication firmware for communicating with external devices including PLC 100 via control network 4 .
 ユーザプログラム115は、制御プログラム116、通信プログラム117およびIO(Input/Output)リフレッシュ118を含む。IOリフレッシュ118は、制御対象であるフィールドデバイス10の状態値を制御系ネットワーク4を介して収集しIOリフレッシュ領域113に格納するとともに、IOリフレッシュ領域113に格納された制御指令を制御系ネットワーク4を介して制御対象に送信する。制御プログラム116は、IOリフレッシュ領域113に格納された状態値を用いて制御対象の制御演算を実施して上記の制御指令を算出する制御プログラム116、および通信ファームウェアを用いて通信処理を実施するための通信プログラム117を含む。ユーザプログラム115には、他の各種処理プログラムが含まれてもよい。 The user program 115 includes a control program 116, a communication program 117 and an IO (Input/Output) refresh 118. The IO refresh 118 collects the state values of the field devices 10 to be controlled via the control system network 4 and stores them in the IO refresh area 113 , while transmitting the control command stored in the IO refresh area 113 to the control system network 4 . to the control target via The control program 116 uses the state values stored in the IO refresh area 113 to perform control calculations on the controlled object to calculate the above control commands, and the communication firmware to perform communication processing. communication program 117. The user program 115 may include other various processing programs.
 情報系ネットワークコントローラ120は、コネクタ121に接続される情報系ネットワーク6を介した外部装置(端末300およびサーバ200)などとのデータのやり取りを制御する。 The information system network controller 120 controls data exchange with external devices (the terminal 300 and the server 200) via the information system network 6 connected to the connector 121.
 制御系ネットワークコントローラ122は、コネクタ123に接続される制御系ネットワーク4を介したフィールドデバイス10とのデータのやり取りを制御する。 The control system network controller 122 controls data exchange with the field device 10 via the control system network 4 connected to the connector 123 .
 USBコントローラ124は、USB接続を介した外部装置(例えば、サポート装置)とのデータのやり取りを制御する。 The USB controller 124 controls data exchange with an external device (eg, support device) via a USB connection.
 メモリカードインターフェイス126は、メモリカード128が脱着自在に構成されており、メモリカード128に対してデータを書き込み、メモリカード128から各種データ(ユーザプログラム115およびデータなど)を読み出すことが可能になっている。 The memory card interface 126 is configured such that a memory card 128 can be detachably attached to the memory card 128 so that data can be written to the memory card 128 and various data (such as the user program 115 and data) can be read from the memory card 128. there is
 PLC100は、光学ドライブを有していてもよい。光学ドライブは、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)からプログラムを読み取って、ストレージ110などに格納する。 The PLC 100 may have an optical drive. The optical drive reads the program from a recording medium that non-transitory stores a computer-readable program (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) and stores the program in the storage 110 or the like.
 PLC100で実行される各種プログラムは、コンピュータ読取可能な記録媒体またはメモリカード128を介してインストールされてもよいが、ネットワーク上の任意のコンピュータなどのデバイスからダウンロードする方法でインストールするようにしてもよい。 Various programs executed by the PLC 100 may be installed via a computer-readable recording medium or memory card 128, or may be installed by downloading from a device such as any computer on the network. .
 図3には、プロセッサ102がプログラムを実行することで必要な処理が提供される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、PLC100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。 FIG. 3 shows a configuration example in which necessary processing is provided by the processor 102 executing a program. (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array), etc.). Alternatively, the main part of the PLC 100 may be realized using hardware conforming to 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 with different purposes in parallel, and necessary applications may be executed on each OS.
 (b2:サーバ200)
 図4は、本実施の形態に係る制御システム1を構成するサーバ200のハードウェア構成例を示すブロック図である。図4を参照して、サーバ200は、CPUやMPUなどの1または複数のプロセッサ202と、主メモリ206と、ストレージ210と、1または複数のネットワークコントローラ220と、入力部226と、表示部228とを含む。これらのコンポーネントは、バス208を介して接続される。
(b2: server 200)
FIG. 4 is a block diagram showing a hardware configuration example of the server 200 configuring the control system 1 according to this embodiment. 4, server 200 includes one or more processors 202 such as a CPU or MPU, a main memory 206, a storage 210, one or more network controllers 220, an input unit 226, a display unit 228, and including. These components are connected via bus 208 .
 プロセッサ202は、ストレージ210に格納された各種プログラムを読み出して、主メモリ206に展開して実行することで、後述するような各種処理を実現する。主メモリ206は、一部においてデプロイ領域280を構成する。 The processor 202 reads various programs stored in the storage 210, develops them in the main memory 206, and executes them, thereby realizing various processes to be described later. The main memory 206 in part constitutes a deploy area 280 .
 ストレージ210は、例えば、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などで構成される。ストレージ210には、典型的には、基本的な処理を実現するためのOS212と、後述するようなサーバ200が提供する各種処理を実現するためのプログラムおよびデータを含むコンテナアプリケーション214とが格納される。コンテナアプリケーション214は、コンテナリポジトリ250と、実行されるとプロトコル取得部260を構成するプロトコル取得プログラム264と、実行されるとコンテナエンジン270を構成するコンテナエンジンプログラム275を含む。 The storage 210 is composed of, for example, an HDD (Hard Disk Drive) or an SSD (Flash Solid State Drive). The storage 210 typically stores an OS 212 for realizing basic processing and a container application 214 including programs and data for realizing various kinds of processing provided by the server 200 as described later. be. The container application 214 includes a container repository 250, a protocol acquisition program 264 that configures the protocol acquisition unit 260 when executed, and a container engine program 275 that configures the container engine 270 when executed.
 ネットワークコントローラ220は、ネットワークを介した各種装置とのデータのやり取りを制御する。 The network controller 220 controls data exchange with various devices via the network.
 入力部226は、キーボード、マウスなどで構成され、ユーザからの指示を受け付ける。表示部228は、ディスプレイなどで構成され、プロセッサ202からの処理結果などを出力する。 The input unit 226 is composed of a keyboard, mouse, etc., and receives instructions from the user. The display unit 228 is configured by a display or the like, and outputs processing results from the processor 202 and the like.
 サーバ200は、光学ドライブ203を有していてもよい。光学ドライブ203は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体204(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)からプログラムを読み取って、ストレージ210などに格納する。 The server 200 may have an optical drive 203. The optical drive 203 reads the program from a recording medium 204 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program non-transitory, and stores the program in a storage 210 or the like.
 サーバ200で実行される各種プログラムは、コンピュータ読取可能な記録媒体204またはメモリカードを介してインストールされてもよいが、ネットワーク上の任意のコンピュータなどのデバイスからダウンロードする方法でインストールするようにしてもよい。 Various programs to be executed on the server 200 may be installed via the computer-readable recording medium 204 or memory card, or may be installed by downloading from a device such as any computer on the network. good.
 図4には、プロセッサ202がプログラムを実行することで必要な処理が提供される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。 FIG. 4 shows a configuration example in which necessary processing is provided by the processor 202 executing a program. Alternatively, it may be implemented using an FPGA, etc.).
 (b3:端末300)
 図5は、本実施の形態に係る制御システム1を構成する端末300のハードウェア構成例を示すブロック図である。図5を参照して、端末300は、CPUやMPUなどのプロセッサ302と、光学ドライブ304と、主メモリ306と、ストレージ310と、ネットワークコントローラ320と、USBコントローラ324と、入力部326と、表示部328とを含む。これらのコンポーネントは、バス308を介して接続される。
(b3: terminal 300)
FIG. 5 is a block diagram showing a hardware configuration example of the terminal 300 configuring the control system 1 according to this embodiment. 5, a terminal 300 includes a processor 302 such as a CPU or MPU, an optical drive 304, a main memory 306, a storage 310, a network controller 320, a USB controller 324, an input unit 326, and a display. 328. These components are connected via bus 308 .
 プロセッサ302は、ストレージ310に格納された各種プログラムを読み出して、主メモリ306に展開して実行することで、端末300で必要な処理を実現する。 The processor 302 reads various programs stored in the storage 310 , develops them in the main memory 306 , and executes them, thereby realizing necessary processing in the terminal 300 .
 ストレージ310は、例えば、HDDやSSDなどで構成される。ストレージ310には、OS312と、アプリケーション311と、後述するような処理を指示などするための開発プログラム314と、ネットワーク400の構成を示すコンフィグ情報256と、プロトコル指定データ257を含むコンテナ設定テーブル258を格納する。アプリケーション311は、UI(User Interface)ツールを提供するUIプログラム316を含むテーブル設定プログラム315と、コンフィグプログラム317とを含む。 The storage 310 is composed of, for example, an HDD or SSD. The storage 310 contains an OS 312, an application 311, a development program 314 for instructing processing to be described later, configuration information 256 indicating the configuration of the network 400, and a container setting table 258 containing protocol designation data 257. Store. The application 311 includes a table setting program 315 including a UI program 316 that provides UI (User Interface) tools, and a configuration program 317 .
 コンフィグプログラム317は、実行されると、ネットワーク400の構成を走査して、各PLC100から通信に関する情報を収集する。例えば、コンフィグプログラム317は、各PLC00から、情報系ネットワーク6を介してサーバ200を含む外部装置と通信するため当該PLC100に設定されたプロトコルの種類を含む通信ファームウェアに関する情報を受信して収集する。 When the configuration program 317 is executed, it scans the configuration of the network 400 and collects communication-related information from each PLC 100 . For example, the configuration program 317 receives and collects from each PLC 00 information on communication firmware including the type of protocol set in the PLC 100 to communicate with an external device including the server 200 via the information system network 6 .
 テーブル設定プログラム315は、実行されると、UIプログラム316によって提供されるUIツールを介してユーザから情報を受付け、受付けた情報を用いてコンテナ設定テーブル258を作成する。 When executed, the table setting program 315 receives information from the user via the UI tool provided by the UI program 316, and uses the received information to create the container setting table 258.
 なお、ストレージ310には、図5に示すプログラム以外の必要なプログラムが格納されてもよい。 Note that the storage 310 may store necessary programs other than the programs shown in FIG.
 ネットワークコントローラ320は、情報系ネットワーク6を介した各PLC100およびサーバ200などの機器とのデータのやり取りを制御する。 The network controller 320 controls data exchange with devices such as each PLC 100 and server 200 via the information system network 6 .
 USBコントローラ324は、USB接続を介した外部装置とのデータのやり取りを制御する。 The USB controller 324 controls data exchange with external devices via a USB connection.
 入力部326は、マウス、キーボード、タッチパネルなどで構成され、ユーザからの指示を受け付ける。表示部228は、ディスプレイ、各種インジケータなどで構成され、プロセッサ302からの処理結果などを出力する。 The input unit 326 is composed of a mouse, keyboard, touch panel, etc., and receives instructions from the user. The display unit 228 includes a display, various indicators, and the like, and outputs processing results from the processor 302 and the like.
 端末300は、光学ドライブ304を有していてもよい。光学ドライブ304は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体305(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)からプログラムを読み取って、ストレージ310などに格納する。 The terminal 300 may have an optical drive 304. The optical drive 304 reads the program from a recording medium 305 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program non-transitory, and stores the program in a storage 310 or the like.
 端末300で実行される各種プログラムは、コンピュータ読取可能な記録媒体305を介してインストールされてもよいが、ネットワーク上の任意のサーバからダウンロードする形でインストールするようにしてもよい。 Various programs to be executed on the terminal 300 may be installed via the computer-readable recording medium 305, or may be installed by downloading from any server on the network.
 図5には、プロセッサ302がプログラムを実行することで必要な処理が提供される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。 FIG. 5 shows a configuration example in which necessary processing is provided by the processor 302 executing a program. Alternatively, it may be implemented using an FPGA, etc.).
 <C.シーケンスの概要>
 図6は、図2に示したシーケンスをコンテナ設定テーブル258に関連付けて模式的に示す図である。図6を参照して、アプリケーション311は、端末300が実施するコンフィギュレーション(ステップT1)の処理において、例えば、UIツールを介して受け付けるユーザ操作に基づきコンテナ設定テーブル258を作成する(ステップT2)。コンテナ設定テーブル258は、情報系ネットワーク6に接続される各PLC100について、当該PLC100のベンダにより付される機種名を表すデバイス名2Aと、IP(インターネットプロトコル)に従うデバイスIPアドレス2Bと、当該PLC100のプロトコルに対応のコンテナを識別するコンテナイメージ名2Cと、当該コンテナのIPアドレス2Dを対応付けて含む。コンテナイメージ名2Cは、プロトコルの名称を示す。コンテナ設定テーブル258は、コンテナイメージ名2Cをプロトコル指定データ257として含む。
<C. Outline of sequence>
FIG. 6 is a diagram schematically showing the sequence shown in FIG. 2 in association with the container setting table 258. As shown in FIG. Referring to FIG. 6, application 311 creates container setting table 258 based on a user operation received via a UI tool, for example, in configuration processing (step T1) performed by terminal 300 (step T2). The container setting table 258 includes, for each PLC 100 connected to the information system network 6, a device name 2A representing the model name given by the vendor of the PLC 100, a device IP address 2B according to IP (Internet Protocol), and the name of the PLC 100. A container image name 2C for identifying a container corresponding to a protocol and an IP address 2D of the container are associated with each other. The container image name 2C indicates the protocol name. The container setting table 258 includes the container image name 2C as the protocol designation data 257. FIG.
 プロトコル取得部260は、コンテナ設定テーブル258のコンテナイメージ名2Cか、制御システム1を構成しているPLC100に設定されるプロトコルの種類を取得する(ステップT3)。図6のコンテナ設定テーブル258によれば、プロトコルの種類として、OPC-UA、EIPおよびHTTPSが取得される。 The protocol acquisition unit 260 acquires the container image name 2C of the container setting table 258 or the type of protocol set in the PLC 100 configuring the control system 1 (step T3). According to the container setting table 258 of FIG. 6, OPC-UA, EIP and HTTPS are obtained as protocol types.
 コンテナエンジン270は、コンテナリポジトリ250のプロトコルコンテナ群26のうちから、取得されたプロトコルの種類に対応するプロトコルコンテナ261、262および263をデプロイする(ステップT4)。 The container engine 270 deploys protocol containers 261, 262 and 263 corresponding to the acquired protocol type from among the protocol container group 26 of the container repository 250 (step T4).
 端末300のアプリケーション311は、ユーザ操作に基づき、PLC100-1宛ての通信データ70をサーバ200に通信する(ステップR1)。ゲートウェイコンテナ25は、アプリケーション311から転送された通信データ70が示す宛先(デバイスIPアドレス)に基づき、コンテナ設定テーブル258から、当該宛先に一致するデバイスIPアドレス2Bに対応したコンテナIPアドレス2D宛てに、通信データ70を送信する。これにより、ゲートウェイコンテナ25は、デプロイされた複数のプロトコルコンテナ261、262および263のうちから、通信データ70の宛先のPLC100-1に設定されたプロトコルの種類に対応したプロトコルコンテナに、当該通信データ70を振り分ける(ステップR2)。この振り分けにより、例えば、通信データ70は、OPC-UAのプロトコルコンテナ261に送信される。 The application 311 of the terminal 300 communicates the communication data 70 addressed to the PLC 100-1 to the server 200 based on the user's operation (step R1). Based on the destination (device IP address) indicated by the communication data 70 transferred from the application 311, the gateway container 25, from the container setting table 258, sends a message to the container IP address 2D corresponding to the device IP address 2B that matches the destination. Send communication data 70 . As a result, the gateway container 25 assigns the communication data 70 to the protocol container corresponding to the protocol type set in the destination PLC 100-1 of the deployed protocol containers 261, 262, and 263. 70 is distributed (step R2). By this sorting, for example, the communication data 70 is sent to the OPC-UA protocol container 261 .
 OPC-UAのプロトコルコンテナ261は、ゲートウェイコンテナ25から転送された通信データ70を受信し(ステップR3)、受信した通信データ70をOPC-UAのプロトコルに従い変換処理し、変換後の通信データ70を実行することにより、通信データ70の宛先(デバイスIPアドレス)と通信する(ステップR4)。ステップR4の変換処理の詳細は後述する。これにより、PLC100-1は、PLC100-1のプロトコルに従って、通信データ70に応答することができる。 The OPC-UA protocol container 261 receives the communication data 70 transferred from the gateway container 25 (step R3), converts the received communication data 70 according to the OPC-UA protocol, and converts the converted communication data 70 to By executing it, it communicates with the destination (device IP address) of the communication data 70 (step R4). Details of the conversion processing in step R4 will be described later. Thereby, the PLC 100-1 can respond to the communication data 70 according to the protocol of the PLC 100-1.
 ここでは、PLC100-1宛ての通信データ70の通信を説明したが、EIPに従うPLC100-2またはHTTPSに従うPLC100-3宛ての通信データ70であっても、同様に処理することができる。 Although communication of communication data 70 addressed to PLC 100-1 has been described here, communication data 70 addressed to PLC 100-2 according to EIP or PLC 100-3 according to HTTPS can be similarly processed.
 なお、コンテナ設定テーブル258は、デバイスIPアドレス2Bを有するが、デバイスIPアドレス2Bに代えて、URL(Uniform Resource Locator)であってもよい。 Although the container setting table 258 has the device IP address 2B, it may be a URL (Uniform Resource Locator) instead of the device IP address 2B.
 このように通信データ70は、当該通信データの宛先であるPLC100を識別するコントローラ識別子(例えば、デバイス名)を含む。情報取得部の一実施例であるテーブル設定プログラム315が実行されることで、アプリケーション311は、各PLC100を識別する識別データ(デバイス名2A、デバイスIPアドレス2Bなど)と、当該PLC100のプロトコル種類に対応するデプロイされたプロトコルコンテナの通信アドレス(コンテナIPアドレス2D)との関係を示す関係情報の一実施例であるコンテナ設定テーブル258を取得する。ゲートウェイコンテナ25のミドルウェアは、当該関係情報における、通信データ70のコントローラ識別子(例えば、デバイス名)を示している識別データ(デバイス名2A)に対応の通信アドレス(コンテナIPアドレス2D)を、通信データ70の中継先に決定する。 Thus, the communication data 70 includes a controller identifier (eg, device name) that identifies the PLC 100 that is the destination of the communication data. By executing the table setting program 315, which is an example of the information acquisition unit, the application 311 obtains identification data (device name 2A, device IP address 2B, etc.) that identifies each PLC 100 and the protocol type of the PLC 100. Obtain the container setting table 258, which is an example of relationship information indicating the relationship with the communication address (container IP address 2D) of the corresponding deployed protocol container. The middleware of the gateway container 25 converts the communication address (container IP address 2D) corresponding to the identification data (device name 2A) indicating the controller identifier (for example, device name) of the communication data 70 in the relationship information into the communication data. 70 relay destination.
 (c1.コンテナ設定テーブルの作成シーン)
 図7は、本実施の形態に係るコンテナ設定テーブル258の作成シーンの一例を示す図である。ユーザは、端末300のUIプログラム316によって提供されるUIツールを操作して、コンテナ設定テーブル258を作成する。例えば、アプリケーション311は、端末300の表示部328にモニタ画面(図7の左下の画面)を表示する。モニタ画面から、ユーザは、各PLC100がフィールドデバイス10から収集する状態値を、状態値が設定される変数名と、状態値の組で監視できる。
(c1. Container setting table creation scene)
FIG. 7 is a diagram showing an example of a creation scene of the container setting table 258 according to this embodiment. The user creates the container setting table 258 by operating the UI tool provided by the UI program 316 of the terminal 300. FIG. For example, the application 311 displays a monitor screen (lower left screen in FIG. 7) on the display unit 328 of the terminal 300 . From the monitor screen, the user can monitor the status values that each PLC 100 collects from the field devices 10 by pairs of the variable name to which the status value is set and the status value.
 ユーザは、モニタ画面のモニタ開始を指示するためにボタン330を操作する。テーブル設定プログラム315は、ボタン330の操作に応じて設定画面起動(ステップQ2)を実施する。より具体的には、テーブル設定プログラム315は、UIプログラム316を呼び出し、呼び出されたUIプログラム316が実行されて、コンフィギュレーションT1を用いてコンテナ設定テーブル258の設定処理(ステップQ3)が実施される。表示部328は、ユーザ操作に従った設定内容を有するコンテナ設定テーブル258が表示される。 The user operates the button 330 to instruct to start monitoring the monitor screen. The table setting program 315 activates the setting screen (step Q2) in response to the operation of the button 330. FIG. More specifically, the table setting program 315 calls the UI program 316, the called UI program 316 is executed, and the container setting table 258 is set (step Q3) using the configuration T1. . The display unit 328 displays a container setting table 258 having setting contents according to user operations.
 ここでは、ユーザ操作に従って、コンテナ設定テーブル258が作成されるとしたが、他の方法で設定されてもよい。例えば、端末300が格納しているコンフィグ情報256に基づき、コンテナ設定テーブル258が作成されるとしてもよい。コンフィグ情報256は、情報系ネットワーク6に接続されるPLC100から受信した、当該PLC100の構成を示す情報(デバイス名2A、デバイスIPアドレス2B、設定されたプロトコル(コンテナイメージ名)2C)を含む。 Here, the container setting table 258 is created according to the user's operation, but it may be set by other methods. For example, the container setting table 258 may be created based on the configuration information 256 stored in the terminal 300. FIG. The configuration information 256 includes information (device name 2A, device IP address 2B, set protocol (container image name) 2C) received from the PLC 100 connected to the information system network 6 and indicating the configuration of the PLC 100 .
 ユーザは、変換ボタン329を操作する。テーブル設定プログラム315は、ボタン329の操作に応じて、コンテナ設定テーブル258をファイルの形式に変換する。サーバ200または端末300は、ファイル形式のコンテナ設定テーブル258を取り扱うことができる。 The user operates the conversion button 329. The table setting program 315 converts the container setting table 258 into a file format according to the operation of the button 329 . The server 200 or the terminal 300 can handle the container setting table 258 in file format.
 なお、デバイス名と、デバイスIPアドレスとコンテナIPアドレスとの対応付けを管理する情報を検索することにより、デバイス名2Aから、デバイスIPアドレス2BとコンテナIPアドレス2Dが取得されてもよい。この場合、コンテナIPアドレスは、予め定められたアドレスであってもよく、または、デプロイされたプロトコルコンテナのIPアドレスを指し示すようにしてもよい。 The device IP address 2B and the container IP address 2D may be obtained from the device name 2A by searching for information that manages the correspondence between the device name, the device IP address, and the container IP address. In this case, the container IP address may be a predetermined address or may point to the IP address of the deployed protocol container.
 (c2.利用シーン)
 図8は、図7で作成されたコンテナ設定テーブル258の利用シーンの一例を示す図である。利用シーンとして、ユーザが、PLC100-2のフィールドデバイス10の状態値をモニタするケースを説明する。図8を参照して、ユーザは、表示部328のモニタ画面において矢印B2で示すデバイス名“NX1B”が有する変数名“Variable B”を指定して、モニタ開始のボタンB1を操作すると、アプリケーション311は、デバイス名2Aと、変数読み出しコマンドCMと、“Variable B”を示す変数名Nとを含む通信データ70をサーバ200に送信する(ステップQ7)。
(c2. Use scene)
FIG. 8 is a diagram showing an example of a usage scene of the container setting table 258 created in FIG. As a usage scene, a case where the user monitors the state values of the field device 10 of the PLC 100-2 will be described. Referring to FIG. 8, when the user designates the variable name “Variable B” of the device name “NX1B” indicated by arrow B2 on the monitor screen of display unit 328 and operates button B1 for starting monitoring, application 311 transmits communication data 70 including device name 2A, variable read command CM, and variable name N indicating "Variable B" to server 200 (step Q7).
 サーバ200のゲートウェイコンテナ25は、アプリケーション311から受信した通信データ70のデバイス名2Aに基づき、コンテナ設定テーブル258から、当該デバイス名2Aに対応のデバイスIPアドレス2BとコンテナIPアドレス2Dを検索する(ステップQ8、Q9)。 Based on the device name 2A of the communication data 70 received from the application 311, the gateway container 25 of the server 200 searches the container setting table 258 for the device IP address 2B and container IP address 2D corresponding to the device name 2A (step Q8, Q9).
 ゲートウェイコンテナ25は、通信データ70のデバイス名2Aを検索されたデバイスIPアドレス2Bで置き換え、置き換え後の通信データ70を、検索されたコンテナIPアドレス2Dを宛先にしてプロトコルコンテナに転送する(ステップQ10)。図8では、通信データ70は、EIPのプロトコルコンテナ262に転送される。 The gateway container 25 replaces the device name 2A of the communication data 70 with the retrieved device IP address 2B, and transfers the replaced communication data 70 to the protocol container with the retrieved container IP address 2D as the destination (step Q10). ). In FIG. 8, communication data 70 is transferred to EIP's protocol container 262 .
 プロトコルコンテナ262は、通信データ70に通信シーケンスをEIPに従い変換処理し(ステップQ11)、処理後の通信データ70を、通信データ70が有するデバイスIPアドレス2Bを宛先にして情報系ネットワーク6に送信する(ステップQ11)。 The protocol container 262 converts the communication sequence into the communication data 70 according to EIP (step Q11), and transmits the processed communication data 70 to the information system network 6 with the device IP address 2B of the communication data 70 as the destination. (Step Q11).
 情報系ネットワーク6に接続されたPLC100のうち、通信データ70が有するデバイスIPアドレス2Bで指定されるPLC100-2の通信プログラム117は、通信データ70を受信する。PLC100-2のユーザプログラム115は、通信データ70の通信シーケンスが示すコマンドCMを実行して、実行結果に従い、フィールドデバイス10が出力する状態値のうちから、“Variable B”の変数名Nで指定される状態値を、変数値Vとして取得する。 Among the PLCs 100 connected to the information system network 6, the communication program 117 of the PLC 100-2 designated by the device IP address 2B included in the communication data 70 receives the communication data 70. The user program 115 of the PLC 100-2 executes the command CM indicated by the communication sequence of the communication data 70, and according to the execution result, specifies the variable name N of "Variable B" from among the state values output by the field device 10. Get the state value to be set as the variable value V.
 PLC100-2によって取得された変数値Vは、プロトコルコンテナ262およびゲートウェイコンテナ25を経由して、通信データ70の送信元であるアプリケーション311に転送される(ステップQ12、Q13、Q14)。アプリケーション311は、PLC100-2から受信した変数値Vを用いて、表示部328のモニタ画面の矢印B2で示される値を変数値Vを示すように更新する(ステップQ15)。 The variable value V acquired by the PLC 100-2 is transferred to the application 311, which is the sender of the communication data 70, via the protocol container 262 and the gateway container 25 (steps Q12, Q13, Q14). The application 311 uses the variable value V received from the PLC 100-2 to update the value indicated by the arrow B2 on the monitor screen of the display unit 328 to indicate the variable value V (step Q15).
 (c3.プロトコルコンテナの変換処理)
 図9は、本実施の形態に係るプロトコルコンテナによる変換処理の一例を模式的に示す図である。本実施の形態では、プロトコルコンテナは、ゲートウェイコンテナ25から転送された通信データ70の通信シーケンスを、ミドルウェアによって当該プロトコルに従って変換し、変換後の通信シーケンスを実行することにより、当該プロトコルが設定されたPLC100と、通信データ70に従って通信することができる。通信シーケンスは、PLC100と通信するための1または複数のコマンドからなるシーケンスのデータを含む。
(c3. Protocol container conversion processing)
FIG. 9 is a diagram schematically showing an example of conversion processing by a protocol container according to this embodiment. In the present embodiment, the protocol container converts the communication sequence of the communication data 70 transferred from the gateway container 25 according to the protocol by middleware, and executes the converted communication sequence to set the protocol. It can communicate with PLC 100 according to communication data 70 . A communication sequence includes data of a sequence of one or more commands for communicating with PLC 100 .
 例えば、通信シーケンスは、通信接続を確立するコマンドと、通信接続確立後にPLC100で実行させる処理の1または複数のコマンドと、処理コマンドの実行後に、確立している通信接続を終了(遮断)するコマンドとを含む。 For example, the communication sequence includes a command to establish a communication connection, one or more commands for processing to be executed by the PLC 100 after establishing the communication connection, and a command to terminate (shut off) the established communication connection after execution of the processing command. including.
 例えば、変数の読出しコマンドCMの通信シーケンスは、変数の読み出しコマンドCMに追加して、通信接続を確立するコマンドCM1と図示しないが通信接続を遮断するコマンドとを含む。まず、プロトコルコンテナは、ゲートウェイコンテナ25から転送された通信データ70の通信シーケンスが示す通信接続確立のコマンドCM1を、当該プロトコルが規定するコマンドに変換するとともに(ステップQ20)、変数の読み出しコマンドCMを当該プロトコルが規定するコマンドに変換する(ステップQ21)。 For example, the communication sequence of the variable read command CM includes, in addition to the variable read command CM, a command CM1 for establishing a communication connection and a command (not shown) for disconnecting the communication connection. First, the protocol container converts the command CM1 for establishing a communication connection indicated by the communication sequence of the communication data 70 transferred from the gateway container 25 into a command defined by the protocol (step Q20), and outputs a variable read command CM. It is converted into a command specified by the protocol (step Q21).
 より具体的には、図8のステップQ11では、EIPのプロトコルコンテナ262は、通信データ70のコマンドCM1を、EIPに従う“EstablishClass3Connection()”のコマンドに変換し(ステップQ20)、変数Variableの読み出しコマンドCMを、EIPに従う“ConnectionObjectGetInstanceTypeForAttribute(variable)”に変換する。OPC-UAのプロトコルコンテナ261およびHTTPSのプロトコルコンテナ263においても、図9に示すように通信シーケンスのシーケンスデータを変換する。 More specifically, in step Q11 of FIG. 8, the EIP protocol container 262 converts the command CM1 of the communication data 70 into a command of "EstablishClass3Connection( )" conforming to the EIP (step Q20), and a variable variable read command Convert CM to "ConnectionObjectGetInstanceTypeForAttribute(variable)" according to EIP. The OPC-UA protocol container 261 and the HTTPS protocol container 263 also convert the sequence data of the communication sequence as shown in FIG.
 このように変換されて、変換後のコマンドからなる通信シーケンスがコンテナプロトコルのミドルウェアおよびPLC100の通信ミドルウェアで実行されることで、カーネル291と物理H/W292を介して、サーバ200(より特定的にはプロトコルコンテナ)とは対応のPLC100と通信接続を確立し、当該PLC100は変換後の変数読み出しコマンドに基づく処理を実行し、その後、コンテナプロトコルのミドルウェアおよびPLC100の通信ミドルウェア間で通信接続を遮断するコマンドが実行される。 A communication sequence composed of commands converted in this way is executed by the middleware of the container protocol and the communication middleware of the PLC 100, so that the server 200 (more specifically, establishes a communication connection with the PLC 100 corresponding to the protocol container), the PLC 100 executes processing based on the variable read command after conversion, and then cuts off the communication connection between the middleware of the container protocol and the communication middleware of the PLC 100 Command is executed.
 ここでは、通信シーケンスの処理コマンドとして、変数からデータを読み出すコマンドを示したが、他のコマンドとして例えば変数にデータを書込むコマンドを含めることができる。 Here, a command for reading data from a variable is shown as a communication sequence processing command, but other commands, such as a command for writing data to a variable, can be included.
 上記に述べたように、通信シーケンスを示すシーケンスデータは、通信接続制御コマンド(通信接続を確立するコマンドと、当該通信接続を遮断するコマンド)と、当該通信接続の確立と遮断との間でPLC100に処理を実施させる処理コマンドとを含む。本実施の形態では、この処理コマンドに、IOリフレッシュ領域113に格納された状態値または制御指令の読み出しコマンド、または、IOリフレッシュ領域113に対するデータ(状態値または制御指令)の書込みコマンドを含めることができる。 As described above, the sequence data indicating the communication sequence is a communication connection control command (a command to establish a communication connection and a command to cut off the communication connection) and the PLC 100 between the establishment and cutoff of the communication connection. and processing commands that cause the to perform processing. In this embodiment, the processing command may include a command to read the state value or control instruction stored in the IO refresh area 113 or a write command to write data (state value or control instruction) to the IO refresh area 113. can.
 (c4.変形例)
 図10は、本実施の形態に係るプロトコルコンテナのデプロイの変形例を示す図である。例えば、PLC100がコンテナベースで通信ミドルウェアが提供されてもよい。その場合、図10を参照して、サーバ200のプロトコルコンテナの通信ミドルウェアがコンテナリポジトリ250から動的に、各PLC100に当該PLCに設定されたプロトコルに対応したゲートウェイコンテナと各種のプロトコルに対応のプロトコルコンテナをロード(デプロイ)してもよい。
(c4. Modification)
FIG. 10 is a diagram showing a modified example of deployment of protocol containers according to the present embodiment. For example, the PLC 100 may be provided with communication middleware on a container basis. In that case, referring to FIG. 10, the communication middleware of the protocol container of the server 200 dynamically provides each PLC 100 with a gateway container corresponding to the protocol set in the PLC and a protocol corresponding to various protocols from the container repository 250. A container may be loaded (deployed).
 <D.フローチャート>
 図11は、本実施の形態に係る起動シーケンスのフローチャートである。図11を参照して、端末300のアプリケーション311は、図6のステップT1に示したようにコンテナ設定テーブル258を作成する(ステップS1)。なお、コンテナ設定テーブル258は、アプリケーション311とは異なる環境で作成されてもよい。
<D. Flowchart>
FIG. 11 is a flowchart of the startup sequence according to this embodiment. Referring to FIG. 11, application 311 of terminal 300 creates container setting table 258 as shown in step T1 of FIG. 6 (step S1). Note that the container setting table 258 may be created in an environment different from that of the application 311 .
 サーバ200は、アプリケーション311からの指示に従い、図6のステップT4で示すように、ゲートウェイコンテナ25およびコンテナ設定テーブル258のコンテナイメージ名2Cに対応のプロトコルコンテナをデプロイする(ステップS3)。また、サーバ200は、アプリケーション311からの指示に従い、図6のステップT4で示すように、コンテナ設定テーブル258のコンテナイメージ名2Cに対応のプロトコルコンテナをデプロイする(ステップS5)。 The server 200 deploys the gateway container 25 and the protocol container corresponding to the container image name 2C in the container setting table 258 (step S3), as shown in step T4 of FIG. 6, according to the instruction from the application 311. In addition, the server 200 deploys the protocol container corresponding to the container image name 2C in the container setting table 258 according to the instruction from the application 311, as shown in step T4 of FIG. 6 (step S5).
 図12は、本実施の形態に係る利用シーケンスのフローチャートである。図12を参照して、アプリケーション311は、ユーザが指定したPLC100に通信シーケンスを発行するために、図6のステップR1に示すように、当該通信シーケンスを有した通信データ70をゲートウェイコンテナ25に送信する(ステップS7)。 FIG. 12 is a flowchart of the usage sequence according to this embodiment. Referring to FIG. 12, application 311 transmits communication data 70 having the communication sequence to gateway container 25 as shown in step R1 of FIG. 6 in order to issue a communication sequence to PLC 100 specified by the user. (step S7).
 ゲートウェイコンテナ25は、アプリケーション311から受信した通信データ70のデバイス名2Aに基づき、コンテナ設定テーブル258から当該デバイス名2Aに対応のデバイスIPアドレス2BおよびコンテナIPアドレス2Dを検索する(ステップS9)。なお、コンテナ設定テーブル258に、デバイスIPアドレス2Bに代えてURL(Uniform Resource Locator)が設定される場合、ゲートウェイコンテナ25は、URLをDNS(Domain Name System)を利用して、デバイスIPアドレス2Bに変換する。 Based on the device name 2A of the communication data 70 received from the application 311, the gateway container 25 searches the container setting table 258 for the device IP address 2B and container IP address 2D corresponding to the device name 2A (step S9). Note that when a URL (Uniform Resource Locator) is set in the container setting table 258 instead of the device IP address 2B, the gateway container 25 converts the URL to the device IP address 2B using DNS (Domain Name System). Convert.
 ゲートウェイコンテナ25は、ステップS9の検索結果に基づき、コンテナ設定テーブル258からデバイスIPアドレス2Bが検索できたか否かを判定する(ステップS11)。検索できないときは(ステップS11でNO)、通信エラーの処理を実施するが、検索できたときは(ステップS11でYES)、ゲートウェイコンテナ25は、検索されたコンテナIPアドレス2Dが通信可能であるかを判定する(ステップS13)。より具体的には、ゲートウェイコンテナ25は、予め定められた状態確認のコマンドを実行し、実行結果に基づき、コンテナIPアドレス2Dのコンテナの状態を判定する。状態は、通信可能状態にないと判定されると(ステップS13でNO)、通信エラーの処理を実行するが、状態は、通信可能状態であると判定されると(ステップS13でYES)、ステップS15に移行する。 The gateway container 25 determines whether or not the device IP address 2B could be retrieved from the container setting table 258 based on the search result of step S9 (step S11). If the search is not possible (NO in step S11), communication error processing is performed. is determined (step S13). More specifically, the gateway container 25 executes a predetermined status confirmation command, and determines the status of the container with the container IP address 2D based on the execution result. If it is determined that the state is not in a communicable state (NO in step S13), a communication error process is executed. If it is determined that the state is in a communicable state (YES in step S13), step Move to S15.
 ステップS15では、図6のステップR2に示すように、ゲートウェイコンテナ25は、通信データ70の通信シーケンスおよびデバイスIPアドレス2Bを、コンテナIPアドレス2Dのプロトコルコンテナに送信する(ステップS15)。 In step S15, as shown in step R2 of FIG. 6, the gateway container 25 transmits the communication sequence of the communication data 70 and the device IP address 2B to the protocol container of the container IP address 2D (step S15).
 コンテナIPアドレス2Dのプロトコルコンテナは、図6のステップR3およびR4に示すように、ゲートウェイコンテナ25から通信データ70を受信し、受信した通信データ70に従い、PLC100と通信する(ステップS17)。より具体的には、プロトコルコンテナは、受信した通信データ70の通信シーケンスのコマンドを当該プロトコルコンテナのプロトコルに従うコマンドに変換し、変換後のコマンドからなる通信シーケンスを実行することにより、デバイスIPアドレス2Bによって指定されるPLC100と通信する。 The protocol container with the container IP address 2D receives the communication data 70 from the gateway container 25 and communicates with the PLC 100 according to the received communication data 70, as shown in steps R3 and R4 of FIG. 6 (step S17). More specifically, the protocol container converts the command of the communication sequence of the received communication data 70 into a command conforming to the protocol of the protocol container, and executes the communication sequence composed of the converted command to obtain the device IP address 2B. Communicate with the PLC 100 specified by.
 上記の実施の形態では、ゲートウェイコンテナ25は、プロトコルコンテナとは異なるタイミングでデプロイされてもよい。例えば、コンテナエンジン270は、中継する通信データ70を受付けたとき、ゲートウェイコンテナ25についてデプロイを実施するよう構成されてもよい。 In the above embodiment, the gateway container 25 may be deployed at a different timing than the protocol container. For example, container engine 270 may be configured to perform deployment for gateway container 25 upon receipt of communication data 70 to be relayed.
 <E.利点>
 図13は、本実施の形態に係るプロトコルコンテナを実装した制御システム1により得られる利点を説明するための図である。図13に示すように、一般的にアプリケーションはデバイスと通信するために、アプリケーションに関連付けられるプロトコル毎のミドルウェア(通信ミドルウェア)を呼び出し、呼び出されたミドルウェアを介してPLC100などのデバイスと通信する。すなわち、アプリケーションとミドルウェアとの結合は密結合となる。したがって、アプリケーションが複数のミドルウェアを切り替えて動作させるには、予め複数のミドルウェアを呼び出せるようにアプリケーションを作成する必要がある。また、アプリケーションを新たなプロトコルに対応させるには、新たなミドルウェアを呼び出せるようにアプリケーションを再作成する必要がある。
<E. Advantage>
FIG. 13 is a diagram for explaining advantages obtained by the control system 1 implementing the protocol container according to the present embodiment. As shown in FIG. 13, an application generally calls middleware (communication middleware) for each protocol associated with the application in order to communicate with a device, and communicates with a device such as the PLC 100 via the called middleware. In other words, the application and middleware are tightly coupled. Therefore, in order for an application to switch and operate a plurality of middlewares, it is necessary to create an application in advance so that it can call a plurality of middlewares. Also, to make an application compatible with a new protocol, it is necessary to rewrite the application so that it can call the new middleware.
 対照的に、本実施の形態では、コンテナリポジトリ250は、異なるプロトコルそれぞれについて、当該プロトコルのミドルウェアを有したコンテナを格納しておき、コンテナエンジン270が制御システム1の情報系ネットワーク6に接続されている各PLC100に、すなわちアプリケーション311の通信相手となり得る各PLC100に設定されたプロトコルに対応したコンテナをデプロイする。これにより、アプリケーション311とミドルウェアとの結合は疎結合となる。 In contrast, in the present embodiment, the container repository 250 stores containers having middleware for each different protocol, and the container engine 270 is connected to the information system network 6 of the control system 1. A container corresponding to the protocol set in each PLC 100 that is in the application 311, that is, in each PLC 100 that can be a communication partner of the application 311 is deployed. As a result, the application 311 and the middleware are loosely coupled.
 したがって、通信相手となるPLC100に設定されるプロトコルが変更または追加されるとしても、コンテナエンジン270が、この変更または追加のプロトコルに対応のコンテナをデプロイするだけでよく、当該プロトコルの変更または追加に伴いアプリケーション311を再作成する必要はなく、アプリケーション311は当該変更および追加の影響を受けない。このように制御システム1では、アプリケーション311がローカルデバイスであるPLC100またはフィールドデバイス10と通信するためのプロトコル対応のミドルウェアは、コンテナエンジン270によって動的にサポートされる環境を提供できる。 Therefore, even if the protocol set in the PLC 100 that is the communication partner is changed or added, the container engine 270 only needs to deploy a container that supports this changed or added protocol. There is no need to recreate application 311 accordingly, and application 311 is unaffected by such changes and additions. In this way, in the control system 1 , protocol-compatible middleware for the application 311 to communicate with the PLC 100 or field device 10 that is a local device can provide an environment dynamically supported by the container engine 270 .
 <F.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
 FA(ファクトリオートメーション)の1または複数のコントローラ(100)と、前記1または複数のコントローラとネットワーク通信する情報処理装置(200)を含む制御システム(1)であって、
 複数種類のプロトコルのそれぞれについて、当該プロトコルに従った前記ネットワーク通信のためのミドルウェアを含むコンテナであるプロトコルコンテナ(26)を管理するリポジトリ(250)と、
 各前記1または複数のコントローラについて、当該コントローラが前記ネットワーク通信に用いるプロトコルの種類を取得するプロトコル取得部(260)と、
 前記プロトコル取得部によって取得された前記各コントローラのプロトコル種類について、当該プロトコル種類に対応する前記リポジトリのプロトコルコンテナをデプロイすることで、当該プロトコルコンテナのミドルウェアを起動するコンテナエンジン(270)と、を備える、制御システム。
[構成2]
 前記リポジトリは、さらに、
 アプリケーション(311)とデプロイされた各前記プロトコル種類に対応のプロトコルコンテナとの間で通信データ(70)を中継するミドルウェアを含むコンテナであるゲートウェイコンテナ(25)を管理し、
 前記コンテナエンジンは、さらに、前記リポジトリの前記ゲートウェイコンテナをデプロイすることで、当該ゲートウェイコンテナのミドルウェアを起動する、構成1に記載の制御システム。
[構成3]
 前記通信データは、当該通信データの宛先である前記コントローラを識別するコントローラ識別子(2A)を含み、
 前記ゲートウェイコンテナのミドルウェアは、中継する前記通信データに基づき、当該通信データの中継先を、前記各コントローラのプロトコル種類に対応するデプロイされた前記プロトコルコンテナのうちから決定する、構成2に記載の制御システム。
[構成4]
 前記コンテナエンジンは、中継する前記通信データを受付けたとき、前記ゲートウェイコンテナについて前記デプロイを実施する、構成3に記載の制御システム。
[構成5]
 前記制御システムは、さらに、
 前記各コントローラを識別する識別データと、当該コントローラのプロトコル種類に対応するデプロイされた前記プロトコルコンテナの通信アドレスとの関係を示す関係情報(258)を取得する情報取得部(260)を備え、
 前記ゲートウェイコンテナのミドルウェアは、前記関係情報における、前記通信データの前記コントローラ識別子を示す前記識別データに対応の前記通信アドレスを前記中継先に決定する、構成3または4に記載の制御システム。
[構成6]
 前記通信データは、通信シーケンスを示すシーケンスデータを含み、
 デプロイされた前記プロトコルコンテナのミドルウェアは、前記ゲートウェイコンテナからの前記通信データに含まれる前記シーケンスデータを、当該プロトコルコンテナに対応する前記プロトコルの種類に従うシーケンスを示すデータに変換する、構成2から5のいずれか1に記載の制御システム。
[構成7]
 前記シーケンスデータは、通信接続を制御するコマンド(CM1)と、前記コントローラに処理を実施させる処理コマンド(CM)とを含む、構成6に記載の制御システム。
[構成8]
 前記各コントローラは、
 前記情報処理装置が属するネットワークと接続する第1コネクタ(121)と、
 前記ネットワークとは異なるネットワークであって、制御対象が属するネットワークを接続する第2コネクタ(123)と、
 前記異なるネットワークを介して受信する前記制御対象の状態値と、前記制御対象に対する制御指令を格納する格納部(113)と、
 格納された前記状態値を用いて前記制御指令を算出する制御演算を実行する演算部(116,102)と、を備え、
 前記処理コマンドは、格納された前記状態値または前記制御指令の読み出しコマンド、または、前記格納部に対する前記状態値または前記制御指令の書込みコマンドを含む、構成7に記載の制御システム。
[構成9]
 FA(ファクトリオートメーション)の1または複数のコントローラ(100)と、前記1または複数のコントローラとネットワーク通信する情報処理装置(200)を含む制御システム(1)において実行される前記通信を制御する方法であって、
 前記制御システムは、
 複数種類のプロトコルのそれぞれについて、当該プロトコルに従った前記ネットワーク通信のためのミドルウェアを含むコンテナであるプロトコルコンテナ(26)を管理するリポジトリ(250)を備え、
 前記方法は、
 各前記1または複数のコントローラについて、当該コントローラが前記ネットワーク通信に用いるプロトコルの種類を取得するステップと、
 取得された前記各コントローラのプロトコル種類について、当該プロトコル種類に対応する前記リポジトリのプロトコルコンテナをデプロイすることで、当該プロトコルコンテナの前記ミドルウェアを起動するステップと、を備える、制御方法。
<F. Note>
The present embodiment as described above includes the following technical ideas.
[Configuration 1]
A control system (1) including one or more controllers (100) for FA (factory automation) and an information processing device (200) that performs network communication with the one or more controllers,
a repository (250) that manages a protocol container (26), which is a container containing middleware for network communication according to each protocol, for each of a plurality of types of protocols;
a protocol acquisition unit (260) for acquiring, for each of the one or more controllers, the type of protocol used by the controller for the network communication;
a container engine (270) for starting middleware of the protocol container by deploying the protocol container of the repository corresponding to the protocol type of each controller acquired by the protocol acquisition unit; , control system.
[Configuration 2]
Said repository further comprises:
managing a gateway container (25), which is a container containing middleware for relaying communication data (70) between the application (311) and the deployed protocol container corresponding to each protocol type;
2. The control system of claim 1, wherein the container engine further deploys the gateway container of the repository to activate middleware of the gateway container.
[Configuration 3]
the communication data includes a controller identifier (2A) that identifies the controller that is the destination of the communication data;
The control according to configuration 2, wherein the middleware of the gateway container determines a relay destination of the communication data based on the communication data to be relayed from among the deployed protocol containers corresponding to the protocol types of the controllers. system.
[Configuration 4]
4. The control system according to configuration 3, wherein the container engine performs the deployment for the gateway container when receiving the communication data to be relayed.
[Configuration 5]
The control system further comprises:
an information acquisition unit (260) for acquiring relationship information (258) indicating a relationship between identification data identifying each controller and a communication address of the deployed protocol container corresponding to the protocol type of the controller;
The control system according to configuration 3 or 4, wherein the middleware of the gateway container determines the communication address corresponding to the identification data indicating the controller identifier of the communication data in the relationship information as the relay destination.
[Configuration 6]
The communication data includes sequence data indicating a communication sequence,
The deployed middleware of the protocol container converts the sequence data included in the communication data from the gateway container into data indicating a sequence according to the type of the protocol corresponding to the protocol container, configurations 2 to 5 A control system according to any one of the preceding claims.
[Configuration 7]
7. Control system according to configuration 6, wherein said sequence data comprises commands (CM1) for controlling communication connections and processing commands (CM) for causing said controller to perform processing.
[Configuration 8]
Each of the controllers
a first connector (121) connected to a network to which the information processing device belongs;
a second connector (123) that connects a network different from the network to which the controlled object belongs;
a storage unit (113) for storing a state value of the controlled object received via the different network and a control command for the controlled object;
a calculation unit (116, 102) that executes a control calculation for calculating the control command using the stored state value;
8. The control system of arrangement 7, wherein the processing command comprises a command to read the stored state values or the control instructions or a command to write the state values or the control instructions to the store.
[Configuration 9]
A method of controlling said communication performed in a control system (1) comprising one or more controllers (100) of FA (factory automation) and an information processing device (200) in network communication with said one or more controllers There is
The control system is
A repository (250) for managing a protocol container (26), which is a container containing middleware for network communication according to the protocol, for each of a plurality of types of protocols;
The method includes
obtaining, for each of the one or more controllers, the type of protocol that the controller uses for the network communication;
a step of deploying the protocol container of the repository corresponding to the acquired protocol type of each controller, thereby activating the middleware of the protocol container.
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed this time should be considered illustrative in all respects and not restrictive. The scope of the present invention is indicated by the scope of the claims rather than the above description, and is intended to include all modifications within the scope and meaning equivalent to the scope of the claims.
 1 制御システム、2A デバイス名、2B デバイスIPアドレス、2C コンテナイメージ名、2D コンテナアドレス、4 制御系ネットワーク、6 情報系ネットワーク、8 インターネット、10 フィールドデバイス、14 リレー群、16 サーボドライバ、18 サーボモータ、20 中継装置、25 ゲートウェイコンテナ、26 プロトコルコンテナ群、70 通信データ、80 転送ルート、102,202,302 プロセッサ、104 チップセット、106,206,306 主メモリ、110,210,310 ストレージ、113 IOリフレッシュ領域、114 システムプログラム、115 ユーザプログラム、116 制御プログラム、117 通信プログラム、118 IOリフレッシュ、120 情報系ネットワークコントローラ、121,123 コネクタ、122 制御系ネットワークコントローラ、124,324 コントローラ、126 メモリカードインターフェイス、127,128 メモリカード、200 サーバ、203,304 光学ドライブ、204,305 記録媒体、208,308 バス、220,320 ネットワークコントローラ、226,326 入力部、228,328 表示部、250 コンテナリポジトリ、256 コンフィグ情報、257 プロトコル指定データ、258 コンテナ設定テーブル、260 プロトコル取得部、261,262,263 プロトコルコンテナ、264 プロトコル取得プログラム、270 コンテナエンジン、275 コンテナエンジンプログラム、280 デプロイ領域、291 カーネル、300 端末、311 アプリケーション、314 開発プログラム、315 テーブル設定プログラム、317 コンフィグプログラム、329 変換ボタン、CM,CM1 コマンド。 1 control system, 2A, device name, 2B, device IP address, 2C, container image name, 2D, container address, 4, control system network, 6, information system network, 8, Internet, 10, field device, 14, relay group, 16, servo driver, 18, servo motor , 20 relay device, 25 gateway container, 26 protocol container group, 70 communication data, 80 transfer route, 102, 202, 302 processor, 104 chipset, 106, 206, 306 main memory, 110, 210, 310 storage, 113 IO Refresh area, 114 system program, 115 user program, 116 control program, 117 communication program, 118 IO refresh, 120 information network controller, 121, 123 connector, 122 control network controller, 124, 324 controller, 126 memory card interface, 127, 128 memory card, 200 server, 203, 304 optical drive, 204, 305 recording medium, 208, 308 bus, 220, 320 network controller, 226, 326 input section, 228, 328 display section, 250 container repository, 256 configuration information, 257 protocol specification data, 258 container setting table, 260 protocol acquisition unit, 261, 262, 263 protocol container, 264 protocol acquisition program, 270 container engine, 275 container engine program, 280 deployment area, 291 kernel, 300 terminal, 311 Application, 314 development program, 315 table setting program, 317 configuration program, 329 conversion button, CM, CM1 commands.

Claims (9)

  1.  FA(ファクトリオートメーション)の1または複数のコントローラと、前記1または複数のコントローラとネットワーク通信する情報処理装置を含む制御システムであって、
     複数種類のプロトコルのそれぞれについて、当該プロトコルに従った前記ネットワーク通信のためのミドルウェアを含むコンテナであるプロトコルコンテナを管理するリポジトリと、
     各前記1または複数のコントローラについて、当該コントローラが前記ネットワーク通信に用いるプロトコルの種類を取得するプロトコル取得部と、
     前記プロトコル取得部によって取得された前記各コントローラのプロトコル種類について、当該プロトコル種類に対応する前記リポジトリのプロトコルコンテナをデプロイすることで、当該プロトコルコンテナのミドルウェアを起動するコンテナエンジンと、を備える、制御システム。
    A control system including one or more controllers for FA (factory automation) and an information processing device that performs network communication with the one or more controllers,
    a repository for managing a protocol container, which is a container containing middleware for network communication according to the protocol, for each of a plurality of types of protocols;
    a protocol acquisition unit for acquiring, for each of the one or more controllers, the type of protocol used by the controller for the network communication;
    a container engine that launches middleware of the protocol container by deploying the protocol container of the repository corresponding to the protocol type of each controller acquired by the protocol acquisition unit. .
  2.  前記リポジトリは、さらに、
     アプリケーションとデプロイされた各前記プロトコル種類に対応のプロトコルコンテナとの間で通信データを中継するミドルウェアを含むコンテナであるゲートウェイコンテナを管理し、
     前記コンテナエンジンは、さらに、前記リポジトリの前記ゲートウェイコンテナをデプロイすることで、当該ゲートウェイコンテナのミドルウェアを起動する、請求項1に記載の制御システム。
    Said repository further comprises:
    managing a gateway container, which is a container containing middleware for relaying communication data between an application and a deployed protocol container corresponding to each protocol type;
    2. The control system of claim 1, wherein the container engine further deploys the gateway container of the repository to activate middleware of the gateway container.
  3.  前記通信データは、当該通信データの宛先である前記コントローラを識別するコントローラ識別子を含み、
     前記ゲートウェイコンテナのミドルウェアは、中継する前記通信データに基づき、当該通信データの中継先を、前記各コントローラのプロトコル種類に対応するデプロイされた前記プロトコルコンテナのうちから決定する、請求項2に記載の制御システム。
    the communication data includes a controller identifier that identifies the controller that is the destination of the communication data;
    3. The middleware of the gateway container according to claim 2, wherein, based on the communication data to be relayed, the relay destination of the communication data is determined from among the deployed protocol containers corresponding to the protocol types of the respective controllers. control system.
  4.  前記コンテナエンジンは、中継する前記通信データを受付けたとき、前記ゲートウェイコンテナについて前記デプロイを実施する、請求項3に記載の制御システム。 The control system according to claim 3, wherein the container engine implements the deployment for the gateway container when receiving the communication data to be relayed.
  5.  前記制御システムは、さらに、
     前記各コントローラを識別する識別データと、当該コントローラのプロトコル種類に対応するデプロイされた前記プロトコルコンテナの通信アドレスとの関係を示す関係情報を取得する情報取得部を備え、
     前記ゲートウェイコンテナのミドルウェアは、前記関係情報における、前記通信データの前記コントローラ識別子を示す前記識別データに対応の前記通信アドレスを前記中継先に決定する、請求項3または4に記載の制御システム。
    The control system further comprises:
    an information acquisition unit that acquires relationship information indicating a relationship between identification data that identifies each controller and a communication address of the deployed protocol container corresponding to the protocol type of the controller;
    5. The control system according to claim 3, wherein the middleware of said gateway container determines said communication address corresponding to said identification data indicating said controller identifier of said communication data in said relationship information as said relay destination.
  6.  前記通信データは、通信シーケンスを示すシーケンスデータを含み、
     デプロイされた前記プロトコルコンテナのミドルウェアは、前記ゲートウェイコンテナからの前記通信データに含まれる前記シーケンスデータを、当該プロトコルコンテナに対応する前記プロトコルの種類に従うシーケンスを示すデータに変換する、請求項2から5のいずれか1項に記載の制御システム。
    The communication data includes sequence data indicating a communication sequence,
    6. Middleware of said deployed protocol container converts said sequence data included in said communication data from said gateway container into data indicating a sequence according to said protocol type corresponding to said protocol container. A control system according to any one of the preceding claims.
  7.  前記シーケンスデータは、通信接続を制御するコマンドと、前記コントローラに処理を実施させる処理コマンドとを含む、請求項6に記載の制御システム。 The control system according to claim 6, wherein the sequence data includes commands for controlling communication connections and processing commands for causing the controller to perform processing.
  8.  前記各コントローラは、
     前記情報処理装置が属するネットワークと接続する第1コネクタと、
     前記ネットワークとは異なるネットワークであって、制御対象が属するネットワークを接続する第2コネクタと、
     前記異なるネットワークを介して受信する前記制御対象の状態値と、前記制御対象に対する制御指令を格納する格納部と、
     格納された前記状態値を用いて前記制御指令を算出する制御演算を実行する演算部と、を備え、
     前記処理コマンドは、格納された前記状態値または前記制御指令の読み出しコマンド、または、前記格納部に対する前記状態値または前記制御指令の書込みコマンドを含む、請求項7に記載の制御システム。
    Each of the controllers
    a first connector connected to a network to which the information processing device belongs;
    a second connector that connects a network different from the network to which the controlled object belongs;
    a storage unit for storing the state value of the controlled object received via the different network and a control command for the controlled object;
    a calculation unit that executes a control calculation for calculating the control command using the stored state value,
    8. The control system of claim 7, wherein the processing command comprises a command to read the stored state values or the control instructions or a command to write the state values or the control instructions to the store.
  9.  FA(ファクトリオートメーション)の1または複数のコントローラと、前記1または複数のコントローラとネットワーク通信する情報処理装置を含む制御システムにおいて実行される前記通信を制御する方法であって、
     前記制御システムは、
     複数種類のプロトコルのそれぞれについて、当該プロトコルに従った前記ネットワーク通信のためのミドルウェアを含むコンテナであるプロトコルコンテナを管理するリポジトリを備え、
     前記方法は、
     各前記1または複数のコントローラについて、当該コントローラが前記ネットワーク通信に用いるプロトコルの種類を取得するステップと、
     取得された前記各コントローラのプロトコル種類について、当該プロトコル種類に対応する前記リポジトリのプロトコルコンテナをデプロイすることで、当該プロトコルコンテナの前記ミドルウェアを起動するステップと、を備える、制御方法。
    A method of controlling the communication performed in a control system including one or more controllers of FA (factory automation) and an information processing device that performs network communication with the one or more controllers,
    The control system is
    A repository that manages a protocol container, which is a container containing middleware for network communication according to the protocol, for each of a plurality of types of protocols;
    The method includes:
    obtaining, for each of the one or more controllers, the type of protocol that the controller uses for the network communication;
    a step of deploying the protocol container of the repository corresponding to the acquired protocol type of each controller, thereby activating the middleware of the protocol container.
PCT/JP2022/016753 2021-06-03 2022-03-31 Control system and control method WO2022254953A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-093391 2021-06-03
JP2021093391A JP2022185645A (en) 2021-06-03 2021-06-03 Control system and control method

Publications (1)

Publication Number Publication Date
WO2022254953A1 true WO2022254953A1 (en) 2022-12-08

Family

ID=84323098

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/016753 WO2022254953A1 (en) 2021-06-03 2022-03-31 Control system and control method

Country Status (2)

Country Link
JP (1) JP2022185645A (en)
WO (1) WO2022254953A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005260893A (en) * 2004-03-15 2005-09-22 Omron Corp Information conversion server, network system and information transmission method
JP2020095547A (en) * 2018-12-13 2020-06-18 株式会社日立製作所 Container providing support system and container providing support method
CN112583652A (en) * 2019-09-29 2021-03-30 北京国双科技有限公司 Industrial real-time data filtering method and device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005260893A (en) * 2004-03-15 2005-09-22 Omron Corp Information conversion server, network system and information transmission method
JP2020095547A (en) * 2018-12-13 2020-06-18 株式会社日立製作所 Container providing support system and container providing support method
CN112583652A (en) * 2019-09-29 2021-03-30 北京国双科技有限公司 Industrial real-time data filtering method and device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MORABITO ROBERTO, PETROLO RICCARDO, LOSCRÌ VALERIA, MITTON NATHALIE: "LEGIoT: a Lightweight Edge Gateway for the Internet of Things: a Lightweight Edge Gateway for the Internet of Things", FUTURE GENERATION COMPUTER SYSTEMS, 1 January 2018 (2018-01-01), pages 1614714, XP093009402, Retrieved from the Internet <URL:https://hal.inria.fr/hal-01614714/file/legiot-lightweight-edge.pdf> [retrieved on 20221219], DOI: 10.1016/j.future.2017.10.011ï¿¿ *

Also Published As

Publication number Publication date
JP2022185645A (en) 2022-12-15

Similar Documents

Publication Publication Date Title
Dürkop et al. Using OPC-UA for the autoconfiguration of real-time Ethernet systems
US8095923B2 (en) System and method for deploying and managing intelligent nodes in a distributed network
WO2023140299A1 (en) Verification system, and verification method
US7830798B2 (en) Determining of telegram lengths
CN109302464B (en) APP unified control method and system of intelligent household equipment based on control station
EP3078165B1 (en) Web-based interaction with building automation
US11940778B2 (en) Method of commissioning a field device in an industrial system network
WO2019176335A1 (en) Control system, controller, and control method
US9391797B2 (en) Dynamic host profiles for option modules
WO2022254953A1 (en) Control system and control method
JP2019179476A (en) Support apparatus, support program, and setting method
US11500690B2 (en) Dynamic load balancing in network centric process control systems
JP5185383B2 (en) Control node for a network consisting of multiple control nodes
JP6922814B2 (en) Support device, support program, setting method
JP3988605B2 (en) Setting tool device
JP2019179475A (en) Support apparatus, support program, and setting method
JP4039457B2 (en) IDENTIFICATION INFORMATION AUTOMATIC GENERATION DEVICE, INFORMATION STORAGE SYSTEM, AND INFORMATION STORAGE SYSTEM INFORMATION ACQUISITION METHOD
JP6543231B2 (en) Connection control system for virtual machine and connection control method for virtual machine
CN112655175A (en) Control device, support device, and communication system
JP6570462B2 (en) Communication protocol converter
CN110753075B (en) Method and system for processing abstract and simulation behaviors of remote equipment
CN110602192A (en) Method for expanding network communication capability of storage cluster system
JP6539497B2 (en) Communication relay system, device accommodation terminal, server side computer, program, and communication relay method
JP7153942B2 (en) Information processing device, method, computer program, and recording medium
JP7163657B2 (en) Support device, setting method and setting program

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE