WO2020012897A1 - 制御システム、検索装置および検索プログラム - Google Patents

制御システム、検索装置および検索プログラム Download PDF

Info

Publication number
WO2020012897A1
WO2020012897A1 PCT/JP2019/024239 JP2019024239W WO2020012897A1 WO 2020012897 A1 WO2020012897 A1 WO 2020012897A1 JP 2019024239 W JP2019024239 W JP 2019024239W WO 2020012897 A1 WO2020012897 A1 WO 2020012897A1
Authority
WO
WIPO (PCT)
Prior art keywords
search
control system
data
search query
packet
Prior art date
Application number
PCT/JP2019/024239
Other languages
English (en)
French (fr)
Inventor
雄大 永田
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2020012897A1 publication Critical patent/WO2020012897A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Definitions

  • the present invention relates to a control system, a search device, and a search program that can collect any information of any device in the system.
  • control device such as a PLC (programmable logic controller) to control a controlled object such as equipment or a machine.
  • PLC programmable logic controller
  • Patent Document 1 discloses a distributed CIM system.
  • the distributed CIM system disclosed in Patent Literature 1 performs protocol conversion of all layers between a lower network and an upper network, as well as information handled by an application server, a file server, and a man-machine interface terminal and various control devices of the lower network.
  • the application gateway performs protocol conversion and data conversion. Such data conversion needs to be performed in accordance with the type of processing executed by the application server or the like, and versatility cannot be improved.
  • One object of the present invention is to provide a configuration that can collect any information of any device in a control system by a general-purpose interface.
  • a control system including at least one device.
  • the control system refers to the database in response to a data search query from outside and a database holding configuration information including connection relationships of devices of the control system and information indicating characteristics of each device, and a data search query from the outside.
  • Generating a request packet from the data search query transmitting the request packet to the target device, receiving a response packet from the target device, and searching for a search result included in the response packet received by the communication processing unit.
  • a data shaping unit for shaping into a format corresponding to the data search query.
  • a request packet for a target device in the control system is generated.
  • Data included in the response packet transmitted in response to the request packet is shaped into a format corresponding to the data search query, and transmitted to the request source of the data search query. This makes it possible to collect any information of any device in the control system using a general-purpose interface.
  • the communication processing unit may generate a request packet in order to reach the connection position of the target device with reference to the configuration information.
  • the request packet can reliably reach the target device regardless of which device is targeted.
  • the communication processing unit may specify the path to the target device with reference to the configuration information, and may generate a packet corresponding to the protocol corresponding to the specified path.
  • the request packet is generated after the route to the target device is specified, so that the request packet can reliably reach the target device.
  • the communication processing unit may generate a request packet by encapsulating a packet generated according to a route to a target device.
  • the request packet can reliably reach the target device.
  • the communication processing unit may include, in the request packet, a command for collecting data specified by the data search query from the target device with reference to the device profile.
  • data specified by a data search query can be collected by referring to a device profile, regardless of the format of the target device.
  • the communication processing unit may generate a command including an instruction corresponding to a search condition specified in the data search query.
  • the database further holds information indicating the status value of each device included in the control system, and the communication processing unit refers to the information indicating the status value of each device, and in the data search query, A device that matches the specified search condition may be specified.
  • the data search query may be described in a format compliant with the SQL language or REST.
  • versatility can be improved by describing the data search query in a general-purpose format.
  • a search device connected to a control system including at least one device.
  • the search device refers to the database in response to a data search query from outside and a database holding configuration information including the connection relation of the devices of the control system and a device profile including information indicating characteristics of each device.
  • Generating a request packet from the data search query transmitting the request packet to the target device, receiving a response packet from the target device, and searching for a search result included in the response packet received by the communication processing unit.
  • a data shaping unit for shaping into a format corresponding to the data search query.
  • a search program executed by a computer connected to a control system including at least one device.
  • the search program stores, in a database, configuration information including a connection relationship of devices of the control system, and a device profile including information indicating characteristics of each device in a database, and in response to an external data search query, Generating a request packet from the data search query by referring to the database, transmitting the request packet to the target device, receiving a response packet from the target device, and transmitting a search result included in the received response packet to the data. And shaping into a format corresponding to the search query.
  • any information of any device in the control system can be collected by the general-purpose interface.
  • FIG. 2 is a schematic diagram illustrating a functional configuration example of a control system according to the present embodiment.
  • FIG. 4 is a schematic diagram for explaining a search function provided by the control system according to the present embodiment.
  • FIG. 4 is a diagram illustrating an example of a data search query processed by the control system according to the present embodiment.
  • FIG. 2 is a block diagram illustrating an example of a hardware configuration of a search device according to the present embodiment.
  • FIG. 2 is a block diagram illustrating an example of a functional configuration of a search device according to the present embodiment.
  • FIG. 2 is a schematic diagram illustrating an example of a network topology defined by configuration information of a search device according to the present embodiment.
  • FIG. 9 is a diagram for describing a first example of search processing in the control system according to the present embodiment.
  • FIG. 9 is a diagram for describing a first example of search processing in the control system according to the present embodiment.
  • FIG. 11 is a diagram for describing a second example of the search processing in the control system according to the present embodiment.
  • FIG. 11 is a diagram for describing a second example of the search processing in the control system according to the present embodiment.
  • FIG. 11 is a diagram for describing a third example of the search processing in the control system according to the present embodiment.
  • FIG. 14 is a diagram for describing a search processing example 4 in the control system according to the present embodiment.
  • FIG. 14 is a diagram for describing a search process example 5 in the control system according to the present embodiment.
  • FIG. 6 is a flowchart illustrating a processing procedure of a search process in the control system according to the present embodiment.
  • FIG. 3 is a diagram for describing an example of a Web application provided using the control system according to the present embodiment.
  • FIG. 3 is a diagram for describing an example of a Web application provided using the control system according to the present embodiment.
  • FIG. 10 is a schematic diagram showing another example of implementation for providing a Web application using the control system according to the present embodiment.
  • FIG. 1 is a schematic diagram illustrating a functional configuration example of a control system 1 according to the present embodiment.
  • the control system 1 includes at least one device 300. It means a device of a unit that can constitute a control system. “Device” means a unit of a device that can respond to a request packet as described below.
  • the "device” includes a unit that can be connected to a controller such as an IO unit, a sensor unit, and a special unit, and also includes a PLC (programmable logic controller) and a coupler unit that relays network communication.
  • a controller such as an IO unit, a sensor unit, and a special unit
  • PLC programmable logic controller
  • the control system 1 includes a configuration database 1041 including configuration information 1041 including a connection relationship of devices of the control system 1, and a profile database 104 holding a device profile 1042 including information indicating characteristics of each device.
  • the control system 1 further includes a communication processing unit 108 that acquires specified data from the target device and responds to the data search query 600 from outside. More specifically, in response to an external data search query 600, the communication processing unit 108 refers to the profile database 104, generates a request packet 400 from the data search query 600, and transmits the request packet 400 to the target device. At the same time, a response packet 450 from the target device is received.
  • the control system 1 further includes a data shaping unit 110 that shapes a search result included in the response packet 450 received by the communication processing unit 108 into a format corresponding to the data search query.
  • the data shaping unit 110 returns a matching search result 650 to the data search query 600 described in the SQL language.
  • any information of any device in the control system can be collected by the general-purpose interface.
  • FIG. 2 is a schematic diagram for explaining a search function provided by the control system 1 according to the present embodiment.
  • control system 1 includes a search device 100 and a search target 2 that can be searched by search device 100.
  • the search target 2 typically includes a PLC 200 (programmable logic controller), which is a typical example of a control device that controls the control target, and one or more devices 300 connected to the PLC 200.
  • the device 300 refers to a device that operates under the management of the PLC 200, and is typically a device that exchanges signals with a control target. Examples of the device 300 include an IO unit that acquires an input signal from a control target or outputs an output signal to the control target, a driver that controls a motor and the like, a robot controller that controls a robot, and the like. Note that the PLC 200 itself may be included in the concept of “device”.
  • Each of the devices 300 stores a work area 302 that temporarily holds data, a profile 304 that defines various settings of each device 300, and data acquired from a connected sensor and / or the like. And a data source 306 that stores data generated at 300.
  • the search device 100 collects arbitrary data from any of the PLC 200 and the device 300 included in the search target 2 according to the data search query, and outputs the data as a search result. Since the search device 100 can respond to any information of any device of the search target 2, it is possible to make the entire search target 2 look like one database to the outside.
  • the search device 100 can not only collect data in response to a data search query but also collect necessary profiles from the PLC 200 and the device 300 so that a search according to the data search query can be executed.
  • the search device 100 includes, as main functional components, an interface 102, a profile database 104, a query processing unit 106, a communication processing unit 108, and a data shaping unit 110.
  • the interface 102 exchanges data with a query request source. Specifically, when receiving the data search query from the query request source, the interface 102 outputs the received data search query to the query processing unit 106. Further, upon receiving the search result from the data shaping unit 110, the interface 102 transmits the received search result to the query request source.
  • the query processing unit 106 analyzes the data search query provided from the interface 102, and generates a request that can be processed by the device constituting the search target 2 as a job.
  • the profile database 104 stores the profiles of the devices included in the search target 2, and is referred to when the communication processing unit 108 processes the job generated by the query processing unit 106.
  • the communication processing unit 108 In response to an external data search query, the communication processing unit 108 generates a request packet from the data search query by referring to the profile database 104 and transmits the request packet to the target device, and a response packet from the target device. To receive. More specifically, the communication processing unit 108 processes the job generated by the query processing unit 106, sends out a request packet that can be processed in the search target 2, and responds in response to the request packet. Receive the packet. The received response packet is output to data shaping section 110. The response packet includes a search result corresponding to a condition or instruction defined in the data search query.
  • the data shaping unit 110 shapes the search result included in the response packet received by the communication processing unit 108 into a format corresponding to the data search query, and transmits the result to the query request source as the search result.
  • arbitrary data can be collected from the search target 2 using a data search query, which is such a general search method.
  • FIG. 3 is a diagram illustrating an example of a data search query processed by the control system 1 according to the present embodiment.
  • FIG. 3 shows, as an example, an example of a data search query corresponding to a process of extracting a slave connected to an EtherCAT (registered trademark) network that has a cumulative operation time exceeding 10,000 hours.
  • EtherCAT registered trademark
  • FIG. 3A shows an example of a data search query described in the SQL language.
  • conditions by a from clause and a where clause are added to a Select statement.
  • FIG. 3B shows an example of a data search query described in a format compliant with REST (Representational State Transfer) used for providing a Web service or the like.
  • REST Real-Representational State Transfer
  • necessary conditions are described by escape characters “?” And “&” in addition to a character string indicating a URL.
  • FIG. 3C shows an example of a data search query described in a natural language.
  • a search target and a search condition are defined by the same expression as a word spoken by a human.
  • the present invention is not limited to the data search query as shown in FIG. 3, and any type of data search query can be used. Further, when a new format that defines a data search query has become widespread, any new format can be adopted.
  • Example of hardware configuration of search device 100> Next, an example of a hardware configuration of the search device 100 configuring the control system 1 according to the present embodiment will be described.
  • the search device 100 may be configured as a PLC 200 included in the search target 2 or an independent device connected to a network, or may be configured as a part of the PLC 200 (that is, integrated with the PLC 200).
  • search device 100 When the search device 100 is configured as an independent device, a hardware configuration similar to that of the PLC may be employed, or a general-purpose computer may be employed. When a general-purpose computer is employed, the computer is implemented by executing a search program by a processor of the computer.
  • FIG. 4 is a block diagram showing an example of a hardware configuration of the search device 100 according to the present embodiment.
  • search device 100 includes processor 152, main memory 154, storage 156, upper network controller 158, input unit 160, display unit 162, lower network controller 164, memory card interface 166. These components are connected via a processor bus 170.
  • the processor 152 corresponds to an arithmetic processing unit that executes various processes as described below, and includes a CPU, a GPU, and the like. Specifically, the processor 152 reads out a program stored in the storage 156, expands the program in the main memory 154, and executes the program, thereby executing various processes for realizing the accumulated operating time monitoring function.
  • the main memory 154 is configured by a volatile storage device such as a DRAM (Dynamic Random Access Memory) and an SRAM (Static Random Access Memory).
  • the storage 156 is composed of, for example, a nonvolatile storage device such as an HDD (Hard Disk Drive) and an SSD (Solid State Drive).
  • the storage 156 stores a search program 1560 for realizing the search processing according to the present embodiment, and a system program 1562 including an OS (Operating System).
  • the storage 156 may further store the profile database 104.
  • the input unit 160 includes a touch panel, a mouse, a keyboard, and the like, and receives a user operation.
  • the display unit 162 includes a liquid crystal display or the like, and displays an image or the like according to a processing result of the processor 152.
  • the input unit 160 and the display unit 162 may be configured integrally.
  • the upper network controller 158 receives a data search query or the like from any information processing device connected to the network.
  • the lower network controller 164 exchanges data with the PLC 200 or the like included in the search target 2.
  • the memory card interface 166 accepts a memory card 168, which is an example of a removable recording medium.
  • the memory card interface 166 is capable of writing data to the memory card 168 and reading various data from the memory card 168.
  • FIG. 4 illustrates a configuration example in which the processor 152 executes the search program 1560 to provide necessary functions.
  • some or all of the provided functions may be replaced by dedicated hardware circuits (for example, , ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • Example of functional configuration of search device 100> Next, an example of a functional configuration of the search device 100 included in the control system 1 according to the present embodiment will be described.
  • FIG. 5 is a block diagram showing an example of a functional configuration of the search device 100 according to the present embodiment.
  • search device 100 includes an interface 102, a profile database 104, a query processing unit 106, a communication processing unit 108, and a data shaping unit 110 as main functional components.
  • the interface 102 exchanges data with a query request source, and includes a query input unit 1021 and a result output unit 1022.
  • the query input unit 1021 receives a data search query from an external query supplier.
  • the query input unit 1021 may be implemented using, for example, a Web server (httpd process).
  • the result output unit 1022 returns the data formed by the data forming unit 110 to the query request source.
  • the result output unit 1022 may also be implemented using, for example, a Web server (httpd process).
  • the data search query may be described in the SQL language as described above, or may be described in a format conforming to REST.
  • the query processing unit 106 outputs the data search query as a job.
  • job means a processing unit issued for each data search query.
  • the communication processing unit 108 includes a job management unit 1081 and a job processing unit 1082.
  • the job management unit 1081 receives a job from the query processing unit 106 and manages a search process according to the data search query according to the priority set for each job.
  • the job management unit 1081 processes jobs in parallel and asynchronously.
  • the job management unit 1081 also performs retransmission processing and the like as necessary.
  • the communication processing unit 108 executes necessary communication processing according to the job managed by the job management unit 1081. Specifically, the communication processing unit 108 generates a packet according to the communication protocol used for the path to the target device in the search target 2. In the generation of the packet, the communication processing is optimized by filtering as described later. The communication processing unit 108 executes transmission and reception of the generated packet. At this time, a cache that temporarily stores a part or all of a transmitted packet (hereinafter, also referred to as a “request packet”) and a received packet (hereinafter, also referred to as a “response packet”) is used. Is also good. Further, the communication processing unit 108 analyzes data included in the received packet, and performs filtering, sorting, and ranking (calculation of a sort order) on the data obtained by the analysis as necessary.
  • a cache that temporarily stores a part or all of a transmitted packet
  • a received packet hereinafter, also referred to as a “response packet”
  • the communication processing unit 108 generates a request packet with reference to the profile database 104.
  • the data shaping unit 110 converts the received data into a data format of a specified output format.
  • Examples of the data format include a CSV format, a JSON format, a binary format, a text format, and an XML format. If the data format is not specified, the data format may be converted to a predetermined data format.
  • the external device that transmits the data search query has a user interface 730.
  • the user interface 730 generates a data search query according to a user operation, and transmits the generated data search query to the search device 100.
  • the user interface 730 presents a search result from the search device 100 to the user in a specified mode.
  • the profile database 104 includes configuration information 1041, a device profile 1042, and an index 1043.
  • the configuration information 1041 includes information indicating a connection relationship between devices of the control system included in the search target 2. Specifically, the configuration information 1041 includes information defining a network topology, address information of each device, a communication protocol of each network, and the like. The configuration information 1041 may include information on a physical or virtual network topology or unit configuration (address, format, communication band, and the like).
  • the configuration information 1041 may be statically set in advance, or may dynamically change according to a change in the network configuration.
  • FIG. 6 is a schematic diagram illustrating an example of a network topology defined by configuration information 1041 of search device 100 according to the present embodiment.
  • FIG. 6A is a diagram illustrating an example of a network topology of a device connected to the EtherCAT network.
  • FIG. 6B is a diagram illustrating an example of a network topology of a device connected to an EtherNet / IP network.
  • the configuration information 1041 defines the number of devices connected to each network, addresses assigned to each device, and the like.
  • device profile 1042 includes information indicating the characteristics of each device. Specifically, the device profile 1042 includes a memory map in the device, object specifications, type information, obtainable data (attributes), scaling, and the like. The device profile 1042 further includes information for specifying a service to be supported, data format information (scaling), and the like. As described above, the device profile 1042 includes static information determined according to the network, the vendor, and the format.
  • the device profile 1042 may be obtained in advance by using an arbitrary method for the profile of each device, or may be obtained directly from each device via a network.
  • an ESI (EtherCAT Slave Information) file can be used according to the EtherCAT standard
  • an EDS (Electronic Data Sheets) file can be used according to the EtherNet / IP standard. .
  • the index 1043 is information used for improving the search efficiency, and includes information indicating a status value of each device included in the control system 1. Specifically, the index 1043 includes a device attribute value and an individual identification number (such as a serial number and a MAC address). The index 1043 is typically generated dynamically, but may be statically generated in advance. The index 1043 is used for caching information that changes relatively little in the search target 2 to improve communication efficiency.
  • the index 1043 further stores status values of each device such as a PLC name, cumulative operation time (hour or minute), presence or absence of an error, user program update time, memory usage (free space), and free space of a memory card. May be included.
  • the index 1043 may further include a temporal change (change history).
  • the index 1043 is information used for improving the efficiency of the search, and is not always necessary, and may be implemented according to the situation.
  • (E1: Search processing example 1) 7 and 8 are diagrams for explaining a first example of the search processing in the control system 1 according to the present embodiment.
  • search target 2 connected to search device 100 has PLC 200 and three slaves (devices 300-1, 300-2, and 300-3) connected via a network of PLC 200 and EtherCAT.
  • the device 300-1 is a coupler unit, and some local units are connected via a local bus.
  • the device 300-4 is a master unit of an IO-Link (not shown) for exchanging data with a sensor or an actuator, and holds information on an abnormality (for example, a decrease in light amount) in the IO-Link.
  • an abnormality for example, a decrease in light amount
  • the request packet is sent to the first path 502 from the search device 100 to the PLC 200, the second path 504 from the PLC 200 to the device 300-1 (coupler unit), the device 300
  • the data must be sequentially transferred in the order of the third path 506 from -1 to the device 300-4.
  • data transfer is performed by HTTP implemented on TCP / IP, and such data transfer is realized by a communication program “ecat_sys.cgi”. You.
  • data transfer is performed by a protocol called VoE implemented on EtherCAT, and such data transfer is realized by a communication program called “MailBox”.
  • data transfer is performed by a protocol called “LBP” implemented on Local @ Bus, and such data transfer is realized by a communication program called “Unit @ Application”.
  • the search device 100 refers to the configuration information 1041 and generates a request packet to reach the connection position of the target device.
  • the communication processing unit 108 of the search device 100 refers to the configuration information 1041 to specify the route to the target device, and generates a packet corresponding to the protocol corresponding to the specified route.
  • the data search query 600 is an example in which an instruction for collecting data from the device 300-4 is described in the SQL language.
  • the search device 100 receives the data search query 600 and generates a request packet 400.
  • the request packet 400 includes a first route packet 402, a second route packet 404, and a third route packet 406.
  • the communication processing unit 108 of the search device 100 generates the request packet 400 by encapsulating the packets 402, 404, and 406 generated according to the route to the target device. In this way, a request packet that encapsulates a command according to a plurality of protocols is generated.
  • the request packet 400 further includes a command 408 for reading data from the device 300-4.
  • the communication processing unit 108 of the search device 100 may include a command 408 for collecting data specified by the data search query from the target device with reference to the device profile 1042 in the request packet 400. .
  • a data search query 600 described in the SQL language can be described as a data search query 602 based on REST. Regardless of the description format, information for specifying the connection position on the network of the target device 300-4 from which data is to be collected (“1”, “2”, “3" part).
  • the data search queries 600 and 602 also include information for specifying the type of data to be collected (“4” part of the data search queries 600 and 602).
  • the search device 100 For the “1” portion of the data search queries 600 and 602, the search device 100 refers to the EIP hierarchy configuration information included in the configuration information 1041 of the profile database 104, and searches for “Machine 1” specified in the data search query. It specifies that the controller has the IP address “192.168.250.1” and specifies that the controller has “ECAT” as the EtherCAT network (analysis processing 412).
  • the search device 100 specifies that communication to the network “ECAT” can be realized by issuing a command to the application “ecat_sys.cgi” (analysis processing 413).
  • the search device 100 generates the first route packet 402 based on the results of the analysis 412 and the analysis 413.
  • the search device 100 refers to the EtherCAT hierarchy configuration information included in the configuration information 1041 of the profile database 104, and searches for “node1” specified in the data search query. It is specified that there is a device having “# 1” as the address of the EtherCAT (analysis processing 414).
  • the search device 100 refers to the device profile 1042 and specifies that communication to the EtherCAT slave is “VoE” (analysis processing 415).
  • the search device 100 generates the second path packet 404 based on the results of the analysis 414 and the analysis 415.
  • the second route packet 404 is incorporated in the first route packet 402.
  • the search device 100 refers to the local bus configuration information included in the configuration information 1041 of the profile database 104, and finds “unit5” specified in the data search query.
  • the device having the unit address “# 5” is identified (analysis processing 416).
  • the search device 100 refers to the device profile 1042 and specifies that the communication to the device 300-4 by the local bus is routing in “LBP” (analysis processing 417).
  • the search device 100 generates the third route packet 406 based on the results of the analysis 416 and the analysis 417.
  • the third route packet 406 is incorporated in the second route packet 404.
  • the search device 100 refers to the local bus configuration information included in the configuration information 1041 of the profile database 104, and determines that the device having the Unit address “# 5” is “ It is specified that it is an “IO-Link master” (analysis processing 418).
  • the search device 100 refers to the device profile 1042, and specifies that “value1” of the device 300-4 is 2-byte data with an offset of “0x0080” and can be read by a “Read” command ( Analysis processing 419).
  • the search apparatus 100 generates the command 408 based on the results of the analysis 418 and the analysis 419.
  • the command 408 is incorporated in the third route packet 406.
  • the request packet 400 is generated by a series of analysis processing as described above.
  • E2 Search processing example 2
  • FIG. 9 and FIG. 10 are diagrams for explaining a second example of the search processing in the control system 1 according to the present embodiment.
  • search target 2 connected to search device 100 has PLC 200 and three slaves (devices 300-1, 300-2, and 300-3) connected via a network of PLC 200 and EtherCAT.
  • request packets are sequentially transferred in the order of a first path 512 from the search device 100 to the PLC 200 and a second path 514 from the PLC 200 to each slave. There must be.
  • data transfer is performed by HTTP implemented on TCP / IP, and such data transfer is realized by a communication program “ecat_sys.cgi”. You.
  • data transfer is performed by a protocol called CoE implemented on EtherCAT, and such data transfer is realized by a communication program “Object @ Dictionary”.
  • the packet must be transferred over such a plurality of layers, and the search device 100 generates a request packet that encapsulates a command according to a plurality of protocols. That is, when a packet is transferred from the first route 512 to the second route 514, it is necessary to convert from HTTP to CoE.
  • the data search query 610 is an example in which an instruction for collecting data from all the slaves that are IO-Link masters is described in the SQL language.
  • the search device 100 receives the data search query 610 and generates a request packet 420.
  • the request packet 420 is repeatedly generated for all the address ranges (normally, # 1 to # 254) that can be set for the slave connected to the EtherCAT network.
  • the request packet 420 includes the first route packet 422 and the second route packet 424.
  • Request packet 420 further includes a command 426 for reading a cycle time from the IO-Link master.
  • a data search query 610 described in the SQL language can be described as a data search query 612 based on REST. Regardless of the description format, information for identifying the target device 300 from which data is to be collected (“1” and “2” of the data search queries 610 and 612) is included. The data search queries 610 and 612 also include information for specifying the type of data to be collected (“3” part of the data search queries 610 and 612).
  • the search device 100 refers to the EIP hierarchy configuration information included in the configuration information 1041 of the profile database 104, and finds “Machine1” specified in the data search query. It specifies that the controller has “192.168.250.1” as the IP address, and specifies that the controller has “ECAT” as the EtherCAT network (analysis processing 432).
  • the search device 100 specifies that communication to the network “ECAT” can be realized by issuing a command to the application “ecat_sys.cgi” (analysis processing 433).
  • the search device 100 generates the first path packet 422 based on the results of the analysis 432 and the analysis 433.
  • the search device 100 For the “2” portion of the data search queries 610 and 612, the search device 100 refers to the EtherCAT hierarchy configuration information included in the configuration information 1041 of the profile database 104, and specifies “node *” specified in the data search query. Means all the slaves of EtherCAT (all the addresses that can be set) (analysis processing 434).
  • the search device 100 refers to the device profile 1042 to specify that communication to the EtherCAT slave is “CoE”, and to issue “CoE” if the slave is an IO-Link master. It is specified (analysis processing 435).
  • the search device 100 generates the second path packet 424 based on the results of the analysis 434 and the analysis 435.
  • the second route packet 424 is incorporated in the first route packet 422.
  • the search device 100 refers to the device profile 1042 and specifies that the memory address of “Cycle_Time” of the IO-Link master is “0x0834” ( Analysis processing 436).
  • the search device 100 generates the command 426 based on the result of the analysis 436.
  • the command 426 is incorporated in the second route packet 424.
  • the request packet 420 is generated by the above series of analysis processing. The generation of the request packet 420 is repeated for all the address ranges that can be set for the slave connected to the EtherCAT network. However, since it is determined whether or not each slave is an IO-Link master, the same number of request packets 420 are actually generated as the number of IO-Link master slaves.
  • FIG. 11 is a diagram for explaining a third example of the search processing in the control system 1 according to the present embodiment.
  • the search processing example 3 shown in FIG. 11 is obtained by further adding a search condition to the search processing example 2 shown in FIGS. 9 and 10 above. Have the same reference numerals.
  • Example 3 of Search Processing An example of “collecting cycle times from all slaves that are IO-Link masters manufactured by AAA and connected via PLC200 and EtherCAT network” is shown. Here, it is assumed that “AAA” is the name of the manufacturer or the vendor of the slave.
  • Such a search process can be defined as a data search query 620 described in the SQL language.
  • the data search query 620 described in the SQL language can be described as a data search query 622 based on REST.
  • information for identifying the target device 300 from which data is to be collected (“1” and “2” of the data search queries 620 and 622) is included.
  • the data search queries 620 and 622 also include information for specifying the type of data to be collected (“3” part of the data search queries 620 and 622).
  • the search device 100 For the “1” portion of the data search queries 620 and 622, the search device 100 refers to the EIP hierarchy configuration information included in the configuration information 1041 of the profile database 104, and finds “Machine1” specified in the data search query. It specifies that the controller has “192.168.250.1” as the IP address, and specifies that the controller has “ECAT” as the EtherCAT network (analysis processing 432).
  • the search device 100 specifies that communication to the network “ECAT” can be realized by issuing a command to the application “ecat_sys.cgi” (analysis processing 433).
  • the search device 100 generates the first path packet 422 based on the results of the analysis 432 and the analysis 433.
  • the search device 100 refers to the EtherCAT hierarchical configuration information included in the configuration information 1041 of the profile database 104, and specifies “node *” specified in the data search query. Means all the slaves of EtherCAT (all the addresses that can be set) (analysis processing 434).
  • the search device 100 refers to the device profile 1042, specifies that communication to the EtherCAT slave is “CoE”, and issues “CoE” if the slave is an AAA IO-Link master. Is specified (analysis processing 435A).
  • the search device 100 generates the second route packet 424 based on the results of the analysis 434 and the analysis 435A.
  • the second route packet 424 is incorporated in the first route packet 422.
  • the search device 100 refers to the device profile 1042 and specifies that the memory address of “Cycle_Time” of the IO-Link master is “0x0834” ( Analysis processing 436).
  • the search device 100 generates the command 426 based on the result of the analysis 436.
  • the command 426 is incorporated in the second route packet 424.
  • the request packet 420 is generated by the above series of analysis processing. The generation of the request packet 420 is repeated for all the address ranges that can be set for the slave connected to the EtherCAT network. However, since it is determined whether or not each slave is an AAA IO-Link master, only the same number of request packets 420 are actually generated as the number of AAA IO-Link master slaves.
  • FIG. 12 is a diagram for describing Example 4 of the search process in the control system 1 according to the present embodiment. Since the search processing example 4 shown in FIG. 12 is obtained by further adding a search condition to the search processing example 3 shown in FIG. 11, the search processing example 3 and the search processing example 3 are referred to. The same reference numerals are given to the same processes as those of the second example of the search process.
  • Such a search process can be defined as a data search query 630 described in the SQL language.
  • the data search query 630 described in the SQL language can be described as a data search query 632 based on REST.
  • information for specifying the target device 300 from which data is to be collected (“1” and “2” of the data search queries 630 and 632) is included.
  • the data search queries 630 and 632 also include information for specifying the type of data to be collected (the “3” part of the data search queries 630 and 632).
  • the following describes how the “1”, “2”, and “3” portions of the data search queries 630 and 632 are analyzed to generate the request packet 420A.
  • the condition of “slave in error” is included in the command 428 given to each device.
  • the search device 100 refers to the EIP hierarchy configuration information included in the configuration information 1041 of the profile database 104, and finds “Machine 1” specified in the data search query. It specifies that the controller has “192.168.250.1” as the IP address, and specifies that the controller has “ECAT” as the EtherCAT network (analysis processing 432).
  • the search device 100 specifies that communication to the network “ECAT” can be realized by issuing a command to the application “ecat_sys.cgi” (analysis processing 433).
  • the search device 100 generates the first path packet 422 based on the results of the analysis 432 and the analysis 433.
  • the search device 100 For the “2” portion of the data search queries 630 and 632, the search device 100 refers to the EtherCAT hierarchy configuration information included in the configuration information 1041 of the profile database 104, and specifies “node *” specified in the data search query. Means all the slaves of EtherCAT (all the addresses that can be set) (analysis processing 434).
  • the search device 100 refers to the device profile 1042, specifies that communication to the EtherCAT slave is “CoE”, and issues “CoE” if the slave is an AAA IO-Link master. Is specified (analysis processing 435A).
  • the search device 100 generates the second route packet 424 based on the results of the analysis 434 and the analysis 435A.
  • the second route packet 424 is incorporated in the first route packet 422.
  • the search device 100 refers to the device profile 1042 and specifies that the memory address of “Status_Data” of the IO-Link master is “0xF100” ( Analysis processing 437). Further, the search device 100 refers to the device profile 1042 and specifies that the memory address of “Cycle_Time” of the IO-Link master is “0x0834” (analysis processing 436).
  • the search device 100 generates the command 428 based on the results of the analysis 437 and the analysis 436.
  • the command 428 includes an instruction to read “Status_Data” and to read “Cycle_Time” only when the read “Status_Data” is not “NoError”, that is, only when “error is occurring”. .
  • the command 428 is incorporated in the second route packet 424.
  • the communication processing unit 108 of the search device 100 may generate the command 428 including the command corresponding to the search condition specified in the data search query.
  • the filtering “error occurred” is shown as an example of the search condition.
  • the present invention is not limited to this, and an arbitrary search condition such as sorting or ranking (calculation of sort order) may be incorporated. it can.
  • the request packet 420A is generated by the above series of analysis processing. The generation of the request packet 420A is repeated for all the address ranges that can be set for the slave connected to the EtherCAT network. However, since it is determined whether or not each slave is an AAA IO-Link master, the number of actually generated request packets 420 is the same as the number of AAA IO-Link master slaves.
  • FIG. 13 is a diagram for describing a fifth example of the search processing in the control system 1 according to the present embodiment.
  • the search processing example 5 shown in FIG. 13 is obtained by further adding a search condition to the search processing example 3 shown in FIG. 11 described above, so that the search processing example 3 and the search processing example 3 are referred to.
  • the same reference numerals are given to the same processes as those of the second example of the search process.
  • the condition of “slave in error” is included in the command 428 given to each device.
  • the index 1043 is referred to. An example of processing for selecting a target device 300 (slave) in advance will be described.
  • the following describes how the “1”, “2”, and “3” portions of the data search queries 630 and 632 are analyzed to generate the request packet 420A.
  • the condition of “slave in error” is included in the command 428 given to each device.
  • the search device 100 refers to the EIP hierarchy configuration information included in the configuration information 1041 of the profile database 104, and finds “Machine 1” specified in the data search query. It specifies that the controller has “192.168.250.1” as the IP address, and specifies that the controller has “ECAT” as the EtherCAT network (analysis processing 432).
  • the search device 100 specifies that communication to the network “ECAT” can be realized by issuing a command to the application “ecat_sys.cgi” (analysis processing 433).
  • the search device 100 generates the first path packet 422 based on the results of the analysis 432 and the analysis 433.
  • the search device 100 For the “2” portion of the data search queries 630 and 632, the search device 100 refers to the EtherCAT hierarchy configuration information included in the configuration information 1041 of the profile database 104, and specifies “node *” specified in the data search query. Means all the slaves of EtherCAT (all the addresses that can be set) (analysis processing 434).
  • the search device 100 refers to the device profile 1042, specifies that communication to the EtherCAT slave is “CoE”, and issues “CoE” if the slave is an AAA IO-Link master. Is specified (analysis processing 435A).
  • the search device 100 refers to the index 1043 and extracts a slave whose "Status_Data" is not "NoError", that is, a slave whose "error is occurring” (analysis process 438).
  • the communication processing unit 108 of the search device 100 refers to the index 1043, which is information indicating the state value of each device, to specify a device that matches the search condition specified in the data search query. Is also good.
  • the search device 100 generates the second route packet 424 based on the analysis processing 434 and the analysis processing 435A.
  • the generated second route packet 424 is only for the slave extracted in the analysis process 438.
  • the second route packet 424 is incorporated in the first route packet 422.
  • the search device 100 refers to the device profile 1042 and specifies that the memory address of “Cycle_Time” of the IO-Link master is “0x0834” ( Analysis processing 436).
  • the search device 100 generates the command 426 based on the result of the analysis 436.
  • the command 426 is incorporated in the second route packet 424.
  • the request packet 420 is generated by the above series of analysis processing.
  • the request packet 420 is generated only for the IO-Link master in which “error has occurred”, so that the communication amount can be reduced.
  • FIG. 14 is a flowchart showing a processing procedure of a search process in the control system according to the present embodiment. Each step illustrated in FIG. 14 is typically realized by the processor 152 of the search device 100 executing the search program 1560 (FIG. 4).
  • search device 100 determines whether an external data search query has been received (step S100). If the data search query has not been received (NO in step S100), the process of step S100 is repeated.
  • search device 100 analyzes the received data search query to specify target device 300 (step S102), and also specifies the connection position of specified target device 300. Then, a route to the target device 300 is specified (step S104). In step S102, a plurality of devices may be specified as targets.
  • the search apparatus 100 selects the highest-layer path from among the paths to the target device 300 (step S106), and acquires information such as an address and a protocol by referring to the configuration information 1041 (step S108). In addition, the search device 100 acquires information necessary for data transfer to the next hierarchy with reference to the device profile 1042 for the highest hierarchy route among the routes to the specified target device 300 (step S110). Then, the search device 100 generates a packet based on the information acquired in steps S108 and S110 (step S112). If there is a previously generated packet, the search device 100 encapsulates the packet generated in step S112 and incorporates it into the previously generated packet.
  • the search device 100 determines whether or not the packets of all the routes to the target device 300 have been generated by the processing of steps S108 to S112 (step S114). If packets have not been generated for all of the routes to target device 300 (NO in step S114), search device 100 selects the next route from the routes to target device 300 (step S116), and step S108 The following processing is repeated.
  • search device 100 refers to device profile 1042 to collect data specified in the data search query. A command and / or a command for collecting information necessary for search conditions specified in the data search query are acquired (step S118). Then, the search device 100 incorporates the acquired command into the previously generated packet (step S120).
  • the search device 100 may generate a command including an instruction corresponding to the search condition specified in the data search query.
  • the search device 100 transmits the packet incorporating the command in step S120 to the search target 2 (target device 300) (step S122), and waits for reception of a response packet from the target device 300 (step S124).
  • the search device 100 Upon receiving the response packet from the target device 300, the search device 100 shapes the search result included in the received response packet into a format corresponding to the data search query (step S126), and sets the formed search result as the query request source. A reply is sent (step S128). Note that a search result may be generated after performing a merge process or a filtering process on a plurality of received response packets.
  • the data search query can be generated in any form.
  • an application program that automatically generates a data search query described in the SQL language in response to a user instruction may be created.
  • Such an application program can be created using any programming language.
  • the user may create an arbitrary data search query by using an application capable of generating an arbitrary SQL query.
  • an application capable of generating an arbitrary SQL query.
  • a list of elements that can be described in the data search query can be displayed with reference to the configuration information 1041, the device profile 1042, and the information of the index 1043 included in the profile database 104. You may do so.
  • a search result for the data search query generated by the user may be displayed on the application.
  • an HTML document placed on the Web server may be displayed by a browser, and a user may operate the browser to generate a data search query described in a REST-compliant format.
  • the search results may be displayed on the same browser.
  • Search results obtained by the search device 100 executing a search process in response to a data search query can be used in any form.
  • search results can be displayed or operated using any application.
  • it can be used in any application executed on Windows (registered trademark).
  • FIGS. 15 and 16 are diagrams for explaining an example of a Web application provided using the control system 1 according to the present embodiment.
  • remote access to search device 100 is performed from a browser 700 executed on a mobile terminal or a personal computer.
  • a Web server 112 is mounted on the search device 100, and an HTML document provided by the Web server 112 may be displayed by the browser 700.
  • the browser 700 transmits a data search query described in a format conforming to REST to the search device 100.
  • a search result obtained by the search device 100 searching in response to the data search query may be displayed on the browser 700 (HTML document).
  • FIG. 16A a schematic diagram showing the network configuration of search target 2 is displayed from Web server 112 of search device 100, and when the user selects an arbitrary device or an abnormal message, The data search query is generated and the search process is executed, and the search result may be displayed in a form as shown in FIG.
  • the Web server may be arranged in a processing entity different from the search device 100.
  • FIG. 17 is a schematic diagram showing another implementation example for providing a Web application using the control system 1 according to the present embodiment.
  • a Web server 710 is arranged in a PLC or the like that controls search target 2, and remote access to Web server 710 is performed from browser 700 executed on a portable terminal or a personal computer.
  • Web server 710 generates the requested data search query in response to access from browser 700.
  • the data search query may be generated in a JSON format.
  • the search device 100 executes a search process and responds with the search result in a JSON format.
  • the Web server 710 may generate an HTML document based on a search result from the search device 100 and transmit the generated HTML document to the browser 700.
  • the method of generating the data search query and the use form of the search result are not limited to those described above, and any method and form can be adopted.
  • the configuration in which the search device 100 executes a series of processes has been described.
  • the present invention is not limited to this, and the process executed by the search device 100 is executed in a distributed manner by a plurality of processing entities. Is also good.
  • the analysis processing of the data search query and the generation processing of the request packet may be executed by different processing entities.
  • the analysis process of the data search query is executed by the cloud computer on the network, and based on the analysis result, the search device connected to the search target 2 and the network actually transmits the request packet to the target device 300. It may be.
  • a search device connected to the search target 2 via a network may analyze the data search query, and any PLC in the search target 2 may transmit a request packet to the target device 300 based on the analysis result.
  • the search function according to the present embodiment can be implemented in any form according to the configuration or scale of the search target 2 without being limited to this.
  • the search function according to the present embodiment can also be implemented by adding a program to an existing PLC or device afterwards.
  • a program added afterward can be an object of the present invention.
  • a control system (1) comprising at least one device (300), A database (104) holding configuration information (1041) including a connection relationship between devices of the control system and a device profile (1042) including information indicating characteristics of each device;
  • a request packet (400) is generated from the data search query and transmitted to the target device (300) by referring to the database and A communication processing unit (108) for receiving the response packet (450);
  • a control unit comprising: a forming unit (110) for forming a search result included in the response packet received by the communication processing unit into a format corresponding to the data search query.
  • [Configuration 2] The control system according to configuration 1, wherein the communication processing unit generates the request packet in order to reach a connection position of the target device with reference to the configuration information.
  • [Configuration 3] The control system according to Configuration 1 or 2, wherein the communication processing unit refers to the configuration information, specifies a path to the target device, and generates a packet corresponding to a protocol corresponding to the specified path.
  • [Configuration 4] 4 4. The control system according to configuration 3, wherein the communication processing unit generates the request packet by encapsulating packets (402, 404, and 406) generated according to a path to the target device.
  • a request packet (400) is generated from the data search query and transmitted to the target device (300) by referring to the database and
  • a forming unit (110) for forming a search result included in the response packet received by the communication processing unit into a format corresponding to the data search query.
  • configuration information (1041) including a connection relationship of devices of the control system
  • device profile (1042) including information indicating characteristics of each device
  • a request packet (400) is generated from the data search query and transmitted to the target device (300) by referring to the database and Receiving the response packet (450) (S102 to S124); Forming the search result included in the received response packet into a format corresponding to the data search query (S126).
  • a request packet directed to a target device is generated only by giving a data search query in a general format such as a format conforming to the SQL language or REST.
  • a request packet generated in this manner in the control system any information of any device in the control system can be collected.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集可能な構成が提供される。制御システムは、前記制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルを保持するデータベースと、外部からのデータ検索クエリに応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する通信処理部と、前記通信処理部により受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形する成形部とを含む。

Description

制御システム、検索装置および検索プログラム
 本発明は、システム内の任意のデバイスの任意の情報を収集可能な制御システム、検索装置および検索プログラムに関する。
 FA(ファクトリオートメーション)の分野では、PLC(プログラマブルロジックコントローラ)などの制御装置を用いて設備や機械などの制御対象を制御することが一般的である。
 近年のICT(Information and Communication Technology)の進歩やIoT(Internet of Things)の注目などに伴って、制御装置により制御されるフィールドレベルのデータを収集したいというニーズが高まっている。
 このような制御装置が扱うデータを上位システムに提供するような構成例として、例えば、特開平05-265952号公報(特許文献1)は、分散CIMシステムを開示する。特許文献1に開示される分散CIMシステムは、下位ネットワークと上位ネットワークとの間で全レイヤのプロトコル変換を行うと共に、アプリケーションサーバ、ファイルサーバ及びマンマシンインタフェース端末が扱う情報と下位ネットワークの各種制御機器が扱う情報とのデータ変換を行うアプリケーションゲートウェイを有している。
特開平05-265952号公報
 上述の特開平05-265952号公報に開示される構成においては、アプリケーションゲートウェイは、プロトコル変換およびデータ変換を行うことになる。このようなデータ変換は、アプリケーションサーバなどで実行される処理の種類などに応じた処理とする必要があり、汎用性を高めることができない。
 本発明の一つの目的は、汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集可能な構成を提供することである。
 本発明の一つの実施の形態によれば、少なくとも1つのデバイスからなる制御システムが提供される。制御システムは、制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルを保持するデータベースと、外部からのデータ検索クエリに応答して、データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する通信処理部と、通信処理部により受信されたレスポンスパケットに含まれる検索結果をデータ検索クエリに対応する形式に成形するデータ成形部とを含む。
 本開示によれば、外部からのデータ検索クエリを受けると、制御システム内の対象デバイスに対するリクエストパケットが生成される。当該リクエストパケットに応答して送信されるレスポンスパケットに含まれるデータは、データ検索クエリに対応する形式に成形されて、データ検索クエリの要求元へ送信される。これにより、汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集可能となる。
 上述の開示において、通信処理部は、構成情報を参照して、対象デバイスの接続位置に到達するためにリクエストパケットを生成するようにしてもよい。
 本開示によれば、構成情報を参照することで、いずれのデバイスが対象とされても、当該対象デバイスまで確実にリクエストパケットを到達させることができる。
 上述の開示において、通信処理部は、構成情報を参照して、対象デバイスまでの経路を特定するとともに、特定した経路に対応するプロトコルに応じたパケットを生成するようにしてもよい。
 本開示によれば、いずれのデバイスが対象とされても、対象デバイスまでの経路が特定された上でリクエストパケットが生成されるので、リクエストパケットを当該対象デバイスまで確実に到達させることができる。
 上述の開示において、通信処理部は、対象デバイスまでの経路に応じてそれぞれ生成されるパケットをカプセル化してリクエストパケットを生成するようにしてもよい。
 本開示によれば、対象デバイスまでにプロトコルが異なる経路が存在する場合であっても、リクエストパケットを当該対象デバイスまで確実に到達させることができる。
 上述の開示において、通信処理部は、デバイスプロファイルを参照して、対象デバイスからデータ検索クエリにより指定されたデータを収集するためのコマンドをリクエストパケットに含めるようにしてもよい。
 本開示によれば、対象デバイスがどのような形式であっても、デバイスプロファイルを参照することで、データ検索クエリにより指定されたデータを収集できる。
 上述の開示において、通信処理部は、データ検索クエリにおいて指定された検索条件に相当する命令を含むコマンドを生成するようにしてもよい。
 本開示によれば、データ検索クエリにおいて複雑な検索条件が指定されたとしても、対応する命令または命令の組合せをコマンドに含めることで、対象デバイスに対するコマンドのレベルで実現できる。
 上述の開示において、データベースは、制御システムに含まれる各デバイスの状態値を示す情報をさらに保持しており、通信処理部は、各デバイスの状態値を示す情報を参照して、データ検索クエリにおいて指定された検索条件に合致するデバイスを特定するようにしてもよい。
 本開示によれば、リクエストパケットを送信する対象デバイスの数を低減できるので、通信量がムダに増加することを抑制できる。
 上述の開示において、データ検索クエリは、SQL言語またはRESTに準拠した形式で記述されていてもよい。
 本開示によれば、汎用的な形式でデータ検索クエリが記述されることで、汎用性を高めることができる。
 本発明の別の実施の形態によれば、少なくとも1つのデバイスからなる制御システムに接続される検索装置が提供される。検索装置は、制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルを保持するデータベースと、外部からのデータ検索クエリに応答して、データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する通信処理部と、通信処理部により受信されたレスポンスパケットに含まれる検索結果をデータ検索クエリに対応する形式に成形するデータ成形部とを含む。
 本発明のさらに別の実施の形態によれば、少なくとも1つのデバイスからなる制御システムに接続されるコンピュータで実行される検索プログラムが提供される。検索プログラムは、コンピュータに、制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルをデータベースに保持するステップと、外部からのデータ検索クエリに応答して、データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信するステップと、受信されたレスポンスパケットに含まれる検索結果をデータ検索クエリに対応する形式に成形するステップとを実行させる。
 本発明によれば、汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集できる。
本実施の形態に係る制御システムの機能的な構成例を示す模式図である。 本実施の形態に係る制御システムが提供する検索機能を説明するための模式図である。 本実施の形態に係る制御システムが処理するデータ検索クエリの一例を示す図である。 本実施の形態に係る検索装置のハードウェア構成の一例を示すブロック図である。 本実施の形態に係る検索装置の機能構成の一例を示すブロック図である。 本実施の形態に係る検索装置の構成情報により規定されるネットワークトポロジの一例を示す模式図である。 本実施の形態に係る制御システムにおける検索処理例その1を説明するための図である。 本実施の形態に係る制御システムにおける検索処理例その1を説明するための図である。 本実施の形態に係る制御システムにおける検索処理例その2を説明するための図である。 本実施の形態に係る制御システムにおける検索処理例その2を説明するための図である。 本実施の形態に係る制御システムにおける検索処理例その3を説明するための図である。 本実施の形態に係る制御システムにおける検索処理例その4を説明するための図である。 本実施の形態に係る制御システムにおける検索処理例その5を説明するための図である。 本実施の形態に係る制御システムにおける検索処理の処理手順を示すフローチャートである。 本実施の形態に係る制御システムを利用して提供されるWebアプリケーションの一例を説明するための図である。 本実施の形態に係る制御システムを利用して提供されるWebアプリケーションの一例を説明するための図である。 本実施の形態に係る制御システムを利用してWebアプリケーションを提供するための別の実装例を示す模式図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.適用例>
 まず、本発明が適用される場面の一例について説明する。図1は、本実施の形態に係る制御システム1の機能的な構成例を示す模式図である。図1を参照して、制御システム1は、少なくとも1つのデバイス300を含む。制御システムを構成し得る単位の装置を意味する。「デバイス」は、後述するようなリクエストパケットに対して応答が可能な装置の単位を意味する。典型的には、「デバイス」は、IOユニット、センサユニット、特殊ユニットなどのコントローラに接続され得るユニットを包含するとともに、PLC(プログラマブルロジックコントローラ)およびネットワーク通信を中継するカプラユニットなども包含する。
 制御システム1は、制御システム1のデバイスの接続関係を含む構成情報1041、および、各デバイスの特性を示す情報を含むデバイスプロファイル1042を保持するプロファイルデータベース104を含む。制御システム1は、さらに、外部からのデータ検索クエリ600に応答して、対象デバイスから指定されたデータを取得して応答する通信処理部108を含む。より具体的には、通信処理部108は、外部からのデータ検索クエリ600に応答して、プロファイルデータベース104を参照して、当該データ検索クエリ600からリクエストパケット400を生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケット450を受信する。
 制御システム1は、通信処理部108により受信されたレスポンスパケット450に含まれる検索結果をデータ検索クエリに対応する形式に成形するデータ成形部110をさらに含む。例えば、データ成形部110は、SQL言語で記述されたデータ検索クエリ600に対して、合致する検索結果650を応答する。
 このように、本実施の形態に係る制御システム1によれば、汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集できる。
 <B.概要>
 まず、本実施の形態に係る制御システム1が提供する検索機能について説明する。
 図2は、本実施の形態に係る制御システム1が提供する検索機能を説明するための模式図である。図2を参照して、制御システム1は、検索装置100と、検索装置100により検索可能な検索対象2とを含む。
 検索対象2は、典型的には、制御対象を制御する制御装置の典型例であるPLC200(プログラマブルロジックコントローラ)と、PLC200に接続される1または複数のデバイス300とを含む。デバイス300は、PLC200の管理によって動作する装置を意味し、典型的には、制御対象との間で信号を遣り取りする装置である。デバイス300の一例としては、制御対象から入力信号を取得し、あるいは、制御対象へ出力信号を出力するIOユニット、モータなどを制御するドライバ、ロボットなどを制御するロボットコントローラなどを含む。なお、PLC200自体も「デバイス」の概念に含まれ得る。
 デバイス300の各々は、データを一時的に保持する作業領域302と、各デバイス300の各種設定を規定するプロファイル304と、接続されているセンサなどから取得したデータを格納し、および/または、デバイス300において生成されるデータを格納するデータソース306とを含む。
 検索装置100は、任意のデータ検索クエリに応答して、当該データ検索クエリに従って、検索対象2に含まれるPLC200およびデバイス300のうち任意のデバイスから任意のデータを収集し、検索結果として出力する。検索装置100は、検索対象2の任意のデバイスの任意の情報を応答できるので、外部に対しては、検索対象2の全体を1つのデータベースのように見せることができる。
 検索装置100は、データ検索クエリに応答してデータを収集するだけではなく、データ検索クエリに従う検索を実行できるように、PLC200およびデバイス300から必要なプロファイルを収集することもできる。
 検索装置100は、主たる機能構成として、インターフェイス102と、プロファイルデータベース104と、クエリ処理部106と、通信処理部108と、データ成形部110とを含む。
 インターフェイス102は、クエリ要求元との間でデータを遣り取りする。具体的には、インターフェイス102は、クエリ要求元からデータ検索クエリを受信すると、受信したデータ検索クエリをクエリ処理部106へ出力する。また、インターフェイス102は、データ成形部110から検索結果を受信すると、受信した検索結果をクエリ要求元へ送信する。
 クエリ処理部106は、インターフェイス102から与えられたデータ検索クエリを解析し、検索対象2を構成するデバイスが処理可能な要求をジョブとして生成する。
 プロファイルデータベース104は、検索対象2に含まれるデバイスのプロファイルを格納しており、クエリ処理部106により生成されたジョブが通信処理部108により処理される際に参照される。
 通信処理部108は、外部からのデータ検索クエリに応答して、プロファイルデータベース104を参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する。より具体的には、通信処理部108は、クエリ処理部106により生成されたジョブを処理して、検索対象2において処理可能なリクエストパケットを送出するとともに、当該リクエストパケットに応答して返されるレスポンスパケットを受信する。受信されたレスポンスパケットは、データ成形部110へ出力される。レスポンスパケットは、データ検索クエリにおいて規定された条件または命令に対応する検索結果を含む。
 データ成形部110は、通信処理部108により受信されたレスポンスパケットに含まれる検索結果をデータ検索クエリに対応する形式に成形して、検索結果としてクエリ要求元へ送信する。
 本実施の形態に係る制御システム1においては、このような一般的な検索方式である、データ検索クエリを用いて、検索対象2から任意のデータを収集できる。
 図3は、本実施の形態に係る制御システム1が処理するデータ検索クエリの一例を示す図である。図3には、一例として、EtherCAT(登録商標)のネットワークに接続されたスレーブのうち、累積稼動時間が10,000時間を超えるものを抽出する処理に対応する、データ検索クエリの例を示す。
 図3(a)には、SQL言語で記述されたデータ検索クエリの例を示す。図3(a)に示すデータ検索クエリにおいては、Select文にfrom節およびwhere節による条件が付加されている。
 図3(b)には、Webサービスなどの提供に用いられるREST(Representational State Transfer)に準拠した形式で記述されたデータ検索クエリの例を示す。図3(b)に示すデータ検索クエリにおいては、URLを示す文字列に加えて、「?」および「&」のエスケープ文字によって必要な条件が記述されている。
 図3(c)には、自然言語により記述されたデータ検索クエリの例を示す。図3(c)に示すデータ検索クエリは、人間が話す言葉と同じ表現で検索対象および検索条件が規定される。
 なお、図3に示すようなデータ検索クエリに限られず、任意の形式のデータ検索クエリを用いることができる。また、データ検索クエリを規定する新たな形式が普及した場合には、任意の新たな形式を採用できる。
 <C.検索装置100のハードウェア構成例>
 次に、本実施の形態に係る制御システム1を構成する検索装置100のハードウェア構成例について説明する。
 検索装置100は、検索対象2に含まれるPLC200またはネットワークに接続される独立した装置として構成してもよいし、PLC200の一部として(すなわち、PLC200と一体化して)構成してもよい。
 検索装置100を独立した装置として構成する場合には、PLCと同様のハードウェア構成を採用してもよいし、汎用的なコンピュータを採用してもよい。汎用的なコンピュータを採用する場合には、コンピュータのプロセッサが検索プログラムを実行することで実現される。
 図4は、本実施の形態に係る検索装置100のハードウェア構成の一例を示すブロック図である。図4を参照して、検索装置100は、プロセッサ152と、メインメモリ154と、ストレージ156と、上位ネットワークコントローラ158と、入力部160と、表示部162と、下位ネットワークコントローラ164と、メモリカードインターフェイス166とを含む。これらのコンポーネントは、プロセッサバス170を介して接続されている。
 プロセッサ152は、後述するような各種処理を実行する演算処理部に相当し、CPUやGPUなどで構成される。具体的には、プロセッサ152は、ストレージ156に格納されたプログラムを読出して、メインメモリ154に展開して実行することで、累積稼動時間監視機能を実現するための各種処理を実行する。
 メインメモリ154は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ156は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。ストレージ156には、本実施の形態に係る検索処理を実現するための検索プログラム1560と、OS(Operating System)などを含むシステムプログラム1562とが格納される。ストレージ156には、さらに、プロファイルデータベース104が格納されてもよい。
 入力部160は、タッチパネル、マウス、キーボードなどで構成され、ユーザ操作を受付ける。表示部162は、液晶ディスプレイなどで構成され、プロセッサ152による処理結果に応じた画像などを表示する。入力部160および表示部162が一体化して構成されてもよい。
 上位ネットワークコントローラ158は、ネットワーク接続された任意の情報処理装置からのデータ検索クエリなどを受付ける。下位ネットワークコントローラ164は、検索対象2に含まれるPLC200などとの間でデータを遣り取りする。
 メモリカードインターフェイス166は、着脱可能な記録媒体の一例であるメモリカード168を受付ける。メモリカードインターフェイス166は、メモリカード168に対してデータを書込み、メモリカード168から各種データを読出すことが可能になっている。
 図4には、プロセッサ152が検索プログラム1560を実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
 <D.検索装置100の機能構成例>
 次に、本実施の形態に係る制御システム1を構成する検索装置100の機能構成例について説明する。
 図5は、本実施の形態に係る検索装置100の機能構成の一例を示すブロック図である。図5を参照して、検索装置100は、主たる機能構成として、インターフェイス102と、プロファイルデータベース104と、クエリ処理部106と、通信処理部108と、データ成形部110とを含む。
 インターフェイス102は、クエリ要求元との間でデータを遣り取りし、クエリ入力部1021と、結果出力部1022とを含む。
 クエリ入力部1021は、外部のクエリ供給元からデータ検索クエリを受付ける。クエリ入力部1021は、例えば、Webサーバ(httpdプロセス)等を用いて実装されてもよい。結果出力部1022は、データ成形部110により成形されたデータをクエリ要求元に返信する。結果出力部1022についても、例えば、Webサーバ(httpdプロセス)等を用いて実装されてもよい。データ検索クエリは、上述したような、SQL言語で記述されたものであってもよいし、RESTに準拠した形式で記述されたものであってもよい。
 クエリ処理部106は、データ検索クエリをジョブとして出力する。ここで、「ジョブ」は、データ検索クエリ毎に発行される処理単位を意味する。
 通信処理部108は、ジョブ管理部1081と、ジョブ処理部1082とを含む。
 ジョブ管理部1081は、クエリ処理部106からのジョブの受付け、各ジョブに設定された優先度に応じて、データ検索クエリに従う検索処理を管理する。ジョブ管理部1081は、ジョブを並列かつ非同期に処理する。ジョブ管理部1081は、必要に応じて、再送処理なども実行する。
 通信処理部108は、ジョブ管理部1081により管理されるジョブに従って、必要な通信処理を実行する。具体的には、通信処理部108は、検索対象2において対象デバイスまでの経路に用いられている通信プロトコルに従って、パケットを生成する。このパケットの生成においては、後述するようなフィルタリングによって、通信処理を最適化する。通信処理部108は、生成したパケットの送受信を実行する。このとき、送信されるパケット(以下、「リクエストパケット」とも称す。)および受信されるパケット(以下、「レスポンスパケット」とも称す。)の一部または全部を一時的に格納するキャッシュが使用されてもよい。さらに、通信処理部108は、受信されたパケットに含まれるデータを解析するとともに、解析によって得られたデータを必要に応じてフィルタリング、ソート、ランキング(ソート順の計算)を実行する。
 通信処理部108は、プロファイルデータベース104を参照して、リクエストパケットを生成する。
 データ成形部110は、受信されたデータを指定された出力形式のデータフォーマットに変換する。データフォーマットの一例としては、CSV形式、JSON形式、バイナリ形式、テキスト形式、XML形式などが挙げられる。なお、データフォーマットの指定がない場合には、予め定められたデータフォーマットに変換するようにしてもよい。
 データ検索クエリを送信する外部装置は、ユーザインターフェイス730を有している。ユーザインターフェイス730は、ユーザ操作に従って、データ検索クエリを生成するとともに、当該生成されたデータ検索クエリを検索装置100へ送信する。また、ユーザインターフェイス730は、検索装置100からの検索結果を指定された態様でユーザへ提示する。
 図5に示すように、プロファイルデータベース104は、構成情報1041と、デバイスプロファイル1042と、索引1043とを含む。
 構成情報1041は、検索対象2に含まれる制御システムのデバイスの接続関係を示す情報を含む。具体的には、構成情報1041は、ネットワークトポロジ、各デバイスのアドレス情報、および、各ネットワークの通信プロトコルなどを規定する情報を含む。構成情報1041は、物理的または仮想的なネットワークトポロジや、ユニット構成に関する情報(アドレス、形式、通信帯域など)を含むようにしてもよい。
 構成情報1041は、予め静的に設定されていてもよいし、ネットワーク構成の変化に応じて、動的に変化するようにしてもよい。
 図6は、本実施の形態に係る検索装置100の構成情報1041により規定されるネットワークトポロジの一例を示す模式図である。図6(a)は、EtherCATのネットワークに接続されるデバイスのネットワークトポロジの一例を示す図である。図6(b)は、EtherNet/IPのネットワークに接続されるデバイスのネットワークトポロジの一例を示す図である。
 図6(a)および図6(b)に示すように、構成情報1041は、各ネットワークに接続されているデバイスの数および各デバイスに割り当てられるアドレスなどを規定する。
 なお、構成情報1041においてネットワーク構成を規定するデータ形式およびデータ構造は任意のものを採用できる。
 再度図5を参照して、デバイスプロファイル1042は、各デバイスの特性を示す情報を含む。具体的には、デバイスプロファイル1042は、デバイス内のメモリマップ、オブジェクト仕様、型情報、取得可能なデータ(属性)、スケーリングなどを含む。デバイスプロファイル1042は、さらに、サポートするサービスを特定する情報や、データのフォーマット情報(スケーリング)などを含む。このように、デバイスプロファイル1042は、ネットワーク、ベンダ、形式によって応じて定まる静的な情報を含む。
 デバイスプロファイル1042は、予め各デバイスのプロファイルを任意の方法で取得しておいてもよいし、各デバイスから直接ネットワークを介して取得してもよい。デバイスプロファイル1042としては、例えば、EtherCAT規格によれば、ESI(EtherCAT Slave Information)ファイルなどを用いることができ、EtherNet/IPの規格によれば、EDS(Electronic Data Sheets)ファイルなどを用いることができる。
 索引1043は、検索を効率化するために用いられる情報であり、制御システム1に含まれる各デバイスの状態値を示す情報を含む。具体的には、索引1043は、デバイスの属性値および個体識別番号(シリアル番号やMACアドレスなど)を含む。索引1043は、典型的には、動的に生成されることになるが、事前に静的に生成したものを採用してもよい。索引1043は、検索対象2において変化が相対的に少ない情報をキャッシュすることで、通信を効率化するために用いられる。
 索引1043は、さらに、PLC名、累積稼働時間(時間単位あるいは分単位)、エラーの有無、ユーザプログラム更新時間、メモリ使用量(空き容量)、メモリカードの空き容量などの各デバイスの状態値を示す情報を含めてもよい。索引1043には、さらに時間的な変化(変更履歴)を含めるようにしてもよい。
 なお、索引1043は、検索の効率化のために用いられる情報であり、必ずしも必要ではなく、状況に応じて実装すればよい。
 <E.検索装置100における処理の具体例>
 次に、本実施の形態に係る制御システム1における検索処理のいくつかの具体例について説明する。
 (e1:検索処理例その1)
 図7および図8は、本実施の形態に係る制御システム1における検索処理例その1を説明するための図である。
 図7を参照して、検索装置100に接続される検索対象2は、PLC200と、PLC200とEtherCATのネットワークを介して3つのスレーブ(デバイス300-1,300-2,300-3)が接続されているとする。デバイス300-1は、カプラユニットであり、ローカルバスを介していくつかのローカルユニットが接続されている。
 検索処理例その1として、「デバイス300-1とローカルバスを介して接続されているローカルユニットのうち、アドレス「#5」のローカルユニットであるデバイス300-4が保持しているデータを収集する」例を示す。なお、デバイス300-4は、センサまたはアクチュエータとの間でデータを遣り取りするIO-Link(図示しない)のマスタユニットであるとし、当該IO-Linkにおける異常(一例として、光量低下)の情報を保持しているとする。
 デバイス300-4が保持するデータを収集するためには、リクエストパケットを、検索装置100からPLC200までの第1経路502、PLC200からデバイス300-1(カプラユニット)までの第2経路504、デバイス300-1からデバイス300-4までの第3経路506の順で順次転送しなければならない。
 ネットワーク階層設定500に示すように、例えば、第1経路502では、TCP/IP上に実装されるHTTPでデータ転送が行われ、このようなデータ転送は「ecat_sys.cgi」という通信プログラムにより実現される。第2経路504では、EtherCAT上に実装されるVoEというプロトコルでデータ転送が行われ、このようなデータ転送は「MailBox」という通信プログラムにより実現される。第3経路506では、Local Bus上に実装される「LBP」というプロトコルでデータ転送が行われ、このようなデータ転送は「Unit Application」という通信プログラムにより実現される。
 このような複数の階層に亘ってパケットを転送しなければならないため、検索装置100は、構成情報1041を参照して、対象デバイスの接続位置に到達するためにリクエストパケットを生成する。このように、検索装置100の通信処理部108は、構成情報1041を参照して、対象デバイスまでの経路を特定するとともに、特定した経路に対応するプロトコルに応じたパケットを生成する。
 図7に示す例においては、第1経路502から第2経路504へパケットが転送される場合には、HTTPからVoEに変換する必要があり、第2経路504から第3経路506へパケットが転送される場合には、VoEからLBPに変換する必要がある。
 データ検索クエリ600は、デバイス300-4からのデータを収集するための命令をSQL言語で記述した例である。検索装置100は、データ検索クエリ600を受けて、リクエストパケット400を生成する。リクエストパケット400は、第1経路用パケット402と、第2経路用パケット404と、第3経路用パケット406とを含む。
 すなわち、検索装置100の通信処理部108は、対象デバイスまでの経路に応じてそれぞれ生成されるパケット402,404,406をカプセル化してリクエストパケット400を生成する。このように、複数のプロトコルに従うコマンドをカプセル化したリクエストパケットが生成される。
 リクエストパケット400は、さらに、デバイス300-4からデータを読出すためのコマンド408を含む。このとき、検索装置100の通信処理部108は、デバイスプロファイル1042を参照して、対象デバイスからデータ検索クエリにより指定されたデータを収集するためのコマンド408をリクエストパケット400に含めるようにしてもよい。
 図8を参照して、SQL言語で記述したデータ検索クエリ600は、RESTに準拠したデータ検索クエリは602として記述することもできる。いずれの表現形式で記述した場合であっても、データを収集する対象デバイス300-4のネットワーク上の接続位置を特定するための情報(データ検索クエリ600,602の「1」,「2」,「3」の部分)が含まれている。また、データ検索クエリ600,602は、収集すべきデータの種類を特定するための情報(データ検索クエリ600,602の「4」の部分)も含む。
 以下、データ検索クエリ600,602の「1」,「2」,「3」,「4」の部分がどのように解析されて、リクエストパケット400が生成されるのかについて説明する。
 データ検索クエリ600,602の「1」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるEIP階層構成情報を参照して、データ検索クエリにおいて指定された「Machine1」がIPアドレスとして「192.168.250.1」をもつコントローラであることを特定するとともに、コントローラがEtherCATのネットワークとして「ECAT」を有していることを特定する(解析処理412)。
 また、検索装置100は、デバイスプロファイル1042を参照して、ネットワーク「ECAT」への通信は、アプリケーション「ecat_sys.cgi」へコマンドを発行することで実現できることを特定する(解析処理413)。
 検索装置100は、解析処理412および解析処理413による特定結果に基づいて、第1経路用パケット402を生成する。
 データ検索クエリ600,602の「2」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるEtherCAT階層構成情報を参照して、データ検索クエリにおいて指定された「node1」がEtherCATのアドレスとして「#1」をもつデバイスあることを特定する(解析処理414)。
 また、検索装置100は、デバイスプロファイル1042を参照して、EtherCATのスレーブへの通信は「VoE」であることを特定する(解析処理415)。
 検索装置100は、解析処理414および解析処理415による特定結果に基づいて、第2経路用パケット404を生成する。第2経路用パケット404は、第1経路用パケット402に組込まれる。
 データ検索クエリ600,602の「3」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるローカルバス構成情報を参照して、データ検索クエリにおいて指定された「unit5」がUnitアドレス「#5」をもつデバイスであることを特定する(解析処理416)。
 また、検索装置100は、デバイスプロファイル1042を参照して、ローカルバスによるデバイス300-4への通信は「LBP」でのルーチングであることを特定する(解析処理417)。
 検索装置100は、解析処理416および解析処理417による特定結果に基づいて、第3経路用パケット406を生成する。第3経路用パケット406は、第2経路用パケット404に組込まれる。
 データ検索クエリ600,602の「4」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるローカルバス構成情報を参照して、Unitアドレス「#5」をもつデバイスは「IO-Linkマスタ」であることを特定する(解析処理418)。
 また、検索装置100は、デバイスプロファイル1042を参照して、デバイス300-4の「value1」は、オフセットが「0x0080」の2byteデータであり、「Read」コマンドによって読出すことができることを特定する(解析処理419)。
 検索装置100は、解析処理418および解析処理419による特定結果に基づいて、コマンド408を生成する。コマンド408は、第3経路用パケット406に組込まれる。
 以上のような一連の解析処理によって、リクエストパケット400が生成される。
 (e2:検索処理例その2)
 図9および図10は、本実施の形態に係る制御システム1における検索処理例その2を説明するための図である。
 図9を参照して、検索装置100に接続される検索対象2は、PLC200と、PLC200とEtherCATのネットワークを介して3つのスレーブ(デバイス300-1,300-2,300-3)が接続されているとする。
 検索処理例その2として、「PLC200とEtherCATのネットワークを介して接続されているIO-Linkマスタであるスレーブのすべてからサイクルタイムを収集する」例を示す。
 IO-Linkマスタであるスレーブのすべてからデータを収集するためには、リクエストパケットを、検索装置100からPLC200までの第1経路512およびPLC200から各スレーブまでの第2経路514の順で順次転送しなければならない。
 ネットワーク階層設定510に示すように、例えば、第1経路512では、TCP/IP上に実装されるHTTPでデータ転送が行われ、このようなデータ転送は「ecat_sys.cgi」という通信プログラムにより実現される。第2経路514では、EtherCAT上に実装されるCoEというプロトコルでデータ転送が行われ、このようなデータ転送は「Object Dictionary」という通信プログラムにより実現される。このような複数の階層に亘ってパケットを転送しなければならず、検索装置100は、複数のプロトコルに従うコマンドをカプセル化したリクエストパケットを生成する。すなわち、第1経路512から第2経路514へパケットが転送される場合には、HTTPからCoEに変換する必要がある。
 データ検索クエリ610は、IO-Linkマスタであるスレーブのすべてからデータを収集するための命令をSQL言語で記述した例である。検索装置100は、データ検索クエリ610を受けて、リクエストパケット420を生成する。検索処理例その2においては、EtherCATのネットワークに接続されるスレーブに設定可能なアドレス範囲(通常は、#1~#254)のすべてについて、リクエストパケット420が繰り返し生成される。
 リクエストパケット420は、第1経路用パケット422と、第2経路用パケット424とを含む。リクエストパケット420は、さらに、IO-Linkマスタからサイクルタイムを読出すためのコマンド426を含む。
 図10を参照して、SQL言語で記述したデータ検索クエリ610は、RESTに準拠したデータ検索クエリは612として記述することもできる。いずれの表現形式で記述した場合であっても、データを収集する対象デバイス300を特定するための情報(データ検索クエリ610,612の「1」,「2」の部分)が含まれている。また、データ検索クエリ610,612は、収集すべきデータの種類を特定するための情報(データ検索クエリ610,612の「3」の部分)も含む。
 以下、データ検索クエリ610,612の「1」,「2」,「3」の部分がどのように解析されて、リクエストパケット420が生成されるのかについて説明する。
 データ検索クエリ610,612の「1」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるEIP階層構成情報を参照して、データ検索クエリにおいて指定された「Machine1」がIPアドレスとして「192.168.250.1」をもつコントローラであることを特定するとともに、コントローラがEtherCATのネットワークとして「ECAT」を有していることを特定する(解析処理432)。
 また、検索装置100は、デバイスプロファイル1042を参照して、ネットワーク「ECAT」への通信は、アプリケーション「ecat_sys.cgi」へコマンドを発行することで実現できることを特定する(解析処理433)。
 検索装置100は、解析処理432および解析処理433による特定結果に基づいて、第1経路用パケット422を生成する。
 データ検索クエリ610,612の「2」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるEtherCAT階層構成情報を参照して、データ検索クエリにおいて指定された「node*」がEtherCATのスレーブすべて(設定可能なアドレスすべて)を意味することを特定する(解析処理434)。
 また、検索装置100は、デバイスプロファイル1042を参照して、EtherCATのスレーブへの通信は「CoE」であることを特定するとともに、スレーブがIO-Linkマスタであれば「CoE」を発行することを特定する(解析処理435)。
 検索装置100は、解析処理434および解析処理435による特定結果に基づいて、第2経路用パケット424を生成する。第2経路用パケット424は、第1経路用パケット422に組込まれる。
 データ検索クエリ610,612の「3」の部分については、検索装置100は、デバイスプロファイル1042を参照して、IO-Linkマスタの「Cycle_Time」のメモリアドレスは「0x0834」であることを特定する(解析処理436)。
 検索装置100は、解析処理436による特定結果に基づいて、コマンド426を生成する。コマンド426は、第2経路用パケット424に組込まれる。
 以上のような一連の解析処理によって、リクエストパケット420が生成される。リクエストパケット420の生成は、EtherCATのネットワークに接続されるスレーブに設定可能なアドレス範囲のすべてについて繰り返される。ただし、各スレーブがIO-Linkマスタであるか否かが判断されるため、現実にリクエストパケット420が生成されるのは、IO-Linkマスタのスレーブと同数だけになる。
 (e3:検索処理例その3)
 図11は、本実施の形態に係る制御システム1における検索処理例その3を説明するための図である。図11に示す検索処理例その3は、上述の図9および図10に示す検索処理例その2に対して、検索条件をさらに付加したものであるので、検索処理例その2と同様の処理については、同一の参照符号を付与している。
 検索処理例その3として、「PLC200とEtherCATのネットワークを介して接続されているAAA製のIO-Linkマスタであるスレーブのすべてからサイクルタイムを収集する」例を示す。ここで、「AAA」はスレーブの製造メーカ名またはベンダ名であるとする。
 このような検索処理は、SQL言語で記述したデータ検索クエリ620のように定義できる。あるいは、SQL言語で記述したデータ検索クエリ620は、RESTに準拠したデータ検索クエリは622として記述することもできる。いずれの表現形式で記述した場合であっても、データを収集する対象デバイス300を特定するための情報(データ検索クエリ620,622の「1」,「2」の部分)が含まれている。また、データ検索クエリ620,622は、収集すべきデータの種類を特定するための情報(データ検索クエリ620,622の「3」の部分)も含む。
 以下、データ検索クエリ620,622の「1」,「2」,「3」の部分がどのように解析されて、リクエストパケット420が生成されるのかについて説明する。
 データ検索クエリ620,622の「1」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるEIP階層構成情報を参照して、データ検索クエリにおいて指定された「Machine1」がIPアドレスとして「192.168.250.1」をもつコントローラであることを特定するとともに、コントローラがEtherCATのネットワークとして「ECAT」を有していることを特定する(解析処理432)。
 また、検索装置100は、デバイスプロファイル1042を参照して、ネットワーク「ECAT」への通信は、アプリケーション「ecat_sys.cgi」へコマンドを発行することで実現できることを特定する(解析処理433)。
 検索装置100は、解析処理432および解析処理433による特定結果に基づいて、第1経路用パケット422を生成する。
 データ検索クエリ620,622の「2」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるEtherCAT階層構成情報を参照して、データ検索クエリにおいて指定された「node*」がEtherCATのスレーブすべて(設定可能なアドレスすべて)を意味することを特定する(解析処理434)。
 また、検索装置100は、デバイスプロファイル1042を参照して、EtherCATのスレーブへの通信は「CoE」であることを特定するとともに、スレーブがAAA製のIO-Linkマスタであれば「CoE」を発行することを特定する(解析処理435A)。
 検索装置100は、解析処理434および解析処理435Aによる特定結果に基づいて、第2経路用パケット424を生成する。第2経路用パケット424は、第1経路用パケット422に組込まれる。
 データ検索クエリ620,622の「3」の部分については、検索装置100は、デバイスプロファイル1042を参照して、IO-Linkマスタの「Cycle_Time」のメモリアドレスは「0x0834」であることを特定する(解析処理436)。
 検索装置100は、解析処理436による特定結果に基づいて、コマンド426を生成する。コマンド426は、第2経路用パケット424に組込まれる。
 以上のような一連の解析処理によって、リクエストパケット420が生成される。リクエストパケット420の生成は、EtherCATのネットワークに接続されるスレーブに設定可能なアドレス範囲のすべてについて繰り返される。ただし、各スレーブがAAA製のIO-Linkマスタであるか否かが判断されるため、現実にリクエストパケット420が生成されるのは、AAA製のIO-Linkマスタのスレーブと同数だけになる。
 (e4:検索処理例その4)
 図12は、本実施の形態に係る制御システム1における検索処理例その4を説明するための図である。図12に示す検索処理例その4は、上述の図11に示す検索処理例その3に対して、検索条件をさらに付加したものであるので、検索処理例その3ならびに検索処理例その3が参照する検索処理例その2と同様の処理については、同一の参照符号を付与している。
 検索処理例その4として、「PLC200とEtherCATのネットワークを介して接続されているAAA製のIO-Linkマスタのうちスレーブであって、エラー発生中のスレーブのすべてからサイクルタイムを収集する」例を示す。
 このような検索処理は、SQL言語で記述したデータ検索クエリ630のように定義できる。あるいは、SQL言語で記述したデータ検索クエリ630は、RESTに準拠したデータ検索クエリは632として記述することもできる。いずれの表現形式で記述した場合であっても、データを収集する対象デバイス300を特定するための情報(データ検索クエリ630,632の「1」,「2」の部分)が含まれている。また、データ検索クエリ630,632は、収集すべきデータの種類を特定するための情報(データ検索クエリ630,632の「3」の部分)も含む。
 以下、データ検索クエリ630,632の「1」,「2」,「3」の部分がどのように解析されて、リクエストパケット420Aが生成されるのかについて説明する。検索処理例その4においては、「エラー発生中のスレーブ」との条件は、各デバイスに与えられるコマンド428に含まれることになる。
 データ検索クエリ630,632の「1」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるEIP階層構成情報を参照して、データ検索クエリにおいて指定された「Machine1」がIPアドレスとして「192.168.250.1」をもつコントローラであることを特定するとともに、コントローラがEtherCATのネットワークとして「ECAT」を有していることを特定する(解析処理432)。
 また、検索装置100は、デバイスプロファイル1042を参照して、ネットワーク「ECAT」への通信は、アプリケーション「ecat_sys.cgi」へコマンドを発行することで実現できることを特定する(解析処理433)。
 検索装置100は、解析処理432および解析処理433による特定結果に基づいて、第1経路用パケット422を生成する。
 データ検索クエリ630,632の「2」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるEtherCAT階層構成情報を参照して、データ検索クエリにおいて指定された「node*」がEtherCATのスレーブすべて(設定可能なアドレスすべて)を意味することを特定する(解析処理434)。
 また、検索装置100は、デバイスプロファイル1042を参照して、EtherCATのスレーブへの通信は「CoE」であることを特定するとともに、スレーブがAAA製のIO-Linkマスタであれば「CoE」を発行することを特定する(解析処理435A)。
 検索装置100は、解析処理434および解析処理435Aによる特定結果に基づいて、第2経路用パケット424を生成する。第2経路用パケット424は、第1経路用パケット422に組込まれる。
 データ検索クエリ620,622の「3」の部分については、検索装置100は、デバイスプロファイル1042を参照して、IO-Linkマスタの「Status_Data」のメモリアドレスは「0xF100」であることを特定する(解析処理437)。また、検索装置100は、デバイスプロファイル1042を参照して、IO-Linkマスタの「Cycle_Time」のメモリアドレスは「0x0834」であることを特定する(解析処理436)。
 検索装置100は、解析処理437および解析処理436による特定結果に基づいて、コマンド428を生成する。コマンド428は、「Status_Data」を読出すとともに、読出した「Status_Data」が「NoError」ではない、つまり「エラー発生中」である場合に限って、「Cycle_Time」を読出すように指示する命令を含む。コマンド428は、第2経路用パケット424に組込まれる。
 このように、検索装置100の通信処理部108は、データ検索クエリにおいて指定された検索条件に相当する命令を含むコマンド428を生成するようにしてもよい。図12に示すコマンド428では、「エラー発生中」というフィルタリングを検索条件の一例として示しているが、これに限らず、ソートやランキング(ソート順の計算)といった任意の検索条件を組入ることができる。
 以上のような一連の解析処理によって、リクエストパケット420Aが生成される。リクエストパケット420Aの生成は、EtherCATのネットワークに接続されるスレーブに設定可能なアドレス範囲のすべてについて繰り返される。ただし、各スレーブがAAA製のIO-Linkマスタであるか否かが判断されるため、現実にリクエストパケット420が生成されるのは、AAA製のIO-Linkマスタのスレーブと同数だけになる。
 (e5:検索処理例その5)
 図13は、本実施の形態に係る制御システム1における検索処理例その5を説明するための図である。図13に示す検索処理例その5は、上述の図11に示す検索処理例その3に対して、検索条件をさらに付加したものであるので、検索処理例その3ならびに検索処理例その3が参照する検索処理例その2と同様の処理については、同一の参照符号を付与している。
 検索処理例その5として、検索処理例その4と同様に、「PLC200とEtherCATのネットワークを介して接続されているAAA製のIO-Linkマスタのうちスレーブであって、エラー発生中のスレーブのすべてからサイクルタイムを収集する」例を示す。
 上述の検索処理例その4においては、「エラー発生中のスレーブ」との条件は、各デバイスに与えられるコマンド428に含まれていたが、検索処理例その5においては、索引1043を参照して、対象デバイス300(スレーブ)を事前に選択する処理例を示す。
 以下、データ検索クエリ630,632の「1」,「2」,「3」の部分がどのように解析されて、リクエストパケット420Aが生成されるのかについて説明する。検索処理例その4においては、「エラー発生中のスレーブ」との条件は、各デバイスに与えられるコマンド428に含まれることになる。
 データ検索クエリ630,632の「1」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるEIP階層構成情報を参照して、データ検索クエリにおいて指定された「Machine1」がIPアドレスとして「192.168.250.1」をもつコントローラであることを特定するとともに、コントローラがEtherCATのネットワークとして「ECAT」を有していることを特定する(解析処理432)。
 また、検索装置100は、デバイスプロファイル1042を参照して、ネットワーク「ECAT」への通信は、アプリケーション「ecat_sys.cgi」へコマンドを発行することで実現できることを特定する(解析処理433)。
 検索装置100は、解析処理432および解析処理433による特定結果に基づいて、第1経路用パケット422を生成する。
 データ検索クエリ630,632の「2」の部分については、検索装置100は、プロファイルデータベース104の構成情報1041に含まれるEtherCAT階層構成情報を参照して、データ検索クエリにおいて指定された「node*」がEtherCATのスレーブすべて(設定可能なアドレスすべて)を意味することを特定する(解析処理434)。
 また、検索装置100は、デバイスプロファイル1042を参照して、EtherCATのスレーブへの通信は「CoE」であることを特定するとともに、スレーブがAAA製のIO-Linkマスタであれば「CoE」を発行することを特定する(解析処理435A)。
 また、検索装置100は、索引1043を参照して、「Status_Data」が「NoError」ではない、つまり「エラー発生中」であるスレーブを抽出する(解析処理438)。このように、検索装置100の通信処理部108は、各デバイスの状態値を示す情報である索引1043を参照して、データ検索クエリにおいて指定された検索条件に合致するデバイスを特定するようにしてもよい。
 検索装置100は、解析処理434および解析処理435Aに基づいて、第2経路用パケット424を生成する。ここで、生成される第2経路用パケット424は、解析処理438において抽出されたスレーブに対するもののみとなる。第2経路用パケット424は、第1経路用パケット422に組込まれる。
 データ検索クエリ620,622の「3」の部分については、検索装置100は、デバイスプロファイル1042を参照して、IO-Linkマスタの「Cycle_Time」のメモリアドレスは「0x0834」であることを特定する(解析処理436)。
 検索装置100は、解析処理436による特定結果に基づいて、コマンド426を生成する。コマンド426は、第2経路用パケット424に組込まれる。
 以上のような一連の解析処理によって、リクエストパケット420が生成される。検索処理例その5においては、リクエストパケット420は、「エラー発生中」のIO-Linkマスタのみに対して生成されるので、通信量を低減できる。
 <F.処理手順>
 次に、本実施の形態に係る制御システム1における検索処理の処理手順を説明する。
 図14は、本実施の形態に係る制御システムにおける検索処理の処理手順を示すフローチャートである。図14に示す各ステップは、典型的には、検索装置100のプロセッサ152が検索プログラム1560(図4)を実行することで実現される。
 図14を参照して、検索装置100は、外部からのデータ検索クエリを受信したか否かを判断する(ステップS100)。データ検索クエリを受信していなければ(ステップS100においてNO)、ステップS100の処理が繰り返される。
 データ検索クエリを受信していれば(ステップS100においてYES)、検索装置100は、受信したデータ検索クエリを解析して対象デバイス300を特定する(ステップS102)とともに、特定した対象デバイス300の接続位置および対象デバイス300までの経路を特定する(ステップS104)。ステップS102においては、複数のデバイスが対象として特定される場合もある。
 検索装置100は、対象デバイス300までの経路のうち最上階層の経路を選択し(ステップS106)、構成情報1041を参照して、アドレスおよびプロトコルなどの情報を取得する(ステップS108)。また、検索装置100は、特定した対象デバイス300までの経路のうち最上階層の経路について、デバイスプロファイル1042を参照して、次の階層へのデータ転送に必要な情報を取得する(ステップS110)。そして、検索装置100は、ステップS108およびS110において取得した情報に基づいてパケットを生成する(ステップS112)。検索装置100は、先に生成されているパケットが存在する場合には、ステップS112において生成したパケットをカプセル化して、先に生成されているパケットに組込む。
 検索装置100は、先のステップS108~S112の処理によって、対象デバイス300までの経路のすべてについてのパケットが生成されたか否かを判断する(ステップS114)。対象デバイス300までの経路のすべてについてのパケットが生成されていなければ(ステップS114においてNO)、検索装置100は、対象デバイス300までの経路のうち次の経路を選択し(ステップS116)、ステップS108以下の処理を繰り返す。
 対象デバイス300までの経路のすべてについてのパケットが生成されていれば(ステップS114においてYES)、検索装置100は、デバイスプロファイル1042を参照して、データ検索クエリにおいて指定されたデータを収集するためのコマンド、および/または、データ検索クエリにおいて指定された検索条件に必要な情報を収集するためのコマンドを取得する(ステップS118)。そして、検索装置100は、先に生成されているパケットに取得したコマンドを組込む(ステップS120)。
 なお、ステップS120において、検索装置100は、データ検索クエリにおいて指定された検索条件に対応する命令を含むコマンドを生成することもある。
 そして、検索装置100は、ステップS120においてコマンドを組込んだパケットを検索対象2(対象デバイス300)に送信し(ステップS122)、当該対象デバイス300からのレスポンスパケットの受信を待つ(ステップS124)。
 検索装置100は、対象デバイス300からのレスポンスパケットを受信すると、受信したレスポンスパケットに含まれる検索結果をデータ検索クエリに対応する形式に成形し(ステップS126)、成形した検索結果をクエリ要求元に返信する(ステップS128)。なお、複数の受信したレスポンスパケットに対して、マージ処理やフィルタリング処理を行った上で、検索結果を生成するようにしてもよい。
 以上の処理によって、データ検索クエリに対する探索処理が完了する。
 <G.クエリ要求元>
 次に、本実施の形態に係る制御システム1に対してデータ検索クエリを生成および送信するクエリ要求元での処理例について説明する。
 (g1:データ検索クエリの生成)
 データ検索クエリの要求元において、データ検索クエリは任意の形態で生成できる。例えば、ユーザ指示に応じて、SQL言語で記述されたデータ検索クエリを自動的に生成するようなアプリケーションプログラムを作成してもよい。このようなアプリケーションプログラムは、任意のプログラミング言語を用いて作成できる。
 また、任意のSQLクエリを生成できるアプリケーションを用いて、ユーザが任意のデータ検索クエリを作成するようにしてもよい。この場合、検索装置100と連携することで、プロファイルデータベース104に含まれる、構成情報1041、デバイスプロファイル1042、および索引1043の情報を参照して、データ検索クエリに記述可能な要素の一覧を表示できるようにしてもよい。この場合、ユーザが生成したデータ検索クエリに対する検索結果を当該アプリケーション上で表示するようにしてもよい。
 また、Webサーバ上に配置されたHTMLドキュメントをブラウザで表示するとともに、ユーザがブラウザを操作することで、RESTに準拠した形式で記述されたデータ検索クエリを生成するようにしてもよい。この場合、検索結果についても同一のブラウザ上に表示するようにしてもよい。
 (g2:検索結果の利用)
 検索装置100がデータ検索クエリに応答して検索処理を実行することで得られる検索結果は、任意の形態で利用できる。
 例えば、検索結果を任意のアプリケーションを用いて表示または動作させることができる。例えば、Windows(登録商標)上で実行される任意のアプリケーションで利用することができる。
 さらに、Webアプリケーションとして実装してもよい。図15および図16は、本実施の形態に係る制御システム1を利用して提供されるWebアプリケーションの一例を説明するための図である。図15を参照して、例えば、携帯端末あるいはパーソナルコンピュータ上で実行されるブラウザ700から検索装置100に対してリモートアクセスする。この場合、検索装置100にはWebサーバ112が実装されており、Webサーバ112が提供するHTMLドキュメントがブラウザ700で表示されてもよい。
 ユーザがブラウザ700を操作することで、ブラウザ700から検索装置100には、RESTに準拠した形式で記述されたデータ検索クエリが送信される。検索装置100がデータ検索クエリに応答して検索して得られた検索結果は、ブラウザ700上に表示されてもよい(HTMLドキュメント)。
 例えば、図16(a)を参照して、検索装置100のWebサーバ112からは、検索対象2のネットワーク構成を示す模式図が表示されるとともに、ユーザが任意のデバイスあるいは異常メッセージを選択すると、データ検索クエリの生成および検索処理が実行され、図16(b)に示すような形態でその検索結果を表示してもよい。
 なお、図15に示す構成に代えて、Webサーバを検索装置100とは異なる処理主体に配置してもよい。
 図17は、本実施の形態に係る制御システム1を利用してWebアプリケーションを提供するための別の実装例を示す模式図である。図17を参照して、例えば、検索対象2を統括するPLCなどにWebサーバ710を配置するとともに、携帯端末あるいはパーソナルコンピュータ上で実行されるブラウザ700からWebサーバ710に対してリモートアクセスする。Webサーバ710は、ブラウザ700からのアクセスに応答して、要求されたデータ検索クエリを生成する。例えば、データ検索クエリはJSON形式で生成されてもよい。
 このデータ検索クエリに対して、検索装置100は、検索処理を実行し、その検索結果をJSON形式で応答する。Webサーバ710は、検索装置100からの検索結果に基づいてHTMLドキュメントを生成し、ブラウザ700へ送信するようにしてもよい。
 データ検索クエリの生成方法および検索結果の利用形態については、上述したものに限られず、任意の方法および形態を採用できる。
 <H.その他の形態>
 上述の実施の形態においては、検索装置100が一連の処理を実行する構成について説明したが、これに限られず、検索装置100が実行する処理を複数の処理主体で分散して実行するようにしてもよい。例えば、データ検索クエリの解析処理とリクエストパケットの生成処理とを異なる処理主体で実行してもよい。この場合、データ検索クエリの解析処理は、ネットワーク上のクラウドコンピュータで実行し、その解析結果に基づいて、検索対象2とネットワーク接続された検索装置がリクエストパケットを実際に対象デバイス300に送信するようにしてもよい。
 あるいは、検索対象2とネットワーク接続された検索装置がデータ検索クエリを解析し、その解析結果に基づいて、検索対象2内の任意のPLCがリクエストパケットを対象デバイス300に送信するようにしてもよい。
 これに限られず、検索対象2の構成または規模などに応じて、本実施の形態に係る検索機能は任意の形態で実装できる。
 また、本実施の形態に係る検索機能は、既存のPLCあるいはデバイスに対して、事後的にプログラムを追加する形で実装することもできる。この場合、事後的に追加されるプログラムが本発明の対象となり得る。
 <I.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
 少なくとも1つのデバイス(300)からなる制御システム(1)であって、
 前記制御システムのデバイスの接続関係を含む構成情報(1041)、および、各デバイスの特性を示す情報を含むデバイスプロファイル(1042)を保持するデータベース(104)と、
 外部からのデータ検索クエリ(600)に応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケット(400)を生成して対象デバイス(300)へ送信するとともに、当該対象デバイスからのレスポンスパケット(450)を受信する通信処理部(108)と、
 前記通信処理部により受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形する成形部(110)とを備える、制御システム。
[構成2]
 前記通信処理部は、前記構成情報を参照して、前記対象デバイスの接続位置に到達するために前記リクエストパケットを生成する、構成1に記載の制御システム。
[構成3]
 前記通信処理部は、前記構成情報を参照して、前記対象デバイスまでの経路を特定するとともに、特定した経路に対応するプロトコルに応じたパケットを生成する、構成1または2に記載の制御システム。
[構成4]
 前記通信処理部は、前記対象デバイスまでの経路に応じてそれぞれ生成されるパケット(402,404,406)をカプセル化して前記リクエストパケットを生成する、構成3に記載の制御システム。
[構成5]
 前記通信処理部は、前記デバイスプロファイルを参照して、前記対象デバイスから前記データ検索クエリにより指定されたデータを収集するためのコマンド(408)を前記リクエストパケットに含める、構成1~4のいずれか1項に記載の制御システム。
[構成6]
 前記通信処理部は、前記データ検索クエリにおいて指定された検索条件に相当する命令を含む前記コマンドを生成する、構成5に記載の制御システム。
[構成7]
 前記データベースは、前記制御システムに含まれる各デバイスの状態値を示す情報(1043)をさらに保持しており、
 前記通信処理部は、各デバイスの状態値を示す情報を参照して、前記データ検索クエリにおいて指定された検索条件に合致するデバイスを特定する、構成1~6のいずれか1項に記載の制御システム。
[構成8]
 前記データ検索クエリは、SQL言語またはRESTに準拠した形式で記述されている、構成1に記載の制御システム。
[構成9]
 少なくとも1つのデバイス(300)からなる制御システムに接続される検索装置(100)であって、
 前記制御システムのデバイスの接続関係を含む構成情報(1041)、および、各デバイスの特性を示す情報を含むデバイスプロファイル(1042)を保持するデータベース(104)と、
 外部からのデータ検索クエリ(600)に応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケット(400)を生成して対象デバイス(300)へ送信するとともに、当該対象デバイスからのレスポンスパケット(450)を受信する通信処理部(108)と、
 前記通信処理部により受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形する成形部(110)とを備える、検索装置。
[構成10]
 少なくとも1つのデバイスからなる制御システム(1)に接続されるコンピュータ(100)で実行される検索プログラム(1560)であって、前記コンピュータに、
 前記制御システムのデバイスの接続関係を含む構成情報(1041)、および、各デバイスの特性を示す情報を含むデバイスプロファイル(1042)をデータベース(104)に保持するステップと、
 外部からのデータ検索クエリ(600)に応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケット(400)を生成して対象デバイス(300)へ送信するとともに、当該対象デバイスからのレスポンスパケット(450)を受信するステップ(S102~S124)と、
 前記受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形するステップ(S126)とを実行させる、検索プログラム。
 <J.利点>
 本実施の形態に係る制御システムによれば、SQL言語やRESTに準拠した形式といった一般的な形式のデータ検索クエリを与えるだけで、対象デバイスに向けられるリクエストパケットが生成される。このように生成されるリクエストパケットを制御システム内で送信することによって、制御システム内の任意のデバイスの任意の情報を収集できる。
 データ検索クエリの要求元から見れば、制御システム内のネットワークトポロジやプロトコルの相違などを意識することなく、任意の条件に合致するデバイスから、任意のデータを収集できる。これによって、汎用的なアプリケーションに利用できる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 制御システム、2 検索対象、100 検索装置、102 インターフェイス、104 プロファイルデータベース、106 クエリ処理部、108 通信処理部、110 データ成形部、112,710 Webサーバ、152 プロセッサ、154 メインメモリ、156 ストレージ、158 上位ネットワークコントローラ、160 入力部、162 表示部、164 下位ネットワークコントローラ、166 メモリカードインターフェイス、168 メモリカード、170 プロセッサバス、200 PLC、300 デバイス、302 作業領域、304 プロファイル、306 データソース、400,420,420A リクエストパケット、402,422 第1経路用パケット、404,424 第2経路用パケット、406 第3経路用パケット、408,426,428 コマンド、412,413,414,415,416,417,418,419,432,433,434,435,435A,436,437,438 解析処理、450 レスポンスパケット、500,510 ネットワーク階層設定、502,512 第1経路、504,514 第2経路、506 第3経路、600,602,610,612,620,622,630,632 データ検索クエリ、650 検索結果、700 ブラウザ、730 ユーザインターフェイス、1021 クエリ入力部、1022 結果出力部、1041 構成情報、1042 デバイスプロファイル、1043 索引、1081 ジョブ管理部、1082 ジョブ処理部、1560 検索プログラム、1562 システムプログラム。

Claims (10)

  1.  少なくとも1つのデバイスからなる制御システムであって、
     前記制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルを保持するデータベースと、
     外部からのデータ検索クエリに応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する通信処理部と、
     前記通信処理部により受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形する成形部とを備える、制御システム。
  2.  前記通信処理部は、前記構成情報を参照して、前記対象デバイスの接続位置に到達するために前記リクエストパケットを生成する、請求項1に記載の制御システム。
  3.  前記通信処理部は、前記構成情報を参照して、前記対象デバイスまでの経路を特定するとともに、特定した経路に対応するプロトコルに応じたパケットを生成する、請求項1または2に記載の制御システム。
  4.  前記通信処理部は、前記対象デバイスまでの経路に応じてそれぞれ生成されるパケットをカプセル化して前記リクエストパケットを生成する、請求項3に記載の制御システム。
  5.  前記通信処理部は、前記デバイスプロファイルを参照して、前記対象デバイスから前記データ検索クエリにより指定されたデータを収集するためのコマンドを前記リクエストパケットに含める、請求項1~4のいずれか1項に記載の制御システム。
  6.  前記通信処理部は、前記データ検索クエリにおいて指定された検索条件に相当する命令を含む前記コマンドを生成する、請求項5に記載の制御システム。
  7.  前記データベースは、前記制御システムに含まれる各デバイスの状態値を示す情報をさらに保持しており、
     前記通信処理部は、各デバイスの状態値を示す情報を参照して、前記データ検索クエリにおいて指定された検索条件に合致するデバイスを特定する、請求項1~6のいずれか1項に記載の制御システム。
  8.  前記データ検索クエリは、SQL言語またはRESTに準拠した形式で記述されている、請求項1に記載の制御システム。
  9.  少なくとも1つのデバイスからなる制御システムに接続される検索装置であって、
     前記制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルを保持するデータベースと、
     外部からのデータ検索クエリに応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信する通信処理部と、
     前記通信処理部により受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形する成形部とを備える、検索装置。
  10.  少なくとも1つのデバイスからなる制御システムに接続されるコンピュータで実行される検索プログラムであって、前記コンピュータに、
     前記制御システムのデバイスの接続関係を含む構成情報、および、各デバイスの特性を示す情報を含むデバイスプロファイルをデータベースに保持するステップと、
     外部からのデータ検索クエリに応答して、前記データベースを参照して、当該データ検索クエリからリクエストパケットを生成して対象デバイスへ送信するとともに、当該対象デバイスからのレスポンスパケットを受信するステップと、
     前記受信されたレスポンスパケットに含まれる検索結果を前記データ検索クエリに対応する形式に成形するステップとを実行させる、検索プログラム。
PCT/JP2019/024239 2018-07-13 2019-06-19 制御システム、検索装置および検索プログラム WO2020012897A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018133625A JP7107046B2 (ja) 2018-07-13 2018-07-13 制御システム、検索装置および検索プログラム
JP2018-133625 2018-07-13

Publications (1)

Publication Number Publication Date
WO2020012897A1 true WO2020012897A1 (ja) 2020-01-16

Family

ID=69142997

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/024239 WO2020012897A1 (ja) 2018-07-13 2019-06-19 制御システム、検索装置および検索プログラム

Country Status (2)

Country Link
JP (1) JP7107046B2 (ja)
WO (1) WO2020012897A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112069201A (zh) * 2020-09-04 2020-12-11 北京百度网讯科技有限公司 目标数据的获取方法和装置
JP7494788B2 (ja) 2021-04-28 2024-06-04 オムロン株式会社 制御システム、データ提供方法および中継処理プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11341060A (ja) * 1998-05-27 1999-12-10 Fuji Electric Co Ltd ネットワークシステム、送信装置、中継装置、受信装置、および、記録媒体
JP2004302849A (ja) * 2003-03-31 2004-10-28 Mitsubishi Electric Corp Faコントローラ
JP2005260893A (ja) * 2004-03-15 2005-09-22 Omron Corp 情報変換サーバおよびネットワークシステムならびに情報伝送方法
WO2014050192A1 (ja) * 2012-09-27 2014-04-03 オムロン株式会社 デバイス管理装置及びデバイス検索方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5445619B2 (ja) * 2011-04-28 2014-03-19 キヤノンマーケティングジャパン株式会社 情報処理装置システム、情報処理システムの制御方法、プログラム、および記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11341060A (ja) * 1998-05-27 1999-12-10 Fuji Electric Co Ltd ネットワークシステム、送信装置、中継装置、受信装置、および、記録媒体
JP2004302849A (ja) * 2003-03-31 2004-10-28 Mitsubishi Electric Corp Faコントローラ
JP2005260893A (ja) * 2004-03-15 2005-09-22 Omron Corp 情報変換サーバおよびネットワークシステムならびに情報伝送方法
WO2014050192A1 (ja) * 2012-09-27 2014-04-03 オムロン株式会社 デバイス管理装置及びデバイス検索方法

Also Published As

Publication number Publication date
JP7107046B2 (ja) 2022-07-27
JP2020013223A (ja) 2020-01-23

Similar Documents

Publication Publication Date Title
JP4285420B2 (ja) センサネット管理システム
US20150066979A1 (en) Device address management in an automation control system
JP4185060B2 (ja) プロトコル変換装置、被アクセス装置、プログラムおよび方法
WO2020012897A1 (ja) 制御システム、検索装置および検索プログラム
JP6224698B2 (ja) 航空機情報管理システム
EP2804361B1 (en) Integrated interface system for power-system monitoring and control system
JP7107047B2 (ja) 制御システム、検索装置および検索プログラム
KR101107359B1 (ko) 센서 노드의 리소스를 제공하는 시스템
KR101076999B1 (ko) 센서 네트워크에서 센서 노드의 리소스를 제공하는 시스템
KR20160103110A (ko) 네트워크 요소 데이터 액세스 방법, 액세스 장치, 및 네트워크 관리 시스템
CN110768939B (zh) 数据帧的配置方法、设备控制方法和设备控制系统
CN111971630B (zh) 管理装置及管理系统
JP5550595B2 (ja) エンジニアリング装置
JP2003032257A (ja) Lan構成装置の設置場所の特定方法および検索装置
KR101723561B1 (ko) 사물웹 플러그인 시스템
JP2016167671A (ja) 管理プログラム、管理方法、管理装置
KR101277011B1 (ko) 어플리케이션 프로토콜간 통신을 지원하는 통합 센서 네트워크 게이트웨이 및 이를 이용한 통신 방법
TWI808721B (zh) 控制系統、資料提供方法以及中繼處理程式
US11553040B2 (en) Relay apparatus and relay method
KR20180094343A (ko) 데이터 처리 중계 장치
JP5312124B2 (ja) ネットワーク管理方法及びシステム、並びにネットワーク管理システム用プログラム
JP7239986B2 (ja) 管理装置及び管理方法
JP2024001683A (ja) 情報処理装置及び情報処理プログラム
JP4999880B2 (ja) コントローラー及びそれを備えたネットワークシステム
CN115589351A (zh) 一种查询方法、装置及设备

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19834125

Country of ref document: EP

Kind code of ref document: A1