WO2022230429A1 - 制御システム、データ提供方法および中継処理プログラム - Google Patents

制御システム、データ提供方法および中継処理プログラム Download PDF

Info

Publication number
WO2022230429A1
WO2022230429A1 PCT/JP2022/012246 JP2022012246W WO2022230429A1 WO 2022230429 A1 WO2022230429 A1 WO 2022230429A1 JP 2022012246 W JP2022012246 W JP 2022012246W WO 2022230429 A1 WO2022230429 A1 WO 2022230429A1
Authority
WO
WIPO (PCT)
Prior art keywords
character string
control system
alias
string
access request
Prior art date
Application number
PCT/JP2022/012246
Other languages
English (en)
French (fr)
Inventor
豊 田原
雄大 永田
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Priority to US18/553,140 priority Critical patent/US20240184256A1/en
Priority to CN202280024351.9A priority patent/CN117083606A/zh
Priority to EP22795351.0A priority patent/EP4332790A1/en
Publication of WO2022230429A1 publication Critical patent/WO2022230429A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation

Definitions

  • the present invention relates to a control system, data provision method and relay processing program.
  • Patent Document 1 discloses a configuration capable of collecting arbitrary information of arbitrary devices in a control system using a general-purpose interface.
  • Patent Document 2 discloses a configuration capable of efficiently collecting arbitrary information of arbitrary devices in a control system according to state changes in the control system.
  • a control system includes one or more controllers.
  • the control system includes a processing unit that determines processing for the control device or a device connected to the control device according to the access request, and a processing unit that transmits data acquired by executing the determined processing to the source of the access request. and at least one set of a first character string and a second character string longer than the first character string; an interpreter that replaces the included first string with the corresponding second string.
  • the interpreter replaces the access request with the original second character string. This makes it easier to obtain the necessary data by reducing the time and effort required to generate an access request, and even if the system configuration to be obtained is changed, the contents of the character string definition can be updated as appropriate. Flexible.
  • the interpretation unit may interpret a character string concatenated with a specific character string included in the access request as the first character string. According to this configuration, the first character string is replaced with the second character string only when it is concatenated with a specific character string. You can avoid such situations.
  • the access request may contain an access path indicating a route for accessing a control device or device included in the control system. According to this configuration, the access request can be used to clearly specify the route to the target control unit or device.
  • the access request may include a conversion instruction specifying a conversion process for data obtained from a control device or device included in the control system. According to this configuration, the data obtained from the control device or the device is provided with the result of the designated conversion processing, so that the processing after the data is received by the transmission source can be simplified.
  • the control system may further include a generator that searches for controllers and devices included in the control system and generates a set of the first character string and the second character string. This configuration facilitates the generation of access requests for obtaining data from any controllers and devices included in the control system.
  • the generation unit may generate a set of the first character string and the second character string that meet a preset condition. According to this configuration, by setting a condition according to a specific purpose, a set of the first character string and the second character string that match the condition is generated. This facilitates the generation of access requests and suppresses the generation of unnecessary pairs of the first character string and the second character string.
  • the control system may further include a registration unit that registers in the character string definition only an arbitrarily selected pair of the first character string and the second character string generated by the generation unit. According to this configuration, only a set of the first character string and the second character string for a specific purpose can be registered, so resources such as recording areas can be efficiently used.
  • the control system may further include an updating unit that updates the contents of the set of the first character string and the second character string included in the character string definition in accordance with a configuration change in the control system. According to this configuration, the content of the set of the first character string and the second character string is updated according to the configuration change in the control system. can continue to use the same access request as
  • a method of providing data in a control system including one or more controllers refers to a string definition including at least one set of a first string and a second string longer than the first string to obtain the first string included in the access request. determining a process for the control device or a device connected to the control device according to the access request; and accessing the data obtained by executing the determined process. and sending to the source of the request.
  • a relay processing program for providing computer executed data associated with a control system including one or more controllers.
  • the relay processing program instructs the computer to refer to a character string definition including at least one pair of a first character string and a second character string longer than the first character string, and obtain the first character included in the access request. replacing the column with a corresponding second character string; determining a process for the controller or a device connected to the controller according to the access request; and data obtained by performing the determined process. to the source of the access request.
  • the present invention it is possible to acquire necessary data more easily than in the prior art, and it is possible to respond more flexibly even when the system configuration to be acquired is changed.
  • FIG. 1 is a schematic diagram showing an example of the overall configuration of a control system according to an embodiment
  • FIG. FIG. 3 is a schematic diagram showing a main part of the functional configuration of the relay device of the control system according to the present embodiment
  • 3 is a block diagram showing an example hardware configuration of a relay device of the control system according to the present embodiment
  • FIG. 2 is a block diagram showing an example hardware configuration of a control device of the control system according to the present embodiment
  • FIG. 3 is a block diagram showing an example of functional configuration of a relay device of the control system according to the present embodiment
  • FIG. 4 is a schematic diagram showing an example of alias definitions stored in the relay device of the control system according to the present embodiment; It is a figure which shows an example of the conversion command which the relay apparatus of the control system which concerns on this Embodiment processes. It is a figure which shows an example of the query used with the control system which concerns on this Embodiment.
  • FIG. 7 is a diagram showing another example of queries used in the control system according to the embodiment; 7 is a flow chart showing a processing procedure related to alias management in the control system according to the present embodiment; 7 is a flowchart showing a query processing procedure in the control system according to the embodiment; 7 is a flow chart showing a processing procedure for automatic generation of aliases in the control system according to the present embodiment; FIG.
  • FIG. 4 is a schematic diagram showing an example of a user interface screen for selecting aliases in the control system according to the embodiment; 7 is a flow chart showing a processing procedure for alias selection and registration in the control system according to the present embodiment;
  • FIG. 4 is a schematic diagram showing an example of updating aliases in the control system according to the present embodiment;
  • FIG. 7 is a schematic diagram showing an example of processing for updating an alias according to a change in network configuration in the control system according to the embodiment;
  • FIG. 7 is a schematic diagram showing an example of processing for updating an alias in accordance with a change in modules in the control device of the control system according to the present embodiment;
  • FIG. 1 is a schematic diagram showing an example of the overall configuration of a control system 1 according to this embodiment.
  • control system 1 includes, as main components, relay device 100 and one or more control devices 200-1, 200-2, 200-3, . hereinafter also collectively referred to as “control device 200”).
  • the relay device 100 responds to a request for access to data held, managed, or generated by one or more control devices 200 (hereinafter also referred to as a “query”), acquires the requested data, and responds. .
  • One or more control devices 200 control control targets such as equipment and machines.
  • the control device 200 may be embodied as a kind of computer, such as a PLC (Programmable Logic Controller).
  • the relay device 100 and the control devices 200-1, 200-2, 200-3 are connected via the network 2 so as to be able to communicate with each other.
  • Control devices 200-1, 200-2 and 200-3 are connected to device 250-1 via field networks 6-1, 6-2 and 6-3 (hereinafter collectively referred to as "field network 6"), respectively.
  • field network 6 field networks 6-1, 6-2 and 6-3
  • device 250 2, 250-3 (hereinafter also collectively referred to as “device 250”).
  • device includes any device that retains, manages, or generates any data.
  • a “device” can include, for example, individual sensors and controllers that perform control operations.
  • the controller 200 is distinguished from the device 250 , but the term “device” may include the controller 200 and the device 250 .
  • FIG. 1 shows a remote I/O (Input/Output) device as an example of the device 250 .
  • a remote I/O device typically includes a communication unit that communicates via the field network 6 and an input/output unit that acquires input data and outputs output data. Input signals (input data) and output signals (output data) are exchanged with the controlled object.
  • the device 250 is not limited to remote I/O devices, and can include arbitrary devices such as various sensors and servo drivers.
  • FIG. 1 shows a configuration example in which one device 250 is connected to the field network 6 , the configuration is not limited to this, and a plurality of devices 250 may be connected to the field network 6 .
  • EtherCAT registered trademark
  • EtherNet/IP registered trademark
  • DeviceNet registered trademark
  • CompoNet registered trademark
  • the control system 1 may further include one or more display devices 300.
  • the display device 300 is also referred to as an HMI (Human Machine Interface) or the like, receives an operation from a user, and transmits a command or the like according to the user operation to the control device 200, and also displays data acquired from the control device 200. and so on graphically.
  • HMI Human Machine Interface
  • the relay device 100 is also connected to the network 4 in addition to the network 2 .
  • Information processing device 400 connected to network 4 transmits a query to relay device 100 .
  • the network 2 corresponds to a so-called OT (Operational Technology) network
  • the network 4 corresponds to a so-called IT (Information Technology) network.
  • the information processing device 400 is typically a general-purpose computer.
  • the information processing device 400 transmits a query from a general-purpose application such as a browser to the relay device 100 and acquires data held, managed, or generated by the control device 200 from the relay device 100 .
  • the relay device 100 receives a query from an arbitrary transmission source ((1) query), it acquires data by executing the processing specified by the query ( (2) process execution and (3) data acquisition). As a result, the relay device 100 transmits response data including the acquired data to the query transmission source ((4) response data).
  • the relay device 100 provides data held, managed, or generated by the control system 1 in response to any query.
  • FIG. 2 is a schematic diagram showing a main part of the functional configuration of the relay device 100 of the control system 1 according to this embodiment.
  • relay device 100 includes a processing unit 10, an interpreting unit 20, a storage unit 30, and a providing unit 40 as main functional configurations.
  • the processing unit 10 determines processing for the control device 200 or the device 250 connected to the control device 200 according to an access request (query) from the outside.
  • the providing unit 40 transmits the data acquired by executing the determined process to the source of the access request (query).
  • the relay device 100 can execute various processes on arbitrary control devices 200 and devices 250 included in the control system 1 according to queries.
  • the processing executed by relay device 100 typically includes processing for acquiring all or part of the data held or managed by control device 200 or device 250 .
  • Another process executed by the relay device 100 includes a process of changing the operation or behavior of the control device 200 or the device 250 .
  • Examples of the processing for changing the action or behavior include the following processing.
  • Control mode switching (run mode/program mode/debug mode) - Shutdown - Reboot - Start/stop of tasks and services - New creation/start/stop/delete of data trace - New creation/start/stop/delete of alarms Processing for changing the operation and behavior of the control device 200 or device 250 , for example, can acquire data including its execution results as a return value.
  • processing for the control device 200 or the device 250 connected to the control device 200 means any processing that the relay device 100 can perform for any control device 200 or device 25. includes the processing of Also, “data acquired by executing processing” includes arbitrary data acquired by executing processing on the target control device 200 or device 250 .
  • the storage unit 30 stores an alias definition 180 as a character string definition including at least one set of a first character string and a second character string longer than the first character string.
  • the alias definition 180 includes a character string that can be used as at least a part of a query (corresponding to a first character string, hereinafter also referred to as "alias name”) and a character string longer than the character string (alias name) (corresponding to the second character string).
  • alias name a character string that can be used as at least a part of a query
  • alias name a character string longer than the character string
  • alias refers to a character string that can be used as at least part of a query (that is, an alias name) alone, and a character string that can be used as at least part of a query and the character string Includes both combinations with longer strings that indicate the entity.
  • the "alias” that can be used in the control system 1 according to the embodiment may be called a “shortcut” or a “shortened expression”. That is, "alias", regardless of its name, includes the above-mentioned meaning.
  • the interpretation unit 20 refers to the character string definition (alias definition 180) stored in the storage unit 30 and replaces the first character string included in the access request with the corresponding second character string.
  • the interpretation unit 20 replaces the first character string included in the access request with the corresponding second character string, and the processing unit 10 determines the access target based on the access request after replacement. Therefore, an access request can be generated without knowing the access path to the access target, and the specific access path can be made anonymous. Furthermore, even if the configuration of the control system 1 or the like changes, it can be adapted to the changed configuration simply by updating the correspondence relationship (alias definition 180) between the first character string and the second character string. Therefore, there is no need to modify or change the access request itself.
  • FIG. 3 is a block diagram showing a hardware configuration example of the relay device 100 of the control system 1 according to this embodiment.
  • relay device 100 is an example of a computer, and includes one or more processors 102, optical drive 104, main storage device 106, secondary storage device 108, and USB (Universal Serial Bus). ) controller 110 , network controllers 112 and 114 , input section 116 and display section 118 . These components are connected via bus 120 .
  • the processor 102 is composed of, for example, a CPU (Central Processing Unit), MPU (Micro-Processing Unit), GPU (Graphics Processing Unit), etc., reads various programs stored in the secondary storage device 108, and stores them in the main storage device. 106 to implement various types of processing as described later.
  • a CPU Central Processing Unit
  • MPU Micro-Processing Unit
  • GPU Graphics Processing Unit
  • the secondary storage device 108 corresponds to the storage unit 30 shown in FIG. 2, and is composed of, for example, an HDD (Hard Disk Drive) or an SSD (Flash Solid State Drive).
  • the secondary storage device 108 typically stores an OS 122 and a relay processing program 124 for realizing processing described later. Note that the secondary storage device 108 may store necessary programs other than the relay processing program 124 shown in FIG. Further, the secondary storage device 108 stores system information 170 and alias definitions 180 (details will be described later).
  • the relay device 100 has an optical drive 104, which stores computer-readable code from a recording medium 105 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)), into which The stored computer readable code is read and installed in secondary storage device 108 or the like.
  • a recording medium 105 for example, an optical recording medium such as a DVD (Digital Versatile Disc)
  • DVD Digital Versatile Disc
  • the various programs executed by the relay device 100 may be installed via the computer-readable recording medium 105, or may be installed by being downloaded from any server device on the network. Also, the functions provided by the relay device 100 according to the present embodiment may be realized by using part of the software modules provided by the OS 122 .
  • the USB controller 110 is in charge of exchanging data with other information processing devices via a USB connection.
  • the network controller 112 is in charge of exchanging data with the control device 200 and the like via the network 2 .
  • the network controller 114 is in charge of exchanging data with the information processing device 400 and the like via the network 4 .
  • the input unit 116 is composed of a keyboard, mouse, etc., and receives user operations.
  • a display unit 118 includes a display, various indicators, a printer, and the like, and outputs processing results from the processor 102 and the like.
  • FIG. 3 shows a configuration example in which necessary functions are provided by the processor 102 executing a program. (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array), etc.).
  • processor 102 Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • FIG. 4 is a block diagram showing a hardware configuration example of the control device 200 of the control system 1 according to this embodiment.
  • control device 200 is an example of a computer, and includes processor 202, chipset 204, main storage device 206, secondary storage device 208, upper network controller 210, and USB controller 212. , a memory card interface 214, a field network controller 220, an internal bus controller 222, and I/O units 224-1, 224-2, .
  • the processor 202 is composed of, for example, a CPU, an MPU, a GPU, etc., reads various programs stored in the secondary storage device 108, develops them in the main storage device 206, and executes them, thereby executing control operations. environment.
  • the chipset 204 controls data transmission and the like between the processor 202 and each component.
  • the secondary storage device 208 stores a system program 231 for realizing an environment for executing control calculations, as well as a user program 232 that describes commands related to control calculations.
  • the upper network controller 210 is in charge of exchanging data with the relay device 100 and the like via the network 2 .
  • the USB controller 212 is in charge of exchanging data with a support device (not shown) through a USB connection.
  • the memory card interface 214 is configured such that a memory card 216 can be attached and detached, and data can be written to the memory card 216 and various data (user programs, trace data, etc.) can be read from the memory card 216.
  • the internal bus controller 222 is an interface that exchanges data with the I/O units 224-1, 224-2, .
  • the field network controller 220 is in charge of exchanging data with the device 250 via the field network 6.
  • FIG. 4 shows a configuration example in which necessary functions are provided by the processor 202 executing a program. Alternatively, it may be implemented using an FPGA, etc.).
  • Display device 300 of control system 1 is typically implemented using hardware (for example, a general-purpose personal computer) conforming to a general-purpose architecture. Since the hardware configuration example of the display device 300 is well known, detailed description thereof will not be provided.
  • Information processing device 400 of control system 1 is typically realized using hardware (for example, a general-purpose personal computer) conforming to a general-purpose architecture. Since the hardware configuration example of the information processing apparatus 400 is publicly known, detailed description thereof will not be provided.
  • FIG. 5 is a block diagram showing a functional configuration example of the relay device 100 of the control system 1 according to this embodiment. Each function shown in FIG. 5 is typically implemented by processor 102 of relay device 100 executing relay processing program 124 .
  • relay device 100 includes, as main functional configurations, interface module 150, alias setting module 152, query processing module 154, alias interpretation module 156, data conversion module 162, and data shaping module 164. including.
  • the relay device 100 also stores system information 170 and alias definitions 180 .
  • the interface module 150 receives queries from the information processing device 400 and the like, and transmits response data to the information processing device 400 .
  • the interface module 150 also receives various operations and instructions from the user.
  • the query processing module 154 corresponds to the processing unit 10 shown in FIG. 2, and determines processing for the control device 200 or the device 250 connected to the control device 200 according to the access request (query). More specifically, the query processing module 154 interprets the input query and notifies the communication processing module 160 of the access path specified by the query. More specifically, the query processing module 154 determines the access path based on the string corresponding to the alias from the alias interpretation module 156 while referring to the system information 170 .
  • the alias interpretation module 156 corresponds to the interpretation unit 20 shown in FIG. 2, and refers to the alias definition 180 to convert the alias (first character string) included in the access request into a corresponding character string (second character string). replace with That is, alias interpretation module 156 outputs a string corresponding to the specified alias included in the access request.
  • the communication processing module 160, the data conversion module 162, and the data shaping module 164 correspond to the providing unit 40 shown in FIG. 2, and transmit the data acquired by executing the determined processing to the source of the access request.
  • the communication processing module 160 accesses the device specified by the access path and acquires the specified data from the access destination device.
  • the data conversion module 162 converts or processes the data acquired from the target device according to the conversion instruction included in the query. More specifically, the data conversion module 162 performs processing such as numeric conversion, unit conversion, range conversion, and format conversion.
  • the data shaping module 164 shapes the acquired data into a specified output format.
  • Examples of data formats include JSON format, HTML format, XML format, CSV format, text format, and binary format. If the data format is not specified, the data may be converted into a predetermined data format.
  • the alias setting module 152 sets, registers, changes, and deletes aliases according to user's operations and instructions. Also, the alias setting module 152 may execute processes such as automatic generation of aliases, which will be described later.
  • the system information 170 includes configuration information 171, device profiles 172, and indexes 173, for example.
  • the configuration information 171 includes information indicating connection relationships of devices included in the control system 1 .
  • the configuration information 171 includes information that defines network topology, address information of each device, and communication protocol of each network.
  • the configuration information 171 may include physical or virtual network topology and information on unit configuration (address, type, communication band, etc.).
  • the configuration information 171 may be statically set in advance, or may be dynamically changed according to changes in the network configuration.
  • the device profile 172 includes information indicating the characteristics of each device. Specifically, the device profile 172 includes memory maps in the device, object specifications, type information, obtainable data (attributes), scaling, and the like.
  • the index 173 is information used to make access to devices more efficient, and includes information indicating the state value of each device included in the control system 1 . Specifically, the index 173 includes device attribute values and individual identification numbers (serial numbers, MAC addresses, etc.). The index 173 is typically dynamically generated, but may be statically generated in advance. Note that the index 173 is information used for speeding up access, and is not necessarily required, and may be implemented depending on the situation.
  • the alias definition 180 defines the relationship between aliases and corresponding character strings. Essentially, the alias definition 180 is used to determine the strings corresponding to aliases included in the query.
  • FIG. 6 is a schematic diagram showing an example of the alias definition 180 stored in the relay device 100 of the control system 1 according to this embodiment.
  • alias definition 180 includes character string 184 associated with alias name 182 .
  • An alias name 182 is an abbreviated representation of an arbitrary character string 184.
  • Character string 184 may include a conversion instruction indicating an access path to be accessed and/or a data conversion process.
  • alias names 182 registered in the alias definition 180, and arbitrary alias names 182 can be registered. Also, any alias name 182 can be adopted as long as it is not the same character string.
  • the relay device 100 interprets a specific character string included in the query as a conversion instruction, and executes conversion processing according to the conversion instruction.
  • FIG. 7 is a diagram showing an example of a conversion command processed by relay device 100 of control system 1 according to the present embodiment.
  • conversion instructions include arithmetic operations such as numerical operations, logical operations, comparison operations, bit operations, effective digit operations, and unit conversion. If a query contains a conversion instruction such as an operator, a character string, or a command for executing each operation, the relay apparatus 100 performs conversion processing or arithmetic processing specified according to the conversion instruction included in the query. to run.
  • the query may include a conversion command specifying conversion processing for data acquired from the control device 200 or the device 250 connected to the control device 200 .
  • the conversion instruction may also be included in the character string obtained by interpreting the above-mentioned alias. Furthermore, it is also possible to generate queries by combining aliases and conversion instructions.
  • the query may include "ROUND ("Distance", 2)" as a conversion command.
  • the query may include "CONVERT ("Temp", FAHRENHEIT, CELSIUS)" as a conversion command.
  • control system 1 in the control system 1 according to the present embodiment, arbitrary conversion processing can be executed in addition to data acquisition according to the conversion instruction included in the query.
  • queries can be written in a format conforming to REST (Representational State Transfer) used for providing Web services, for example.
  • the query may be written in the SQL language.
  • any format can be used for the description of the query.
  • any new format for writing queries may be adopted as it becomes popular.
  • the response data from the relay device 100 may be described in JSON (JavaScript Object Notation) format or HTML (HyperText Markup Language) format.
  • JSON JavaScript Object Notation
  • HTML HyperText Markup Language
  • FIG. 8 is a diagram showing an example of a query used in the control system 1 according to this embodiment.
  • FIG. 8 shows an example of a query conforming to REST.
  • the query shown in FIG. 8 is input from a device (eg, temperature sensor) connected via IO-Link from a unit connected to the control device 200 (or remote I/O device) included in the control system 1. It requests the acquisition of data (eg temperature readings). That is, the query shown in FIG. 8 is for the control device 200 (or remote I/O device) corresponding to the first hierarchy, the unit corresponding to the second hierarchy, and the device (for example, temperature sensor) corresponding to the third hierarchy. It requires three levels of access.
  • a device eg, temperature sensor
  • IO-Link from IO-Link from a unit connected to the control device 200 (or remote I/O device) included in the control system 1. It requests the acquisition of data (eg temperature readings). That is, the query shown in FIG. 8 is for the control device 200 (or remote I/O device
  • query 500 includes access destination description part 502 and query description parts 504, 505, 506, 507, and 508.
  • Access destination description section 502 includes a scheme specifying a communication protocol with relay device 100 and an authority specifying relay device 100 .
  • Query description parts 504, 505, 506, 507, and 508 mean access paths for specifying destinations for acquiring data.
  • the query may include an access path indicating a route for accessing the control device 200 or device 250 included in the control system 1.
  • the query description part 504 describes the item "eip" that specifies the control device 200 (or remote I/O device) corresponding to the first layer. In the example shown in FIG. 8A, it is "192.168.250.100". That is, the control device 200 (or remote I/O device) with the network address "192.168.250.100" is identified as the access target.
  • the query description part 505 describes the "unitno" item that specifies the unit corresponding to the second layer. In the example shown in FIG. 8A, it is "0x01". That is, the unit with the unit number "0x01" is specified as the access target.
  • the query description part 506 describes the item "iokink” that specifies the IO-Link for connecting to the device corresponding to the third layer. In the example shown in FIG. 8A, it is "port1". That is, an IO-Link whose master port number is "port1" is specified as an access target.
  • the query description part 507 describes an "Index" item that identifies the index number of the IO-Link device for connecting to the device corresponding to the third layer. In the example shown in FIG. 8A, it is "0x12". That is, a device with an IO-Link device index number of "0x12" is specified as an access target.
  • the query description section 508 describes a "format" item that specifies the format of the response data of the relay device 100 to the query 500. In the example shown in FIG. 8A, it is "json". That is, it is specified that the format of the response data from the relay device 100 is "JSON".
  • the path for accessing the devices and units included in the control system 1 becomes longer as the hierarchy becomes deeper. Therefore, it takes time to generate queries. Therefore, in the control system 1 according to the present embodiment, another character string obtained by shortening at least part of the character string included in the query is made available.
  • the relay device 100 interprets the alias included in the query into a corresponding character string and executes the specified process.
  • FIG. 8(B) shows a query 510 in which the query description parts 504, 505, 506, 507, and 508 included in the query 500 shown in FIG. 8(A) are described using an alias 514.
  • an alias 514 is described in addition to a "get_alias" item 512 indicating that the query should be interpreted as an alias.
  • Relay device 100 treats alias 514 of “temperature” as meaning the description of query description sections 504 , 505 , 506 , 507 , and 508 . As a result, it is processed in the same manner as the query 500 shown in FIG. 8(A).
  • relay device 100 extracts a specific character string (keyword such as item 512 “get_alias”) included in the query (access request). ) may be interpreted as the alias 514 .
  • FIG. 8(B) shows an example in which all access paths included in the query 500 are grouped into one alias, but an alias may be set for each arbitrary element included in the access path.
  • FIG. 8C shows a query 520 in which the query description parts 504, 505, 506, 507, and 508 included in the query 500 shown in FIG. indicate.
  • FIG. 8D the query description part 504 included in the query 500 shown in FIG. Query 530 is shown.
  • the aliases 524, 525, 526, 527, 528, 534, and 536 do not describe specific addresses or paths, but use abstract character strings. Therefore, even if the configuration of the control system 1 changes, as long as the alias is used for description, it is not necessary to change the query itself just by updating the correspondence between the alias and the character string including the access path. do not have. Similarly, even if the target of the data to be acquired changes, it is only necessary to update the correspondence between the alias and the character string containing the access path, without changing the query itself.
  • FIG. 9 is a diagram showing another example of queries used in the control system 1 according to the present embodiment.
  • FIG. 9A shows an example query 540 for accessing data held, managed, or generated by the controller 200 .
  • Query 540 includes a query description part 542 for acquiring alarm flags held by control device 200 and memory card errors. That is, "AlarmFlags" and “Card1Err” included in the query description part 542 respectively mean "alarm flag" and "memory card error".
  • a query 548 describes the contents of the query 540 using an alias 546 .
  • query 540 is changed to query 541 . That is, the query description part 543 includes "SystemErr", which means a system error, in addition to "AlarmFlags" and "Card1Err".
  • FIG. 10 is a flow chart showing a processing procedure related to alias management in the control system 1 according to the present embodiment. Each step shown in FIG. 10 is typically implemented by processor 102 of relay device 100 executing relay processing program 124 .
  • FIG. 10(A) shows the processing procedure for alias registration processing in the alias definition 180.
  • FIG. 10A relay device 100 receives a new alias and a corresponding character string (step S10). Then, the relay device 100 determines whether or not the received alias has been registered in the alias definition 180 (step S12).
  • relay device 100 determines whether the character string associated with the alias conforms to a predetermined rule (step S14).
  • relay device 100 registers the received alias and the associated character string in alias definition 180 (step S16). Then, the relay device 100 responds that the registration of the alias has been completed normally (step S18). Then the process ends.
  • step S12 if the accepted alias has already been registered in the alias definition 180 (YES in step S12), or if the character string associated with the alias does not conform to a predetermined rule (NO in step S14). ), the relay device 100 responds that the registration of the alias has ended with an error (step S20). Then the process ends.
  • FIG. 10(B) shows a processing procedure for deleting an alias from the alias definition 180.
  • relay device 100 receives an alias to be deleted (step S30). Then, the relay device 100 determines whether or not the accepted alias has been registered in the alias definition 180 (step S32).
  • relay device 100 deletes the entry corresponding to the accepted alias from alias definition 180 (step S34). Then, the relay device 100 responds that deletion of the alias has been completed normally (step S36). Then the process ends.
  • step S38 the relay device 100 responds that deletion of the alias has ended with an error (step S38). Then the process ends.
  • FIG. 10(C) shows a processing procedure for initialization processing of the alias definition 180.
  • relay device 100 receives an initialization instruction for alias definition 180 (step S40). Then, the relay device 100 deletes all entries of the target alias definition 180 according to the received initialization instruction (step S42). Then, the relay device 100 responds that the initialization of the alias has been completed normally (step S44). Then the process ends.
  • FIG. 11 is a flowchart showing a query processing procedure in the control system 1 according to the present embodiment. Each step shown in FIG. 11 is typically implemented by processor 102 of relay device 100 executing relay processing program 124 .
  • relay device 100 receives a query from information processing device 400 or the like (step S50). Then, the relay device 100 determines whether or not the received query contains an alias (step S52).
  • relay device 100 refers to alias definition 180 to determine whether the alias included in the query is registered (step S54). ).
  • step S54 If the alias included in the query is not registered (NO in step S54), the relay device 100 responds with error termination (step S56). Then the process ends.
  • relay device 100 refers to alias definition 180 to acquire a character string corresponding to the alias (step S58), and responds to the received query. Replace the included alias with the acquired character string (step S60).
  • the relay device 100 refers to the alias definition 180 including at least one set of alias name and character string, and executes the process of replacing the alias name included in the access request with the corresponding character string ( Steps S50-S60).
  • relay device 100 accesses the device specified by the access path included in the query (step S62). In this manner, the relay device 100 determines processing for the control device 200 or the device 250 connected to the control device 200 according to the access request.
  • the relay device 100 acquires the specified data from the access destination device (step S64). Further, the relay device 100 determines whether or not the query (or the result of replacing the alias in the query with the corresponding character string) includes a conversion instruction (step S66).
  • step S66 If the query contains a conversion instruction (YES in step S66), relay device 100 executes conversion processing according to the conversion instruction (step S68). On the other hand, if the query does not contain a conversion instruction (NO in step S66), the process of step S68 is skipped.
  • the relay device 100 generates response data by forming the acquired data into a predetermined data format (step S70), and transmits the response data to the query transmission source (step S72).
  • the relay device 100 transmits the data acquired by executing the determined process to the query transmission source (steps S64 to S72). Then the process ends.
  • FIG. 12 is a flowchart showing a processing procedure for automatic alias generation in the control system 1 according to the present embodiment. Each step shown in FIG. 12 is typically implemented by processor 102 of relay device 100 executing relay processing program 124 .
  • relay device 100 searches for control device 200 connected to network 2 (step S100).
  • ARP Address Resolution Protocol
  • ping etc. are used.
  • the relay device 100 selects one of the found control devices 200 (step S102). Then, the relay device 100 searches for devices connected to the selected control device 200 (step S104). Protocols such as CIP Identity object reading can be used to search for devices.
  • the relay device 100 acquires variable information and real configuration information from the searched device (step S106).
  • a command specific to inter-unit communication, an EtherCAT command, an IO-Link command, or the like can be used to acquire the variable information and the real configuration information.
  • Relay device 100 determines a character string (including an access path) and a temporary alias name for each piece of data included in the acquired variable information (step S108).
  • the relay device 100 acquires I/O information from the device (step S110).
  • a protocol such as CIP Identity object reading can be used to acquire I/O information.
  • the relay apparatus 100 determines character strings and temporary aliases for each accessible device based on the acquired real configuration information, device information, device setting file information, and the like (step S112).
  • step S108 an access path and alias for accessing specific data are automatically generated, and in step S112, an access path and alias for accessing a specific device are automatically generated.
  • the relay device 100 determines whether or not processing has been completed for all of the searched control devices 200 (step S114). If there is a searched control device 200 for which processing has not been completed (NO in step S114), relay device 100 selects another control device 200 (step S116). Then, the processing from step S104 onward is repeated.
  • step S114 If the process has been completed for all of the searched control devices 200 (YES in step S114), the process ends.
  • access paths and corresponding alias name candidates for accessing data held, managed, or generated by the control device 200 included in the control system can be automatically generated, and devices connected to the control device 200 can It can automatically generate candidate access paths and corresponding alias names for accessing data that it maintains, manages, or generates.
  • access paths to the control device 200 included in the control system and devices connected to the control device 200 and corresponding alias name candidates can also be automatically generated.
  • alias name candidates may be automatically determined according to a predetermined rule, or may be automatically determined based on the corresponding access path.
  • the relay device 100 searches for the control device 200 and the device 250 included in the control system 1 and obtains the alias name (first character string) and the character string such as the access path (second character string). (alias setting module 152 shown in FIG. 5).
  • aliases indicating access paths are generated for all accessible data and devices.
  • the range of generated aliases may be set arbitrarily. That is, filtering may be set for generated aliases and corresponding character strings.
  • the following items can be used as such filtering items.
  • Network range e.g., IP network address, network hierarchy, protocol type, etc.
  • Processcess e.g. painting process, assembly process, inspection process, etc.
  • Equipment profile e.g. packaging machine, molding machine, etc.
  • Equipment maker for example, Company A, Company B, etc.
  • Device name e.g, line A_XX Machine, etc.
  • Internal modules for example, Mechanism A, Mechanism B, etc.
  • Equipment run time equipment status attributes (e.g., normal, abnormal, etc.)
  • Equipment log attributes e.g., normal, abnormal, etc.
  • Device vendor for example, Company A, Company B, etc.
  • Device profile e.g.
  • the relay device 100 generates a set of an alias name (first character string) and a character string such as an access path (second character string) that matches a preset condition. (alias setting module 152 shown in FIG. 5).
  • access path candidates are basically generated for all accessible data and devices. After that, among the generated alias candidates, only those arbitrarily specified by the user may be registered in the alias definition 180 .
  • FIG. 13 is a schematic diagram showing an example of a user interface screen 190 for selecting aliases in the control system 1 according to this embodiment.
  • user interface screen 190 displays a list 196 of generated alias candidates.
  • the check box 194 of the candidate matching the entered condition is checked in the list 196 of alias candidates.
  • FIG. 14 is a flowchart showing a processing procedure for alias selection and registration in the control system 1 according to the present embodiment. Each step shown in FIG. 14 is typically implemented by processor 102 of relay device 100 executing relay processing program 124 .
  • relay device 100 outputs a user interface screen including a list of generated alias candidates (step S150). Upon receiving the conditions entered in the condition input form (step S152), the relay device 100 extracts aliases that match the entered conditions (step S154). Relay device 100 then checks the check box corresponding to the extracted alias (step S156).
  • the relay device 100 receives the user's selection of the OK button and registers the checked alias in the alias definition 180 (step S158). Then, the alias registration processing ends.
  • alias registration process has the following advantages. That is, the user can appropriately extract only necessary aliases from among many automatically generated aliases and register them in the alias definition 180 . In this way, the relay device 100 aliases only an arbitrarily selected pair from among pairs of a generated alias name (first character string) and a character string such as an access path (second character string). It may be registered in the definition 180 (alias setting module 152 shown in FIG. 5).
  • alias definition 180 stores alias names and character strings in association with each other. After the alias is registered in the alias definition 180, the configuration of the target control system 1 may be changed. In such cases, the alias name and/or alias path should be updated. An example of such alias update processing will be described.
  • FIG. 15 is a schematic diagram showing an example of alias update in the control system 1 according to the present embodiment.
  • FIG. 15A shows an example of changing network configuration such as network address.
  • FIG. 15B shows an example of changing modules in the control device.
  • IP address IP address
  • the target part of the character string 188 associated with the alias name 186 needs to be updated.
  • the target part of the character string 188 needs to be updated, and the associated alias name 186 also needs to be updated. That is, when a character string indicating the target module is used as the alias name 186, it is necessary to update the character string according to the change of the target module.
  • a change in the configuration of the control system 1 as described above may occur due to a setup change or device replacement. Then, when the configuration of the control system 1 is changed, it is necessary to update the alias name 186 and the character string 188 that constitute the alias.
  • An example method for updating an alias is described below.
  • FIG. 16 is a schematic diagram showing an example of processing for updating an alias according to a change in network configuration in the control system 1 according to this embodiment.
  • a development support device connected to control device 200 or relay device 100 provides user interface screen 600 for setting and changing the network configuration of control system 1 .
  • the user can set or change the network address (IP address) of the control device 200 on the user interface screen 600 . More specifically, user interface screen 600 displays setting dialog 602 for receiving setting of the network address of each control device 200 . The network address of the control device 200 is changed by providing new settings from the development support device to the control device 200 .
  • IP address network address
  • the relay device 100 updates the target portion of the character string 188 associated with the alias name 186.
  • FIG. 17 is a schematic diagram showing an example of processing for updating aliases according to changes in modules in the control device 200 of the control system 1 according to the present embodiment.
  • a development support device connected to control device 200 or relay device 100 provides user interface screen 610 for setting and changing the module configuration of control device 200 of control system 1 .
  • the user can set or change the module configuration of the control device 200 on the user interface screen 610 . More specifically, user interface screen 610 visually displays devices connected to the selected controller 200 . User interface screen 610 can accept a drag-and-drop operation for an object indicating a module to be added or changed. The setting of the module configuration of the control device 200 is changed by such a drag-and-drop operation. By providing new settings to the control device 200 from the development support device, the module configuration of the control device 200 is changed.
  • the relay device 100 updates the target portion of the character string 188 associated with the alias name 186, and updates the alias name 186 as necessary. do.
  • the relay device 100 preferably manages the access path of the alias as a relative path (a path expression based on a specific hierarchy). By managing with relative paths, when the configuration of any hierarchy is changed, the access path related to the changed hierarchy can be changed more easily.
  • the relay device 100 changes the alias name (first character string) and the character string (second character string) such as the access path included in the alias definition 180 according to the configuration change in the control system 1.
  • An update process may be executed to update the contents of the set of .
  • the relay device 100 responds to a query and acquires data from the access destination each time has been mainly described. may be adopted. Furthermore, the relay device 100 may function like a proxy, acquire data in advance from the control device 200 and devices included in the control system 1, and store the data in its own database.
  • relay device 100 independent of control device 200 and display device 300 executes processing related to a query has been described.
  • a similar process may be executed.
  • relay device 100 and the control device 200 or the display device 300 may work together to realize the processing related to the query described above.
  • the functions necessary for the above-described query processing are distributed among a plurality of relay devices 100 , control devices 200 and display devices 300 .
  • alias definition 180 may be stored in a database on the cloud.
  • any hardware configuration can be used to implement query-related processing. .
  • a control system (1) comprising one or more controllers (200), a processing unit (10:154) that determines the control device or a process for the control device according to the access request (500, 510, 520, 530, 540, 541, 548); a providing unit (40: 160, 162, 164) that transmits the data acquired by executing the determined process to the transmission source of the access request; a storage unit (30) storing a character string definition (180) including at least one pair of a first character string (182, 186) and a second character string (184, 188) longer than said first character string; : 108) and an interpreter (20:156) that refers to the character string definition and replaces a first character string included in the access request with a corresponding second character string.
  • an access request (query) can be written using an alias, so that the trouble of generating a query can be reduced. Also, since a specific access path can be made anonymous, security performance can be improved. Furthermore, if the configuration of the control system 1 or the like is changed, by updating the registration contents of the alias definition 180 according to the configuration after the change, the query used before the change can be used as it is. , the configuration of the control system 1 can be changed flexibly.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Programmable Controllers (AREA)
  • Information Transfer Between Computers (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

制御システムは、アクセス要求に従って、制御装置または制御装置に接続されたデバイスに対する処理を決定する処理部と、決定された処理を実行することで取得されたデータをアクセス要求の送信元に送信する提供部と、第1の文字列と第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を格納する記憶部と、文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換する解釈部とを含む。

Description

制御システム、データ提供方法および中継処理プログラム
 本発明は、制御システム、データ提供方法および中継処理プログラムに関する。
 近年のICT(Information and Communication Technology)の進歩やIoT(Internet of Things)の注目などに伴って、制御装置により制御されるフィールドレベルのデータを取得したいというニーズが高まっている。
 このようなニーズに対して、例えば、特開2020-13223号公報(特許文献1)は、汎用的なインターフェイスにより、制御システム内の任意のデバイスの任意の情報を収集可能な構成を開示する。また、特開2020-13224号公報(特許文献2)は、制御システム内の状態変化に応じて、制御システム内の任意のデバイスの任意の情報を効率的に収集可能な構成を開示する。
特開2020-13223号公報 特開2020-13224号公報
 上述した先行技術に比較して、より容易に必要なデータを取得できるととともに、取得対象のシステム構成が変更された場合でもより柔軟に対応できる制御システムなどを提供する。
 本発明のある実施の形態に従えば、1または複数の制御装置を含む制御システムが提供される。制御システムは、アクセス要求に従って、制御装置または制御装置に接続されたデバイスに対する処理を決定する処理部と、決定された処理を実行することで取得されたデータをアクセス要求の送信元に送信する提供部と、第1の文字列と第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を格納する記憶部と、文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換する解釈部とを含む。
 この構成によれば、本来の第2の文字列ではなく、第1の文字列を用いてアクセス要求を記述すれば、解釈部がアクセス要求を本来の第2の文字列に置換する。これによって、アクセス要求を生成する手間を削減して必要なデータの取得を容易化できるとともに、取得対象のシステム構成が変更された場合であっても、文字列定義の内容を適宜更新することで柔軟に対応できる。
 解釈部は、アクセス要求に含まれる特定の文字列と連結された文字列を第1の文字列と解釈するようにしてもよい。この構成によれば、特定の文字列と連結された場合に限って、第1の文字列を第2の文字列に置換されるので、アクセス要求に含まれる文字列が意図せずに置換されるような事態を回避できる。
 アクセス要求は、制御システムに含まれる制御装置またはデバイスにアクセスするための経路を示すアクセスパスを含んでいてもよい。この構成によれば、アクセス要求を用いて、対象の制御装置またはデバイスまでの経路を明確に指定できる。
 アクセス要求は、制御システムに含まれる制御装置またはデバイスから取得されたデータに対する変換処理を特定する変換命令を含んでいてもよい。この構成によれば、制御装置またはデバイスから取得されたデータを指定された変換処理した結果が提供されるので、送信元がデータを受信した後の処理を簡素化できる。
 制御システムは、制御システムに含まれる制御装置およびデバイスを探索して、第1の文字列と第2の文字列との組を生成する生成部をさらに含んでいてもよい。この構成によれば、制御システムに含まれる任意の制御装置およびデバイスからデータを取得するためのアクセス要求の生成を容易化できる。
 生成部は、予め設定された条件に合致する、第1の文字列と第2の文字列との組を生成するようにしてもよい。この構成によれば、特定の目的に応じた条件を設定することで、当該条件に合致する第1の文字列と第2の文字列との組が生成されるので、データを取得するためのアクセス要求の生成を容易化できるとともに、不要な第1の文字列と第2の文字列との組の生成を抑制できる。
 制御システムは、生成部が生成した第1の文字列と第2の文字列との組のうち、任意に選択された組のみを文字列定義に登録する登録部をさらに含んでいてもよい。この構成によれば、特定の目的に応じた第1の文字列と第2の文字列との組のみを登録できるので、記録領域などのリソースを効率的に利用できる。
 制御システムは、制御システムにおける構成の変更に応じて、文字列定義に含まれる第1の文字列と第2の文字列との組の内容を更新する更新部をさらに含んでいてもよい。この構成によれば、制御システムにおける構成の変更に応じて、第1の文字列と第2の文字列との組の内容が更新されるので、構成が変更された制御システムにおいても、変更前と同一のアクセス要求を使用し続けることができる。
 本発明の別の実施の形態に従えば、1または複数の制御装置を含む制御システムにおけるデータ提供方法が提供される。データ提供方法は、第1の文字列と第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換するステップと、アクセス要求に従って、制御装置または制御装置に接続されたデバイスに対する処理を決定するステップと、決定された処理を実行することで取得されたデータをアクセス要求の送信元に送信するステップとを含む。
 本発明のさらに別の実施の形態に従えば、1または複数の制御装置を含む制御システムに関連付けられたコンピュータで実行されるデータを提供するための中継処理プログラムが提供される。中継処理プログラムはコンピュータに、第1の文字列と第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換するステップと、アクセス要求に従って、制御装置または制御装置に接続されたデバイスに対する処理を決定するステップと、決定された処理を実行することで取得されたデータをアクセス要求の送信元に送信するステップとを実行させる。
 本発明によれば、先行技術に比較して、より容易に必要なデータを取得できるととともに、取得対象のシステム構成が変更された場合でもより柔軟に対応できる。
本実施の形態に係る制御システムの全体構成例を示す模式図である。 本実施の形態に係る制御システムの中継装置の機能構成の要部を示す模式図である。 本実施の形態に係る制御システムの中継装置のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御システムの制御装置のハードウェア構成例を示すブロック図である。 本実施の形態に係る制御システムの中継装置の機能構成例を示すブロック図である。 本実施の形態に係る制御システムの中継装置に格納されるエイリアス定義の一例を示す模式図である。 本実施の形態に係る制御システムの中継装置が処理する変換命令の一例を示す図である。 本実施の形態に係る制御システムで用いられるクエリの一例を示す図である。 本実施の形態に係る制御システムで用いられるクエリの別の一例を示す図である。 本実施の形態に係る制御システムにおけるエイリアスの管理に係る処理手順を示すフローチャートである。 本実施の形態に係る制御システムにおけるクエリの処理手順を示すフローチャートである。 本実施の形態に係る制御システムにおけるエイリアスの自動生成に係る処理手順を示すフローチャートである。 本実施の形態に係る制御システムにおけるエイリアスを選択するためのユーザインターフェイス画面の一例を示す模式図である。 本実施の形態に係る制御システムにおけるエイリアスの選択および登録に係る処理手順を示すフローチャートである。 本実施の形態に係る制御システムにおけるエイリアスの更新例を示す模式図である。 本実施の形態に係る制御システムにおけるネットワーク構成の変更に応じてエイリアスを更新する処理例を示す模式図である。 本実施の形態に係る制御システムの制御装置内のモジュールの変更に応じてエイリアスを更新する処理例を示す模式図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.適用例>
 まず、本発明が適用される場面の一例について説明する。
 図1は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。図1を参照して、本実施の形態に係る制御システム1は、主たる構成要素として、中継装置100と、1または複数の制御装置200-1,200-2,200-3,・・・(以下、「制御装置200」とも総称する。)とを含む。
 中継装置100は、1または複数の制御装置200が保持、管理、または生成するデータへのアクセス要求(以下、「クエリ」とも称す。)に応答して、要求されたデータを取得して応答する。
 1または複数の制御装置200は、設備や機械などの制御対象を制御する。制御装置200は、PLC(プログラマブルロジックコントローラ)などの、一種のコンピュータとして具現化されてもよい。
 図1に示す制御システム1においては、中継装置100および制御装置200-1,200-2,200-3がネットワーク2を介して互いに通信可能に接続されている。制御装置200-1,200-2,200-3は、それぞれフィールドネットワーク6-1,6-2,6-3(以下、「フィールドネットワーク6」とも総称する。)を介して、デバイス250-1,250-2,250-3(以下、「デバイス250」とも総称する。)と接続されている。
 本明細書において、「デバイス」は、任意のデータを保持、管理、または生成する任意の装置を包含する。「デバイス」は、例えば、個々のセンサおよび制御演算を実行する制御装置を包含し得る。以下では、説明の便宜上、制御装置200をデバイス250とを区別するが、「デバイス」との用語は、制御装置200およびデバイス250を含み得る。
 図1には、デバイス250の一例として、リモートI/O(Input/Output)装置を示す。リモートI/O装置は、典型的には、フィールドネットワーク6を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部とを含み、設備や機械などの制御対象との間で入力信号(入力データ)および出力信号(出力データ)をやり取りする。
 デバイス250には、リモートI/O装置に限らず、各種センサやサーボドライバといった任意のデバイスが含まれ得る。また、図1には、フィールドネットワーク6に1つのデバイス250が接続された構成例を示すが、これに限らず、フィールドネットワーク6には複数のデバイス250が接続されてもよい。
 フィールドネットワーク6としては、例えば、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などの産業用の通信プロトコルを採用することが好ましい。
 制御システム1は、1または複数の表示装置300をさらに含んでいてもよい。表示装置300は、HMI(Human Machine Interface)などとも称され、ユーザからの操作を受けて、制御装置200に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置200から取得されたデータなどをグラフィカルに表示する。
 中継装置100は、ネットワーク2に加えて、ネットワーク4にも接続されている。ネットワーク4に接続された情報処理装置400が中継装置100に対してクエリを送信する。
 図1に示す構成例において、ネットワーク2は、いわゆるOT(Operational Technology)ネットワークに相当し、ネットワーク4は、いわゆるIT(Information Technology)ネットワークに相当する。
 情報処理装置400は、典型的には、汎用コンピュータである。情報処理装置400は、例えば、ブラウザなどの汎用アプリケーションから中継装置100に対してクエリを送信し、中継装置100から制御装置200が保持、管理、または生成するデータを取得する。
 中継装置100が実行する処理を概略すると、まず、中継装置100は、任意の送信元からクエリを受信すると((1)クエリ)、クエリにより指定された処理を実行することでデータを取得する((2)処理実行および(3)データ取得)。として、中継装置100は、取得したデータを含む応答データをクエリの送信元に送信する((4)応答データ)。
 このように、中継装置100は、任意のクエリに対して、制御システム1が保持、管理、または生成するデータを提供する。
 図2は、本実施の形態に係る制御システム1の中継装置100の機能構成の要部を示す模式図である。図2を参照して、中継装置100は、主要な機能構成として、処理部10と、解釈部20と、記憶部30と、提供部40とを含む。
 処理部10は、外部からのアクセス要求(クエリ)に従って、制御装置200または制御装置200に接続されたデバイス250に対する処理を決定する。提供部40は、決定された処理を実行することで取得されたデータをアクセス要求(クエリ)の送信元に送信する。
 本実施の形態に係る制御システム1においては、中継装置100は、クエリに従って、制御システム1に含まれる任意の制御装置200およびデバイス250に対してさまざまな処理を実行できる。
 中継装置100が実行する処理としては、典型的には、制御装置200またはデバイス250が保持または管理するデータの全部または一部を取得する処理が挙げられる。
 中継装置100が実行する別の処理としては、制御装置200またはデバイス250の動作や挙動を変更する処理が挙げられる。動作や挙動を変更する処理としては、例えば、以下の処理が挙げられる。
 ・制御モードの切替(ランモード/プログラムモード/デバッグモード)
 ・シャットダウン
 ・リブート
 ・タスクやサービスの開始/停止
 ・データトレースの新規作成/開始/停止/削除
 ・アラームの新規作成/開始/停止/削除
 制御装置200またはデバイス250の動作や挙動を変更する処理については、例えば、その実行結果などを含むデータを戻り値として取得できる。
 上述したように、本明細書において、「制御装置200または制御装置200に接続されたデバイス250に対する処理」は、中継装置100が任意の制御装置200またはデバイス25に対して実行することができる任意の処理を包含する。また、「処理を実行することで取得されたデータ」は、対象の制御装置200またはデバイス250に対して処理を実行することで取得される任意のデータを包含する。
 以下では、説明の便宜上、主として、制御装置200またはデバイス250が保持または管理するデータを取得する処理を説明する。
 本実施の形態に係る制御システム1においては、クエリに含まれる文字列の少なくとも一部を当該文字列より短くした別の文字列を利用可能にする。そのため、記憶部30は、第1の文字列と第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義としてのエイリアス定義180を格納する。
 エイリアス定義180は、クエリの少なくとも一部として利用可能な文字列(第1の文字列に相当し、以下では、「エイリアス名」とも称す。)と、当該文字列(エイリアス名)より長い文字列(第2の文字列に相当する。)との組を少なくとも1つ含む。エイリアス定義180の具体例については後述する。
 本明細書において、「エイリアス」との用語は、クエリの少なくとも一部として利用可能な文字列(すなわち、エイリアス名)単体、および、クエリの少なくとも一部として利用可能な文字列と当該文字列の実体を示すより長い文字列との組み合わせの両方を包含する。なお、実施の形態に係る制御システム1で利用可能な「エイリアス」は、「ショートカット」や「短縮表現」と称されてもよい。すなわち、「エイリアス」は、名称にかかわらず、上述したような意味を包含する。
 解釈部20は、記憶部30に格納される文字列定義(エイリアス定義180)を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換する。解釈部20がアクセス要求に含まれる第1の文字列を対応する第2の文字列に置換し、処理部10は、置換後のアクセス要求に基づいて、アクセス対象を決定する。そのため、アクセス対象までのアクセスパスなどを知らなくてもアクセス要求を生成することができるとともに、具体的なアクセスパスを秘匿化することもできる。さらに、制御システム1の構成などが変化した場合であっても、第1の文字列と第2の文字列との対応関係(エイリアス定義180)を更新するだけで、当該変化後の構成に対応できるので、アクセス要求自体の修正や変更などが必要ない。
 <B.ハードウェア構成例>
 次に、本実施の形態に係る制御システム1を構成する装置のハードウェア構成例について説明する。
 (b1:中継装置100)
 図3は、本実施の形態に係る制御システム1の中継装置100のハードウェア構成例を示すブロック図である。図3を参照して、中継装置100は、コンピュータの一例であって、1または複数のプロセッサ102と、光学ドライブ104と、主記憶装置106と、二次記憶装置108と、USB(Universal Serial Bus)コントローラ110と、ネットワークコントローラ112,114と、入力部116と、表示部118とを含む。これらのコンポーネントはバス120を介して接続される。
 プロセッサ102は、例えば、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)などで構成され、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、後述するような各種処理を実現する。
 二次記憶装置108は、図2に示す記憶部30に相当し、例えば、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などで構成される。二次記憶装置108には、典型的には、OS122と、後述する処理を実現するための中継処理プログラム124とが格納される。なお、二次記憶装置108には、図3に示す中継処理プログラム124以外の必要なプログラムが格納されてもよい。さらに、二次記憶装置108には、システム情報170およびエイリアス定義180が格納される(詳細については後述する)。
 中継装置100は、光学ドライブ104を有しており、コンピュータ読取可能なコードを非一過的に格納する記録媒体105(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたコンピュータ読取可能なコードが読み取られて二次記憶装置108などにインストールされる。
 中継装置100で実行される各種プログラムは、コンピュータ読取可能な記録媒体105を介してインストールされてもよいが、ネットワーク上の任意のサーバ装置からダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係る中継装置100が提供する機能は、OS122が提供するソフトウェアモジュールの一部を利用する形で実現される場合もある。
 USBコントローラ110は、USB接続を介して他の情報処理装置との間のデータのやり取りを担当する。ネットワークコントローラ112は、ネットワーク2を介した制御装置200などとの間のデータのやり取りを担当する。ネットワークコントローラ114は、ネットワーク4を介した情報処理装置400などとの間のデータのやり取りを担当する。
 入力部116は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部118は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ102からの処理結果などを出力する。
 図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
 (b2:制御装置200)
 図4は、本実施の形態に係る制御システム1の制御装置200のハードウェア構成例を示すブロック図である。図4を参照して、制御装置200は、コンピュータの一例であって、プロセッサ202と、チップセット204と、主記憶装置206と、二次記憶装置208と、上位ネットワークコントローラ210と、USBコントローラ212と、メモリカードインターフェイス214と、フィールドネットワークコントローラ220と、内部バスコントローラ222と、I/Oユニット224-1,224-2,…とを含む。
 プロセッサ202は、例えば、CPU、MPU、GPUなどで構成され、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、制御演算を実行するための環境を実現する。チップセット204は、プロセッサ202と各コンポーネントとの間のデータ伝送などを制御する。
 二次記憶装置208には、制御演算を実行する環境を実現するためのシステムプログラム231に加えて、制御演算に係る命令を記述したユーザプログラム232が格納される。
 上位ネットワークコントローラ210は、ネットワーク2を介した中継装置100などとの間のデータのやり取りを担当する。USBコントローラ212は、USB接続を介して図示しないサポート装置などとの間のデータのやり取りを担当する。
 メモリカードインターフェイス214は、メモリカード216を着脱可能に構成されており、メモリカード216に対してデータを書込み、メモリカード216から各種データ(ユーザプログラムやトレースデータなど)を読み出すことができる。
 内部バスコントローラ222は、制御装置200に搭載されるI/Oユニット224-1,224-2,…との間でデータをやり取りするインターフェイスである。
 フィールドネットワークコントローラ220は、フィールドネットワーク6を介したデバイス250などとの間のデータのやり取りを担当する。
 図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
 (b3:表示装置300)
 本実施の形態に係る制御システム1の表示装置300は、典型的には、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。表示装置300のハードウェア構成例については公知であるので、詳細な説明は行わない。
 (b4:情報処理装置400)
 本実施の形態に係る制御システム1の情報処理装置400は、典型的には、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。情報処理装置400のハードウェア構成例については公知であるので、詳細な説明は行わない。
 <C.中継装置100の機能構成>
 次に、本実施の形態に係る制御システム1の中継装置100の機能構成の一例について説明する。
 図5は、本実施の形態に係る制御システム1の中継装置100の機能構成例を示すブロック図である。図5に示す各機能は、典型的には、中継装置100のプロセッサ102が中継処理プログラム124を実行することで実現される。
 図5を参照して、中継装置100は、主たる機能構成として、インターフェイスモジュール150と、エイリアス設定モジュール152と、クエリ処理モジュール154と、エイリアス解釈モジュール156と、データ変換モジュール162と、データ成形モジュール164とを含む。また、中継装置100は、システム情報170およびエイリアス定義180を格納している。
 インターフェイスモジュール150は、情報処理装置400などからのクエリを受け付けるとともに、情報処理装置400に対して応答データを送信する。また、インターフェイスモジュール150は、ユーザからの各種の操作および指示を受け付ける。
 クエリ処理モジュール154は、図2に示す処理部10に相当し、アクセス要求(クエリ)に従って、制御装置200または制御装置200に接続されたデバイス250に対する処理を決定する。より具体的には、クエリ処理モジュール154は、入力されたクエリを解釈し、クエリにより指定されたアクセスパスを通信処理モジュール160に通知する。より具体的には、クエリ処理モジュール154は、システム情報170を参照するとともに、エイリアス解釈モジュール156からのエイリアスに対応する文字列に基づいて、アクセスパスを決定する。
 エイリアス解釈モジュール156は、図2に示す解釈部20に相当し、エイリアス定義180を参照して、アクセス要求に含まれるエイリアス(第1の文字列)を対応する文字列(第2の文字列)に置換する。すなわち、エイリアス解釈モジュール156は、アクセス要求に含まれる指定されたエイリアスに対応する文字列を出力する。
 通信処理モジュール160、データ変換モジュール162およびデータ成形モジュール164は、図2に示す提供部40に相当し、決定された処理を実行することで取得されたデータをアクセス要求の送信元に送信する。
 より具体的には、通信処理モジュール160は、アクセスパスにより指定されたデバイスにアクセスするとともに、当該アクセス先のデバイスから指定されたデータを取得する。
 データ変換モジュール162は、クエリに含まれる変換命令に従って、対象のデバイスから取得されたデータを変換あるいは加工する。より具体的には、データ変換モジュール162は、数値変換、単位換算、レンジ換算、フォーマット変換などの処理を実行する。
 データ成形モジュール164は、取得したデータを指定された出力形式に成形する。データフォーマットの一例としては、JSON形式、HTML形式、XML形式、CSV形式、テキスト形式、バイナリ形式などが挙げられる。なお、データフォーマットの指定がない場合には、予め定められたデータフォーマットに変換するようにしてもよい。
 エイリアス設定モジュール152は、ユーザの操作および指示に従って、エイリアスの設定、登録、変更、削除などを行う。また、エイリアス設定モジュール152は、後述するようなエイリアスの自動生成などの処理を実行するようにしてもよい。
 システム情報170は、例えば、構成情報171と、デバイスプロファイル172と、索引173とを含む。
 構成情報171は、制御システム1に含まれるデバイスの接続関係を示す情報を含む。具体的には、構成情報171は、ネットワークトポロジ、各デバイスのアドレス情報、および、各ネットワークの通信プロトコルなどを規定する情報を含む。構成情報171は、物理的または仮想的なネットワークトポロジや、ユニット構成に関する情報(アドレス、形式、通信帯域など)を含むようにしてもよい。構成情報171は、予め静的に設定されていてもよいし、ネットワーク構成の変化に応じて、動的に変化するようにしてもよい。
 デバイスプロファイル172は、各デバイスの特性を示す情報を含む。具体的には、デバイスプロファイル172は、デバイス内のメモリマップ、オブジェクト仕様、型情報、取得可能なデータ(属性)、スケーリングなどを含む。
 索引173は、デバイスへのアクセスを効率化するために用いられる情報であり、制御システム1に含まれる各デバイスの状態値を示す情報を含む。具体的には、索引173は、デバイスの属性値および個体識別番号(シリアル番号やMACアドレスなど)を含む。索引173は、典型的には、動的に生成されることになるが、事前に静的に生成したものを採用してもよい。なお、索引173は、アクセスの高速化のために用いられる情報であり、必ずしも必要ではなく、状況に応じて実装すればよい。
 エイリアス定義180は、エイリアスと対応する文字列との関係を定義する。基本的には、エイリアス定義180は、クエリに含まれるエイリアスに対応する文字列を決定するために用いられる。
 図6は、本実施の形態に係る制御システム1の中継装置100に格納されるエイリアス定義180の一例を示す模式図である。図6を参照して、エイリアス定義180は、エイリアス名182に対応付けられた文字列184を含む。
 エイリアス名182は、任意の文字列184を短縮した表現である。文字列184は、アクセス先のアクセスパスおよび/またはデータ変換処理を示す変換命令を含み得る。
 エイリアス定義180に登録されるエイリアス名182の数には制限はなく、任意のエイリアス名182を登録できる。また、同一の文字列でない限り任意のエイリアス名182を採用できる。
 また、中継装置100は、クエリに含まれる特定の文字列を変換命令と解釈して、当該変換命令に従う変換処理を実行する。
 図7は、本実施の形態に係る制御システム1の中継装置100が処理する変換命令の一例を示す図である。図7を参照して、変換命令としては、数値演算、論理演算、比較演算、ビット演算、有効桁演算、単位変換などの演算処理を含む。中継装置100は、各演算を実行するための演算子、文字列、コマンドなどの変換命令がクエリに含まれていれば、当該クエリに含まれている変換命令に従って指定された変換処理あるいは演算処理を実行する。
 図7に示すように、クエリ(アクセス要求)は、制御装置200または制御装置200に接続されたデバイス250から取得されたデータに対する変換処理を特定する変換命令を含み得る。
 なお、変換命令は、クエリに直接的に含まれている場合に加えて、上述したエイリアスを解釈して得られる文字列に含まれている場合もある。さらに、エイリアスと変換命令とを組み合わせてクエリを生成することも可能である。
 例えば、取得した値(変数名Distanceである距離)を小数点有効2桁で四捨五入する場合には、変換命令として、「ROUND("Distance",2)」をクエリに含めてもよい。
 また、取得した値(変数名Tempである温度)を華氏から摂氏に変換する場合には、変換命令として、「CONVERT("Temp", FAHRENHEIT, CELSIUS)」をクエリに含めてもよい。
 このように、本実施の形態に係る制御システム1においては、クエリに含まれる変換命令に従って、データ取得に加えて、任意の変換処理を実行できる。
 <D.クエリおよびエイリアス>
 次に、本実施の形態に係る制御システム1において処理されるクエリおよびエイリアスについて説明する。
 本実施の形態に係る制御システム1において、クエリは、例えば、Webサービスなどの提供に用いられるREST(Representational State Transfer)に準拠した形式で記述することができる。また、クエリは、SQL言語で記述されてもよい。但し、クエリの記述には任意の形式を用いることができる。さらに、クエリを記述する新たな形式が普及した場合には、任意の新たな形式を採用できる。
 一方、中継装置100からの応答データは、JSON(JavaScript Object Notation)形式やHTML(HyperText Markup Language)形式で記述されてもよい。
 図8は、本実施の形態に係る制御システム1で用いられるクエリの一例を示す図である。図8には、RESTに準拠したクエリの例を示す。図8に示すクエリは、制御システム1に含まれる制御装置200(または、リモートI/O装置)に接続されたユニットからさらにIO-Linkを介して接続されたデバイス(例えば、温度センサ)から入力データ(例えば、温度の計測値)の取得を要求するものである。すなわち、図8に示すクエリは、第1階層に相当する制御装置200(または、リモートI/O装置)、第2階層に相当するユニット、第3階層に相当するデバイス(例えば、温度センサ)の3階層のアクセスを要求するものである。
 図8(A)を参照して、クエリ500は、アクセス先記述部502およびクエリ記述部504,505,506,507,508を含む。アクセス先記述部502は、中継装置100との通信プロトコルを指定するスキームと、中継装置100を特定するオーソリティとを含む。クエリ記述部504,505,506,507,508は、データを取得する先を特定するためのアクセスパスを意味する。
 図8(A)に示すように、クエリ(アクセス要求)は、制御システム1に含まれる制御装置200またはデバイス250にアクセスするための経路を示すアクセスパスを含み得る。
 クエリ記述部504は、第1階層に相当する制御装置200(または、リモートI/O装置)を特定する「eip」の項目を記述する。図8(A)に示す例では、「192.168.250.100」となっている。すなわち、ネットワークアドレスが「192.168.250.100」である制御装置200(または、リモートI/O装置)がアクセス対象として特定されている。
 クエリ記述部505は、第2階層に相当するユニットを特定する「unitno」の項目を記述する。図8(A)に示す例では、「0x01」となっている。すなわち、ユニット番号が「0x01」のユニットがアクセス対象として特定されている。
 クエリ記述部506は、第3階層に相当するデバイスに接続するためのIO-Linkを特定する「iokink」の項目を記述する。図8(A)に示す例では、「port1」となっている。すなわち、IO-Linkのマスターポート番号が「port1」であるIO-Linkがアクセス対象として特定されている。
 クエリ記述部507は、第3階層に相当するデバイスに接続するためのIO-Linkデバイスのインデックス番号を特定する「Index」の項目を記述する。図8(A)に示す例では、「0x12」となっている。すなわち、IO-Linkデバイスのインデックス番号が「0x12」のデバイスがアクセス対象として特定されている。
 クエリ記述部508は、クエリ500に対する中継装置100の応答データの形式を特定する「format」の項目を記述する。図8(A)に示す例では、「json」となっている。すなわち、中継装置100からの応答データの形式が「JSON」であることが指定されている。
 図8(A)に示すように、制御システム1に含まれるデバイスおよびユニットへアクセスするためのパスは、階層が深くなるほど長くなる。そのため、クエリを生成するにも手間がかかる。そこで、本実施の形態に係る制御システム1においては、クエリに含まれる文字列の少なくとも一部を当該文字列より短くした別の文字列を利用可能にする。
 中継装置100は、クエリに含まれるエイリアスを対応する文字列に解釈して、指定された処理を実行する。
 図8(B)には、図8(A)に示すクエリ500に含まれるクエリ記述部504,505,506,507,508をエイリアス514を用いて記述したクエリ510を示す。図8(B)に示すクエリ510においては、エイリアスとして解釈されるべきことを示す「get_alias」の項目512に加えて、エイリアス514が記述されている。中継装置100は、「temperature」とのエイリアス514をクエリ記述部504,505,506,507,508の記述を意味するものとして処理される。その結果、図8(A)に示すクエリ500と同様に処理されることになる。
 このように、エイリアスを用いることで、アクセス対象のデータソースまでのパスを記述する必要がなく、クエリの記述を簡素化できる。また、具体的なアクセスパスを開示する必要がないので、セキュリティの面でも有利である。すなわち、制御システム1の具体的なアクセスパスを秘匿化できるので、悪意の第三者からの攻撃のリスクを低減できる。
 なお、図8(B)に示すように、中継装置100(図5に示すエイリアス解釈モジュール156)は、クエリ(アクセス要求)に含まれる特定の文字列(項目512である「get_alias」などのキーワード)と連結された文字列をエイリアス514と解釈するようにしてもよい。
 図8(B)には、クエリ500に含まれるアクセスパスのすべてを1つのエイリアスにまとめた例を示すが、アクセスパスに含まれる任意の要素毎にエイリアスを設定してもよい。
 図8(C)には、図8(A)に示すクエリ500に含まれるクエリ記述部504,505,506,507,508をエイリアス524,525,526,527,528を用いて記述したクエリ520を示す。
 図8(D)には、図8(A)に示すクエリ500に含まれるクエリ記述部504をエイリアス524を用いて記述するとともに、クエリ記述部505,506,507をエイリアス536を用いて記述したクエリ530を示す。
 エイリアス524,525,526,527,528,534,536には、いずれも特定のアドレスやパスを記述するものではなく、抽象化された文字列が用いられている。そのため、制御システム1の構成が変化したとしても、エイリアスを用いて記述している限りにおいては、エイリアスとアクセスパスを含む文字列との対応関係を更新するだけで、クエリそのものを変更する必要がない。同様に、取得するデータの対象が変化したとしても、エイリアスとアクセスパスを含む文字列との対応関係を更新するだけで、クエリそのものを変更する必要がない。
 図9は、本実施の形態に係る制御システム1で用いられるクエリの別の一例を示す図である。図9(A)には、制御装置200が保持、管理、または生成するデータへアクセスするためのクエリ540の例を示す。クエリ540は、制御装置200が保持するアラームフラグおよびメモリカードのエラーを取得するためのクエリ記述部542を含む。すなわち、クエリ記述部542に含まれる「AlarmFlags」および「Card1Err」は、それぞれ「アラームフラグ」および「メモリカードのエラー」を意味する。
 クエリ548は、クエリ540の内容をエイリアス546を用いて記述したものである。このとき、図9(B)に示すエイリアス定義180において、「SDCardError」とのエイリアス546には「get_values="_AlarmFlags,_Card1Err"&format=json」との記述が対応付けられる。
 この状態において、アラームフラグおよびメモリカードのエラーに加えて、システムエラーを取得する必要性が生じたとする。この場合に、クエリ540は、クエリ541のように変更される。すなわち、クエリ記述部543には、「AlarmFlags」および「Card1Err」に加えて、システムエラーを意味する「SystemErr」が含まれるようになる。
 このようなクエリ記述部の変更があった場合であっても、エイリアス定義180におけるエイリアス546に対応付けられる文字列(アクセスパスを含む)を更新することで、同一のエイリアス546をそのまま用いることができる。すなわち、エイリアス546を含むクエリ548を変更する必要がない。
 より具体的には、図9(B)に示すエイリアス定義180において、SDCardError」とのエイリアス546に対応付けられる文字列を「get_values="_AlarmFlags,_Card1Err,_SystemErr"&format=json」に更新することで、同一のエイリアス546による取得対象を任意に変更できる。
 <E.エイリアスに係る処理手順>
 次に、本実施の形態に係る制御システム1におけるエイリアスに係る処理手順について説明する。
 図10は、本実施の形態に係る制御システム1におけるエイリアスの管理に係る処理手順を示すフローチャートである。図10に示す各ステップは、典型的には、中継装置100のプロセッサ102が中継処理プログラム124を実行することで実現される。
 図10(A)は、エイリアス定義180へのエイリアスの登録処理の処理手順を示す。図10(A)を参照して、中継装置100は、新たなエイリアスと対応する文字列とを受け付ける(ステップS10)。すると、中継装置100は、受け付けたエイリアスがエイリアス定義180に登録済であるか否かを判断する(ステップS12)。
 受け付けたエイリアスがエイリアス定義180に登録済でなければ(ステップS12においてNO)、中継装置100は、当該エイリアスに対応付けられた文字列が所定の規則に適合しているか否かを判断する(ステップS14)。
 エイリアスに対応付けられた文字列が所定の規則に適合していれば(ステップS14においてYES)、中継装置100は、受け付けたエイリアスと対応付けられた文字列とをエイリアス定義180に登録する(ステップS16)。そして、中継装置100は、エイリアスの登録が正常に終了した旨を応答する(ステップS18)。そして、処理は終了する。
 これに対して、受け付けたエイリアスがエイリアス定義180に登録済であれば(ステップS12においてYES)、あるいは、エイリアスに対応付けられた文字列が所定の規則に適合していなければ(ステップS14においてNO)、中継装置100は、エイリアスの登録がエラー終了した旨を応答する(ステップS20)。そして、処理は終了する。
 図10(B)は、エイリアス定義180からのエイリアスの削除処理の処理手順を示す。図10(B)を参照して、中継装置100は、削除対象のエイリアスを受け付ける(ステップS30)。すると、中継装置100は、受け付けたエイリアスがエイリアス定義180に登録済であるか否かを判断する(ステップS32)。
 受け付けたエイリアスがエイリアス定義180に登録済であれば(ステップS32においてYES)、中継装置100は、受け付けたエイリアスに対応するエントリをエイリアス定義180から削除する(ステップS34)。そして、中継装置100は、エイリアスの削除が正常に終了した旨を応答する(ステップS36)。そして、処理は終了する。
 これに対して、受け付けたエイリアスがエイリアス定義180に登録済でなければ(ステップS32においてNO)、中継装置100は、エイリアスの削除がエラー終了した旨を応答する(ステップS38)。そして、処理は終了する。
 図10(C)は、エイリアス定義180の初期化処理の処理手順を示す。図10(C)を参照して、中継装置100は、エイリアス定義180の初期化指示を受け付ける(ステップS40)。すると、中継装置100は、受け付けた初期化指示に従って、対象のエイリアス定義180のすべてのエントリを削除する(ステップS42)。そして、中継装置100は、エイリアスの初期化が正常に終了した旨を応答する(ステップS44)。そして、処理は終了する。
 図11は、本実施の形態に係る制御システム1におけるクエリの処理手順を示すフローチャートである。図11に示す各ステップは、典型的には、中継装置100のプロセッサ102が中継処理プログラム124を実行することで実現される。
 図11を参照して、中継装置100は、情報処理装置400などからクエリを受け付ける(ステップS50)。そして、中継装置100は、受け付けたクエリにエイリアスが含まれているか否かを判断する(ステップS52)。
 受け付けたクエリにエイリアスが含まれていれば(ステップS52においてYES)、中継装置100は、エイリアス定義180を参照してクエリに含まれているエイリアスが登録されているか否かを判断する(ステップS54)。
 クエリに含まれているエイリアスが登録されていなければ(ステップS54においてNO)、中継装置100は、エラー終了した旨を応答する(ステップS56)。そして、処理は終了する。
 クエリに含まれているエイリアスが登録されていれば(ステップS54においてYES)、中継装置100は、エイリアス定義180を参照してエイリアスに対応する文字列を取得し(ステップS58)、受け付けたクエリに含まれるエイリアスを取得した文字列に置換する(ステップS60)。
 このように、中継装置100は、エイリアス名と文字列との組を少なくとも1つ含むエイリアス定義180を参照して、アクセス要求に含まれるエイリアス名を対応する文字列に置換する処理を実行する(ステップS50~S60)。
 受け付けたクエリにエイリアスが含まれていなければ(ステップS52においてNO)、あるいは、ステップS60の実行後、中継装置100は、クエリに含まれるアクセスパスにより指定されたデバイスにアクセスする(ステップS62)。このように、中継装置100は、アクセス要求に従って、制御装置200または制御装置200に接続されたデバイス250に対する処理を決定する。
 そして、中継装置100は、当該アクセス先のデバイスから指定されたデータを取得する(ステップS64)。さらに、中継装置100は、クエリ(または、クエリ中のエイリアスを対応する文字列に置換した結果)に変換命令が含まれているか否かを判断する(ステップS66)。
 クエリに変換命令が含まれていれば(ステップS66においてYES)、中継装置100は、当該変換命令に従う変換処理を実行する(ステップS68)。一方、クエリに変換命令が含まれていなければ(ステップS66においてNO)、ステップS68の処理はスキップされる。
 続いて、中継装置100は、取得したデータを所定のデータフォーマットに成形することで応答データを生成し(ステップS70)、クエリの送信元に応答データを送信する(ステップS72)。
 このように、中継装置100は、決定された処理を実行することで取得されたデータをクエリの送信元に送信する(ステップS64~S72)。そして、処理は終了する。
 以上のような処理手順によって、エイリアスの管理およびエイリアスを含むクエリの処理が実現される。
 <F.エイリアスの自動生成処理>
 上述の説明においては、ユーザがエイリアスおよび対応する文字列を指定することでエイリアス定義180に登録される処理例を示した。このような手動による登録処理に加えて、以下に説明するようなエイリアスの自動生成処理を実装してもよい。
 (f1:エイリアスの自動生成処理)
 図12は、本実施の形態に係る制御システム1におけるエイリアスの自動生成に係る処理手順を示すフローチャートである。図12に示す各ステップは、典型的には、中継装置100のプロセッサ102が中継処理プログラム124を実行することで実現される。
 図12を参照して、中継装置100は、ネットワーク2に接続された制御装置200を探索する(ステップS100)。制御装置200の探索には、例えば、ARP(Address Resolution Protocol)やpingなどが用いられる。
 続いて、中継装置100は、探索された制御装置200のうち1つを選択する(ステップS102)。そして、中継装置100は、選択された制御装置200に接続されたデバイスを探索する(ステップS104)。デバイスの探索には、CIP Identity オブジェクト読出などのプロトコルを用いることができる。
 続いて、中継装置100は、探索したデバイスから変数情報および実構成情報を取得する(ステップS106)。変数情報および実構成情報の取得には、ユニット間通信に固有のコマンド、EtherCATのコマンド、IO-Linkのコマンドなどを用いることができる。そして、中継装置100は、取得した変数情報に含まれる各データについて、文字列(アクセスパスを含む)および暫定のエイリアス名を決定する(ステップS108)。
 また、中継装置100は、探索したデバイス以外のデバイスが存在すれば、当該デバイスからI/O情報を取得する(ステップS110)。I/O情報の取得には、CIP Identity オブジェクト読出などのプロトコルを用いることができる。
 最終的に、中継装置100は、取得した実構成情報、デバイスの情報、デバイス設定ファイル情報などに基づいて、アクセス可能な各デバイスについて、文字列および暫定のエイリアスを決定する(ステップS112)。
 すなわち、ステップS108においては、特定のデータへアクセスするためのアクセスパスおよびエイリアスが自動生成され、ステップS112においては、特定のデバイスへアクセスするためのアクセスパスおよびエイリアスが自動生成される。
 中継装置100は、探索された制御装置200のすべてについて処理が完了したか否かを判断する(ステップS114)。探索された制御装置200のうち処理が完了していないものがあれば(ステップS114においてNO)、中継装置100は、別の制御装置200を選択する(ステップS116)。そして、ステップS104以下の処理が繰り返される。
 探索された制御装置200のすべてについて処理が完了していれば(ステップS114においてYES)、処理は終了する。
 上述したようなエイリアスの自動生成処理を採用することで、以下のような利点がある。
 すなわち、制御システムに含まれる制御装置200が保持、管理、または生成するデータへアクセスするためのアクセスパスおよび対応するエイリアス名の候補を自動的に生成できるとともに、制御装置200に接続されたデバイスが保持、管理、または生成するデータへアクセスするためのアクセスパスおよび対応するエイリアス名の候補を自動的に生成できる。
 さらに、制御システムに含まれる制御装置200および制御装置200に接続されたデバイスへのアクセスパスおよび対応するエイリアス名の候補についても自動的に生成できる。
 また、生成されたエイリアス名の候補および対応するアクセスパスを一覧表示することもできる。なお、エイリアス名の候補については、予め定められた規則に従って自動的に決定されてもよいし、対応するアクセスパスに基づいて自動的に決定されてもよい。
 このように、中継装置100は、制御システム1に含まれる制御装置200およびデバイス250を探索して、エイリアス名(第1の文字列)とアクセスパスなどの文字列(第2の文字列)との組を生成する生成処理を実行可能に構成されてもよい(図5に示すエイリアス設定モジュール152)。
 (f2:エイリアス生成時のフィルタリング)
 上述したエイリアスの自動生成処理においては、基本的には、アクセス可能なデータおよびデバイスのすべてについてアクセスパスを示すエイリアスが生成されることになる。このとき、生成されるエイリアスの範囲を任意に設定するようにしてもよい。すなわち、生成されるエイリアスおよび対応する文字列についてのフィルタリングを設定するようにしてもよい。このようなフィルタリングの項目としては、以下のようなものを用いることができる。
 ・ネットワーク範囲(例えば、IPネットワークアドレス、ネットワーク階層、プロトコル種別など)
 ・工程(例えば、塗装工程、組立工程、検査工程など)
 ・装置プロファイル(例えば、包装機、成形機など)
 ・装置メーカ(例えば、A社、B社など)
 ・装置名(例えば、ラインA_XX Machineなど)
 ・装置内モジュール(例えば、機構A、機構Bなど)
 ・装置運転時間
 ・装置ステータス属性(例えば、正常、異常など)
 ・装置ログ属性(例えば、正常、異常など)
 ・デバイスベンダ(例えば、A社、B社など)
 ・デバイスプロファイル(例えば、コントローラ、リモートI/O、センサ、サーボなど)
 ・デバイス名称
 ・変数属性(例えば、名称、サイズ、入出力、データ型など)
 ・デバイス運転時間や動作回数(例えば、接点ON/OFF回数など)
 ・装置や工程についての任意の識別値
 ユーザは上述したような項目のうち1または複数を任意に指定して、指定された条件を満たすエイリアスのみを自動的に生成できるようにしてもよい。
 このようなフィルタリングを実装することで、以下のような利点がある。
 すなわち、目的や用途に応じて必要なエイリアスのみが生成されるので、エイリアスを用いたシステムの設計や製作に要する工数を削減できる。
 また、指定された条件に合致するエイリアスのみが生成されるので、エイリアスの生成に係る時間を短縮できるとともに、エイリアスの生成時に生じるネットワーク負荷を低減できる。
 このように、中継装置100は、予め設定された条件に合致する、エイリアス名(第1の文字列)とアクセスパスなどの文字列(第2の文字列)との組を生成するようにしてもよい(図5に示すエイリアス設定モジュール152)。
 (f3:エイリアスの選択および登録)
 上述したエイリアスの自動生成処理においては、基本的には、アクセス可能なデータおよびデバイスのすべてについてアクセスパスの候補が生成されることになる。その後、生成されたエイリアスの候補のうち、ユーザが任意に指定したものだけをエイリアス定義180に登録するようにしてもよい。
 図13は、本実施の形態に係る制御システム1におけるエイリアスを選択するためのユーザインターフェイス画面190の一例を示す模式図である。図13を参照して、ユーザインターフェイス画面190は、生成されたエイリアスの候補の一覧196が表示されている。ユーザは、条件入力フォーム192に所望の条件を入力すると、エイリアスの候補の一覧196のうち入力された条件に合致する候補のチェックボックス194がチェックされる。
 最終的に、ユーザがOKボタン198を選択すると、選択された時にチェックされていたエイリアスの候補がエイリアス定義180に登録される。
 図14は、本実施の形態に係る制御システム1におけるエイリアスの選択および登録に係る処理手順を示すフローチャートである。図14に示す各ステップは、典型的には、中継装置100のプロセッサ102が中継処理プログラム124を実行することで実現される。
 図14を参照して、中継装置100は、生成したエイリアスの候補の一覧を含むユーザインターフェイス画面を出力する(ステップS150)。中継装置100は、条件入力フォームに入力された条件を受け付けると(ステップS152)、入力された条件に合致するエイリアスを抽出する(ステップS154)。そして、中継装置100は、抽出したエイリアスに対応するチェックボックスをチェックする(ステップS156)。
 最終的に、中継装置100は、ユーザによるOKボタンの選択を受けて、チェックされているエイリアスをエイリアス定義180に登録する(ステップS158)。そして、エイリアスの登録処理は終了する。
 このようなエイリアスの登録処理を実装することで、以下のような利点がある。
 すなわち、自動的に生成された多数のエイリアスのうち、ユーザが必要なエイリアスのみを適宜抽出してエイリアス定義180に登録できる。このように、中継装置100は、生成されたエイリアス名(第1の文字列)とアクセスパスなどの文字列(第2の文字列)との組のうち、任意に選択された組のみをエイリアス定義180に登録するようにしてもよい(図5に示すエイリアス設定モジュール152)。
 (f4:外部装置での実行形態)
 上述の説明では、エイリアスのフィルタリング、選択および登録などの処理を中継装置100が実行する典型例を示したが、これに限らず、中継装置100が提供する機能の少なくとも一部を外部の情報処理装置(例えば、開発支援装置など)が提供するようにしてもよい。
 <G.エイリアスの動的更新>
 上述したように、エイリアス定義180には、エイリアス名と文字列とが対応付けて格納される。エイリアス定義180へのエイリアスの登録後、対象の制御システム1の構成が変更される場合がある。このような場合においては、エイリアス名および/またはエイリアスパスを更新する必要がある。このようなエイリアスの更新処理の一例について説明する。
 図15は、本実施の形態に係る制御システム1におけるエイリアスの更新例を示す模式図である。図15(A)には、ネットワークアドレスなどのネットワーク構成を変更する例を示す。図15(B)には、制御装置内のモジュールを変更する例を示す。
 図15(A)を参照して、例えば、制御装置のネットワークアドレス(IPアドレス)を「192.168.1.XX」から「192.168.2.XX」に変更したとする。すると、エイリアス名186に対応付けられた文字列188の対象部分を更新する必要がある。
 図15(B)を参照して、制御装置内のモジュールを変更したとする。すると、文字列188の対象部分を更新する必要があるとともに、対応付けられたエイリアス名186についても更新が必要となる。すなわち、エイリアス名186として、対象のモジュールを示す文字列を用いている場合には、対象のモジュールの変更に応じて、文字列も更新することが必要になる。
 上述したような制御システム1の構成の変更などは、段取り替えや装置の入れ替えなどによって発生し得る。そして、制御システム1の構成が変更されると、エイリアスを構成するエイリアス名186および文字列188の更新が必要となる。以下、エイリアスを更新する方法の一例について説明する。
 図16は、本実施の形態に係る制御システム1におけるネットワーク構成の変更に応じてエイリアスを更新する処理例を示す模式図である。図16を参照して、制御装置200または中継装置100に接続された開発支援装置は、制御システム1のネットワーク構成を設定および変更するためのユーザインターフェイス画面600を提供する。
 ユーザは、ユーザインターフェイス画面600上で制御装置200のネットワークアドレス(IPアドレス)を設定あるいは変更することができる。より具体的には、ユーザインターフェイス画面600は、各制御装置200のネットワークアドレスの設定を受け付けるための設定ダイアログ602を表示する。開発支援装置から制御装置200へ新たな設定が提供されることで、制御装置200のネットワークアドレスが変更される。
 このようなネットワークアドレスの変更に伴って、中継装置100は、エイリアス名186に対応付けられた文字列188の対象部分を更新する。
 図17は、本実施の形態に係る制御システム1の制御装置200内のモジュールの変更に応じてエイリアスを更新する処理例を示す模式図である。図17を参照して、制御装置200または中継装置100に接続された開発支援装置は、制御システム1の制御装置200のモジュール構成を設定および変更するためのユーザインターフェイス画面610を提供する。
 ユーザは、ユーザインターフェイス画面610上で制御装置200のモジュール構成を設定あるいは変更することができる。より具体的には、ユーザインターフェイス画面610は、選択された制御装置200に接続されたデバイスを視覚的に表示する。そして、ユーザインターフェイス画面610は、追加あるいは変更するモジュールを示すオブジェクトをドラッグアンドドロップ操作を受け付けることができる。このようなドラッグアンドドロップ操作によって、制御装置200のモジュール構成の設定が変更される。開発支援装置から制御装置200へ新たな設定が提供されることで、制御装置200のモジュール構成が変更される。
 このような制御装置200のモジュール構成の変更に伴って、中継装置100は、エイリアス名186に対応付けられた文字列188の対象部分を更新するとともに、必要に応じて、エイリアス名186についても更新する。
 上述したようなエイリアスの更新を実現するために、中継装置100は、エイリアスのアクセスパスを相対パス(特定の階層を基準としたパス表現)で管理することが好ましい。相対パスで管理することで、いずれかの階層の構成が変更された場合に、当該変更された階層に関連するアクセスパスをより容易に変更できる。
 図16および図17に示すように、ユーザによる開発支援装置の操作に連動して、エイリアス名186および文字列188を自動的に更新する処理を実装することで、ユーザがエイリアスを更新する手間を削減できるとともに、エイリアスの更新忘れなどを防止できる。
 このように、中継装置100は、制御システム1における構成の変更に応じて、エイリアス定義180に含まれるエイリアス名(第1の文字列)とアクセスパスなどの文字列(第2の文字列)との組の内容を更新する更新処理を実行するようにしてもよい。
 <H.他の実施の形態>
 本明細書においては、主として、中継装置100がクエリに応答して、都度アクセス先からデータを取得する構成例について説明したが、中継装置100がデータを一時保存(いわゆる、キャッシュ)するような構成を採用してもよい。さらに、中継装置100は、プロキシのように機能して、制御システム1に含まれる制御装置200およびデバイスから予めデータを取得して、自身のデータベースに格納するようにしてもよい。
 本明細書においては、主として、制御装置200および表示装置300とは独立した中継装置100がクエリに係る処理を実行する例について説明したが、制御装置200または表示装置300が上述の中継装置100と同様の処理を実行するようにしてもよい。
 さらに、中継装置100と制御装置200または表示装置300とが連携して、上述したクエリに係る処理を実現するようにしてもよい。この場合には、上述したクエリに係る処理に必要な機能は、中継装置100、制御装置200および表示装置300のうち複数に分散して配置されることになる。
 さらに、中継装置100が実行するクエリに係る処理を実現するための機能の一部または全部をネットワーク上のクラウドと称されるリソースを用いて実現してもよい。例えば、エイリアス定義180をクラウド上のデータベースに格納するようにしてもよい。
 上述したように、クエリに係る処理を実現するためのハードウェア構成はどのようなものであってもよく、各時代に応じたハードウェアや要求される性能に応じたハードウェアが適宜選択される。
 <I.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
 1または複数の制御装置(200)を含む制御システム(1)であって、
 アクセス要求(500,510,520,530,540,541,548)に従って、前記制御装置または前記制御装置に対する処理を決定する処理部(10:154)と、
 前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信する提供部(40:160,162,164)と、
 第1の文字列(182,186)と前記第1の文字列より長い第2の文字列(184,188)との組を少なくとも1つ含む文字列定義(180)を格納する記憶部(30:108)と、
 前記文字列定義を参照して、前記アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換する解釈部(20:156)とを備える、制御システム。
[構成2]
 前記解釈部は、前記アクセス要求に含まれる特定の文字列(512)と連結された文字列を第1の文字列と解釈する、構成1に記載の制御システム。
[構成3]
 前記アクセス要求は、前記制御システムに含まれる前記制御装置または前記デバイスにアクセスするための経路を示すアクセスパスを含む、構成1または2に記載の制御システム。
[構成4]
 前記アクセス要求は、前記制御システムに含まれる前記制御装置または前記デバイスから取得されたデータに対する変換処理を特定する変換命令を含む、構成1~3のいずれか1項に記載の制御システム。
[構成5]
 前記制御システムに含まれる前記制御装置および前記デバイスを探索して、第1の文字列と第2の文字列との組を生成する生成部(152)をさらに備える、構成1~4のいずれか1項に記載の制御システム。
[構成6]
 前記生成部は、予め設定された条件に合致する、第1の文字列と第2の文字列との組を生成する、構成5に記載の制御システム。
[構成7]
 前記生成部が生成した第1の文字列と第2の文字列との組のうち、任意に選択された組のみを前記文字列定義に登録する登録部(152)をさらに備える、構成5または6に記載の制御システム。
[構成8]
 前記制御システムにおける構成の変更に応じて、前記文字列定義に含まれる第1の文字列と第2の文字列との組の内容を更新する更新部をさらに備える、構成1~7のいずれか1項に記載の制御システム。
[構成9]
 1または複数の制御装置(200)を含む制御システム(1)におけるデータ提供方法であって、
 第1の文字列と前記第1の文字列(182,186)より長い第2の文字列(184,188)との組を少なくとも1つ含む文字列定義(180)を参照して、アクセス要求(500,510,520,530,540,541,548)に含まれる第1の文字列を対応する第2の文字列に置換するステップ(S50~S60)と、
 前記アクセス要求に従って、前記制御装置または前記制御装置に接続されたデバイスに対する処理を決定するステップ(S62)と、
 前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信するステップ(S64~S72)とを備える、データ提供方法。
[構成10]
 1または複数の制御装置(200)を含む制御システム(1)に関連付けられたコンピュータで実行されるデータを提供するための中継処理プログラム(124)であって、前記中継処理プログラムは前記コンピュータに、
 第1の文字列と前記第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を参照して、アクセス要求(500,510,520,530,540,541,548)に含まれる第1の文字列を対応する第2の文字列に置換するステップ(S50~S60)と、
 前記アクセス要求に従って、前記制御装置または前記制御装置に接続されたデバイスに対する処理を決定するステップ(S62)と、
 前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信するステップ(S64~S72)とを実行させる、中継処理プログラム。
 <J.利点>
 本実施の形態に係る制御システムにおいては、エイリアスを用いてアクセス要求(クエリ)を記述できるので、クエリを生成する手間を削減できる。また、具体的なアクセスパスを秘匿化できるので、セキュリティ性能を向上させることができる。さらに、制御システム1の構成などが変更された場合には、変更後の構成に応じて、エイリアス定義180の登録内容を更新すれば、変更前に使用していたクエリをそのまま使用することもでき、制御システム1の構成の変更に柔軟に対応できる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 制御システム、2,4 ネットワーク、6 フィールドネットワーク、10 処理部、20 解釈部、30 記憶部、40 提供部、100 中継装置、102,202 プロセッサ、104 光学ドライブ、105 記録媒体、106,206 主記憶装置、108,208 二次記憶装置、110,212 USBコントローラ、112,114 ネットワークコントローラ、116 入力部、118 表示部、120 バス、122 OS、124 中継処理プログラム、150 インターフェイスモジュール、152 エイリアス設定モジュール、154 クエリ処理モジュール、156 エイリアス解釈モジュール、160 通信処理モジュール、162 データ変換モジュール、164 データ成形モジュール、170 システム情報、171 構成情報、172 デバイスプロファイル、173 索引、180 エイリアス定義、182,186 エイリアス名、184,188 文字列、190,600,610 ユーザインターフェイス画面、192 条件入力フォーム、194 チェックボックス、196 一覧、198 OKボタン、200 制御装置、204 チップセット、210 上位ネットワークコントローラ、214 メモリカードインターフェイス、216 メモリカード、220 フィールドネットワークコントローラ、222 内部バスコントローラ、224 I/Oユニット、231 システムプログラム、232 ユーザプログラム、250 デバイス、300 表示装置、400 情報処理装置、500,510,520,530,540,541,548 クエリ、502 アクセス先記述部、504,505,506,507,508,542,543 クエリ記述部、512 項目、514,524,525,526,527,528,534,536,546 エイリアス、602 設定ダイアログ。

Claims (10)

  1.  1または複数の制御装置を含む制御システムであって、
     アクセス要求に従って、前記制御装置または前記制御装置に接続されたデバイスに対する処理を決定する処理部と、
     前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信する提供部と、
     第1の文字列と前記第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を格納する記憶部と、
     前記文字列定義を参照して、前記アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換する解釈部とを備える、制御システム。
  2.  前記解釈部は、前記アクセス要求に含まれる特定の文字列と連結された文字列を第1の文字列と解釈する、請求項1に記載の制御システム。
  3.  前記アクセス要求は、前記制御システムに含まれる前記制御装置または前記デバイスにアクセスするための経路を示すアクセスパスを含む、請求項1または2に記載の制御システム。
  4.  前記アクセス要求は、前記制御システムに含まれる前記制御装置または前記デバイスから取得されたデータに対する変換処理を特定する変換命令を含む、請求項1~3のいずれか1項に記載の制御システム。
  5.  前記制御システムに含まれる前記制御装置および前記デバイスを探索して、第1の文字列と第2の文字列との組を生成する生成部をさらに備える、請求項1~4のいずれか1項に記載の制御システム。
  6.  前記生成部は、予め設定された条件に合致する、第1の文字列と第2の文字列との組を生成する、請求項5に記載の制御システム。
  7.  前記生成部が生成した第1の文字列と第2の文字列との組のうち、任意に選択された組のみを前記文字列定義に登録する登録部をさらに備える、請求項5または6に記載の制御システム。
  8.  前記制御システムにおける構成の変更に応じて、前記文字列定義に含まれる第1の文字列と第2の文字列との組の内容を更新する更新部をさらに備える、請求項1~7のいずれか1項に記載の制御システム。
  9.  1または複数の制御装置を含む制御システムにおけるデータ提供方法であって、
     第1の文字列と前記第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換するステップと、
     前記アクセス要求に従って、前記制御装置または前記制御装置に接続されたデバイスに対する処理を決定するステップと、
     前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信するステップとを備える、データ提供方法。
  10.  1または複数の制御装置を含む制御システムに関連付けられたコンピュータで実行されるデータを提供するための中継処理プログラムであって、前記中継処理プログラムは前記コンピュータに、
     第1の文字列と前記第1の文字列より長い第2の文字列との組を少なくとも1つ含む文字列定義を参照して、アクセス要求に含まれる第1の文字列を対応する第2の文字列に置換するステップと、
     前記アクセス要求に従って、前記制御装置または前記制御装置に接続されたデバイスに対する処理を決定するステップと、
     前記決定された処理を実行することで取得されたデータを前記アクセス要求の送信元に送信するステップとを実行させる、中継処理プログラム。
PCT/JP2022/012246 2021-04-28 2022-03-17 制御システム、データ提供方法および中継処理プログラム WO2022230429A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/553,140 US20240184256A1 (en) 2021-04-28 2022-03-17 Control system, data providing method, and relay processing program
CN202280024351.9A CN117083606A (zh) 2021-04-28 2022-03-17 控制系统、数据提供方法以及中继处理程序
EP22795351.0A EP4332790A1 (en) 2021-04-28 2022-03-17 Control system, data providing method, and relay processing program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-075642 2021-04-28
JP2021075642A JP7494788B2 (ja) 2021-04-28 2021-04-28 制御システム、データ提供方法および中継処理プログラム

Publications (1)

Publication Number Publication Date
WO2022230429A1 true WO2022230429A1 (ja) 2022-11-03

Family

ID=83847905

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/012246 WO2022230429A1 (ja) 2021-04-28 2022-03-17 制御システム、データ提供方法および中継処理プログラム

Country Status (6)

Country Link
US (1) US20240184256A1 (ja)
EP (1) EP4332790A1 (ja)
JP (1) JP7494788B2 (ja)
CN (1) CN117083606A (ja)
TW (1) TWI808721B (ja)
WO (1) WO2022230429A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030182601A1 (en) * 2002-03-19 2003-09-25 Scott Richardson System and method for integrating hardware switching operations into test executive software
JP2008310532A (ja) * 2007-06-13 2008-12-25 Vision Arts Kk コマンド実行方法及びミドルデバイス
US20140297806A1 (en) * 2012-12-07 2014-10-02 Industry Foundation Of Chonnam National University Machine to machine system, method and server using social network service
JP2020013224A (ja) 2018-07-13 2020-01-23 オムロン株式会社 制御システム、検索装置および検索プログラム
JP2020013223A (ja) 2018-07-13 2020-01-23 オムロン株式会社 制御システム、検索装置および検索プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030182601A1 (en) * 2002-03-19 2003-09-25 Scott Richardson System and method for integrating hardware switching operations into test executive software
JP2008310532A (ja) * 2007-06-13 2008-12-25 Vision Arts Kk コマンド実行方法及びミドルデバイス
US20140297806A1 (en) * 2012-12-07 2014-10-02 Industry Foundation Of Chonnam National University Machine to machine system, method and server using social network service
JP2020013224A (ja) 2018-07-13 2020-01-23 オムロン株式会社 制御システム、検索装置および検索プログラム
JP2020013223A (ja) 2018-07-13 2020-01-23 オムロン株式会社 制御システム、検索装置および検索プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HAYATO ISHIBASHI: "New internet construction", UNIX USER, vol. 4, no. 3, 1 March 1995 (1995-03-01), JP, pages 98 - 106, XP009541064 *

Also Published As

Publication number Publication date
JP2022169920A (ja) 2022-11-10
CN117083606A (zh) 2023-11-17
JP7494788B2 (ja) 2024-06-04
TW202242671A (zh) 2022-11-01
TWI808721B (zh) 2023-07-11
US20240184256A1 (en) 2024-06-06
EP4332790A1 (en) 2024-03-06

Similar Documents

Publication Publication Date Title
JP5043937B2 (ja) 分散システム内の連合リソース発見のための方法およびコンピュータ・プログラム
JP6065008B2 (ja) 制御装置
CN106776633B (zh) 用户可配置的自动生成a2l文件的装置和方法
US10467318B2 (en) Dynamic information retrieval and publishing
JPH0827726B2 (ja) 共通エージェント・コンピュータ管理システムと方法
CN112367211B (zh) 一种设备命令行生成配置模板方法、装置及存储介质
CN111966633B (zh) 用于查询目录下子节点的方法、装置、电子设备及介质
US7353322B1 (en) System and method for providing dynamic configuration ROM using double image buffers
JP2022511420A (ja) 自動化目的のためのデータモデルをターゲットオントロジーに変換する方法
JP2001166977A (ja) データ構造管理装置、データ構造管理システム、データ構造管理方法およびデータ構造管理プログラムを格納する記録媒体
US11586182B2 (en) System and device to automatically identify data tags within a data stream
WO2022230429A1 (ja) 制御システム、データ提供方法および中継処理プログラム
JP7107046B2 (ja) 制御システム、検索装置および検索プログラム
JP7265035B2 (ja) アドレス空間の選択的集約
JP2015115062A (ja) センサネットワークで使用するためのデータ統合装置およびそのデータ統合方法
US7120663B2 (en) Method and apparatus for updating XML data
JP4529766B2 (ja) 情報提供システム、情報提供方法、サーバ及び情報提供プログラム
JP7107047B2 (ja) 制御システム、検索装置および検索プログラム
KR102428429B1 (ko) 데이터 처리 방법, 데이터 처리 장치 및 컴퓨터 판독 가능한 저장 매체
US11743121B1 (en) Method and system for collection of vendor-agnostic state and configuration information from network devices
JP2006040025A (ja) ストレージ接続変更方法、ストレージ管理システム及びプログラム
WO2019221234A1 (ja) 変換ロジック生成装置、httpメソッド実行システム、httpメソッド実行方法および変換ロジック生成プログラム
CN113641711B (zh) 一种针对saas租户的数据缓存处理方法、装置及介质
CN112445764B (zh) 文件操作的方法、装置、存储介质及电子设备
CN115729888A (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: 22795351

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280024351.9

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 18553140

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2022795351

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022795351

Country of ref document: EP

Effective date: 20231128