Control system and control method
By introducing protocol container management warehouses and container engines into the control system, dynamic deployment and startup of middleware containers that support different protocols is solved, and the problem of difficulty in supporting multiple communication protocols when PLC protocol types change is achieved, simplified communication environment management and improved system flexibility are achieved.
Patent Information
- Application Number
- JP2021093391
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-06-03
- Publication Date
- 2025-04-22
- Estimated Expiration
- 2041-06-03
AI Technical Summary
Prior art In network communication between PLCs, it is difficult to simply support multiple communication protocols when protocol types change, resulting in the need of information processing devices to recreate applications to adapt to protocol changes.
Support for multiple communication protocols is achieved by introducing protocol container management warehouses and container engines into the control system, and dynamically deploying and starting middleware containers that support different protocols.
When the PLC protocol type changes, only the corresponding protocol container needs to be deployed to support communication, simplifying the management and maintenance of the communication environment and improving the flexibility and adaptability of the system.
Smart Images

Figure 0007666139000001 
Figure 0007666139000002 
Figure 0007666139000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a control system and a control method, and more particularly to a control system and a control method for network communication with a controller of FA (Factory Automation). [Background technology]
[0002] In the field of FA, an information processing device that communicates with a PLC (Programmable Logic Controller) via a network exchanges various information including production information with the PLC. The PLC has communication middleware for network communication according to a protocol set by the supplier of the PLC (vendor, supplier, manufacturer, etc.). When PLCs from different vendors are connected to a network, the communication middleware of each controller (communication middleware compatible with the protocol set by the supplier) will be different from the communication middleware of the other PLCs. Therefore, when multiple PLCs with different communication middleware (communication protocols) are connected to a network, it is desirable for the information processing device to be in an environment that can support the communication middleware (protocol) of each supplier.
[0003] 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, the information conversion server receives and stores a profile (definition of access type, command name, and response name) that defines the protocol of the PLC from a PLC connected to the network. Based on the access type name received from an information processing device, the information conversion server converts the access type name into a command that the PLC can interpret in accordance with the stored profile. In this way, the information conversion server supports multiple protocols. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2005-260893 A Summary of the Invention [Problem to be solved by the invention]
[0005] Since the information conversion server in Patent Document 1 is configured to perform profile communication with a PLC, if the type of protocol that can be set in a network-connected PLC can change, the information conversion server must recreate the application that communicates with the PLC so that it can communicate according to the changed protocol.
[0006] One object of the present disclosure is to provide an environment in which communication with a controller can be performed using a simple mechanism even if there is a change in the type of communication protocol used by the controller. [Means for solving the problem]
[0007] The control system according to the present disclosure is a control system including one or more controllers of a factory automation (FA) and an information processing device which communicates over a network with the one or more controllers, and includes a repository which manages protocol containers, which are containers including middleware for network communication according to each of a plurality of types of protocols, a protocol acquisition unit which acquires, for each of the one or more controllers, the type of protocol used by the controller for network communication, and a container engine which starts the middleware of the protocol container by deploying a protocol container from the repository corresponding to the protocol type for each controller acquired by the protocol acquisition unit.
[0008] According to this disclosure, in a configuration in which a repository manages containers having middleware for each different protocol, a protocol acquisition unit acquires the type of communication protocol of each controller, and a container corresponding to the acquired protocol type of each controller 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 corresponding to the changed protocol type, so it is possible to provide an environment in which communication with the controller can be performed with a simple mechanism.
[0009] In the above disclosure, the repository further manages a gateway container, which is a container including middleware that relays communication data between an application and a protocol container corresponding to each of the deployed protocol types, and the container engine further deploys the gateway container in the repository, thereby starting the middleware of the gateway container.
[0010] According to this disclosure, a gateway container is deployed and started so that data communication between both the application and the deployed protocol container can be relayed by the gateway container.
[0011] 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 from among the deployed protocol containers that correspond to the protocol type of each controller based on the communication data to be relayed.
[0012] According to this disclosure, the gateway container can determine the relay destination of communication data to be a protocol container that corresponds to the protocol type of the controller indicated by the communication data controller identifier.
[0013] In the above disclosure, when the container engine receives communication data to be relayed, it performs deployment on the gateway container.
[0014] According to this disclosure, the timing conditions for deploying and starting a container engine can be determined based on the timing at which the container engine receives communication data to be relayed.
[0015] 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 an information acquisition unit that acquires relationship information indicating the relationship between the identification data that identifies each controller and the communication address of a deployed protocol container that corresponds to the protocol type of the controller, and the middleware of the gateway container determines, as the relay destination, the communication address that corresponds to the identification data in the relationship information that indicates the controller identifier of the communication data.
[0016] According to this disclosure, the gateway container can determine the communication address of the protocol container to which communication data will be relayed from the acquired relationship information.
[0017] In the above disclosure, the communication data includes sequence data indicating a communication sequence, and the middleware of the deployed protocol container converts the sequence data included in the communication data from the gateway container into data indicating a sequence that conforms to the type of protocol corresponding to the protocol container.
[0018] According to this disclosure, the protocol container converts communication sequence data included in the communication data to indicate a sequence that conforms to the protocol. By conforming to such a converted communication sequence, the communication data can be exchanged between an application and a controller that uses the protocol for communication.
[0019] In the above disclosure, the sequence data includes commands for controlling a communication connection and processing commands for causing a controller to perform processing.
[0020] According to this disclosure, the sequence data converted by the protocol container middleware can include commands for controlling the communication connection and processing commands for the controller.
[0021] In the above disclosure, each controller includes a first connector that connects to a network to which the information processing device belongs, a second connector that connects to a network different from the network to which the control object belongs, a storage unit that stores a state value of the control object received via the different network and a control command for the control object, and a calculation unit that performs a control calculation to calculate the control command using the stored state value, and the processing command includes a read command for the stored state value or control command, or a write command for the state value or control command to the storage unit.
[0022] According to this disclosure, an application can use processing commands to communicate with any controller and read or write state values or control commands of a controlled object in the storage unit without knowing what protocol the controller is using to communicate.
[0023] The control method disclosed herein is a method for controlling communication executed in a control system including one or more controllers of a factory automation (FA) and an information processing device that communicates with the one or more controllers over a network, the control system having a repository for managing protocol containers, which are containers including middleware for network communication according to each of a plurality of types of protocols, and the method includes the steps of: acquiring, for each of the one or more controllers, the type of protocol that the controller uses for network communication; and, for the acquired protocol type of each controller, deploying a protocol container from the repository corresponding to the protocol type, thereby starting the middleware of the protocol container.
[0024] According to this disclosure, in a configuration in which a repository manages containers having middleware for each different protocol, the type of communication protocol of each controller is acquired, and a container corresponding to the acquired protocol type of each controller 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 corresponding to the changed protocol type, so that an environment capable of communicating with the controller can be provided with a simple mechanism. Effect of the Invention
[0025] According to the present disclosure, even if there is a change in the type of communication protocol used by a controller, it is possible to provide an environment in which communication with the controller is possible using a simple mechanism. [Brief description of the drawings]
[0026] [Figure 1] FIG. 1 is a diagram illustrating a schematic diagram of an overall configuration of a control system 1 according to the present embodiment. [Diagram 2] 2 is a diagram illustrating a schematic configuration of a server for communicating with a PLC in the control system 1 of FIG. [Diagram 3]It is a block diagram showing a hardware configuration example of the PLC 100 constituting the control system 1 according to the present embodiment. [Figure 4] It is a block diagram showing a hardware configuration example of the server 200 constituting the control system 1 according to the present embodiment. [Diagram 5] It is a block diagram showing a hardware configuration example of the terminal 300 constituting the control system 1 according to the present embodiment. [Figure 6] It is a diagram schematically showing the association of the sequence shown in FIG. 2 with the container setting table 258. [Figure 7] It is a diagram showing an example of a creation scene of the container setting table 258 according to the present embodiment. [Figure 8] It is a diagram showing an example of a usage scene of the container setting table 258 created in FIG. 7. [Figure 9] It is a diagram schematically showing an example of conversion processing by the protocol container according to the present embodiment. [Figure 10] It is a diagram showing a modification example of the deployment of the protocol container according to the present embodiment. [Figure 11] It is a flowchart of the startup sequence according to the present embodiment. [Figure 12] It is a flowchart of the usage sequence according to the present embodiment. [Figure 13] It is a diagram for explaining the advantages obtained by the control system 1 implementing the protocol container according to the present embodiment.
Embodiments for Carrying Out the Invention
[0027] Embodiments of the present invention will be described in detail with reference to the drawings. For the same or corresponding parts in the drawings, the same reference numerals are given and the description thereof will not be repeated.
[0028] <A. Application Example> First, an example of a scene to which the present invention is applied will be described.
[0029] Fig. 1 is a diagram showing a schematic diagram of an overall configuration of a control system 1 according to the present embodiment. Fig. 2 is a diagram showing a schematic diagram of a server configuration for communicating with a PLC (Programmable Logic Controller) in the control system 1 of Fig. 1. Fig. 2 shows a server configuration for communicating with a PLC in the control system 1 that can be applied to an FA. Here, an application example will be mainly described with reference to Fig. 2.
[0030] 2, a control system 1 according to this embodiment includes one or more PLC systems 2-1, 2-2, 2-3 (hereinafter also collectively referred to as "PLC system 2"), a server 200 which is an example of an "information processing device", and a terminal 300 which is responsible for development and maintenance of the control system 1. In the following description, when it is necessary to distinguish between the PLC systems 2-1, 2-2, 2-3, suffixes such as "-1", "-2", "-3" may be added to the related components.
[0031] Each of the PLC systems 2 is also called a line, and may control the entire factory of the FA, or may control specific manufacturing facilities or manufacturing devices installed in the factory. The PLC systems 2-1, 2-2, and 2-3 are mainly composed of PLCs 100-1, 100-2, and 100-3 (hereinafter also collectively referred to as "PLC 100"), which are typical examples of control devices that control objects to be controlled, as their main components.
[0032] The PLC 100 is connected to a field device 10. The field device 10 includes any device necessary to control a controlled object. More specifically, the field device 10 includes a device for exchanging information with a controlled object (e.g., a manufacturing facility, a manufacturing device, a sensor and an actuator included in the manufacturing facility or the manufacturing device, etc.). In the example shown in FIG. 1, the field device 10 includes a relay group 14 and a servo motor 18. The field device 10 may further include any device, such as a servo driver 16 and a remote I / O (Input / Output) 12 shown in FIG. 1.
[0033] The PLC 100 acquires information from the field device 10 and executes control calculations according to a user program created in advance to generate information to be provided to the field device 10. Hereinafter, the information acquired by the PLC 100 from the field device 10 will also be referred to as "input data", and the information provided to the field device 10 will also be referred to as "output data". The input data and output data will also be collectively referred to as "input / output data" or "I / O data". The input data includes a value indicating the state of the field device 10 (e.g., an output value of a sensor), and the output data may include a command value for controlling the field device 10 based on the result of the control calculation.
[0034] In the example shown in FIG. 2, the PLC 100 and the field device 10 are connected via a control network 4, but the present invention is not limited to this and may be connected by hard wires.
[0035] It is preferable to adopt an industrial communication protocol for the control network 4. Known examples of such communication protocols include EtherCAT (registered trademark), EtherNet / IP (registered trademark), DeviceNet (registered trademark), and CompoNet (registered trademark).
[0036] Each of the PLC systems 2 is capable of accessing a cloud-based server 200 present on the Internet 8 via an information network 6 and a relay device 20 such as a gateway or a router.
[0037] Server 200 deploys containers to provide an environment in which the containers can be executed, and also manages the containers. In this specification, "deployment" of a container refers to a process that instructs the execution of a target container, for example, a process that includes installation. Deployment may include installation and startup of a container, or may only involve installation, with startup being performed at a different time. In this embodiment, deployment includes installation and startup of a container.
[0038] The server 200 may be placed on a cloud via the Internet 8, or may be placed in a local network where the PLC system 2 exists without going through the Internet 8. The implementation form of the server 200 can be determined arbitrarily depending on the required performance, functions, and the like.
[0039] The terminal 300 is capable of performing user operations for accessing the server 200 and realizing various processes as described below. In this embodiment, the user operations may be realized by an 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 from the terminal 300 via the Internet 8.
[0040] An overview of the process using containers in the control system 1 will be described with reference to FIG. In this specification, a "container" corresponds to a container image that constitutes a process executed by a "container engine" described below, and a container image refers to a package (a collection of program files or meta information such as middleware and libraries) required to execute a container.
[0041] In this embodiment, the container includes, for example, a "protocol container" and a "gateway container". The "protocol container" includes middleware including a protocol stack that realizes communication according to a protocol. The "protocol container" according to this embodiment includes a "protocol container" for each type of communication protocol of the information network 6 that can be set in the PLC 100 that can configure the control system 1. For example, the 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), but the types of communication protocols that can be set in the PLC 100 are not limited to these. In the following description, a communication protocol may be referred to as a "protocol".
[0042] A "gateway container" includes middleware that relays communications between applications and multiple types of protocol containers.
[0043] The "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.
[0044] The server 200 includes a container repository 250 that stores multiple containers, a container engine 270, a deployment area 280 that configures a storage area such as a random access memory (RAM) in which the containers in the container repository 250 are deployed, an operating system (OS) 212 that has a kernel 291, and physical hardware (H / W) 292 such as various memories and communication circuits. In the server 200, multiple containers share the physical H / W 292 and the OS 212 that the server 200 has as their execution platform. The containers deployed in the deployment area 280 are managed as processes by a container engine 270 that runs on the OS 212. Each container runs in parallel with other containers while utilizing various resources including the physical H / W 292 managed by the container engine 270 via the kernel 291 of the OS 212.
[0045] Based on the information acquired about each PLC 100 connected to the information network 6, the terminal 300 creates, for each PLC 100, a container setting table 258 having protocol designation data 257 indicating the protocol to be set in that PLC 100.
[0046] The container repository 250 stores, as containers, a gateway container 25 and a protocol container group 26 including a protocol container for each type of protocol of the information network 6 that can be set in the PLC 100 that can constitute the control system 1.
[0047] 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 deployment area 280. During deployment, the module of the protocol acquisition unit 260 of the server 200 searches (extracts) a protocol container corresponding to the type of protocol indicated by the protocol designation data 257 of the container setting table 258 received from the terminal 300 from the protocol container group 26, and deploys the retrieved 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. The deployed containers are assigned container IP addresses conforming to the Internet Protocol so that they can communicate with each other.
[0048] According to the procedure described above, each container is deployed in the startup sequence of the server 200. After that, a usage sequence can be executed that uses the deployed container.
[0049] In a usage sequence in an operation scene after startup, when the terminal 300 receives communication data 70 addressed to the PLC 100 from an application, the terminal 300 transfers the communication data 70 to the server 200 via the Internet 8. In Fig. 2, a transfer route 80 of the communication data 70 is indicated by a thick arrow.
[0050] In this embodiment, the communication data 70 includes the IP address of the destination PLC 100 and data of a communication sequence for communicating with the PLC 100. The communication data 70 adopts, for example, a frame structure, but may adopt a packet structure. In Fig. 2, the destination of the frame of the communication data 70 indicates, for example, PLC 100-1.
[0051] 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, searches for the protocol type corresponding to the destination (i.e., PLC100-1) from the container setting table 258 acquired by the protocol acquisition unit 260. The searched protocol type is, for example, OPC-UA. The gateway container 25 transfers the received data to the protocol container 261 corresponding to the searched protocol type.
[0052] 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 PLC100-1. The PLC100-1 receives the transferred communication data 70, processes it, and transmits the data of the response based on the processing. The response data follows the transfer route 80 in the reverse direction and reaches the application.
[0053] The control system 1 in FIG. 2 manages middleware implementing different protocols as the protocol container group 26 in the container repository 250, and searches for and deploys a container corresponding to the protocol type set for each PLC100 that can be the target of access (communication) by the application, that is, each PLC100 connected to the information system network 6, from the protocol container group 26. Thereby, the control system 1 can easily provide an environment in which the application can communicate with the PLC100 (and the field device 10 connected to the PLC100) without additionally implementing a module corresponding to the protocol.
[0054] Hereinafter, as a more specific application example of the present invention, a more detailed configuration and processing of the PLC100 according to the present embodiment will be described.
[0055] <B. Hardware Configuration> Next, an example of the hardware configuration of the device constituting the control system 1 according to the present embodiment will be described.
[0056] (b1:PLC100) Fig. 3 is a block diagram showing an example of a hardware configuration of a PLC 100 constituting a control system 1 according to the present embodiment. Referring to Fig. 4, the PLC 100 includes a processor 102 such as a CPU (Central Processing Unit) or an MPU (Micro-Processing Unit), a chipset 104, a main memory 106, a storage 110, an information system network controller 120 connected to a connector 121 configured as a physical circuit, a control system network controller 122 connected to a connector 123 configured as a physical circuit, a USB (Universal Serial Bus) controller 124, and a memory card interface 126. The connector 121 connects to a network to which a server 200 belongs, and the connector 123 connects to a network to which the PLC 100 belongs but which is different from the network to which the server 200 belongs.
[0057] The processor 102 reads out various programs stored in the storage 110, expands them in the main memory 106, and executes them to realize control calculations for controlling the control target and communication processing for communicating with external devices (the server 200, the terminal 300, and the field device 10). The chipset 104 controls data transmission between the processor 102 and each component.
[0058] The storage 110 stores an OS (Operating System) 112, a system program 114, and a user program 115. The system program 114 includes communication firmware for communicating with external devices including the server 200 via the information network 6, and communication firmware for communicating with external devices including the PLC 100 via the control network 4.
[0059] 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 state values of the field device 10, which is the control target, via the control system network 4 and stores them in the IO refresh area 113, and transmits the control command stored in the IO refresh area 113 to the control target via the control system network 4. The control program 116 includes a control program 116 that uses the state values stored in the IO refresh area 113 to perform control calculations for the control target and calculates the above-mentioned control command, and a communication program 117 for performing communication processing using communication firmware. The user program 115 may include various other processing programs.
[0060] The information network controller 120 controls data exchange with external devices (the terminal 300 and the server 200) via the information network 6 connected to the connector 121.
[0061] The control network controller 122 controls data exchange with the field device 10 via the control network 4 connected to the connector 123 .
[0062] The USB controller 124 controls the transfer of data to and from external devices (eg, support devices) via a USB connection.
[0063] The memory card interface 126 is configured so that a memory card 128 can be freely attached and detached, and it is possible to write data to the memory card 128 and read various data (such as the user program 115 and data) from the memory card 128.
[0064] The PLC 100 may have an optical drive. The optical drive reads a computer-readable program from a recording medium (e.g., an optical recording medium such as a DVD (Digital Versatile Disc)) that non-transiently stores the program, and stores the program in the storage 110 or the like.
[0065] The various programs executed by the PLC 100 may be installed via a computer-readable recording medium or a memory card 128, or may be installed by downloading from a device such as an arbitrary computer on a network.
[0066] FIG. 3 shows an example of a configuration in which the processor 102 executes a program to provide the necessary processing, but some or all of the provided processing may be implemented using a dedicated hardware circuit (e.g., an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA)). Alternatively, the main part of the PLC 100 may be realized using hardware that conforms to a general-purpose architecture (e.g., an industrial PC based on a general-purpose PC). In this case, virtualization technology may be used to run multiple OSs with different uses in parallel, and necessary applications may be executed on each OS.
[0067] (b2: Server 200) Fig. 4 is a block diagram showing an example of a hardware configuration of a server 200 constituting the control system 1 according to the present embodiment. Referring to Fig. 4, the server 200 includes one or more processors 202 such as a CPU or an MPU, a main memory 206, a storage 210, one or more network controllers 220, an input unit 226, and a display unit 228. These components are connected via a bus 208.
[0068] The processor 202 reads out various programs stored in the storage 210, deploys them in the main memory 206, and executes them to realize various processes as described below. A part of the main memory 206 constitutes a deployment area 280.
[0069] The storage 210 is configured, for example, by a hard disk drive (HDD) or a flash solid state drive (SSD). The storage 210 typically stores an OS 212 for implementing basic processing, and a container application 214 including programs and data for implementing various processing provided by the server 200 as described below. 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.
[0070] The network controller 220 controls data exchange with various devices via the network.
[0071] The input unit 226 is made up of a keyboard, a mouse, etc., and receives instructions from a user. The display unit 228 is made up of a display, etc., and outputs the processing results from the processor 202, etc.
[0072] The server 200 may include an optical drive 203. The optical drive 203 reads a computer-readable program from a recording medium 204 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that non-transiently stores the program, and stores the program in the storage 210 or the like.
[0073] The various programs executed by the server 200 may be installed via a computer-readable recording medium 204 or a memory card, or may be installed by downloading from any device such as a computer on the network.
[0074] FIG. 4 shows an example of a configuration in which the necessary processing is provided by the processor 202 executing a program, but some or all of the provided processing may be implemented using a dedicated hardware circuit (e.g., an ASIC or an FPGA).
[0075] (b3: Terminal 300) Fig. 5 is a block diagram showing an example of a hardware configuration of a terminal 300 constituting the control system 1 according to the present embodiment. Referring to Fig. 5, the terminal 300 includes a processor 302 such as a CPU or an 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 unit 328. These components are connected via a bus 308.
[0076] The processor 302 reads out various programs stored in the storage 310, loads them into the main memory 306, and executes them to realize the processes required by the terminal 300.
[0077] The storage 310 is configured with, for example, an HDD or SSD. The storage 310 stores an OS 312, an application 311, a development program 314 for instructing processes as described below, configuration information 256 indicating the configuration of a network 400, and a container setting table 258 including protocol specification data 257. The application 311 includes a table setting program 315 including a UI program 316 that provides a UI (User Interface) tool, and a configuration program 317.
[0078] When the configuration program 317 is executed, it scans the configuration of the network 400 and collects information on communication from each PLC 100. For example, the configuration program 317 receives and collects information from each PLC 100 about communication firmware including the type of protocol set in that PLC 100 for communicating with external devices including the server 200 via the information network 6.
[0079] When executed, the table setting program 315 accepts information from the user via a UI tool provided by the UI program 316 and creates the container setting table 258 using the accepted information.
[0080] Note that the storage 310 may store necessary programs other than the programs shown in FIG.
[0081] The network controller 320 controls data exchange with devices such as the PLCs 100 and the server 200 via the information network 6 .
[0082] The USB controller 324 controls data transfer to and from external devices via a USB connection.
[0083] The input unit 326 is configured with a mouse, a keyboard, a touch panel, etc., and receives instructions from a user. The display unit 228 is configured with a display, various indicators, etc., and outputs the processing results from the processor 302, etc.
[0084] The terminal 300 may have an optical drive 304. The optical drive 304 reads a computer-readable program from a recording medium 305 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that non-transiently stores the program, and stores the program in the storage 310 or the like.
[0085] The various programs executed on the terminal 300 may be installed via a computer-readable recording medium 305, or may be installed by downloading from an arbitrary server on the network.
[0086] FIG. 5 shows a configuration example in which the processor 302 provides the necessary processing by executing a program. However, some or all of these provided processes may be implemented using a dedicated hardware circuit (for example, an ASIC or an FPGA).
[0087] <C. Overview of the Sequence> FIG. 6 is a diagram schematically showing the sequence shown in FIG. 2 in association with the container setting table 258. Referring to FIG. 6, in the process of the configuration (step T1) performed by the terminal 300, the application 311 creates the container setting table 258 based on a user operation received via a UI tool, for example (step T2). The container setting table 258 associates, for each PLC 100 connected to the information network 6, a device name 2A representing the model name assigned by the vendor of the PLC 100, a device IP address 2B conforming to IP (Internet Protocol), a container image name 2C identifying a container corresponding to the protocol of the PLC 100, and an IP address 2D of the container. The container image name 2C indicates the name of the protocol. The container setting table 258 includes the container image name 2C as protocol specification data 257.
[0088] 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 constituting the control system 1 (step T3). According to the container setting table 258 in FIG. 6, OPC-UA, EIP, and HTTPS are acquired as the types of protocols.
[0089] The container engine 270 deploys the protocol containers 261, 262, and 263 corresponding to the acquired protocol types from among the protocol container group 26 of the container repository 250 (step T4).
[0090] Based on a user operation, the application 311 of the terminal 300 communicates communication data 70 addressed to the PLC 100-1 to the server 200 (step R1). Based on the destination (device IP address) indicated by the communication data 70 transferred from the application 311, the gateway container 25 transmits the communication data 70 to the container IP address 2D corresponding to the device IP address 2B that matches the destination from the container setting table 258. As a result, the gateway container 25 distributes the communication data 70 to a protocol container corresponding to the type of protocol set in the PLC 100-1, which is the destination of the communication data 70, from among the multiple deployed protocol containers 261, 262, and 263 (step R2). By this distribution, for example, the communication data 70 is transmitted to the OPC-UA protocol container 261.
[0091] 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 executes the converted communication data 70 to communicate with the destination (device IP address) of the communication data 70 (step R4). The conversion process in step R4 will be described in detail later. This allows the PLC 100-1 to respond to the communication data 70 according to the PLC 100-1 protocol.
[0092] Here, communication of the communication data 70 addressed to the PLC 100-1 has been described, but the communication data 70 addressed to the PLC 100-2 conforming to EIP or the PLC 100-3 conforming to HTTPS can be processed in the same manner.
[0093] Although the container setting table 258 has the device IP address 2B, a URL (Uniform Resource Locator) may be used instead of the device IP address 2B.
[0094] In this way, the communication data 70 includes a controller identifier (e.g., 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 embodiment of an information acquisition unit, the application 311 acquires a container setting table 258, which is an embodiment of relationship information indicating the relationship between the identification data (device name 2A, device IP address 2B, etc.) that identifies each PLC 100 and the communication address (container IP address 2D) of the deployed protocol container that corresponds to the protocol type of the PLC 100. The middleware of the gateway container 25 determines, as the relay destination of the communication data 70, the communication address (container IP address 2D) that corresponds to the identification data (device name 2A) that indicates the controller identifier (e.g., device name) of the communication data 70 in the relationship information.
[0095] (c1. Container setting table creation scene) 7 is a diagram showing an example of a scene in which the container setting table 258 according to the present embodiment is created. The user creates the container setting table 258 by operating a UI tool provided by the UI program 316 of the terminal 300. For example, the application 311 displays a monitor screen (the screen at the lower left in FIG. 7) on the display unit 328 of the terminal 300. From the monitor screen, the user can monitor the status values collected by each PLC 100 from the field devices 10 by a pair of the variable name to which the status value is set and the status value.
[0096] The user operates the button 330 to instruct the start of monitoring of the monitor screen. The table setting program 315 executes a setting screen launch (step Q2) in response to the operation of the button 330. More specifically, the table setting program 315 calls the UI program 316, which is executed to execute a setting process (step Q3) of the container setting table 258 using the configuration T1. The display unit 328 displays the container setting table 258 having the setting contents according to the user operation.
[0097] Here, the container setting table 258 is created according to a user 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. The configuration information 256 includes information (device name 2A, device IP address 2B, and set protocol (container image name) 2C) received from the PLC 100 connected to the information network 6 and indicating the configuration of the PLC 100.
[0098] The user operates the conversion button 329. The table setting program 315 converts the container setting table 258 into a file format in response to the operation of the button 329. The server 200 or the terminal 300 can handle the container setting table 258 in the file format.
[0099] The device IP address 2B and the container IP address 2D may be obtained from the device name 2A by searching 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 indicate the IP address of a deployed protocol container.
[0100] (c2. Usage scenario) Fig. 8 is a diagram showing an example of a usage scene of the container setting table 258 created in Fig. 7. As an example of the usage scene, a case will be described in which a user monitors the status value of the field device 10 of the PLC 100-2. With reference to Fig. 8, when the user designates the variable name "Variable B" of the device name "NX1B" indicated by the arrow B2 on the monitor screen of the display unit 328 and operates the monitor start button B1, the application 311 transmits communication data 70 including the device name 2A, a variable read command CM, and a variable name N indicating "Variable B" to the server 200 (step Q7).
[0101] 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 (steps Q8 and Q9).
[0102] The gateway container 25 replaces the device name 2A of the communication data 70 with the searched device IP address 2B, and transfers the replaced communication data 70 to the protocol container with the searched container IP address 2D as the destination (step Q10). In Fig. 8, the communication data 70 is transferred to the protocol container 262 of the EIP.
[0103] The protocol container 262 converts the communication sequence of the communication data 70 in accordance with the EIP (step Q11), and transmits the processed communication data 70 to the information network 6, with the device IP address 2B included in the communication data 70 as the destination (step Q11).
[0104] Of the PLCs 100 connected to the information network 6, the communication program 117 of the PLC 100-2 specified 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 acquires, as a variable value V, the status value specified by the variable name N of "Variable B" from among the status values output by the field device 10 in accordance with the execution result.
[0105] The variable value V acquired by the PLC 100-2 is transferred to the application 311, which is the source of the communication data 70, via the protocol container 262 and the gateway container 25 (steps Q12, Q13, and Q14). Using the variable value V received from the PLC 100-2, the application 311 updates the value indicated by the arrow B2 on the monitor screen of the display unit 328 so that it indicates the variable value V (step Q15).
[0106] (c3. Protocol container conversion process) 9 is a diagram showing an example of a conversion process by a protocol container according to the present embodiment. In the present embodiment, the protocol container converts the communication sequence of the communication data 70 transferred from the gateway container 25 by middleware in accordance with the protocol, and executes the converted communication sequence, thereby enabling communication with the PLC 100 in which the protocol is set in accordance with the communication data 70. The communication sequence includes data of a sequence consisting of one or more commands for communicating with the PLC 100.
[0107] For example, the communication sequence includes a command to establish a communication connection, one or more commands for processing to be executed by PLC 100 after the communication connection is established, and a command to terminate (disconnect) the established communication connection after the processing command is executed.
[0108] 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 for cutting off the communication connection (not shown). First, the protocol container converts the communication connection establishment command CM1 indicated in the communication sequence of the communication data 70 transferred from the gateway container 25 into a command specified by the protocol (step Q20), and also converts the variable read command CM into a command specified by the protocol (step Q21).
[0109] 8, the EIP protocol container 262 converts the command CM1 in the communication data 70 into an "EstablishClass3Connection()" command conforming to the EIP (step Q20), and converts the read command CM for the variable Variable into an "ConnectionObjectGetInstanceTypeForAttribute(variable)" conforming to the 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.
[0110] After being converted in this manner, the communication sequence consisting of the converted commands is executed by the container protocol middleware and the communication middleware of PLC 100, and via the kernel 291 and physical H / W 292, the server 200 (more specifically, the protocol container) establishes a communication connection with the corresponding PLC 100, which executes processing based on the converted variable read command, and then a command is executed to cut off the communication connection between the container protocol middleware and the communication middleware of PLC 100.
[0111] Here, a command for reading data from a variable has been shown as a processing command for the communication sequence, but other commands, such as a command for writing data to a variable, can also be included.
[0112] As described above, the sequence data indicating the communication sequence includes communication connection control commands (a command to establish a communication connection and a command to cut off the communication connection) and processing commands that cause the PLC 100 to execute processing between the establishment and cut-off of the communication connection. In this embodiment, the processing commands can include a command to read a state value or a control command stored in the IO refresh area 113, or a command to write data (a state value or a control command) to the IO refresh area 113.
[0113] (c4. Modification) Fig. 10 is a diagram showing a modified example of the deployment of a protocol container according to the present embodiment. For example, the PLC 100 may be provided with a container-based communication middleware. In this case, referring to Fig. 10, the communication middleware of the protocol container of the server 200 may dynamically load (deploy) a gateway container corresponding to a protocol set in the PLC and protocol containers corresponding to various protocols from the container repository 250 to each PLC 100.
[0114] <D.フローチャート> Fig. 11 is a flowchart of a start-up sequence according to the present embodiment. Referring to Fig. 11, the application 311 of the terminal 300 creates the container setting table 258 (step S1) as shown in step T1 of Fig. 6. Note that the container setting table 258 may be created in an environment different from that of the application 311.
[0115] The server 200 deploys the gateway container 25 and a protocol container corresponding to the container image name 2C in the container setting table 258 (step S3) in accordance with an instruction from the application 311, as shown in step T4 of Fig. 6. The server 200 also deploys the protocol container corresponding to the container image name 2C in the container setting table 258 in accordance with an instruction from the application 311, as shown in step T4 of Fig. 6 (step S5).
[0116] Fig. 12 is a flowchart of a usage sequence according to the present embodiment. Referring to Fig. 12, in order to issue a communication sequence to the PLC 100 designated by the user, the application 311 transmits communication data 70 including the communication sequence to the gateway container 25 (step S7), as shown in step R1 of Fig. 6.
[0117] 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). 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 into the device IP address 2B by using a DNS (Domain Name System).
[0118] The gateway container 25 judges whether or not the device IP address 2B has been found from the container setting table 258 based on the search result of step S9 (step S11). If the device IP address 2B has not been found (NO in step S11), communication error processing is performed, but if the device IP address 2B has been found (YES in step S11), the gateway container 25 judges whether the searched container IP address 2D is communicable (step S13). More specifically, the gateway container 25 executes a predetermined state check command, and judges the state of the container of the container IP address 2D based on the execution result. If the state is judged to be not communicable (NO in step S13), communication error processing is performed, but if the state is judged to be communicable (YES in step S13), the process proceeds to step S15.
[0119] 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 with the container IP address 2D (step S15).
[0120] The protocol container for the container IP address 2D receives communication data 70 from the gateway container 25 as shown in steps R3 and R4 of FIG. 6, and communicates with the PLC 100 according to the received communication data 70 (step S17). More specifically, the protocol container converts the commands in the communication sequence of the received communication data 70 into commands according to the protocol of the protocol container, and communicates with the PLC 100 specified by the device IP address 2B by executing the communication sequence composed of the converted commands.
[0121] In the above embodiment, the gateway container 25 may be deployed at a timing different from that of the protocol container. For example, the container engine 270 may be configured to perform deployment for the gateway container 25 when receiving the communication data 70 to be relayed.
[0122] <E. Advantages> FIG. 13 is a diagram for explaining the advantages obtained by the control system 1 implementing the protocol container according to the present embodiment. As shown in FIG. 13, generally, in order for an application to communicate with a device, the application calls middleware (communication middleware) for each protocol associated with the application, and communicates with a device such as the PLC 100 via the called middleware. That is, the coupling between the application and the middleware is tightly coupled. Therefore, in order for the application to switch and operate multiple middleware, it is necessary to create the application so that multiple middleware can be called in advance. Also, in order for the application to support a new protocol, it is necessary to recreate the application so that the new middleware can be called.
[0123] In contrast, in the present embodiment, the container repository 250 stores containers having middleware for each different protocol, and the container engine 270 deploys a container corresponding to the protocol set for each PLC 100 connected to the information network 6 of the control system 1, that is, each PLC 100 that can be a communication partner of the application 311. As a result, the coupling between the application 311 and the middleware becomes loose coupling.
[0124] Therefore, even if the protocol set for the PLC 100 that is the communication partner is changed or added, the container engine 270 only needs to deploy a container corresponding to this changed or added protocol, and there is no need to recreate the application 311 due to the change or addition of the protocol, and the application 311 is not affected by the change and addition. In this way, in the control system 1, the container engine 270 can provide an environment in which middleware corresponding to the protocol for the application 311 to communicate with the PLC 100 or the field device 10 that is a local device is dynamically supported.
[0125] <F. Supplementary 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 network-communicates with the one or more controllers, a repository (250) that manages protocol containers (26) which are containers including middleware for the network communication according to the protocol for each of a plurality of types of protocols, for each of the one or more controllers, a protocol acquisition unit (260) that acquires the type of protocol used by the controller for the network communication, a container engine (270) that deploys a protocol container from the repository corresponding to the protocol type of each controller acquired by the protocol acquisition unit, thereby starting middleware of the protocol container. [Configuration 2] The repository further comprises: Manage a gateway container (25) which is a container including middleware that relays communication data (70) between an application (311) and each of the deployed protocol containers corresponding to the protocol types; The control system of configuration 1, wherein the container engine further deploys the gateway container in the repository to launch middleware in the gateway container. [Configuration 3] the communication data includes a controller identifier (2A) for identifying the controller that is the destination of the communication data; The control system of configuration 2, wherein the middleware of the gateway container determines a relay destination of the communication data from among the deployed protocol containers corresponding to the protocol type of each controller, based on the communication data to be relayed. [Configuration 4] The control system of configuration 3, wherein the container engine performs the deployment on the gateway container when the container engine receives 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 for identifying each of the controllers 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, as the relay destination, the communication address in the relationship information that corresponds to the identification data indicating the controller identifier of the communication data. [Configuration 6] the communication data includes sequence data indicating a communication sequence, A control system described in any one of configurations 2 to 5, wherein the middleware of the deployed protocol container converts the sequence data included in the communication data from the gateway container into data indicating a sequence that conforms to the type of protocol corresponding to the protocol container. [Configuration 7] 7. The control system according to configuration 6, wherein the sequence data includes a command (CM1) for controlling a communication connection and a processing command (CM) for causing the controller to execute processing. [Configuration 8] Each of the controllers is a first connector (121) for connecting to a network to which the information processing device belongs; a second connector (123) for connecting a network to which a control target belongs, the second connector being different from the network; a storage unit (113) for storing state values of the control object received via the different networks and control commands for the control object; a calculation unit (116, 102) that executes a control calculation to calculate the control command using the stored state value, The control system of configuration 7, wherein the processing command includes a read command for the stored state value or control instruction, or a write command for the state value or control instruction to the storage unit. [Configuration 9] A method for controlling communication executed in a control system (1) including one or more controllers (100) of a factory automation (FA) and an information processing device (200) that communicates with the one or more controllers via a network, comprising: The control system includes: a repository (250) for managing a protocol container (26) which is a container including middleware for the network communication according to each of a plurality of types of protocols; The method comprises: obtaining, for each of the one or more controllers, a type of protocol that the controller uses for the network communication; and for each of the acquired protocol types of the controllers, deploying a protocol container from the repository corresponding to the protocol type, thereby starting up the middleware of the protocol container.
[0126] The embodiments disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present invention is defined by the claims, not the above description, and is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]
[0127] 1 Control system, 2A Device name, 2B Device IP address, 2C Container image name, 2D Container address, 4 Control network, 6 Information 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 Chip set, 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 section, 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 command.
Claims
1. A control system including one or more controllers of a factory automation (FA) system and an information processing device that communicates with the one or more controllers via a network, a repository for managing a protocol container, which is a container including middleware for the network communication according to each of a plurality of types of protocols; a protocol acquisition unit for acquiring, for each of the one or more controllers, a type of protocol used by the controller for the network communication; a container engine that deploys a protocol container from the repository corresponding to the protocol type of each controller acquired by the protocol acquisition unit, thereby starting middleware of the protocol container.
2. The repository further comprises: Manage a gateway container, which is a container including middleware that relays communication data between an application and a protocol container corresponding to each of the deployed protocol types; The control system of claim 1 , wherein the container engine further deploys the gateway container in the repository to launch middleware of the gateway container.
3. the communication data includes a controller identifier that identifies the controller that is a destination of the communication data; 3. The control system according to claim 2, wherein the middleware of the gateway container determines a relay destination of the communication data from among the deployed protocol containers corresponding to a protocol type of each of the controllers, based on the communication data to be relayed.
4. The control system according to claim 3 , wherein the container engine performs the deployment on the gateway container when the container engine receives the communication data to be relayed.
5. The control system further comprises: an information acquisition unit that acquires relationship information indicating a relationship between identification data for identifying each of the controllers 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 the gateway container determines, as the relay destination, the communication address corresponding to the identification data indicating the controller identifier of the communication data in the relationship information.
6. the communication data includes sequence data indicating a communication sequence, A control system according to any one of claims 2 to 5, wherein middleware of the deployed protocol container converts the sequence data included in the communication data from the gateway container into data indicating a sequence conforming to the type of the protocol corresponding to the protocol container.
7. The control system according to claim 6 , wherein the sequence data includes a command for controlling a communication connection and a processing command for causing the controller to perform a process.
8. Each of the controllers is A first connector that is connected to a network to which the information processing device belongs; A second connector that connects a network to which a control target belongs, the second connector being a network different from the network; a storage unit for storing a state value of the control object received via the different networks and a control command for the control object; a calculation unit that executes a control calculation to calculate the control command by using the stored state value, The control system according to claim 7 , wherein the processing command includes a command to read the stored state value or control command, or a command to write the state value or control command to the storage unit.
9. A method for controlling communication executed in a control system including one or more controllers of a factory automation (FA) system and an information processing device that communicates with the one or more controllers via a network, comprising: The control system includes: a repository for managing a protocol container, which is a container including middleware for the network communication according to each of a plurality of types of protocols; The method comprises: obtaining, for each of the one or more controllers, a type of protocol that the controller uses for the network communication; and for each of the acquired protocol types of the controllers, deploying a protocol container from the repository corresponding to the protocol type, thereby starting up the middleware of the protocol container.
Citation Information
Patent Citations
Industrial real-time data filtering method and device
CN112583652A
Information conversion server, network system and information transmission method
JP2005260893A
Container providing support system and container providing support method
JP2020095547A