Control program and controller

CN122996382APending Publication Date: 2026-10-27YOKOGAWA ELECTRIC CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202580023620.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-03-28
Filing Date
2025-03-17
Publication Date
2026-10-27

AI Technical Summary

Benefits of technology

[0014]根据本发明,能够缩短应用程序的开发时间。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122996382A_ABST
    Figure CN122996382A_ABST
Patent Text Reader

Abstract

A control program controls a controller having a data update section (14A to 14C) that receives data from an external device, a data storage section (13) that stores each data transmitted from the external device, and a computer. The control program causes the computer to execute a process of causing a processor to execute a plurality of programs, saving information that associates data stored by the data storage section with a tag common to the plurality of programs, i.e., a tag definition, making a request for access to data stored in the data storage section (13) using the tag for each program, determining data corresponding to a tag included in the request for access from each program based on the tag definition, and causing each program to access the determined data stored in the data storage section (13).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a control program and a controller. Background Technology

[0002] A controller is known to receive information such as temperature, flow rate, and pressure from various sensors and I / O (Input / Output) devices in various production equipment in workshops or factories, and to control actuators based on the received information. Various programs are executed on the controller to run multiple control applications that control the I / O devices, actuators, etc. These control applications perform control calculations, for example, using data read from the I / O devices, and output the results to the actuators for control. In addition, the control applications parse and process the data collected from the I / O devices.

[0003] The application uses various types of data, including I / O data for controlling the input and output of I / O devices connected externally to the controller, and internal data managed within the controller. Internal data includes status data representing the controller's state, local data used by the application, and so on.

[0004] Various I / O devices are connected using multiple communication protocols, and the control application accesses data according to the access flow conforming to each communication protocol. Furthermore, the methods for accessing and managing data collected from I / O devices differ depending on the programming language used in the application.

[0005] For example, when using the most popular C / C++ language for embedded devices, it's necessary to create access methods for actual I / O devices and various data management methods on the application side. At this point, variable definitions are prepared within each program, and I / O device allocation is performed for variables that establish a relationship between I / O device data and defined variables. Currently, the association between I / O device data and variables is done on a language-by-language basis.

[0006] As for technologies related to industrial controllers, the following techniques exist. For example, an address mapping file and header file are created by extracting variable names from the control program, and the program created using the header file accesses data using the address mapping file. Additionally, a technique has been proposed whereby the program executed by a programmable logic controller in an industrial automation environment creates a symbol table for communication with external devices.

[0007] Patent Document 1: Japanese Patent Application Publication No. 2018-185772

[0008] Patent Document 2: International Publication No. 2013 / 005350 Summary of the Invention

[0009] However, in applications running on existing controllers, changes to data specifications due to alterations in the target device or configuration for data access necessitate a complete program rebuild. Even minor modifications require evaluation for validation. Furthermore, data management is redundant in the case of multiple applications running different programming languages. Therefore, the number of corrections required when data specifications change increases, and designs to avoid data conflicts are needed, thus increasing development time. Consequently, it is difficult to shorten application development time within existing controllers.

[0010] Furthermore, even with techniques such as extracting variable names from the control program and accessing data using address mapping files, or creating symbol tables, changes in data specifications can lead to program rebuilding or duplicate data management. Therefore, even using these techniques, it is difficult to shorten application development time.

[0011] One aspect of this invention is to shorten the development time of applications.

[0012] One aspect involves a control program that controls a controller, the controller having: a receiver that receives data from an external device; a data storage device that stores various data sent from the external device; and a computer. The control program causes the computer to perform the following processes: execute multiple programs, save tag definitions, which are information that associates data stored in the data storage device with tags common to the multiple programs; cause each program to make an access request for data stored in the data storage device using the tags; determine, based on the tag definitions, the data corresponding to the tags included in the access requests from each program; and cause each program to access the determined data stored in the data storage device.

[0013] The effects of the invention

[0014] According to the present invention, the development time of applications can be shortened. Attached Figure Description

[0015] Figure 1 This is a block diagram of the control system involved in the implementation method.

[0016] Figure 2 This is a block diagram of the controller.

[0017] Figure 3 This is a diagram representing the state when the association between the tag name and device data changes.

[0018] Figure 4 It is a timing diagram of the collection and processing of data stored in I / O devices and the acquisition of data based on programs.

[0019] Figure 5 This is a block diagram representing the system used for program development and tag definition generation.

[0020] Figure 6 This is a diagram representing the generated GUI screen used for label definition.

[0021] Figure 7 This is a flowchart of the program development and tag definition generation process.

[0022] Figure 8 It is a hardware structure diagram of a computer used for development. Detailed Implementation

[0023] The implementation of the control program and controller will now be described with reference to the accompanying drawings. Furthermore, identical elements will be labeled with the same reference numerals, and repetitive descriptions will be omitted where appropriate. Additionally, the various implementations may be appropriately combined without causing contradictions.

[0024] (Overall structure)

[0025] Figure 1 This is a block diagram of a control system according to an implementation method. For example, control system 100 is used in various manufacturing sites such as semiconductor manufacturing plants and device manufacturing plants. Control system 100 includes a higher-level server 20 and control devices 10A and 10B. Additionally, data input / output devices 31, sensors 32, 34, and 36, and actuators 33, 35, and 37 are various devices used in the manufacturing site. Data input / output device 31 is a CPU-based device or a dedicated communication device equipped with a communication interface with controller 1A. Data input / output device 31 is, for example, an EtherCAT (registered trademark) slave device, connected to sensor 36 and actuator 37.

[0026] The upper-level server 20 includes, for example, an industrial PC (Personal Computer) 21 and a database 22. The industrial PC 21 uses common communication methods such as OPC (Open Platform Communications), UA (Unified Architecture) (registered trademark), or Modbus (registered trademark) to acquire data collected by controllers 1A or 1B. Alternatively, the industrial PC 21 can also acquire data collected by controllers 1A or 1B using their independent communication methods. Furthermore, the industrial PC 21 stores the acquired data in the database 22. Additionally, the industrial PC 21 sets parameters for the control of sensors 32, 34, and 36, and actuators 33, 35, and 37 for controllers 1A or 1B.

[0027] Control devices 10A and 10B are connected to the upper-level server 20. Control devices 10A and 10B control various devices located on the manufacturing floor. The number of control devices 10A and 10B is not particularly limited. Control device 10A has a controller 1A. Additionally, control device 10B has a controller 1B.

[0028] Controller 1A has two CPUs (Central Processing Units) and two I / O units. The CPUs and I / O units of Controller 1A are connected via internal communication interfaces. One CPU of Controller 1A is connected to data input / output device 31 via an external communication interface. Communication between the CPU of Controller 1A and data input / output device 31 uses industrial communication protocols such as EtherCAT, OPCUA, Modbus, EtherNet / IP (Internet Protocol) (registered trademark), and Profinet (registered trademark).

[0029] Additionally, controller 1B has one CPU and two I / O units. The CPU and I / O units of controller 1 are connected via internal communication interfaces. The CPU of controller 1B is connected to one CPU of controller 1A via an external communication interface. Here, the number of CPUs and I / O units in controllers 1A and 1B is just an example, and their numbers are not particularly limited.

[0030] Communication between the CPUs mounted on controller 1A is sometimes referred to as "inter-CPU communication". In addition, communication between the CPU of controller 1A and the CPU of controller 1B is sometimes referred to as "inter-controller communication".

[0031] For example, controller 1A periodically acquires data from data input / output device 31 and sensor 32. Furthermore, controller 1A transmits the acquired data to industrial PC 21. Additionally, controller 1A controls actuator 33 using the acquired data and controls actuator 37 by sending commands to data input / output device 31. Besides this, controller 1A transmits data to controller 1B. Controller 1B also periodically acquires data from sensor 34, transmits data to industrial PC 21, controls actuator 35, etc. Here, controller 1A and controller 1B have the same functions, so they will be described as controller 1 in the following description without distinction.

[0032] (Controller)

[0033] Figure 2 This is a block diagram of the controller. Figure 2 Controller 1 in Figure 1 Controllers 1A and 1B correspond to this. Additionally, I / O devices 15A~15C correspond to... Figure 1 The data input / output devices 31 and sensors 32, 34 and 36 correspond to each other.

[0034] For communication between I / O devices 15A to 15C, various communication protocols are used. I / O devices 15A to 15C can use several or all of the same communication protocols, or they can use different communication protocols.

[0035] like Figure 1 As shown, controller 1 includes application execution units 11A and 11B, tag management unit 12, data storage unit 13, and data update units 14A-14C. Data storage unit 13 is a shared memory that temporarily stores various data received from I / O devices 15A-15C. I / O devices 15A-15C are an example of an external device, and data storage unit 13 is an example of a "data storage device".

[0036] Data update unit 14A is connected to I / O device 15A via an external communication interface. Additionally, data update unit 14B is connected to I / O device 15B via an external communication interface. Data update unit 14C is connected to I / O device 15C via an external communication interface.

[0037] Data update units 14A-14C communicate using the respective communication protocols used by their connected I / O devices 15A-15C. Data update units 14A-14C periodically retrieve data from their respective connected I / O devices 15A-15C using their respective communication protocols. Here, the data retrieval periods of data update units 14A-14C are independent of each other. Periodic data retrieval is an example; for instance, if I / O devices 15A-15C are Ethernet-connected devices such as EtherNet / IP, data update units 14A-14C can retrieve data upon receiving a retrieval command.

[0038] In addition, when data is acquired, the data update units 14A to 14C also acquire a timestamp indicating the time of acquisition. Furthermore, the data update units 14A to 14C append a timestamp to the acquired data and store it as device data 130A to 130C in the shared memory, i.e., the data storage unit 13. The data update units 14A to 14C periodically overwrite and store the device data 130A to 130C.

[0039] In this case, data update units 14A-14C store the data obtained from I / O devices 15A-15C in different areas of the shared memory, i.e., the data storage unit 13. Specifically, data update unit 14A stores device data 130A obtained from I / O device 15A in the area allocated to I / O device 15A for the data storage unit 13. For example, device data 130A includes data A0 and A1 with timestamps. Similarly, data update unit 14B stores device data 130B obtained from I / O device 15B in the area allocated to I / O device 15B for the data storage unit 13. For example, device data 130B includes data B0 and B1 with timestamps. Furthermore, data update unit 14C stores device data 130C obtained from I / O device 15C in the area allocated to I / O device 15C for the data storage unit 13. For example, device data 130C includes data C0, C1, and C2 with timestamps.

[0040] Data update units 14A-14C store device data 130A-130C in the data storage unit 13 using the same data format. This simplifies the data access configuration and absorbs the impact of changes to I / O devices 15A-15C. These data update units 14A-14C are an example of a "receiver." The data update units 14A-14C enable the data storage unit 13 to store data according to each type of external device.

[0041] The tag management unit 12 stores tag definitions 120. Tag definitions 120 store tag names specified by the user. Tag names refer to information used to identify the tags used when accessing device data 130A-130C. For example, tag definitions 120 store tag names T1-T4. Furthermore, tag definitions 120 store information on the correspondence between the data contained in the device data 130A-130C associated with each tag name. Tag definitions 120, for example, can use a combination of information from IO devices 15A-15C and the types of data, for example, to identify device data 130A-130C. Figure 2 In the diagram, the lines connecting the tag names stored in tag definition 120 and the data stored in device data 130A~130C represent their correspondence. That is, Figure 2 The label definition 120 actually contains information that associates the label name with the data stored in the device data 130A-130C. For example, the label definition 120 may be a mapping table that associates the label name with the data stored in the device data 130A-130C.

[0042] As described above, the tag management unit 12 stores tag definitions 120, which are information that associates each piece of data stored in the data storage unit 13 with tags common to multiple programs. Additionally, the tag management unit 12 stores tag definitions that associate combinations of external device types and data types with tags.

[0043] For example, in Figure 2 In this context, label definition 120 associates label name T1 with data A0 contained in device data 130A, and label name T2 with data A0 contained in device data 130A. As described above, even if device data 130A is obtained from the same IO device 15A, label definition 120 can associate it with a different label name depending on each piece of data.

[0044] Additionally, label definition 120 associates label name T3 with data B0 contained in device data 130B. As described above, label definition 120 enables different label names to be associated with device data 130A and device data 130B obtained from different IO devices 15A and IO devices 15B.

[0045] Furthermore, tag definition 120 associates tag name T4 with data C0 and C1 contained in device data 130C. As described above, tag definition 120 enables the same tag name T4 to be associated with different data contained in device data 130C. As described above, tag management unit 12 can also store tag definition 120, which is information that associates multiple data with tags.

[0046] By associating multiple data points with a single label, such as label T4, data can be aggregated at the application or function level. This reduces code size and improves readability. An example of data aggregation is given. For instance, the label name is "RIGHT_ARM," where RIGHT_ARM represents "a collection of control data for the robot's right arm." Data #1 representing the measured value of motor M1, data #2 representing the output of motor M1, data #3 representing the measured value of motor M2, data #4 representing the output of motor M2, and data #5 representing the ambient temperature measurement are associated with RIGHT_ARM. This is a collection of data that can be aggregated and managed.

[0047] As described above, the tag management unit 12 can also store tag definitions 120, which are information that associates data and tags aggregated by application program 111A and 111B. Additionally, the tag management unit 12 can also store tag definitions 120, which are information that associates data and tags aggregated by function.

[0048] When the tag management unit 12 receives a data access request specifying a tag name from the application execution unit 11A or 11B, it accesses the data stored in the device data 130A to 130C associated with that tag name. Here, for example, if the tag definition 120 is a mapping table, the tag management unit 12 can determine and access the data stored in the device data 130A to 130C specified in the mapping table corresponding to the specified tag name.

[0049] The application execution unit 11A runs the IEC 61131-3 application by executing program 111A. Program 111A is created, for example, by the IEC 61131-3 programming language. The IEC 61131-3 programming language specifies LD (Ladder Diagram), FBD (Function Block Diagram), SFC (Sequential Function Chart), IL (Instruction List), and ST (Structured Text). Program 111A uses shared library 112A to access device data 130A-130C obtained from I / O devices 15A-15C.

[0050] The application execution unit 11B runs the C / C++ application by executing program 111B. Program 111B is created, for example, in the C / C++ programming language. Program 111B uses shared library 112B to access device data 130A-130C obtained from I / O devices 15A-15C.

[0051] The following describes the access to device data 130A~130C implemented by program 111A or 111B. Since programs 111A and 111B have the same data access function, they will be described here as "program 111" without distinction between them. Similarly, shared libraries 112A and 113B will also be referred to as "shared library 112" without distinction between them.

[0052] Program 111 accesses device data 130A to 130C using tags represented by tag names T1 to T4. Specifically, in program 111, the access processing for device data 130A to 130C is recorded using the identification information of each tag, namely the tag name, the definition name of the data type, and the API (Application Programming Interface) used to access tag definition 120. Moreover, at runtime, program 111 uses the API to call the function of shared library 112, which is used to access data associated with the tag name corresponding to the object of the access request.

[0053] Then, program 111 uses the functions of shared library 112 to access data stored in data storage unit 13 that is associated with the tag name specified as the access object via tag definition 120. For example, if the tag corresponding to the access request object is tag name T1, program 111 uses the API to call the functions of shared library 112 to access data A0 of device data 130A associated with tag name T1 via tag definition 120. In this case, if the process of accessing data and performing it is data retrieval, program 111 retrieves and saves a timestamp along with data A0. Program 111 can then use the timestamp to process data A0 according to a time sequence.

[0054] As described above, even though programs 111A and 111B are created using different programming languages, they can access device data 130A to 130C using the same tags. Furthermore, by storing timestamps along with the data, time-series data analysis can be performed. Additionally, control performance is improved by enabling control of I / O devices 150A to 150C with time-series consistent data.

[0055] As described above, the controller 1 according to this embodiment requests access to data stored in the data storage unit 13 using tags for programs 111A and 111B respectively. Furthermore, based on tag definition 120, the controller 1 determines the data corresponding to the tags included in the access requests from each program 111A and 111B, enabling each program 111A and 111B to access the determined data stored in the data storage unit 13. Additionally, the controller 1 performs predetermined processing using the determined data. This predetermined processing includes acquiring data and controlling actuators according to the acquired data, processing and writing the acquired data, or processing according to a time sequence, etc. Furthermore, the controller 1 requests access to data collected by predetermined sensors for programs 111A and 111B.

[0056] Here, we will explain the changes in the association between the label name and the data contained in device data 130A~130C. Figure 3 This diagram illustrates the state when the association between the tag name and device data changes. Here, we will explain the case where the data associated with tag name T3 changes from data B0 to data B1.

[0057] When this change is made, in label definition 120, the information 121 that associates label name T3 with data B0 is changed to the information 122 that associates label name T3 with data C2. In this case, even without changing the application execution units 11A and 11B, programs 111A and 111B can access the changed data C2 by specifying label name T3. As described above, even if the association changes, application execution units 11A and 11B and their respective included programs 111A and 111B can continue to access the changed data unaffected by the change.

[0058] As described above, the controller 1 of this embodiment is capable of updating the association between the data and tags contained in the tag definition 120 independently of the program.

[0059] (The process of data collection and acquisition for the equipment)

[0060] Figure 4 This is a timing diagram showing the collection and processing of data stored in I / O devices and the data retrieval implemented by the program. Next, refer to... Figure 4 The data collection and processing of the I / O devices 15A-15C implemented by the data update units 14A-14C and the data acquisition process implemented by the program 111A or 111B of the controller 1 according to this embodiment will be described. Here, the process of collecting device data 130A stored in the I / O device 15A implemented by the data update unit 14A and acquiring data A0 of the I / O device 15A implemented by the program 111A will be used as an example for description.

[0061] The data update unit 14A periodically collects data from the IO device 15A and obtains the data collection results. Furthermore, the data update unit 14A stores the data obtained from the IO device 15A, namely device data 130A, in the data storage unit 13 (steps S101 to S103).

[0062] The IO device 15A receives periodic data collection from the data update unit 14A and outputs the data to the data update unit 14A (steps S111~S113).

[0063] The data storage unit 13 stores the device data 130A that is periodically transmitted from the data update unit 14A in an overwrite manner (step S140).

[0064] Independent of the periodic data collection of the data update unit 14A, the program 111A, in its own execution, retrieves data from the tag management unit 12 based on the tag name T1 at the required time intervals. This time interval does not need to be periodic. Furthermore, the program 111A obtains the result of retrieving the data based on the tag name T1 from the tag management unit 12 (steps S121 to S123).

[0065] The tag management unit 12 receives a request from program 111A to obtain data based on tag name T1, and outputs the data A0 associated with tag name T1 to program 111A (steps S131 to S133).

[0066] The data storage unit 13 outputs data A0 according to the request from the tag management unit 12 (step S140).

[0067] (Programming)

[0068] The following describes the development of programs 111A and 111B and the generation of tag definition 120. Figure 5 This is a block diagram representing the system used for program development and tag definition generation.

[0069] Figure 5 The development computer 4 shown is used for developing programs 111A and 111B and generating tag definition 120. The development computer 4 can be, for example, a personal computer.

[0070] The development computer 4 has a development environment 41A for program 111A and a development environment 41B for program 111B. In addition, the development computer 4 has a development setting unit 40, which uses the development environments 41A and 41B to create programs 111A and 111B and tag definitions 120.

[0071] Figure 6 This is a diagram representing the generated GUI (Graphical User Interface) screen used for tag definition. Users utilize... Figure 6 The GUI screen 200 shown defines labels. The GUI screen 200 includes items such as data label 201, label data type 202, output 203, device 204, device data type 205, direction 206, and comments 207. Comments 207 can be used for notes or reminders when defining labels.

[0072] Data tag 201 represents a tag name. The tag name used in data tag 201 can be freely set by the user. Tag data type 202 is the data type of the data assigned to the tag name represented by data tag 201. A tag name in data tag 201 can be associated with multiple different tag data types 202, device 204, and device data type 205. Conversely, multiple different data tags 201 can also be associated with the same tag data type 202, device 204, and device data type 205.

[0073] Output 203 contains the tags referenced in the development of programs 111A or 111B (specifically, tags registered in data area definitions 411A or 411B), and is the item for selecting tags used in shared libraries 112A or 112B. Users can define various tags in the GUI screen 200, and then select tags for programming development from the defined tags using the items in output 203.

[0074] Device 204 refers to I / O devices 15A-15C that are sources of data associated with a tag name defined by data tag 201. Here, device 204 defines specific identification information for the device to be connected. In this embodiment, I / O devices 15A-15C are external devices to controller 1, but internal devices mounted on controller 1 can also be specified. Device data type refers to the data type of the data processed by I / O devices 15A-15C.

[0075] Direction 206 is the data transmission direction relative to the respective IO devices 15A~15C. IN indicates data input from the outside and is dedicated to reading, while OUT indicates data output relative to the outside and can be read and written.

[0076] Return to Figure 5 Continuing with the explanation, the development setting unit 40 sets the data areas in the data storage unit 13 for storing device data 130A to 130C. When setting the data areas, the development setting unit 40 defines the device data 130A to 130C according to their intended use.

[0077] Next, the development settings unit 40 obtains the definitions set in the GUI screen 200. Here, the development settings unit 40 can freely select any one of the application execution units 11A and 11B and the development environments 41A and 41B to access the settings.

[0078] According to the defined definitions, the development setting unit 40 generates data area definitions 411A for IEC 61131-3 environment development in development environment 41A. Additionally, according to the defined definitions, the development setting unit 40 generates shared libraries 112A for IEC 61131-3 applications. Similarly, according to the defined definitions, the development setting unit 40 generates data area definitions 411B for the C / C++ development environment in development environment 41B. Additionally, according to the defined definitions, the development setting unit 40 generates shared libraries 112B for the program 111B that enables the C / C++ application to run.

[0079] The development setup unit 40 uses the development environment 41A to create and build the program 111A with reference to the data area definition 411A, thereby generating the program executable file for the IEC61131-3 application.

[0080] In addition, the development setting unit 40 uses the development environment 41B to create and build the program 111B with reference to the data area definition 411B, thereby generating the program executable file used by the program 111B that enables the C / C++ application to run.

[0081] The development setup unit 40 downloads the executable file and shared library 112A for program 111A, which enables the IEC61131-3 application to run, to the controller 1. Additionally, the development setup unit 40 downloads the executable file and shared library 112B for program 111B, which enables the C / C++ application to run, to the controller 1.

[0082] The following processing is performed in controller 1. Application execution unit 11A starts the IEC61131-3 application. When program 111A of the IEC61131-3 application begins execution, shared library 112A is linked to program 111A, causing tag management unit 12 to save tag names and associate tag names with device data 130A~130C. Tag definition 120 is thus generated.

[0083] Similarly, the application execution unit 11B starts the C / C++ application. When the program 111B of the C / C++ application starts executing, the shared library 112B is linked with the program 111B, and the tag name in the tag definition 120 of the tag management unit 12 is associated with the data of the device data 130A~130C.

[0084] Then, program 111A uses the tag name and shared library 112A to access the data of device data 130A~130C. Additionally, program 111B uses the tag name and shared library 112B to access the data of device data 130A~130C.

[0085] When the tag definition 120 is reset, the development setting unit 40 performs the following processing. The development setting unit 40 re-sets the data area in the data storage unit 13. Additionally, the development setting unit 40 obtains the newly set definition from the GUI screen 200 and generates the data area definition 411A, shared library 112A, data area definition 411B, and shared library 112B according to the new definition. Then, the development setting unit 40 downloads the shared libraries 112A and 112B to the controller 1.

[0086] When the programs 111A and 111B are executed, the tag definition 120 updates the association between the tag name and the data of the device data 130A to 130C in the tag definition 120 of the tag management unit 12 based on the shared libraries 112A and 112B.

[0087] Figure 7 This is a flowchart of the program development and tag definition generation process. Next, refer to... Figure 7 The process of program development and tag definition 120 generation is explained.

[0088] The development setting unit 40 sets the data area in the data storage unit 13 for storing device data 130A~130C (step S1).

[0089] Next, the development setting unit 40 obtains the definitions set in the GUI screen 200. Furthermore, the development setting unit 40 generates a shared library 112A for the IEC61131-3 application according to the set definitions. Similarly, the development setting unit 40 generates a shared library 112B and data area definitions 411A and 411B for the program 111A that enables the C / C++ application to run, according to the set definitions (step S2).

[0090] Next, the development setting unit 40 determines whether to reset the label definition 120 based on the definition set in the GUI screen 200 (step S3).

[0091] Without resetting the label definition 120 (step S3: negation), the development setting unit 40 creates program 111A in development environment 41A with reference to data area definition 411A. Additionally, the development setting unit 40 creates program 111B in development environment 41B with reference to data area definition 411B (step S4).

[0092] Furthermore, the development setup unit 40 downloads the program executable files and shared libraries 112A and 112B of programs 111A and 111B respectively to the controller 1 (step S5). Then, the program development and tag definition 120 generation process proceeds to step S7.

[0093] In contrast, if the tag definition is reset (step S3: affirmative), the development setting unit 40 downloads the shared libraries 112A and 112B to the controller 1 (step S6). Then, the program development and tag definition 120 generation process proceeds to step S7.

[0094] The application execution unit 11A of the controller 1 starts the application and executes program 111A. Additionally, the application execution unit 11B of the controller 1 starts the application and executes program 111B (step S7).

[0095] Create a link between program 111A and shared library 112A. Additionally, create a link between program 111B and shared library 112B. Furthermore, generate or update tag definition 120 based on shared libraries 112A and 112B (step S8).

[0096] Then, program 111A accesses the data contained in device data 130A-130C using the tag and shared library 112A. Similarly, program 111B accesses the data contained in device data 130A-130C using the tag and shared library 112B (step S9).

[0097] Furthermore, in this embodiment, data acquired by sensors is used as an example to illustrate the data from I / O devices 15A to 15B. In addition, the following data can also be used: For example, AI (Analog Input) / AO (Analog Output) data and DI (Digital Input) / DO (Digital Output) data can be used. Additionally, data acquired in EtherCAT, OPC UA, Modbus, EtherNet / IP, and Profinet can be used. Furthermore, data from inter-controller communication and inter-CPU communication can also be used.

[0098] Furthermore, while C / C++ and IEC 61131-3 are cited as examples of programming languages ​​for programs 111A and 111B, the programming languages ​​that can be used are not limited to these. For example, scripting languages ​​such as C#, ladder logic, and Python can be used.

[0099] Furthermore, if the function of the development setting unit 40 is not embedded in the development computer 4, but in the controller 1, and it is configured via a web browser or similar device, then if the development computer 4 is not configured to create programs for the development environments 41A and 41B, then the development computer 4 can be omitted. However, as long as an information terminal device connected to the network is prepared, the configuration can be performed from an information terminal device such as a smartphone or tablet, even if it is not a personal computer.

[0100] (Effect)

[0101] As explained above, the controller 1 in this embodiment periodically collects data from each of the I / O devices 15A to 15C, and temporarily stores the data along with a timestamp in a uniform data format within the controller 1. Therefore, even I / O devices 15A to 15C using different protocols can collect data at high speed. This reduces the processing time for data from the I / O devices 15A to 15C.

[0102] Furthermore, it simplifies data access construction with a unified data format, and can absorb the impact of changes to I / O devices 15A-15C. Additionally, it can process data from I / O devices 15A-15C and display the timestamp of the time the data was acquired. Therefore, data analysis based on time series can be performed in programs 111A and 111B. Moreover, control of I / O devices 15A-15C can be achieved using data with consistent time series, improving control performance.

[0103] Furthermore, in the controller 1 of this embodiment, each program 111A and 111B accesses the data of I / O devices 15A-15C using a unified label. This shortens application development time. Currently, if the I / O devices 15A-15C associated with the data are changed, programs 111A and 111B need to be rebuilt and their scope of impact reassessed. In contrast, in the controller 1 of this embodiment, changes to I / O devices 15A-15C do not affect the application code, so rebuilding programs 111A and 111B and reassessing their scope of impact are unnecessary. For example, after product release, even if I / O devices 15A-15C are changed to improve performance, to address the obsolescence of changes to I / O devices 15A-15C, or to change I / O devices 15A-15C due to changes in system components, only the label definition 120 needs to be changed and a system-wide evaluation needs to be performed. Therefore, development time when data specifications change can be shortened. Furthermore, in the controller 1 of this embodiment, even if the programming languages ​​of programs 111A and 111B are different, there will be no duplication of data management between multiple languages. Therefore, there is no need to design and install programs 111A and 111B that take into account the problem of duplication, and when specification changes occur, there is no need to deal with them separately for each language, thus shortening the overall development time.

[0104] Furthermore, the programming language can be easily extended. For example, the programming language to be used during development may differ depending on each user, so it's easy to imagine situations where there's a need for languages ​​other than those discussed at the time of controller 1's release. Regarding this, in the controller 1 of this embodiment, the programming language and tag definition 120 are independent, so if a programming language is added in the future, all data can be accessed simply through the interface section for preparing to use tags. As described above, the design and installation of device access sections, data management sections, and adjustment sections for each programming language can be omitted. Therefore, application development time can be shortened.

[0105] Furthermore, currently, device allocation is performed manually in development environments for various programming languages. In contrast, in development environments 41A and 41B provided by the development computer 4 according to this embodiment, programs 111A and 111B can be created using the defined content, improving development efficiency. Additionally, in development environments 41A and 41B provided by the development computer 4 according to this embodiment, arbitrary names can be added to the defined content of data areas as data tags, thus improving visual confirmation and enabling efficient development of programs 111A and 111B. Furthermore, the tag names and associations used in tag definition 120 can select the IO devices 15A to 15C required by the application. Therefore, by hiding unnecessary IO devices 15A to 15C, errors during program creation can be reduced.

[0106] Furthermore, if the I / O devices 15A-15C that output data associated with tag definition 120 are changed, the data settings in the program need to be modified again, requiring program correction and downloading of the back-end controller. In contrast, in the development computer 4 according to this embodiment, the change is completed by downloading the shared libraries 112A and 112B regenerated by the development setting unit 40, thus suppressing the work involved in the development process. In addition, the program executable file of the application can be used directly, thus preventing performance degradation caused by the re-creation of programs 111A and 111B and shortening the verification process. Moreover, since the re-creation of programs 111A and 111B is not required, setting change operations can be performed even on computers with development environments 41A and 41B that have not prepared programs 111A and 111B, thus reducing equipment costs.

[0107] (system)

[0108] Information including the processing flow, control flow, specific names, and various data or parameters shown in the above description and figures can be arbitrarily changed, except in cases specifically described.

[0109] Furthermore, the structural elements of the devices illustrated are functional concepts and do not necessarily need to be physically arranged as shown. That is, the specific ways in which the devices are distributed or integrated are not limited to the illustrated arrangement. In other words, all or part of each device can be functionally or physically distributed / integrated in any unit according to various loads, usage conditions, etc.

[0110] Furthermore, all or any part of the processing functions performed by each device can be implemented by the CPU and the program parsed and executed by the CPU, or can be implemented as wired logic-based hardware.

[0111] [hardware]

[0112] Next, an example of the hardware structure of controller 1 will be described. For example, Figure 1 The CPUs of controllers 1A and 1B read and execute various programs stored in memory. Thus, the CPUs of controllers 1A and 1B perform the functions of application program execution units 11A and 11B, tag management unit 12, and data update units 14A-14C. As described above, controller 1 operates as an information processing device that performs various processing methods by reading and executing programs.

[0113] In addition, the hardware structure example of the development computer 4 will be explained next. Figure 8 It is a hardware structure diagram of a computer used for development. For example... Figure 8 As shown, the development computer 4 has a processor 91, a memory 92, a hard disk 93, an input device 94, a display device 95, and a network interface 96. Furthermore, the processor 91 is connected to the memory 92, the hard disk 93, the input device 94, the display device 95, and the network interface 96 via a bus.

[0114] Network interface 96 is a network interface card or similar device used for communication with other information processing devices. For example, network interface 96 relays communication between controller 1 and processor 91.

[0115] Input device 94 is a keyboard or mouse, etc. Display device 95 is a monitor or display screen, etc. The user refers to the GUI screen 200 displayed on display device 95 and uses input device 94 to input such as label definitions.

[0116] Hard disk 93 is an auxiliary storage device. In addition, hard disk 93 stores various programs, including programs used to implement the functions of development setting unit 40.

[0117] The processor 91 reads various programs stored in the hard disk 93, expands them to the memory 92, and executes them. Thus, the processor 91 realizes the functions of the development setting unit 40.

[0118] As described above, the development computer 4 operates as an information processing device that performs various processing methods by reading and executing programs. Furthermore, the development computer 4 can also read the aforementioned program from a recording medium using a media reading device and execute the read program, thereby achieving the same function as in the described embodiment. Moreover, the program referred to herein is not limited to execution by the development computer 4. For example, the present invention can also be applied when other computers or servers execute programs, or when they execute programs collaboratively.

[0119] The program can be distributed via the Internet or other networks. Furthermore, the program can be recorded on computer-readable media such as hard disks, floppy disks (FD), CD-ROMs, MO (Magneto-Optical disk), and DVDs (Digital Versatile Disc), and executed by a computer reading it from the recording medium.

[0120] The following are some examples of combinations of publicly disclosed technical features.

[0121] (1) A control program that controls a controller, the controller having: A receiver that receives data from an external device; A data storage device that stores various data sent from the external device; and computer, The control program is characterized in that... The computer is instructed to perform the following processes: Execute multiple programs, Save tag definitions, which are information that associates the data stored in the data storage device with common tags among the multiple programs. For each program, an access request is made to the data stored in the data storage device using the tag. Based on the tag definition, data corresponding to the tags contained in the access requests from each program is determined, enabling each program to access the determined data stored in the data storage device.

[0122] (2) The control program described in (1) is characterized in that, The process of executing the plurality of programs includes the following process: executing the plurality of programs generated in languages ​​different from the data stored in the data storage device.

[0123] (3) The control program described in (1) or (2) is characterized in that, The computer is also instructed to perform the following process: to cause the data storage device to store data according to each type of external device. The process of saving the tag definition includes the following process: saving the tag definition as information that associates the combination of the type of external device and the type of data with the tag.

[0124] (4) The control procedure described in any one of (1) to (3) is characterized in that, The process of saving the tag definition includes the following steps: saving the tag definition as information that associates multiple data with the tag.

[0125] (5) The control program described in (4) is characterized in that, The process of saving the tag definition includes the following steps: saving the tag definition as information that associates the data aggregated by the applications running through each program with the tag.

[0126] (6) The control program described in (4) is characterized in that, The process of saving the tag definition includes the following steps: saving the tag definition as information that associates data summarized by function with the tag.

[0127] (7) The control procedure described in any one of (1) to (6) is characterized in that, The computer is also instructed to perform the following process: independently of the program, update the association between the data contained in the tag definition and the tag.

[0128] (8) The control procedure described in any one of (1) to (7) is characterized in that, The computer is also made to perform the following process: each of the programs performs a prescribed process using the determined data.

[0129] (9) The control procedure described in any one of (1) to (8) is characterized in that, The processing of the data access request includes the following process: making an access request for data collected by a specified sensor.

[0130] (10) A controller, characterized in that, have: The receiving unit receives data from external devices; A data storage unit that stores various data sent from the external device; A program execution unit executes multiple programs that access data stored in the data storage unit using common tags associated with each piece of data; and The tag management unit stores tag definitions, which are information that associates the data stored by the data storage unit with the tags. Based on the tag definitions, it determines the data corresponding to the tags contained in the access requests from each program executed by the program execution unit, so that each program can access the data determined by the data storage unit.

[0131] Explanation of the label

[0132] 1. 1A, 1B Controllers

[0133] 4. Development computer

[0134] 10A and 10B control devices

[0135] 11A, 11B Application Execution Unit

[0136] 12. Label Management Department

[0137] 13 Data Storage Department

[0138] Data Update Department (14A, 14B, 14C)

[0139] 15A, 15B, 15C I / O devices

[0140] 20 Upper-level servers

[0141] 21 Industrial PCs

[0142] 22 Databases

[0143] Sensors 32, 34, and 36

[0144] Actuators 33, 35, and 37

[0145] 40 Development and Setting Department

[0146] 41A and 41B Development Environments

[0147] 100 Control System

[0148] 111A and 111B programs

[0149] 112A and 112B shared libraries

[0150] 120 Tag Definition

[0151] Equipment data for 130A, 130B, and 130C

[0152] 411A and 411B Data Area Definitions

Claims

1. A control program that controls a controller. The controller has: A receiver that receives data from an external device; A data storage device that stores various data sent from the external device; and computer, The control program is characterized in that... The computer is instructed to perform the following processes: Execute multiple programs, Save tag definitions, which are information that associates the data stored in the data storage device with tags common to the multiple programs. For each program, an access request is made to the data stored in the data storage device using the tag. Based on the tag definition, data corresponding to the tags contained in the access requests from each program is determined, enabling each program to access the determined data stored in the data storage device.

2. The control program according to claim 1, characterized in that, The process of executing the plurality of programs includes the following process: executing the plurality of programs generated in languages ​​different from the data stored in the data storage device.

3. The control program according to claim 1, characterized in that, The computer is also instructed to perform the following process: to cause the data storage device to store data according to each type of external device. The process of saving the tag definition includes the following process: saving the tag definition as information that associates the combination of the type of external device and the type of data with the tag.

4. The control program according to claim 1, characterized in that, The process of saving the tag definition includes the following steps: saving the tag definition as information that associates multiple data with the tag.

5. The control program according to claim 4, characterized in that, The process of saving the tag definition includes the following steps: saving the tag definition as information that associates the data aggregated by the applications running through each program with the tag.

6. The control program according to claim 4, characterized in that, The process of saving the tag definition includes the following steps: saving the tag definition as information that associates data summarized by function with the tag.

7. The control program according to claim 1, characterized in that, The computer is also instructed to perform the following process: independently of the program, update the association between the data contained in the tag definition and the tag.

8. The control program according to claim 1, characterized in that, The computer is also made to perform the following process: each of the programs uses the determined data to perform a specified process.

9. The control program according to claim 1, characterized in that, The processing of the data access request includes the following process: making an access request for data collected by a specified sensor.

10. A controller, characterized in that, have: The receiving unit receives data from external devices; A data storage unit that stores various data sent from the external device; The program execution unit executes multiple programs that access data stored in the data storage unit by using common tags that establish associations between the programs for each piece of data. as well as The tag management unit stores tag definitions, which are information that associates the data stored by the data storage unit with the tags. Based on the tag definitions, it determines the data corresponding to the tags contained in the access requests from each program executed by the program execution unit, so that each program can access the data determined by the data storage unit.

Citation Information

Patent Citations

  • Industrial controller and data sharing method for industrial controller

    JP2018185772A

  • Symbol table generation method, method for communication with peripheral apparatus and programmable logic controller

    WO2013005350A1