Method and development environment for linking objects of control programs of control units of an automation system
By reading the OPC UA node set in the automation system and generating OPC UA instances and PLC objects, the information model mapping problem between different manufacturers' equipment is solved, and efficient information transmission and display is achieved.
Patent Information
- Application Number
- CN202080081460.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-11-25
- Filing Date
- 2020-11-23
- Publication Date
- 2025-08-29
- Estimated Expiration
- 2040-11-23
AI Technical Summary
The prior art is difficult to realize the information unit mapping and transmission of OPC UA information model between devices of different manufacturers without the need for a large amount of programming in automated systems.
Provides a method to realize simplified mapping and linking of OPC UA objects and PLC objects by reading into the OPC UA node set of supporting specifications, generating OPC UA instances and linking objects with PLC codes.
It realizes efficient linking between OPC UA objects and PLC objects, reduces programming costs, and ensures information transmission compatibility and standardized display between different manufacturers' equipment.
Smart Images

Figure CN114730257B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a method for linking objects according to the Open Platform Communications Unified Architecture (OPCUA) data communication standard with objects in the PLC code of a control program of a programmable controller in an automation system. The invention also relates to a development environment configured to execute the method according to the present invention.
[0002] This patent application claims the priority of German patent application DE 10 2019 131 814.9 filed on November 25, 2019, the disclosure of which is incorporated herein by reference. Background Art
[0003] Within the context of the Industry 4.0 initiative and the Internet of Things (IoT), efforts are underway in industrial production to achieve increasing digitization and centralization of production and automation processes. The development of industrial production facilities is moving towards smart production facilities, in which devices communicate with each other, coordinate processes, and independently regulate processes. Processes can be tracked in the cloud, data analyzed centrally, and controlled via the internet. This requires complex data communication structures that allow large amounts of data and information to be transmitted with minimal loss and low susceptibility to interference.
[0004] Another trend can be seen in the increasing interoperability of equipment from different designs and manufacturers. The aim is to create production facilities in which different units from various manufacturers can be combined and interchanged with one another at will with minimal programming effort.
[0005] For data communication and information transmission between components at different levels of an automation system or between units within the same level, the service-oriented data communication standard "Open Platform Communication Unified Architecture" (OPC UA) has been established to provide unified data communication in automation technology. OPC UA is based on open communication standards, thus ensuring reliable and robust communication between communication participants based on a server-client architecture. Furthermore, OPC UA provides a unified and standardized information model for information transmission in automation systems across various industrial sectors. This ensures that information from different devices from different manufacturers can be displayed in a unified manner within the same automation system.
[0006] A unified display of information from different automation systems is also possible. This guarantees the highest degree of interoperability and enables users to process information from various sources without any problems.
[0007] In the context of the automation pyramid, OPC UA is currently used for vertical communication between the control and process levels of an automation system and / or for horizontal communication between elements on the same level, such as between two control units in machine-to-machine communication. The OPC UA protocol standard provides an open data communication standard that enables standardized data communication and information transmission between control-level elements and process or fieldbus-level elements of an automation system. It also enables centralized data analysis and, if necessary, wireless data transmission via the internet to a suitable cloud or server system. The goal is to enable manufacturer-independent, cross-industry data communication and information transmission between any devices without extensive programming effort. The transmitted information can be displayed in a standardized format and thus easily viewed, interpreted, and processed.
[0008] To enable standardized data communication or information transmission, industry-specific information models based on the OPC UA communication standard are specified in cooperation with various industrial players in so-called companion specifications. These companion specifications define the information models for the respective industries.
[0009] To this end, the OPC UA companion specification defines object types, variable types, data types, and reference types, which allow information about device classes to be transmitted and displayed according to the OPC UA standard. These defined types are based on the standards set by the OPC Foundation and on common industry concepts for information transmission and data communication.
[0010] For example, the companion specifications defined by the PLCopen Alliance define compatibility between the OPC UA protocol standard and the communication standard for programmable logic controllers (SPS). Furthermore, by pre-determining in the companion specifications how to map variable structures or function modules (particularly objects) in PLC code or SPS control programs to OPC UA objects, compatibility between different manufacturers can be guaranteed.
[0011] The OPC UA protocol standard, combined with corresponding companion specifications for specific device classes in automation installations, allows the use of devices of the corresponding device class across manufacturers without requiring additional programming effort. For example, the companion specifications define one or more uniform data structures related to the OPC UA protocol standard for devices of the corresponding device class.
[0012] In order to access the OPC UA protocol standard in automation systems and to provide standardized information transmission and display, the information models for the individual elements of the automation system must be converted to the OPC UA information model. Currently, this cannot be achieved without extensive programming effort, where the information elements of the information models of the automation system elements are mapped to the information elements of the OPC UA information model. Summary of the Invention
[0013] Therefore, one object of the present invention is to provide a method that enables a simplified and efficient mapping of the information model of a device group of an automation system to the OPC UA information model of a specific device class. Furthermore, one object of the present invention is to provide a development environment for executing the method according to the present invention.
[0014] This object is achieved by a method and a development environment according to the independent claims. Preferred embodiments are described in the dependent claims.
[0015] According to one aspect of the present invention, a method for linking an object of the data communication standard "Open Platform Communications Unified Architecture (OPC UA)" with an object of a PLC code of a control program of a control unit of an automation system is provided, wherein the method comprises the steps of:
[0016] In the reading step, an OPC UA node set of the companion specification is read, wherein the OPC UA node set includes definitions of OPC UA object types of the OPC UA information model defined in the companion specification;
[0017] In an instantiation step, OPC UA instances of the OPC UA object types of the OPC UA node set are generated for the automation system and the OPC UA instances are combined in an OPC UA instance node set, wherein the generated instances of the OPC UA instance node set describe components of an automation process of the automation system and each have at least one OPC UA object type of the OPC UA node set;
[0018] generating PLC objects in a PLC code of a control program of the automation system in an object generation step, wherein the PLC objects in the PLC code describe components of an automation process of the automation system and each have a PLC object type; and
[0019] In a linking step, the OPC UA instances of the OPC UA instance node set are linked to the PLC objects of the PLC code of the control program, wherein each OPC UA instance is linked to the PLC object of the same component that describes the automation process of the automation system in the control program, wherein by linking the OPC UA instances of the OPC UA instance node set with the PLC objects of the PLC code, information of the PLC object can be accessed in a read or write manner through the OPC UA instance.
[0020] This achieves the technical advantage of providing a method by means of which a link between objects of the OPC UA communication standard and objects of a control program programmed in a PLC programming language can be achieved with significantly reduced programming effort.
[0021] The use of the OPC UA communication standard for standardized communication between automation system components or for the standardized display of information according to the OPC UA information model presupposes the establishment of links between objects defined in the OPC UA communication standard and objects of the automation system's control program, via which information about the individual automation system components is provided by the automation system's programmable logic controller (SPS). The links between the objects of the OPC UA communication standard and the objects of the PLC code of the automation system's control program ensure that, by executing the objects of the OPC UA communication standard, information stored in objects of the control program's PLC code that are linked to the objects of the OPC UA communication standard according to the information model of the OPC UA communication standard can be called up, displayed, and, if necessary, transmitted.
[0022] In the supporting specifications of different industries, the data structure of each OPC UA communication standard object (hereinafter referred to as OPC UA object) used for data communication or information transmission is defined in the form of an OPC UA object type.
[0023] The method according to the invention provides for a simple and efficient linking of OPC UA objects according to OPC UA object types defined in a companion specification with corresponding objects of the PLC code of a control program (hereinafter referred to as PLC objects).
[0024] For this purpose, in a read step the OPC UA Node Set of the Companion Specification is read in. The OPC UA Node Set is a list of all OPC UA object types that are defined according to the information model in the Companion Specification given for the respective industry.
[0025] Object types, whether OPC UA or PLC, are the data types of individual objects of the OPC UA information model or of the PLC code of the control program. Object types can be the data types of objects in the sense of object-oriented programming. Furthermore, object types can include the variable types of variables, the data types of data elements, and the reference types of references between objects, variables, or data elements. Therefore, the object types described below describe the types or structures of objects, variables, data elements, or references defined in the information model of the OPC UA communication standard or the corresponding supporting specifications, or in the PLC programming language used by the control program.
[0026] In the instantiation step, OPC UA instances are generated based on the OPC UA object types of the imported OPC UA node set of the specific automation system and are then combined into an OPC UA instance node set. During the instantiation process, individual components of the automation system that provide for data communication or information transfer based on the OPC UA communication standard are described, taking into account the OPC UA object types defined in the imported node set of the corresponding companion specification. Thus, the OPC UA instances describe components of the automation process controlled by the automation system and have the OPC UA object types defined in the corresponding companion specification.
[0027] A component of an automation process may be a device of an automation system, such as a field device. Furthermore, a component of an automation process may be the entire process or a subprocess of the automation process or any designed variable that can make a quantifiable statement about the state of the automation process.
[0028] Furthermore, in an object generation step, a PLC object is generated in the PLC code of the control program of the automation system. A PLC object is an object, variable, or data element of a control program generated in a PLC programming language and describes a component of the automation process. Each PLC object has a PLC object type, which is a data type or data structure of an object, variable, data element, or reference, and is defined in the respective PLC programming language. For example, a PLC object can be generated during programming of the PLC code of the control program.
[0029] PLC Code The following is the program code programmed in the PLC programming language and executable by the SPS.
[0030] Then, in a linking step, the generated OPC UA instances of the OPC UA instance node set are linked to PLC objects of the PLC code of the control program. Each OPC UA instance of the OPC UA instance node set is linked to exactly one PLC object. The OPC UA instances are linked to exactly one PLC object that describes the same component of the automation process. The link between the OPC UA instance and the PLC object allows access to information about the PLC object by executing the respective OPC UA instance linked to the PLC object.
[0031] Executing an OPC UA instance involves the OPC UA client calling the corresponding OPC UA instance on the OPC UA server. This can include reading information from the OPC UA instance using a corresponding read command from the OPC UA client, or writing information to the OPC UA instance using a corresponding write command from the OPC UA client. Thus, by executing or calling an OPC UA instance on the OPC UA server, the OPC UA client can read information from a PLC object linked to the corresponding OPC UA instance, or write information to the PLC object.
[0032] Access to information of the PLC object includes being able to read information from the PLC object or being able to write information to the PLC object.
[0033] According to one embodiment, the method further comprises: generating PLC object types based on the OPC UA object types of the OPC UA node set of the companion specification in an object type generation step, wherein a corresponding PLC object type is generated for each OPC UA object type.
[0034] This achieves the following technical advantage: a simplified method for linking OPC UA objects and PLC objects can be provided.
[0035] To this end, in the object type generation step, a PLC object type is generated based on the OPC UA object type of the OPC UA node set of the supporting specification. Therefore, in the object type generation step, a corresponding PLC object type is generated for each OPC UA object type defined in the OPC UA node set of the supporting specification, and the data structure of the PLC object type corresponds to the data structure of the OPC UA object type. In the following, if the OPC UA object type and the PLC object type can be clearly mapped to each other, then the OPC UA object type corresponds to the PLC object type. In the following, if the information of the mapped object can be represented by another object without losing information, then the objects can be clearly mapped to each other. In the case where the object has a complex data structure, this is premised on the consistency of the data structure of the object.
[0036] The PLC object types generated in the object type generation step can be used in subsequent programming to create the PLC code of the control program and to instantiate PLC objects in the PLC code. This allows the control program's PLC code to be programmed while taking into account the OPC UA object types defined in the supporting specification. By taking into account the OPC UA object types defined in the supporting specification, the PLC object types used in the control program's PLC code can be selected in a manner that ensures that the PLC objects in the PLC code can be unambiguously mapped to OPC UA objects, simplifying subsequent linking between OPC UA objects and PLC objects.
[0037] By instantiating PLC objects in the PLC code using PLC object types that can be unambiguously mapped to corresponding OPC UA object types, the corresponding PLC objects can be linked with the corresponding OPC UA objects without any problems. This requires much less programming effort than if there were no compatible object types between OPC UA objects and PLC objects and individual properties, functions, variables or references had to be mapped to each other individually.
[0038] Therefore, by the current embodiment of the method according to the invention, the programming of the PLC code of the control program is facilitated, wherein, from the outset, the subsequent linking takes into account the compatibility between the objects of the PLC code and OPC UA objects, the object types of which are defined in the corresponding companion specifications.
[0039] According to one embodiment, the object generation step includes:
[0040] Generate PLC objects based on the OPC UA instances of the OPC UA instance node set, wherein a PLC object of the PLC code is generated for each OPC UA instance of the OPC UA instance node set, the PLC object having a PLC object type corresponding to the OPC UA object type of the corresponding OPC UA instance, and describing the same component of the automation process of the automation system as the corresponding OPC UA instance.
[0041] The following technical advantage is thereby achieved, namely a method for linking OPC UA objects and PLC objects is provided, which method requires little programming effort. To this end, in an object generation step, a PLC object is generated based on the OPC UA instance of the OPC UA instance node set. Here, a PLC object of the PLC code is generated for each OPC UA instance of the OPC UA instance node set, wherein the OPC UA instance and the corresponding PLC object have compatible or interconvertible object types and respectively describe the same component of the automation process. On the one hand, this can reduce the programming effort for generating the PLC code, in that by generating the PLC object based on the OPC UA instance, it is possible to avoid instantiating the PLC object from the PLC object type in the PLC code.
[0042] Due to the instantiation of the OPC UA object type and the corresponding generation of the OPC UA instance in the instantiation step, the object instantiation or description of the automation process component has already been performed. By generating PLC objects based on the OPC UA instance, it is possible to also describe the components of the automation process represented by the OPC UA instance in the form of PLC objects in the PLC code of the control program. This eliminates the need for instantiating PLC objects in the PLC code based on the PLC object type, where each individual component describing the automation process would have to be instantiated according to the PLC object type defined in the PLC code.
[0043] Furthermore, the linking between OPC UA objects or OPC UA instances and PLC objects can be simplified by explicitly converting PLC objects generated based on OPC UA instances into corresponding OPC UA instances. This again avoids the need for complex linking between individual properties, functions, variables, data elements, or references, by explicitly converting the OPC UA instances and PLC objects to be linked to each other. Consequently, for both OPC UA instances and PLC objects, a single link between the two objects as a closed unit is sufficient to also link all properties, methods, or other sub-elements of these objects to each other.
[0044] According to one embodiment, the instantiation step further comprises:
[0045] In a first marking step, marking each OPC UA instance of the OPC UA instance node set with a first assigned attribute;
[0046] The object generation step further comprises:
[0047] marking each PLC object with a second assigned attribute in a second marking step; and
[0048] The linking step further comprises:
[0049] assigning the OPC UA instance to the PLC object in an assigning step based on a first assignment attribute of the OPC UA instance and a second assignment attribute of the PLC object, and
[0050] Each OPC UA instance of the OPC UA instance node set is linked to the PLC object assigned to the OPC UA instance in the assigning step.
[0051] This achieves the following technical advantage: A simplified link between OPC UA instances and PLC objects can be provided.
[0052] In a first labeling step, each OPC UA instance of the OPC UA instance node set is labeled with a first assignment attribute. In a second labeling step, each corresponding PLC object of the PLC code is labeled with a second assignment attribute. Then, in an assignment step, the OPC UA instance and the PLC object are assigned to each other based on the first assignment attribute and the second assignment attribute. Then, in a linking step, a link between the OPC UA instance and the PLC object is performed based on the assignment between the OPC UA instance and the PLC object.
[0053] By marking the OPC UA instance during instantiation in the instantiation step and marking the corresponding PLC object during generation in the object generation step, each OPC UA instance can be unambiguously identified based on the first assignment attribute, and each PLC object can be unambiguously identified based on the second assignment attribute. The unambiguous identifiability of OPC UA instances and PLC objects simplifies the assignment between OPC UA instances and PLC objects. The assignment between OPC UA instances and PLC objects respectively identifies the OPC UA instances and PLC objects that should be linked to each other in the linking step.
[0054] This simplifies the linking of OPC UA instances and PLC objects and can be performed automatically in a linking step based on the first and second assignment properties. The first and second assignment properties can be selected so that an unambiguous assignment between the OPC UA instance and the PLC object is possible. In the following, a tag property is a tag that allows for unambiguous identification of a tagged OPC UA instance or a tagged PLC object.
[0055] According to one embodiment, the object generation step includes:
[0056] Based on the PLC object type generated in the object type generating step, a PLC object is generated in the PLC code of the control program of the automation system.
[0057] This results in the technical advantage of simplified programming of the PLC code of the control program. Furthermore, it provides the advantage of a simplified link between the OPC UA instance and the PLC object, which can be implemented with reduced programming effort.
[0058] To this end, in the object generation step, a PLC object of the PLC code of the control program is generated based on the PLC object type generated in the object type generation step. The PLC object type is generated in the object type generation step based on the OPC UA object type of the supporting specification. Therefore, the generated PLC object type corresponds to the OPC UA object type of the supporting specification and can be unambiguously converted to an OPC UA object type. In the object generation step, the PLC object of the PLC code is generated based on these PLC object types. This ensures that the generated PLC object has an object type that can be unambiguously and completely converted to an object type of an OPC UA instance of the OPC UA instance node set.
[0059] Due to the object type compatibility of OPC UA instances and PLC objects, a link between OPC UA instances and PLC objects is possible. This linking can be performed with minimal programming effort, as the complex linking of individual functions, variables, data elements, or references can be dispensed with. Due to the object type compatibility of PLC objects and OPC UA instances, PLC objects with complex data structures can be linked to OPC UA instances, with the individual OPC UA instances and PLC objects being linked to one another as coherent units.
[0060] Due to the mutually corresponding data structures of OPC UA instances and PLC objects, linking OPC UA instances and PLC objects as coherent units also results in linking individual properties or functions of OPC UA instances and PLC objects. Consequently, additional and complex linking of individual sub-elements of OPC UA instances and corresponding PLC objects is no longer necessary. Embodiments of the method according to the present invention relate to situations in which the PLC code of a control program is programmed taking into account the OPC UA object types defined in the companion specification.
[0061] According to one embodiment, the object type generating step further comprises: creating at least one PLC library comprising the generated PLC object type.
[0062] This achieves the technical advantage of providing a method for linking OPC UA instances and PLC objects that allows for simplified linking with reduced programming effort. By creating at least one PLC library in which the generated PLC object types are stored, the PLC object types can be easily taken into account when programming the PLC code of the control program. This further reduces the programming effort for generating the PLC code of the control program while ensuring that the generated PLC objects can be linked to the corresponding OPC UA instances as coherent units.
[0063] According to one embodiment, the method further comprises: in a document generation step, generating at least one extensible markup language XML document according to regulations of the PLCopen Alliance, wherein the XML document includes the generated PLC object type and / or the generated PLC object.
[0064] This achieves the technical advantage that the method according to the present invention can be executed in any development environment. In the document generation step, at least one XML document is generated according to the specifications of the PLCopen Alliance, and the XML document includes PLC object types and / or PLC objects. The generated XML document has a data format known as PLCOpenXML defined by the PLCOpen Alliance and can be read in by any development environment. The generated PLC object types or generated PLC objects can be taken into account in the corresponding development environment when generating PLC code. For this reason, a wide range of applications of the method according to the present invention is achieved and further contributions are made to process standardization in automation technology. Alternatively, the PLCOpenXML document can include the generated PLC code of the control program, wherein the PLC code can include the generated PLC object types or the generated PLC objects.
[0065] According to a second aspect of the present invention, a development environment for executing a method for linking an OPC UA node with an object of a PLC code of a control unit of an automation system is provided, wherein the development environment comprises:
[0066] A first development module, wherein the first development module is configured to
[0067] reading in an OPC UA node set of at least one OPC UA companion specification, wherein the OPC UA node set includes definitions of OPC UA object types of an OPC UA information model defined in the companion specification,
[0068] Based on the OPC UA object type of the read OPC UA node set, generate the PLC object type corresponding to the OPC UA object type, and
[0069] An OPC UA instance node set of instances of the OPC UA object type of the OPC UA node set is read into the automation system, wherein the OPC UA instances of the OPC UA instance node set describe components of an automation process of the automation system and respectively have the OPC UA object type of the OPC UA node set, and a PLC object corresponding to the OPC UA instance is generated based on the OPC UA instances of the read-in OPC UA instance node set.
[0070] This achieves the technical advantage that a development environment can be provided, which is configured to execute the method according to the invention for linking an OPC UA instance and a PLC object.
[0071] The development environment includes a first development module and a second development module. The first development module is configured to execute the reading step of the method according to the present invention and read in an OPC UA node set from the OPC UA companion specification. Furthermore, the first development module is configured to execute the object type generation step and generate corresponding PLC object types based on the OPC UA object types from the read OPC UA node set. Thus, PLC object types can be automatically generated based on the corresponding OPC UA object types from the companion specification by executing the first development module. This ensures simple processing and problem-free generation of PLC object types.
[0072] Furthermore, the first development module is configured to read an OPC UA instance node set of an OPC UA instance of an OPC UA object type and generate a corresponding PLC object based on the OPC UA instance. This enables automatic generation of a PLC object having a PLC object type corresponding to the OPC UA object type of the corresponding OPC UA instance, so that the generated PLC object can be seamlessly linked to the corresponding OPC UA instance. This also enables automatic and seamless linking of the OPC UA instance and the corresponding PLC object.
[0073] According to one embodiment, the OPC UA Node Set and the OPC UA Instance Node Set are combined in one document.
[0074] According to one embodiment, the development environment further includes:
[0075] The second development module, wherein the second development module is set to
[0076] read in at least one OPC UA Node Set of at least one OPC UA Companion Specification,
[0077] Display the OPC UA object types of the imported OPC UA node set in a graphical environment, and
[0078] enabling a user to generate an OPC UA instance for the automation system from the OPC UA object type in the graphical environment and to produce an OPC UA instance node set, wherein the OPC UA instances of the OPC UA instance node set describe components of an automation process of the automation system and respectively have the OPC UA object type of the OPC UA node set, and
[0079] The OPC UA instances of the OPC UA instance node set and the PLC objects of the PLC code of the control program of the automation system are displayed in the graphical environment, and a user is enabled to create links between the OPC UA instances of the OPC UA instance node set and the PLC objects of the PLC code in the graphical environment, wherein the links between the OPC UA instances of the OPC UA instance node set and the PLC objects of the PLC code enable access to information of the PLC objects by executing the OPC UA instances.
[0080] This achieves the technical advantage of providing a development environment that is configured to execute the method according to the invention for linking an OPC UA instance and a PLC object.
[0081] The second development module is configured to read an OPC UA node set from the OPC UA companion specification, display the OPC UA object types of the read OPC UA node set in a graphical environment, and enable a user to generate an OPC UA instance for a specific automation system based on the OPC UA object types in the graphical environment. The user can select a corresponding OPC UA object type from a list of OPC UA object types and, using provided input options, enter values for a component to be instantiated for an automation process of the automation system into the selected OPC UA object type, thereby instantiating the component. This provides an easy-to-use development environment for instantiating OPC UA instances.
[0082] The second development module is further configured to execute a linking step and link the OPC UA instance and the PLC object to each other. To this end, the second development module is configured to display the OPC UA instance and the PLC object in a graphical environment and enable a user to create a link between the OPC UA instance and the PLC object in the graphical environment. Thus, within the graphical environment of the second development module, a user can easily link the OPC UA instance and the PLC object by selecting the OPC UA instance and the PLC object to be linked from corresponding lists and, by inputting corresponding options, generating a link between the selected OPC UA instance and the PLC object. This ensures that linking the OPC UA instance and the PLC object can be easily executed.
[0083] According to one embodiment, the development environment is further configured to generate an XML document, in particular to generate a PLCopenXML document according to the specification of the PLCopen Alliance, wherein the XML document includes the generated PLC object type and / or PLC object.
[0084] This achieves the technical advantage of providing a widely usable development environment. By generating a PLCopenXML document in which the generated PLC object types and / or PLC objects are combined, the generated PLC object types and / or PLC objects can be further processed in any other development environment and integrated into the corresponding PLC code of the control program. This achieves a high degree of intercompatibility and represents a further step towards process standardization in automation technology. BRIEF DESCRIPTION OF THE DRAWINGS
[0085] The present invention is explained in more detail based on the accompanying drawings.
[0086] Figure 1 A flow chart showing a method for linking objects of the data communication standard "Open Platform Communications Unified Architecture OPC UA" with objects of a PLC code of a control program of a control unit of an automation system according to one embodiment is shown;
[0087] Figure 2 A flow chart showing a method for linking objects of the data communication standard “Open Platform Communications Unified Architecture OPC UA” with objects of a PLC code of a control program of a control unit of an automation system according to another embodiment is shown;
[0088] Figure 3 A flow chart showing a method for linking objects of the data communication standard “Open Platform Communications Unified Architecture OPC UA” with objects of a PLC code of a control program of a control unit of an automation system according to another embodiment is shown;
[0089] Figure 4 A flow chart showing a method for linking objects of the data communication standard “Open Platform Communications Unified Architecture OPC UA” with objects of a PLC code of a control program of a control unit of an automation system according to another embodiment; and
[0090] Figure 5 A schematic diagram of an automation system shows a development environment for executing a method for linking an OPC UA node with an object of a PLC code of a control unit of the automation system according to one embodiment. DETAILED DESCRIPTION
[0091] Figure 1A flow chart of a method 100 for linking objects of the data communication standard “Open Platform Communications Unified Architecture (OPC UA)” with objects of a PLC code of a control program of a control unit of an automation system according to one embodiment is shown.
[0092] Method 100 may involve Figure 5 The automation system shown is similar to the automation system.
[0093] according to Figure 1 In the embodiment, the method 100 includes the following steps:
[0094] In a reading step 101 , an OPC UA node set of the companion specification is read in, wherein the OPC UA node set includes definitions of OPC UA object types of the OPC UA information model defined in the companion specification;
[0095] In an instantiation step 103 , OPC UA instances of the OPC UA object type of the OPC UA node set are generated for the automation system and the OPC UA instances are grouped in an OPC UA instance node set, wherein the generated instances of the OPC UA instance node set describe components of an automation process of the automation system and each have an OPC UA object type of the OPC UA node set;
[0096] In an object generation step 105 , PLC objects are generated in a PLC code of a control program of the automation system, wherein the PLC objects in the PLC code describe components of the automation system and each have a PLC object type; and
[0097] In linking step 107, the OPC UA instances of the OPC UA instance node set are linked with the PLC objects of the PLC code of the control program, wherein each OPC UA instance is linked with the PLC object of exactly the same component of the automation process of the automation system described in the control program, wherein linking the OPC UA instances of the OPC UA instance node set with the PLC objects of the PLC code makes it possible to access information of the PLC objects by executing the OPC UA instances.
[0098] Method 100 according to the present invention is used to link OPC UA objects or OPC UA instances of the OPC UA communication standard with PLC objects in the PLC code of a control program of an automation system. In order to use the OPC UA communication standard for communication between units of an automation system, such as between a management-level computer and a control unit of an automation system, or to provide information in an information model standardized by the OPC UA communication standard, a link between objects of the OPC UA communication standard and objects in the PLC code of the control program of the automation system is required. This link ensures that when an OPC UA object located in the address space of an OPC UA server is called, corresponding information about the component of the automation process of the automation system represented by the OPC UA object can be accessed.
[0099] In the PLC code of the control program, components of the automation process to be controlled are represented by corresponding PLC objects, and information related to the corresponding components of the automation process is stored in the corresponding PLC objects in the PLC code. Therefore, in order to enable an OPC UA client to query an OPC UA server to execute or call an OPC UA object and access information about the corresponding components of the automation process, a link must be established between an OPC UA object located in the address space of the OPC UA server and a corresponding PLC object in the PLC code of the control program, where the information related to the corresponding components of the automation process is stored. Only through the corresponding link between the OPC UA object and the corresponding PLC object can the information of the PLC object be displayed according to the information model defined by the OPC UA communication standard, and corresponding data communication can be performed based on the OPC UA communication standard.
[0100] To link OPC UA objects with PLC objects in the PLC code of the control program of the automation system to be controlled, a node set of the companion specification is read in a read step 101. The OPC UA node set includes definitions of OPC UA object types of the OPC UA information model defined in the companion specification. The object types of the OPC UA node set define data structures for objects, functions, variables, data units, or references, which are used to construct data and display information according to the defined information model.
[0101] Subsequently, in an instantiation step 103, an OPC UA instance is generated for the specific automation system based on the OPC UA object type of the OPC UA node set, and the generated OPC UA instance is combined in an OPC UA instance node set. The OPC UA instance is based on a specific OPC UA object type of the read-in OPC UA node set and describes a component of the automation process to be controlled by the automation system.
[0102] In this context, a component of an automation process may be a device of the automation system, a subprocess of the automation process, a measured value or any other variable which allows quantitative statements to be made about an aspect of the automation process to be controlled.
[0103] For example, a component could be a sensor of the automation system, and the corresponding OPC UA instance could include various variables describing the corresponding sensor, such as the sensor's measured value, its measuring range, and other sensor functionality. Each generated OPC UA instance has an OPC UA object type defined in the OPC UA node set that defines the supporting specification for this component of the automation process. An OPC UA object type defines a data structure that displays information about the corresponding component or associated PLC object.
[0104] In object generation step 105, PLC objects are generated within the PLC code of the automation system's control program. These PLC objects are instantiated data structures within the PLC code and each describe a component of the automation process to be controlled. Each PLC object has a PLC object type, which defines the data structure of the PLC object within the PLC code.
[0105] The PLC object type can be an object type, a variable type, a data unit type or a reference type in the sense of object-oriented programming. The object generation step 105 can be performed before, after or at the same time as the instantiation step 103. The object generation step 105 can be performed during the programming of the PLC code of the control program. Figure 1 In an embodiment of the invention, the method 100 according to the invention relates to the case where the PLC code of the control program has been executed before the instantiation of the OPC UA object type of the companion specification, so that the programming of the PLC code of the control program is performed taking into account the information model defined in the companion specification.
[0106] Alternatively, the method 100 may handle the case where the programming of the PLC code of the control program is performed after or simultaneously with the instantiation step 103 , thereby considering the information model defined by the companion specification when generating the PLC code of the control program.
[0107] After the OPC UA instance is generated in instantiation step 103 and the PLC object is generated in object generation step 105, the OPC UA instance of the OPC UA instance node set is linked to the PLC object of the PLC code in linking step 107. Each OPC UA instance is linked to exactly one PLC object that describes the same component of the automation process. The established link between the OPC UA instance and the PLC object ensures that, by executing or calling an OPC UA instance located in the address space of an OPC UA server, the OPC UA client can access information about the PLC object linked to the called or executed OPC UA instance.
[0108] Therefore, by calling or executing an OPC UA instance, an OPC UA client can read information from the PLC objects linked to that OPC UA instance or modify that information using corresponding write commands. By linking the OPC UA instance with the corresponding PLC objects in the PLC code of the automation system's control program, users can access information related to the automation process controlled by that automation system via the OPC UA communication standard. The information provided via the OPC UA communication standard is presented in a standardized format based on a defined information model and can be used by any user for any process.
[0109] Figure 2 A flow chart of a method 100 for linking objects of the “Open Platform Communications Unified Architecture (OPC UA)” data communication standard with objects of a PLC code of a control program of a control unit of an automation system according to another embodiment is shown.
[0110] Figure 2 The implementation in Figure 1 and including Figure 1 All method steps of the embodiment in the present invention are described in detail. These steps will not be explained again below.
[0111] In object type generation step 109, a corresponding PLC object type for the control program's PLC code is generated based on the OPC UA object type of the OPC UA node set read in step 101. The generated PLC object type has a data structure corresponding to the data structure of the OPC UA object type of the OPC UA node set. The generated PLC object type defines the data structure of an object in the PLC code in the sense of object-oriented programming, the data structure of a variable in the PLC code, the data structure of a data unit in the PLC code, or the data structure of a reference type in the PLC code, and is used to generate objects, variables, data units, and references in subsequent programming of the control program's PLC code.
[0112] By generating PLC object types from the imported OPC UA object types based on the OPC UA node set of the Companion Specification, the PLC code of the control program can be programmed taking into account the data structure of the OPC UA objects defined in the Companion Specification. Thus, the PLC code of the control program can be structured from the outset to enable a subsequent link to the OPC UA objects or OPC UA instances required for standardized data communication based on the OPC UA communication standard or for the standardized display of information based on the information models defined in the corresponding Companion Specification.
[0113] The PLC object types generated in the object type generation step 109 may be arranged in a corresponding library, which may be used to later program the PLC code of the control program to define the data structure of each PLC object.
[0114] In addition to the PLC object types generated based on the OPC UA object types of the OPC UA node set, the business logic contained in the corresponding supporting specification can be stored in the generated one or more libraries. For example, the business logic defined in the supporting specification can include a detailed description of the objects and processes or procedures defined in the supporting specification. In addition, the business logic can describe various relationships between the various objects defined in the supporting specification. Generally, the business logic can include any information that is not limited to determining the automation system, but rather general processes or relationships that are important in the industry described by the supporting specification. Such business logic defined in the supporting specification can be read in the reading step 101 and transmitted with the corresponding PLC code in the object type generation step 109 and stored in the generated library so that the information contained in the business logic can be taken into account when programming the PLC code of the control program at a later time.
[0115] After the PLC object type is generated in the object type generation step 109, a PLC object of the PLC code of the control program is generated in the object generation step 105. Figure 2 In the embodiment, a PLC object is generated based on the PLC object type generated in object type generation step 109. Therefore, the premise is that the generated PLC object has a data structure corresponding to the PLC object type, which is in turn generated based on the OPC UA object type defined in the OPC UA node set. This ensures that the generated PLC object has a data structure corresponding to the OPC UA instance generated in instantiation step 103.
[0116] exist Figure 2In this embodiment, the OPC UA instance generated in instantiation step 103 is used to generate PLC objects. This generation corresponds to the instantiation of PLC object types used to describe the various components of the automation process controlled by the automation system. Thus, the OPC UA instance serves as the basis for the PLC objects to be generated. Therefore, to generate the PLC objects in the PLC code of the control program, it is only necessary to display the information stored in the OPC UA instance regarding the components of the automation process to be displayed in the PLC code, based on the PLC object types generated in object type generation step 109. This avoids the need for tedious instantiation of individual PLC object types to describe the corresponding components of the automation process.
[0117] The PLC object types generated in this way contain information about the OPC UA instance and each have one of the generated PLC object types. The PLC objects generated in this way describe the components of the automation process to be controlled in the PLC code of the control program, which are described by the corresponding OPC UA instance in the OPC UA instance node set.
[0118] exist Figure 2 In an embodiment of the invention, the case is described where the programming of the PLC code of the control program is performed based on a previously read-in companion specification. As a result, the requirements for standardized data communication based on the OPC UA communication standard defined in the companion specification can be used directly for the programming of the PLC code of the control program, eliminating the need for a tedious linking of OPC UA instances and PLC objects later on. By generating a PLC object based on a PLC object type and based on the OPC UA instance generated in the instantiation step 103, which PLC object type is in turn generated based on the OPC UA object type defined in the companion specification, the generated PLC object has a data structure that is compatible with the data structure of the generated OPC UA instance, so that the linking between the generated OPC UA instance and the generated PLC object of the PLC code can be performed automatically by the OPC UA server with little or no programming effort.
[0119] Thus, in linking step 107, the generated OPC UA instance and the corresponding PLC object can be linked to each other by linking the OPC UA instance and the PLC object as coherent units. Thus, only one link is required for each pair of OPC UA instances and PLC objects to be linked, and no explicit linking of the subunits of the OPC UA instance or the subunits of the PLC object is required. Because the OPC UA instance and the corresponding PLC object to be linked have the same data structure, a unified link between the OPC UA instance as a coherent unit and the PLC object, which is also a coherent unit, is sufficient to link each subunit of the OPC UA instance with the corresponding subunit of the PLC object. For example, if a subunit of the OPC UA instance is executed or called, the corresponding PLC object is referenced via the corresponding link, and information about the corresponding subunit of the PLC object can be accessed via the same data structure of the PLC object, without the need to explicitly link each subunit of the OPC UA instance with the corresponding subunit of the PLC object.
[0120] Figure 3 A flow chart of a method 100 for linking objects of the “Open Platform Communications Unified Architecture (OPC UA)” data communication standard with objects of a PLC code of a control program of a control unit of an automation system according to another embodiment is shown.
[0121] Figure 3 The embodiment shown is based on Figure 2 and including Figure 2 All method steps of the embodiment in the present invention are described in detail. These steps will not be explained again below.
[0122] according to Figure 3 In the embodiment of the instantiation step 103 , the instantiation step 103 includes a first marking step 111 . In the first marking step 111 , a first marking attribute is set for the OPC UA instance generated in the instantiation step 103 .
[0123] The object generation step 105 comprises a second marking step 113. In the second marking step 113, a second marking attribute is set for the PLC object generated in the object generation step 105.
[0124] The first and second tag attributes may be any tags that can unambiguously identify a tagged OPC UA instance or a tagged PLC object. Each generated OPC UA instance may be provided with a separate first tag attribute, thereby unambiguously identifying each generated OPC UA instance based on the first tag attribute. Additionally, each generated PLC object may be provided with a second tag attribute, thereby unambiguously identifying each generated PLC object based on the second tag attribute.
[0125] The first and second marking properties can be selected so that a clear assignment can be made between the respective OPC UA instances and the corresponding PLC objects. For example, the same marking property can be set for an OPC UA instance and for the PLC object that is associated with the OPC UA instance and is to be linked to the OPC UA instance in linking step 107. This allows a clear assignment between the OPC UA instance and the corresponding PLC object via the same marking property.
[0126] Alternatively, only the first tag attribute can be set for the OPC UA instance without tagging the PLC object. For example, the first tag attribute can be the memory location of the PLC object to be linked to the OPC UA instance, thereby explicitly assigning the OPC UA instance based on the memory address of the PLC object to be linked to the OPC UA instance, which is stored in or associated with the OPC UA instance. Alternatively, the OPC UA instance can be assigned a corresponding reference to the PLC object to be assigned to the corresponding OPC UA instance as a tag.
[0127] Alternatively, only the second tag attribute may be set for each PLC object, while the OPC UA instances of the OPC UA instance node set remain untagged. For example, each PLC object may be provided with a reference to the OPC UA instance assigned to the respective PLC object as a tag.
[0128] Linking step 107 includes an assignment step 115. In assignment step 115, an assignment is performed between the OPC UA instance and the PLC object based on a first tag attribute of the OPC UA instance and / or a second tag attribute of the PLC object. Here, the OPC UA instance and the PLC object to be linked to each other in linking step 107 are assigned so that information of the corresponding PLC object can be accessed by calling or executing the OPC UA instance.
[0129] exist Figure 3In the embodiment described in
[105] , a PLC object is generated based on the OPC UA instance in object generation step 105, and the PLC object is assigned to the OPC UA instance from which the PLC object was generated in object generation step 105. Therefore, the assignment between the OPC UA instance and the PLC object is performed for OPC UA instances and PLC objects that describe the same component of the automation process and have the same object type. This generated assignment between the OPC UA instance and the PLC object enables a problem-free linking in linking step 107. For example, a link can be achieved by marking the OPC UA instance and the corresponding PLC object using a reference to the respectively assigned PLC object or OPC UA instance, and using the following communication protocol for the link, with the help of which corresponding information transmission is possible based on the reference to the respectively assigned OPC UA instance or PLC object set as a marker, so that by executing a certain OPC UA instance, the information of the PLC object assigned to the OPC UA instance can be accessed via the corresponding communication protocol, in that data is exchanged between the referenced individual OPC UA instances and PLC objects via the communication protocol.
[0130] Alternatively, the OPC UA instance of the OPC UA node set and the generated PLC object may be linked to each other in other ways, as long as the link ensures that the information of the PLC object assigned to the OPC UA instance can be accessed by executing or calling the OPC UA instance.
[0131] Figure 4 A flow chart of a method 100 for linking objects of the “Open Platform Communications Unified Architecture (OPC UA)” data communication standard with objects of a PLC code of a control program of a control unit of an automation system according to another embodiment is shown.
[0132] Figure 4 The implementation in Figure 3 and including Figure 3 All steps of the embodiment of the present invention are described in detail. These method steps will not be discussed again below.
[0133] After generating a PLC object type in object type generation step 109 and a PLC object in object generation step 105, an XML document, i.e., a PLCOpenXML document, is generated in accordance with the provisions of the PLCopen Alliance in document generation step 117. The generated PLC object type and / or generated PLC object are stored in the XML document. The generated PLCOpenXML document or documents can be read into any development environment in the following programming steps, thereby continuing or ending the programming of the PLC code for the control program in any development environment after generating the PLC object type or generating the PLC object. In addition, the generated PLC object type of the PLCOpenXML document can be used to write additional control programs for other automation systems. The storage of the generated PLC object type and / or generated PLC object in the corresponding PLCOpenXML document enables standardized and platform-independent programming of the PLC code, in that the generated PLCOpenXML document can be read into and processed by any programming environment.
[0134] Alternatively, in the method 100 according to the invention, multiple node sets of different companion specifications can be read in during the reading step 101. In the same manner as in the above-described method steps, each node set read in can be considered to generate a corresponding OPC UA instance and link it with the corresponding PLC object. The method 100 according to the invention allows multiple companion specifications to be considered one after the other by executing the above-described method steps for each node set read in. Alternatively, different companion specifications can be considered simultaneously by simultaneously considering the OPC UA object types of node sets of different companion specifications according to the above-described method steps to generate a corresponding OPC UA instance and link it with the corresponding PLC object.
[0135] Alternatively, method 100 may be used to generate a plurality of PLC codes for a control program or a plurality of control programs for one automation system or a plurality of automation systems.
[0136] Figure 5 A schematic diagram of an automation system 200 with a development environment 211 is shown for executing the method 100 for linking objects of the data communication standard “Open Platform Communications Unified Architecture (OPC UA)” with objects of a PLC code of a control program of the automation system 200 according to the previously described embodiments.
[0137] Figure 5 An automation system 200 is shown, which is configured to carry out the method 100 according to the invention for linking OPC UA objects and PLC objects.
[0138] The automation system 200 comprises a control unit 201 which is connected to field devices 223 via a data bus 221. The field devices 223 may be actuators and sensors commonly found in the industry, via which the automation process of the automation system 200 can be controlled. Figure 5 , three field devices 223 are shown by way of example. However, more or fewer field devices 223 may also be present in the automation system 200 .
[0139] Furthermore, the automation system 200 comprises a data processing unit 203 which is connected to the control unit 201 via a data connection 219. Arranged in the data processing unit 203 is a development environment 211 for executing the method 100 according to the invention for linking OPC UA objects and PLC objects.
[0140] The OPC UA server 205 and the PLC application 209 are integrated into the control unit 201. The PLC application 209 may, for example, include PLC code for a control program of the control unit 201, which is used to control an automation process. The OPC UA server 205 and the PLC application 209 are connected to each other via a data communication interface 217.
[0141] The OPC UA client 207 is installed in the data processing unit 203. In order to execute the method 100 according to the present invention, the development environment 211 includes a first development module 213 and a second development module 215.
[0142] The first development module 213 is configured to execute the read step 101 and read in the OPC UA node set of the OPC UA companion specification. Furthermore, the first development module 213 is configured to execute the object type generation step 109 and generate corresponding PLC object types based on the read OPC UA object types of the OPC UA node set. Furthermore, the first development module 213 is configured to execute the object generation step 105 and generate corresponding PLC objects of the PLC code of the control program of the PLC application 209 based on the OPC UA instance node set of instances of the OPC UA object types of the OPC UA node set generated for the automation system 200.
[0143] The second development module 215 is also configured to read in an OPC UA node set. Furthermore, the second development module 215 includes a graphical environment in which the second development module 215 can display the OPC UA object types of the read-in OPC UA node set to a user. Furthermore, the second development module 215 is configured to enable the user to perform instantiation step 103 in the graphical environment and instantiate the OPC UA object types of the read-in OPC UA node set, as well as to generate corresponding OPC UA instances for corresponding components of the automation process controlled by the automation system 200 and combine them in an OPC UA instance node set. To this end, the second development module 215 is configured to enable the user to display the read-in OPC UA object types of the OPC UA node set of the OPC UA companion specification in the graphical environment in a list or table and to enable the user to generate an OPC UA instance from the displayed OPC UA object types by entering corresponding values via corresponding input options.
[0144] Furthermore, second development module 215 is configured to enable a user to execute linking step 107 in a graphical environment and to generate links between the OPC UA instances of the OPC UA instance node set and the PLC objects of the control program's PLC code. To this end, second development module 215 can be configured to display the generated OPC UA instances and PLC objects in a corresponding list or table in the graphical environment and, via corresponding input options, enable the user to assign the OPC UA instances and PLC objects according to assigning step 115 by setting corresponding assignment properties. With the assignments created between the respective OPC UA instances and PLC objects to be linked, the corresponding objects can be linked by executing linking step 107.
[0145] Furthermore, the development environment 211 is configured to complete the PLC code of the control program based on the generated PLC object type and the generated PLC object, so that the control program can be generated via the development environment 211 based on the PLC code.
[0146] The generated PLC code or generated PLC object types and / or generated PLC objects may be stored or stored in the PLC application 209 on the control unit 201. The OPC UA object types and generated OPC UA instances of the OPC UA node set of the OPC UA companion specification may be arranged in the address space of the OPC UA server 205.
[0147] The link between the OPC UA instances of the address space of the OPC UA server 205 and the PLC objects in the PLC application 209 can be achieved, for example, in the following way, that the OPC UA instances and PLC objects are provided with corresponding allocation properties, such as references to the respective OPC UA instances or PLC objects to be allocated, so that the allocation between the respective OPC UA instances and PLC objects that reference each other is achieved with the help of the application of the corresponding data communication protocol or data communication interface 217.
[0148] References to the corresponding PLC objects (by which the OPC UA instances are assigned to the corresponding PLC objects) can be stored in the corresponding OPC UA instances. Alternatively, the corresponding references can be stored in the OPC UA instance node set.
[0149] Since a link between the OPC UA instance in the address space of the OPC UA server 205 of the control unit 201 and the PLC object in the PLC application 209 is established through the mutual reference of the OPC UA instance and the PLC object assigned to each other, it is guaranteed that when the OPC UA instance is executed or called by the OPC UA client 207 in the address space of the OPC server 205, the OPC UA client 207 can access the information of the PLC object linked to the OPC UA instance called or executed respectively.
[0150] An OPC UA instance in the OPC UA address space of the OPC UA server 205 is executed by the OPC UA client 207. Based on the reference of the executed OPC UA instance, which references the corresponding PLC object in the PLC application 209, the information of the referenced PLC object in the PLC application 209 can be accessed via the communication protocol or the data communication interface 217 and displayed in the executed or called OPC UA instance according to the information model of the corresponding supporting specification.
[0151] The corresponding data communication between the OPC UA server 205 and the OPC UA client 207 of the data processing unit 203 is realized via a data connection 219. For example, the data connection 219 may be an Internet connection and may be based on a corresponding data communication protocol.
[0152] Through development environment 211 and first development module 213 and second development module 215, a user can generate PLC code for a control program of automation system 200 according to method 100 for linking OPC UA instances and PLC objects, taking into account the OPC UA companion specification. Thus, the user can generate corresponding PLC object types based on OPC UA object types defined in the companion specification. These PLC object types can be used to instantiate and generate PLC objects, each of which is used to describe a component of the automation process to be controlled.
[0153] Furthermore, users can generate OPC UA instances based on OPC UA object types to describe components of the automation process to be controlled, and create links or assignments between the generated OPC UA instances and the generated PLC objects. The OPC UA instances and PLC objects generated in this manner can be stored in the address space of an OPC UA server 205 or in a PLC application 209 of a control unit 201 of the automation system 200. The automation process can then be controlled based on the generated PLC objects or generated PLC code, or information can be displayed based on the generated OPC UA instances according to the information model defined by the corresponding companion specification.
[0154] Alternatively, already programmed PLC code of an existing control program can also be considered, and the user can only generate an OPC UA instance with the help of the development environment 211 and produce a corresponding link between the generated OPC UA instance and the PLC objects of the PLC code.
[0155] The data processing unit 203 may be a PC at the management level of the automation system 200. Alternatively, the data processing unit 203 may be an external computer and may communicate data with the automation system 200 via a cloud server, for example. Alternatively, the data processing unit 203 may be another control unit of the automation system 200.
[0156] Alternatively, the OPC UA client 207 and the development environment 211 may be arranged on different data processing units. For example, the development environment 211 may be arranged on a development computer dedicated for development purposes.
[0157] Alternatively, the OPC UA server 205 may be installed on another data processing unit of the automation system 200 that is not the control unit of the automation system 200. Alternatively, the automation system 200 may include multiple control units 201, each of which has at least one OPC UA server 205 installed. Alternatively, multiple OPC UA servers 205 may be installed on the control unit 201 of the automation system 200, each of which is connected via the data communication interface 217 and can perform data communication based on the OPC UA communication standard.
[0158] Alternatively, the development environment 211 can be installed on a cloud server. Alternatively, the development environment 211, in particular the first development module 213 and the second development module 215, can be installed separately on different data processing units 203, so that different processes of the method 100 according to the present invention are executed separately from each other.
[0159] The development environment 211 is configured to execute the method 100 according to the present invention. The development environment 211 is therefore configured to take into account a plurality of OPC UA node sets of a plurality of different supporting specifications according to the method 100. The development environment 211 is also configured to generate a plurality of PLC codes of a control program and / or a plurality of control programs of the automation system 200.
[0160] Reference Signs List
[0161] 100 Methods for linking OPC UA objects with PLC objects
[0162] 101 Reading Steps
[0163] 103 Instantiation Steps
[0164] 105 Object Generation Steps
[0165] 107 Linking Steps
[0166] 109 Object Type Generation Steps
[0167] 111 First Marking Step
[0168] 113 Second Marking Step
[0169] 115 Allocation Steps
[0170] 117 Document Generation Steps
[0171] 200 Automation System
[0172] 201 control unit
[0173] 203 Data Processing Unit
[0174] 205 OPC UA Server
[0175] 207 OPC UA Client
[0176] 209 PLC Application
[0177] 211 Development Environment
[0178] 213 First Development Module
[0179] 215 Second Development Module
[0180] 217 Data Communication Interface
[0181] 219 Data Connection
[0182] 221 Data Bus
[0183] 223 Field Equipment
Claims
1. A method (100) for linking an object of the data communication standard "Open Platform Communications Unified Architecture" (OPC UA) with an object of a PLC code of a control program of a control unit (201) of an automation system (200), the method comprising: In a reading step (101), a first development module (213) of a development environment (211) reads in an OPC UA node set of a companion specification, wherein the OPC UA node set includes definitions of OPC UA object types of an OPC UA information model defined in the companion specification; In an instantiation step (103), OPC UA instances of the OPC UA object types of the OPC UA node set are generated for the automation system (200), and the OPC UA instances are combined in an OPC UA instance node set, wherein the generated instances of the OPC UA instance node set describe components of an automation process of the automation system (200) and each have an OPC UA object type of the OPC UA node set; In an object type generation step (109), the first development module (213) automatically generates a PLC object type based on the OPC UA object type of the OPC UA node set of the supporting specification, wherein a corresponding PLC object type is generated for each OPC UA object type; In an object generation step (105), the first development module (213) automatically generates a PLC object in a PLC code of a control program of the automation system (200) based on the OPC UA instance, wherein the PLC object in the PLC code describes a component of an automation process of the automation system (200) and each has a PLC object type, and wherein the PLC object and the OPC UA instance that respectively describe the same component of the automation process have the same data structure; as well as In a linking step (107), OPC UA instances of the OPC UA instance node set are linked with PLC objects of the PLC code of the control program, wherein each OPC UA instance is linked with exactly one PLC object of the same component describing the automation process of the automation system (200) in the control program, wherein the OPC UA instances and the PLC objects are each linked as a coherent unit, wherein subunits of the OPC UA instances are linked with corresponding subunits of the PLC objects via the link between the OPC UA instance and the PLC object, and wherein by linking the OPC UA instances of the OPC UA instance node set with the PLC objects of the PLC code, information of the PLC objects can be accessed by executing the OPC UA instances.
2. The method (100) according to claim 1, further comprising: Execute OPC UA instance; Displaying information of a PLC object linked to the OPC UA instance in the OPC UA instance; and / or Writing information to a PLC object linked to the OPC UA instance; The information displayed and / or written therein relates to the components of the automation process of the automation system, which are represented by the OPC UA objects.
3. The method (100) of claim 2, wherein executing the OPC UA instance further involves: The OPC UA client (207) calls the OPC UA instance on the OPC UA server (205); Sending a read command and / or a write command from the OPC UA client (207) to the OPC UA server (205); displaying, in the OPC UA instance, information of a PLC object linked to the OPC UA instance requested in the read command; and / or Writing information of the write command into the PLC object linked to the OPC UA instance.
4. The method (100) according to claim 3, wherein the OPC UA server (205) is arranged in a control unit (201) of the automation system (200), wherein the OPC UA client (207) is arranged in a data processing unit (203), wherein the data processing unit (203) and the control unit (201) are connected to each other via a data connection (219), and wherein data communication between the OPC UA client (207) and the OPC UA server (205) is realized via the data connection (219).
5. The method (100) according to any one of the preceding claims, wherein the object generating step (105) comprises: PLC objects are generated based on the OPC UA instances of the OPC UA instance node set, wherein a PLC object of the PLC code is generated for each OPC UA instance of the OPC UA instance node set, the PLC object having a PLC object type corresponding to the OPC UA object type of the corresponding OPC UA instance, and describing the same component of the automation process of the automation system (200) as the corresponding OPC UA instance.
6. The method (100) according to claim 5, wherein the instantiation step (103) further comprises: In a first marking step (111), each OPC UA instance of the OPC UA instance node set is marked with a first assignment attribute, wherein the corresponding OPC UA instance can be unambiguously identified by the first assignment attribute; The object generation step (105) further includes: In a second marking step (113), each PLC object is marked with a second assigned attribute, wherein the respective PLC object can be unambiguously identified by means of the second assigned attribute; and The linking step (107) further comprises: assigning the OPC UA instance to the PLC object in an assigning step (115) based on a first assignment attribute of the OPC UA instance and a second assignment attribute of the PLC object, and Each OPC UA instance of the OPC UA instance node set is linked to the PLC object assigned to the OPC UA instance in the assigning step (115).
7. The method (100) according to claim 6, wherein the linking of the OPC UA instance to the PLC object is realized via a data communication interface (217), wherein information is transmitted between the respectively assigned OPC UA instance and the PLC object via the data communication interface (217) taking into account assignment properties, and wherein executing the OPC UA instance further involves: Data is exchanged between the called OPC UA instance and the linked PLC object via the data communication interface (217).
8. The method (100) according to any one of claims 1 to 4, wherein the object generation step (105) comprises: Based on the PLC object type generated in the object type generation step (109), a PLC object is generated in the PLC code of the control program of the automation system (200).
9. The method (100) according to any one of claims 1 to 4, wherein the object type generating step (109) further comprises: At least one PLC library is created that includes the generated PLC object type.
10. The method (100) according to any one of claims 1 to 4, further comprising: In the document generation step (117), at least one extensible markup language XML document is generated according to the regulations of the PLCopen Alliance, wherein the XML document includes the generated PLC object type and / or the generated PLC object.
11. A development environment (211) for executing the method (100) according to any one of the preceding claims 1 to 10, wherein the development environment (211) comprises: A first development module (213), wherein the first development module (213) is configured to: reading in at least one OPC UA node set of at least one OPC UA companion specification, wherein the at least one OPC UA node set includes definitions of OPC UA object types of an OPC UA information model defined in the companion specification, and Based on the OPC UA object type of the at least one OPC UA node set read in, generating a PLC object type that automatically corresponds to the OPC UA object type, and at least one OPC UA instance node set for reading in instances of an OPC UA object type of the at least one OPC UA node set for the automation system (200), wherein the OPC UA instances of the OPC UA instance node set describe components of an automation process of the automation system (200) and each have an OPC UA object type of the OPC UA node set, and Based on the read OPC UA instance of the at least one OPC UA instance node set, a PLC object automatically corresponding to the OPC UA instance is generated.
12. The development environment (211) according to claim 11, further comprising: A second development module (215), wherein the second development module (215) is configured to: read in at least one OPC UA Node Set of at least one OPC UA Companion Specification, Displaying the OPC UA object types of at least one OPC UA node set read in a graphical environment, and enabling a user in the graphical environment to generate an OPC UA instance for the automation system (200) from the OPC UA object type and generating at least one OPC UA instance node set, wherein the OPC UA instances of the at least one OPC UA instance node set describe components of an automation process of the automation system (200) and respectively have the OPC UA object type of the OPC UA node set, and The method comprises displaying an OPC UA instance of the at least one OPC UA instance node set and a PLC object of a PLC code of a control program of the automation system (200) in the graphical environment, and enabling a user to create a link between the OPC UA instance of the at least one OPC UA instance node set and the PLC object of the PLC code in the graphical environment, wherein the link between the OPC UA instance of the at least one OPC UA instance node set and the PLC object of the PLC code enables access to information of the PLC object by executing the OPC UA instance.
13. The development environment (211) according to claim 11 or 12, wherein the development environment (211) is further configured to generate an XML document according to a specification of the PLCopen Alliance, the XML document including the generated PLC object type and / or PLC object.
14. An automation system (200) comprising a control unit (201), a plurality of field devices (223) connected to the control unit (201) via a data bus (221), and a data processing unit (203), the data processing unit being connected to the control unit (201) via a data connection (219), wherein an OPC UA client (207) and a development environment (211) according to any one of the preceding claims 11 to 13 are provided on the data processing unit (203), wherein an OPC UA server (205) and a PLC application (209) are provided on the control unit (201), the OPC UA server and the PLC application being connected to one another via a data communication interface (217), and wherein the development environment (211) is configured to carry out the method (100) according to any one of the preceding claims 1 to 10.
Citation Information
Patent Citations
Protocol conversion server based on OPC UA standard and ATS system
CN104360844A
Method and system for process controlling of plants in an OPC-UA based machine-to-machine network
CN107567604A