Patent Description:
A control device such as a PLC (Programmable Logic Controller) is introduced in various manufacturing sites. The control device is a kind of computer, and executes a control program designed according to a manufacturing device or a manufacturing facility. Such a control device is communicably connected to an information processing device such as a human machine interface (HMI).

For example, the information processing device uses information from the control device to graphically display an operating state or the like of a control target of the control device, or uses information from the control device to execute an application different from the application that is displayed.

For example, <CIT> (PTL <NUM>) discloses a program display as an example of the information processing device connected to the PLC. In the program display, when one screen displayed on the display screen is set as one page, layout of functional components displayed on the page, assignment of functions, and the like are performed in units of pages. <CIT> relates to a building-facility information storage which stores data sizes of process data to be collected from building-side communicating devices.

PTL <NUM> does not describe how to specifically acquire information necessary for implementing the function allocated to each page. Information (hereinafter, referred to as "process data") of the control device which is the PLC is used for an application implementing this function. A user needs to perform transmission setting on the control device in order to transmit the process data used for the application.

An object of the present invention is to easily perform the transmission setting in which the process data necessary for execution of the application is transmitted from the control device to the information processing device.

According to an object of the present invention, a control system according to claim <NUM> is provided.

According to another object of the invention, a setting device as claimed in claim <NUM> is provided. Yet another object of the invention is a program as claimed in claim <NUM>. Preferred embodiments are covered by the appended dependent claims.

According to this disclosure, the transmission setting can be easily performed such that the process data necessary for execution of the application is transmitted from the control device toward the information processing device. Furthermore, because the number of data sets and the process data to be included in each data set are determined according to the evaluation criterion as claimed in claim <NUM>, the appropriate transmission setting considering the communication load is designed according to the application.

According to the present disclosure, the transmission setting can be easily performed such that the process data necessary for the execution of the application is transmitted from the control device to the information processing device.

With reference to the drawings, an embodiment of the present invention will be described below. In the following description, the same component and constituent are denoted by the same reference numeral. Their names and functions are the same. Thus, the detailed description thereof will not be repeated. The following embodiment and modification described below may selectively be combined as appropriate.

<FIG> is a schematic diagram illustrating an application scene of a control system <NUM>. Control system <NUM> includes arithmetic means <NUM> that provides a function of supporting setting of a communication environment between a controller <NUM> and an HMI200.

Control system <NUM> includes controller <NUM> and HMI <NUM>. Controller <NUM> is communicably connected to HMI <NUM> through an information system network <NUM>. For example, information system network <NUM> is a network conforming to a communication standard capable of performing data exchange without depending on a vendor, a type of an operating system (OS), or the like. For example, object linking and embedding for process control unified architecture (OPC UA) is known as the communication standard.

The communication standard adopted in information system network <NUM> is not limited to the OPC UA. For example, information system network <NUM> may be a network conforming to the communication standard specific to a specific vendor or OS, or may be a network conforming to EtherNet/IP (registered trademark) that is an industrial open network in which a control protocol is mounted on Ethernet (registered trademark).

In the example of <FIG>, communication between HMI <NUM> and controller <NUM> is performed by a publish-subscribe communication scheme of the OPC UA. Hereinafter, communication to which a publish-subscribe communication scheme of the OPC UA is applied is also referred to as PubSub communication.

Control system <NUM> may include a plurality of controllers <NUM>. Control system <NUM> may include a plurality of HMIs <NUM>. In addition, control system <NUM> may have a configuration in which one HMI <NUM> is communicably connected to one controller <NUM>, a configuration in which one HMI <NUM> is communicably connected to a plurality of controllers <NUM>, a configuration in which a plurality of HMIs <NUM> are communicably connected to one controller <NUM>, or a configuration in which the plurality of HMIs <NUM> are communicably connected to the plurality of controllers <NUM>. In the example of <FIG>, control system <NUM> has a configuration in which two HMIs <NUM> (HMIs <NUM>-<NUM>, <NUM>-<NUM>) are communicably connected to one controller <NUM>. Hereinafter, the plurality of HMIs <NUM> will be referred to as HMIs <NUM>-<NUM>, <NUM>-<NUM> when being distinguished from each other.

Controller <NUM> is an example of the control device of the present invention, executes a control program <NUM> in order to control a control target, and executes main processing in control system <NUM>. In the example of <FIG>, controller <NUM> is communicably connected to a field device <NUM> that is a control target through control system network <NUM>. Preferably, a network that performs fixed-period communication guaranteeing a data arrival time is used as control system network <NUM>. EtherCAT (registered trademark), EtherNet/IP (registered trademark), DeviceNet (registered trademark), CompoNet (registered trademark), and the like are known as the network that performs the fixed-period communication.

Field device <NUM> includes various industrial devices that automate a production process, and includes a device that gives some physical action to a manufacturing device, a production line, or the like (hereinafter, also collectively referred to as a "field") and an input and output device that exchanges information with the field. For example, field device <NUM> includes a servo driver that controls a servo motor, a robot controller that controls a robot, a sensor that is a device that collects data, an actuator that moves a conveyor, a remote input and output (I/O) device, or the like.

Controller <NUM> controls field device <NUM> by executing control program <NUM>. In addition, controller <NUM> manages a plurality of pieces of process data <NUM> that are referred to or updated by the execution of control program <NUM>.

As used herein, the "process data" is a term that encompasses any data that can be referenced by control means (typically embodied as controller <NUM>) or application execution means (typically embodied as HMI <NUM>). More specifically, the "process data" may include input data acquired from the field device, output data (command value) calculated by the control operation and provided to the field device, data temporarily calculated in order to execute the control arithmetic operation, data indicating operation content by the user, and the like.

Process data <NUM> includes data input from field device <NUM> to controller <NUM>, data output from controller <NUM> to field device <NUM>, and data used for the execution of control program <NUM> or state management of controller <NUM>. Process data <NUM> is periodically updated in association with the execution of control program <NUM>.

Controller <NUM> includes a communication processing unit <NUM> that periodically transmits one or a plurality of data sets <NUM>. Each data set <NUM> includes one or a plurality of predetermined process data <NUM> among the plurality of pieces of process data <NUM> managed by controller <NUM>. Communication processing unit <NUM> generates and transmits data set <NUM> according to transmission setting <NUM> determined by arithmetic means <NUM>.

HMI <NUM> is an example of the information processing device of the present invention, and executes an application <NUM> using a value of process data <NUM> included in data set <NUM> transmitted by controller <NUM>. Hereinafter, the value of process data <NUM> may be simply referred to as "process data <NUM>". HMI <NUM> executes application <NUM> to present various types of information obtained by the execution of control program <NUM> to the operator.

HMI <NUM> may directly receive data set <NUM> transmitted by controller <NUM> from controller <NUM>, or receive data set <NUM> through another device such as a relay device.

The information processing device that executes application <NUM> using process data <NUM> managed by controller <NUM> is not limited to HMI <NUM>. For example, the information processing device may be a database that collects information regarding traceability measured from field device <NUM> that is the control target, a supervisory control and data acquisition (SCADA) device that performs the process control and centralized monitoring, or the like.

Furthermore, the information processing device is not limited to the device connected to controller <NUM> through information system network <NUM>, but may be a robot controller that controls a robot connected through control system network <NUM>, an actuator, another controller, or the like. That is, application <NUM> is not limited to one intended to present the information, but may be one intended to implement the function using process data <NUM> managed by controller <NUM>. In the following, the application is intended to present the information, and will be described as a program that provides a function of displaying an image on the display.

At an execution stage of application <NUM>, HMI <NUM> executes application <NUM> using the value of process data <NUM> included in data set <NUM> distributed from controller <NUM>. Application <NUM> may be distributed in a state stored in a memory card or a database in an installable format, or may be produced by the user.

In the example of <FIG>, HMI <NUM>-<NUM> executes an application <NUM>-1a using process data 52A, 52B and an application <NUM>-1b using process data 52B, 52C. HMI <NUM>-<NUM> executes an application <NUM>-2a using process data 52C, 52D and an application <NUM>-2b using process data 52A, 52D.

Arithmetic means <NUM> determines data set transmission setting <NUM> by communication processing unit <NUM> of controller <NUM>. Typically, a processor of a support device that provides a development environment of application <NUM> executes a support program, thereby implementing the function of arithmetic means <NUM>. Arithmetic means <NUM> may be implemented by a dedicated setting device. In addition, a relay device may be provided between HMI <NUM> and controller <NUM>, and the function of arithmetic means <NUM> may be implemented by the relay device.

<FIG> is a view illustrating an outline of a functional configuration of arithmetic means <NUM>. Referring to <FIG>, arithmetic means <NUM> includes acquisition means <NUM> and determination means <NUM>. Acquisition means <NUM> acquires process data <NUM> necessary for each of one or a plurality of applications <NUM> executed by HMI <NUM> for each of HMI <NUM>-<NUM> and HMI <NUM>-<NUM>.

Acquisition means <NUM> acquires process data <NUM> necessary for each of applications <NUM> for each of applications <NUM>-1a, <NUM>-1b, <NUM>-2a, <NUM>-2b.

Specifically, acquisition means <NUM> specifies which process data <NUM> among the plurality of pieces of process data <NUM> managed by controller <NUM> should be output onto information system network <NUM>. In the example of <FIG>, acquisition means <NUM> specifies that process data <NUM> used by applications <NUM>-1a, <NUM>-1b, <NUM>-2a, <NUM>-2b is process data 52A, 52B, 52C, 52D.

Determination means <NUM> determines the number of data sets <NUM> transmitted by communication processing unit <NUM> and process data <NUM> to be included in each data set <NUM> such that each process data <NUM> used in application <NUM> of each HMI <NUM> is transmitted from controller <NUM> to each HMI <NUM>. A candidate of "the number of data sets <NUM> transmitted by communication processing unit <NUM> and process data <NUM> to be included in each data set <NUM>" determined by determination means <NUM> may be plural, and the final determination may be made by the user.

That is, determination means <NUM> determines in what combination process data <NUM> used in each application <NUM> of each HMI <NUM> is transmitted. Specifically, determination means <NUM> determines in what combination process data 52A, 52B, 52C, 52D used in applications <NUM>-1a, <NUM>-1b, <NUM>-2a, <NUM>-2b are transmitted.

For example, in the example of <FIG>, determination means <NUM> determines the number of data sets <NUM> transmitted by communication processing unit <NUM> as two, and determines process data <NUM> to be included in the two data sets <NUM> as process data 52A and process data 52D, and process data 52B and process data 52C. That is, determination means <NUM> generates transmission setting <NUM> that defines that data set <NUM>-<NUM> storing the value of process data 52A and the value of process data 52D and data set <NUM>-<NUM> storing the value of process data 52B and the value of process data 52C are generated and transmitted.

Determination means <NUM> determines a combination of process data <NUM> to be transmitted based on evaluation criterion <NUM> regarding a communication load. More specifically, determination means <NUM> determines the combination of process data <NUM> to be transmitted by solving an optimization problem of "advance result of evaluation of a combination of process data <NUM> to be transmitted according to evaluation criterion <NUM>".

An algorithm solving the optimization problem is not limited. For example, the algorithm such as dynamic programming may be utilized.

For example, evaluation criteria <NUM> include viewpoints of a load on communication processing unit <NUM> of controller <NUM>, communication performance defined according to a period in which the value of process data <NUM> is transmitted to each HMI <NUM> or a data amount transmitted at once, or a load on information system network <NUM>, importance of each process data <NUM> in the entire system, and the like. Furthermore, evaluation criterion <NUM> may be configured to be able to be designated by the user.

For example, the "importance of each process data <NUM> in the entire system" means a frequency (use frequency) at which process data <NUM> is used in application <NUM>, the importance in the entire system of HMI <NUM> that executes application <NUM> using process data <NUM>, and worth of process data <NUM> itself. For example, transmission setting <NUM> can be designed to preferentially transmit important process data <NUM> by reflecting the "importance of each process data <NUM> in the entire system" in evaluation criterion <NUM>.

As described above, because the combination (data set) of process data <NUM> to be transmitted is determined based on evaluation criteria <NUM> regarding the communication load, control system <NUM> can appropriately design transmission setting <NUM> in consideration of the communication load according to application <NUM>.

In the embodiment, four types of the process data are used in entire control system <NUM> in order to simplify the description. However, in an actual production site, more types of process data are used for applications, and a user hardly manually perform transmission setting <NUM> in consideration of the communication load of entire control system <NUM>. As described in the embodiment, because arithmetic means <NUM> determines transmission setting <NUM> based on evaluation criterion <NUM> regarding the communication load, the communication between controller <NUM> and HMI <NUM> can be easily performed by transmission setting <NUM> in consideration of the communication load of entire control system <NUM>.

<FIG> is a view illustrating an outline of PubSub communication. In the following description, a side that distributes data is referred to as a "publisher", and a side that subscribes to data distributed by the publisher is referred to as a "subscriber". In control system <NUM> according to the embodiment, controller <NUM> corresponds to the publisher that distributes the data. On the other hand, HMI <NUM> corresponds to the subscriber that subscribes to the data distributed by controller <NUM>.

The publisher generates and distributes a data set storing one or a plurality of pieces of data. The publisher transmits the data set to a network including the publisher and the subscriber without specifying a destination. This transmission form may be multicast or unicast. Depending on circumstances, this transmission form may be broadcast.

The subscriber manages which data set is set to a subscription target among data sets distributed on the network accessible by the subscriber. For example, in the example of <FIG>, the subscriber subscribes to a data set <NUM> and a data set <NUM> among data sets <NUM> to <NUM>. For this reason, the subscriber receives only data set <NUM> and data set <NUM> among data sets <NUM> to <NUM> distributed by the publisher. When the subscriber changes the subscription target, the subscriber changes a reception target.

The subscriber may receive the data set that is not the subscription target, and in this case, the subscriber may perform processing of discarding the data set that is not the subscription target.

The method by which the subscriber manages the subscription target is not limited to the method in <FIG>. For example, whether to subscribe for each data may be managed. As another method, whether to subscribe to each set of data different from the data set may be managed.

With reference to <FIG> and <FIG>, an outline of PubSub communication between HMI <NUM> and controller <NUM> will be described. <FIG> is a view illustrating an outline of HMI <NUM>-<NUM> that functions as the subscriber. <FIG> is a view illustrating an outline of controller <NUM> that functions as the publisher. In <FIG>, HMI <NUM>-<NUM> will be described as an example, but HMI <NUM>-<NUM> also has the same configuration as HMI <NUM>-<NUM>.

Referring to <FIG>, HMI <NUM>-<NUM> includes a display <NUM>, a plurality of applications <NUM> (<NUM>-1a, <NUM>-1b. ), and a communication processing unit <NUM> that is an OPC UA client. Each application <NUM> is a program displaying a specific page on display <NUM>. <FIG> illustrates an example in which an application <NUM> displaying page <NUM> on display <NUM> is executed.

Each page includes a plurality of objects <NUM>. For example, page <NUM> includes an object 54a to an object 54d. The display of object <NUM> is updated according to a value of a variable included in the program. For example, the display of object 54a is updated according to the value of a variable <NUM>. Similarly, the display of object 54b is updated according to the value of a variable <NUM>, the display of object 54c is updated according to the value of variable <NUM>, and the display of object 54d is updated according to the value of variable <NUM>.

Application <NUM> refers to mapping information <NUM> to update the value of the variable. Mapping information <NUM> is information in which the variable and the process data are associated with each other. For example, the value of variable <NUM> is updated according to the value of process data 52A. The period at which the value of each process data is updated may be set by the user according to the production of application <NUM>, or determined according to the update period of controller <NUM> that manages the process data.

Communication processing unit <NUM> is an OPC UA client, and causes HMI <NUM> to function as the subscriber. Communication processing unit <NUM> includes a subscription management means <NUM> and a communication driver <NUM>.

Subscription management means <NUM> manages the subscription target according to currently-executed application <NUM>. Specifically, subscription management means <NUM> refers to subscription management information <NUM> generated based on application <NUM> and mapping information <NUM> to specify the subscription target, and notifies communication driver <NUM> of the subscription target. Communication driver <NUM> receives data set <NUM> including process data <NUM> of the subscription target, and updates the value of process data <NUM> used by application <NUM>.

Subscription management information <NUM> is information in which application <NUM> is associated with process data <NUM> used in application <NUM>, and is generated based on application <NUM> and mapping information <NUM>.

For example, when application <NUM> is executed, subscription management means <NUM> refers to subscription management information <NUM> and specifies that process data 52A, 52B are used for executing application <NUM>. Subscription management means <NUM> notifies communication driver <NUM> of the start of subscription to process data 52A, 52B. When the execution target of the application is switched, subscription management means <NUM> also notifies communication driver <NUM> of the information about process data <NUM> stopping the subscription together with the information about process data <NUM> starting the subscription.

Communication driver <NUM> reads data set <NUM> including process data <NUM> of the subscription target from among the plurality of data sets <NUM> distributed by controller <NUM>. More specifically, communication driver <NUM> refers to link information <NUM> specifying process data <NUM> stored in each data set <NUM>, and specifies data set <NUM> including process data <NUM> of the subscription target from among the plurality of data sets <NUM> delivered by controller <NUM>.

Link information <NUM> is generated at timing when transmission setting <NUM> is generated by arithmetic means <NUM>. The subject that refers to link information <NUM> is not limited to communication driver <NUM>. For example, the entity that refers to link information <NUM> may be subscription management means <NUM>. In this case, data set <NUM> necessary for obtaining the value of process data <NUM> necessary for the execution of application <NUM> is specified, and data set <NUM> specified to the communication driver is given notice of as the subscription target.

Referring to <FIG>, controller <NUM> includes control program <NUM>, a control system network interface (IF) <NUM>, and communication processing unit <NUM> that is the OPC UA server.

Controller <NUM> executes control program <NUM> to control field device <NUM>. For example, control program <NUM> updates the value of process data <NUM> using the state value of field device <NUM> input through control system network IF <NUM>, and executes the control arithmetic calculation with reference to the updated value of process data <NUM>. Control program <NUM> updates the value of process data <NUM> according to the result of the executed control arithmetic calculation, and outputs the updated value of process data <NUM> as the control value to field device <NUM> through control system network IF <NUM>.

Communication processing unit <NUM> is an OPC UA server, and causes controller <NUM> to function as the publisher. Communication processing unit <NUM> includes data set generation means <NUM> that generates data set <NUM> and a communication driver <NUM> that transmits data set <NUM>.

Data set generation means <NUM> refers to transmission setting <NUM> to generate data set <NUM> storing one or a plurality of pieces of process data <NUM>. Data set <NUM> may refer to a set of process data <NUM> or a data set in a format that can be output onto information system network <NUM>.

Transmission setting <NUM> is information that specifies process data <NUM> stored in one data set <NUM>. Only one process data <NUM> may be specified to be stored in one data set <NUM>, or the plurality of pieces of process data <NUM> may be specified to be stored in one data set. That is, the term "data set" means a combination of one or more process data <NUM> stored in data set <NUM>.

That is, controller <NUM> generates the data set according to transmission setting <NUM>. Thus, the processing load on controller <NUM> is reduced as compared with the case where transmission setting <NUM> defines the process data of a specific attribute as one data set.

Transmission settings <NUM> may include information that defines a condition that generates data set <NUM>. For example, a condition that generates data set <NUM> may be defined such that data set <NUM> is generated at every period in which the value of process data <NUM> is updated with the execution of control program <NUM>. In this case, the combination of process data <NUM> included in data set <NUM> is preferably defined in consideration of the generation condition.

Communication driver <NUM> distributes data set <NUM> generated by data set generation means <NUM> onto information system network <NUM>.

With reference to <FIG>, data exchange between HMI <NUM> and controller <NUM> when the subscription targets of HMI-<NUM> are process data 52B, 52C and the subscription targets of HMI <NUM>-<NUM> are process data 52A, 52D will be described. In <FIG>, the reference numeral is partially omitted from process data 52A, 52B, 52C, 52D.

Controller <NUM> periodically generates each of data sets <NUM>, <NUM>, <NUM>,. and the plurality of data sets <NUM> and transmits each of data sets <NUM>, <NUM>, <NUM>,. and the plurality of data sets <NUM> on the information system network <NUM>. It is assumed that process data 52A and process data 52D are stored in data set <NUM>, process data 52B and process data 52C are stored in data set <NUM>, and process data 52X and process data 52Y are stored in data set <NUM>.

HMI <NUM>-<NUM> acquires data set <NUM> in which the values of process data 52B and process data 52C that are the subscription target are stored among the plurality of data sets <NUM> distributed from controller <NUM>. Because data set <NUM> is periodically transmitted, HMI <NUM>-<NUM> periodically acquires data set <NUM>. Thus, HMI <NUM>-<NUM> can periodically update the variables corresponding to process data 52B and process data 52C, and also updates the display of object <NUM> according to the update of the variables.

HMI <NUM>-<NUM> acquires data set <NUM> in which process data 52A and process data 52D that are the subscription target are stored among the plurality of data sets <NUM> distributed from controller <NUM>. Because data set <NUM> is periodically transmitted, HMI <NUM>-<NUM> periodically acquires data set <NUM>. Thus, HMI <NUM>-<NUM> can periodically update the variables corresponding to process data 52A and process data 52D, and also updates the display of object <NUM> according to the update of the variables.

When the application of the execution target changes, communication processing unit <NUM> of HMI <NUM> changes the subscription target and changes data set <NUM> of the read target. Hereinafter, changing the subscription target is also referred to as "changing the subscription request".

As described above, in the PubSub communication, even when the application of the execution target is changed, it is not necessary to change the processing on the publisher side. For this reason, the PubSub communication can reduce the number of exchanges performed between the data transmission side and the data reception side as compared with the command and response scheme communication.

On the other hand, communication processing unit <NUM> of HMI <NUM> also changes the subscription request according to the change of application <NUM> of the execution target. In order to implement the PubSub communication between controller <NUM> and HMI <NUM>, the side of controller <NUM> (publisher) needs to generate data set <NUM> so as to satisfy each subscription request that changes according to a change of application <NUM>. That is, the user needs to design transmission setting <NUM> of controller <NUM> so as to satisfy the subscription request specialized for each of all applications <NUM> executed by HMI <NUM> that is the subscriber.

When the plurality of applications <NUM> that use process data <NUM> managed by controller <NUM> exist, a method for storing process data <NUM> used by application <NUM> in each application <NUM> in one data set <NUM> and transmitting process data <NUM> can be considered. However, such a method does not consider the communication load applied to the entire network including controller <NUM> and HMI <NUM> by transmitting and receiving data set <NUM>. For this reason, although there is no problem in the case where the amount of data exchanged between controller <NUM> and HMI <NUM> is small, there is a possibility that the transmission period of data set <NUM> cannot be secured or the transmission speed is extremely lowered due to the limit of the communication performance of information system network <NUM> in the case where the amount of data increases.

In the embodiment, because the combination (data set) of process data <NUM> to be transmitted based on evaluation criterion <NUM> regarding the communication load is determined, control system <NUM> can design appropriate transmission setting <NUM> in consideration of the network including controller <NUM> and HMI <NUM> and application <NUM>.

With reference to <FIG>, an example of an arithmetic method executed by determination means <NUM> will be described. <FIG> is a diagram illustrating an example of the arithmetic operation executed by determination means <NUM>. In the example of <FIG>, determination means <NUM> acquires a combination candidate of process data <NUM> in order to transmit a problem acquiring the combination of process data <NUM> as a "knapsack problem". When a plurality of acquired candidates exist, determination means <NUM> evaluates each candidate according to an evaluation index that is not incorporated in the "knapsack problem".

Referring to <FIG>, determination means <NUM> includes worth determination means <NUM>, candidate calculation means <NUM>, evaluation means <NUM>, and determination means <NUM>.

Worth determination means <NUM> determines the worth of process data <NUM>. For example, worth determination means <NUM> converts the importance of process data <NUM> in the entire system into the worth. Specifically, worth determination means <NUM> determines the worth of each piece of process data necessary for each application <NUM> acquired by acquisition means <NUM>, and generates worth information <NUM> indicating the worth of each piece of process data <NUM>. For example, worth determination means <NUM> estimates the worth of the process data <NUM> from the frequency at which the process data <NUM> is used and the importance of HMI <NUM> using the process data <NUM> in the system.

For example, the importance of HMI <NUM> using process data <NUM> in the system is calculated from HMI information <NUM>. For example, HMI information <NUM> includes information that can specify which HMI <NUM> is registered as a master device and which HMI <NUM> is registered as an auxiliary device. HMI information <NUM> may include an operation status indicating a use frequency of HMI <NUM>. In the embodiment, HMI information <NUM> is information indicating the master unit and the auxiliary unit.

HMI <NUM>-<NUM> according to the embodiment is the master unit (mainly-used HMI) in control system <NUM>, and HMI <NUM>-<NUM> is the auxiliary unit (HMI used as a sub-unit) in control system <NUM>. The information is registered as HMI information <NUM>. For example, HMI information <NUM> is registered by the user when application <NUM> is installed in HMI <NUM> or when application <NUM> is developed.

For example, a worth p of one piece of process data <NUM> is calculated by the following Equation (<NUM>).

At this point, i specifies the type of HMI <NUM>, i = <NUM> indicates HMI <NUM>-<NUM>, and i = <NUM> indicates HMI <NUM>-<NUM>. α is importance in the system of HMI <NUM> obtained from HMI information <NUM>. n indicates a frequency at which process data <NUM> is used in application <NUM> executed by HMI <NUM>. For example, when HMI <NUM> can execute five applications <NUM> and specific process data <NUM> is used by three applications <NUM> among five applications <NUM>, frequency n at which process data <NUM> is used becomes <NUM>/<NUM>. Frequency n may reflect the use frequency of the application.

The worth calculation method is an example, and for example, the worth of process data <NUM> itself may be further reflected in the above Equation (<NUM>). For example, the high worth may be given to process data <NUM> used for determination of generation of an error, and the lower worth may be given to process data <NUM> used for logging than process data <NUM> used for the determination of the generation of the error.

In <FIG>, pa indicates the worth of process data 52A, pB indicates the worth of process data 52A, and pc indicates the worth of process data 52C.

Candidate calculation means <NUM> sets a data size of process data <NUM> to a "weight", the worth of process data <NUM> estimated by worth determination means <NUM> to the "worth", and the data capacity of one packet to "a capacity of knapsack", and determines a combination of process data <NUM> that maximizes the sum of worth of process data <NUM> stored in one packet.

The data capacity of the packet is obtained as capacity information <NUM>. Capacity information <NUM> may be information determined previously as the performance of information system network <NUM>, or information set to a temporary value by the user. The data size of process data <NUM> is previously determined for each process data <NUM>.

Candidate calculation means <NUM> stores the determined combination in candidate data <NUM> as process data <NUM> to be included in one data set. Candidate calculation means <NUM> excludes process data <NUM> stored in candidate data <NUM> from the candidates of process data <NUM> stored in the packet, and again determines the combination of process data <NUM> that maximizes the sum of the worth of process data <NUM> stored in one packet.

That is, candidate calculation means <NUM> determines the combination of process data <NUM> while including the index evaluating the worth of the process data included in the data set as the evaluation criterion. As a result, for example, transmission setting <NUM> can be designed such that high-worth process data <NUM> can be preferentially transmitted.

Specifically, the worth of each determined data set <NUM> can be determined based on the worth of process data <NUM> included in data set <NUM>, and transmission setting <NUM> can be designed to preferentially transmit data set <NUM> having high worth.

Candidate calculation means <NUM> repeats the determination of the combination of process data <NUM>, the storage of the determined combination in candidate data <NUM>, and the exclusion of process data <NUM> stored in candidate data <NUM> from among the candidates of process data <NUM> stored in the packet until the candidate of process data <NUM> stored in the packet is eliminated.

Candidate calculation means <NUM> may perform a series of processing until the candidate of process data <NUM> stored in the packet is eliminated a plurality of times, and acquire a plurality of pieces of candidate data (first candidate data 374a, second candidate data 374b,. When the series of processing is performed the plurality of times, candidate calculation means <NUM> may change an algorithm determining the combination of process data <NUM> that maximizes the sum of the worth of process data <NUM> stored in one packet each time. Although the algorithm is not particularly limited, and examples thereof include a dynamic programming method, a greedy method, and a genetic algorithm.

Furthermore, even when the series of processing is executed by the same algorithm, a plurality of candidate data is obtained when a plurality of solutions are obtained. The processing of candidate calculation means <NUM> may be terminated when one candidate data is acquired. In the following description, it is assumed that the plurality of pieces of candidate data <NUM> is acquired.

Evaluation means <NUM> evaluates each of the plurality of candidate data <NUM> based on a predetermined index. In the example of <FIG>, evaluation means <NUM> evaluates each of the plurality of pieces of candidate data <NUM> based on each of a communication load index <NUM>, a communication performance index <NUM>, and a communication efficiency index <NUM>.

Communication load index <NUM> is an index evaluating the load when controller <NUM> transmits data set <NUM>. For example, communication load index <NUM> uses the number of data sets included in candidate data <NUM>, the number of process data stored in one data set, the data size of one data set, and the like as an index.

When the number of data sets included in candidate data <NUM> is small, the number of times controller <NUM> transmits data set <NUM> can be reduced, an interval for transmitting the data set can be made, and the communication load on controller <NUM> can be reduced.

That is, when the evaluation is made according to communication load index <NUM>, evaluation means <NUM> enhances the evaluation of the candidate data <NUM> of the evaluation target as each of the number of data sets included in candidate data <NUM>, the number of process data stored in one data set, and the data size of one data set is smaller. As a result, transmission setting <NUM> can be designed such that the load applied to controller <NUM> is reduced.

Communication performance index <NUM> is an index evaluating the performance of the data delivered to HMI <NUM>, and is an index evaluating the type of process data that can be received by HMI <NUM> during a predetermined period and is used in the application executed in HMI <NUM>. For example, communication performance index <NUM> uses the period in which the data set is transmitted to HMI <NUM>, the type of the process data <NUM> used in the application executed in HMI <NUM> among process data <NUM> included in data set <NUM> distributed to HMI <NUM>, and the like.

When the evaluation is made according to communication performance index <NUM>, evaluation means <NUM> enhances the evaluation of candidate data <NUM> of the evaluation target as the number of types of process data <NUM> included in data set <NUM> distributed to HMI <NUM> during the predetermined period increases. However, the evaluation of candidate data <NUM> of the evaluation target is higher as the number of types of process data <NUM> used in HMI <NUM> is larger, not simply the number of types is larger. As a result, transmission setting <NUM> capable of reducing the time lag between the timing at which the worth of process data <NUM> is updated and the timing at which the process data is used by application <NUM> can be designed. That is, HMI <NUM> can accurately grasp the state of controller <NUM>.

Communication efficiency index <NUM> is an index evaluating the communication efficiency between controller <NUM> and HMI <NUM>. For example, communication efficiency index <NUM> uses the number of data (pps (packet per second), bps (bit per second)) that needs to be transmitted during a predetermined period as the load applied to information system network <NUM> that communicably connects controller <NUM> and HMI <NUM>.

When the evaluation is performed according to communication efficiency index <NUM>, evaluation means <NUM> enhances the evaluation of candidate data <NUM> of the evaluation target as the number of data to be transmitted during a predetermined period is smaller. As a result, transmission setting <NUM> having the good communication efficiency can be designed. More specifically, the traffic can be reduced.

Determination means <NUM> determines which candidate data <NUM> among the plurality of candidate data <NUM> is appropriate based on the evaluation result of each candidate data <NUM> by evaluation means <NUM> according to the plurality of indexes and priority information <NUM>, and sets appropriate candidate data <NUM> to a determination result.

Priority information <NUM> is information input by the user, and defines priorities (weighting) of the communication load, the communication performance, and the communication efficiency. Even when the plurality of candidate data <NUM> is evaluated according to each index by evaluation means <NUM>, there may be no candidate data in which all the indexes are optimal. In this case, by defining the priority of each index using priority information <NUM>, determination means <NUM> can determine the candidate data considered to be optimal even when there is no candidate data in which all indexes are optimal.

Arithmetic order in <FIG> is an example, and candidate calculation means <NUM> may determine the combination of process data <NUM> in consideration of at least one of communication load index <NUM>, communication performance index <NUM>, and communication efficiency index <NUM> that are referred to by evaluation means <NUM>. That is, the method for calculating the plurality of candidate data <NUM>, evaluating each candidate data <NUM>, and determining transmission setting <NUM> is an example, and transmission setting <NUM> may be determined without calculating candidate data <NUM>.

<FIG> is a view illustrating an example of user interface <NUM> that receives HMI information <NUM>. User interface <NUM> includes a network configuration region <NUM> indicating a network configuration and a reception region <NUM> that receives HMI information <NUM>. Network configuration region <NUM> indicates HMI <NUM> connected to controller <NUM> (the master in <FIG>).

Reception region <NUM> receives the designation of the priority of HMI <NUM> connected to controller <NUM>. In the example of <FIG>, either "High" or "Low" can be selected by an operating tab <NUM>. Thus, which HMI among the plurality of HMIs (HMI-<NUM>, HMI-<NUM>, HMI-<NUM>) capable of displaying the information of controller <NUM> process data <NUM> is preferentially transmitted to can be defined. For example, among the plurality of HMIs, the priority of the HMI that functions as the master unit may be set to be high, and the priority of other HMIs may be set to be low, and the master unit and the auxiliary unit may be registered so as to be distinguished from each other.

In this way, the importance of each HMI can be reflected in the worth of process data <NUM>, and for example, transmission setting <NUM> can be designed such that the process data used in the application executed by arbitrary HMI <NUM> designated by the user is preferentially distributed.

<FIG> is a view illustrating an example of a user interface <NUM> that receives priority information <NUM>. For example, user interface <NUM> in <FIG> is presented when the evaluation by evaluation means <NUM> is completed and when priority information <NUM> is necessary.

User interface <NUM> includes an index region <NUM> indicating the evaluation index, a result display region <NUM> indicating the result of the evaluation by the evaluation index, a priority reception region <NUM> that receives the input of the priority of the evaluation index, and a start button <NUM> that instructs the start of the evaluation.

When a tab <NUM> of priority reception area <NUM> is operated to input the priority of the evaluation index and when start button <NUM> is operated, the evaluation result in the case where candidate data <NUM> determined to be appropriate by determination means <NUM> is selected according to the input priority is displayed in result display region <NUM>.

That is, when the plurality of evaluation indexes are provided, user interface <NUM> functions as means for receiving the importance of each evaluation index. User interface <NUM> allows the user to design arbitrary transmission setting <NUM> by changing the importance of each evaluation index. For example, when controller <NUM> places importance on the processing speed at which control program <NUM> is executed, the importance of the index regarding the processing load on controller <NUM> may be enhanced. On the other hand, when the performance of controller <NUM> is sufficiently high and when controller <NUM> can sufficiently execute control program <NUM> without sufficiently considering the processing load on controller <NUM>, the importance of the index regarding the processing load on controller <NUM> may be lowered.

Although it has been described that the user interface that receives the importance of each evaluation index is provided in the case of necessity of priority information <NUM>, the user interface may be provided at any timing. That is, the user interface that receives the importance of each evaluation index is not limited to the case where priority information <NUM> is necessary, but may be provided as one of the parameters determining transmission setting <NUM> before the arithmetic calculation by arithmetic means <NUM> is started.

<FIG> is a view illustrating an output example of the arithmetic result by arithmetic means <NUM>. Arithmetic means <NUM> outputs the content of candidate data <NUM> that is the arithmetic result. For example, arithmetic means <NUM> installs the content of candidate data <NUM> selected as the determination result in controller <NUM> ((<NUM>) in <FIG>). Arithmetic means <NUM> may perform the output as the setting information ((<NUM>) in <FIG>). The setting information may be output in any format such as a comma-separated values (CSV) format, another file format, or a paper report format. By being output as the setting information, the transmission setting of controller <NUM> can be performed based on the setting information even when the direct install in controller <NUM> cannot be performed.

Arithmetic means <NUM> may display the content of candidate data <NUM> in a list ((<NUM>) in <FIG>). After the list is displayed, correction by the user may be accepted. In this way, the user can reflect the evaluation index, which cannot be incorporated into the algorithm of arithmetic means <NUM>, in transmission setting <NUM>.

A device on which arithmetic means <NUM> of the embodiment can be mounted and a use case when arithmetic means <NUM> mounted on the device will be described. <FIG> is a view illustrating a mounting example of arithmetic means <NUM>.

Referring to <FIG>, arithmetic means <NUM> is mounted on (<NUM>) a setting device <NUM> performing transmission setting, (<NUM>) a monitoring device <NUM> monitoring a network configured by controller <NUM> and HMI <NUM>, or (<NUM>) a relay device <NUM> relaying the communication between controller <NUM> and HMI <NUM>.

For example, setting device <NUM> is used at the timing of starting the connection between controller <NUM> and HMI <NUM>. <FIG> is a view illustrating an example of a hardware configuration of setting device <NUM>. Setting device <NUM> provides a development environment of application <NUM> executed by HMI <NUM> and a development environment of control program <NUM> executed by controller <NUM>, and provides an environment for setting the communication environment between controller <NUM> and HMI200. Such the development environment and the setting environment are provided by installing a support program in setting device <NUM>. For example, the support program is "Sysmac Studio" (product of OMRON Corporation).

The program developing control program <NUM>, the program developing application <NUM>, and the program generating transmission setting <NUM> do not need to be packaged and provided in one program, but may be separately provided.

As an example, setting device <NUM> is implemented using hardware (for example, a general-purpose personal computer) according to a general-purpose architecture. Setting device <NUM> may be a stationary type, or may be provided in the form of a notebook personal computer having excellent portability at a manufacturing site where controller <NUM> is disposed.

Referring to <FIG>, setting device <NUM> includes a processor <NUM>, an input unit <NUM>, a display <NUM>, a volatile memory <NUM>, a nonvolatile memory <NUM>, an optical drive <NUM>, and universal serial bus (USB) controllers 27A, 27B. These components are connected to each other through a processor bus <NUM>.

Processor <NUM> is configured by a central processing unit (CPU), a graphical processing unit (GPU), or the like, and reads a program stored in nonvolatile memory <NUM>, expands the program in volatile memory <NUM>, and executes the program, thereby providing functions of producing and debugging control program <NUM> and application <NUM> and setting the communication environment between controller <NUM> and HMI <NUM> to the user.

Volatile memory <NUM> is configured by a dynamic random access memory (DRAM), a static random access memory (SRAM), and the like. Nonvolatile memory <NUM> is configured by a hard disk drive (HDD), a solid state drive (SSD), and the like.

For example, input unit <NUM> is configured by a mouse and a keyboard. Input unit <NUM> receives the input of HMI information <NUM> or priority information <NUM> and the like. Specifically, input unit <NUM> is a device operating tab <NUM>, <NUM> in <FIG> or <FIG>.

Display <NUM> is a display, and for example, displays user interface <NUM>, <NUM> in <FIG> or <FIG> or the list of data sets in <FIG>.

Nonvolatile memory <NUM> stores a controller setting program <NUM>, an HMI setting program <NUM>, a display program <NUM>, evaluation information <NUM>, and performance information <NUM> in addition to an OS (not illustrated) implementing basic functions. Although not illustrated in <FIG>, nonvolatile memory <NUM> stores a control program development program that provides the development environment of control program <NUM> and an application development program that provides the development environment of application <NUM>.

Controller setting program <NUM> is a program determining the transmission setting, and is executed by processor <NUM> to provide the function of arithmetic means <NUM> in <FIG>.

HMI setting program <NUM> is a program determining the setting regarding the communication of HMI <NUM>. Specifically, link information <NUM> (see <FIG>) is generated according to transmission setting <NUM> determined by the execution of controller setting program <NUM>.

Display program <NUM> is a program displaying user interface <NUM>, <NUM> in <FIG> or <FIG> or the list of data sets in <FIG> on the display <NUM>.

Evaluation information <NUM> includes communication load index <NUM>, communication performance index <NUM>, and communication efficiency index <NUM> in <FIG>. Evaluation information <NUM> may include HMI information <NUM> and priority information <NUM>. That is, evaluation information <NUM> is information regarding evaluation criteria <NUM> referred to by determination means <NUM>.

Performance information <NUM> is information including capacity information <NUM>, and is information indicating the performance of controller <NUM>, information system network <NUM> connecting controller <NUM> and HMI <NUM>, and HMI <NUM>.

Although the configuration example in which necessary functions are provided by processor <NUM> executing the program has been described, some or all of these provided functions may be implemented using a dedicated hardware circuit (for example, an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or the like). Furthermore, the function provided by setting device <NUM> may be implemented using a part of the module provided by the OS.

Setting device <NUM> includes optical drive <NUM>, and a program stored in recording medium 26A (for example, an optical recording medium such as a digital versatile disc (DVD)) that non-transiently stores a computer-readable program is read and installed in nonvolatile memory <NUM> or the like.

The program and the like executed by setting device <NUM> may be installed through computer-readable recording medium 26A, or installed by being downloaded from a server device or the like on the network.

USB controllers 27A, 27B are in charge of data exchange with an arbitrary information processing device through USB connection. Specifically, USB controllers 27A, 27B are in charge of the data exchange with controller <NUM> or HMI <NUM>. For example, transmission setting <NUM> is installed in controller <NUM> through USB controller 27A, and link information <NUM> is installed in HMI <NUM> through USB controller 27B.

Examples of a scene in which setting device <NUM> is used include a scene in which construction of the network including HMI <NUM> and controller <NUM> is started, a scene in which HMI <NUM> is newly added to the network, and a scene in which application <NUM> is added or corrected.

For example, monitoring device <NUM> is used during the operation after the start of connection between controller <NUM> and HMI <NUM>. <FIG> is a view illustrating an outline of a control system 1a including monitoring device <NUM>. Monitoring device <NUM> is connected to information system network <NUM>, and monitors a transmission status of data set <NUM> from controller <NUM>, an execution status of application <NUM> in each HMI <NUM>, and a use status of a communication band of information system network <NUM>.

Referring to <FIG>, monitoring device <NUM> includes arithmetic means <NUM>, monitoring means <NUM>, and update means <NUM>. Monitoring means <NUM> is connected to information system network <NUM> and monitors the transmission status of data set <NUM> from controller <NUM>, the execution status of application <NUM> in each HMI <NUM>, and the usage status of the communication band of information system network <NUM>.

Update means <NUM> updates the information regarding evaluation criterion <NUM> according to the monitoring result of monitoring means <NUM>. Update means <NUM> may update the performance and the like of controller <NUM>, information system network <NUM>, and HMI <NUM> in addition to the information about evaluation criterion <NUM>.

Determination means <NUM> again determines the number of data sets <NUM> and process data <NUM> to be included in each data set <NUM> according to evaluation criterion <NUM> updated by update means <NUM>, and determines transmission setting <NUM>.

Monitoring device <NUM> may further include comparison means <NUM>. Comparison means <NUM> compares determined transmission setting <NUM> to currently-used transmission setting <NUM>, and notifies the user of the comparison result. For example, comparison means <NUM> gives notice of an effect obtained by changing currently-used transmission setting <NUM> to determined transmission setting <NUM> as the comparison result.

According to such the configuration, the transmission setting can be designed in consideration of the actual data exchange between controller <NUM> and HMI <NUM>. That is, the transmission setting determined when the connection between controller <NUM> and HMI <NUM> is started can be improved.

Monitoring device <NUM> may install determined transmission setting <NUM> in controller <NUM>, and in this case, link information <NUM> is also generated again and installed in HMI <NUM>. Monitoring device <NUM> may only notify the user of the comparison result, and the installation of transmission setting <NUM> in controller <NUM> may be started after permission of the user is obtained.

<FIG> illustrates a hardware configuration of monitoring device <NUM>. As an example, monitoring device <NUM> is implemented using hardware (for example, a general-purpose personal computer) according to a general-purpose architecture. Monitoring device <NUM> may be a stationary type, or provided in the form of a notebook personal computer having excellent portability at a manufacturing site where controller <NUM> is disposed.

Referring to <FIG>, monitoring device <NUM> includes a processor <NUM>, an input unit <NUM>, a display <NUM>, a volatile memory <NUM>, a nonvolatile memory <NUM>, an optical drive <NUM>, and a communication IF <NUM>. These components are connected to each other through a processor bus <NUM>.

Processor <NUM> is configured by a CPU, a GPU, and the like, and reads a program stored in nonvolatile memory <NUM>, develops the program in volatile memory <NUM>, and executes the program, thereby providing functions of producing and debugging control program <NUM> and application <NUM>, and setting the communication environment between controller <NUM> and HMI <NUM> to the user.

Volatile memory <NUM> is configured by a DRAM, an SRAM, or the like. For example, nonvolatile memory <NUM> is configured by an HDD and an SSD.

For example, input unit <NUM> is configured by a mouse and a keyboard. For example, input unit <NUM> receives permission to install transmission setting <NUM> in controller <NUM>. Display <NUM> is a display, and for example, displays the comparison result, details of determined transmission setting <NUM>, information about updated evaluation criterion <NUM>, and performance of updated controller <NUM>, information system network <NUM>, and HMI <NUM>.

Nonvolatile memory <NUM> stores a controller setting program <NUM>, an HMI setting program <NUM>, a display program <NUM>, an update program <NUM>, a comparison program <NUM>, and a monitoring program <NUM>, in addition to an OS (not illustrated) for implementing basic functions.

Controller setting program <NUM> is a program determining the transmission setting, and is executed by processor <NUM> to provide the function of arithmetic means <NUM>.

Display program <NUM> is a program displaying the comparison result, details of determined transmission setting <NUM>, information on updated evaluation criterion <NUM>, and performance of updated controller <NUM>, information system network <NUM>, and HMI <NUM> on display <NUM>.

Update program <NUM> is a program updating the information regarding evaluation criterion <NUM> according to the monitoring result, and is executed by processor <NUM> to provide the function of update means <NUM>. For example, by executing update program <NUM>, HMI information <NUM> is updated such that the worth of the process data of the application having a high execution frequency is enhanced according to the execution status of application <NUM>, each index is updated such that the load is not biased among HMI <NUM>, controller <NUM>, and information system network <NUM> according to the monitoring result, or priority information <NUM> is updated.

Comparison program <NUM> is a program comparing currently-used transmission setting <NUM> to determined transmission setting <NUM>, and is executed by processor <NUM> to provide the function of comparison means <NUM>. The effect obtained by changing currently-used transmission setting <NUM> to determined transmission setting <NUM> is calculated by executing comparison program <NUM>.

Monitoring program <NUM> is a program monitoring the transmission status of data set <NUM> from controller <NUM>, the execution status of application <NUM> in each HMI <NUM>, and the usage status of the communication band of information system network <NUM>, and is executed by processor <NUM> to provide the function of monitoring means <NUM>.

Although the configuration example in which necessary functions are provided by processor <NUM> executing the program has been described, some or all of these provided functions may be mounted using a dedicated hardware circuit (for example, ASIC or FPGA). In addition, the function provided by monitoring device <NUM> may be implemented using a part of the module provided by the OS.

Monitoring device <NUM> includes optical drive <NUM>, and a program stored in a recording medium 46A (for example, an optical recording medium such as the DVD) that non-transiently stores a computer-readable program is read from the recording medium and installed in nonvolatile memory <NUM> or the like.

The program and the like executed by monitoring device <NUM> may be installed through computer-readable recording medium 46A, or installed by being downloaded from the server device or the like on the network.

Communication IF <NUM> collects information grasping the transmission situation of data set <NUM> from controller <NUM>, the execution situation of application <NUM> in each HMI <NUM>, and the use situation of the communication band of information system network <NUM> from each device connected to information system network <NUM>, and exchanges the data with each device.

Examples of a scene where monitoring device <NUM> is used include a scene in which communication according to transmission setting <NUM> determined using setting device <NUM> is tested and a scene in which the communication is operated after construction of a network including HMI <NUM> and controller <NUM> is completed.

Relay device <NUM> relays the communication between controller <NUM> and HMI <NUM>. <FIG> is a view illustrating an example of a functional configuration of relay device <NUM>. When application <NUM> executed in one or the plurality of HMIs <NUM> are changed to change the subscription target, relay device <NUM> performs the arithmetic operation determining transmission setting <NUM> according to application <NUM> executed in the control system, and updates transmission setting <NUM> and link information <NUM> according to the operation result.

Referring to <FIG>, relay device <NUM> includes subscription list management means <NUM>, process data management means <NUM>, determination means <NUM>, notification means <NUM>, and transmission and reception management means <NUM>.

Subscription list management means <NUM> acquires information about application <NUM> executed by HMI <NUM> connected to relay device <NUM>. The information about application <NUM> is information capable of specifying process data <NUM> used for application <NUM>. For example, subscription list management means <NUM> analyzes the subscription request from HMI <NUM> and acquires information about application <NUM> executed by HMI <NUM>. At this point, subscription list management means <NUM> corresponds to an example of the acquisition means of the present invention.

Subscription list management means <NUM> manages subscription list <NUM> capable of specifying process data <NUM> that is the subscription target in the control system and HMI <NUM> to which the process data is set to the subscription target. Subscription list management means <NUM> specifies process data <NUM> used by application <NUM> executed in HMI <NUM> based on the subscription request from HMI <NUM>, and registers (updates) the process data in subscription list <NUM> as the subscription target. When the subscription target is changed, subscription list management means <NUM> specifies the process data in which the subscription is stopped, and reflects (updates) the stop of the subscription in subscription list <NUM>. When subscription list <NUM> is updated, subscription list management means <NUM> notifies determination means <NUM> of the update (update notification in <FIG>).

Process data management means <NUM> manages a process data list <NUM> that defines a correspondence between process data <NUM> and controller <NUM> that distributes process data <NUM>. When the communication between relay device <NUM> and controller <NUM> is established, process data management means <NUM> requests controller <NUM> to transmit the information indicating managed process data <NUM>. Upon receiving the information indicating process data <NUM> (the process data information in <FIG>), process data management means <NUM> checks whether the correspondence between controller <NUM> and process data <NUM> managed by controller <NUM> is registered in process data list <NUM>, and when the correspondence is not registered, the correspondence is registered (updated) in process data list <NUM>.

Upon receiving the update notification from subscription list management means <NUM>, determination means <NUM> determines transmission setting <NUM> in order to transmit process data <NUM> of the subscription target. Determination means <NUM> specifies process data <NUM> used by currently-executed application <NUM> based on subscription list <NUM>. Determination means <NUM> groups the process data specified based on process data list <NUM> for each controller <NUM> that manages the process data. Determination means <NUM> determines transmission setting <NUM> of controller <NUM> that manages a family of process data <NUM> for each of the grouped family of process data <NUM>. Because the method described above can be used as the method for determining transmission setting <NUM>, the description thereof will be omitted.

That is, determination means <NUM>, subscription list management means <NUM>, and process data management means <NUM> operate in cooperation with each other to determine transmission setting <NUM>. That is, determination means <NUM>, subscription list management means <NUM>, and process data management means <NUM> constitute arithmetic means 300a for determining transmission setting <NUM>.

Determination means <NUM> generates link information <NUM> about each HMI <NUM> based on determined transmission setting <NUM> of each determined controller <NUM>.

Notification means <NUM> notifies controller <NUM> of transmission setting <NUM> obtained by determination means <NUM>, and notifies HMI <NUM> of link information <NUM>. When link information <NUM> is generated for each HMI <NUM>, each link information <NUM> is transmitted to corresponding HMI <NUM>.

Notification means <NUM> updates the information about topic list <NUM> that defines a transmission destination of each data set <NUM> based on transmission setting <NUM> and subscription list <NUM>.

Transmission and reception management means <NUM> refers to topic list <NUM> to transmit each data set <NUM> delivered from controller <NUM> to HMI <NUM> in which the process data <NUM> included in data set <NUM> is the subscription target.

When transmission setting <NUM> is determined, determination means <NUM> may determine the transmission setting such that the number of changes from already-set transmission setting <NUM> is reduced.

<FIG> is a schematic view illustrating an example of a hardware configuration of relay device <NUM>. Referring to <FIG>, relay device <NUM> includes a processor <NUM>, a volatile memory <NUM>, a nonvolatile memory <NUM>, and a communication IF <NUM>. These components are connected to each other through a processor bus <NUM>.

Processor <NUM> includes a CPU, a GPU, and the like, and reads a program stored in nonvolatile memory <NUM>, develops the program in volatile memory <NUM>, and executes the program, thereby providing the functions of determining transmission setting <NUM> and relaying the communication between controller <NUM> and HMI <NUM>.

Volatile memory <NUM> includes a DRAM, an SRAM, or the like. For example, nonvolatile memory <NUM> includes an HDD and an SSD.

Nonvolatile memory <NUM> stores a relay program <NUM>, a subscription list <NUM>, a process data list <NUM>, and a topic list <NUM> in addition to the OS for implementing the basic functions.

Relay program <NUM> is a program relaying the communication between controller <NUM> and HMI <NUM> and determining transmission setting <NUM>, and provides functions of various means in <FIG> by executing processor <NUM>. Relay program <NUM> includes a controller setting program <NUM> determining transmission setting <NUM> and an HMI setting program <NUM> generating link information <NUM> of HMI <NUM> according to determined transmission setting <NUM>. In the example of <FIG>, that determination means <NUM> generates link information <NUM> and transmission setting <NUM> has been described in order to simplify the drawing, but the function of generating transmission setting <NUM> and the function of generating link information <NUM> may be separately provided.

Although the configuration example in which the necessary functions are provided by processor <NUM> executing the program has been described, some or all of these provided functions may be mounted using a dedicated hardware circuit (for example, ASIC or FPGA). Furthermore, the function provided by relay device <NUM> may be implemented using a part of the module provided by the OS.

The various programs stored in nonvolatile memory <NUM> may be installed through the computer-readable recording medium, or installed by being downloaded from the server device or the like on the network.

Communication IF <NUM> exchanges the data with each device (controller <NUM>, HMI <NUM>) connected to information system network <NUM>.

As described above, relay device <NUM> temporarily determines optimum transmission setting <NUM> at certain timing, and changes transmission setting <NUM> according to the change of application <NUM> executed on the network. Optimum transmission setting <NUM> is transmission setting <NUM> acquired by determination means <NUM>, and what is referred to as "optimum transmission setting <NUM>" differs depending on evaluation criterion <NUM> referred to by determination means <NUM>.

In other words, because relay device <NUM> arbitrates data set <NUM> exchanged between controller <NUM> and HMI <NUM> executing application <NUM>, it can also be said that relay device <NUM> is arbitration means.

The use scene of relay device <NUM> is wide, and relay device <NUM> can be consistently used from the start to the end of the communication between HMI <NUM> and controller <NUM>.

<FIG> is a schematic diagram illustrating an example of a hardware configuration of HMI <NUM>. As an example, HMI <NUM> is implemented using hardware (for example, a general-purpose personal computer) according to a general-purpose architecture. HMI <NUM> may be a stationary type or provided in the form of a notebook personal computer having excellent portability at a manufacturing site where controller <NUM> is disposed. Referring to <FIG>, HMI <NUM> includes a processor <NUM>, a touch panel <NUM>, a volatile memory <NUM>, a nonvolatile memory <NUM>, a communication IF <NUM>, and a USB controller <NUM>. These components are connected to each other through a processor bus <NUM>.

Processor <NUM> includes a CPU, a GPU, and the like, reads a program stored in nonvolatile memory <NUM>, develops the program in the volatile memory <NUM>, and executes the program, thereby outputting various types of information obtained by executing control program <NUM> to touch panel <NUM>.

Volatile memory <NUM> is configured by a DRAM, an SRAM, or the like. For example, nonvolatile memory <NUM> is configured by an HDD or an SSD.

Nonvolatile memory <NUM> stores an OPC UA program <NUM>, subscription management information <NUM>, link information <NUM>, one or a plurality of applications <NUM>, and mapping information <NUM> in addition to an OS (not illustrated) implementing basic functions.

OPC UA program <NUM> is a program causing HMI <NUM> to function as the subscriber, and is a program performing the communication according to the OPC UA between controller <NUM> and HMI <NUM>. Processor <NUM> executes OPC UA program <NUM> to provide the functions regarding communication processing unit <NUM> in <FIG>. OPC UA program <NUM> is installed in non-volatile memory <NUM> from another external storage medium (for example, a memory card or a server device on a network).

Although the configuration example in which the necessary functions are provided by processor <NUM> executing the program has been described, some or all of these provided functions may be mounted using a dedicated hardware circuit (for example, ASIC or FPGA). In addition, the function provided by HMI <NUM> may be implemented using a part of the module provided by the OS.

Touch panel <NUM> includes a display <NUM> that is the display and an input unit <NUM> that receives the operation of the user. Display <NUM> and input unit <NUM> may be configured separately.

Communication IF <NUM> is in charge of the data exchange with controller <NUM>. USB controller <NUM> is in charge of the data exchange with arbitrary information processing device through USB connection.

<FIG> is a schematic diagram illustrating an example of the hardware configuration of controller <NUM>. Referring to <FIG>, controller <NUM> includes a processor <NUM>, a chipset <NUM>, a nonvolatile memory <NUM>, a volatile memory <NUM>, a control system network IF <NUM>, an information system network IF <NUM>, a USB controller <NUM>, a memory card IF <NUM>, and an internal bus controller <NUM> as main components.

Processor <NUM> is configured by a CPU, a GPU, and the like, and reads various programs stored in nonvolatile memory <NUM>, develops the programs in volatile memory <NUM>, and executes the programs, thereby implementing the control of field device <NUM> and the function as the publisher. A chipset <NUM> mediates the exchange of data between processor <NUM> and each component, thereby implementing the processing of controller <NUM> as a whole.

Nonvolatile memory <NUM> stores control program <NUM>, OPC UA program <NUM>, and transmission setting <NUM>.

Control program <NUM> is typically configured by the user program generated by the user who operates and designs setting device <NUM>, and the system program that provides the basic functions of controller <NUM>. The user program and the system program cooperate in implementing the control purpose in the user, thereby controlling field device <NUM>.

OPC UA program <NUM> is a program causing controller <NUM> to function as the publisher, and is a program performing the communication according to the OPC UA between controller <NUM> and HMI <NUM>. Processor <NUM> executes OPC UA program <NUM> to provide the functions regarding communication processing unit <NUM> in <FIG>. For example, OPC UA program <NUM> may be previously installed in controller <NUM> as a type of the system program, or installed in nonvolatile memory <NUM> from another external storage medium (for example, memory card 194A and the server device on the network).

Although the configuration example in which the necessary functions are provided by processor <NUM> executing the program has been described, some or all of these provided functions may be mounted using a dedicated hardware circuit (for example, ASIC or FPGA). In addition, the main part of controller <NUM> may be implemented using hardware (for example, an industrial personal computer based on a general-purpose personal computer) according to a general-purpose architecture. In this case, a plurality of OSs having different uses may be executed in parallel using a virtualization technology, and the necessary application may be executed on each OS.

Control system network IF <NUM> is in charge of the data exchange with field device <NUM>.

Information system network IF <NUM> is in charge of the data exchange with HMI <NUM>.

USB controller <NUM> is in charge of the data exchange with any information processing device through the USB connection.

Memory card IF <NUM> is configured such that memory card 194A is detachable, the data such as the control program and various settings can be written in memory card 194A, and the data such as the control program and various settings can be read from memory card 194A.

Internal bus controller <NUM> is an interface that exchanges the data with an I/O unit (not illustrated) mounted on controller <NUM>. For the internal bus, a communication protocol unique to a manufacturer may be used, or a communication protocol that is the same as or compliant with any of industrial network protocols may be used.

In the embodiment, controller <NUM> generates and transmits data set <NUM> of a predetermined combination according to predetermined transmission setting <NUM>. Controller <NUM> may transmit or may not transmit each data set <NUM> according to application <NUM> executed by one or the plurality of HMIs <NUM> executing application <NUM> using process data <NUM> of controller <NUM>.

<FIG> is a view schematically illustrating a control system 1c according to a modification. Referring to <FIG>, control system 1c is different from control system <NUM> in <FIG> in that management means <NUM> is provided and a controller 100c is provided instead of controller <NUM>.

Controller 100c is different from controller <NUM> in that a communication processing unit 80c is provided instead of communication processing unit <NUM>. Communication processing unit 80c can generate and transmit the plurality of data sets <NUM> including a plurality of pieces of process data values according to transmission setting <NUM>.

Management means <NUM> determines data set <NUM> that validates the transmission among data sets <NUM> that can be transmitted by communication processing unit 80c according to the application executed by each of the plurality of HMIs <NUM>-<NUM>, <NUM>-<NUM> that execute application <NUM> upon receiving the distribution of data set <NUM> from controller 100c.

That is, management means <NUM> determines the data set that validates the transmission among data sets generated by a predetermined combination of process data <NUM>, according to the currently-executed application.

For example, management means <NUM> validates the transmission of data set <NUM> and data set <NUM> and invalidates the transmission of data sets <NUM> to <NUM> when controller <NUM> can transmit data set <NUM> to data set <NUM> and when process data <NUM> necessary for the currently-executed application <NUM> is provided from controller 100c toward HMI <NUM> by the delivery of data set <NUM> and data set <NUM>.

As a result, the distribution of the data set that is not used for the execution of the application can be prevented, and the processing load on controller <NUM> can be reduced.

Furthermore, in this case, arithmetic means <NUM> may determine transmission setting <NUM> in consideration of the fact that management means <NUM> is provided in control system 1c. That is, arithmetic means <NUM> may determine the number of data sets and process data <NUM> to be included in each data set according to the evaluation criterion including a management load index <NUM> evaluating the load applied to management means <NUM>.

When the combination of process data <NUM> stored in data set <NUM> is determined according to the evaluation criterion including management load index <NUM>, for example, process data <NUM> included in each application <NUM> that is not simultaneously executed is determined to be stored in another data set.

In such the control system 1c, as compared with control system <NUM>, the processing load causing the management means to newly function is applied to control system 1c by including management means <NUM>. However, by including the processing load for causing the management means to function in the evaluation criterion, while the transmission of the data set that is not used is prevented, the processing load applied for preventing such the transmission can also be reduced, thereby reducing the processing load applied to the entire control system 1c.

In the above embodiment, the HMI is the subscriber while the controller is the publisher has been described. Each of the HMI and the controller may have both functions of the subscriber and the publisher.

In this case, the control program is configured to be able to use the data distributed from the HMI. The transmission setting of the HMI may be determined by the arithmetic means according to the control program. As a method for determining the transmission setting of the HMI, the method for determining transmission setting <NUM> of controller <NUM> described above can be used.

It is not necessary to generate transmission setting <NUM> such that one application uses all process data <NUM> included in one data set <NUM>. In this case, evaluation criterion <NUM> may include an index regarding the load applied to the processing of sorting process data <NUM> used for application <NUM> from data set <NUM>.

Further, in the above embodiment, in order to simplify the description, all the pieces of process data <NUM> used in the application are transmitted by one controller <NUM>, but each of the plurality of pieces of process data <NUM> used in application <NUM> may be transmitted from different controllers <NUM>.

In this case, arithmetic means <NUM> may group the plurality of pieces of process data <NUM> for each controller transmitting the plurality of pieces of process data <NUM> acquired by acquisition means <NUM>, and cause determination means <NUM> to generate the transmission setting for each group.

In addition, transmission setting <NUM> may be generated in consideration of the period at which process data <NUM> is updated by controller <NUM> and the period used in application <NUM>.

It should be considered that the disclosed embodiment is an example in all respects and not restrictive.

Claim 1:
A control system (<NUM>, 1a, 1c) comprising:
a control device (<NUM>, 100c) configured to execute a control program (<NUM>) which, when executed by the control device, causes the control device to control a control target (<NUM>) while managing a plurality of pieces of process data (<NUM>) referred to or updated in the control program, the control device including a communication processing unit (<NUM>, 80c) configured to periodically transmit one or a plurality of predetermined data sets (<NUM>), each data set including values of one or a plurality of predetermined process data in the plurality of pieces of process data;
one or a plurality of information processing devices (<NUM>) configured to execute one or a plurality of applications (<NUM>) using the values of the one or the plurality of process data included in the one or the plurality of data sets transmitted from the control device;
an arithmetic unit (<NUM>, 300a) configured to determine a transmission setting according to which a data set is generated and transmitted by the communication processing unit of the control device; and
a management unit (<NUM>) configured to determine a data set for which to enable transmission of one or a plurality of data sets transmittable by the communication processing unit according to one or a plurality of applications that are executed in the one or the plurality of information processing devices,
wherein the arithmetic unit includes:
an acquisition unit (<NUM>, <NUM>) configured to acquire the process data necessary for each of the one or the plurality of applications executed in each of the one or the plurality of information processing devices; and
a determination unit (<NUM>, <NUM>) configured to determine, based on the process data necessary for each application acquired by the acquisition unit, a number of data sets to be transmitted by the communication processing unit and the process data to be included in each data set according to a predetermined evaluation criterion (<NUM>) including a communication load index,
wherein the evaluation criterion further includes a management load index (<NUM>) that evaluates a load on the management unit by managing determination of the enablement of each of the one or the plurality of data sets, so that process data including values used by applications that are not simultaneously executed is determined to be stored in different data sets.