WO2020184185A1 - 制御システム、サポート装置、およびサポートプログラム - Google Patents
制御システム、サポート装置、およびサポートプログラム Download PDFInfo
- Publication number
- WO2020184185A1 WO2020184185A1 PCT/JP2020/007783 JP2020007783W WO2020184185A1 WO 2020184185 A1 WO2020184185 A1 WO 2020184185A1 JP 2020007783 W JP2020007783 W JP 2020007783W WO 2020184185 A1 WO2020184185 A1 WO 2020184185A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- process data
- data
- controller
- application
- communication
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/058—Safety, monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/567—Integrating service provisioning from a plurality of service providers
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1138—Configuration of I-O
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/12—Plc mp multi processor system
- G05B2219/1214—Real-time communication between plc, Ethernet for configuration, monitor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Definitions
- the present invention relates to a function that supports the setting of a communication environment between a control device and an information processing device that executes one or more applications that use process data managed by the control device.
- Control devices such as PLC (Programmable Logic Controller) have been introduced at various manufacturing sites.
- a control device is a kind of computer, and a control program designed according to a manufacturing device, a manufacturing facility, or the like is executed.
- Such a control device is communicably connected to an information processing device such as an HMI (Human Machine Interface).
- HMI Human Machine Interface
- the information processing device is, for example, an application that graphically displays the operating status of the controlled object of the control device by using the information from the control device, or displays by using the information from the control device. Run different applications.
- Patent Document 1 discloses a program display as an example of an information processing device connected to a PLC.
- this program display when one screen displayed on the display screen is one page, the layout of functional parts displayed on the page and the assignment of functions are performed on a page-by-page basis.
- Patent Document 1 does not specifically describe how to acquire the information necessary to realize the function assigned to each page.
- Information on a control device that is a PLC (hereinafter referred to as "process data") is used in an application for realizing this function.
- the user needs to make communication settings for the control device so that the process data used by the application is transmitted.
- One object of the present invention is to easily set communication so that process data necessary for executing an application is transmitted from a control device to an information processing device.
- a control system including a control device, an information processing device, a grouping means, and a generation means.
- the control device executes a control program for controlling the control target, manages a plurality of process data referenced or updated in the control program, and at least one of the plurality of process data according to predetermined communication settings. It is configured to transmit one or more types of data sets containing the parts.
- the information processing device executes one or more applications that utilize the specified one or more process data among the plurality of process data by using one or a plurality of types of data sets transmitted from the control device. It is configured as follows.
- the grouping means allocates each of one or more process data designated for use in one or more applications to one or more groups.
- the generation means transmits one or more process data assigned to the group for each of the one or more groups grouped by the grouping means, stored in one data set, according to the allocation result of the grouping means. Generate communication settings for the controller so that it is.
- communication settings are automatically generated according to the application executed by the information processing device, so that the process data required for executing the application is transmitted from the control device to the information processing device. It can be set easily.
- the communication settings may include information for identifying one or more process data to be stored in each dataset.
- the processing load for the control device to generate the data set is increased as compared with the case where the storage rule is simply specified. Can be mitigated.
- the communication settings may include information for specifying the storage order of one or more process data in each data set.
- the control device does not need to determine the storage order each time a data set is generated, and the processing load for generating the data set of the control device can be reduced. Further, for example, by sending a communication setting including information for specifying the storage order to both the information processing device and the control device, a data link between the information processing device and the control device can be easily constructed.
- control system may further include a support device that provides a development environment for one or more applications.
- the support device may have grouping means and generation means.
- the support device that provides the application development environment is provided with the grouping means and the generation means, the application development and the communication setting can be performed collectively.
- control system may further include a relay device that relays communication between the control device and the information processing device.
- the relay device may have grouping means and generation means.
- the information processing device manages a plurality of application data referenced or updated in one or more applications, and at least a part of the plurality of application data according to predetermined communication settings of the information processing device.
- One or more types of stored application data sets may be transmitted.
- the control device may execute the control program by using the specified one or a plurality of application data among the plurality of application data by using the application data set.
- the grouping means may assign each of one or more application data designated to be used in the control program to one or more control program groups.
- the generation means puts one or more application data assigned to the control program group into one application data set for each of the one or more control program groups grouped by the grouping means according to the allocation result of the grouping means.
- the communication settings of the information processing device may be generated so that they are stored and transmitted.
- a support device for supporting the setting of the communication environment between the control device and the information processing device.
- the control device executes a control program for controlling the control target, manages a plurality of process data referenced or updated in the control program, and at least one of the plurality of process data according to predetermined communication settings. It is configured to transmit one or more types of data sets containing the parts.
- the information processing device executes one or more applications that utilize the specified one or more process data among the plurality of process data by using one or a plurality of types of data sets transmitted from the control device. It is configured as follows.
- the support device is a grouping means for assigning each of one or more process data specified to be used in one or more applications to one or more groups, and a grouping means according to the allocation result of the grouping means. Generates said communication settings for the controller so that for each of the one or more groups grouped by, the one or more process data assigned to that group is stored and transmitted in one dataset. Including the generation means to be generated.
- communication settings are automatically generated according to the application executed by the information processing device, so that the process data required for executing the application is transmitted from the control device to the information processing device. It can be set easily.
- a support program for supporting the setting of the communication environment between the control device and the information processing device executes a control program for controlling the control target, manages a plurality of process data referenced or updated in the control program, and at least one of the plurality of process data according to predetermined communication settings. It is configured to transmit one or more types of data sets containing the parts.
- the information processing device executes one or more applications that utilize the specified one or more process data among the plurality of process data by using one or a plurality of types of data sets transmitted from the control device. It is configured as follows.
- the support program includes a grouping step that assigns each of the one or more process data designated for use in one or more applications to the computer to one or more groups, and the result assigned in the grouping step. For each of the groups grouped in the grouping step, one or more process data assigned to that group is stored and transmitted in one dataset according to the control device. To execute the generation step to generate the communication settings of.
- communication settings are automatically generated according to the application executed by the information processing device, so that the process data required for executing the application is transmitted from the control device to the information processing device. It can be set easily.
- FIG. It is a schematic diagram which shows the application scene of the control system 1a centering on FA system 10a. It is a figure which shows the outline of the control system 1 which concerns on Embodiment 1.
- FIG. It is a figure for demonstrating the outline of Pub / Sub communication. It is a figure for demonstrating the outline of HMI 200 functioning as a subscriber. It is a figure for demonstrating the outline of the controller 100 functioning as a publisher. It is a figure which shows an example of a series of flow from application development to introduction of a developed application.
- FIG. 5 is a sequence diagram showing a flow from the start of communication between the relay device 700 and the controller 100d until the communication setting 400 is sent to the controller 100d.
- FIG. 7 It is a schematic diagram which shows an example of the hardware composition of the relay device 700. It is a figure which shows the outline of the control system 1e which concerns on Embodiment 4.
- FIG. It is a figure which shows an example of the data structure of a data set 50. It is a figure for demonstrating the connection information 480. It is a schematic diagram which shows the outline of the control system 1f in the modification.
- FIG. 1 is a schematic diagram showing an application scene of the control system 1a centered on the FA system 10a.
- the control system 1a provides a function of supporting the setting of the communication environment between the devices included in the FA system 10a.
- the FA system 10a includes a controller 100a and an HMI 200a.
- the controller 100a is communicably connected to the HMI 200a via the information network 2a.
- the information system network 2a is, for example, a network according to a communication standard capable of realizing data exchange without depending on a vendor, an OS (Operating System), or the like.
- a communication standard for example, OPC UA (Object Linking and Embedding for Process Control Unified Architecture) is known.
- the communication standard adopted for the information network 2a is not limited to OPC-UA.
- the information network 2a may be a network that complies with a communication standard specific to a specific vendor or OS, and is an industrial open network in which a control protocol is implemented on Ethernet®. It may be a network according to IP (registered trademark).
- the FA system 10a may be configured to include a plurality of controllers 100a. Further, the FA system 10a may be configured to include a plurality of HMI 200a. Further, the FA system 10a may have a configuration in which one HMI 200a is communicably connected to one controller 100a, or may be a configuration in which one HMI 200a is communicably connected to a plurality of controllers 100a. A plurality of HMIs 200a may be communicably connected to the controller 100a, or a plurality of HMIs 200a may be communicably connected to the plurality of controllers 100a. In the example shown in FIG. 1, the FA system 10a has a configuration in which two HMIs 200a are communicably connected to one controller 100a.
- the controller 100a is an example of the control device of the present invention, executes a control program 120 for controlling a controlled object, and executes a central process in the FA system 10a.
- the controller 100a is communicably connected to the field device 500 to be controlled via the control system network 4.
- the control system network 4 it is preferable to adopt a network that performs constant periodic communication with a guaranteed data arrival time.
- EtherCAT registered trademark
- EtherNet / IP registered trademark
- DeviceNet registered trademark
- CompoNet registered trademark
- the field device 500 includes various industrial devices for automating a production process, and includes a device that exerts some physical action on a manufacturing device, a production line, or the like (hereinafter, also collectively referred to as a “field”). Includes input / output devices that exchange information with and from fields.
- the field device 500 includes a servo driver that controls a servo motor, a robot controller that controls a robot, a sensor that collects data, an actuator that moves a conveyor, a remote I / O (Input / Output) device, and the like. Including.
- the controller 100a controls the field device 500 by executing the control program 120.
- the controller 100a manages a plurality of process data 52 that are referenced or updated with the execution of the control program 120.
- the process data 52 includes data input from the field device 500 to the controller 100a, data output from the controller 100a to the field device 500, and data used for execution of the control program 120 or state management of the controller 100a.
- the process data 52 is updated periodically or eventually with the execution of the control program 120.
- the controller 100a transmits a plurality of types of data sets 50 storing at least a part of the plurality of process data 52 according to a predetermined communication setting 400.
- Each of the plurality of types of data sets 50 differs from each other in at least one element of the combination of the process data 52 to be stored, the trigger for transmission, and the destination.
- the HMI 200a is an example of the information processing apparatus of the present invention, and executes the application 220 by using the process data 52 included in the data set 50 transmitted by the controller 100a.
- the HMI 200a presents various information obtained by executing the control program 120 to the operator by executing the application 220.
- the HMI 200a may receive the data set 50 transmitted by the controller 100a directly from the controller 100a, or may receive the data set 50 via another device such as a relay device.
- the information processing device that executes the application 220 using the process data 52 managed by the controller 100a is not limited to the HMI 200a.
- the information processing device may be a database that collects information on traceability measured from the field device 500 that is the control target, or a SCADA (Supervisory Control And Data Acquisition) device that performs process control and centralized monitoring. Good.
- SCADA Supervisory Control And Data Acquisition
- the information processing device is not limited to a device connected to the controller 100a via the information system network 2a, but is a robot controller, an actuator, or another controller that controls a robot connected to the control system network 4.
- the application 220 is not limited to the one intended to present information, but may be the one intended to realize a function of using the process data 52 managed by the controller 100a.
- the application will be described as a program for presenting information and providing a function of displaying an image on a display unit.
- control device and the information processing device are different devices and are physically connected, but the control device and the information processing device are logically connected to each other. You may be.
- the HMI 200a executes the application 220 by using the process data 52 stored in the data set 50 distributed from the controller 100a. That is, the application 220 is executed on the premise that the process data 52 used by the application 220 is transmitted from the controller 100a.
- the control system 1a has a function of generating a communication setting 400 such that the process data 52 necessary for executing the application 220 is transmitted from the controller 100a to the HMI 200a.
- the control system 1a includes a grouping means 20a and a generation means 40a in addition to the controller 100a and the HMI 200a.
- the functions of the grouping means 20a and the generation means 40a are typically realized by the processor of the support device that provides the development environment of the application 220 executing a support program for supporting the setting of the communication environment. It is a function to be performed.
- the functions of the grouping means 20a and the generating means 40a may be realized by a dedicated setting device. Further, a relay device may be provided between the HMI 200a and the controller 100a, and the functions of the grouping means 20a and the generation means 40a may be realized by the relay device.
- the timing for generating the communication setting 400 will be described as being performed at the introduction stage before executing the application 220.
- the timing of generating the communication setting 400 may be performed at the execution stage of the application.
- the communication setting 400 may be generated or updated each time the application 220 to be executed is switched.
- the application 220 may be distributed in an installable format stored in a memory card or database, or may be created by a user.
- the grouping means 20a allocates the process data 52 specified to be used in the application 220 to one or a plurality of groups. For example, the grouping means 20a extracts a predetermined element and groups the process data 52 based on the extracted element.
- the predetermined elements include the type of the controller 100a that manages the process data 52, the cycle in which the controller 100a updates the process data 52, the cycle in which the application 220 uses the process data 52, the data size of the process data 52, and the like. Further, the grouping means 20a may assign the process data 52 specified to be used in the application 220 to one or a plurality of groups so as to satisfy the condition arbitrarily set by the user.
- the generation means 40a communicates with each of the plurality of groups so that one or more process data 52 included in one group is stored in one data set 50 and transmitted according to the allocation result of the grouping means 20a. Generate setting 400.
- the application 220 uses the process data 52B, the process data 52D, and the process data 52X. It is assumed that the grouping means 20a groups the plurality of process data 52 for each cycle used in the application 220, for example. In the example shown in FIG. 1, the application 220 updates the information using the process data 52B and the process data 52D every first cycle, and updates the information using the process data 52X every second cycle. In addition, in FIG. 1, some reference numerals are omitted.
- the grouping means 20a allocates the process data 52B and the process data 52D to the group GR1 and the process data 52X to the group GR2.
- the generation means 40a generates the communication setting 400 so that the process data 52B and the process data 52D are stored in one data set 50-1 and the process data 52X is stored in another data set 50-2.
- the communication setting 400 includes a condition for transmitting the data set 50, an order in which data is stored in the data set 50, a type of data stored in the data set 50, and the like.
- the generation means 40a determines, for example, the communication setting 400 according to information such as the attributes of the process data 52, the communication protocol used for the information system network 2a, and the network configuration of the FA system 10a centered on the controller 100a.
- the attributes of the process data 52 include, for example, the timing of reference or update in the control program 120, the data size, and the like.
- the conditions for transmitting the data set 50 are defined according to, for example, the timing when the controller 100a updates the process data 52, the timing when the application 220 uses the process data 52, and the like.
- the communication settings are generated so that the process data 52B and the process data 52X whose update cycle is used for generating the information of the first cycle are delivered every first cycle.
- control system 1a includes the grouping means 20a and the generation means 40a to generate the communication setting 400 of the controller 100a based on the application 220.
- the communication setting 400 such that the process data 52 required for executing the application 220 is transmitted from the controller 100a to the HMI 200a can be easily performed.
- FIG. 2 is a diagram showing an outline of the control system 1 according to the first embodiment.
- the control system 1 includes a support device 300, a controller 100, and an HMI 200.
- the communication method between the controller 100 and the HMI 200 will be described as a publish-subscribe type communication method of OPC UA.
- communication to which the publish-subscribe type communication method of OPC-UA is applied is also referred to as PubSub communication.
- PubSub communication The outline of PubSub communication will be described later.
- the controller 100 directly or indirectly controls one or more field devices 500.
- the network configuration of the field device 500 controlled by the controller 100 is arbitrarily designed by the user.
- FIG. 2 shows a configuration in which the controller 100 and the HMI 200 are connected on a one-to-one basis.
- the connection method between the controller 100 and the HMI 200 is not limited to this, and another device may be provided between the controller 100 and the HMI 200.
- the network configuration including the controller 100 and the HMI 200 and the network configuration including the controller 100 and the field device 500 are not limited to the example shown in FIG. 2, and can be arbitrarily designed by the user.
- the HMI 200 may be communicably connected to a plurality of controllers 100.
- the controller 100 may be communicably connected to a plurality of HMI 200s.
- the support device 300 provides a development environment for the application 220 executed by the HMI 200 and a development environment for the control program 120 executed by the controller 100, and also provides an environment for setting a communication environment between the controller 100 and the HMI 200. provide.
- a development environment and a setting environment are provided by installing a support program on the support device 300.
- the support program is, for example, "Sysmac Studio” manufactured by OMRON Corporation.
- the user can design the control program 120 for the controller 100 by using the support program, and install the designed control program 120 on the controller 100.
- the user can design the application 220 for the HMI 200 by using the support program, and install the designed application 220 on the HMI 200.
- the support device 300 generates a communication setting 400 for realizing the application 220 from the designed control program 120 and the application 220 by executing the support program, and the generated communication setting 400 is used as the controller 100. Install on.
- the program for developing the control program 120, the program for developing the application 220, and the program for generating the communication setting 400 do not need to be packaged and provided as one program. It may be provided separately.
- the communication setting 400 does not need to be generated in an installable format from the support device 300 toward the controller 100, and may be generated in a report format, for example. By doing so, the user can easily set the controller on which the communication setting 400 cannot be installed directly from the support device 300.
- FIG. 3 is a diagram for explaining an outline of PubSub communication.
- the side that distributes the data is referred to as a "publisher”
- the side that subscribes to the data distributed by the publisher is referred to as a "subscriber”.
- the controller 100 corresponds to a publisher that distributes data.
- the HMI 200 corresponds to a subscriber who subscribes to the data distributed by the controller 100.
- the publisher creates and distributes a dataset that stores one or more data.
- the publisher multicasts the dataset to the network that contains the publisher and subscribers without specifying a destination.
- a subscriber has one or more subscriptions that define the data to be subscribed to. Subscribers start or stop subscriptions on a subscription-by-subscription basis. For example, in the example shown in FIG. 3, when the subscriber starts the subscription of the subscription A, the subscriber starts the subscription of the data a and the data b. On the other hand, when the subscription of the subscription B is started, the subscription of the data a and the data e is started. Note that different subscriptions may include a common subscription target.
- the subscriber receives at least a dataset containing the data included in the subscribed subscription among the multiple types of datasets distributed by the publisher. For example, in the example shown in FIG. 3, the subscribed subscriptions are shaded.
- the subscriber receives at least the data set 1 in which the data a and the data b are stored and the data set 3 in which the data e is stored.
- the subscriber does not receive the data set 2, but may receive the data set 2.
- the subscriber only needs to be able to read at least the data to be subscribed, and may receive a data set (data set 1) including data not to be subscribed as in the example shown in FIG.
- the method by which the subscriber manages the start and stop of data subscription is not limited to the method shown in FIG.
- subscribers may manage by data.
- FIG. 4 is a diagram for explaining an outline of the HMI 200 functioning as a subscriber.
- FIG. 5 is a diagram for explaining an outline of the controller 100 that functions as a publisher.
- the HMI 200 includes a display unit 242, a plurality of applications 220 (220-1,220-2 ...), and an OPC UA client 60.
- Each application 220 is a program for displaying a specific page on the display unit 242.
- FIG. 4 shows an example in which the application 1 for displaying the page 1 is executed on the display unit 242.
- Each page contains a plurality of objects 54.
- page 1 includes objects 54a to 54d.
- the display of the object 54 is updated according to the value of the variable included in the program.
- the display of the object 54a is updated according to the value of the variable 2.
- the display of the object 54b is updated according to the value of the variable 1
- the display of the object 54c is updated according to the value of the variable 4
- the display of the object 54d is updated according to the value of the variable 3.
- the application 220 updates the value of the variable by referring to the mapping information 222.
- the mapping information 222 is information in which variables and process data are associated with each other. For example, the value of variable 1 is updated according to the value of process data A.
- the cycle in which the value of each process data is updated may be set by the user according to the creation of the application 220, or may be determined according to the update cycle of the controller 100 that manages the process data. In the example shown in FIG. 4, each value of process data A to process data D is updated by the controller 100 in each first cycle, and each value of process data X to process data Z is updated by the controller 100 in the second cycle. It shall be updated every time.
- the OPC UA client 60 makes the HMI 200 function as a subscriber.
- the OPC UA client 60 includes a subscription management means 62, a plurality of subscriptions 64 (subscriptions 1 to n), and a communication driver 66.
- the subscription management means 62 manages the subscription start and subscription suspension of the subscription 64 according to the running application 220. Specifically, the subscription management means 62 determines the subscription 64 to be subscribed so that the process data referred to by the running application 220 is the subscription target among the plurality of subscription 64s. In the example shown in FIG. 4, the subscriptions being subscribed are indicated by diagonal lines.
- Subscription 64 is pre-generated according to application 220 and mapping information 222. As an example, subscription 64 is generated for each application 220. Further, the subscription 64 is generated every time the process data 52 is updated in the controller 100. In the example shown in FIG. 4, the subscription 64 is generated based on the type of application 220 and the cycle at which the controller 100 updates. More specifically, the process data A, B, D, and X referred to in the application 1 are assigned to the subscription 1 and the subscription 2 at each update cycle of the controller 100.
- the subscription management means 62 manages the start and stop of the subscription according to the running application 220, the subscription is generated according to each application 220. It is not necessary to generate a subscription so that all the process data included in one subscription 64 is used by one application, and a plurality of process data used by different applications in one subscription. May be included.
- the subscription management means 62 can manage the start and stop of the subscription of the process data 52, the management is not limited to the subscription 64.
- the communication driver 66 filters the data set 50 transmitted from the controller 100 so as to receive the data set 50 in which the subscribed process data is stored.
- the HMI 200 updates the process data included in the mapping information 222 by using the process data included in the data set 50 received by the communication driver 66.
- the controller 100 includes a control program 120, a control system network interface (IF) 191 and an OPC UA server 80.
- IF control system network interface
- the controller 100 controls the field device 500 by executing the control program 120.
- the control program 120 updates the process data 52 using the state value of the field device 500 input via the control system network IF191, and executes the control operation with reference to the updated process data 52.
- the control program 120 updates the value of the process data 52 according to the result of the executed control operation, and outputs the updated value of the process data 52 as a control value to the field device 500 via the control system network IF191. ..
- the OPC UA server 80 causes the controller 100 to function as a publisher.
- the OPC UA server 80 includes a data set generation means 82 for generating a data set 50 and a communication driver 84 for transmitting the data set 50.
- the data set generating means 82 generates a data set 50 storing one or a plurality of process data 52 with reference to the communication setting 400.
- the data set 50 may be a set of process data 52, or may be in a format that can be output on the information network 2.
- the communication setting 400 includes the data set setting 420 and the generation condition 440.
- the data set setting 420 is information that identifies the process data 52 stored in one data set 50. It should be noted that one data set 50 may be specified to store only one process data 52, or may be specified to store a plurality of process data 52. That is, the term "data set” means a combination of one or more process data 52 stored in the data set 50.
- the controller 100 generates a data set according to the data set setting 420.
- the processing load on the controller 100 is reduced as compared with the case where the communication setting 400 specifies that the process data of a specific attribute is set as one data set.
- the generation condition 440 defines the condition for generating the data set 50.
- the data set 1, the data set 3, and the data set 7 are generated for each first cycle, and the data set 2, the data set 6, and the data set are generated for each second cycle. It is stipulated that 9 is generated.
- the communication driver 84 distributes the data set 50 generated by the data set generation means 82 on the information system network 2.
- the OPC UA server 80 generates a data set 1 storing process data A and process data B and a data set 3 storing process data D for each first cycle. And send.
- the OPC UA client 60 assumes that the subscription 1 is being subscribed and reads the data set 1 and the data set 3.
- the application 1 updates the variables 1 to 3 at a cycle in which the process data A, the process data B, and the process data D corresponding to the variables 1 to 3 are updated by the controller 100, and the objects 54a and 54b. , 54d display is updated.
- the OPC UA server 80 generates and transmits a data set 2 in which the process data X is stored every second cycle.
- the OPC UA client 60 assumes that the subscription 2 is being subscribed and reads the data set 2.
- the application 2 updates the variable 4 at a cycle in which the process data X corresponding to the variable 4 is updated by the controller 100, and updates the display of the object 54c.
- the OPC UA client 60 changes the subscription 64 to be subscribed and the data set 50 to be read.
- changing the subscription target 64 is also referred to as “changing the subscription 64”
- changing the subscription target by changing the subscription 64 is also referred to as “changing the subscription request”.
- PubSub communication does not need to change the processing on the publisher side even if the application to be executed changes. Therefore, PubSub communication can reduce the number of exchanges between the data transmitting side and the receiving side as compared with the command-and-subscribe type communication.
- the OPC UA client 60 also changes the subscription request by changing the subscription 64 according to the change of the application 220 to be executed.
- the controller 100 (publisher) side needs to generate a data set 50 so as to satisfy each subscription request that changes according to the change of the application 220. .. That is, the user needs to design the communication setting 400 of the controller 100 so as to satisfy the subscription request specialized for each application 220 executed by the subscriber HMI 200.
- the support device 300 generates a communication setting 400 that satisfies a subscription request specialized for each application 220 based on the generated application 220. As a result, the burden on the user is reduced.
- FIG. 6 is a diagram showing an example of a series of flow from application development to introduction of the developed application.
- the control program will be described as being designed in advance. Further, it is assumed that each step shown in FIG. 6 is executed by the support device 300. The timing at which the communication setting 400 is generated will be described with reference to FIG.
- Step 1 Application generation
- the "application generation” includes designing the contents to be displayed on the HMI 200, creating an application for realizing the design contents, and specifying process data to be used in the application.
- the process data to be used in the process of creating the application may be specified, or the process data may be specified for each variable after the entire application is created.
- the support device 300 stores in memory information that can identify the type of process data that is referenced or updated in the control program.
- the support device 300 presents to the user information that can identify the type of process data stored in the memory, and the user specifies the process data to be used for the application from the presented process data types.
- the process data specification method includes a method of directly specifying the process data to be used and a method of associating the process data with the variables used in the application.
- the process data to be used for the application is specified by associating the process data with the variables used for the application.
- the process data to be used for each application is specified.
- mapping information 222 that links the variables used in the application and the process data is also generated.
- the support device 300 may generate mapping information for each application, or may generate one mapping information for a plurality of applications. In the first embodiment, it is assumed that one mapping information is generated for a plurality of applications.
- the support device 300 generates the subscription 64.
- the subscription 64 is generated for each application 220, for example, so that the subscription management means 62 can easily manage the start and stop of the subscription. Further, the subscription 64 is generated for each update cycle of the controller 100, for example, so that the communication driver 66 can easily refer to it.
- Step2 Grouping
- the support device 300 allocates each of the process data 52 used in the application to one or more groups. For example, the support device 300 extracts a predetermined element from each of the plurality of process data 52, and groups the process data 52 based on the extracted element.
- the elements to be extracted include, for example, a cycle in which the process data 52 is updated, a cycle in which the process data 52 is updated in the application, an application in which the process data 52 is used, and the like.
- the controller 100 that manages the process data 52 may be included in the extraction element.
- the grouping means may assign the process data 52 specified to be used in the application 220 to one or a plurality of groups so as to satisfy the condition arbitrarily set by the user.
- the support device 300 repeats the group distribution until the total amount of process data included in one group is less than the size of the data set 50 that can be transmitted at one time, which is determined according to the communication performance of the information network 2. It may be.
- Grouping based on the elements to be extracted is performed according to, for example, the attributes of the process data 52 to be stored, the configuration of the network including the controller 100, the transmission performance of the controller 100, the reception performance of the HMI 200, the communication performance of the information system network 2, and the like. Will be.
- the attributes of the process data 52 include, for example, the timing of reference or update in the control program 120, the data size, and the like.
- Step3 Generation of communication settings
- the support device 300 generates the communication setting 400 so that one or more process data 52 included in each group is stored in the data set 50 of 1, according to the allocation result of the process data 52.
- the communication setting 400 is generated based on, for example, the communication protocol between the HMI 200 and the controller 100, or the configuration of the network including the controller 100.
- Step4 Installation
- the support device 300 installs the application 220 and the subscription 64 generated in Step 1 in the HMI 200, and the communication setting 400 generated in Step 3 in the controller 100, respectively.
- the communication setting 400 and the subscription 64 do not need to be generated in an installable format, and may be output in a report format, for example.
- FIG. 7 is a block diagram showing a functional configuration included in the support device 300.
- the support device 300 includes an input unit 320, a display unit 340, a development means 360, a grouping means 20, and a generation means 40.
- the input unit 320 accepts user operations.
- the input unit 320 is a touch panel, a mouse, a keyboard, or the like.
- the development means 360 generates the application 220 and the mapping information 222 according to the user operation received by the input unit 320.
- the user registers one or more objects 54 for each page to be created ((1) object registration in FIG. 7).
- the user registers an operation for updating the display of the object 54 and a variable used for the operation for each one or a plurality of objects 54 ((2) variable registration in FIG. 7).
- the user associates the registered variable with the process data 52 that can be extracted from the control program 120 ((3) association in FIG. 7).
- This will generate one or more applications 220, mapping information 222 and subscription 64.
- the application creation procedure is an example, and 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. Further, in FIG. 7, the procedure for creating the subscription 64 is not shown.
- the development means 360 creates the application 220 and the mapping information 222 according to the information received by the input unit 320, and provides the user interface necessary for creating the application via the display unit 340.
- the grouping means 20 includes a first grouping means 22 and a second grouping means 24.
- the first grouping means 22 groups each of the process data 52 included in the mapping information 222 into groups for each application based on the mapping information 222 and the application 220.
- the variables corresponding to the process data A, B, D, and X are assumed to be used in the application 1. Further, the variables corresponding to the process data B and D are assumed to be used in the application 2. That is, the first grouping means 22 allocates the process data A, B, D, and X to the group GR1 and the process data B and D to the group GR2.
- the second grouping means 24 further groups each group assigned by the first grouping means 22 for each cycle updated in the controller 100.
- the cycle in which the process data 52 is updated in the controller 100 is defined by the control program 120.
- the process data A, B, and D are updated every 100 ms in the controller 100. It is assumed that the process data X is updated with the occurrence of the event X. That is, the second grouping means 24 sets the process data A, B, D into the group GR1-1 and the process data X into the group GR1-2 for the process data A, B, D, X assigned to the group 1. assign. In the example shown in FIG. 7, it is assumed that the update cycle of each process data 52 included in the group GR2 in the controller 100 is common.
- the generation means 40 includes a data set setting generation means 42 and a generation condition generation means 44.
- the dataset setting generation means 42 generates the dataset setting 420 (see FIG. 5).
- the data set setting generation means 42 defines a combination of process data 52 such that the process data 52 included in each group grouped by the grouping means 20 is included in one data set 50. ..
- the generation condition generation means 44 generates the generation condition 440 (see FIG. 5). Specifically, the transmission condition for each combination (data set) of the process data 52 determined by the data set setting generation means 42 is determined.
- the process data A, B, and D are stored in one data set 50, and the data set setting 420 is generated so that the process data X is stored in a different data set 50.
- the generation condition generation means 44 determines the generation condition and the transmission condition of each data set specified in the data set setting 420 based on the results of the data set setting 420 and the second grouping means 24.
- the data set 50 in which the process data A, B, and D are stored is transmitted at a cycle of 100 ms, and the data set 50 in which the process data X is stored is generated and transmitted as an event. It is determined.
- the grouping means 20 divides the groups until the total process data included in one group does not exceed the MTU. You may repeat it.
- the generation means 40 may specify the order in which the process data 52 is stored according to the attributes of the process data 52.
- the storage order is defined in an order in which the controller 100 is easy to store according to the performance of the controller 100, the network configuration of the controller 100, and the like.
- FIG. 8 is a schematic view showing an example of the hardware configuration of the support device 300.
- FIG. 9 is a schematic diagram showing an example of the hardware configuration of the HMI 200.
- FIG. 10 is a schematic view showing an example of the hardware configuration of the controller 100.
- the support device 300 is realized by using hardware (for example, a general-purpose personal computer) that follows a general-purpose architecture.
- the support device 300 may be a stationary type, or may be provided in the form of a notebook-type personal computer having excellent portability at the manufacturing site where the controller 100 is arranged.
- the support device 300 includes a processor 310, an input unit 320, a display unit 340, a volatile memory 350, a non-volatile memory 370, an optical drive 392, and a USB (Universal Serial Bus) controller. Includes 394 and. These components are connected via the processor bus 396.
- the processor 310 is composed of a CPU (Central Processing Unit), a GPU (Graphical Processing Unit), etc., reads a program stored in the non-volatile memory 370, expands it in the volatile memory 350, and executes the control program. It provides users with the ability to create and debug 120 and application 220, and to set up the communication environment between the controller 100 and HMI 200.
- CPU Central Processing Unit
- GPU Graphics Processing Unit
- the volatile memory 350 is composed of DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), and the like.
- the non-volatile memory 370 is composed of, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
- the non-volatile memory 370 stores a support program 372 for providing a function as a support device 300 in addition to an OS (not shown) for realizing a basic function.
- the support program 372 sets the communication environment between the control program development program 374 that provides the development environment of the control program 120, the application development program 376 that provides the development environment of the application 220, and the controller 100 and the HMI 200.
- the processor 310 executes the application development program 376, the function related to the development means 360 shown in FIG. 7 is provided. Further, when the processor 310 executes the communication setting program 378, the functions related to the grouping means 20 and the generating means 40 shown in FIG. 7 are provided.
- a dedicated hardware circuit for example, ASIC (Application Specific)
- ASIC Application Specific
- FPGA Field-Programmable Gate Array
- the input unit 320 and the display unit 340 are as described with reference to FIG.
- the support device 300 has an optical drive 392 from a recording medium 392A (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that non-volatilely stores a computer-readable program.
- the stored program is read and installed in the non-volatile memory 370 or the like.
- the support program 372 or the like executed by the support device 300 may be installed via a computer-readable recording medium 392A, or may be installed by downloading from a server device or the like on the network. Further, the function provided by the support device 300 according to the present embodiment may be realized by using a part of the module provided by the OS.
- the USB controller 394 is in charge of exchanging data with an arbitrary information processing device via a USB connection. Specifically, the USB controller 394 is in charge of exchanging data with the controller 100 or the HMI 200.
- the HMI 200 is realized by using hardware that follows a general-purpose architecture (for example, a general-purpose personal computer).
- the HMI 200 may be a stationary type, or may be provided in the form of a notebook-type personal computer having excellent portability at the manufacturing site where the controller 100 is arranged.
- the HMI 200 includes a processor 210, a touch panel 240, a volatile memory 250, a non-volatile memory 270, a communication IF 292, and a USB controller 294. These components are connected via the processor bus 296.
- the processor 210 is composed of a CPU, a GPU, or the like, and reads a program stored in the non-volatile memory 270, expands the program in the volatile memory 250, and executes the program. Output to 240.
- the volatile memory 250 is composed of DRAM, SRAM, or the like.
- the non-volatile memory 270 is composed of, for example, an HDD or an SSD.
- the non-volatile memory 270 includes an OPC UA program 260, one or more subscriptions 64, one or more applications 220, and mapping information 222, in addition to an OS (not shown) for realizing basic functions. And store.
- the OPC UA program 260 is a program for making the HMI 200 function as a subscriber, and is a program for performing communication according to the OPC UA between the controller 100 and the HMI 200.
- the processor 210 executes the OPC UA program 260, the function related to the OPC UA client 60 shown in FIG. 4 is provided.
- the OPC UA program 260 is installed in the non-volatile memory 270 from, for example, another external storage medium (for example, a memory card or a server device on a network).
- One or more subscriptions 64, one or more applications 220, and mapping information 222 are each created under the environment provided by the support device 300.
- Each piece of data created under the environment provided by the support device 300 is typically installed in the non-volatile memory 270 via a USB connection. All or part of each data created under the environment provided by the support device 300 is installed in the non-volatile memory 270 via another external storage medium (for example, a memory card or a server device on the network). You may.
- the configuration example in which the necessary functions are provided by the processor 210 executing the program is shown, some or all of these provided functions are provided by a dedicated hardware circuit (for example, ASIC or FPGA). ) May be used. Further, the function provided by the HMI 200 may be realized by using a part of the module provided by the OS.
- the touch panel 240 includes a display unit 242, which is a display, and an input unit 244 that accepts user operations.
- the display unit 242 and the input unit 244 may be formed separately.
- Communication IF292 is in charge of exchanging data with the controller 100.
- the USB controller 294 is in charge of exchanging data with an arbitrary information processing device via a USB connection. Specifically, the USB controller 294 exchanges data with the support device 300.
- the controller 100 has a processor 110, a chipset 196, a non-volatile memory 170, a volatile memory 150, a control system network IF191, an information system network IF192, and a USB controller as main components. It includes 193, a memory card IF 194, and an internal bus controller 195.
- the processor 110 is composed of a CPU, a GPU, or the like, and reads various programs stored in the non-volatile memory 170, expands them in the volatile memory 150, and executes them to control the field device 500 and function as a publisher. To realize.
- the chipset 196 realizes the processing of the controller 100 as a whole by mediating the exchange of data between the processor 110 and each component.
- control program 120 the OPC UA program 180, and the communication setting 400 are stored in the non-volatile memory 170.
- the control program 120 is typically composed of a user program generated by the user operating and designing the support device 300, and a system program that provides the basic functions of the controller 100.
- the field device 500 is controlled by the user program and the system program collaborating to realize the control purpose in the user.
- the OPC UA program 180 is a program for making the controller 100 function as a publisher, and is a program for performing communication according to the OPC UA between the controller 100 and the HMI 200.
- the OPC UA program 180 may be pre-installed in the controller 100 as a kind of system program, for example, or from another external storage medium (for example, a memory card 194A, a server device on a network) to a non-volatile memory 170. It may be installed.
- the communication setting 400 is generated under the environment provided by the support device 300.
- the communication setting 400 and the control program 120 generated by the user operating and designing the support device 300 are typically installed in the non-volatile memory 170 via a USB connection. All or part of each data created under the environment provided by the support device 300 is installed in the non-volatile memory 170 via another external storage medium (for example, memory card 194A, server device on the network). May be done.
- another external storage medium for example, memory card 194A, server device on the network. May be done.
- controller 100 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
- a general-purpose architecture for example, an industrial personal computer based on a general-purpose personal computer.
- virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
- the control network IF191 is in charge of exchanging data with the field device 500.
- the information network IF192 is in charge of exchanging data with the HMI200.
- the USB controller 193 is in charge of exchanging data with an arbitrary information processing device via a USB connection. Specifically, the USB controller 193 is in charge of exchanging data with the support device 300.
- the memory card IF 194 is configured so that the memory card 194A can be attached and detached, and data such as a control program and various settings can be written to the memory card 194A, or data such as a control program and various settings can be read from the memory card 194A. It is possible to put it out.
- the internal bus controller 195 is an interface for exchanging data with an I / O unit (not shown) mounted on the controller 100.
- a manufacturer-specific communication protocol may be used, or a communication protocol that is the same as or compliant with any industrial network protocol may be used.
- the HMI 200 may be connected to a plurality of controllers 100 so as to be able to communicate with each other.
- one or more applications 220 may be configured to utilize a plurality of process data 52 transmitted from different controllers 100.
- the grouping means 20 may be grouped by a method different from the grouping method described with reference to FIG. 7.
- FIG. 11 is a diagram for explaining an execution stage of the application according to the modified example.
- the HMI 200b is communicably connected to a plurality of controllers 100-1, 100-2, 100-3.
- the HMI 200b includes an OPC UA client 60b.
- the OPC UA client 60b includes communication drivers 66b-1, 66b-2, 66b-3 for each of the connected controllers 100-1, 100-2, 100-3.
- Each subscription 64b is set so that the process data 52 to be subscribed to included in each subscription 64b is managed by the controller 100 which is common to each other.
- the process data a, b, and c included in the subscription 1 are all process data 52 managed by the controller 100-1.
- the process data l, m, and n included in the subscription 2 are all process data 52 managed by the controller 100-2.
- the process data x, y, and z included in the subscription 3 are all process data 52 managed by the controller 100-3.
- subscription 1 will be the subscription target.
- the data set 50 sent from the controller 100-1 is the subscription target, and the data set 50 sent from the controller 100-2 and the controller 100-3 is not the subscription target.
- FIG. 12 is a schematic view of the grouping means 20b and the generating means 40b according to the modified example.
- the configuration corresponding to the configuration included in the HMI 200 according to the first embodiment, which has been described with reference to FIG. 7, is designated by the same reference numerals as those in FIG. 7, and the description thereof will be omitted.
- the grouping means 20b includes a third grouping means 26 in addition to the first grouping means 22 and the second grouping means 24.
- the grouping means 20b advances grouping in the order of the third grouping means 26, the first grouping means 22, and the second grouping means 24.
- the third grouping means 26 groups each of the process data 52 used in the application for each controller 100 that manages the process data 52.
- the process data a, b, and c are the process data managed by the controller 100-1
- the process data l, m, and n are the process data managed by the controller 100-2.
- the data x, y, and z are process data managed by the controller 100-3. Therefore, the third grouping means 26 allocates the process data a, b, and c to the group GR1, the process data l, m, and n to the group GR2, and the process data x, y, and z to the group GR3.
- the controller 100 that manages the process data 52 is specified from the control program 120 executed by each of the controllers 100-1, 100-2, and 100-3.
- the first grouping means 22 further groups each group assigned by the third grouping means 26 for each application. Since the execution contents of the first grouping means 22 and the second grouping means 24 are the same as those in FIG. 7, the description thereof will be omitted.
- the generation means 40b generates the communication setting 400 for each of the controllers 100-1, 100-2, and 100-3.
- the communication setting 400-1 of the controller 100-1 is generated so that the process data 52 included in each group derived from the group GR1 grouped by the third grouping means 26 is stored in one data set 50.
- the process data 52 included in each group derived from the group GR2 grouped by the third grouping means 26 is stored in one data set 50.
- the communication setting 400-3 of the controller 100-3 is generated so that the process data 52 included in each group derived from the group GR3 grouped by the third grouping means 26 is stored in one data set 50.
- each of the plurality of process data 52 is grouped by the controller 100 that manages the process data 52, and then the communication setting 400 is generated for each group, so that a plurality of process data 52 can be processed with less processing. Communication settings can be generated for each of the controllers in.
- control system can easily set the communication setting 400 such that the process data 52 necessary for executing the application 220 is transmitted from the controller to the HMI.
- the support device 300 can collectively develop the application and set the communication. Further, in the first embodiment and the modified example, the support device 300 provides not only an application development environment and a communication setting environment, but also a control program development environment. Therefore, it is possible to easily realize the communication setting in consideration of the relationship between the application and the control program.
- the environment for generating the communication setting 400 is realized by the support device 300, which is the same as the environment for generating the application 220.
- the environment for generating the communication setting 400 may be provided separately from the environment for generating the application 220.
- the environment for generating the communication setting 400 may be realized by a dedicated setting device for generating the communication setting 400.
- FIG. 13 is a diagram showing an outline of the control system 1c according to the second embodiment.
- the control system 1c includes a controller 100, an HMI 200, and a setting device 600. Comparing the control system 1 according to the first embodiment with the control system 1c according to the second embodiment, the control system 1c is different from the control system 1 in that the setting device 600 is provided instead of the support device 300. It is assumed that the application 220 and the subscription 64 are already installed in the HMI 200. Further, it is assumed that the control program 120 is already installed in the controller 100.
- the setting device 600 is communicably connected to the HMI 200 via a USB connection or the like.
- the configuration device 600 exports the subscription 64 installed on the HMI 200.
- the setting device 600 generates the communication setting 400 based on the subscription 64.
- the setting device 600 is communicably connected to the controller 100 via a USB connection or the like.
- the setting device 600 transmits the communication setting 400 generated based on the subscription 64 to the controller 100.
- the setting device 600 includes a grouping means 20c and a generation means 40c.
- the grouping means 20c extracts the process data 52 specified as the subscription target from each subscription 64 installed from the HMI 200.
- the extracted process data 52 is grouped by subscription 64. It is assumed that the plurality of process data 52 defined in one subscription 64 have at least the controllers 100 managed by each other in common.
- grouping means 20c does not have to be grouped by subscription 64, and may be grouped by the method shown in the first embodiment and the modified example of the first embodiment.
- the generation means 40c generates the communication setting 400 according to the allocation result of the grouping means 20c. Since the method by which the generation means 40c generates the communication setting 400 is the same as that of the first embodiment, the description thereof will be omitted.
- the generation means 40c transmits the generated communication setting 400 to the corresponding controller 100.
- FIG. 14 is a schematic view showing an example of the hardware configuration of the setting device 600.
- the setting device 600 is realized by using hardware (for example, a general-purpose personal computer) that follows a general-purpose architecture.
- the setting device 600 may be a stationary type, or may be provided in the form of a notebook-type personal computer having excellent portability at the manufacturing site where the controller 100 is arranged.
- the setting device 600 includes a processor 610, an input unit 620, a display unit 640, a volatile memory 650, a non-volatile memory 670, and a USB controller 694. These components are connected via the processor bus 696.
- the processor 610 is composed of a CPU, a GPU, or the like, reads a program stored in the non-volatile memory 670, expands the program in the volatile memory 650, and executes the program to set a communication environment between the controller 100 and the HMI 200. Provide users with the ability to do so.
- the volatile memory 650 is composed of DRAM, SRAM, or the like.
- the non-volatile memory 670 is composed of, for example, an HDD or an SSD.
- the non-volatile memory 670 stores a communication setting program 678 that provides an environment for setting the communication environment between the controller 100 and the HMI 200, in addition to the OS for realizing the basic functions.
- the processor 610 executes the communication setting program 678 to provide the above-mentioned functions.
- the configuration example in which the necessary functions are provided by the processor 610 executing the program is shown, some or all of these provided functions are provided by a dedicated hardware circuit (for example, ASIC or FPGA). ) May be used.
- the input unit 620 accepts user operations.
- the input unit 320 is a touch panel, a mouse, a keyboard, or the like.
- the display unit 640 presents information to the user.
- the display unit 640 is a display.
- the communication setting program 678 or the like may be installed via a computer-readable recording medium, but may also be installed by downloading from a server device or the like on the network. Further, the function provided by the setting device 600 according to the present embodiment may be realized by using a part of the module provided by the OS.
- the USB controller 694 is in charge of exchanging data with an arbitrary information processing device via a USB connection. Specifically, the USB controller 694 is in charge of exchanging data with the controller 100 or the HMI 200.
- control system 1c The control system 1c according to the second embodiment has been described assuming that the subscription 64 is already installed in the HMI 200.
- the setting device 600 may have a function of generating a subscription 64. That is, the setting device 600 exports the application 220 and the mapping information 222 from the HMI 200, generates a subscription 64 and a communication setting 400 based on the information, and installs each of the HMI 200 and the controller 100. You may.
- the setting device 600 may have only a function of generating the communication setting 400 from the application 220 and the mapping information 222.
- the setting device 600 provides the support function of the communication environment between the HMI 200 and the controller 100.
- the communication setting 400 can be easily set so that the process data 52 required for executing the application 220 is transmitted from the controller 100 to the HMI 200.
- the setting device 600 provides the support function of the communication environment between the HMI 200 and the controller 100, it can be easily introduced to the site where the application development environment and the control program development environment already exist. ..
- the communication setting 400 is generated before the communication between the HMI 200 and the controller 100 is started.
- the communication setting 400 may be set when a subscription request is made from the subscriber HMI 200 after the communication between the HMI 200 and the controller 100 is started.
- the third embodiment shows an example in which the communication setting 400 is set when a subscription request is made from the HMI 200.
- FIG. 15 is a diagram showing an outline of the control system 1d according to the third embodiment.
- the control system 1d includes a controller 100d, an HMI 200, and a relay device 700. Comparing the control system 1 according to the first embodiment with the control system 1d according to the third embodiment, the control system 1d includes a controller 100d instead of the controller 100, and a relay device instead of the support device 300. It differs from the control system 1 in that it includes 700. It is assumed that the application 220 and the subscription 64 are already installed in the HMI 200. Further, it is assumed that the control program 120 is already installed in the controller 100d.
- the relay device 700 includes a transmission / reception management means 70 and a process data management means 72 in addition to the grouping means 20d and the generation means 40d.
- the transmission / reception management means 70 receives a subscription request from the HMI 200 and transmits the data set 50 distributed from the controller 100d to the HMI 200 so as to satisfy the request.
- the transmission / reception management means 70 refers to a topic list 74 in which the subscription 64 of the HMI 200 and the data set 50 distributed from the controller 100d are associated with each other, so that a plurality of types of data distributed from the controller 100d A data set 50 that satisfies the subscription request is selected from the set 50 and transmitted to the HMI 200.
- the transmission / reception management means 70 determines that the subscription request from the HMI 200 cannot be satisfied with reference to the topic list 74, the data set 50 that satisfies the subscription request of the HMI 200 with respect to the grouping means 20d and the generation means 40d. Is requested to execute the process for generating the communication setting 400 so as to be delivered from the controller 100d.
- the grouping means 20d refers to the process data list 76 that defines the correspondence between the process data 52 and the controller 100d that distributes the process data 52, and one or more process data included in the subscription 64 from the HMI 200. Allocate 52 to one or more groups.
- the grouping means is used. In 20d, at least the process data 52 is distributed to each controller.
- the process data list 76 is managed by the process data management means 72.
- the process data management means 72 requests the controller 100d to transmit information indicating the managed process data 52.
- the process data management means 72 receives the information indicating the process data 52 (process data information in FIG. 15), and the correspondence between the controller 100d and the process data 52 managed by the controller 100d is registered in the process data list 76. If it is not registered, the correspondence between the controller 100d and the process data 52 managed by the controller 100d is registered in the process data list 76.
- the grouping means 20d for example, sets one or more process data 52 included in the subscription 64 so that the total of the process data included in one group does not exceed the communication performance of the controller 100d. Allocate to a group.
- the generation means 40d defines a combination of process data 52 to be stored in one data set 50 according to the distribution result.
- the generation means 40d requests the controller 100d to store and transmit the specified combination of process data 52 in one data set 50 toward the controller 100d.
- the generation means 40d notifies the result specified in the transmission / reception management means 70.
- the transmission / reception management means 70 associates the result defined by the generation means 40d with the subscription 64 of the HMI 200 and registers it in the topic list 74.
- the relay device 700 newly defines the data set 50 each time a new subscription request is made.
- the controller 100d updates the communication setting 400 to transmit the newly defined data set 50.
- the relay device 700 updates the topic list 74 when the data set 50 is newly defined.
- the relay device 700 updates the process data list 76 when a new controller is connected.
- FIG. 16 is a sequence diagram showing a flow from the start of communication between the relay device 700 and the controller 100d until the communication setting 400 is sent to the controller 100d.
- the “step” is simply referred to as "S”.
- the relay device 700 requests the controller 100 to register the process data 52.
- the controller 100d receives the request and registers the process data 52.
- the relay device 700 updates the process data list 76.
- the relay device 700 starts the process (S150) for transmitting the data set to the HMI 200.
- the relay device 700 allocates the process data 52 included in the subscription 64 to one or more groups according to the process data list 76.
- the process data 52 included in the subscription 64 is allocated every cycle updated by the controller 100d. Further, the process data 52 included in the subscription 64 is allocated so that the total of the process data included in one group does not exceed the communication performance of the controller 100d.
- the relay device 700 defines a combination of process data 52 to be stored in one data set 50 according to the distribution result.
- the relay device 700 updates the topic list 74.
- the controller 100 is requested to transmit the data set generated in S154. The transmission request of this data set corresponds to the communication setting 400.
- the controller 100d updates the communication setting 400 in response to a request (S160).
- the controller 100d generates and transmits a data set according to the updated communication setting 400 (S162, S164).
- the relay device 700 identifies the HMI 200 that transmits the transmitted data set 50 according to the topic list 74. In S168, the relay device 700 transmits the data set to the specified destination (HMI200).
- the relay device 700 updates the topic list 74 (S172) and stops the transmission of the data set sent from the controller 100d to the HMI 200.
- the process (S150) of transmitting the data set in response to the subscription request of one of the relay devices 700 is completed.
- controller 100d shall continue to transmit process data even if the subscription request is stopped by the HMI 200.
- the relay device 700 refers to the topic list 74 each time a subscription request is made, and determines whether or not the process data 52 to be subscribed defined by the subscription 64 is delivered.
- the topic list 74 specifies, for each subscription 64, a combination of datasets to satisfy the subscription request defined by the subscription 64.
- the relay device 700 refers to the topic list 74 and determines whether or not the subscription 64 for which the subscription request has been made is registered in the topic list 74.
- the relay device 700 When the subscription 64 for which the subscription is requested is registered in the topic list 74, the relay device 700 is for satisfying the subscription request specified by the subscription 64 for which the subscription is requested toward the HMI 200 for which the subscription is requested. Update topic list 74 to send one or more types of datasets.
- the relay device 700 subscribes to the dataset registered in the topic list 74 as defined by the subscription 64 for which the subscription was requested. Identify a dataset that contains the target process data 52. Then, the relay device 700 excludes the process data 52 included in the specified data set from the subscription 64, defines the grouping and the data set, and requests the controller 100d to generate and transmit the specified data set 50. At the same time, the topic list 74 is updated.
- the relay device 700 associates the requested subscription 64 with the data set 1 and registers them in the topic list 74.
- process data c and d are targeted for grouping and data set generation. For example, when it is decided to generate the process data c and d as one data set 3, the relay device 700 associates the requested subscription 64 with the data set 3 and registers them in the topic list 74.
- the data set 1 and the data set 3 are associated with the requested subscription 64 and registered in the topic list 74.
- the relay device 700 distributes the data set 1 and the data set 3 to the HMI 200 requesting the subscription 64 with reference to the topic list 74.
- the relay device 700 can deliver the data set to the HMI 200 so as to satisfy the request by updating the topic list 74 every time a new subscription 64 is requested.
- FIG. 17 is a schematic view showing an example of the hardware configuration of the relay device 700.
- the relay device 700 includes a processor 710, a volatile memory 750, a non-volatile memory 770, and a communication IF 794. These components are connected via the processor bus 796.
- the processor 710 is composed of a CPU, a GPU, or the like, reads a program stored in the non-volatile memory 770, expands the program in the volatile memory 750, and executes the program to relay communication between the controller 100 and the HMI 200. Provide functionality.
- the volatile memory 750 is composed of DRAM, SRAM, and the like.
- the non-volatile memory 770 is composed of, for example, an HDD or an SSD.
- the non-volatile memory 770 is between the communication setting program 778 that provides an environment for setting the communication environment between the controller 100 and the HMI 200, and the controller 100 and the HMI 200, in addition to the OS for realizing the basic functions.
- the processor 710 executes the communication setting program 778, the functions of the grouping means 20d and the generation means 40d shown in FIG. 15 are provided. Further, when the processor 710 executes the PubSub program 772, the functions of the transmission / reception management means 70 and the process data management means 72 shown in FIG. 15 are provided. In addition, although the configuration example in which the necessary functions are provided by the processor 710 executing the program is shown, some or all of these provided functions are provided by a dedicated hardware circuit (for example, ASIC or FPGA). ) May be used.
- the various programs stored in the non-volatile memory 770 may be installed via a computer-readable recording medium, but may also be installed by downloading from a server device or the like on the network. Further, the function provided by the relay device 700 according to the present embodiment may be realized by using a part of the module provided by the OS.
- the communication IF 794 is in charge of exchanging data with the controller 100d and exchanging data with the HMI 200.
- ⁇ D. Modification example> In the third embodiment, an example in which the subscription 64 is pre-installed on the HMI 200 is shown.
- the HMI 200 is not limited to the management by the subscription 64 as long as the process data 52 used for the application 220 to be executed can be specified.
- the example in which the HMI 200 and the controller 100d are connected one-to-one via the relay device 700 is shown, but the plurality of HMI 200 and the plurality of controllers 100d are connected via the relay device 700. May be communicatively connected to.
- the relay device 700 relays the data set 50 transmitted by the controller 100d and transmits the data set 50 to the HMI 200
- the relay device 700 relays the process data 52 included in the data set 50 transmitted from the controller 100d. It may be configured to extract, generate a new data set again, and send it to the HMI 200. In this case, the relay device 700 notifies the HMI 200 of information that can identify the process data 52 included in the data set transmitted from the relay device 700 to the HMI 200 in advance, or writes it in the header of the data set. To do.
- the relay device 700 provides the support function of the communication environment between the HMI 200 and the controller 100d.
- the communication setting 400 such that the process data 52 required for executing the application 220 is transmitted from the controller to the HMI can be easily performed.
- the relay device 700 provides a support function for the communication environment between the HMI 200 and the controller 100d, data can be exchanged between the HMI 200 and the controller 100d without installing the communication setting 400 in the controller 100d in advance. Can be realized. Further, even if a new HMI or controller joins or leaves the network composed of the HMI 200 and the controller 100d, the communication between the existing HMI and the controller is not interrupted. It is possible to set the communication setting 400 corresponding to such subscription and withdrawal.
- the information system network 2 is assumed to be a network according to the OPC UA. Even if the information system network 2 is a network conforming to EtherNET / IP (registered trademark), a data link between the HMI and the controller is required. Setting a data link is also called pasting a connection.
- EtherNET / IP registered trademark
- the communication setting when a network according to EtherNET / IP (registered trademark) is used instead of the information system network 2 will be described.
- FIG. 18 is a diagram showing an outline of the control system 1e according to the fourth embodiment.
- the control system 1e includes a controller 100e, a plurality of HMIs 200e-1, 200e-3, 200e-3 (hereinafter, also collectively referred to as HMI200e), and a setting device 600e.
- the controller 100e and the plurality of HMI200e are connected to each other so as to be able to communicate with each other by the information system network 2e according to EtherNET / IP.
- the data link between the HMI 200e-3 and the controller 100e is set via the setting device 600e, and the connection 3 is attached.
- the setting device 600e includes a grouping means 20e and a generation means 40e.
- the setting device 600e refers to the application 220 included in the HMI 200e-3 and identifies a plurality of process data 52 used in the application 220.
- the grouping means 20e distributes the specified plurality of process data 52 into one or a plurality of groups.
- the distribution method can be distributed from the same viewpoint as the viewpoint described in the first to third embodiments.
- the generation means 40e sets the communication setting 400 so that the process data 52 included in one group is stored in one data set 50 according to the allocation result.
- the communication setting 400 defines the data set setting 420 (information that defines the process data 52 stored in one data set 50) and the generation condition 440 (conditions for generating the data set 50) described in the first embodiment.
- the storage information 460 that defines the order in which the process data 52 is stored is included.
- connection information 480 that can specify which process data 52 is stored in which location for each data set 50.
- the setting device 600e installs the connection information 480 on the HMI 200e-3 and the communication setting 400 on the controller 100e.
- the setting device 600e may create connection information 480 and communication setting 400 for each application 220, or may create one for a plurality of applications 220. Further, although the setting device 600e is supposed to install the connection information 480 to the HMI 200e-3 and the communication setting 400 to the controller 100e, these information may be output as a report.
- the setting device 600e generates communication setting 400 and connection information 480 for each of HMI 200e-1, 200e-2, and 200e-3.
- the connections 1 to 3 can be attached.
- connection information 480 and communication setting 400 are generated for each controller 100e.
- FIG. 19 is a diagram showing an example of the data structure of the data set 50.
- FIG. 20 is a diagram for explaining the connection information 480.
- each data set 50 is attached with a Connection ID 56. Further, the data set 50 has a storage area 58 composed of a plurality of storage units 580. A sequence number 582 is assigned to each storage unit 580, and process data 52 is stored in each storage unit 580.
- connection information 480 is information indicating which process data is stored in each storage unit 580.
- the connection information 480 is information in which the sequence number is associated with the type of process data stored in the storage unit of the sequence number for each Connection ID.
- the HMI 200 interprets the data set 50 sent from the controller 100e, extracts the process data 52, and executes the application 220.
- the method of attaching a connection is not limited to the method of using the setting device 600e.
- a support device or a relay device may be used to establish a connection between the HMI and the controller.
- the connection between the HMI and the controller is automatically pasted based on the application to be executed, so that the process data 52 necessary for executing the application 220 is transmitted from the controller.
- the communication setting 400 such that it is transmitted to the HMI can be easily set. Further, since the data sent from the controller to the HMI is limited to the process data required for the application, it is not necessary to send unnecessary data.
- the controller 100e since the setting device 600e generates the storage information 460, the controller 100e does not need to determine the storage order every time the data set 50 is generated, and the data set of the controller 100e It is possible to reduce the processing load of generating 50. Further, since the connection information 480 corresponding to the stored information 460 is sent to the HMI 200, a data link between the controller 100e and the HMI 200 can be easily constructed.
- the HMI has a subscriber function and the controller has a publisher function.
- Each of the control systems shown in the first to fourth embodiments may have a configuration for distributing information from the HMI to the controller according to predetermined HMI communication settings. Also in this case, as in the above-described first to fourth embodiments, the communication setting for generating the information distributed by the HMI may be generated according to the control program.
- FIG. 21 is a schematic diagram showing an outline of the control system 1f in the modified example.
- the contents related to the distribution of information from the controller to the HMI described in the first to fourth embodiments are omitted.
- control system 1f includes a plurality of controllers 100f, a plurality of HMIs 200f, a grouping means 20f, and a generation means 40f.
- the display of the field device 500 connected to each controller 100f is omitted.
- the HMI 200f stores and distributes the application data 2052 referenced or updated in the application 220 in one or more types of application data sets 2050 according to the predetermined communication setting 800.
- the application data 2052 includes, for example, process data 52, data output as an execution result of the application 220, control values for controlling the controller 100f input according to the user's operation, and the like.
- the application data set 2050 is distributed from the HMI 200f to the controller 100f, for example, when the user operates the HMI 200f to control the controller 100f, or when the sent process data 52 is returned to the controller 100f.
- the controller 100f executes the control program 120 by using the application data 2052 specified in advance.
- the application data 2052 corresponds to the process data from the viewpoint of the controller 100f, and corresponds to the data distributed from the HMI 200 among the process data.
- the control program 120 is created, for example, under the development environment provided by the support device 300 described with reference to FIG.
- the grouping means 20f allocates each application data 2052 to one or a plurality of groups for the application data 2052 specified to be used in the control program 120.
- the grouping method the method described in the above embodiment can be used. Further, the grouping means 20f may acquire application data 2052 from each control program 120 of the plurality of controllers 100f and group the acquired application data 2052.
- the application data 2052 assigned to the group is combined with the application data set 2050 for each of the plurality of groups GR1, GR2 ... Grouped by the grouping means 20f according to the allocation result of the grouping means 20f.
- the grouping means 20f and the generating means 40f may create a communication setting 400 of the controller 100f.
- the grouping means 20f and the generating means 40f can be realized by the support device, the setting device, and the relay device shown in the first to third embodiments.
- the communication between the HMI 200f and the controller 100f is not limited to the OPC UA, and may be communication according to EtherNET / IP (registered trademark) as shown in the fourth embodiment.
- a control device (100, 100a, 100d, 100e,) that executes a control program (120) for controlling a control target (500) and manages a plurality of process data (52) referenced or updated in the control program.
- the control device is configured to transmit one or more types of data sets (50) storing at least a portion of the plurality of process data according to a predetermined communication setting (400).
- a predetermined communication setting 400
- one or a plurality of applications (220) using the specified one or a plurality of process data among the plurality of process data are executed.
- Information processing devices 200, 200a, 200b, 200e, 200f
- Grouping means (20, 20a, 20b, 20c, 20d, 20e, 20f) that allocate each of the one or more process data specified to be used in the one or more applications to one or more groups.
- a control system comprising a generation means (40, 40a, 40b, 40c, 40d, 40e, 40f) to generate the communication settings for the control device.
- ⁇ Structure 2> The control system according to configuration 1, wherein the communication settings include information (420) for identifying one or more process data to be stored in each dataset.
- ⁇ Structure 3> The control system according to configuration 1 or 2, wherein the communication settings include information (460) for specifying the storage order of one or more process data in each data set.
- a support device (300) that provides a development environment for the one or more applications is further provided.
- the control system according to any one of configurations 1 to 3, wherein the support device includes the grouping means (20, 20b) and the generating means (40, 40b).
- a relay device (700) that relays communication between the control device and the information processing device is further provided.
- the control system according to any one of configurations 1 to 3, wherein the relay device includes the grouping means (20d) and the generating means (40d).
- the information processing device (200f) is Manage multiple application data (2052) referenced or updated in the one or more applications According to a predetermined communication setting (800) of the information processing device, one or a plurality of types of application data sets (2050) storing at least a part of the plurality of application data are transmitted.
- the control device (100f) can execute the control program by using one or a plurality of designated application data among the plurality of application data.
- the grouping means (20f) allocates each of the one or more application data designated to be used in the control program to one or more control program groups.
- one or a plurality of application data assigned to each of the one or a plurality of control program groups grouped by the grouping means can be obtained according to the allocation result of the grouping means.
- the control system according to any one of configurations 1 to 5, which generates communication settings of the information processing apparatus so as to be stored and transmitted in one application data set.
- a control device for executing a control program (120) for controlling a control target (500) and managing a plurality of process data (52) referenced or updated in the control program, and the plurality of control devices (100, 100e).
- the control device is configured to transmit one or more types of data sets (50) storing at least a part of the plurality of process data according to a predetermined communication setting (400).
- the information processing device is configured to execute the one or more applications by utilizing the one or more types of data sets transmitted from the control device.
- Grouping means (20, 20b, 20c, 20e) that allocate each of the one or more process data specified to be used in the one or more applications to one or more groups.
- a support device comprising a generation means (40, 40b, 40c, 40e) for generating the communication settings for the control device.
- a control device that executes a control program for controlling a control target and manages a plurality of process data referenced or updated in the control program, and one or a plurality of process data specified among the plurality of process data.
- This is a support program (378, 678, 778) that supports the setting of a communication environment with an information processing device that executes one or more applications.
- the control device is configured to transmit one or more types of data sets (50) storing at least a part of the plurality of process data according to a predetermined communication setting (400).
- the information processing device is configured to execute the one or more applications by utilizing the one or more types of data sets transmitted from the control device.
- the support program is provided on a computer (300, 600, 600e, 700).
- a grouping step (Step 2) in which each of the one or more process data specified to be used in the one or more applications is assigned to one or more groups. For each of the one or more groups grouped in the grouping step, the one or more process data assigned to that group is stored in one dataset according to the result assigned in the grouping step.
- a support program that executes a generation step (Step 3) to generate the communication settings for the control device so that it can be transmitted.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Programmable Controllers (AREA)
Abstract
アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことを一つの目的とする。制御装置(100)と、制御装置(100)が管理するプロセスデータ(52)を利用してアプリケーション(220)を実行する情報処理装置(200)とを含む制御システム(1a)は、グループ化手段(20a)と、生成手段(40a)とを有する。グループ化手段(20a)は、アプリケーション(220)において利用されるプロセスデータ(52)を複数のグループに割り当てる。生成手段(40a)は、グループ化手段(20a)の割り当て結果に従って、一のグループに含まれるプロセスデータ(52)が一のデータセット(50)に格納されて送信されるように通信設定(400)を生成する。
Description
本発明は、制御装置と、制御装置が管理するプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置との間の通信環境の設定を支援する機能に関する。
様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、製造装置または製造設備などに応じて設計された制御プログラムが実行される。このような制御装置は、HMI(Human Machine Interface)などの情報処理装置と通信可能に接続される。
情報処理装置は、たとえば、制御装置からの情報を利用して、制御装置の制御対象の稼働状況などをグラフィカルに表示したり、あるいは、制御装置からの情報を利用して、表示するアプリケーションとは異なるアプリケーションを実行したりする。
たとえば、特開2017-146803号公報(特許文献1)は、PLCと接続される情報処理装置の一例としてプログラム表示器を開示する。このプログラム表示器は、表示画面に表示される一画面を一ページとした場合に、ページ単位で当該ページに表示される機能部品のレイアウト、および、機能の割り当て等がされている。
特許文献1には、各ページに割り当てられた機能を実現するために必要な情報を具体的にどのように取得するかについて言及されていない。この機能を実現するためのアプリケーションには、PLCである制御装置の情報(以下、「プロセスデータ」とする。)が利用される。ユーザは、アプリケーションに利用されるプロセスデータが送信されるような通信設定を制御装置に対して行う必要がある。
本願発明は、アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことを一つの目的とする。
本開示の一例によれば、制御装置と、情報処理装置と、グループ化手段と、生成手段とを含む制御システムが提供される。制御装置は、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理し、予め定められた通信設定に従って、複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されている。情報処理装置は、制御装置から送信される1または複数種類のデータセットを利用することで、複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行するように構成されている。グループ化手段は、1または複数のアプリケーションにおいて利用することが指定されている1または複数のプロセスデータの各々を1または複数のグループに割り当てる。生成手段は、グループ化手段の割り当て結果に従って、グループ化手段がグループ化した1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、制御装置のための通信設定を生成する。
この開示によれば、情報処理装置が実行するアプリケーションに応じて通信設定が自動で生成されるため、アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことができる。
上述の開示において、通信設定は、各データセットに格納されるべき1または複数のプロセスデータを特定するための情報を含んでもよい。
この開示によれば、一のデータセットに格納されるべきプロセスデータの組み合わせが規定されているため、単に格納ルールが規定されている場合に比べて、制御装置がデータセットを生成する処理負担を軽減することができる。
上述の開示において、通信設定は、各データセットにおける1または複数のプロセスデータの格納順序を特定するための情報を含んでもよい。
この開示によれば、制御装置はデータセットを生成する度に格納順序を決定する必要がなく、制御装置のデータセットを生成する処理負担を軽減することができる。さらに、たとえば、格納順序を特定する情報を含む通信設定を情報処理装置と制御装置の双方に送ることで、情報処理装置と制御装置との間のデータリンクを容易に構築することができる。
上述の開示において、制御システムは、1または複数のアプリケーションの開発環境を提供するサポート装置をさらに含んでもよい。制御システムにおいて、サポート装置がグループ化手段および生成手段を有してもよい。
この開示によれば、グループ化手段および生成手段をアプリケーションの開発環境を提供するサポート装置が備えるため、アプリケーションの開発と通信設定とを一括で行うことができる。
上述の開示において、制御システムは、制御装置と情報処理装置との間の通信を中継する中継装置をさらに含んでもよい。制御システムにおいて、中継装置がグループ化手段および生成手段を有してもよい。
この開示によれば、制御装置に対して予め通信設定をしなくとも、情報処理装置と制御装置との間のデータの遣り取りを実現することができる。
上述の開示において、情報処理装置は、1または複数のアプリケーションにおいて参照または更新される複数のアプリケーションデータを管理し、予め定められた情報処理装置の通信設定に従って、複数のアプリケーションデータの少なくとも一部を格納した1または複数種類のアプリケーションデータセットを送信してもよい。制御装置は、アプリケーションデータセットを利用することで、複数のアプリケーションデータのうち指定された1または複数のアプリケーションデータを利用して制御プログラムを実行してもよい。グループ化手段は、制御プログラムにおいて利用することが指定されている1または複数のアプリケーションデータの各々を1または複数の制御プログラムグループに割り当ててもよい。生成手段は、グループ化手段の割り当て結果に従って、グループ化手段がグループ化した1または複数の制御プログラムグループの各々について、制御プログラムグループに割り当てられた1または複数のアプリケーションデータが一のアプリケーションデータセットに格納されて送信されるように、情報処理装置の通信設定を生成してもよい。
この開示によれば、制御プログラムの実行にアプリケーションデータを利用する場合に、当該制御プログラムに応じて情報処理装置の通信設定が自動で生成されるため、制御プログラムの実行に必要なアプリケーションデータが情報処理装置から制御装置に向けて送信されるような情報処理装置の通信設定を容易に行うことができる。
本開示の別の一例によれば、制御装置と情報処理装置との間の通信環境の設定を支援するサポート装置が提供される。制御装置は、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理し、予め定められた通信設定に従って、複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されている。情報処理装置は、制御装置から送信される1または複数種類のデータセットを利用することで、複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行するように構成されている。サポート装置は、1または複数のアプリケーションにおいて利用することが指定されている1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段と、グループ化手段の割り当て結果に従って、グループ化手段がグループ化した1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、制御装置のための前記通信設定を生成する生成手段とを含む。
この開示によれば、情報処理装置が実行するアプリケーションに応じて通信設定が自動で生成されるため、アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことができる。
本開示の別の一例によれば、制御装置と情報処理装置との間の通信環境の設定を支援するサポートプログラムが提供される。制御装置は、制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理し、予め定められた通信設定に従って、複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されている。情報処理装置は、制御装置から送信される1または複数種類のデータセットを利用することで、複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行するように構成されている。サポートプログラムは、コンピュータに、1または複数のアプリケーションにおいて利用することが指定されている1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化ステップと、グループ化ステップにおいて割り当てられた結果に従って、グループ化ステップにおいてグループ化された1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、制御装置のための通信設定を生成する生成ステップとを実行させる。
この開示によれば、情報処理装置が実行するアプリケーションに応じて通信設定が自動で生成されるため、アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことができる。
本開示の一例によれば、アプリケーションの実行に必要なプロセスデータが制御装置から情報処理装置に向けて送信されるような通信設定を容易に行うことができる。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
§1 適用例
図1は、FAシステム10aを中心とした制御システム1aの適用場面を示す模式図である。制御システム1aは、FAシステム10aに含まれる各装置間の通信環境の設定を支援する機能を提供する。
図1は、FAシステム10aを中心とした制御システム1aの適用場面を示す模式図である。制御システム1aは、FAシステム10aに含まれる各装置間の通信環境の設定を支援する機能を提供する。
FAシステム10aは、コントローラ100aと、HMI200aとを含む。コントローラ100aは、情報系ネットワーク2aを介してHMI200aと通信可能に接続される。情報系ネットワーク2aは、たとえば、ベンダやOS(Operating System)の種類などに依存することなくデータ交換を実現することができる通信規格に従ったネットワークである。このような通信規格としては、たとえば、OPC UA(Object Linking and Embedding for Process Control Unified Architecture)などが知られている。
なお、情報系ネットワーク2aに採用される通信規格は、OPC-UAに限定されるわけではない。たとえば、情報系ネットワーク2aは、特定のベンダまたはOS特有の通信規格に従ったネットワークであってもよく、また、Ethernet(登録商標)上に制御用プロトコルを実装した産業用オープンネットワークであるEtherNet/IP(登録商標)に従ったネットワークであってもよい。
FAシステム10aは、複数のコントローラ100aを含む構成であってもよい。また、FAシステム10aは、複数のHMI200aを含む構成であってもよい。また、FAシステム10aは、1のコントローラ100aに対して1のHMI200aが通信可能に接続された構成でもよく、複数のコントローラ100aに対して1のHMI200aが通信可能に接続された構成でもよく、1のコントローラ100aに対して複数のHMI200aが通信可能に接続された構成でもよく、また、複数のコントローラ100aに対して複数のHMI200aが通信可能に接続された構成でもよい。図1に示す例では、FAシステム10aは、1のコントローラ100aに対して2つのHMI200aが通信可能に接続された構成である。
コントローラ100aは、本願発明の制御装置の一例であって、制御対象を制御するための制御プログラム120を実行し、FAシステム10aにおいて中心的な処理を実行する。図1に示す例において、コントローラ100aは、制御系ネットワーク4を介して、制御対象であるフィールドデバイス500と通信可能に接続される。制御系ネットワーク4には、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
フィールドデバイス500は、生産工程を自動化するための種々の産業用機器を含み、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与える装置と、フィールドとの間で情報を遣り取りする入出力装置とを含む。たとえば、フィールドデバイス500は、サーボモータを制御するサーボドライバ、ロボットを制御するロボットコントローラ、データを収集する装置であるセンサ、コンベヤを動かすアクチュエータ、または、リモートI/O(Input/Output)装置などを含む。
コントローラ100aは、制御プログラム120を実行することでフィールドデバイス500を制御する。また、コントローラ100aは、制御プログラム120の実行に伴って参照または更新される複数のプロセスデータ52を管理する。
プロセスデータ52は、フィールドデバイス500からコントローラ100aに入力されるデータと、コントローラ100aからフィールドデバイス500に出力されるデータと、制御プログラム120の実行またはコントローラ100aの状態管理に用いられるデータとを含む。プロセスデータ52は、制御プログラム120の実行に伴って、周期的にまたはイベント的に更新される。
コントローラ100aは、予め定められた通信設定400に従って、複数のプロセスデータ52の少なくとも一部を格納した複数種類のデータセット50を送信する。複数種類のデータセット50の各々は、互いに、格納されるプロセスデータ52の組合せと、送信される契機と、送信先とのうちの少なくとも一の要素が異なる。
HMI200aは、本願発明の情報処理装置の一例であって、コントローラ100aが送信したデータセット50に含まれるプロセスデータ52を利用してアプリケーション220を実行する。図1に示す例では、HMI200aは、アプリケーション220を実行することで、制御プログラム120の実行によって得られる各種情報をオペレータへ提示する。
HMI200aは、コントローラ100aが送信したデータセット50をコントローラ100aから直接受信してもよく、中継装置など、別のデバイスを介して受信してもよい。
なお、コントローラ100aが管理するプロセスデータ52を利用してアプリケーション220を実行する情報処理装置は、HMI200aに限られない。たとえば、情報処理装置は、制御対象であるフィールドデバイス500から計測されたトレーサビリティに関する情報などを収集するデータベースや、プロセス制御と集中監視とを行うSCADA(Supervisory Control And Data Acquisition)装置などであってもよい。
また、情報処理装置は、コントローラ100aと情報系ネットワーク2aを介して接続された装置に限られるものではなく、制御系ネットワーク4を介して接続されたロボットを制御するロボットコントローラ、アクチュエータ、他のコントローラなどであってもよい。すなわち、アプリケーション220は、情報の提示を目的としたものに限定されるものではなく、コントローラ100aが管理するプロセスデータ52を利用する機能の実現を目的としたものであればよい。なお、以下では、アプリケーションは、情報の提示を目的としたものであって、表示部に画像を表示する機能を提供するプログラムとして説明する。
また、図1に示す例では、制御装置と情報処理装置とが互いに異なる装置であって、物理的に接続されているものとしたが、制御装置と情報処理装置とは互いに論理的に接続されていてもよい。
アプリケーション220の実行段階において、HMI200aは、コントローラ100aから配信されるデータセット50に格納されるプロセスデータ52を利用することで、アプリケーション220を実行する。すなわち、アプリケーション220は、コントローラ100aから当該アプリケーション220で利用されるプロセスデータ52が送信されることを前提として実行される。制御システム1aは、FAシステム10aに加えて、アプリケーション220の実行に必要なプロセスデータ52がコントローラ100aからHMI200aに向けて送信されるような通信設定400を生成する機能を有する。
以下、アプリケーション220を開発してFAシステム10aに導入する段階であって、通信設定400を生成する段階について説明する。制御システム1aは、コントローラ100aおよびHMI200aに加えて、グループ化手段20aと、生成手段40aとを備える。グループ化手段20aおよび生成手段40aの各々の機能は、典型的には、アプリケーション220の開発環境を提供するサポート装置のプロセッサが、通信環境の設定を支援するためのサポートプログラムを実行することで実現される機能である。
なお、グループ化手段20aおよび生成手段40aの各々の機能は、専用の設定機器によって実現されてもよい。また、HMI200aとコントローラ100aとの間に中継装置を設け、グループ化手段20aおよび生成手段40aの各々の機能を中継装置によって実現させてもよい。
図1において、通信設定400を生成するタイミングは、アプリケーション220を実行する前の導入段階に行うものとして説明する。なお、通信設定400を生成するタイミングは、アプリケーションの実行段階で行っても良い。たとえば、実行するアプリケーション220を切り替える度に、通信設定400を生成または更新するようにしてもよい。
アプリケーション220は、インストール可能な形式でメモリカードやデータベースに格納された状態で流通されるものであってもよく、また、ユーザによって作成されるものであってもよい。
グループ化手段20aは、アプリケーション220において利用することが指定されているプロセスデータ52を1または複数のグループに割り当てる。たとえば、グループ化手段20aは、予め定められた要素を抽出し、抽出した要素に基づいてプロセスデータ52をグループ化する。予め定められた要素は、プロセスデータ52を管理するコントローラ100aの種類、コントローラ100aがプロセスデータ52を更新する周期、アプリケーション220がプロセスデータ52を利用する周期、プロセスデータ52のデータサイズなどを含む。また、グループ化手段20aは、ユーザによって任意に設定された条件を満たすように、アプリケーション220において利用することが指定されているプロセスデータ52を1または複数のグループに割り当ててもよい。
生成手段40aは、グループ化手段20aの割り当て結果に従って、複数のグループの各々について、一のグループに含まれる一または複数のプロセスデータ52が一のデータセット50に格納されて送信されるように通信設定400を生成する。
図1に示す例では、アプリケーション220は、プロセスデータ52B,プロセスデータ52D,プロセスデータ52Xを利用する。グループ化手段20aは、複数のプロセスデータ52について、たとえば、アプリケーション220において利用される周期毎にグループ化したものとする。図1に示す例では、アプリケーション220は、プロセスデータ52Bおよびプロセスデータ52Dを利用した情報を第1周期ごとに更新し、プロセスデータ52Xを利用した情報を第2周期ごとに更新するものとする。なお、図1において、一部、符号を省略している。
グループ化手段20aは、プロセスデータ52Bおよびプロセスデータ52DをグループGR1に、プロセスデータ52XをグループGR2に割り当てる。
生成手段40aは、プロセスデータ52Bおよびプロセスデータ52Dが一のデータセット50-1に格納され、プロセスデータ52Xが別のデータセット50-2に格納されるように通信設定400を生成する。通信設定400は、データセット50を送信する条件、データセット50にデータを格納する順序、データセット50に格納するデータの種類などを含む。
生成手段40aは、たとえば、通信設定400を、プロセスデータ52の属性、情報系ネットワーク2aに利用される通信プロトコル、コントローラ100aを中心としたFAシステム10aのネットワーク構成などの情報に従って決定する。プロセスデータ52の属性は、たとえば、制御プログラム120において参照または更新されるタイミング、データサイズなどを含む。
データセット50を送信する条件は、たとえば、コントローラ100aがプロセスデータ52を更新するタイミング、アプリケーション220がプロセスデータ52を利用するタイミングなどに従って規定される。たとえば、図1に示す例では、更新周期が第1周期の情報の生成に利用されるプロセスデータ52Bおよびプロセスデータ52Xは、第1周期毎に配信されるように通信設定が生成される。
以上のように、制御システム1aは、グループ化手段20aと、生成手段40aとを備えることで、アプリケーション220に基づいて、コントローラ100aの通信設定400を生成する。その結果、アプリケーション220の実行に必要なプロセスデータ52がコントローラ100aからHMI200aに向けて送信されるような通信設定400を容易に行うことができる。
§2 構成例
以下、上記適用例に示した制御システムを実現する構成例について説明する。
以下、上記適用例に示した制御システムを実現する構成例について説明する。
[実施の形態1]
<制御システム1の全体構成>
図2は、実施の形態1に係る制御システム1の概略を示す図である。制御システム1は、サポート装置300と、コントローラ100と、HMI200とを含む。
<制御システム1の全体構成>
図2は、実施の形態1に係る制御システム1の概略を示す図である。制御システム1は、サポート装置300と、コントローラ100と、HMI200とを含む。
実施の形態1において、コントローラ100とHMI200との間の通信方式は、OPC UAのパブリッシュ・サブスクライブ(Publish-Subscribe)型の通信方式であるとして説明する。なお、以下、OPC-UAのパブリッシュ・サブスクライブ型の通信方式が適用された通信をPubSub通信ともいう。PubSub通信の概要は、後述する。
コントローラ100は、1または複数のフィールドデバイス500を直接または間接的に制御する。コントローラ100が制御するフィールドデバイス500のネットワーク構成は、ユーザによって任意に設計される。
また、図2に示す例では、コントローラ100とHMI200とが1対1で接続されている構成を示している。コントローラ100とHMI200との接続方法は、これに限らず、コントローラ100とHMI200との間に別の装置が設けられていても良い。
コントローラ100とHMI200とを含むネットワークの構成およびコントローラ100とフィールドデバイス500とを含むネットワークの構成は、図2に示す例に限られず、ユーザが任意に設計可能である。たとえば、HMI200は、複数のコントローラ100と通信可能に接続されていてもよい。また、コントローラ100は、複数のHMI200と通信可能に接続されていてもよい。
サポート装置300は、HMI200が実行するアプリケーション220の開発環境、およびコントローラ100で実行される制御プログラム120の開発環境を提供するとともに、コントローラ100とHMI200との間の通信環境を設定するための環境を提供する。このような開発環境および設定環境は、サポート装置300に、サポートプログラムがインストールされることで提供される。サポートプログラムは、たとえば、オムロン社製の「Sysmac Studio」である。
ユーザは、サポートプログラムを利用して、コントローラ100用の制御プログラム120を設計し、設計した制御プログラム120をコントローラ100にインストールすることができる。また、ユーザは、サポートプログラムを利用して、HMI200用のアプリケーション220を設計し、設計したアプリケーション220をHMI200にインストールすることができる。また、サポート装置300は、サポートプログラムを実行することで、設計された制御プログラム120とアプリケーション220とから、アプリケーション220を実現するための通信設定400を生成して、生成した通信設定400をコントローラ100にインストールする。
なお、制御プログラム120を開発するためのプログラムと、アプリケーション220を開発するためのプログラムと、通信設定400を生成するためのプログラムとは、パッケージ化されて一つのプログラムで提供される必要はなく、別々に提供されてもよい。
また、通信設定400は、サポート装置300からコントローラ100に向けてインストール可能な形式で生成される必要はなく、たとえば、レポート形式で生成されてもよい。このようにすることで、ユーザは、サポート装置300から直接、通信設定400をインストールすることが出来ないコントローラの設定も容易に行うことができる。
<B.PubSub通信>
図3は、PubSub通信の概要を説明するための図である。以下の説明では、データを配信する側を「パブリッシャー」と称し、パブリッシャーが配信したデータを購読する側を「サブスクライバー」と称する。実施の形態1に係る制御システム1において、コントローラ100は、データを配信するパブリッシャーに相当する。一方、HMI200は、コントローラ100が配信したデータを購読するサブスクライバーに相当する。
図3は、PubSub通信の概要を説明するための図である。以下の説明では、データを配信する側を「パブリッシャー」と称し、パブリッシャーが配信したデータを購読する側を「サブスクライバー」と称する。実施の形態1に係る制御システム1において、コントローラ100は、データを配信するパブリッシャーに相当する。一方、HMI200は、コントローラ100が配信したデータを購読するサブスクライバーに相当する。
パブリッシャーは、1または複数のデータを格納したデータセットを生成して配信する。パブリッシャーは、送信先を特定することなく、パブリッシャーおよびサブスクライバーを含むネットワークにデータセットをマルチキャストする。
サブスクライバーは、購読対象のデータを規定する1または複数のサブスクリプションを有する。サブスクライバーはサブスクリプションごとに購読を開始または停止する。たとえば、図3に示す例では、サブスクライバーは、サブスクリプションAの購読を開始した場合には、データa,データbの購読を開始する。一方、サブスクリプションBの購読を開始した場合には、データa,データeの購読を開始する。なお、異なるサブスクリプションに共通の購読対象が含まれていても良い。
サブスクライバーは、パブリッシャーが配信した複数種類のデータセットのうち、購読中のサブスクリプションに含まれるデータを含むデータセットを少なくとも受信する。たとえば、図3に示す例では、購読中のサブスクリプションを斜線で示している。サブスクライバーは、サブスクリプションBを購読中の場合、データaおよびデータbが格納されたデータセット1と、データeが格納されたデータセット3とを少なくとも受信する。なお、サブスクライバーは、図3に示す例では、データセット2を受信しないものとしているが、受信してもよい。また、サブスクライバーは、少なくとも購読対象のデータを読み取ることができればよく、図3に示す例のように、購読対象ではないデータを含むデータセット(データセット1)を受信してもよい。
なお、サブスクライバーがデータの購読の開始と停止とを管理する方法は、図3に示す方法に限られない。たとえば、サブスクライバーは、データごとに管理してもよい。
図4および図5を参照して、HMI200とコントローラ100との間のPubSub通信の概要について説明する。図4は、サブスクライバーとして機能するHMI200の概要を説明するための図である。図5は、パブリッシャーとして機能するコントローラ100の概要を説明するための図である。
図4を参照して、HMI200は、表示部242と、複数のアプリケーション220(220-1,220-2…)と、OPC UAクライアント60とを備える。各アプリケーション220は、表示部242に特定のページを表示するためのプログラムである。図4には、表示部242にページ1を表示するためのアプリケーション1が実行されている例が示されている。
各ページは、複数のオブジェクト54を含む。たとえば、ページ1は、オブジェクト54a~オブジェクト54dを含む。オブジェクト54の表示は、プログラムに含まれる変数の値に応じて更新される。たとえば、オブジェクト54aの表示は、変数2の値に応じて更新される。同様に、オブジェクト54bの表示は変数1の値に、オブジェクト54cの表示は変数4の値に、オブジェクト54dの表示は変数3の値に応じて更新される。
アプリケーション220は、マッピング情報222を参照することで、変数の値を更新する。マッピング情報222は、変数とプロセスデータとを紐づけた情報である。たとえば、変数1の値は、プロセスデータAの値に従って更新される。各プロセスデータの値が更新される周期は、アプリケーション220の作成に応じてユーザが設定してもよく、また、プロセスデータを管理するコントローラ100の更新周期に応じて決定されるものでもよい。図4に示す例では、プロセスデータA~プロセスデータDの各々の値は、コントローラ100によって第1周期毎に更新され、プロセスデータX~プロセスデータZの各々の値は、コントローラ100によって第2周期毎に更新されるものとする。
OPC UAクライアント60は、HMI200をサブスクライバーとして機能させる。OPC UAクライアント60は、購読管理手段62と複数のサブスクリプション64(サブスクリプション1~サブスクリプションn)と、通信ドライバ66とを備える。
購読管理手段62は、実行中のアプリケーション220に応じてサブスクリプション64の購読開始と購読停止とを管理する。具体的には、購読管理手段62は、複数のサブスクリプション64のうち、実行中のアプリケーション220が参照するプロセスデータが購読対象となるように、購読するサブスクリプション64を決定する。なお、図4に示す例では、購読中のサブスクリプションを斜線で示す。
サブスクリプション64は、アプリケーション220およびマッピング情報222に従って予め生成される。一例として、サブスクリプション64は、アプリケーション220ごとに生成される。また、サブスクリプション64は、プロセスデータ52がコントローラ100において更新される周期毎に生成される。図4に示す例では、サブスクリプション64は、アプリケーション220の種類と、コントローラ100が更新する周期とに基づいて生成される。より具体的には、アプリケーション1において参照されるプロセスデータA、B,D,Xは、コントローラ100が更新する周期毎にサブスクリプション1とサブスクリプション2とに割り当てられている。
購読管理手段62が実行中のアプリケーション220に応じて購読の開始と停止とを管理することから、各アプリケーション220に応じてサブスクリプションが生成される。なお、一のサブスクリプション64に含まれる全てのプロセスデータが、一のアプリケーションに利用されるようにサブスクリプションを生成する必要はなく、一のサブスクリプションに互いに異なるアプリケーションで利用される複数のプロセスデータが含まれていても良い。
なお、購読管理手段62が、プロセスデータ52の購読の開始と停止とを管理できれば、サブスクリプション64による管理に限定されるものではない。
通信ドライバ66は、購読中のプロセスデータが格納されたデータセット50を受信するように、コントローラ100から送信されるデータセット50をフィルタリングする。HMI200は、通信ドライバ66が受信したデータセット50に含まれるプロセスデータを利用してマッピング情報222に含まれるプロセスデータを更新する。
図5を参照して、コントローラ100は、制御プログラム120と、制御系ネットワークインターフェイス(IF)191と、OPC UAサーバ80とを備える。
コントローラ100は、制御プログラム120を実行することで、フィールドデバイス500を制御する。たとえば、制御プログラム120は、制御系ネットワークIF191を介して入力されたフィールドデバイス500の状態値を利用してプロセスデータ52を更新し、更新したプロセスデータ52を参照して制御演算を実行する。制御プログラム120は、実行した制御演算の結果に応じてプロセスデータ52の値を更新し、制御系ネットワークIF191を介してフィールドデバイス500に向けて、更新したプロセスデータ52の値を制御値として出力する。
OPC UAサーバ80は、コントローラ100をパブリッシャーとして機能させる。OPC UAサーバ80は、データセット50を生成するデータセット生成手段82と、データセット50を送信する通信ドライバ84とを備える。
データセット生成手段82は、通信設定400を参照して、1または複数のプロセスデータ52を格納したデータセット50を生成する。データセット50は、プロセスデータ52の集合をいうこともあれば、情報系ネットワーク2上に出力することが可能な形式にしたものをいうこともある。
通信設定400は、データセット設定420と、生成条件440とを含む。データセット設定420は、一のデータセット50に格納されるプロセスデータ52を特定する情報である。なお、一のデータセット50には、1のプロセスデータ52だけが格納されるように規定されていてもよく、また、複数のプロセスデータ52が格納されるように規定されていてもよい。すなわち、「データセット」という用語は、データセット50に格納される1または複数のプロセスデータ52の組み合わせを意味する。
すなわち、コントローラ100は、データセット設定420に従ってデータセットを生成する。これにより、通信設定400が、特定の属性のプロセスデータを一のデータセットとするように規定するものである場合と比べて、コントローラ100の処理負担が軽減される。
生成条件440は、データセット50を生成する条件を既定する。図5に示す例では、一例として、第1周期ごとに、データセット1、データセット3、データセット7が生成されることが、第2周期ごとに、データセット2、データセット6、データセット9が生成されることが規定されている。
通信ドライバ84は、データセット生成手段82が生成したデータセット50を、情報系ネットワーク2上に配信する。
図4および図5を参照して、OPC UAサーバ80は、第1周期毎に、プロセスデータAおよびプロセスデータBを格納したデータセット1と、プロセスデータDを格納したデータセット3とを生成して送信する。OPC UAクライアント60は、アプリケーション1を実行中のときは、サブスクリプション1を購読中とし、データセット1と、データセット3とを読み取る。これにより、アプリケーション1は、変数1~変数3を、変数1~変数3に対応するプロセスデータA,プロセスデータB、プロセスデータDがコントローラ100で更新される周期で更新して、オブジェクト54a,54b,54dの表示を更新する。
また、OPC UAサーバ80は、第2周期毎に、プロセスデータXを格納したデータセット2を生成して送信する。OPC UAクライアント60は、アプリケーション1を実行中のときは、サブスクリプション2を購読中とし、データセット2を読み取る。これにより、アプリケーション2は、変数4を、変数4に対応するプロセスデータXがコントローラ100で更新される周期で更新して、オブジェクト54cの表示を更新する。
実行対象のアプリケーションが変わると、OPC UAクライアント60は、購読対象のサブスクリプション64を変更して、読み取る対象のデータセット50を変更する。なお、以下では、購読対象のサブスクリプション64を変更することを「サブスクリプション64を変更する」ともいい、サブスクリプション64を変更することで購読対象を変更することを「購読要求を変更する」ともいう。
このように、PubSub通信は、実行対象のアプリケーションが変わったとしても、パブリッシャー側の処理を変更する必要がない。そのため、PubSub通信は、コマンドアンドレスポンド方式の通信に比べて、データを送信する側と、受信する側との間で行う遣り取りの回数を減らすことができる。
一方で、OPC UAクライアント60は、実行対象のアプリケーション220の変更に応じて、サブスクリプション64を変更することで購読要求も変更する。コントローラ100とHMI200との間でPubSub通信を実現しようとする場合、コントローラ100(パブリッシャー)側は、アプリケーション220の変更に応じて変わる各購読要求を満たすように、データセット50を生成する必要がある。すなわち、ユーザは、サブスクライバーであるHMI200が実行する全てのアプリケーション220毎に特化した購読要求を満たすようにコントローラ100の通信設定400を設計する必要がある。
実施の形態1において、サポート装置300は、生成されたアプリケーション220に基づいて、アプリケーション220ごとに特化した購読要求を満たす通信設定400を生成する。これにより、ユーザの負担が軽減される。
<C.アプリケーションの開発から導入までの流れ>
図6は、アプリケーションの開発から、開発したアプリケーションを導入するまでの一連の流れの一例を示す図である。なお、図6においては、制御プログラムは予め設計されているものとして説明する。また、図6に示す各ステップは、サポート装置300が実行するものとする。図6を参照して、通信設定400が生成されるタイミングについて説明する。
図6は、アプリケーションの開発から、開発したアプリケーションを導入するまでの一連の流れの一例を示す図である。なお、図6においては、制御プログラムは予め設計されているものとして説明する。また、図6に示す各ステップは、サポート装置300が実行するものとする。図6を参照して、通信設定400が生成されるタイミングについて説明する。
(Step1:アプリケーションの生成)
「アプリケーションの生成」は、HMI200に表示する内容の設計と、設計内容を実現するためのアプリケーションの作成と、当該アプリケーションにおいて利用するプロセスデータの指定とを含む。アプリケーションを作成し、当該アプリケーションにおいて利用するプロセスデータを指定するまでの流れは、多種多様である。たとえば、アプリケーションの作成過程で利用するプロセスデータを指定してもよく、また、アプリケーションの全体を作成したあとに各変数に対してプロセスデータを指定するようにしてもよい。
「アプリケーションの生成」は、HMI200に表示する内容の設計と、設計内容を実現するためのアプリケーションの作成と、当該アプリケーションにおいて利用するプロセスデータの指定とを含む。アプリケーションを作成し、当該アプリケーションにおいて利用するプロセスデータを指定するまでの流れは、多種多様である。たとえば、アプリケーションの作成過程で利用するプロセスデータを指定してもよく、また、アプリケーションの全体を作成したあとに各変数に対してプロセスデータを指定するようにしてもよい。
サポート装置300は、制御プログラムにおいて参照または更新されるプロセスデータの種類を特定可能な情報をメモリに格納している。サポート装置300は、メモリに格納されているプロセスデータの種類を特定可能な情報をユーザに提示し、ユーザは提示されたプロセスデータの種類の中からアプリケーションに利用するプロセスデータを指定する。
プロセスデータの指定方法は、利用するプロセスデータを直接特定する方法と、アプリケーションに利用した変数にプロセスデータを紐付ける方法とを含む。実施の形態1においては、アプリケーションに利用した変数にプロセスデータを紐付けることで、アプリケーションに利用するプロセスデータが指定されるものとして説明する。これにより、アプリケーションごとに利用するプロセスデータが特定される。
アプリケーションの生成が完了すると、アプリケーションに利用される変数とプロセスデータとを紐付けたマッピング情報222も生成される。なお、サポート装置300は、アプリケーション毎にマッピング情報を生成してもよく、また、複数のアプリケーションに対して一のマッピング情報を生成してもよい。なお、実施の形態1においては、複数のアプリケーションに対して一のマッピング情報が生成されるものとして説明する。
また、アプリケーションの生成に伴い、サポート装置300は、サブスクリプション64を生成する。サブスクリプション64は、購読管理手段62が購読の開始、停止を管理しやすくするため、たとえば、アプリケーション220ごとに生成される。また、サブスクリプション64は、通信ドライバ66が参照しやすいように、たとえば、コントローラ100の更新周期ごとに生成される。
(Step2:グループ化)
サポート装置300は、アプリケーションで利用されるプロセスデータ52の各々を1または複数のグループに割り当てる。たとえば、サポート装置300は、複数のプロセスデータ52の各々から予め定められた要素を抽出し、抽出した要素に基づいてプロセスデータ52をグループ化する。
サポート装置300は、アプリケーションで利用されるプロセスデータ52の各々を1または複数のグループに割り当てる。たとえば、サポート装置300は、複数のプロセスデータ52の各々から予め定められた要素を抽出し、抽出した要素に基づいてプロセスデータ52をグループ化する。
抽出する要素は、たとえば、プロセスデータ52が更新される周期、アプリケーションにおいてプロセスデータ52が更新される周期、プロセスデータ52が利用されるアプリケーションなどを含む。また、HMI200が複数のコントローラ100と通信可能に接続されている場合、プロセスデータ52を管理するコントローラ100を抽出する要素に含めてもよい。また、グループ化手段は、ユーザによって任意に設定された条件を満たすように、アプリケーション220において利用することが指定されているプロセスデータ52を1または複数のグループに割り当ててもよい。また、サポート装置300は、一のグループに含まれるプロセスデータの総量が、情報系ネットワーク2の通信性能に従って決定される1回に送信可能なデータセット50のサイズを下回るまでグループの振り分けを繰り返すようにしてもよい。
抽出する要素に基づくグループ化は、たとえば、格納するプロセスデータ52の属性、コントローラ100を含むネットワークの構成、コントローラ100の送信性能、HMI200の受信性能、情報系ネットワーク2の通信性能などに応じて行われる。プロセスデータ52の属性は、たとえば、制御プログラム120において参照または更新されるタイミング、データサイズなどを含む。
(Step3:通信設定の生成)
サポート装置300は、プロセスデータ52の割り当て結果に従って、各グループに含まれる1または複数のプロセスデータ52が1のデータセット50に格納されるように通信設定400を生成する。通信設定400は、たとえば、HMI200とコントローラ100との間の通信プロトコル、またはコントローラ100を含むネットワークの構成に基づいて生成される。
サポート装置300は、プロセスデータ52の割り当て結果に従って、各グループに含まれる1または複数のプロセスデータ52が1のデータセット50に格納されるように通信設定400を生成する。通信設定400は、たとえば、HMI200とコントローラ100との間の通信プロトコル、またはコントローラ100を含むネットワークの構成に基づいて生成される。
(Step4:インストール)
サポート装置300は、Step1で生成されたアプリケーション220およびサブスクリプション64をHMI200に、Step3で生成された通信設定400をコントローラ100に各々インストールする。なお、通信設定400およびサブスクリプション64は、インストール可能な形式で生成される必要はなく、たとえば、レポート形式で出力されてもよい。
サポート装置300は、Step1で生成されたアプリケーション220およびサブスクリプション64をHMI200に、Step3で生成された通信設定400をコントローラ100に各々インストールする。なお、通信設定400およびサブスクリプション64は、インストール可能な形式で生成される必要はなく、たとえば、レポート形式で出力されてもよい。
<C.機能構成>
図7は、サポート装置300が備える機能構成を示すブロック図である。サポート装置300は、入力部320と、表示部340と、開発手段360と、グループ化手段20と、生成手段40とを備える。
図7は、サポート装置300が備える機能構成を示すブロック図である。サポート装置300は、入力部320と、表示部340と、開発手段360と、グループ化手段20と、生成手段40とを備える。
入力部320は、ユーザ操作を受け付ける。典型的には、入力部320は、タッチパネル、マウス、キーボードなどである。開発手段360は、入力部320が受け付けたユーザ操作に従ってアプリケーション220およびマッピング情報222を生成する。
具体的には、ユーザは、作成したいページ毎に、1または複数のオブジェクト54を登録する(図7中の(1)オブジェクト登録)。次に、ユーザは、1または複数のオブジェクト54毎に、オブジェクト54の表示を更新するための演算と、演算に利用する変数とを登録する(図7中の(2)変数登録)。最後に、ユーザは、登録した変数に対して、制御プログラム120から抽出可能なプロセスデータ52を紐付ける(図7中の(3)紐付け)。これにより、1または複数のアプリケーション220、マッピング情報222およびサブスクリプション64が生成される。なお、アプリケーションの作成手順は一例であって、この順序に限定されるものではない。たとえば、変数とプロセスデータとの紐付けがされた後、当該変数を利用してアプリケーションを生成するようにしてもよい。また、図7において、サブスクリプション64の作成手順については図示していない。
開発手段360は、入力部320が受け付けた情報に従ってアプリケーション220およびマッピング情報222を作成するとともに、表示部340を介してアプリケーションの作成に必要なユーザインターフェイスを提供する。
グループ化手段20は、第1グループ化手段22と、第2グループ化手段24とを含む。第1グループ化手段22は、マッピング情報222およびアプリケーション220に基づき、マッピング情報222に含まれるプロセスデータ52の各々をアプリケーション毎にグループ分けする。
図7に示す例では、プロセスデータA,B,D,Xに対応する変数は、アプリケーション1で利用されるものとする。また、プロセスデータB,Dに対応する変数は、アプリケーション2で利用されるものとする。すなわち、第1グループ化手段22は、プロセスデータA,B,D,XをグループGR1に割り当て、プロセスデータB,DをグループGR2に割り当てる。
第2グループ化手段24は、第1グループ化手段22によって割り当てられた各グループをさらに、コントローラ100内で更新される周期毎にグループ分けする。プロセスデータ52がコントローラ100内で更新される周期は、制御プログラム120によって定義される。
図7に示す例では、プロセスデータA,B,Dは、コントローラ100内で100ms毎に更新されるものとする。プロセスデータXは、イベントXの発生に伴って更新されるものとする。すなわち、第2グループ化手段24は、グループ1に割り当てられたプロセスデータA,B,D,Xについて、プロセスデータA,B,DをグループGR1-1に、プロセスデータXをグループGR1-2に割り当てる。なお、図7に示す例では、グループGR2に含まれる各プロセスデータ52のコントローラ100内での更新周期は共通しているものとする。
生成手段40は、データセット設定生成手段42と、生成条件生成手段44とを備える。データセット設定生成手段42は、データセット設定420(図5参照)を生成する。具体的には、データセット設定生成手段42は、グループ化手段20によってグループ化された各グループに含まれるプロセスデータ52が一のデータセット50に含まれるような、プロセスデータ52の組み合わせを規定する。
生成条件生成手段44は、生成条件440(図5参照)を生成する。具体的には、データセット設定生成手段42が決定したプロセスデータ52の組み合わせ(データセット)毎の送信条件を決定する。
図7に示す例では、プロセスデータA,B,Dは一のデータセット50に格納され、プロセスデータXが異なるデータセット50に格納されるようにデータセット設定420が生成される。
生成条件生成手段44は、データセット設定420において規定された各データセットの生成条件と送信条件とをデータセット設定420および、第2グループ化手段24の結果に基づいて決定する。
図7に示す例では、プロセスデータA,B,Dが格納されたデータセット50が100ms周期で送信され、プロセスデータXが格納されたデータセット50がイベント的に生成されて送信されることが決定される。
なお、グループ化手段20は、情報系ネットワーク2の性能として、MTU(Maximum Transmission Unit)が規定されている場合、一のグループに含まれるプロセスデータの合計がMTUを超えなくなるまで、グループの分割を繰り返すようにしてもよい。
また、生成手段40は、プロセスデータ52の属性に従って、プロセスデータ52を格納する順序を規定してもよい。格納する順序は、コントローラ100の性能や、コントローラ100のネットワーク構成などに従って、コントローラ100が格納し易い順序に規定される。
<D.ハードウェア構成>
図8~図10を参照して、制御システム1に含まれる装置のハードウェア構成について順に説明する。図8は、サポート装置300のハードウェア構成の一例を示す模式図である。図9は、HMI200のハードウェア構成の一例を示す模式図である。図10は、コントローラ100のハードウェア構成の一例を示す模式図である。
図8~図10を参照して、制御システム1に含まれる装置のハードウェア構成について順に説明する。図8は、サポート装置300のハードウェア構成の一例を示す模式図である。図9は、HMI200のハードウェア構成の一例を示す模式図である。図10は、コントローラ100のハードウェア構成の一例を示す模式図である。
(d1.サポート装置300のハードウェア構成)
サポート装置300は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。サポート装置300は、据え置き型でもよいし、コントローラ100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。図8を参照して、サポート装置300は、プロセッサ310と、入力部320と、表示部340と、揮発性メモリ350と、不揮発性メモリ370と、光学ドライブ392と、USB(Universal Serial Bus)コントローラ394とを含む。これらのコンポーネントは、プロセッサバス396を介して接続されている。
サポート装置300は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。サポート装置300は、据え置き型でもよいし、コントローラ100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。図8を参照して、サポート装置300は、プロセッサ310と、入力部320と、表示部340と、揮発性メモリ350と、不揮発性メモリ370と、光学ドライブ392と、USB(Universal Serial Bus)コントローラ394とを含む。これらのコンポーネントは、プロセッサバス396を介して接続されている。
プロセッサ310は、CPU(Central Processing Unit)やGPU(Graphical Processing Unit)などで構成され、不揮発性メモリ370に格納されたプログラムを読出して、揮発性メモリ350に展開して実行することで、制御プログラム120およびアプリケーション220の作成、デバッグ、並びにコントローラ100とHMI200との間の通信環境を設定するための機能をユーザに提供する。
揮発性メモリ350は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などで構成される。不揮発性メモリ370は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などで構成される。
不揮発性メモリ370は、基本的な機能を実現するためのOS(図示省略)に加えて、サポート装置300としての機能を提供するためのサポートプログラム372を格納する。サポートプログラム372は、制御プログラム120の開発環境を提供する制御プログラム用開発プログラム374と、アプリケーション220の開発環境を提供するアプリケーション用開発プログラム376と、コントローラ100とHMI200との間の通信環境を設定する環境を提供する通信設定プログラム378とを含む。
たとえば、プロセッサ310が、アプリケーション用開発プログラム376を実行することで、図7に示した開発手段360に係る機能が提供される。また、プロセッサ310が、通信設定プログラム378を実行することで、図7に示したグループ化手段20および生成手段40に係る機能が提供される。
なお、プロセッサ310がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
入力部320および表示部340は、図7を参照して説明した通りである。
サポート装置300は、光学ドライブ392を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体392A(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られて不揮発性メモリ370などにインストールされる。
サポート装置300は、光学ドライブ392を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体392A(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られて不揮発性メモリ370などにインストールされる。
サポート装置300で実行されるサポートプログラム372などは、コンピュータ読取可能な記録媒体392Aを介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置300が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
USBコントローラ394は、USB接続を介して、任意の情報処理装置との間のデータの遣り取りを担当する。具体的には、USBコントローラ394は、コントローラ100またはHMI200とのデータの遣り取りを担当する。
(d2.HMI200のハードウェア構成)
HMI200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。HMI200は、据え置き型でもよいし、コントローラ100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。図9を参照して、HMI200は、プロセッサ210と、タッチパネル240と、揮発性メモリ250と、不揮発性メモリ270と、通信IF292と、USBコントローラ294とを備える。これらのコンポーネントは、プロセッサバス296を介して接続されている。
HMI200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。HMI200は、据え置き型でもよいし、コントローラ100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。図9を参照して、HMI200は、プロセッサ210と、タッチパネル240と、揮発性メモリ250と、不揮発性メモリ270と、通信IF292と、USBコントローラ294とを備える。これらのコンポーネントは、プロセッサバス296を介して接続されている。
プロセッサ210は、CPUやGPUなどで構成され、不揮発性メモリ270に格納されたプログラムを読み出して、揮発性メモリ250に展開して実行することで、制御プログラム120の実行によって得られる各種情報をタッチパネル240に出力する。
揮発性メモリ250は、DRAMやSRAMなどで構成される。不揮発性メモリ270は、たとえば、HDDやSSDなどで構成される。
不揮発性メモリ270は、基本的な機能を実現するためのOS(図示省略)に加えて、OPC UAプログラム260と、1または複数のサブスクリプション64と、1または複数のアプリケーション220と、マッピング情報222とを格納する。
OPC UAプログラム260は、HMI200をサブスクライバーとして機能させるためのプログラムであって、コントローラ100とHMI200との間で、OPC UAに従った通信を行うためのプログラムである。プロセッサ210がOPC UAプログラム260を実行することで、図4に示したOPC UAクライアント60に係る機能が提供される。OPC UAプログラム260は、たとえば、他の外部記憶媒体(たとえばメモリカード、ネットワーク上のサーバ装置)から、不揮発性メモリ270にインストールされる。
1または複数のサブスクリプション64と、1または複数のアプリケーション220と、マッピング情報222とは、各々、サポート装置300が提供する環境下で作成される。サポート装置300が提供する環境下で作成された各データは、典型的には、USB接続を介して、不揮発性メモリ270にインストールされる。なお、サポート装置300が提供する環境下で作成された各データの全部または一部は、他の外部記憶媒体(たとえばメモリカード、ネットワーク上のサーバ装置)を介して、不揮発性メモリ270にインストールされてもよい。
なお、プロセッサ210がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。また、HMI200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
タッチパネル240は、ディスプレイである表示部242と、ユーザの操作を受け付ける入力部244とを備える。なお、表示部242と入力部244とが別体で構成されていてもよい。
通信IF292は、コントローラ100とのデータの遣り取りを担当する。USBコントローラ294は、USB接続を介して、任意の情報処理装置との間のデータの遣り取りを担当する。具体的には、USBコントローラ294は、サポート装置300との間でデータを遣り取りする。
(b3.コントローラ100のハードウェア構成)
図10を参照して、コントローラ100は、主たるコンポーネントとして、プロセッサ110と、チップセット196と、不揮発性メモリ170と、揮発性メモリ150と、制御系ネットワークIF191と、情報系ネットワークIF192と、USBコントローラ193と、メモリカードIF194と、内部バスコントローラ195とを含む。
図10を参照して、コントローラ100は、主たるコンポーネントとして、プロセッサ110と、チップセット196と、不揮発性メモリ170と、揮発性メモリ150と、制御系ネットワークIF191と、情報系ネットワークIF192と、USBコントローラ193と、メモリカードIF194と、内部バスコントローラ195とを含む。
プロセッサ110は、CPUやGPUなどで構成され、不揮発性メモリ170に格納された各種プログラムを読み出して、揮発性メモリ150に展開して実行することで、フィールドデバイス500の制御および、パブリッシャーとしての機能を実現する。チップセット196は、プロセッサ110と各コンポーネントとの間のデータの遣り取りを仲介することで、コントローラ100全体としての処理を実現する。
不揮発性メモリ170には、制御プログラム120と、OPC UAプログラム180と、通信設定400とが格納される。
制御プログラム120は、典型的には、ユーザがサポート装置300を操作して設計することで生成されるユーザプログラムと、コントローラ100の基本的な機能を提供するシステムプログラムとから構成される。ユーザプログラムとシステムプログラムとが協働してユーザにおける制御目的を実現することで、フィールドデバイス500が制御される。
OPC UAプログラム180は、コントローラ100をパブリッシャーとして機能させるためのプログラムであって、コントローラ100とHMI200との間で、OPC UAに従った通信を行うためのプログラムである。プロセッサ110が、OPC UAプログラム180を実行することで、図5に示したOPC UAサーバ80に係る機能が提供される。OPC UAプログラム180は、たとえば、システムプログラムの一種として予めコントローラ100にインストールされていてもよく、また、他の外部記憶媒体(たとえばメモリカード194A、ネットワーク上のサーバ装置)から、不揮発性メモリ170にインストールされてもよい。
通信設定400は、サポート装置300が提供する環境下で生成される。通信設定400および、ユーザがサポート装置300を操作して設計することで生成された制御プログラム120は、典型的には、USB接続を介して、不揮発性メモリ170にインストールされる。なお、サポート装置300が提供する環境下で作成された各データの全部または一部は、他の外部記憶媒体(たとえばメモリカード194A、ネットワーク上のサーバ装置)を介して、不揮発性メモリ170にインストールされてもよい。
なお、プロセッサ110がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。また、コントローラ100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
制御系ネットワークIF191は、フィールドデバイス500との間のデータの遣り取りを担当する。
情報系ネットワークIF192は、HMI200との間のデータの遣り取りを担当する。
USBコントローラ193は、USB接続を介して任意の情報処理装置との間のデータの遣り取りを担当する。具体的には、USBコントローラ193は、サポート装置300との間のデータの遣り取りを担当する。
メモリカードIF194は、メモリカード194Aを着脱可能に構成されており、メモリカード194Aに対して制御プログラムや各種設定などのデータを書込み、あるいは、メモリカード194Aから制御プログラムや各種設定などのデータを読出すことが可能になっている。
内部バスコントローラ195は、コントローラ100に搭載される図示しないI/Oユニットなどとの間でデータを遣り取りするインターフェイスである。内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
<E.グループ化の変形例>
実施の形態1において、HMI200は、一のコントローラ100と通信可能に接続されているものとした。また、1または複数のアプリケーション220に利用されるプロセスデータ52は、一のコントローラ100から送信されるものとした。その上で、グループ化手段20は、第1グループ化手段22と、第2グループ化手段24とを備えるものとして説明した。
実施の形態1において、HMI200は、一のコントローラ100と通信可能に接続されているものとした。また、1または複数のアプリケーション220に利用されるプロセスデータ52は、一のコントローラ100から送信されるものとした。その上で、グループ化手段20は、第1グループ化手段22と、第2グループ化手段24とを備えるものとして説明した。
なお、HMI200は、複数のコントローラ100と通信可能に接続されてもよい。この場合、1または複数のアプリケーション220は、互いに異なるコントローラ100から送信される複数のプロセスデータ52を利用するように構成されてもよい。また、この場合、グループ化手段20は、図7を参照して説明したグループ化の方法とは異なる方法でグループ化してもよい。
図11を参照して、アプリケーション220が、互いに異なるコントローラ100から送信される複数のプロセスデータ52を利用するように構成されている場合のアプリケーションの実行段階について説明する。図11は、変形例に係るアプリケーションの実行段階を説明するための図である。なお、図4を参照して説明した、実施の形態1にかかるHMI200が備える構成に相当する構成については、図4と共通の符号を付し、説明を省略する。
HMI200bは、複数のコントローラ100-1,100-2,100-3と通信可能に接続されている。HMI200bは、OPC UAクライアント60bを備える。OPC UAクライアント60bは、接続されたコントローラ100-1,100-2,100-3ごとに通信ドライバ66b-1、66b-2,66b-3を備える。
各サブスクリプション64bは、各サブスクリプション64bに含まれる購読対象のプロセスデータ52が互いに共通のコントローラ100が管理するように設定される。具体的には、サブスクリプション1に含まれるプロセスデータa,b,cは、いずれも、コントローラ100-1によって管理されるプロセスデータ52である。また、サブスクリプション2に含まれるプロセスデータl,m,nは、いずれも、コントローラ100-2によって管理されるプロセスデータ52である。また、サブスクリプション3に含まれるプロセスデータx,y,zは、いずれも、コントローラ100-3によって管理されるプロセスデータ52である。
アプリケーション1の実行に、プロセスデータa,b,cが利用される場合は、サブスクリプション1が購読対象となる。この場合、コントローラ100-1から送られるデータセット50のみが購読対象となり、コントローラ100-2、コントローラ100-3から送られるデータセット50は、購読対象とはならない。
図12を参照して、アプリケーション220が、互いに異なるコントローラ100から送信される複数のプロセスデータ52を利用するように構成されている場合の通信設定の生成方法について説明する。図12は、変形例に係るグループ化手段20bおよび生成手段40bの概略図である。なお、図7を参照して説明した、実施の形態1にかかるHMI200が備える構成に相当する構成については、図7と共通の符号を付し、説明を省略する。
グループ化手段20bは、第1グループ化手段22と第2グループ化手段24に加えて第3グループ化手段26を備える。グループ化手段20bは、第3グループ化手段26、第1グループ化手段22、第2グループ化手段24の順にグループ化を進める。
第3グループ化手段26は、アプリケーションで利用されるプロセスデータ52の各々についてプロセスデータ52を管理するコントローラ100毎にグループ分けする。図12に示す例では、プロセスデータa,b,cは、コントローラ100-1が管理するプロセスデータであり、プロセスデータl,m,nは、コントローラ100-2が管理するプロセスデータであり、プロセスデータx,y,zは、コントローラ100-3が管理するプロセスデータである。そのため、第3グループ化手段26は、プロセスデータa,b,cをグループGR1に割り当て、プロセスデータl,m,nをグループGR2に、プロセスデータx,y,zをグループGR3割り当てる。なお、プロセスデータ52を管理するコントローラ100は、各コントローラ100-1,100-2,100-3で実行される制御プログラム120から特定される。
その後、第1グループ化手段22は、第3グループ化手段26によって割り当てられた各グループをさらに、アプリケーション毎にグループ分けする。なお、第1グループ化手段22および第2グループ化手段24の実行内容は、図7と共通するため、説明を省略する。
生成手段40bは、コントローラ100-1,100-2,100-3ごとに通信設定400を生成する。コントローラ100-1の通信設定400-1は、第3グループ化手段26によってグループ化されたグループGR1から派生した各グループに含まれるプロセスデータ52が一のデータセット50に格納されるように生成される。同様に、コントローラ100-2の通信設定400-2は、第3グループ化手段26によってグループ化されたグループGR2から派生した各グループに含まれるプロセスデータ52が一のデータセット50に格納されるように生成される。コントローラ100-3の通信設定400-3は、第3グループ化手段26によってグループ化されたグループGR3から派生した各グループに含まれるプロセスデータ52が一のデータセット50に格納されるように生成される。
このように、アプリケーションに含まれる複数のプロセスデータ52の各々について、管理するコントローラ100が異なる場合は、コントローラごとに通信設定400を生成する必要がある。本変形例のように、複数のプロセスデータ52の各々について、当該プロセスデータ52を管理するコントローラ100ごとにグループ分けした上で、各グループについて通信設定400を生成することで、少ない処理で、複数のコントローラの各々についての通信設定を生成することができる。
また、実施の形態1および当該変形例にかかる制御システムは、アプリケーション220の実行に必要なプロセスデータ52がコントローラからHMIに向けて送信されるような通信設定400を容易に行うことができる。
また、実施の形態1および当該変形例において、サポート装置300は、アプリケーションの開発と通信設定とを一括で行うことができる。また、実施の形態1および当該変形例において、サポート装置300は、アプリケーションの開発環境と通信の設定環境とだけでなく、制御プログラムの開発環境も提供する。そのため、アプリケーションと制御プログラムとの関係性を考慮した通信設定の実現を容易にできる。
[実施の形態2]
実施の形態1において、通信設定400を生成するための環境は、アプリケーション220を生成するための環境と同じ、サポート装置300によって実現されるものとした。なお、通信設定400を生成するための環境は、アプリケーション220を生成するための環境とは別に設けても良い。具体的には、通信設定400を生成するための環境は、通信設定400を生成するための専用の設定機器によって実現されてもよい。
実施の形態1において、通信設定400を生成するための環境は、アプリケーション220を生成するための環境と同じ、サポート装置300によって実現されるものとした。なお、通信設定400を生成するための環境は、アプリケーション220を生成するための環境とは別に設けても良い。具体的には、通信設定400を生成するための環境は、通信設定400を生成するための専用の設定機器によって実現されてもよい。
<A.制御システムの構成>
図13は、実施の形態2に係る制御システム1cの概略を示す図である。図13を参照して、実施の形態2において、制御システム1cは、コントローラ100と、HMI200と、設定機器600とを含む。実施の形態1に係る制御システム1と、実施の形態2の制御システム1cとを比較すると、制御システム1cは、サポート装置300に代えて設定機器600を備える点で制御システム1と異なる。なお、HMI200には、既にアプリケーション220およびサブスクリプション64がインストールされているものとする。また、コントローラ100には、既に制御プログラム120がインストールされているものとする。
図13は、実施の形態2に係る制御システム1cの概略を示す図である。図13を参照して、実施の形態2において、制御システム1cは、コントローラ100と、HMI200と、設定機器600とを含む。実施の形態1に係る制御システム1と、実施の形態2の制御システム1cとを比較すると、制御システム1cは、サポート装置300に代えて設定機器600を備える点で制御システム1と異なる。なお、HMI200には、既にアプリケーション220およびサブスクリプション64がインストールされているものとする。また、コントローラ100には、既に制御プログラム120がインストールされているものとする。
設定機器600は、USB接続などを介してHMI200と通信可能に接続される。設定機器600は、HMI200にインストールされているサブスクリプション64をエクスポートする。設定機器600は、サブスクリプション64に基づいて、通信設定400を生成する。
設定機器600は、USB接続などを介してコントローラ100と通信可能に接続される。設定機器600は、サブスクリプション64に基づいて生成した通信設定400をコントローラ100に送信する。
これにより、コントローラ100とHMI200との間のPubSub通信が確立される。
より具体的には、設定機器600は、グループ化手段20cと、生成手段40cとを備える。グループ化手段20cは、HMI200からインストールした各サブスクリプション64から購読対象に規定されているプロセスデータ52を抽出する。抽出したプロセスデータ52をサブスクリプション64ごとにグループ分けする。なお、一のサブスクリプション64で規定される複数のプロセスデータ52は、少なくとも、互いに管理されるコントローラ100が共通しているものとする。
なお、グループ化手段20cは、サブスクリプション64ごとにグループ分けしなくともよく、上記実施の形態1および、実施の形態1の変形例に示した方法でグループ分けしてもよい。
生成手段40cは、グループ化手段20cの割り振り結果に従って通信設定400を生成する。なお、生成手段40cが通信設定400を生成する方法は、上記実施の形態1と共通するため、説明を省略する。生成手段40cは、生成した通信設定400を対応するコントローラ100に送信する。
<B.設定機器のハードウェア構成>
図14は、設定機器600のハードウェア構成の一例を示す模式図である。設定機器600は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。設定機器600は、据え置き型でもよいし、コントローラ100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。
図14は、設定機器600のハードウェア構成の一例を示す模式図である。設定機器600は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。設定機器600は、据え置き型でもよいし、コントローラ100が配置される製造現場では可搬性に優れたノート型のパーソナルコンピュータの形態で提供されてもよい。
図14を参照して、設定機器600は、プロセッサ610と、入力部620と、表示部640と、揮発性メモリ650と、不揮発性メモリ670と、USBコントローラ694とを含む。これらのコンポーネントは、プロセッサバス696を介して接続されている。
プロセッサ610は、CPUやGPUなどで構成され、不揮発性メモリ670に格納されたプログラムを読出して、揮発性メモリ650に展開して実行することで、コントローラ100とHMI200との間の通信環境を設定するための機能をユーザに提供する。
揮発性メモリ650は、DRAMやSRAMなどで構成される。不揮発性メモリ670は、例えば、HDDやSSDなどで構成される。
不揮発性メモリ670は、基本的な機能を実現するためのOSに加えて、コントローラ100とHMI200との間の通信環境を設定する環境を提供する通信設定プログラム678を格納する。
たとえば、プロセッサ610が、通信設定プログラム678を実行することで、上述した機能が提供される。なお、プロセッサ610がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
入力部620は、ユーザ操作を受け付ける。典型的には、入力部320は、タッチパネル、マウス、キーボードなどである。表示部640は、ユーザに情報を提示する。典型的には、表示部640は、ディスプレイである。
通信設定プログラム678などは、コンピュータ読取可能な記録媒体を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係る設定機器600が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
USBコントローラ694は、USB接続を介して、任意の情報処理装置との間のデータの遣り取りを担当する。具体的には、USBコントローラ694は、コントローラ100またはHMI200とのデータの遣り取りを担当する。
<C.制御システム1cの変形例>
実施の形態2に係る制御システム1cは、サブスクリプション64が既にHMI200にインストールされているものとして説明した。なお、設定機器600は、サブスクリプション64を生成する機能を有していても良い。すなわち、設定機器600は、HMI200からアプリケーション220およびマッピング情報222をエクスポートして、これらの情報に基づいてサブスクリプション64と通信設定400とを生成し、各々をHMI200とコントローラ100とにインストールするようにしてもよい。なお、設定機器600は、アプリケーション220およびマッピング情報222から、通信設定400を生成する機能のみを有していても良い。
実施の形態2に係る制御システム1cは、サブスクリプション64が既にHMI200にインストールされているものとして説明した。なお、設定機器600は、サブスクリプション64を生成する機能を有していても良い。すなわち、設定機器600は、HMI200からアプリケーション220およびマッピング情報222をエクスポートして、これらの情報に基づいてサブスクリプション64と通信設定400とを生成し、各々をHMI200とコントローラ100とにインストールするようにしてもよい。なお、設定機器600は、アプリケーション220およびマッピング情報222から、通信設定400を生成する機能のみを有していても良い。
このように、実施の形態2および当該変形例においては、設定機器600によって、HMI200とコントローラ100との間の通信環境の支援機能が提供される。この場合も、実施の形態1と同様、アプリケーション220の実行に必要なプロセスデータ52がコントローラ100からHMI200に向けて送信されるような通信設定400を容易に行うことができる。
また、設定機器600によって、HMI200とコントローラ100との間の通信環境の支援機能が提供されることで、既にアプリケーションの開発環境および制御プログラムの開発環境がある現場に、容易に導入することができる。
[実施の形態3]
実施の形態1および実施の形態2においては、HMI200とコントローラ100との通信を開始する前に、通信設定400を生成するものとした。なお、通信設定400は、HMI200とコントローラ100との通信を開始した後、サブスクライバーであるHMI200から購読要求がされるときに設定されるものであってもよい。実施の形態3は、HMI200から購読要求がされるときに通信設定400が設定される例を示す。
実施の形態1および実施の形態2においては、HMI200とコントローラ100との通信を開始する前に、通信設定400を生成するものとした。なお、通信設定400は、HMI200とコントローラ100との通信を開始した後、サブスクライバーであるHMI200から購読要求がされるときに設定されるものであってもよい。実施の形態3は、HMI200から購読要求がされるときに通信設定400が設定される例を示す。
<A.制御システム1dの構成>
図15は、実施の形態3に係る制御システム1dの概略を示す図である。図15を参照して、制御システム1dは、コントローラ100dと、HMI200と、中継装置700とを備える。実施の形態1に係る制御システム1と、実施の形態3の制御システム1dとを比較すると、制御システム1dは、コントローラ100に代えてコントローラ100dを備える点、および、サポート装置300に代えて中継装置700を備える点で制御システム1と異なる。なお、HMI200には、既にアプリケーション220およびサブスクリプション64がインストールされているものとする。また、コントローラ100dには、既に制御プログラム120がインストールされているものとする。
図15は、実施の形態3に係る制御システム1dの概略を示す図である。図15を参照して、制御システム1dは、コントローラ100dと、HMI200と、中継装置700とを備える。実施の形態1に係る制御システム1と、実施の形態3の制御システム1dとを比較すると、制御システム1dは、コントローラ100に代えてコントローラ100dを備える点、および、サポート装置300に代えて中継装置700を備える点で制御システム1と異なる。なお、HMI200には、既にアプリケーション220およびサブスクリプション64がインストールされているものとする。また、コントローラ100dには、既に制御プログラム120がインストールされているものとする。
中継装置700は、グループ化手段20dと、生成手段40dとに加えて、送受信管理手段70およびプロセスデータ管理手段72を備える。
送受信管理手段70は、HMI200からの購読要求を受けて、要求を満たすように、コントローラ100dから配信されるデータセット50をHMI200に送信する。具体的には、送受信管理手段70は、HMI200のサブスクリプション64とコントローラ100dから配信されるデータセット50とを対応付けたトピックリスト74を参照することで、コントローラ100dから配信される複数種類のデータセット50の中から、購読要求を満たすデータセット50を選択してHMI200に送信する。
送受信管理手段70は、トピックリスト74を参照して、HMI200からの購読要求を満たすことができないと判定した場合、グループ化手段20dおよび生成手段40dに対して、HMI200の購読要求を満たすデータセット50をコントローラ100dから配信されるように通信設定400を生成するための処理の実行を要求する。
グループ化手段20dは、プロセスデータ52と、プロセスデータ52を配信するコントローラ100dとの対応関係を規定するプロセスデータリスト76を参照して、HMI200からのサブスクリプション64に含まれる1または複数のプロセスデータ52を1または複数のグループに割り振る。なお、実施の形態3においては、HMI200と通信可能に接続されているコントローラ100dは1つである例を示しているが、HMI200と通信可能に複数のコントローラが接続されている場合、グループ化手段20dは、少なくとも、プロセスデータ52をコントローラごとに振り分ける。
プロセスデータリスト76は、プロセスデータ管理手段72によって管理される。プロセスデータ管理手段72は、中継装置700とコントローラ100dとの通信が確立すると、コントローラ100dに対して、管理しているプロセスデータ52を示す情報の送信を要求する。プロセスデータ管理手段72は、プロセスデータ52を示す情報(図15中のプロセスデータ情報)を受けて、コントローラ100dとコントローラ100dが管理するプロセスデータ52との対応関係が、プロセスデータリスト76に登録されているか否かを確認し、登録されていなければ、コントローラ100dとコントローラ100dが管理するプロセスデータ52との対応関係をプロセスデータリスト76に登録する。
グループ化手段20dは、たとえば、一のグループに含まれるプロセスデータの合計がコントローラ100dの通信性能を超えない範囲となるようにサブスクリプション64に含まれる1または複数のプロセスデータ52を1または複数のグループに割り振る。
生成手段40dは、振り分け結果に従い一のデータセット50に格納するプロセスデータ52の組み合わせを規定する。生成手段40dは、コントローラ100dに向けて、規定したプロセスデータ52の組み合わせを一のデータセット50に格納して送信するようにコントローラ100dに要求する。
また、生成手段40dは、送受信管理手段70に規定した結果を通知する。送受信管理手段70は、HMI200のサブスクリプション64に対して生成手段40dが規定した結果を対応付けてトピックリスト74に登録する。
中継装置700は、新たな購読要求がされる度に、データセット50を新たに規定する。コントローラ100dは、新たに規定されたデータセット50を送信するように通信設定400を更新する。また、中継装置700は、データセット50を新たに規定すると、トピックリスト74を更新する。また、中継装置700は、新たにコントローラが接続されると、プロセスデータリスト76を更新する。
<B.シーケンス>
図16は、中継装置700とコントローラ100dとの通信が開始してから、通信設定400がコントローラ100dに送られるまでの流れを示すシーケンス図である。なお、以下では「ステップ」を単に「S」と示す。
図16は、中継装置700とコントローラ100dとの通信が開始してから、通信設定400がコントローラ100dに送られるまでの流れを示すシーケンス図である。なお、以下では「ステップ」を単に「S」と示す。
S120において、中継装置700とコントローラ100dとがネットワーク接続されたものとする。
S122において、中継装置700は、コントローラ100に向けてプロセスデータ52の登録を要求する。
S124において、コントローラ100dは、要求を受けて、プロセスデータ52を登録する。
S126において、中継装置700は、プロセスデータリスト76を更新する。
中継装置700は、HMI200から購読要求がされると(S128)、HMI200にデータセットを送信するための処理(S150)を開始する。
中継装置700は、HMI200から購読要求がされると(S128)、HMI200にデータセットを送信するための処理(S150)を開始する。
S152において、中継装置700は、サブスクリプション64に含まれるプロセスデータ52を、プロセスデータリスト76に従って、1または複数のグループに割り振る。
たとえば、サブスクリプション64に含まれるプロセスデータ52は、コントローラ100dで更新される周期ごとに割り振られる。また、サブスクリプション64に含まれるプロセスデータ52は、一のグループに含まれるプロセスデータの合計がコントローラ100dの通信性能を超えない範囲となるように割り振られる。
S154において、中継装置700は、振り分け結果に従い一のデータセット50に格納するプロセスデータ52の組み合わせを規定する。
S156において、中継装置700は、トピックリスト74を更新する。S158において、S154において生成したデータセットを送信するようにコントローラ100に要求する。このデータセットの送信要求が通信設定400に相当する。
コントローラ100dは、要求に応じて通信設定400を更新する(S160)。コントローラ100dは、更新した通信設定400に従ってデータセットを生成して送信する(S162,S164)。
S166において、中継装置700は、送られたデータセット50を送信するHMI200をトピックリスト74に従って特定する。S168において、中継装置700は、特定した送信先(HMI200)にデータセットを送信する。
その後、HMI200から購読要求の停止がされると(S170)、中継装置700は、トピックリスト74を更新して(S172)、コントローラ100dから送られるデータセットのHMI200への送信を停止する。これにより、中継装置700の一の購読要求に対してデータセットを送信する処理(S150)が終了する。
なお、コントローラ100dは、HMI200から購読要求の停止がされても、継続してプロセスデータを送信し続けるものとする。
なお、中継装置700は、購読要求がされる度にトピックリスト74を参照して、サブスクリプション64により規定される購読対象のプロセスデータ52が配信されているか否かを判定する。たとえば、トピックリスト74には、サブスクリプション64ごとに、サブスクリプション64が規定する購読要求を満たすためのデータセットの組み合わせが規定されている。中継装置700は、トピックリスト74を参照して、購読要求がされたサブスクリプション64がトピックリスト74に登録されているか否かを判定する。
トピックリスト74に購読要求がされたサブスクリプション64が登録されている場合、中継装置700は、購読要求をしたHMI200に向けて、購読要求がされたサブスクリプション64が規定する購読要求を満たすための1または複数種類のデータセットを送信するように、トピックリスト74を更新する。
トピックリスト74に購読要求がされたサブスクリプション64が登録されていない場合、中継装置700は、トピックリスト74に登録されているデータセットのうち、購読要求がされたサブスクリプション64により規定される購読対象のプロセスデータ52を含むデータセットを特定する。そして、中継装置700は、特定したデータセットに含まれるプロセスデータ52をサブスクリプション64から除外して、グループ化およびデータセットの規定をし、規定したデータセット50の生成および送信をコントローラ100dに要求するとともに、トピックリスト74を更新する。
具体的には、トピックリスト74にプロセスデータa,bから構成されたデータセット1と、プロセスデータa,fから構成されたデータセット2とが、既に登録されているものとする。この場合に、新たに要求されたサブスクリプション64に含まれるプロセスデータがプロセスデータa,b,c,dであったとする。このとき、中継装置700は、要求されたサブスクリプション64とデータセット1とを対応付けてトピックリスト74に登録する。また、プロセスデータc、dを、グループ化およびデータセットの生成の対象とする。たとえば、プロセスデータc、dを一のデータセット3として生成することが決定された場合、中継装置700は、要求されたサブスクリプション64とデータセット3とを対応付けてトピックリスト74に登録する。
これにより、要求されたサブスクリプション64に対して、データセット1およびデータセット3が対応付けられてトピックリスト74に登録されたこととなる。中継装置700は、トピックリスト74を参照して、サブスクリプション64を要求したHMI200に向けてデータセット1およびデータセット3を配信する。
すなわち、中継装置700は、新たにサブスクリプション64が要求される度に、トピックリスト74を更新することで、要求を満たすようにデータセットをHMI200に向けて配信することができる。
<C.中継装置のハードウェア構成>
図17は、中継装置700のハードウェア構成の一例を示す模式図である。図17を参照して、中継装置700は、プロセッサ710と、揮発性メモリ750と、不揮発性メモリ770と、通信IF794とを含む。これらのコンポーネントは、プロセッサバス796を介して接続されている。
図17は、中継装置700のハードウェア構成の一例を示す模式図である。図17を参照して、中継装置700は、プロセッサ710と、揮発性メモリ750と、不揮発性メモリ770と、通信IF794とを含む。これらのコンポーネントは、プロセッサバス796を介して接続されている。
プロセッサ710は、CPUやGPUなどで構成され、不揮発性メモリ770に格納されたプログラムを読出して、揮発性メモリ750に展開して実行することで、コントローラ100とHMI200との間の通信を中継する機能を提供する。
揮発性メモリ750は、DRAMやSRAMなどで構成される。不揮発性メモリ770は、例えば、HDDやSSDなどで構成される。
不揮発性メモリ770は、基本的な機能を実現するためのOSに加えて、コントローラ100とHMI200との間の通信環境を設定する環境を提供する通信設定プログラム778と、コントローラ100とHMI200との間の通信を中継するための各種リストを管理してPubSub通信を実現するPubSubプログラム772と、トピックリスト74と、プロセスデータリスト76とを含む。
たとえば、プロセッサ710が、通信設定プログラム778を実行することで、図15に示すグループ化手段20dおよび生成手段40dの機能が提供される。また、プロセッサ710が、PubSubプログラム772を実行することで、図15に示す送受信管理手段70およびプロセスデータ管理手段72の機能が提供される。なお、プロセッサ710がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
不揮発性メモリ770に格納された各種プログラムは、コンピュータ読取可能な記録媒体を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係る中継装置700が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
通信IF794は、コントローラ100dとのデータの遣り取り、および、HMI200とのデータの遣り取りを担当する。
<D.変形例>
なお、実施の形態3において、サブスクリプション64が予めHMI200にインストールされている例を示した。なお、HMI200は、実行対象のアプリケーション220に利用するプロセスデータ52を特定できればよく、サブスクリプション64による管理に限定されるものではない。
なお、実施の形態3において、サブスクリプション64が予めHMI200にインストールされている例を示した。なお、HMI200は、実行対象のアプリケーション220に利用するプロセスデータ52を特定できればよく、サブスクリプション64による管理に限定されるものではない。
また、実施の形態3において、中継装置700を介してHMI200とコントローラ100dとは1対1で接続されている例を示したが、中継装置700を介して、複数のHMI200と、複数のコントローラ100dとが通信可能に接続されていてもよい。
また、中継装置700が、コントローラ100dが送信したデータセット50を中継してHMI200に送信する例を示したが、中継装置700が、コントローラ100dから送信されたデータセット50に含まれるプロセスデータ52を抽出し、再度新たなデータセットを生成してHMI200に送信する構成であってもよい。この場合、中継装置700は、中継装置700からHMI200に向けて送信するデータセットに含まれるプロセスデータ52を特定可能な情報を予めHMI200に向けて通知したり、あるいは、データセットのヘッダに書き込んだりする。
このように、実施の形態3および当該変形例においては、中継装置700によって、HMI200とコントローラ100dとの間の通信環境の支援機能が提供される。この場合も、実施の形態1と同様、アプリケーション220の実行に必要なプロセスデータ52がコントローラからHMIに向けて送信されるような通信設定400を容易に行うことができる。
また、中継装置700によって、HMI200とコントローラ100dとの間の通信環境の支援機能が提供されることで、コントローラ100dに予め通信設定400をインストールすることなくHMI200とコントローラ100dとの間のデータの遣り取りを実現することができる。また、HMI200とコントローラ100dから構成されたネットワーク内に新たなHMIまたはコントローラが加入したり、または離脱したりした場合であっても、既存のHMIとコントローラとの間の通信を止めることなく、このような加入、離脱に対応した通信設定400を行うことができる。
[実施の形態4]
上記実施の形態1~3において、情報系ネットワーク2は、OPC UAに従ったネットワークであるとした。なお、情報系ネットワーク2が、EtherNET/IP(登録商標)に従ったネットワークであったとしても、HMIとコントローラとの間のデータリンクが必要である。データリンクを設定することをコネクションを貼るともいう。実施の形態4においては、情報系ネットワーク2の変わりにEtherNET/IP(登録商標)に従ったネットワークを利用した場合の通信設定について説明する。
上記実施の形態1~3において、情報系ネットワーク2は、OPC UAに従ったネットワークであるとした。なお、情報系ネットワーク2が、EtherNET/IP(登録商標)に従ったネットワークであったとしても、HMIとコントローラとの間のデータリンクが必要である。データリンクを設定することをコネクションを貼るともいう。実施の形態4においては、情報系ネットワーク2の変わりにEtherNET/IP(登録商標)に従ったネットワークを利用した場合の通信設定について説明する。
<A.制御システム1eの構成>
図18は、実施の形態4に係る制御システム1eの概略を示す図である。図18を参照して、制御システム1eは、コントローラ100eと、複数のHMI200e-1,200e-3,200e-3(以下、総じてHMI200eとも称する)と、設定機器600eとを含む。
図18は、実施の形態4に係る制御システム1eの概略を示す図である。図18を参照して、制御システム1eは、コントローラ100eと、複数のHMI200e-1,200e-3,200e-3(以下、総じてHMI200eとも称する)と、設定機器600eとを含む。
コントローラ100eと、複数のHMI200eとは、EtherNET/IPに従った情報系ネットワーク2eによって、互いに通信可能に接続されている。
なお、図18に示す例では、設定機器600eを介して、HMI200e-3と、コントローラ100eとの間のデータリンクの設定が行われて、コネクション3が貼られる様子を示している。
設定機器600eは、グループ化手段20eと、生成手段40eとを備える。設定機器600eは、HMI200e-3の備えるアプリケーション220を参照して、アプリケーション220において利用される複数のプロセスデータ52を特定する。
グループ化手段20eは、特定した複数のプロセスデータ52を1または複数のグループに振り分ける。振り分け方は、実施の形態1~3において説明した観点と同様の観点で振り分けることができる。
生成手段40eは、割り振り結果に従って、一のグループに含まれるプロセスデータ52が一のデータセット50に格納されるように、通信設定400を設定する。通信設定400は、実施の形態1において説明したデータセット設定420(一のデータセット50に格納されるプロセスデータ52を規定する情報)と、生成条件440(データセット50を生成する条件を規定する情報)とに加えて、プロセスデータ52が格納される順序を規定する格納情報460を含む。
また、生成手段40eは、データセット50ごとに、いずれの場所に、いずれのプロセスデータ52が格納されるかを特定可能なコネクション情報480を生成する。
設定機器600eは、コネクション情報480をHMI200e-3へ、通信設定400をコントローラ100eへ各々インストールする。設定機器600eは、コネクション情報480および通信設定400をアプリケーション220ごとに作成してもよく、また、複数のアプリケーション220に対して一つ作成されるようにしてもよい。また、設定機器600eは、コネクション情報480をHMI200e-3へ、通信設定400をコントローラ100eへ各々インストールするものとしたが、これらの情報をレポートとして出力してもよい。
設定機器600eは、HMI200e-1,200e-2,200e-3の各々について、通信設定400およびコネクション情報480を生成する。設定機器600eが生成した通信設定400をコントローラ100eに、コネクション情報480をHMI200e-1,200e-2,200e-3の各々にインストールすることで、コネクション1~3が貼られることとなる。
また、一のHMI200eにおいて実行されるアプリケーション220に利用される複数のプロセスデータ52の各々が別々のコントローラ100eによって管理される場合、コントローラ100eごとにコネクション情報480および通信設定400が生成される。
<B.データセット50のデータ構造およびコネクション情報480>
図19および図20を参照して、コントローラ100eが生成するデータセット50のデータ構造および、HMI200eがデータセット50を解釈するために参照するコネクション情報480について説明する。
図19および図20を参照して、コントローラ100eが生成するデータセット50のデータ構造および、HMI200eがデータセット50を解釈するために参照するコネクション情報480について説明する。
図19は、データセット50のデータ構造の一例を示す図である。図20は、コネクション情報480を説明するための図である。
図19を参照して、各データセット50には、ConnectionID56が付されている。また、データセット50は、複数の格納部580から構成された格納領域58を有する。各格納部580にはシーケンスナンバー582が割り振られており、各格納部580にプロセスデータ52が格納される。
図20を参照して、コネクション情報480は、各格納部580にいずれのプロセスデータが格納されるかを示す情報である。具体的には、コネクション情報480は、ConnectionIDごとに、シーケンスナンバーと、当該シーケンスナンバーの格納部に格納されるプロセスデータの種類とを対応付けた情報である。
HMI200は、コネクション情報480に基づいて、コントローラ100eから送られたデータセット50を解釈してプロセスデータ52を抽出し、アプリケーション220を実行する。
<C.変形例>
なお、コネクションを貼る方法は、設定機器600eを利用した方法に限られない。上記実施の形態1および3に示すように、サポート装置や中継装置を利用してHMIとコントローラとの間のコネクションを貼っても良い。
なお、コネクションを貼る方法は、設定機器600eを利用した方法に限られない。上記実施の形態1および3に示すように、サポート装置や中継装置を利用してHMIとコントローラとの間のコネクションを貼っても良い。
このように、実施の形態4および当該変形例においては、HMIとコントローラとの間のコネクションが実行されるアプリケーションに基づいて自動で貼られるため、アプリケーション220の実行に必要なプロセスデータ52がコントローラからHMIに向けて送信されるような通信設定400を容易に行うことができる。また、コントローラからHMIに向けて送られるデータは、アプリケーションに必要なプロセスデータに限定されるため、不要なデータを送付する必要がない。
また、実施の形態4および当該変形例においては、設定機器600eが格納情報460を生成するため、コントローラ100eはデータセット50を生成する度に格納順序を決定する必要がなく、コントローラ100eのデータセット50を生成する処理負担を軽減することができる。また、格納情報460に相当するコネクション情報480がHMI200に送付されるため、コントローラ100eとHMI200との間のデータリンクを容易に構築することができる。
[その他の変形例]
上記実施の形態1~4においては、HMIがサブスクライバーの機能を有し、コントローラがパブリッシャーの機能を有しているものとして説明した。上記実施の形態1~4に示した各制御システムは、予め定められたHMIの通信設定に従ってHMIからコントローラに向けて情報を配信する構成を備えていてもよい。この場合においても、上記実施の形態1~4と同様に、HMIが配信する情報を生成するための通信設定が制御プログラムに応じて生成されてもよい。
上記実施の形態1~4においては、HMIがサブスクライバーの機能を有し、コントローラがパブリッシャーの機能を有しているものとして説明した。上記実施の形態1~4に示した各制御システムは、予め定められたHMIの通信設定に従ってHMIからコントローラに向けて情報を配信する構成を備えていてもよい。この場合においても、上記実施の形態1~4と同様に、HMIが配信する情報を生成するための通信設定が制御プログラムに応じて生成されてもよい。
図21は、変形例における制御システム1fの概略を示す模式図である。図21においては、実施の形態1~4において説明したコントローラからHMIに向けた情報の配信に関する内容を省略している。
図21を参照して、制御システム1fは、複数のコントローラ100fと、複数のHMI200fと、グループ化手段20fと、生成手段40fとを備える。図21においては、各コントローラ100fに接続されたフィールドデバイス500の表示は省略している。
HMI200fは、アプリケーション220において参照または更新されるアプリケーションデータ2052を予め定められた通信設定800に従い一または複数種類のアプリケーションデータセット2050に格納して配信する。
アプリケーションデータ2052は、たとえば、プロセスデータ52、アプリケーション220の実行結果として出力されるデータ、ユーザの操作に従い入力されたコントローラ100fを制御するための制御値などを含む。
HMI200fからコントローラ100fへのアプリケーションデータセット2050の配信は、たとえば、ユーザがHMI200fを操作してコントローラ100fを制御するとき、送られたプロセスデータ52をコントローラ100fに返すときなどに行われる。
コントローラ100fは、予め指定されたアプリケーションデータ2052を利用して、制御プログラム120を実行する。ここで、アプリケーションデータ2052は、コントローラ100fの観点でみるとプロセスデータに相当し、プロセスデータのうち、HMI200から配信されたデータに相当する。
制御プログラム120は、たとえば、図2を参照して説明したサポート装置300が提供する開発環境のもとで作成される。
グループ化手段20fは、制御プログラム120おいて利用することが指定されているアプリケーションデータ2052について、各アプリケーションデータ2052を1または複数のグループに割り当てる。グループ化の方法は、上記実施の形態において説明した方法を利用可能である。また、グループ化手段20fは、複数のコントローラ100fの各制御プログラム120からアプリケーションデータ2052を取得し、取得したアプリケーションデータ2052をグループ化してもよい。
生成手段40fは、グループ化手段20fの割り当て結果に従って、グループ化手段20fがグループ化した複数のグループGR1,GR2…の各々について、当該グループに割り当てられたアプリケーションデータ2052が一のアプリケーションデータセット2050に格納されて送信されるように、通信設定800を生成する。
すなわち、制御プログラム120の実行にアプリケーションデータ2052を利用する場合に、制御プログラム120に応じて、当該制御プログラム120の実行に必要なアプリケーションデータ2052がHMI200fからコントローラ100fに向けて送信されるような通信設定800を用意に行うことができる。
図21には示していないものの、グループ化手段20fおよび生成手段40fは、コントローラ100fの通信設定400を作成してもよい。
グループ化手段20fおよび生成手段40fは、実施の形態1~3に示したサポート装置、設定装置、中継装置によって実現可能である。
また、HMI200fとコントローラ100fとの通信は、OPC UAに限定されるものではなく、実施の形態4に示したように、EtherNET/IP(登録商標)に従った通信であってもよい。
§3 付記
以上のように、上記の実施の形態1~3よび変形例は以下のような開示を含む。
以上のように、上記の実施の形態1~3よび変形例は以下のような開示を含む。
<構成1>
制御対象(500)を制御するための制御プログラム(120)を実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータ(52)を管理する制御装置(100,100a,100d,100e,100f)を備え、前記制御装置は、予め定められた通信設定(400)に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセット(50)を送信するように構成されており、
前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーション(220)を実行する情報処理装置(200,200a,200b,200e,200f)と、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段(20,20a,20b,20c,20d,20e,20f)と、
前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成手段(40,40a,40b,40c,40d,40e,40f)とを備える、制御システム。
制御対象(500)を制御するための制御プログラム(120)を実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータ(52)を管理する制御装置(100,100a,100d,100e,100f)を備え、前記制御装置は、予め定められた通信設定(400)に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセット(50)を送信するように構成されており、
前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーション(220)を実行する情報処理装置(200,200a,200b,200e,200f)と、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段(20,20a,20b,20c,20d,20e,20f)と、
前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成手段(40,40a,40b,40c,40d,40e,40f)とを備える、制御システム。
<構成2>
前記通信設定は、各データセットに格納されるべき1または複数のプロセスデータを特定するための情報(420)を含む、構成1に記載の制御システム。
前記通信設定は、各データセットに格納されるべき1または複数のプロセスデータを特定するための情報(420)を含む、構成1に記載の制御システム。
<構成3>
前記通信設定は、各データセットにおける1または複数のプロセスデータの格納順序を特定するための情報(460)を含む、構成1または2に記載の制御システム。
前記通信設定は、各データセットにおける1または複数のプロセスデータの格納順序を特定するための情報(460)を含む、構成1または2に記載の制御システム。
<構成4>
前記1または複数のアプリケーションの開発環境を提供するサポート装置(300)をさらに備え、
前記サポート装置は、前記グループ化手段(20,20b)および前記生成手段(40,40b)を含む、構成1~構成3のうちいずれかに記載の制御システム。
前記1または複数のアプリケーションの開発環境を提供するサポート装置(300)をさらに備え、
前記サポート装置は、前記グループ化手段(20,20b)および前記生成手段(40,40b)を含む、構成1~構成3のうちいずれかに記載の制御システム。
<構成5>
前記制御装置と前記情報処理装置との間の通信を中継する中継装置(700)をさらに備え、
前記中継装置は、前記グループ化手段(20d)および前記生成手段(40d)を含む、構成1~構成3のうちいずれかに記載の制御システム。
前記制御装置と前記情報処理装置との間の通信を中継する中継装置(700)をさらに備え、
前記中継装置は、前記グループ化手段(20d)および前記生成手段(40d)を含む、構成1~構成3のうちいずれかに記載の制御システム。
<構成6>
前記情報処理装置(200f)は、
前記1または複数のアプリケーションにおいて参照または更新される複数のアプリケーションデータ(2052)を管理し、
予め定められた情報処理装置の通信設定(800)に従って、前記複数のアプリケーションデータの少なくとも一部を格納した1または複数種類のアプリケーションデータセット(2050)を送信し、
前記制御装置(100f)は、前記アプリケーションデータセットを利用することで、前記複数のアプリケーションデータのうち指定された1または複数のアプリケーションデータを利用して前記制御プログラムを実行可能であり、
前記グループ化手段(20f)は、前記制御プログラムにおいて利用することが指定されている前記1または複数のアプリケーションデータの各々を1または複数の制御プログラムグループに割り当て、
前記生成手段(40f)は、前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数の制御プログラムグループの各々について、当該グループに割り当てられた1または複数のアプリケーションデータが一のアプリケーションデータセットに格納されて送信されるように、前記情報処理装置の通信設定を生成する、構成1~構成5のうちいずれかに記載の制御システム。
前記情報処理装置(200f)は、
前記1または複数のアプリケーションにおいて参照または更新される複数のアプリケーションデータ(2052)を管理し、
予め定められた情報処理装置の通信設定(800)に従って、前記複数のアプリケーションデータの少なくとも一部を格納した1または複数種類のアプリケーションデータセット(2050)を送信し、
前記制御装置(100f)は、前記アプリケーションデータセットを利用することで、前記複数のアプリケーションデータのうち指定された1または複数のアプリケーションデータを利用して前記制御プログラムを実行可能であり、
前記グループ化手段(20f)は、前記制御プログラムにおいて利用することが指定されている前記1または複数のアプリケーションデータの各々を1または複数の制御プログラムグループに割り当て、
前記生成手段(40f)は、前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数の制御プログラムグループの各々について、当該グループに割り当てられた1または複数のアプリケーションデータが一のアプリケーションデータセットに格納されて送信されるように、前記情報処理装置の通信設定を生成する、構成1~構成5のうちいずれかに記載の制御システム。
<構成7>
制御対象(500)を制御するための制御プログラム(120)を実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータ(52)を管理する制御装置(100,100e)と、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーション(220)を実行する情報処理装置(200,200b,200e)との間の通信環境の設定を支援するサポート装置(300,600,600e)であって、
前記制御装置は、予め定められた通信設定(400)に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセット(50)を送信するように構成されており、
前記情報処理装置は、前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記1または複数のアプリケーションを実行するように構成されており、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段(20,20b,20c,20e)と、
前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成手段(40,40b,40c,40e)とを備える、サポート装置。
制御対象(500)を制御するための制御プログラム(120)を実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータ(52)を管理する制御装置(100,100e)と、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーション(220)を実行する情報処理装置(200,200b,200e)との間の通信環境の設定を支援するサポート装置(300,600,600e)であって、
前記制御装置は、予め定められた通信設定(400)に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセット(50)を送信するように構成されており、
前記情報処理装置は、前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記1または複数のアプリケーションを実行するように構成されており、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段(20,20b,20c,20e)と、
前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成手段(40,40b,40c,40e)とを備える、サポート装置。
<構成8>
制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御装置と、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置との間の通信環境の設定を支援するサポートプログラム(378,678,778)であって、
前記制御装置は、予め定められた通信設定(400)に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセット(50)を送信するように構成されており、
前記情報処理装置は、前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記1または複数のアプリケーションを実行するように構成されており、
前記サポートプログラムは、コンピュータ(300,600,600e,700)に、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化ステップ(Step2)と、
前記グループ化ステップにおいて割り当てられた結果に従って、前記グループ化ステップにおいてグループ化された前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成ステップ(Step3)とを実行させる、サポートプログラム。
制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御装置と、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置との間の通信環境の設定を支援するサポートプログラム(378,678,778)であって、
前記制御装置は、予め定められた通信設定(400)に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセット(50)を送信するように構成されており、
前記情報処理装置は、前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記1または複数のアプリケーションを実行するように構成されており、
前記サポートプログラムは、コンピュータ(300,600,600e,700)に、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化ステップ(Step2)と、
前記グループ化ステップにおいて割り当てられた結果に従って、前記グループ化ステップにおいてグループ化された前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成ステップ(Step3)とを実行させる、サポートプログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
1,1a,1c,1d,1e,1f 制御システム、2,2a,2e 情報系ネットワーク、4 制御系ネットワーク、10a FAシステム、20,20a,20b,20c,20d,20e,20f グループ化手段、22 第1グループ化手段、24 第2グループ化手段、26 第3グループ化手段、40,40a,40b,40c,40d,40e,40f 生成手段、42 データセット設定生成手段、44 生成条件生成手段、50 データセット、52 プロセスデータ、54 オブジェクト、56 ConnectionID、58 格納領域、60,60b OPC UAクライアント、62 購読管理手段、64,64b サブスクリプション、66,66b,84 通信ドライバ、70 送受信管理手段、72 プロセスデータ管理手段、74 トピックリスト、76 プロセスデータリスト、80 OPC UAサーバ、82 データセット生成手段、100,100a,100d,100e,100f コントローラ、110,210,310,610,710 プロセッサ、120 制御プログラム、146,193,294,394,694 USBコントローラ、150,250,350,650,750 揮発性メモリ、170,270,370,670,770 不揮発性メモリ、180,260 OPC UAプログラム、191 制御系ネットワークIF、192 情報系ネットワークIF、194 メモリカードIF、194A メモリカード、195 内部バスコントローラ、196 チップセット、200,200a,200b,200e,200f HMI、220 アプリケーション、222 マッピング情報、240 タッチパネル、242,340,640 表示部、244,320,620 入力部、292,792 通信IF、296,396,696 プロセッサバス、300 サポート装置、360 開発手段、372 サポートプログラム、374 制御プログラム用開発プログラム、376 アプリケーション用開発プログラム、378,678,778 通信設定プログラム、392 光学ドライブ、392A 記録媒体、400,800 通信設定、420 データセット設定、440 生成条件、460 格納情報、480 コネクション情報、500 フィールドデバイス、580 格納部、582 シーケンスナンバー、600,600e 設定機器、700 中継装置、772 PubSubプログラム、2050 アプリケーションデータセット、2052 アプリケーションデータ。
Claims (8)
- 制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御装置を備え、前記制御装置は、予め定められた通信設定に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されており、
前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置と、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段と、
前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成手段とを備える、制御システム。 - 前記通信設定は、各データセットに格納されるべき1または複数のプロセスデータを特定するための情報を含む、請求項1に記載の制御システム。
- 前記通信設定は、各データセットにおける1または複数のプロセスデータの格納順序を特定するための情報を含む、請求項1または2に記載の制御システム。
- 前記1または複数のアプリケーションの開発環境を提供するサポート装置をさらに備え、
前記サポート装置は、前記グループ化手段および前記生成手段を含む、請求項1~請求項3のうちいずれかに記載の制御システム。 - 前記制御装置と前記情報処理装置との間の通信を中継する中継装置をさらに備え、
前記中継装置は、前記グループ化手段および前記生成手段を含む、請求項1~請求項3のうちいずれかに記載の制御システム。 - 前記情報処理装置は、
前記1または複数のアプリケーションにおいて参照または更新される複数のアプリケーションデータを管理し、
予め定められた情報処理装置の通信設定に従って、前記複数のアプリケーションデータの少なくとも一部を格納した1または複数種類のアプリケーションデータセットを送信し、
前記制御装置は、前記アプリケーションデータセットを利用することで、前記複数のアプリケーションデータのうち指定された1または複数のアプリケーションデータを利用して前記制御プログラムを実行可能であり、
前記グループ化手段は、前記制御プログラムにおいて利用することが指定されている前記1または複数のアプリケーションデータの各々を1または複数の制御プログラムグループに割り当て、
前記生成手段は、前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数の制御プログラムグループの各々について、当該制御プログラムグループに割り当てられた1または複数のアプリケーションデータが一のアプリケーションデータセットに格納されて送信されるように、前記情報処理装置の通信設定を生成する、請求項1~請求項5のうちいずれかに記載の制御システム。 - 制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御装置と、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置との間の通信環境の設定を支援するサポート装置であって、
前記制御装置は、予め定められた通信設定に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されており、
前記情報処理装置は、前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記1または複数のアプリケーションを実行するように構成されており、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化手段と、
前記グループ化手段の割り当て結果に従って、前記グループ化手段がグループ化した前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成手段とを備える、サポート装置。 - 制御対象を制御するための制御プログラムを実行するとともに、当該制御プログラムにおいて参照または更新される複数のプロセスデータを管理する制御装置と、前記複数のプロセスデータのうち指定された1または複数のプロセスデータを利用する1または複数のアプリケーションを実行する情報処理装置との間の通信環境の設定を支援するサポートプログラムであって、
前記制御装置は、予め定められた通信設定に従って、前記複数のプロセスデータの少なくとも一部を格納した1または複数種類のデータセットを送信するように構成されており、
前記情報処理装置は、前記制御装置から送信される前記1または複数種類のデータセットを利用することで、前記1または複数のアプリケーションを実行するように構成されており、
前記サポートプログラムは、コンピュータに、
前記1または複数のアプリケーションにおいて利用することが指定されている前記1または複数のプロセスデータの各々を1または複数のグループに割り当てるグループ化ステップと、
前記グループ化ステップにおいて割り当てられた結果に従って、前記グループ化ステップにおいてグループ化された前記1または複数のグループの各々について、当該グループに割り当てられた1または複数のプロセスデータが一のデータセットに格納されて送信されるように、前記制御装置のための前記通信設定を生成する生成ステップとを実行させる、サポートプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/434,218 US20220137584A1 (en) | 2019-03-14 | 2020-02-26 | Control system, support device, and support program |
EP20769781.4A EP3940471A4 (en) | 2019-03-14 | 2020-02-26 | CONTROL SYSTEM, SUPPORT DEVICE AND SUPPORT PROGRAM |
CN202080017707.7A CN113508345A (zh) | 2019-03-14 | 2020-02-26 | 控制系统、支持装置以及支持程序 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019047306A JP7040484B2 (ja) | 2019-03-14 | 2019-03-14 | 制御システム、サポート装置、およびサポートプログラム |
JP2019-047306 | 2019-03-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020184185A1 true WO2020184185A1 (ja) | 2020-09-17 |
Family
ID=72425967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/007783 WO2020184185A1 (ja) | 2019-03-14 | 2020-02-26 | 制御システム、サポート装置、およびサポートプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220137584A1 (ja) |
EP (1) | EP3940471A4 (ja) |
JP (1) | JP7040484B2 (ja) |
CN (1) | CN113508345A (ja) |
WO (1) | WO2020184185A1 (ja) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0410107A (ja) * | 1990-04-27 | 1992-01-14 | Nissan Motor Co Ltd | シーケンス制御のモニタ方法 |
JPH08147007A (ja) * | 1994-11-21 | 1996-06-07 | Yaskawa Electric Corp | コントローラとプログラマブル表示装置との間のデータ伝送方法 |
JP2000242326A (ja) * | 1999-02-23 | 2000-09-08 | Keyence Corp | 表示中継装置 |
JP2002358105A (ja) * | 2001-05-31 | 2002-12-13 | Digital Electronics Corp | 制御用コンピュータ、そのプログラム、および、それが記録された記録媒体 |
JP2013161106A (ja) * | 2012-02-01 | 2013-08-19 | Omron Corp | サポート装置およびサポートプログラム |
JP2016012173A (ja) * | 2014-06-27 | 2016-01-21 | オムロン株式会社 | プログラマブル表示器 |
JP2016126495A (ja) * | 2014-12-26 | 2016-07-11 | 株式会社キーエンス | 組込機器設定システム |
JP2017146803A (ja) | 2016-02-17 | 2017-08-24 | 株式会社キーエンス | プログラマブル表示器及びこれを備えるプログラマブルシステム、プログラマブル表示器の設計装置、プログラマブル表示器の設計方法、プログラマブル表示器の操作方法、プログラマブル表示器の設計プログラム及びコンピュータで読み取り可能な記録媒体並びに記憶した機器 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08115281A (ja) * | 1994-10-19 | 1996-05-07 | Hitachi Ltd | 情報処理システムと通信サービスボード |
US5844795A (en) * | 1995-11-01 | 1998-12-01 | Allen Bradley Company, Llc | Diagnostic aid for industrial controller using multi-tasking architecture |
WO2002026477A1 (fr) * | 2000-09-28 | 2002-04-04 | Mitsui Chemicals Inc. | Procede et dispositif de transfert de donnees pour dispositif de soudage electrique par fusion |
US20070027915A1 (en) * | 2005-07-29 | 2007-02-01 | Morris Robert P | Method and system for processing a workflow using a publish-subscribe protocol |
US8341279B2 (en) * | 2008-11-17 | 2012-12-25 | Cisco Technology, Inc. | Dynamically activating buffered data publishers in sensor networks |
CN102164208A (zh) * | 2011-03-10 | 2011-08-24 | 宇龙计算机通信科技(深圳)有限公司 | 数据保存方法和移动终端 |
WO2012132933A1 (ja) * | 2011-03-30 | 2012-10-04 | シチズンホールディングス株式会社 | 工作機械用制御装置 |
JP6161266B2 (ja) * | 2012-11-27 | 2017-07-12 | キヤノン株式会社 | 情報処理装置及びその制御方法及び電子デバイス及びプログラム及び記憶媒体 |
JP6479032B2 (ja) * | 2014-10-07 | 2019-03-06 | シチズン時計株式会社 | 工作機械の制御装置 |
WO2016065493A1 (en) * | 2014-10-31 | 2016-05-06 | Cloudbased Industry 4.0 Technologies Ag | A client device for data acquisition and pre-processing of process-related mass data from at least one cnc machine or industrial robot |
JP2016100846A (ja) | 2014-11-25 | 2016-05-30 | 富士電機株式会社 | コントロールシステム、そのコントローラ、表示装置 |
JP6577128B2 (ja) * | 2015-03-27 | 2019-09-18 | ビューラー アーゲー | 適応可能なクロスプラント制御および操作システム、およびその対応する方法 |
JP6432838B2 (ja) * | 2015-04-16 | 2018-12-05 | パナソニックIpマネジメント株式会社 | 設定端末、通信システム、およびプログラム |
US10333879B2 (en) * | 2015-08-07 | 2019-06-25 | Satori Worldwide, Llc | Scalable, real-time messaging system |
JP6729123B2 (ja) * | 2016-07-21 | 2020-07-22 | 株式会社リコー | 通信システム、リソース管理方法、及びプログラム |
JP6870347B2 (ja) * | 2017-01-31 | 2021-05-12 | オムロン株式会社 | 情報処理装置、情報処理プログラムおよび情報処理方法 |
CN110300967B (zh) * | 2017-08-29 | 2023-10-03 | 西门子股份公司 | 一种数据读取周期的确定方法和装置 |
EP3457655B1 (en) * | 2017-09-19 | 2023-09-06 | CODESYS Holding GmbH | A security unit and method for an industrial control system |
-
2019
- 2019-03-14 JP JP2019047306A patent/JP7040484B2/ja active Active
-
2020
- 2020-02-26 WO PCT/JP2020/007783 patent/WO2020184185A1/ja active Application Filing
- 2020-02-26 EP EP20769781.4A patent/EP3940471A4/en active Pending
- 2020-02-26 US US17/434,218 patent/US20220137584A1/en active Pending
- 2020-02-26 CN CN202080017707.7A patent/CN113508345A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0410107A (ja) * | 1990-04-27 | 1992-01-14 | Nissan Motor Co Ltd | シーケンス制御のモニタ方法 |
JPH08147007A (ja) * | 1994-11-21 | 1996-06-07 | Yaskawa Electric Corp | コントローラとプログラマブル表示装置との間のデータ伝送方法 |
JP2000242326A (ja) * | 1999-02-23 | 2000-09-08 | Keyence Corp | 表示中継装置 |
JP2002358105A (ja) * | 2001-05-31 | 2002-12-13 | Digital Electronics Corp | 制御用コンピュータ、そのプログラム、および、それが記録された記録媒体 |
JP2013161106A (ja) * | 2012-02-01 | 2013-08-19 | Omron Corp | サポート装置およびサポートプログラム |
JP2016012173A (ja) * | 2014-06-27 | 2016-01-21 | オムロン株式会社 | プログラマブル表示器 |
JP2016126495A (ja) * | 2014-12-26 | 2016-07-11 | 株式会社キーエンス | 組込機器設定システム |
JP2017146803A (ja) | 2016-02-17 | 2017-08-24 | 株式会社キーエンス | プログラマブル表示器及びこれを備えるプログラマブルシステム、プログラマブル表示器の設計装置、プログラマブル表示器の設計方法、プログラマブル表示器の操作方法、プログラマブル表示器の設計プログラム及びコンピュータで読み取り可能な記録媒体並びに記憶した機器 |
Also Published As
Publication number | Publication date |
---|---|
JP7040484B2 (ja) | 2022-03-23 |
EP3940471A4 (en) | 2022-12-07 |
CN113508345A (zh) | 2021-10-15 |
US20220137584A1 (en) | 2022-05-05 |
JP2020149459A (ja) | 2020-09-17 |
EP3940471A1 (en) | 2022-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550311B2 (en) | Centralized virtualization management node in process control systems | |
US20130138818A1 (en) | Method for accessing an automation system and system operating according to the method | |
CN104977875B (zh) | 具有同级间冗余性的控制器系统和操作该系统的方法 | |
US20120117186A1 (en) | Dds structure with scalability and adaptability and node constituting the same | |
WO2020189086A1 (ja) | 制御システム、設定装置、および設定プログラム | |
US10198538B1 (en) | Relocate targets to different domains in an emulator | |
EP2710469A1 (en) | A method and a system for online and dynamic distribution and configuration of applications in a distributed control system | |
CN112637265B (zh) | 一种设备管理方法、装置及存储介质 | |
US20200278891A1 (en) | Dynamic Load Balancing In Network Centric Process Control Systems | |
US9535758B2 (en) | Managing data distribution to networked client computing devices | |
JP6655118B2 (ja) | 自動化システムおよび動作方法 | |
WO2020184185A1 (ja) | 制御システム、サポート装置、およびサポートプログラム | |
US8301273B2 (en) | Method for providing functions in an industrial automation system, control program and industrial automation system | |
WO2020189204A1 (ja) | 制御システム、中継装置、および中継プログラム | |
KR102250169B1 (ko) | 서비스 연결제어 방법 및 시스템 | |
JP5530878B2 (ja) | 分散システムにおけるデータレプリケーション管理方法 | |
CN112860374A (zh) | 快速部署Ceph方法、装置、服务器及存储介质 | |
EP3780551A1 (en) | Method and system for managing assets in a cloud computing environment | |
JP7036069B2 (ja) | 制御システム、中継装置、および中継プログラム | |
US20220398113A1 (en) | Systems and methods for implementing rehydration automation of virtual machine instances | |
KR102553672B1 (ko) | 분산 메시징 서버를 통한 데이터 처리 방법, 및 이를 포함하는 분산 메시징 시스템 | |
Marcondes | Developing A Multi Application Real-Time Platform Using Cloud Serverless Technologies | |
CN112783610A (zh) | 基于Saltstack部署Ceph的主节点 | |
JP2011090601A (ja) | ディスクアレイ装置、その管理方法、及びプログラム | |
JP2000311151A (ja) | クライアントサーバシステム、その管理装置及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20769781 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2020769781 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2020769781 Country of ref document: EP Effective date: 20211014 |