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 a display screen is defined as one page, a layout of functional components displayed on the page, allocation of functions, and the like are performed in units of pages.

<CIT> relates to a method for determining a data reading period of data in an industrial control system. <CIT> relates to a node in a computer network which may receive data of a particular type at a first frequency and may correspondingly determine whether there is at least one interested subscriber for the data of the particular type, where the interested subscriber desires the data at a second frequency.

<CIT> discloses dynamically activating buffered data publishers in sensor networks. In one example, a node in a computer network may receive data of a particular type at a first frequency (e.g., a sensor in a sensor network), and may correspondingly determine whether there is at least one interested subscriber for the data of the particular type, where the interested subscriber desires the data at a second frequency. If there is an interested subscriber, buffered data publishing may be dynamically activated at the node in response to a ratio between the second and first frequencies being less than a configured threshold. In particular, buffered data publishing comprises buffering the received data and transmitting a latest received data to the interested subscriber at the second frequency.

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 as an application implementing this function. The user needs to perform communication setting on the control device such that process data used for the application is transmitted.

An object of the present invention is to easily perform the communication 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 one aspect of the present disclosure, a control system according to claim <NUM> is provided.

According to this disclosure, because the communication setting is automatically generated according to the application executed by the information processing device, the communication setting in which the process data necessary for the execution of the application is transmitted from the control device to the information processing device can be easily performed.

In the above disclosure, the communication setting may include information specifying the one or the plurality of pieces of process data to be stored in each data set.

According to this disclosure, because a combination of process data to be stored in one data set is defined, a processing load in which the control device generates the data set can be reduced as compared with the case where a storage rule is simply defined.

In the above disclosure, the communication setting includes information specifying storage order of the one or the plurality of pieces of process data in each data set.

According to this disclosure, the control device does not need to determine the storage order each time the data set is generated, and the processing load of generating the data set of the control device can be reduced. Furthermore, for example, the communication setting including the information specifying the storage order is transmitted to both the information processing device and the control device, so that a data link between the information processing device and the control device can be easily configured.

In the above disclosure, the control system may further include a support device configured to provide a development environment of the one or the plurality of applications. In the control system, the support device may include the grouping means and the generation means.

According to this disclosure, because the support device including the grouping means and the generation means provides the development environment of the application, the development of the application and the communication setting can be collectively performed.

In the above disclosure, the control system may further include a relay device configured to relay communication between the control device and the information processing device. In the control system, the relay device may include the grouping means and the generation means.

According to this disclosure, data exchange between the information processing device and the control device can be implemented without previously performing the communication setting on the control device.

In the above disclosure, the information processing device may manage a plurality of application data referred to or updated in the one or the plurality of applications, and transmit one or a plurality of types of application data sets storing at least a part of the plurality of application data according to a predetermined communication setting of the information processing device. The control device may execute the control program using one or a plurality of application data designated in the plurality of application data using the application data set. The grouping unit may allocate each of the one or the plurality of application data specified to be used in the control program to one or a plurality of control program groups. The generation unit may generate the communication setting of the information processing device such that one or a plurality of application data allocated to the control program group is stored in one application data set and transmitted for each of the one or the plurality of control program groups grouped by the grouping unit according to the allocation result of the grouping unit.

According to this disclosure, the communication setting of the information processing device is automatically generated according to the control program when the application data is used for the execution of the control program, so that the communication setting of the information processing device can be easily performed such that the application data necessary for the execution of the control program is transmitted from the information processing device to the control device.

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

In the following description, the same parts and components 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 modifications described below may selectively be combined as appropriate.

<FIG> is a schematic diagram illustrating an application scene of a control system 1a centering on an FA system 10a. Control system 1a provides a function of supporting a setting of a communication environment between devices included in FA system 10a.

FA system 10a includes a controller 100a and an HMI 200a. Controller 100a is communicably connected to HMI 200a through an information system network 2a. Information system network 2a is a network conforming to a communication standard capable of implementing data exchange without depending on, for example, a vendor or a type of an operating system (OS). 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 2a is not limited to OPC-UA. For example, information system network 2a may be a network conforming to a communication standard peculiar to a specific vendor or the OS, or may be a network conforming to EtherNet/IP (registered trademark) which is an industrial open network in which a control protocol is mounted on Ethernet (registered trademark).

FA system 10a may be configured by a plurality of controllers 100a. FA system 10a may be configured by a plurality of HMIs 200a. FA system 10a may have a configuration in which one HMI 200a is communicably connected to one controller 100a, a configuration in which one HMI 200a is communicably connected to a plurality of controllers 100a, a configuration in which a plurality of HMIs 200a is communicably connected to one controller 100a, or a configuration in which a plurality of HMIs 200a is communicably connected to a plurality of controllers 100a. In the example of <FIG>, FA system 10a has a configuration in which two HMIs 200a are communicably connected to one controller 100a.

Controller 100a is an example of the control device of the present invention, executes a control program <NUM> controlling a control target, and executes a central processing in FA system 10a. In the example of <FIG>, controller 100a is communicably connected to field device <NUM> that is the control target through a 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 100a controls field device <NUM> by executing control program <NUM>. In addition, controller 100a manages a plurality of pieces of process data <NUM> that are referred to or updated in association with the execution of control program <NUM>.

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

Controller 100a transmits a plurality of types of data sets <NUM> storing at least a part of the plurality of pieces of process data <NUM> according to a predetermined communication setting <NUM>. The plurality of types of data sets <NUM> are different from each other in at least one element of a combination of stored process data <NUM>, a transmission trigger, and a transmission destination.

HMI 200a is an example of the information processing device of the present invention, and executes application <NUM> using process data <NUM> included in data set <NUM> transmitted by controller 100a. In the example of <FIG>, HMI 200a executes application <NUM> to present various types of information obtained by the execution of control program <NUM> to an operator.

HMI 200a may directly receive data set <NUM> transmitted by controller 100a from controller 100a, 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 100a is not limited to HMI 200a. 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 a device connected to controller 100a through information system network 2a, and 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 information, but may be one intended to implement a function using process data <NUM> managed by controller 100a. 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.

Furthermore, in the example of <FIG>, the control device and the information processing device are different from each other and are physically connected to each other, but the control device and the information processing device may be logically connected to each other.

At the execution stage of application <NUM>, HMI 200a executes application <NUM> using process data <NUM> stored in data set <NUM> distributed from controller 100a. That is, application <NUM> is executed on the assumption that process data <NUM> used in application <NUM> is transmitted from controller 100a. In addition to FA system 10a, control system 1a has a function of generating communication setting <NUM> such that process data <NUM> necessary for the execution of application <NUM> is transmitted from controller 100a to HMI 200a.

A stage at which application <NUM> is developed and introduced into FA system 10a and a stage at which communication setting <NUM> is generated will be described below. Control system 1a includes grouping means 20a and generation means 40a in addition to controller 100a and HMI 200a. Typically, a processor of a support device that provides the development environment of application <NUM> executes a support program supporting the setting of the communication environment, thereby implementing the function of each of grouping means 20a and generation means 40a.

The function of each of grouping means 20a and generation means 40a may be implemented by a dedicated setting device. In addition, a relay device may be provided between HMI 200a and controller 100a, and each function of grouping means 20a and generation means 40a may be implemented by the relay device.

In <FIG>, a description will be given assuming that the timing of the generation of communication setting <NUM> is performed at an introduction stage before application <NUM> is executed. The timing of the generation of communication setting <NUM> may be performed at the execution stage of the application. For example, communication setting <NUM> may be generated or updated every time application <NUM> to be executed is switched.

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.

Grouping means 20a allocates process data <NUM> designated to be used in application <NUM> to one or a plurality of groups. For example, grouping means 20a extracts a predetermined element, and groups process data <NUM> based on the extracted element. The predetermined elements include a type of controller 100a that manages process data <NUM>, a period at which controller 100a updates process data <NUM>, a period at which application <NUM> uses process data <NUM>, a data size of process data <NUM>, and the like. In addition, grouping means 20a may allocate process data <NUM> designated to be used in application <NUM> to one or the plurality of groups so as to satisfy a condition arbitrarily set by the user.

Generation means 40a generates communication setting <NUM> according to the allocation result of grouping means 20a such that one or a plurality of pieces of process data <NUM> included in one group is stored in one data set <NUM> and transmitted for each of the plurality of groups.

In the example of <FIG>, application <NUM> uses process data 52B, process data 52D, and process data 52X. For example, grouping means 20a groups the plurality of pieces of process data <NUM> for each period used in application <NUM>. In the example of <FIG>, application <NUM> updates the information using process data 52B and process data 52D every first period, and updates the information using process data 52X every second period. In <FIG>, reference numerals are partially omitted.

Grouping means 20a allocates process data 52B and process data 52D to a group GR1, and allocates process data 52X to a group GR2.

Generation means 40a generates communication setting <NUM> such that process data 52B and process data 52D are stored in one data set <NUM>-<NUM> and such that process data 52X is stored in another data set <NUM>-<NUM>. Communication setting <NUM> includes a condition that transmits data set <NUM>, order in which the data is stored in data set <NUM>, a type of data stored in data set <NUM>, and the like.

For example, generation means 40a determines communication setting <NUM> according to information such as an attribute of process data <NUM>, a communication protocol used for information system network 2a, and a network configuration of FA system 10a centered on controller 100a. For example, the attributes of process data <NUM> include the timing referred to or updated in control program <NUM> and a data size.

For example, the condition that data set <NUM> is transmitted is defined according to the timing at which controller 100a updates process data <NUM>, the timing at which application <NUM> uses process data <NUM>, and the like. For example, in the example of <FIG>, the communication setting is generated such that process data 52B and process data 52X used for generating the information in which the update period is the first period are distributed every first period.

As described above, control system 1a includes grouping means 20a and generation means 40a to generate communication setting <NUM> of controller 100a based on application <NUM>. As a result, communication setting <NUM> in which process data <NUM> necessary for executing application <NUM> is transmitted from controller 100a to HMI 200a can be easily performed.

A configuration example in which the control system described in the above application example is implemented will be described below.

<FIG> is a view illustrating an outline of a control system <NUM> according to a first embodiment. Control system <NUM> includes support device <NUM>, controller <NUM>, and HMI <NUM>.

In the first embodiment, a communication scheme between controller <NUM> and HMI <NUM> will be described as a public-subscribe communication scheme of the OPC UA. Hereinafter, communication to which the public-subscribe communication scheme of the OPC-UA is applied is also referred to as PubSub communication. An outline of the PubSub communication will be described later.

Controller <NUM> directly or indirectly controls the one or the plurality of field devices <NUM>. The network configuration of field device <NUM> controlled by controller <NUM> is arbitrarily designed by the user.

In the example of <FIG>, controller <NUM> and HMI <NUM> are connected to each other on a one-to-one basis. The method for connecting controller <NUM> and HMI <NUM> is not limited thereto, but another device may be provided between controller <NUM> and HMI <NUM>.

The configuration of the network including controller <NUM> and HMI <NUM> and the configuration of the network including controller <NUM> and field device <NUM> are not limited to the example in <FIG>, but can be arbitrarily designed by the user. For example, HMI <NUM> may be communicably connected to the plurality of controllers <NUM>. Controller <NUM> may be communicably connected to the plurality of HMIs <NUM>.

Support 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 HMI <NUM>. Such the development environment and the setting environment are provided by installing a support program in support device <NUM>. For example, the support program is "Sysmac Studio" (product of OMRON Corporation).

The user can design control program <NUM> for controller <NUM> using the support program, and install designed control program <NUM> in controller <NUM>. In addition, the user can design application <NUM> for HMI <NUM> using the support program, and install designed application <NUM> in HMI <NUM>. Support device <NUM> executes the support program to generate communication setting <NUM> implementing application <NUM> from designed control program <NUM> and application <NUM>, and installs generated communication setting <NUM> in controller <NUM>.

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

Furthermore, communication setting <NUM> does not need to be generated in an installable format from support device <NUM> toward controller <NUM>, but for example, may be generated in a report format. In this way, the user can easily set the controller in which communication setting <NUM> cannot be directly installed from support device <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> of the first embodiment, controller <NUM> corresponds to a 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 multicasts the data set to the network including the publisher and subscriber without specifying a destination.

The subscriber has one or a plurality of subscriptions that define the data of the subscription target. The subscriber starts or stops the subscription for each subscription. For example, in the example of <FIG>, the subscriber starts the subscription of data a and data b when starting the subscription of subscription A. On the other hand, when the subscription of subscription B is started, the subscription of data a and data e is started. Different subscriptions may include a common subscription target.

The subscriber receives at least a data set including data included in the currently-subscribed subscription in the plurality of types of data sets distributed by the publisher. For example, in the example of <FIG>, the currently-subscribed subscription is indicated by hatching. When subscribing to subscription B, the subscriber receives at least a data set <NUM> in which data a and data b are stored and a data set <NUM> in which data e is stored. The subscriber does not receive a data set <NUM> in the example of <FIG>, but may receive data set <NUM>. The subscriber only needs to be able to read at least the data of the subscription target, and may receive the data set (data set <NUM>) including the data that is not the subscription target as illustrated in the example of <FIG>.

The method by which the subscriber manages the start and stop of the data subscription is not limited to the method in <FIG>. For example, the subscriber may perform the management for each data.

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> that functions as the subscriber. <FIG> is a view illustrating an outline of controller <NUM> that functions as the publisher.

Referring to <FIG>, HMI <NUM> includes a display <NUM>, a plurality of applications <NUM> (<NUM>-<NUM>, <NUM>-<NUM>. ), and an OPC UA client <NUM>. 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 a variable <NUM>, and the display of object 54d is updated according to the value of a 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 A. 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. In the example of <FIG>, it is assumed that the values of process data A to process data D are updated every first period by controller <NUM>, and the values of process data X to process data Z are updated every second period by controller <NUM>.

OPC UA client <NUM> causes HMI <NUM> to function as the subscriber. OPC UA client <NUM> includes subscription management means <NUM>, a plurality of subscriptions <NUM> (subscriptions <NUM> to n), and a communication driver <NUM>.

Subscription management means <NUM> manages the subscription start and the subscription stop of subscription <NUM> according to currently-executed application <NUM>. Specifically, subscription management means <NUM> determines subscription <NUM> to be subscribed such that the process data referred to by currently-executed application <NUM> becomes the subscription target in the plurality of subscriptions <NUM>. In the example of <FIG>, the currently-subscribed subscription is indicated by hatching.

The subscription <NUM> is generated in advance according to the application <NUM> and the mapping information <NUM>. As an example, subscription <NUM> is generated for each application <NUM>. In addition, subscription <NUM> is generated every period in which process data <NUM> is updated in controller <NUM>. In the example of <FIG>, subscription <NUM> is generated based on the type of application <NUM> and the period updated by controller <NUM>. More specifically, process data A, B, D, X referred to in application <NUM> are allocated to subscription <NUM> and subscription <NUM> at every period updated by controller <NUM>.

Because subscription management means <NUM> manages the start and stop of the subscription according to currently-executed application <NUM>, the subscription is generated according to each application <NUM>. All the process data included in one subscription <NUM> does not need to generate the subscription such that the subscription is used by one application, but the plurality of pieces of process data used by different applications may be included in one subscription.

The management is not limited to the management by subscription <NUM> as long as subscription management means <NUM> can manage the subscription start and the subscription stop of process data <NUM>.

Communication driver <NUM> filters data set <NUM> transmitted from controller <NUM> to receive data set <NUM> in which the currently-subscribed process data is stored. HMI <NUM> updates the process data included in the mapping information <NUM> using the process data included in data set <NUM> received by communication driver <NUM>.

Referring to <FIG>, controller <NUM> includes control program <NUM>, a control system network interface (IF) <NUM>, and OPC UA server <NUM>.

Controller <NUM> executes control program <NUM> to control field device <NUM>. For example, control program <NUM> updates process data <NUM> using a state value of field device <NUM> input through control system network IF <NUM>, and refers to updated process data <NUM> to execute the control arithmetic operation. 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>.

OPC UA server <NUM> causes controller <NUM> to function as the publisher. OPC UA server <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 communication setting <NUM> to generate data set <NUM> storing one or the 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>.

Communication setting <NUM> includes a data set setting <NUM> and a generation condition <NUM>. Data set setting <NUM> is information for specifying 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 data set setting <NUM>. Thus, the processing load on controller <NUM> is reduced as compared with the case where communication setting <NUM> defines the process data of a specific attribute as one data set.

Generation condition <NUM> defines a condition that generates data set <NUM>. In the example of <FIG>, as an example, it is specified that the data set <NUM>, data set <NUM>, and data set <NUM> are generated for each first period, and that data set <NUM>, data set <NUM>, and data set <NUM> are generated for each second period.

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

Referring to <FIG> and <FIG>, OPC UA server <NUM> generates and transmits data set <NUM> storing process data A and process data B and data set <NUM> storing process data D for each first period. When application <NUM> is currently executed, OPC UA client <NUM> sets subscription <NUM> to be under subscription and reads data set <NUM> and data set <NUM>. Thus, application <NUM> updates the display of objects 54a, 54b, 54d by updating variables <NUM> to <NUM> at the period in which process data A, process data B, and process data D corresponding to variables <NUM> to <NUM> are updated by controller <NUM>.

In addition, OPC UA server <NUM> generates and transmits data set <NUM> storing process data X for every second cycle. When application <NUM> is currently executed, OPC UA client <NUM> sets subscription <NUM> to be under subscription and reads data set <NUM>. Thus, application <NUM> updates variable <NUM> at the period in which process data X corresponding to variable <NUM> is updated by controller <NUM>, and updates the display of object 54c.

When the application of the execution target changes, OPC UA client <NUM> changes subscription <NUM> of the subscription target and changes data set <NUM> of the read target. Hereinafter, changing subscription <NUM> of the subscription target is also referred to as "changing subscription <NUM>", and changing the subscription target by changing subscription <NUM> is also referred to as "changing a 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, OPC UA client <NUM> also changes the subscription request by changing subscription <NUM> 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 communication 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 of the subscriber.

In the first embodiment, support device <NUM> generates communication setting <NUM> satisfying the subscription request specialized for each application <NUM> based on generated application <NUM>. As a result, the burden on the user is reduced.

<FIG> is a view illustrating an example of a series of flowchart from development of the application to introduction of the developed application. In <FIG>, it is assumed that the control program is previously designed. Each step in <FIG> is executed by support device <NUM>. With reference to <FIG>, the timing at which communication setting <NUM> is generated will be described.

The "generation of the application" includes the design of a content displayed on HMI <NUM>, the production of the application implementing the design content, and designation of the process data used in the application. There are various flows from the production of the application to the specification of the process data used in the application. For example, the process data used in the application may be designated in a process of producing the application, or the process data may be designated for each variable after the entire application is produced.

Support device <NUM> stores the information that can specify the type of process data referred to or updated in the control program in the memory. Support device <NUM> presents the information that can specify the type of the process data stored in the memory to the user, and the user designates the process data used for the application from among the types of the presented process data.

A method for designating the process data includes a method for directly specifying the process data to be used and a method for associating the process data with the variable used for the application. In the first embodiment, it is assumed that the process data used for the application is designated by associating the process data with the variable used for the application. Thus, the process data to be used is specified for each application.

When the generation of the application is completed, mapping information <NUM> in which the variable used for the application and the process data are associated with each other is also generated. Support device <NUM> may generate the mapping information for each application, or generate one piece of mapping information for the plurality of applications. In the first exemplary embodiment, it is assumed that one piece of mapping information is generated for the plurality of applications.

As the application is generated, support device <NUM> generates subscription <NUM>. For example, subscription <NUM> is generated for each application <NUM> in order that subscription management means <NUM> easily manage the start and stop of the subscription. Furthermore, for example, subscription <NUM> is generated for each update period of controller <NUM> such that communication driver <NUM> can easily refer to the subscription.

Support device <NUM> allocates each of process data <NUM> used in the application to one or a plurality of groups. For example, support device <NUM> extracts a predetermined element from each of the plurality of pieces of process data <NUM>, and groups process data <NUM> based on the extracted element.

For example, the extracted element includes the period at which process data <NUM> is updated, the period at which process data <NUM> is updated in the application, and the application in which process data <NUM> is used. When HMI <NUM> is communicably connected to the plurality of controllers <NUM>, controller <NUM> that manages process data <NUM> may be included in the extracted element. In addition, the grouping means may allocate process data <NUM> designated to be used in application <NUM> to one or the plurality of groups so as to satisfy a condition arbitrarily set by the user. Support device <NUM> may repeat the allocation of the groups until the total amount of process data included in one group falls below the size of data set <NUM> transmittable at one-time determination according to the communication performance of information system network <NUM>.

For example, the grouping based on the extracted element is performed according to the attribute of stored process data <NUM>, the configuration of the network including controller <NUM>, the transmission performance controller <NUM>, the reception performance of HMI <NUM>, and the communication performance of information system network <NUM>. For example, the attributes of process data <NUM> include the timing referred to or updated in control program <NUM> and a data size.

Support device <NUM> generates communication setting <NUM> such that one or the plurality of pieces of process data <NUM> included in each group are stored in one data set <NUM> according to the allocation result of process data <NUM>. For example, communication setting <NUM> is generated based on a communication protocol between HMI <NUM> and controller <NUM> or the configuration of the network including controller <NUM>.

Support device <NUM> installs application <NUM> and subscription <NUM> generated in step <NUM> in HMI <NUM>, and installs communication setting <NUM> generated in step <NUM> in controller <NUM>. Communication setting <NUM> and subscription <NUM> do not need to be generated in an installable format, but for example, may be output in a report format.

<FIG> is a block diagram illustrating a functional configuration of support device <NUM>. Support device <NUM> includes an input unit <NUM>, a display <NUM>, development means <NUM>, grouping means <NUM>, and generation means <NUM>.

Input unit <NUM> receives the user operation. Typically, input unit <NUM> is a touch panel, a mouse, a keyboard, or the like. Development means <NUM> generates application <NUM> and mapping information <NUM> according to the user operation received by input unit <NUM>.

Specifically, the user registers one or a plurality of objects <NUM> for each page to be produced ((<NUM>) object registration in <FIG>). Subsequently, the user registers the arithmetic operation updating the display of object <NUM> and the variable used for the arithmetic operation for each of one or the plurality of objects <NUM> ((<NUM>) variable registration in <FIG>). Finally, the user associates process data <NUM> that can be extracted from control program <NUM> with the registered variable ((<NUM>) association in <FIG>). Thus, one or the plurality of applications <NUM>, mapping information <NUM>, and subscription <NUM> are generated. The application production procedure is an example, but is not limited to this order. For example, after the variable is associated with the process data, the application may be generated using the variable. In <FIG>, a procedure for producing subscription <NUM> is not illustrated.

Development means <NUM> produces application <NUM> and mapping information <NUM> according to the information received by input unit <NUM>, and provides a user interface necessary for producing the application through display <NUM>.

Grouping means <NUM> includes first grouping means <NUM> and second grouping means <NUM>. First grouping means <NUM> groups each of process data <NUM> included in mapping information <NUM> for each application based on mapping information <NUM> and application <NUM>.

In the example of <FIG>, it is assumed that the variables corresponding to process data A, B, D, X are used in application <NUM>. The variables corresponding to process data B, D are used in application <NUM>. That is, first grouping means <NUM> allocates process data A, B, D, X to group GR1, and allocates process data B, D to group GR2.

Second grouping means <NUM> further groups the groups allocated by first grouping means <NUM> for each period updated in controller <NUM>. The period at which process data <NUM> is updated in controller <NUM> is defined by control program <NUM>.

In the example of <FIG>, it is assumed that process data A, B, D are updated every <NUM> in controller <NUM>. It is assumed that process data X is updated in association with the generation of event X. That is, second grouping means <NUM> allocates process data A, B, D to a group GR1-<NUM> and allocates process data X to a group GR1 -<NUM> for process data A, B, D, X allocated to group <NUM>. In the example of <FIG>, it is assumed that the update period of each process data <NUM> included in group GR2 in controller <NUM> are common.

Generation means <NUM> includes data set setting generation means <NUM> and generation condition generation means <NUM>. Data set setting generation means <NUM> generates a data set setting <NUM> (see <FIG>). Specifically, data set setting generation means <NUM> defines a combination of process data <NUM> such that process data <NUM> included in each group grouped by grouping means <NUM> is included in one data set <NUM>.

Generation condition generation means <NUM> generates generation condition <NUM> (see <FIG>). Specifically, the transmission condition is determined for each combination (data set) of process data <NUM> determined by data set setting generation means <NUM>.

In the example of <FIG>, process data A, B, D are stored in one data set <NUM>, and data set setting <NUM> is generated such that process data X is stored in different data sets <NUM>.

Generation condition generation means <NUM> determines the generation condition and the transmission condition of each data set defined in data set setting <NUM> based on data set setting <NUM> and the result of second grouping means <NUM>.

In the example of <FIG>, it is determined that data set <NUM> storing process data A, B, D is transmitted at the period of <NUM> and that data set <NUM> storing process data X is generated and transmitted as an event.

When a maximum transmission unit (MTU) is defined as the performance of information system network <NUM>, grouping means <NUM> may repeat the division of the group until the total of the process data included in one group does not exceed the MTU.

In addition, generation means <NUM> may define the order in which process data <NUM> is stored according to the attribute of process data <NUM>. The storing order is defined in the order in which controller <NUM> easily stores the data according to the performance of controller <NUM>, the network configuration of controller <NUM>, and the like.

With reference to <FIG>, hardware configurations of the devices included in control system <NUM> will be sequentially described. <FIG> is a schematic diagram illustrating an example of a hardware configuration of support device <NUM>. <FIG> is a schematic diagram illustrating an example of a hardware configuration of HMI <NUM>. <FIG> is a schematic diagram illustrating an example of a hardware configuration of controller <NUM>.

For example, support device <NUM> is implemented using hardware (for example, a general-purpose personal computer) according to a general-purpose architecture. Support device <NUM> may be a stationary type, or 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>, support device <NUM> includes a processor <NUM>, input unit <NUM>, display <NUM>, a volatile memory <NUM>, a nonvolatile memory <NUM>, an optical drive <NUM>, and a universal serial bus (USB) controller <NUM>. These components are connected through a processor bus <NUM>.

Processor <NUM> includes 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 for 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), or the like. Nonvolatile memory <NUM> is configured by a hard disk drive (HDD), a solid state drive (SSD), and the like.

Nonvolatile memory <NUM> stores a support program <NUM> providing the function as support device <NUM> in addition to an OS (not illustrated) implementing basic functions. Support program <NUM> includes a development program for control program <NUM> that provides the development environment of control program <NUM>, a development program for application <NUM> that provides the development environment of application <NUM>, and a communication setting program <NUM> that provides an environment setting a communication environment between controller <NUM> and HMI <NUM>.

For example, when processor <NUM> executes development program for application <NUM>, the function regarding development means <NUM> in <FIG> is provided. When processor <NUM> executes communication setting program <NUM>, the functions regarding grouping means <NUM> and generation means <NUM> in <FIG> are provided.

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).

Input unit <NUM> and display <NUM> are as described with reference to <FIG>.

Support device <NUM> includes optical drive <NUM>, and a program stored in recording medium 392A (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.

Support program <NUM> and the like executed by support device <NUM> may be installed through computer-readable recording medium 392A, or installed by being downloaded from the server device or the like on the network. Sometimes functions provided by support device <NUM> of the first embodiment are implemented using a part of modules provided by the OS.

USB controller <NUM> is in charge of the data exchange with an arbitrary information processing device through the USB connection. Specifically, USB controller <NUM> is in charge of the data exchange with controller <NUM> or 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 OPC UA program <NUM>, one or the plurality of subscriptions <NUM>, one or the plurality of applications <NUM>, and mapping information <NUM> in addition to the OS (not illustrated) implementing the 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 OPC UA client <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).

Each of one or the plurality of subscriptions <NUM>, one the plurality of applications <NUM>, and mapping information <NUM> is produced under the environment provided by support device <NUM>. Each of the data produced under the environment provided by support device <NUM> is typically installed in nonvolatile memory <NUM> through the USB connection. All or some of the data produced under the environment provided by support device <NUM> may be installed in nonvolatile memory <NUM> through another external storage medium (for example, a memory card or a 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 function provided by HMI <NUM> may be implemented using a part of the module provided by the OS.

Touch panel <NUM> includes display <NUM> that is a display and input unit <NUM> that receives the user operation. 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. Specifically, USB controller <NUM> exchanges data with support device <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 communication setting <NUM>.

Control program <NUM> is typically configured by a user program generated by the user who operates and designs support device <NUM> and a system program that provides 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 OPC UA server <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).

Communication setting <NUM> is generated under the environment provided by support device <NUM>. Communication setting <NUM> and control program <NUM> generated by the user who operates and designs support device <NUM> are typically installed in nonvolatile memory <NUM> through the USB connection. All or some of the data produced under the environment provided by support device <NUM> may be installed in nonvolatile memory <NUM> through another external storage medium (for example, memory card 194A and a 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. Specifically, USB controller <NUM> is in charge of the data exchange with support device <NUM>.

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 first embodiment, HMI <NUM> is communicably connected to one controller <NUM>. In addition, process data <NUM> used by one or the plurality of applications <NUM> is transmitted from one controller <NUM>. In addition, grouping means <NUM> including first grouping means <NUM> and second grouping means <NUM> has been described.

HMI <NUM> may be communicably connected to a plurality of controllers <NUM>. In this case, the one or the plurality of applications <NUM> may be configured to utilize the plurality of pieces of process data <NUM> transmitted from different controllers <NUM>. Furthermore, in this case, grouping means <NUM> may group by a method different from the grouping method described with reference to <FIG>.

With reference to <FIG>, the execution stage of the application when application <NUM> is configured to use the plurality of pieces of process data <NUM> transmitted from different controllers <NUM> will be described. <FIG> is a view illustrating the execution stage of the application according to a modification. The configuration corresponding to the configuration included in HMI <NUM> according to the first embodiment described with reference to <FIG> is denoted by the same reference numeral as that in <FIG>, and the description thereof is omitted.

HMI 200b is communicably connected to a plurality of controllers <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>. HMI 200b includes an OPC UA client 60b. OPC UA client 60b includes communication drivers 66b-<NUM>, 66b-<NUM>, 66b-<NUM> for each of connected controller <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>.

Each subscription 64b is set such that process data <NUM> of the subscription target included in each subscription 64b is managed by common controller <NUM>. Specifically, process data a, b, c included in subscription <NUM> are all process data <NUM> managed by controller <NUM>-<NUM>. In addition, each of process data l, m, n included in subscription <NUM> is process data <NUM> managed by controller <NUM>-<NUM>. In addition, process data x, y, z included in subscription <NUM> are all process data <NUM> managed by controller <NUM>-<NUM>.

When process data a, b, c are used for the execution of application <NUM>, subscription <NUM> becomes the subscription target. In this case, only data set <NUM> sent from controller <NUM>-<NUM> is the subscription target, and data set <NUM> sent from controller <NUM>-<NUM> and controller <NUM>-<NUM> is not the subscription target.

With reference to <FIG>, a method for generating the communication setting when application <NUM> is configured to use the plurality of pieces of process data <NUM> transmitted from different controllers <NUM> will be described. <FIG> is a schematic diagram illustrating grouping means 20b and generation means 40b according to a modification. The configuration corresponding to the configuration included in HMI <NUM> of the first embodiment described with reference to <FIG> is denoted by the same reference numeral as that in <FIG>, and the description thereof is omitted.

Grouping means 20b includes third grouping means <NUM> in addition to first grouping means <NUM> and second grouping means <NUM>. Grouping means 20b advances the grouping in the order of third grouping means <NUM>, first grouping means <NUM>, and second grouping means <NUM>.

Third grouping means <NUM> groups each of process data <NUM> used in the application for each controller <NUM> that manages process data <NUM>. In the example of <FIG>, process data a, b, c are the process data managed by controller <NUM>-<NUM>, process data l, m, n are the process data managed by controller <NUM>-<NUM>, and process data x, y, z are the process data managed by controller <NUM>-<NUM>. For this reason, third grouping means <NUM> allocates process data a, b, c to group GR1, allocates process data l, m, n to group GR2, and allocates process data x, y, z to group GR3. Controller <NUM> that manages process data <NUM> is specified from control program <NUM> executed by each of controllers <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>.

Then, first grouping means <NUM> further groups each group allocated by third grouping means <NUM> for each application. Because the execution contents of first grouping means <NUM> and second grouping means <NUM> are the same as those in <FIG>, the description thereof is omitted.

Generation means 40b generates communication setting <NUM> for each of controllers <NUM>-<NUM>, <NUM>-<NUM>, <NUM>-<NUM>. A communication setting <NUM>-<NUM> of controller <NUM>-<NUM> is generated such that process data <NUM> included in each group derived from group GR1 grouped by third grouping means <NUM> is stored in one data set <NUM>. Similarly, a communication setting <NUM>-<NUM> of controller <NUM>-<NUM> is generated such that process data <NUM> included in each group derived from group GR2 grouped by third grouping means <NUM> is stored in one data set <NUM>. A communication setting <NUM>-<NUM> of controller <NUM>-<NUM> is generated such that process data <NUM> included in each group derived from group GR3 grouped by third grouping means <NUM> is stored in one data set <NUM>.

As described above, when managed controller <NUM> is different for each of the plurality of pieces of process data <NUM> included in the application, communication setting <NUM> needs to be generated for each controller. As in the modification, after each of the plurality of pieces of process data <NUM> is grouped for each controller <NUM> that manages process data <NUM>, communication setting <NUM> is generated for each group, so that the communication setting can be generated for each of the plurality of controllers with less processing.

The control system of the first embodiment and the modifications can easily perform communication setting <NUM> in which process data <NUM> necessary for the execution of application <NUM> is transmitted from the controller to the HMI.

In the first embodiment and the modifications, support device <NUM> can collectively perform the application development and the communication setting. In the first embodiment and the modifications, support device <NUM> provides not only the development environment of the application and the environment of the communication setting but also the development environment of the control program. Accordingly, the communication setting can be easily implemented in consideration of the relationship between the application and the control program.

In the first embodiment, the environment in which communication setting <NUM> is generated is implemented by support device <NUM> that is the same as the environment in which application <NUM> is generated. The environment in which communication setting <NUM> is generated may be provided separately from the environment in which application <NUM> is generated. Specifically, the environment in which communication settings <NUM> is generated may be implemented by a dedicated setting device that generates communication settings <NUM>.

<FIG> is a view illustrating an outline of a control system 1c according to a second embodiment. Referring to <FIG>, in the second embodiment, control system 1c includes controller <NUM>, HMI <NUM>, and a setting device <NUM>. When control system <NUM> of the first embodiment is compared with control system 1c of the second embodiment, control system 1c is different from control system <NUM> in including setting device <NUM> instead of support device <NUM>. It is assumed that application <NUM> and subscription <NUM> are already installed in HMI <NUM>. In addition, it is assumed that control program <NUM> is already installed in controller <NUM>.

Setting device <NUM> is communicably connected to HMI <NUM> through the USB connection or the like. Setting device <NUM> exports subscription <NUM> installed in HMI <NUM>. Setting device <NUM> generates communication setting <NUM> based on subscription <NUM>.

Setting device <NUM> is communicably connected to controller <NUM> through the USB connection or the like. Setting device <NUM> transmits communication setting <NUM> generated based on subscription <NUM> to controller <NUM>.

Thus, the PubSub communication is established between controller <NUM> and HMI <NUM>.

More specifically, setting device <NUM> includes grouping means 20c and generation means 40c. Grouping means 20c extracts process data <NUM> defined for the subscription target from each subscription <NUM> installed from HMI <NUM>. Extracted process data <NUM> is grouped for each subscription <NUM>. It is assumed that at least controllers <NUM> managed by one another are common to the plurality of pieces of process data <NUM> defined by one subscription <NUM>.

Grouping means 20c may not group process data <NUM> for each subscription <NUM>, and may group process data <NUM> by the method described in the first embodiment and the modification of the first embodiment.

Generation means 40c generates communication setting <NUM> according to the allocation result of grouping means 20c. Because the method by which generation means 40c generates communication setting <NUM> is the same as that in the first embodiment, the description thereof is omitted. Generation means 40c transmits generated communication setting <NUM> to corresponding controller <NUM>.

<FIG> is a schematic diagram illustrating an example of a hardware configuration of a setting device <NUM>. 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>, and a USB controller <NUM>. These components are connected 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 function for setting the communication environment between controller <NUM> and HMI <NUM> to the user.

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

Nonvolatile memory <NUM> stores a communication setting program <NUM> that provides an environment in which the communication environment is set between controller <NUM> and HMI <NUM> in addition to the OS implementing the basic functions.

For example, processor <NUM> executes communication setting program <NUM> to provide the above-described functions. Although the configuration example in which processor <NUM> executes the program to provide the necessary functions has been described, some or all of these provided functions may be implemented using a dedicated hardware circuit (for example, ASIC or FPGA).

Input unit <NUM> receives the user operation. Typically, input unit <NUM> is a touch panel, a mouse, a keyboard, or the like. Display <NUM> presents the information to the user. Typically, display <NUM> is a display.

Communication setting program <NUM> and the like may be installed through the computer-readable recording medium, or installed by being downloaded from the server device or the like on the network. In addition, the function provided by setting device <NUM> of the second embodiment may be implemented using a part of the module provided by the OS.

Assuming that subscription <NUM> is already installed in HMI <NUM>, control system 1c of the second embodiment has been described. Setting device <NUM> may have the function of generating subscription <NUM>. That is, setting device <NUM> may export application <NUM> and mapping information <NUM> from HMI <NUM>, generate subscription <NUM> and communication setting <NUM> based on these pieces of information, and install each of subscription <NUM> and communication setting <NUM> in HMI <NUM> and controller <NUM>. Setting device <NUM> may have only the function of generating communication setting <NUM> from application <NUM> and mapping information <NUM>.

As described above, in the second embodiment and the modification, setting device <NUM> provides the function of supporting the communication environment between HMI <NUM> and controller <NUM>. In this case, similarly to the first embodiment, communication setting <NUM> in which process data <NUM> necessary for executing application <NUM> is transmitted from controller <NUM> to HMI <NUM> can be easily performed.

In addition, setting device <NUM> provides the function of supporting the communication environment between HMI <NUM> and controller <NUM>, so that the setting device can be easily introduced to the site where the development environment of the application and the development environment of the control program have already been introduced.

In the first embodiment and the second embodiment, communication setting <NUM> is generated before the communication is started between HMI <NUM> and controller <NUM>. Communication setting <NUM> may be set when the subscription request is made from HMI <NUM> that is of the subscriber after the communication is started between HMI <NUM> and controller <NUM>. A third embodiment illustrates an example in which communication setting <NUM> is set when the subscription request is made from HMI <NUM>.

<FIG> is a view illustrating a control system 1d according to a third embodiment. Referring to <FIG>, control system 1d includes a controller 100d, HMI <NUM>, and a relay device <NUM>. Control system <NUM> of the first embodiment is different from control system 1d of the third embodiment in that control system 1d includes a controller 100d instead of controller <NUM> and a relay device <NUM> instead of support device <NUM>. It is assumed that application <NUM> and subscription <NUM> are already installed in HMI <NUM>. In addition, it is assumed that control program <NUM> is already installed in controller 100d.

Relay device <NUM> includes transmission and reception management means <NUM> and process data management means <NUM> in addition to grouping means 20d and generation means 40d.

Upon receiving the subscription request from HMI <NUM>, transmission and reception management means <NUM> transmits data set <NUM> delivered from controller 100d to HMI <NUM> so as to satisfy the subscription request. Specifically, transmission and reception management means <NUM> refers to topic list <NUM> in which subscription <NUM> of HMI <NUM> and data set <NUM> delivered from controller 100d are associated with each other, thereby selecting data set <NUM> satisfying the subscription request from among the plurality of types of data sets <NUM> delivered from controller 100d and transmitting the selected data set <NUM> to HMI <NUM>.

When referring to topic list <NUM> to determine that the subscription request from HMI <NUM> cannot be satisfied, transmission and reception management means <NUM> requests grouping means 20d and generation means 40d to execute the processing generating communication setting <NUM> such that data set <NUM> satisfying the subscription request of HMI <NUM> is distributed from controller 100d.

Grouping means 20d allocates one or the plurality of pieces of process data <NUM> included in subscription <NUM> from HMI <NUM> to one or the plurality of groups by referring to process data list <NUM> that defines correspondence between process data <NUM> and controller 100d that delivers process data <NUM>. Although the third embodiment illustrates the example in which one controller 100d is communicably connected to HMI <NUM>, grouping means 20d distributes at least process data <NUM> for each controller when a plurality of controllers are communicably connected to HMI <NUM>.

Process data list <NUM> is managed by process data management means <NUM>. When communication between relay device <NUM> and controller 100d is established, process data management means <NUM> requests controller 100d to transmit the information indicating managed process data <NUM>. Upon receiving the information indicating process data <NUM> (process data information in <FIG>), process data management means <NUM> checks whether the correspondence between controller 100d and process data <NUM> managed by controller 100d is registered in process data list <NUM>. When the correspondence is not registered, process data management means <NUM> registers the correspondence between controller 100d and process data <NUM> managed by controller 100d in process data list <NUM>.

For example, grouping means 20d allocates one or the plurality of pieces of process data <NUM> included in subscription <NUM> to one or the plurality of groups such that the total of the process data included in one group does not exceed the communication performance of controller 100d.

Generation means 40d defines a combination of process data <NUM> stored in one data set <NUM> according to the allocation result. Generation means 40d requests controller 100d to store the defined combination of process data <NUM> in one data set <NUM> and to transmit the defined combination of process data <NUM> to controller 100d.

In addition, generation means 40d notifies transmission and reception management means <NUM> of the defined result. Transmission and reception management means <NUM> registers the result defined by generation means 40d in the topic list <NUM> with respect to subscription <NUM> of HMI <NUM>.

Relay device <NUM> newly defines data set <NUM> every time the new subscription request is made. Controller 100d updates communication setting <NUM> so as to transmit newly defined data set <NUM>. Furthermore, when data set <NUM> is newly defined, relay device <NUM> updates topic list <NUM>. Furthermore, when a controller is newly connected, relay device <NUM> updates process data list <NUM>.

<FIG> is a sequence diagram illustrating a flow from the start of the communication between relay device <NUM> and controller 100d to the transmission of communication setting <NUM> to controller 100d. Hereinafter, "step" is simply referred to as "S".

In step S120, it is assumed that relay device <NUM> and controller 100d are network-connected.

In S122, relay device <NUM> requests controller <NUM> to register process data <NUM>.

In S124, controller 100d receives the request and registers process data <NUM>.

In S126, relay device <NUM> updates process data list <NUM>.

When the subscription request is made from HMI <NUM> (S128), relay device <NUM> starts the processing for transmitting the data set to HMI <NUM> (S150).

In S152, relay device <NUM> allocates process data <NUM> included in subscription <NUM> to one or the plurality of groups according to process data list <NUM>.

For example, process data <NUM> included in subscription <NUM> is allocated for each period updated by controller 100d. In addition, process data <NUM> included in subscription <NUM> is allocated such that the total of the process data included in one group does not exceed the communication performance of controller 100d.

In S154, relay device <NUM> defines the combination of process data <NUM> stored in one data set <NUM> according to the allocation result.

In S156, relay device <NUM> updates topic list <NUM>. In S158, controller <NUM> is requested to transmit the data set generated in S154. The transmission request of the data set corresponds to communication setting <NUM>.

Controller 100d updates communication setting <NUM> in response to the request (S160). Controller 100d generates and transmits the data set according to updated communication setting <NUM> (S162, S164).

In S166, relay device <NUM> specifies HMI <NUM> that transmits transmitted data set <NUM> according to topic list <NUM>. In S168, relay device <NUM> transmits the data set to the specified transmission destination (HMI <NUM>).

Then, when the subscription request is stopped from HMI <NUM> (S170), relay device <NUM> updates topic list <NUM> (S172) and stops the transmission of the data set transmitted from controller 100d to HMI <NUM>. Thus, the processing of transmitting the data set in response to one subscription request of relay device <NUM> (S150) ends.

It is assumed that controller 100d continues to transmit the process data even when the subscription request is stopped from HMI <NUM>.

Relay device <NUM> refers to topic list <NUM> every time the subscription request is made, and determines whether process data <NUM> of the subscription target defined by subscription <NUM> is distributed. For example, in topic list <NUM>, the combination of data sets satisfying the subscription request defined by subscription <NUM> is defined for each subscription <NUM>. Relay device <NUM> refers to topic list <NUM> and determines whether subscription <NUM> for which the subscription request is made is registered in topic list <NUM>.

When subscription <NUM> for which the subscription request is made is registered in topic list <NUM>, relay device <NUM> updates topic list <NUM> so as to transmit one or the plurality of types of data sets satisfying the subscription request specified by subscription <NUM> for which the subscription request is made, to HMI <NUM> that makes the subscription request.

When subscription <NUM> to which the subscription request is made is not registered in topic list <NUM>, relay device <NUM> specifies the data set including process data <NUM> of the subscription target defined by subscription <NUM> for which the subscription request is made in the data sets registered in topic list <NUM>. Then, relay device <NUM> excludes process data <NUM> included in the specified data set from subscription <NUM>, defines the grouping and the data set, requests controller 100d to generate and transmit defined data set <NUM>, and updates topic list <NUM>.

Specifically, it is assumed that data set <NUM> including process data a, b and data set <NUM> including process data a, f are already registered in topic list <NUM>. In this case, it is assumed that the process data included in newly requested subscription <NUM> is process data a, b, c, d. At this point, relay device <NUM> registers requested subscription <NUM> and data set <NUM> in topic list <NUM> while subscription <NUM> and data set <NUM> are associated with each other. In addition, process data c, d are targets of the grouping and generation of the data set. For example, when it is determined that process data c, d are generated as one data set <NUM>, relay device <NUM> registers requested subscription <NUM> and data set <NUM> in topic list <NUM> while subscription <NUM> and data set <NUM> are associated with each other.

Thus, data set <NUM> and data set <NUM> are registered in topic list <NUM> while data set <NUM> and data set <NUM> are associated with requested subscription <NUM>. Relay device <NUM> refers to topic list <NUM> to deliver data set <NUM> and data set <NUM> to HMI <NUM> that requests subscription <NUM>.

That is, relay device <NUM> can distribute the data set toward HMI <NUM> so as to satisfy the request by updating topic list <NUM> every time subscription <NUM> is newly requested.

<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 the nonvolatile memory <NUM>, develops the program in volatile memory <NUM>, and executes the program, thereby providing the function of relaying the communication between controller <NUM> and HMI <NUM>.

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

Nonvolatile memory <NUM> includes a communication setting program <NUM> that provides the environment in which the communication environment is set between controller <NUM> and HMI <NUM>, a PubSub program <NUM> that manages various lists relaying the communication between controller <NUM> and HMI <NUM> to implement the PubSub communication, topic list <NUM>, and process data list <NUM> in addition to the OS implementing the basic functions.

For example, processor <NUM> executes communication setting program <NUM> to provide the functions of grouping means 20d and generation means 40d in <FIG>. Processor <NUM> executes PubSub program <NUM> to provide the functions of transmission and reception management means <NUM> and process data management means <NUM> in <FIG>. Although the configuration example in which processor <NUM> executes the program to provide the necessary functions has been described, some or all of these provided functions may be implemented using a dedicated hardware circuit (for example, ASIC or FPGA).

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. Sometimes functions provided by relay device <NUM> of the third embodiment are implemented using a part of modules provided by the OS.

Communication IF <NUM> is in charge of the data exchange with controller 100d and the data exchange with HMI <NUM>.

The example in which subscription <NUM> is previously installed in HMI <NUM> has been described in the third embodiment. HMI <NUM> only needs to be able to specify process data <NUM> used for application <NUM> of the execution target, but is not limited to management by subscription <NUM>.

Furthermore, in the third embodiment, the example in which HMI <NUM> and controller 100d are connected on a one-to-one basis through relay device <NUM> has been described. However, a plurality of HMIs <NUM> and a plurality of controllers 100d may be communicably connected through relay device <NUM>.

In addition, the example in which relay device <NUM> relays the data set transmitted by controller 100d and transmits data set <NUM> to HMI <NUM> has been described. However, relay device <NUM> may be configured to extract process data <NUM> included in data set <NUM> transmitted from controller 100d, generate a new data set again, and transmit the data set to HMI <NUM>. In this case, relay device <NUM> previously notifies HMI <NUM> of the information capable of specifying process data <NUM> included in the data set transmitted from relay device <NUM> to HMI <NUM>, or writes the information in a header of the data set.

As described above, in the third embodiment and the modifications, relay device <NUM> provides the support function of the communication environment between HMI <NUM> and controller 100d. In this case, similarly to the first embodiment, communication setting <NUM> in which process data <NUM> necessary for executing application <NUM> is transmitted from the controller to the HMI can be easily performed.

In addition, because relay device <NUM> provides the support function of the communication environment between HMI <NUM> and controller 100d, the data exchange can be implemented between HMI <NUM> and controller 100d without previously installing communication setting <NUM> in controller 100d. In addition, even when a new HMI or controller joins in or leaves from the network configured by HMI <NUM> and controller 100d, communication setting <NUM> corresponding to such joining or leaving can be performed without stopping the communication between the existing HMI and the controller.

In the first to third embodiments, information system network <NUM> is the network conforming to the OPC UA. Even when information system network <NUM> is a network conforming to EtherNET/IP (registered trademark), the data link between the HMI and the controller is required. Setting the data link is also referred to as establishing the connection. In a fourth embodiment, the communication setting when the network conforming to EtherNET/IP (registered trademark) is used instead of information system network <NUM> will be described.

<FIG> is a view illustrating a control system 1e of the fourth embodiment. Referring to <FIG>, control system 1e includes a controller 100e, a plurality of HMIs 200e-<NUM>, 200e-<NUM>, 200e-<NUM> (hereinafter, also generally referred to as an HMI 200e), and a setting device 600e.

Controller 100e and the plurality of HMIs 200e are communicably connected to each other by an information system network 2e conforming to EtherNET/IP.

The example of <FIG> illustrates the state in which the data link between HMI 200e-<NUM> and controller 100e is set through setting device 600e and a connection <NUM> is established.

Setting device 600e includes grouping means 20e and generation means 40e. Setting device 600e refers to application <NUM> included in HMI 200e-<NUM> and specifies the plurality of pieces of process data <NUM> used in application <NUM>.

Grouping means 20e distributes the plurality of specified process data <NUM> into one or the plurality of groups. The allocation method can be performed from the same viewpoint as that described in the first to third embodiments.

Generation means 40e sets communication setting <NUM> such that process data <NUM> included in one group is stored in one data set <NUM> according to the allocation result. In addition to data set setting <NUM> (information defining process data <NUM> stored in one data set <NUM>) and generation condition <NUM> (information defining the condition that generates data set <NUM>), communication setting <NUM> includes storage information <NUM> defining the order in which process data <NUM> is stored.

In addition, generation means 40e generates connection information <NUM> capable of specifying which process data <NUM> is stored in which place for each data set <NUM>.

Setting device 600e installs connection information <NUM> in HMI 200e-<NUM>, and installs communication setting <NUM> in controller 100e. Setting device 600e may produce connection information <NUM> and communication setting <NUM> for each application <NUM>, or produce one for the plurality of applications <NUM>. Although setting device 600e installs connection information <NUM> in HMI 200e-<NUM> and installs communication setting <NUM> in controller 100e, these pieces of information may be output as a report.

Setting device 600e generates communication setting <NUM> and connection information <NUM> for each of the HMIs 200e-<NUM>, 200e-<NUM>, 200e-<NUM>. Connection <NUM> to <NUM> is established by installing communication setting <NUM> generated by setting device 600e in controller 100e and installing connection information <NUM> in each of HMIs 200e-<NUM>, 200e-<NUM>, 200e-<NUM>.

In addition, when each of the plurality of pieces of process data <NUM> used for application <NUM> executed in one HMI 200e is managed by separate controller 100e, connection information <NUM> and communication setting <NUM> are generated for each controller 100e.

With reference to <FIG>, the data structure of data set <NUM> generated by controller 100e and connection information <NUM> referred to by HMI 200e to interpret data set <NUM> will be described.

<FIG> is a view illustrating an example of the data structure of data set <NUM>. <FIG> is a view illustrating connection information <NUM>.

Referring to <FIG>, ConnectionID <NUM> is assigned to each data set <NUM>. In addition, data set <NUM> has a storage region <NUM> including a plurality of storage units <NUM>. A sequence number <NUM> is allocated to each storage unit <NUM>, and process data <NUM> is stored in each storage unit <NUM>.

Referring to <FIG>, connection information <NUM> is information indicating which process data is stored in each storage unit <NUM>. Specifically, connection information <NUM> is information in which a sequence number and a type of process data stored in the storage unit of the sequence number are associated for each ConnectionID.

HMI <NUM> interprets data set <NUM> transmitted from controller 100e based on connection information <NUM>, extracts process data <NUM>, and executes application <NUM>.

The method for establishing the connection is not limited to the method in which setting device 600e is used. As described in the first and third exemplary embodiments, the connection between the HMI and the controller may be established using the support device or the relay device.

As described above, in the fourth embodiment and the modification, because the connection between the HMI and the controller is automatically established based on the application which is executed, communication setting <NUM> in which process data <NUM> necessary for the execution of application <NUM> is transmitted from the controller toward the HMI can be easily performed. In addition, because the data transmitted from the controller toward the HMI is limited to the process data necessary for the application, the unnecessary data does not need to be transmitted.

In addition, in the fourth embodiment and the modification, because setting device 600e generates storage information <NUM>, controller 100e does not need to determine the storage order each time data set <NUM> is generated, and the processing load of generating data set <NUM> of controller 100e can be reduced. Further, because connection information <NUM> corresponding to storage information <NUM> is transmitted to HMI <NUM>, a data link can be easily constructed between controller 100e and HMI <NUM>.

In the first to fourth embodiments described above, the HMI has the function of the subscriber, and the controller has the function of the publisher. Each control system described in the first to fourth embodiments may be configured to distribute information from the HMI to the controller according to the predetermined communication setting of the HMI. Also in this case, similarly to the first to fourth embodiments, the communication setting generating the information distributed by the HMI may be generated according to the control program.

<FIG> is a schematic diagram illustrating an outline of a control system 1f according to a modification. The contents regarding the distribution of the information from the controller to the HMI described in the first to fourth embodiments are omitted in <FIG>.

Referring to <FIG>, control system 1f includes a plurality of controllers 100f, a plurality of HMIs 200f, grouping means 20f, and generation means 40f. In <FIG>, the display of field device <NUM> connected to each controller 100f is omitted.

HMI 200f stores application data <NUM> referred to or updated in application <NUM> in one or a plurality of types of application data sets <NUM> according to a predetermined communication setting <NUM>, and distributes application data <NUM>.

For example, application data <NUM> includes process data <NUM>, the data output as the execution result of application <NUM>, and a control value controlling controller 100f input according to the user operation.

For example, the distribution of application data set <NUM> from HMI 200f to controller 100f is performed when the user operates HMI 200f to control controller 100f, or when transmitted process data <NUM> is returned to controller 100f.

Controller 100f executes control program <NUM> using previously designated application data <NUM>. Here, application data <NUM> corresponds to the process data from the viewpoint of controller 100f, and corresponds to the data distributed from HMI <NUM> in the process data.

For example, control program <NUM> is produced under the development environment provided by support device <NUM> described with reference to <FIG>.

Grouping means 20f allocates application data <NUM> designated to be used in control program <NUM> to one or the plurality of groups. The method described in the above embodiments can be used as the grouping method. Grouping means 20f may acquire application data <NUM> from each of control programs <NUM> of the plurality of controllers 100f, and group acquired application data <NUM>.

Generation means 40f generates communication setting <NUM> such that application data <NUM> allocated to each of the plurality of groups GR1, GR2,. grouped by grouping means 20f is stored in one application data set <NUM> and transmitted according to the allocation result of grouping means 20f.

That is, when application data <NUM> is used to execute control program <NUM>, communication setting <NUM> in which application data <NUM> necessary for the execution of control program <NUM> is transmitted from HMI 200f to controller 100f can be easily performed according to control program <NUM>.

Although not illustrated in <FIG>, grouping means 20f and generation means 40f may produce communication setting <NUM> of controller 100f.

Grouping means 20f and generation means 40f can be implemented by the support device, the setting device, and the relay device described in the first to third embodiments.

Furthermore, the communication between HMI 200f and controller 100f is not limited to the OPC UA, but may be communication conforming to EtherNET/IP (registered trademark) as described in the fourth embodiment.

It should be considered that the disclosed embodiment is an example in all respects and not restrictive. The scope of the present invention is defined by not the above description, but the claims, and it is intended that all modifications within the meaning and scope of the claims are included in the present invention. In addition, the inventions described in the embodiments and the modifications are intended to be implemented alone or in combination as much as possible.

Claim 1:
A control system (<NUM>, 1a, 1c, 1d, 1e, 1f) comprising:
a control device (<NUM>, 100a, 100d, 100e, 100f) configured to execute a control program (<NUM>) controlling 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 being configured to transmit one or a plurality of types of data sets storing at least a part of the plurality of pieces of process data according to a predetermined communication setting (<NUM>);
an information processing device (<NUM>, 200a, 200b, 200e, 200f) configured to execute a plurality of applications (<NUM>) using one or a plurality of pieces of process data designated in the plurality of pieces of process data by using the one or the plurality of types of data sets transmitted from the control device;
a grouping unit (<NUM>, 20a, 20b, 20c, 20d, 20e, 20f) configured to allocate each of the one or the plurality of pieces of process data designated to be used in the plurality of applications to one or a plurality of groups; and
a generation unit (<NUM>, 40a, 40b, 40c, 40d, 40e, 40f) configured to generate the communication setting for the control device such that the one or the plurality of pieces of process data allocated to the group are stored in one data set and transmitted for each of the one or the plurality of groups grouped by the grouping unit according to an allocation result of the grouping unit,
characterized in that
the grouping unit is configured to group each of the one or the plurality of pieces of process data for each application,
the communication setting includes information (<NUM>) specifying a storage order of the one or the plurality of pieces of process data in each data set, and
the storage order is defined according to an attribute of the process data.