DE102020123509A1 - Method for providing and validating alternative object identifiers and for determining references of alternative object identifiers within an OPC UA-based communication environment - Google Patents
Method for providing and validating alternative object identifiers and for determining references of alternative object identifiers within an OPC UA-based communication environment Download PDFInfo
- Publication number
- DE102020123509A1 DE102020123509A1 DE102020123509.7A DE102020123509A DE102020123509A1 DE 102020123509 A1 DE102020123509 A1 DE 102020123509A1 DE 102020123509 A DE102020123509 A DE 102020123509A DE 102020123509 A1 DE102020123509 A1 DE 102020123509A1
- Authority
- DE
- Germany
- Prior art keywords
- identifier
- object identifier
- additional
- alternative
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
Vorgeschlagen wird ein Verfahren zum Bereitstellen alternativer Objektbezeichner für Objekte eines Adressraums eines Servers (S1, S2) innerhalb einer OPC-UA-basierenden Kommunikationsumgebung (K), wobei jedes Objekt des Adressraums des Servers (S1, S2) durch einen herkömmlichen Objektbezeichner eindeutig bezeichnet ist, wobei wenigstens ein Zusatzbezeichner definiert und in einem Verzeichnis der für diesen Adressraum des Servers (S1, S2) definierten Zusatzbezeichner gespeichert wird, und wobei für jedes Objekt des Adressraum des Servers (S1, S2) ein das Objekt ebenfalls eindeutig bezeichnender alternativer Objektbezeichner gebildet wird, indem der Zusatzbezeichner mit dem herkömmlichen Objektbezeichner des jeweiligen Objekts nach einem bestimmten Schema kombiniert wird. Vorgeschlagen werden ferner ein Verfahren zum Validieren alternativer Objektbezeichner und ein Verfahren zum Ermitteln von Referenzen alternativer Objektbezeichner sowie ein Server, ein System und ein Computerprogrammprodukt ausgebildet zur Durchführung wenigstens eines der Verfahren.A method is proposed for providing alternative object identifiers for objects in an address space of a server (S1, S2) within an OPC UA-based communication environment (K), with each object in the address space of the server (S1, S2) being uniquely identified by a conventional object identifier , at least one additional identifier being defined and stored in a directory of the additional identifier defined for this address space of the server (S1, S2), and an alternative object identifier likewise uniquely identifying the object being formed for each object in the address space of the server (S1, S2) by combining the additional identifier with the conventional object identifier of the respective object according to a specific scheme. A method for validating alternative object identifiers and a method for determining references of alternative object identifiers as well as a server, a system and a computer program product designed to carry out at least one of the methods are also proposed.
Description
Die vorliegende Erfindung betrifft ein Verfahren zum Bereitstellen alternativer Objektbezeichner für Objekte eines Adressraums eines Servers innerhalb einer OPC-UA-basierenden Kommunikationsumgebung, ein Verfahren zum Validieren solcher alternativen Objektbezeichner sowie ein Verfahren zum Ermitteln von Referenzen solcher alternativer Objektbezeichner. Die Erfindung betrifft einen Server, ein System und ein Computerprogrammprodukt, welche ausgebildet sind zur Durchführung wenigstens eines dieser Verfahren.The present invention relates to a method for providing alternative object identifiers for objects of an address space of a server within an OPC UA-based communication environment, a method for validating such alternative object identifiers and a method for determining references of such alternative object identifiers. The invention relates to a server, a system and a computer program product which are designed to carry out at least one of these methods.
IEC 62541 ist ein mehrteiliger Standard für die OPC Unified Architecture (OPC UA), welcher z.B. Protokolle für die sogenannte Machine-to-Machine (M2M) Kommunikation definiert, also für den automatisierten Informationsaustausch zwischen Endgeräten wie Maschinen oder Automaten.IEC 62541 is a multi-part standard for the OPC Unified Architecture (OPC UA) which, for example, defines protocols for so-called machine-to-machine (M2M) communication, i.e. for the automated exchange of information between end devices such as machines or machines.
OPC-UA unterliegt einem Client-Server-Modell, d. h. Server stellen Informationen zur Verfügung, die Clients von den Servern abfragen. Die Funktionalität eines Servers wird den Clients anhand sogenannter Services verfügbar gemacht. Ein Service ermöglicht den Zugriff auf bestimmte Serveraspekte mittels für den jeweiligen Service definierter Anfrage- und Antwortnachrichten (request/response), die zwischen dem Client und dem Server ausgetauscht werden. Dabei werden die Informationen von einem Server den Clients in einem Adressraum des Servers bereitgestellt.OPC UA is subject to a client-server model, i. H. Servers provide information that clients request from the servers. The functionality of a server is made available to the clients using so-called services. A service enables access to certain server aspects by means of request and response messages (request / response) which are defined for the respective service and which are exchanged between the client and the server. The information is provided by a server to the clients in an address space of the server.
Teil 3 des IEC 62541 Standards („Address Space Model“) definiert ein objektorientiertes Konzept eines Adressraumes, insbesondere gemäß der zum Anmeldetag gültigen Version, wobei gemäß Teil 4 des Standards („Services“), insbesondere gemäß der zum Anmeldetag gültigen Version, Objekte durch Knoten (nodes) repräsentiert werden. Knoten haben zum einen Attribute und zum anderen Referenzen, welche auf andere Knoten zeigen und die Kanten eines gerichteten Graphen repräsentieren, so dass es Vorwärts- und Rückwärtsreferenzen geben kann.Part 3 of the IEC 62541 standard (“Address Space Model”) defines an object-oriented concept of an address space, in particular in accordance with the version valid on the filing date, whereby objects are carried out in accordance with Part 4 of the standard (“Services”), in particular in accordance with the version valid on the filing date Nodes are represented. On the one hand, nodes have attributes and, on the other hand, references that point to other nodes and represent the edges of a directed graph, so that there can be forward and backward references.
Clients in einer UPC-UA-basierenden Kommunikationsumgebung können einen solchen durch einen Server bereitgestellten Adressraum durchsuchen (browse), um ausgehend von einem bekannten Wurzelknoten den eindeutigen Bezeichner eines anderen Knotens (nachfolgend auch NodeID genannt) zu ermitteln. Mittels der spezifizierten Dienste (services) wie „DataAccess“ erhalten OPC-UA-Clients beispielsweise lesenden oder schreibenden Zugriff auf Attributwerte eines Knotens eines Adressraums.Clients in a UPC UA-based communication environment can browse such an address space provided by a server in order to determine the unique identifier of another node (hereinafter also called NodeID) based on a known root node. Using the specified services such as "DataAccess", OPC UA clients receive read or write access to attribute values of a node in an address space, for example.
NodeIDs setzen sich in der Regel aus den drei Elementen „namespacelndex“, „identifierType“ und „identifier“ zusammen. Das Element „identifierType“ definiert den Typ des eindeutigen Bezeichners, welcher NUMERIC, STRING, GUID oder BYTESTRING sein kann. Für die Eindeutigkeit jeder NodeID muss jedem Knoten des Adressraums (address space) als Element „identifier“ ein eindeutiger Identifikator gemäß des definierten Bezeichnertyps festgelegt sein. Um Adress- bzw. Bezeichnerkollisionen zu vermeiden und den Adressraum weiter zu unterteilen, kann ein Adressraum mehrere Namensräume (name space) umfassen. Als Element „namespacelndex“ der NodeID muss für jeden Knoten des Adressraums der jeweilige Namensraum des Knotens angegeben sein. Ein Verzeichnis aller Namensräume bzw. Namensraumindizies eines Adressraums ist als Attribut zu einem bekannten Knoten wie dem Wurzelknoten hinterlegt.NodeIDs are usually made up of the three elements "namespacierendex", "identifierType" and "identifier". The "identifierType" element defines the type of the unique identifier, which can be NUMERIC, STRING, GUID or BYTESTRING. For the uniqueness of each NodeID, each node of the address space must be defined as an element "identifier" according to the defined identifier type. In order to avoid address or identifier collisions and to further subdivide the address space, an address space can comprise several name spaces. The respective namespace of the node must be specified for each node of the address space as the “namespacierendex” element of the NodeID. A directory of all namespaces or namespace indexes of an address space is stored as an attribute for a known node such as the root node.
Eine mögliche Anwendung eines OPC-UA-Servers ist es zum Beispiel im Bereich der Automatisierungstechnik, OPC-UA-Clients den Zugriff auf Variablen einer speicherprogrammierbaren Steuerung (programmable logic control, PLC) bereitzustellen. Beispielsweise werden bei Steuerungen auf Basis der PLCnext Technology der Anmelderin die Variablen der Komponenten als Knoten eines Adressraumes eines OPC-UA-Servers aufgeführt, wobei für die eindeutigen Knotenbezeichner der Bezeichnertyp STRING festgelegt ist (vgl.
Problematisch wurde es bisher aber, wenn für den selben Datenbestand eines OPC-UA-Adressraums mehrere Informationsmodelle wie zum Beispiel verschiedene semantische Repräsentationen insbesondere dynamisch implementiert werden sollten oder im Laufe der Zeit Änderungen im Adressraum vorgenommen werden sollten, die Auswirkungen auf bestehende NodeIDs hatten.So far, however, it has been problematic when several information models such as different semantic representations are to be implemented especially dynamically for the same database of an OPC UA address space, or changes are to be made in the address space over time that have an impact on existing NodeIDs.
Die bereits erwähnten Namensräume erlauben zwar eine Strukturierung eines Adressraums. Sie sind aber statischer Natur und würden ein Replizieren von Knoten bzw. Knoteninstanzen in einen anderen Namensraum erfordern, um für den selben Datenbestand eines OPC-UA-Adressraums mehrere Informationsmodelle zu implementieren.The namespaces already mentioned allow structuring of an address space. However, they are of a static nature and would require a replication of nodes or node instances in a different namespace in order to implement several information models for the same database of an OPC UA address space.
Das Konzept der OPC-UA-Sichten (views) erlaub zwar das Organisieren und Zuschneiden von Adressräumen auf spezifische Aufgaben und Anwendungsfälle. Sie dienen aber eher als Einstiegspunkte oder Filter für einen Adressraum. The concept of the OPC UA views allows the organization and tailoring of address spaces to specific tasks and use cases. However, they serve more as entry points or filters for an address space.
Eine Aufgabe der vorliegenden Erfindung liegt somit darin, eine Möglichkeit zur Beseitigung wenigstens eines der genannten Nachteile anzugeben.One object of the present invention is therefore to provide a possibility for eliminating at least one of the disadvantages mentioned.
Als Lösung schlägt die Erfindung ein Verfahren mit den Merkmalen des unabhängigen Patentanspruchs 1, ein Verfahren mit den Merkmalen des unabhängigen Patentanspruchs 6 sowie ein Verfahren mit den Merkmalen des unabhängigen Patentanspruchs 9 vor. Ferner schlägt die Erfindung einen Server gemäß des unabhängigen Patentanspruchs 14, ein System gemäß des unabhängigen Patentanspruchs 15 sowie ein Computerprogrammprodukt gemäß des unabhängigen Patentanspruchs 16 vor.As a solution, the invention proposes a method with the features of
Weitere vorteilhafte Ausgestaltungen der erfindungsgemäßen Steuerungsanordnung sind in den abhängigen Patentansprüchen angegeben.Further advantageous configurations of the control arrangement according to the invention are specified in the dependent claims.
Der Erfindung liegt die Idee zugrunde, durch ein neues Adressierungsschema, welches insbesondere zusätzlich zum herkömmlichen Adressierungsschema implementiert werden kann, mehrere verschiedene Repräsentationen desselben Datenbestands eines OPC-UA-Adressraums zu ermöglichen. Dies erlaubt verschiedene Informationsmodelle und insbesondere den Zugriff auf Objekte bzw. Knoten in verschiedenen Kontexten. Das neue Adressierungsschema basiert auf alternativen Objektbezeichnern, welche im Wesentlichen die bestehenden herkömmlichen Objektbezeichner mit einem Zusatzbezeichner kombinieren, wobei der alternative Bezeichner als Repräsentant, Alias oder Synonym des herkömmlichen Bezeichners eines Objekts bzw. Knotens zu verstehen ist. Ein wesentlicher Vorteil der Erfindung, welcher später noch näher erläutert wird, ist dabei, dass ein OPC-UA-Server zur Implementierung dieses neuen Adressierungsschemas im Wesentlichen keine zusätzlichen Rechen- oder Speicherressourcen benötigt.The invention is based on the idea of enabling several different representations of the same database of an OPC UA address space by means of a new addressing scheme, which can be implemented in addition to the conventional addressing scheme. This allows different information models and, in particular, access to objects or nodes in different contexts. The new addressing scheme is based on alternative object identifiers which essentially combine the existing conventional object identifiers with an additional identifier, the alternative identifier being understood as a representative, alias or synonym of the conventional identifier of an object or node. An essential advantage of the invention, which will be explained in more detail later, is that an OPC UA server essentially does not require any additional computing or memory resources to implement this new addressing scheme.
Vorgeschlagen wird demnach ein Verfahren zum Bereitstellen alternativer Objektbezeichner für Objekte eines Adressraums eines Servers innerhalb einer OPC-UA-basierenden Kommunikationsumgebung (
Sowohl bei diesem wie auch bei den anderen erfindungsgemäßen Verfahren können die Objekte durch Knoten repräsentiert sein, so dass es sich bei den Objektbezeichnern um Knotenbezeichner (NodeIDs) handelt. Ferner kann ein Adressraum in Namensräume unterteilt sein, wobei das jeweilige Verfahren für die Objekte bzw. Knoten eines Namensraums oder mehrerer, insbesondere aller, Namensräume eines Adressraums angewandt bzw. ausgeführt werden kann.Both in this and in the other methods according to the invention, the objects can be represented by nodes, so that the object identifiers are node identifiers (NodeIDs). Furthermore, an address space can be subdivided into name spaces, with the respective method being able to be used or executed for the objects or nodes of a name space or several, in particular all, name spaces of an address space.
Vorteilhaft ist dabei, dass ein Anwender die alternativen Objektbezeichner als solche klar erkennen und von den herkömmlichen Objektbezeichnern einfach unterscheiden kann.The advantage here is that a user can clearly recognize the alternative object identifier as such and can easily differentiate it from the conventional object identifier.
Die alternativen Objektbezeichner bieten eine große Flexibilität hinsichtlich im Laufe der Zeit gegebenenfalls erforderlicher Änderungen im Adressraum, wie die Vergabe neuer Bezeichner für bestehende Objekte bzw. Knoten, denn solche Änderungen wirken sich Dank des neuen Adressierungsschemas nicht auf die herkömmlichen, sondern nur auf die alternativen Objekt- bzw. Knotenbezeichner aus. The alternative object identifiers offer great flexibility with regard to any changes that may be required in the address space over time, such as the assignment of new identifiers for existing objects or nodes, because thanks to the new addressing scheme, such changes do not affect the conventional objects, but only the alternative objects - or node identifier.
Von Vorteil ist dabei außerdem, dass die alternativen Objektbezeichner aus OPC-UA-Protokollsicht gleich behandelt werden können wie die herkömmlichen Objektbezeichner.Another advantage here is that the alternative object identifiers from the OPC UA protocol point of view can be treated in the same way as the conventional object identifiers.
Gemäß einer ersten Ausbildung des Verfahrens gibt das Schema vor, dass wenn der herkömmliche Objektbezeichner vom Bezeichnertyp STRING ist, der Zusatzbezeichner ebenfalls vom Bezeichnertyp STRING ist und zwei Zusatzbezeichnerteile umfasst, wobei der erste Zusatzbezeichnerteil eine frei definierbare Zeichenkette ist und der zweite Zusatzbezeichnerteil ein frei definierbares Separatorzeichen ist.According to a first embodiment of the method, the scheme specifies that if the conventional object identifier is of the identifier type STRING, the additional identifier is also of the identifier type STRING and comprises two additional identifier parts, the first additional identifier part being a freely definable character string and the second additional identifier part being a freely definable separator character is.
In einer zweckmäßigen Weiterbildung gibt das Schema vor, dass der alternative Objektbezeichner ebenfalls vom Bezeichnertyp STRING ist und aus den drei Teilen erster Zusatzbezeichnerteil, zweiter Zusatzbezeichnerteil und herkömmlicher Objektbezeichner des jeweiligen Objekts in dieser oder umgekehrter Kombinationsreihenfolge gebildet wird.In an expedient development, the scheme specifies that the alternative object identifier is also of the identifier type STRING and is formed from the three parts of the first additional identifier part, second additional identifier part and conventional object identifier of the respective object in this or the reverse combination order.
Somit ist das neue Adressierungsschema sehr einfach implementierbar für Adressräume mit herkömmlichen Objektbezeichnern vom Bezeichnertyp STRING.The new addressing scheme can thus be implemented very easily for address spaces with conventional object identifiers of the identifier type STRING.
Gemäß einer anderen Ausbildung des Verfahrens gibt das Schema vor, dass wenn der herkömmliche Objektbezeichner vom Bezeichnertyp NUMERIC ist, der Zusatzbezeichner ebenfalls vom Bezeichnertyp NUMERIC und ein Vielfaches eines Basiswertes ist, wobei der Basiswert größer ist als der um 1 erhöhte größte numerische Wert unter allen herkömmlichen Objektbezeichnern der Objekte des Adressraums des Servers.According to another embodiment of the method, the scheme specifies that if the conventional object identifier is of the identifier type NUMERIC, the additional identifier is also of the identifier type NUMERIC and a multiple of a base value, the base value being greater than the largest numerical value increased by 1 among all conventional ones Object identifiers of the objects in the address space of the server.
In einer zweckmäßigen Weiterbildung gibt das Schema vor, dass der alternative Objektbezeichner ebenfalls vom Bezeichnertyp NUMERIC ist und durch Addieren des Zusatzbezeichners und des herkömmlichen Objektbezeichners des jeweiligen Objekts gebildet wird. In diesem Fall entspricht also der alternative Objektbezeichner der Summe der numerischen Werte des Zusatzbezeichners und des herkömmlichen Objektbezeichners.In an expedient development, the scheme specifies that the alternative The object identifier is also of the identifier type NUMERIC and is formed by adding the additional identifier and the conventional object identifier of the respective object. In this case, the alternative object identifier corresponds to the sum of the numerical values of the additional identifier and the conventional object identifier.
Somit ist das neue Adressierungsschema ebenfalls sehr einfach implementierbar für Adressräume mit herkömmlichen Objektbezeichnern vom Bezeichnertyp NUMERIC.The new addressing scheme can thus also be implemented very easily for address spaces with conventional object identifiers of the identifier type NUMERIC.
Vorgeschlagen wird außerdem ein Verfahren zum Validieren eines alternativen Objektbezeichners innerhalb einer OPC-UA-basierenden Kommunikationsumgebung, wobei jedes Objekt eines Adressraums eines Servers durch einen herkömmlichen Objektbezeichner eindeutig bezeichnet ist und zusätzlich durch wenigstens einen alternativen Objektbezeichner eindeutig bezeichnet ist, umfassend die Schritte:
- - Entnehmen eines alternativen Objektbezeichners aus einer Anfrage eines Clients,
- - Teilen des alternativen Objektbezeichners nach einem bestimmten Schema unter Anwendung eines Teilungskriteriums, so dass anschließend ein herkömmlicher Objektbezeichner und ein Zusatzbezeichner vorliegen,
- - Beurteilen des herkömmlichen Objektbezeichners als valide, wenn er in einem Verzeichnis der in diesem Adressraum des Servers vorhandenen herkömmlichen Objektbezeichner ermittelt werden kann,
- - Beurteilen des Zusatzbezeichners als valide, wenn er in einem Verzeichnis der für diesen Adressraum des Servers definierten Zusatzbezeichner ermittelt werden kann,
- - Beurteilen des alternative Objektbezeichners als valide, wenn zuvor sowohl der herkömmliche Objektbezeichner als auch der Zusatzbezeichner als valide beurteilt wurden,
- - Beurteilen des alternativen Objektbezeichners als nicht valide, wenn zuvor der herkömmliche Objektbezeichner und/oder der Zusatzbezeichner als nicht valide beurteilt wurden.
- - Extracting an alternative object identifier from a request from a client,
- - Split the alternative object identifier according to a certain scheme using a division criterion, so that a conventional object identifier and an additional identifier are then available,
- - Assessment of the conventional object identifier as valid if it can be determined in a directory of the conventional object identifier present in this address space of the server,
- - Assessment of the additional identifier as valid if it can be determined in a directory of the additional identifier defined for this address space of the server,
- - Assessment of the alternative object identifier as valid if both the conventional object identifier and the additional identifier were previously assessed as valid,
- - Assessment of the alternative object identifier as not valid if the conventional object identifier and / or the additional identifier were previously assessed as not valid.
Da die Anfrage eines OPC-UA-Clients grundsätzlich irgendeinen Objektbezeichner enthalten könnte, muss zunächst, insbesondere seitens des OPC-UA-Server, validiert werden, dass der angefragte alternative Objektbezeichner tatsächlich ein gültiger ist, indem validiert wird, dass der darin enthaltene Zusatzbezeichner gültig ist und der darin enthaltene herkömmliche Objektbezeichner tatsächlich Teil des Adressraums ist.Since the request from an OPC UA client could basically contain any object identifier, it must first be validated, in particular by the OPC UA server, that the requested alternative object identifier is actually a valid one by validating that the additional identifier contained therein is valid and the conventional object identifier it contains is actually part of the address space.
Gemäß einer ersten Ausbildung des Verfahrens gibt das Schema vor, dass wenn der alternative Objektbezeichner vom Bezeichnertyp STRING ist, als Teilungskriterium ein Separatorzeichen verwendet wird und das Separatorzeichen innerhalb der gesamten Zeichenkette des alternativen Objektbezeichners als zweiter Zusatzsbezeichnerteil identifiziert wird, und wobei der Teil der Zeichenkette vor dem Separatorzeichen als erster Zusatzbezeichnerteil und der Teil der Zeichenkette nach dem Separatorzeichen als herkömmlicher Objektbezeichner identifiziert und weiterverarbeitet wird oder der Teil der Zeichenkette vor dem Separatorzeichen als herkömmlicher Objektbezeichner und der Teil der Zeichenkette nach dem Separatorzeichen als erster Zusatzbezeichnerteil identifiziert und weiterverarbeite wird.According to a first embodiment of the method, the scheme specifies that if the alternative object identifier is of the identifier type STRING, a separator character is used as the division criterion and the separator character is identified within the entire character string of the alternative object identifier as the second additional identifier part, and the part of the character string is specified the separator character as the first additional identifier part and the part of the character string after the separator character is identified and further processed as a conventional object identifier or the part of the character string before the separator character is identified as a conventional object identifier and the part of the character string after the separator character is identified and further processed as the first additional identifier part.
Gemäß einer anderen Ausbildung des Verfahrens gibt das Schema vor, dass wenn der alternative Objektbezeichner vom Bezeichnertyp NUMERIC ist, als Teilungskriterium ein Basiswert verwendet wird und der alternative Objektbezeichner durch den Basiswert dividiert wird, wobei der Ganzzahlquotient dieser Division, insbesondere nach erneuter Multiplikation mit dem Basiswert Base als Zusatzbezeichner und der Rest dieser Division als herkömmlicher Objektbezeichner identifiziert und weiterverarbeitet wird.According to another embodiment of the method, the scheme specifies that if the alternative object identifier is of the identifier type NUMERIC, a base value is used as the division criterion and the alternative object identifier is divided by the base value, the integer quotient of this division, in particular after repeated multiplication by the base value Base is identified as an additional identifier and the rest of this division is identified and processed as a conventional object identifier.
Somit können angefragte Objektbezeichner vom Bezeichnertyp STRING aber auch vom Bezeichnertyp NUMERIC validiert werden.In this way, requested object identifiers of the identifier type STRING but also of the identifier type NUMERIC can be validated.
Wenn der alternative Objektbezeichner vom Bezeichnertyp STRING ist, kann der als Teilungskriterium zum Teilen des alternativen Objektbezeichners zu verwendende Separator zum Beispiel im Quellcode festgelegt sein, insbesondere im Quellcode für einen sogenannten NodeID-Parser. Alternativ kann das zu verwendende Teilungskriterium zum Beispiel auch als ein konfigurierbarer Parameter eingerichtet sein.If the alternative object identifier is of the identifier type STRING, the separator to be used as the division criterion for dividing the alternative object identifier can be specified, for example, in the source code, in particular in the source code for a so-called NodeID parser. Alternatively, the division criterion to be used can also be set up as a configurable parameter, for example.
Auch wenn der alternative Objektbezeichner vom Bezeichnertyp NUMERIC ist, kann die als Teilungskriterium zum Teilen des alternativen Objektbezeichners zu verwendende Basis zum Beispiel im Quellcode festgelegt sein, insbesondere im Quellcode für einen sogenannten NodeID-Parser. Dabei sollte der Wert der Basis möglichst groß gewählt sein, so dass eine Überlappung der NodeIDs verschiedener Informationsmodelle eines Namensraums möglichst unwahrscheinlich ist. OPC UA spezifiziert UINT32 als Datentyp für numerische NodeIDs, so dass als maximaler Wert der Basis (2^32-1)/Y gewählt werden kann, wobei Y die maximal mögliche Anzahl verschiedener Dimensionen bzw. Informationsmodelle angibt. Soll hingegen der Wert der Basis minimal klein festgelegt sein, muss die maximale Anzahl der Nodes im Adressraum bekannt sein und beachtet werden. Alternativ kann das zu verwendende Teilungskriterium zum Beispiel auch als ein konfigurierbarer Parameter eingerichtet sein.Even if the alternative object identifier is of the identifier type NUMERIC, the basis to be used as the division criterion for dividing the alternative object identifier can be defined, for example, in the source code, in particular in the source code for a so-called NodeID parser. The value of the base should be selected as large as possible, so that an overlap of the NodeIDs of different information models of a namespace is as unlikely as possible. OPC UA specifies UINT32 as the data type for numeric NodeIDs, so that (2 ^ 32-1) / Y can be selected as the maximum value of the base, where Y indicates the maximum possible number of different dimensions or information models. If, on the other hand, the value of the base is to be set to be minimally small, the maximum number of nodes in the address space must be known and observed. Alternatively, the division criterion to be used can also be set up as a configurable parameter, for example.
Wenn der alternative Objektbezeichner vom Bezeichnertyp STRING ist, kann ein Verzeichnis der definierten Zusatzbezeichner zum Beispiel als Liste oder Array im Quellcode festgelegt sein, insbesondere im Quellcode für einen sogenannten NodeID-Parser.If the alternative object identifier is of the identifier type STRING, a directory of the defined additional identifiers can be specified, for example, as a list or array in the source code, in particular in the source code for a so-called NodeID parser.
Auch wenn der alternative Objektbezeichner vom Bezeichnertyp NUMERIC ist, kann ein Verzeichnis der definierten Zusatzbezeichner zum Beispiel als Liste oder Array im Quellcode festgelegt sein, insbesondere im Quellcode für einen sogenannten NodeID-Parser.Even if the alternative object identifier is of the identifier type NUMERIC, a directory of the defined additional identifiers can be specified, for example, as a list or array in the source code, in particular in the source code for a so-called NodeID parser.
Vorgeschlagen wird außerdem ein Verfahren zum Ermitteln von Referenzen eines alternativen Objektbezeichners innerhalb einer OPC-UA-basierenden Kommunikationsumgebung, wobei jedes Objekt eines Adressraums eines Servers durch einen herkömmlichen Objektbezeichner eindeutig bezeichnet ist und zusätzlich durch wenigstens einen alternativen Objektbezeichner eindeutig bezeichnet ist, umfassend die Schritte:
- - Entnehmen eines alternativen Objektbezeichners aus einer Anfrage eines Clients,
- - Teilen des alternativen Objektbezeichners nach einem bestimmten Schema unter Anwendung eines Teilungskriteriums, so dass anschließend ein herkömmlicher Objektbezeichner und ein Zusatzbezeichner vorliegen,
- - Ermitteln der dem herkömmlichen Objektbezeichner zugeordneten Referenzen in einem Verzeichnis der in diesem Adressraum des Servers vorhandenen Referenzen, wobei jede Referenz einen herkömmlichen Objektbezeichner eines zugeordneten anderes Objekts umfasst,
- - für jede ermittelte Referenz Bilden eines alternativen Objektbezeichners durch Kombinieren des Zusatzbezeichners mit dem von der Referenz umfassten herkömmlichen Objektbezeichner des zugeordneten anderen Objekts nach einem bestimmten Schema.
- - Extracting an alternative object identifier from a request from a client,
- - Split the alternative object identifier according to a certain scheme using a division criterion, so that a conventional object identifier and an additional identifier are then available,
- - Determination of the references assigned to the conventional object identifier in a directory of the references present in this address space of the server, each reference comprising a conventional object identifier of an assigned other object,
- - For each identified reference, formation of an alternative object identifier by combining the additional identifier with the conventional object identifier of the assigned other object, which is comprised by the reference, according to a specific scheme.
Die Anfrage eines OPC-UA-Clients kann darauf gerichtet sein zu einem angefragten alternativen Objektbezeichner die Referenzen zu ermitteln. Dieses Verfahren erzeugt für jede ermittelte Referenz einen alternativen Objektbezeichner unter Verwendung des in dem angefragten alternativen Objektbezeichner enthaltenen Zusatzbezeichners. Bei der Beantwortung der Anfrage wird also das vom Client verwendete Informationsmodell berücksichtigt. Dabei ist das Verfahren vorteilhafter Weise sowohl für Vorwärtsreferenzen als auch für Rückwärtsreferenzen anwendbar bzw. ausführbar.The request from an OPC UA client can be aimed at determining the references to a requested alternative object identifier. This method generates an alternative object identifier for each identified reference using the additional identifier contained in the requested alternative object identifier. When answering the request, the information model used by the client is taken into account. The method can advantageously be used or carried out both for forward references and for backward references.
Gemäß einer ersten Ausbildung des Verfahrens gibt das Schema vor, dass wenn der alternative Objektbezeichner, dessen Referenzen zu ermitteln sind, vom Bezeichnertyp STRING ist, als Teilungskriterium ein Separatorzeichen verwendet wird und das Separatorzeichen innerhalb der Zeichenkette des alternativen Objektbezeichners als zweiter Zusatzsbezeichnerteil identifiziert wird, und wobei der Teil der Zeichenkette vor dem Separatorzeichen als erster Zusatzbezeichnerteil und der Teil der Zeichenkette nach dem Separatorzeichen als herkömmlicher Objektbezeichner identifiziert und weiterverarbeitet wird oder der Teil der Zeichenkette vor dem Separatorzeichen als herkömmlicher Objektbezeichner und der Teil der Zeichenkette nach dem Separatorzeichen als erster Zusatzbezeichnerteil identifiziert und weiterverarbeite wird.According to a first embodiment of the method, the scheme specifies that if the alternative object identifier whose references are to be determined is of the identifier type STRING, a separator character is used as the division criterion and the separator character is identified within the character string of the alternative object identifier as the second additional identifier part, and the part of the character string before the separator character as the first additional identifier part and the part of the character string after the separator character as a conventional object identifier and processed further, or the part of the character string before the separator character as a conventional object identifier and the part of the character string after the separator character as the first additional identifier part is further processed.
Gemäß einer Weiterbildung des Verfahrens gibt das Schema vor, dass für jede ermittelte Referenz der alternative Objektbezeichner ebenfalls vom Bezeichnertyp STRING ist und aus drei Teilen gebildet wird und zwar in der Reihenfolge erster Zusatzbezeichnerteil, zweiter Zusatzbezeichnerteil und herkömmlicher Objektbezeichner des jeweiligen zugeordneten anderen Objekts oder in der Reihenfolge herkömmlicher Objektbezeichner des jeweiligen zugeordneten anderen Objekts, zweiter Zusatzbezeichnerteil und erster Zusatzbezeichnerteil.According to a development of the method, the scheme specifies that the alternative object identifier for each identified reference is also of the identifier type STRING and is formed from three parts, namely in the order of the first additional identifier part, second additional identifier part and conventional object identifier of the respective assigned other object or in the Order of conventional object identifiers of the respective assigned other object, second additional identifier part and first additional identifier part.
Gemäß einer anderen Ausbildung des Verfahrens gibt das Schema vor, dass wenn der alternative Objektbezeichner, dessen Referenzen zu ermitteln sind, vom Bezeichnertyp NUMERIC ist, als Teilungskriterium ein Basiswert verwendet wird und der alternative Objektbezeichner durch den Basiswert dividiert wird, wobei der Ganzzahlquotient dieser Division, insbesondere-nach erneuter Multiplikation mit dem Basiswert Base, als Zusatzbezeichner und der Rest dieser Division als herkömmlicher Objektbezeichner weiterverarbeitet wird.According to another embodiment of the method, the scheme specifies that if the alternative object identifier whose references are to be determined is of the identifier type NUMERIC, a base value is used as the division criterion and the alternative object identifier is divided by the base value, the integer quotient of this division, in particular-after repeated multiplication with the base value base, is processed further as an additional identifier and the remainder of this division as a conventional object identifier.
Gemäß einer Weiterbildung des Verfahrens gibt das Schema vor, dass für jede ermittelte Referenz der alternative Objektbezeichner ebenfalls vom Bezeichnertyp NUMERIC ist und durch Addieren des Zusatzbezeichners und des herkömmlichen Objektbezeichners des jeweiligen zugeordneten anderen Objekts gebildet wird.According to a further development of the method, the scheme specifies that the alternative object identifier for each identified reference is also of the identifier type NUMERIC and is formed by adding the additional identifier and the conventional object identifier of the respective assigned other object.
Somit können für angefragte Objektbezeichner vom Bezeichnertyp STRING aber auch vom Bezeichnertyp NUMERIC effektiv Referenzen ermittelt werden.In this way, references can effectively be determined for requested object identifiers of the identifier type STRING but also of the identifier type NUMERIC.
Vorgeschlagen wird ferner ein Server, insbesondere OPC-UA-Server, welcher zur Durchführung wenigsten eines der zuvor beschriebenen erfindungsgemäßen Verfahren ausgebildet ist.A server is also proposed, in particular an OPC UA server, which is used for Implementation of at least one of the above-described methods according to the invention is designed.
Vorgeschlagen wird zudem ein System umfassend eine OPC-UA-basierende Kommunikationsumgebung mit wenigstens einem erfindungsgemäßen Server wie zuvor beschrieben und mit wenigstens einem Client, welche über ein Netzwerk miteinander verbunden sind.A system is also proposed comprising an OPC UA-based communication environment with at least one server according to the invention as described above and with at least one client which are connected to one another via a network.
Vorgeschlagen wird schließlich auch ein Computerprogrammprodukt, umfassend Anweisungen, die bei Ausführung durch einen Computer, insbesondere einen Server, diesen veranlassen, wenigstens eines der zuvor beschriebenen erfindungsgemäßen Verfahren auszuführen.Finally, a computer program product is also proposed, comprising instructions which, when executed by a computer, in particular a server, cause the computer to execute at least one of the previously described methods according to the invention.
Die zu den erfindungsgemäßen Verfahren einschließlich deren Ausführungen und Weiterbildungen angegebenen Merkmale und Vorteile gelten sinngemäß auch für den erfindungsgemäßen Server sowie für das System und das Computerprogrammprodukt.The features and advantages specified for the method according to the invention, including their embodiments and developments, also apply mutatis mutandis to the server according to the invention and to the system and the computer program product.
Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung ergeben sich auch aus den Ausführungsbeispielen, welche nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert werden. In schematischer Darstellung zeigt dabei
-
1 ein System mit einer OPC-UA-basierenden Kommunikationsumgebung; -
2 ein erstes Beispiel eines Verfahrens zum Bereitstellen eines alternativen Objektbezeichners; -
3 ein erstes Beispiel eines Verfahrens zum Validieren eines alternativen Objektbezeichners; -
4 ein erstes Beispiel eines Verfahrens zum Ermitteln von Referenzen eines alternativen Objektbezeichners; -
5 ein zweites Beispiel eines Verfahrens zum Bereitstellen eines alternativen Objektbezeichners; -
6 ein zweites Beispiel eines Verfahrens zum Validieren eines alternativen Objektbezeichners; -
7 ein zweites Beispiel eines Verfahrens zum Ermitteln von Referenzen eines alternativen Objektbezeichners; -
8 einen Adressraum eines OPC-UA-Servers, worin die Komponentenvariablen einer Steuerung als Knoten mit eindeutigen Knotenbezeichner des Bezeichnertyp STRING aufgeführt sind; -
9 einen Adressraum eines OPC-UA-Servers, worin das Verzeichnis aller Namensräume bzw. Namensraumindizies des Adressraums als Attribut „NamespaceArray“ des Knotens „Server“ hinterlegt ist; -
10 ein erstes Beispiel einer Auflistung von herkömmlichen Objektbezeichnern und alternativen Objektbezeichnern für Objekte bzw. Knoten eines Adressraums, welche Variablen der Steuerungskomponente „Arp.PLC.Eclr“ in unterschiedlichen Informationsmodellen repräsentieren; -
11 ein zweites Beispiel einer Auflistung von herkömmlichen Objektbezeichnern und alternativen Objektbezeichnern für Objekte bzw. Knoten eines Adressraums, welche Variablen der Steuerungskomponente „Arp.PLC.Eclr“ in unterschiedlichen Informationsmodellen repräsentieren.
-
1 a system with an OPC UA-based communication environment; -
2 a first example of a method for providing an alternative object identifier; -
3rd a first example of a method for validating an alternative object identifier; -
4th a first example of a method for determining references of an alternative object identifier; -
5 a second example of a method for providing an alternative object identifier; -
6th a second example of a method for validating an alternative object identifier; -
7th a second example of a method for determining references of an alternative object identifier; -
8th an address space of an OPC UA server, in which the component variables of a controller are listed as nodes with a unique node identifier of the identifier type STRING; -
9 an address space of an OPC UA server, in which the directory of all namespaces or namespace indices of the address space is stored as the “NamespaceArray” attribute of the “Server” node; -
10 a first example of a list of conventional object identifiers and alternative object identifiers for objects or nodes of an address space, which variables of the control component “Arp.PLC.Eclr” represent in different information models; -
11 a second example of a list of conventional object identifiers and alternative object identifiers for objects or nodes in an address space, which variables of the control component "Arp.PLC.Eclr" represent in different information models.
Die
Der OPC-UA-Standard spezifiziert nicht, wie ein Server die Knoten zu verwalten hat. Es sei angenommen, dass der Adressraum in Namensräume N[x] unterteilt ist, wobei die herkömmlichen Knotenbezeichner NodeID in einem Namensraum N[x] vom Bezeichnertyp identifierType = STRING oder identifierType = NUMERIC sind. Es sei ferner angenommen, dass der Server eine als NodeIDArray bezeichnete Arrayartige Struktur nutzt, um valide Knotenbezeichner NodeID zu speichern, und eine als Forward-/BackwardReferenceMap bezeichnete Kartenartige Struktur nutzt, um Referenzen zu speichern, d. h. Arrays von Knotenbezeichnern NodeIDs der Referenzen zu jedem Knotenbezeichner NodeID. Diese Annahmen wurden jedoch nur zur Vereinfachung der Beschreibung der Erfindung getroffen, jedoch nicht zur Einschränkung der Erfindung.The OPC UA standard does not specify how a server has to manage the nodes. It is assumed that the address space is subdivided into namespaces N [x], the conventional node identifiers NodeID in a namespace N [x] of the identifier type identifierType = STRING or identifierType = NUMERIC. It is also assumed that the server uses an array-like structure called NodeIDArray to store valid node identifier NodeID, and one called Forward- / BackwardReferenceMap Uses card-like structure to store references, ie arrays of node identifiers NodeIDs of the references to each node identifier NodeID. However, these assumptions were made only to simplify the description of the invention, but not to limit the invention.
Die Erfindung zielt darauf ab, einen bestehenden Adressraum, insbesondere innerhalb eines Namensraums N[x], um eine Dimension y mit y = 1 ... Y zu erweitern, und zwar bei geringen Kosten bzw. bei geringem Aufwand, d.h. ohne Replizierung von Knoteninstanzen in einem Speicher, insbesondere ohne neue Elemente zum NodeIDArray oder zur Forward-/BackwardReferenceMaD hinzuzufüoen. Somit ermöglicht die Erfindung das Implementieren Y zusätzlicher Informatinsmodelle bzw. Kontexte für einen Datenbestand.The invention aims to expand an existing address space, in particular within a namespace N [x], by a dimension y with y = 1... Y, at low cost or with little effort, ie without replicating node instances in a memory, especially without adding new elements to the NodeIDArray or to the Forward- / BackwardReferenceMaD. The invention thus enables the implementation of Y additional information models or contexts for a database.
Hierzu schlägt die Erfindung ein neues, eingangs bereits erwähntes Adressierungsschema vor.For this purpose, the invention proposes a new addressing scheme already mentioned at the beginning.
Im Fall eines herkömmlichen Knotenbezeichners NodeID vom Bezeichnertyp identifierType = STRING in einem Namensraum N[x] wird dabei ein neuer bzw. alternativer Knotenbezeichner PrefixedNodeID desselben Bezeichnertyps definiert, welcher wie in
Im Fall eines herkömmlichen Knotenbezeichners NodeID vom Bezeichnertyp identifierType = NUMERIC in einem Namensraum N[x] wird ein neuer bzw. alternativer Knotenbezeichner BiasedNodeID desselben Bezeichnertyps definiert, welcher wie in
Wenn beispielsweise der Namensraum N[x] 10 Knoten mit den Knotenbezeichnern NodeID = 1 ... 9 umfasst, so kann der Basiswert Base = 100 sein, da 100 > max (0 ... 9) gilt, so dass sich für Y = 3 alternative Knotenbezeichner Biased NodeID = (100 ... 109, 200 ... 209, 300 ... 309) ergeben. For example, if the namespace N [x] includes 10 nodes with the node identifiers NodeID = 1 ... 9, the base value can be Base = 100, since 100> max (0 ... 9), so that Y = 3 alternative node identifiers Biased NodeID = (100 ... 109, 200 ... 209, 300 ... 309) result.
Allgemein ausgedrückt ist somit ein Verfahren zum Bereitstellen alternativer Objektbezeichner für Objekte eines Adressraums, insbesondere eines Namensraums, eines Servers
In einer ersten Ausbildung des Verfahrens gibt das Schema vor, dass wenn der herkömmliche Objektbezeichner vom Bezeichnertyp STRING ist, der Zusatzbezeichner ebenfalls vom Bezeichnertyp STRING ist und zwei Zusatzbezeichnerteile umfasst, wobei der erste Zusatzbezeichnerteil eine frei definierbare Zeichenkette ist und der zweite Zusatzbezeichnerteil ein frei definierbares Separatorzeichen ist. Außerdem gibt das Schema vor, dass der alternative Objektbezeichner ebenfalls vom Bezeichnertyp STRING ist und aus den drei Teilen erster Zusatzbezeichnerteil, zweiter Zusatzbezeichnerteil und herkömmlicher Objektbezeichner des jeweiligen Objekts in dieser Kombinationsreihenfolge gebildet wird (vgl.
Beispielhafte Ergebnisse dieses Verfahrens sind in den
Zu sehen ist in
In
In den Beispielen gemäß der
In einer alternativen Ausbildung des Verfahrens gibt das Schema vor, dass wenn der herkömmliche Objektbezeichner vom Bezeichnertyp NUMERIC ist, der Zusatzbezeichner ebenfalls vom Bezeichnertyp NUMERIC und ein Vielfaches eines Basiswertes ist, wobei der Basiswert größer ist als der um 1 erhöhte größte numerische Wert unter allen herkömmlichen Objektbezeichnern der Objekte des Adressraums des Servers
Die
- - Entnehmen eines alternativen Objektbezeichners PrefixedNodeID bzw. BiasedNodeID aus einer Anfrage eines Clients
C1 ,C2 , - - Teilen des alternativen Objektbezeichners nach einem bestimmten Schema unter Anwendung eines Teilungskriteriums, so dass anschließend ein herkömmlicher Objektbezeichner NodeID und ein Zusatzbezeichner Prefix bzw. Bias vorliegen,
- - Beurteilen des herkömmlichen Objektbezeichners NodeID als valide, wenn er in einem Verzeichnis NodeIDArray der in diesem Adressraum des Servers
S1 ,S2 vorhandenen herkömmlichen Objektbezeichner ermittelt werden kann (vgl. Node Validator), - - Beurteilen des Zusatzbezeichners als valide, wenn er in einem Verzeichnis Prefix[Y] bzw. Bias[Y] der für diesen Adressraum des Servers
S1 ,S2 definierten Zusatzbezeichner ermittelt werden kann (vgl. Prefix Validator bzw. Bias Validator), - - Beurteilen des alternativen Objektbezeichners als valide, wenn zuvor sowohl der herkömmliche Objektbezeichner als auch der Zusatzbezeichner als valide beurteilt wurden (vgl. Logical AND),
- - Beurteilen des alternativen Objektbezeichners als nicht valide, wenn zuvor der herkömmliche Objektbezeichner und/oder der Zusatzbezeichner als nicht valide beurteilt wurden.
- - Extracting an alternative object identifier PrefixedNodeID or BiasedNodeID from a client request
C1 ,C2 , - - Dividing the alternative object identifier according to a certain scheme using a division criterion, so that a conventional object identifier NodeID and an additional identifier Prefix or Bias are then available,
- - Assessment of the conventional object identifier NodeID as valid if it is in a directory NodeIDArray in this address space of the server
S1 ,S2 existing conventional object identifier can be determined (see Node Validator), - - Assessment of the additional identifier as valid if it is in a directory Prefix [Y] or Bias [Y] for this address space of the server
S1 ,S2 defined additional identifier can be determined (see Prefix Validator or Bias Validator), - - Assessment of the alternative object identifier as valid if both the conventional object identifier and the additional identifier were previously assessed as valid (see Logical AND),
- - Assessment of the alternative object identifier as not valid if the conventional object identifier and / or the additional identifier were previously assessed as not valid.
Gemäß einer ersten Ausbildung des Verfahrens (vgl.
In einem nicht in den Figuren gezeigten Fall könnte stattdessen vorgesehen sein, dass der Teil der Zeichenkette vor dem Separatorzeichen als herkömmlicher Objektbezeichner und der Teil der Zeichenkette nach dem Separatorzeichen als erster Zusatzbezeichnerteil identifiziert und weiterverarbeitet wird.In a case not shown in the figures, provision could instead be made for the part of the character string before the separator character to be identified and further processed as a conventional object identifier and the part of the character string after the separator character as the first additional identifier part.
Gemäß einer anderen Ausbildung des Verfahrens (vgl.
Der Ganzzahlquotient an sich, entspricht dem Index y der Dimension bzw. des Informationsmodells.The integer quotient itself corresponds to the index y of the dimension or of the information model.
Aufgrund dieser erfindungsgemäßen stufenweisen Validierung, kann die Validierung alternativer Objektbezeichner sehr effizient erfolgen. Und da bei der erfindungsgemäßen Bereitstellung alternativer Objektbezeichner für ein zusätzliches Informationsmodell lediglich ein neuer Zusatzbezeichner in das Verzeichnis der Zusatzbezeichner eingetragen wird, jedoch keine Knoteninstanzen repliziert werden, erfordert die Validierung alternativer Objektbezeichner kaum zusätzlichen Bedarf an Speicherplatz und Rechenleistung bzw. Rechenzeit. Somit ermöglicht die Erfindung das Implementieren Y zusätzlicher Informationsmodelle bzw. Kontexte für einen Datenbestand, ohne dass dadurch der Bedarf an Speicherplatz und Rechenleistung bzw. Rechenzeit um den Faktor Y+1 steigen würde.Because of this step-by-step validation according to the invention, the validation of alternative object identifiers can be carried out very efficiently. And since, with the provision according to the invention, alternative object identifiers for an additional Information model only a new additional identifier is entered in the directory of additional identifiers, but no node instances are replicated, the validation of alternative object identifiers hardly requires any additional storage space and computing power or computing time. Thus, the invention enables the implementation of Y additional information models or contexts for a database without the need for storage space and computing power or computing time increasing by a factor of Y + 1.
Die
- - Entnehmen eines alternativen Objektbezeichners PrefixedNodeID bzw. BiasedNodeID aus einer Anfrage eines Clients
C1 ,C2 , - - Teilen des alternativen Objektbezeichners nach einem bestimmten Schema unter Anwendung eines Teilungskriteriums, so dass anschließend ein herkömmlicher Objektbezeichner NodeID und ein Zusatzbezeichner Prefix bzw. Bias vorliegen,
- - Ermitteln der dem herkömmlichen Objektbezeichner NodeID zugeordneten Referenzen in einem Verzeichnis ForwardReferenceMap der in diesem Adressraum des Servers
S1 ,S2 vorhandenen Referenzen, wobei jede Referenz einen herkömmlichen Objektbezeichner eines zugeordneten anderes Objekts umfasst (vgl. NodeID Lookup), - - für jede ermittelte Referenz ForwardReferences Bilden eines alternativen Objektbezeichners PrefixedForwardReferences bzw. BiasedForwardReferences durch Kombinieren des Zusatzbezeichners Prefix bzw. Bias mit dem von der Referenz ForwardReferences umfassten herkömmlichen Objektbezeichner des zugeordneten anderen Objekts nach einem bestimmten Schema (vgl. Prefix Concatenator bzw. Bias Adder).
- - Extracting an alternative object identifier PrefixedNodeID or BiasedNodeID from a client request
C1 ,C2 , - - Dividing the alternative object identifier according to a certain scheme using a division criterion, so that a conventional object identifier NodeID and an additional identifier Prefix or Bias are then available,
- - Determination of the references assigned to the conventional object identifier NodeID in a directory ForwardReferenceMap in this address space of the server
S1 ,S2 existing references, each reference comprising a conventional object identifier of an assigned other object (see NodeID Lookup), - - For each determined reference ForwardReferences formation of an alternative object identifier PrefixedForwardReferences or BiasedForwardReferences by combining the additional identifier Prefix or Bias with the conventional object identifier of the assigned other object included in the reference ForwardReferences according to a certain scheme (see Prefix Concatenator or Bias Adder)
Gemäß einer ersten Ausbildung des Verfahrens (vgl.
In einem nicht in den Figuren gezeigten Fall könnte stattdessen vorgesehen sein, dass der Teil der Zeichenkette vor dem Separatorzeichen als herkömmlicher Objektbezeichner und der Teil der Zeichenkette nach dem Separatorzeichen als erster Zusatzbezeichnerteil identifiziert und weiterverarbeitet wird.In a case not shown in the figures, provision could instead be made for the part of the character string before the separator character to be identified and further processed as a conventional object identifier and the part of the character string after the separator character as the first additional identifier part.
Weiterhin gibt das Schema vor, dass für jede ermittelte Referenz ForwardReferences der alternative Objektbezeichner PrefixedForwardReferences ebenfalls vom Bezeichnertyp STRING ist und aus drei Teilen gebildet wird und zwar in der Reihenfolge erster Zusatzbezeichnerteil Prefix, zweiter Zusatzbezeichnerteil Separator Literal und herkömmlicher Objektbezeichner des jeweiligen zugeordneten anderen Objekts oder in der Reihenfolge herkömmlicher Objektbezeichner des jeweiligen zugeordneten anderen Objekts, zweiter Zusatzbezeichnerteil und erster Zusatzbezeichnerteil.Furthermore, the scheme specifies that for each identified ForwardReferences reference, the alternative object identifier PrefixedForwardReferences is also of the identifier type STRING and is formed from three parts, namely in the order of the first additional identifier part prefix, second additional identifier part separator literal and conventional object identifier of the other assigned object or the sequence of conventional object identifiers of the respective assigned other object, second additional identifier part and first additional identifier part.
In dem Beispiel gemäß der
Gemäß einer anderen Ausbildung des Verfahrens (vgl.
Weiterhin gibt das Schema vor, dass für jede ermittelte Referenz ForwardReferences der alternative Objektbezeichner BiasedForwardReferences ebenfalls vom Bezeichnertyp NUMERIC ist und durch Addieren des Zusatzbezeichners Bias und des herkömmlichen Objektbezeichners des jeweiligen zugeordneten anderen Objekts gebildet wird.Furthermore, the scheme specifies that for each determined reference ForwardReferences the alternative object identifier BiasedForwardReferences is also of the identifier type NUMERIC and is formed by adding the additional identifier Bias and the conventional object identifier of the respective assigned other object.
Auch wenn das Verfahren gemäß der
BezugszeichenlisteList of reference symbols
- KK
- OPC-UA-basierende KommunikationsumgebungOPC UA-based communication environment
- S1, S2S1, S2
- Server, OPC-UA-ServerServer, OPC UA server
- C1, C2C1, C2
- Client, OPC-UA-ClientClient, OPC UA client
- NN
- Netzwerknetwork
Claims (16)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019125802 | 2019-09-25 | ||
DE102019125802.2 | 2019-09-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102020123509A1 true DE102020123509A1 (en) | 2021-03-25 |
Family
ID=74846660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102020123509.7A Pending DE102020123509A1 (en) | 2019-09-25 | 2020-09-09 | Method for providing and validating alternative object identifiers and for determining references of alternative object identifiers within an OPC UA-based communication environment |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102020123509A1 (en) |
-
2020
- 2020-09-09 DE DE102020123509.7A patent/DE102020123509A1/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1258812B1 (en) | Virtual database of heterogeneous data structures | |
DE10051021B4 (en) | System, method and computer program for providing interactive web content in statically linked files | |
EP0910829B1 (en) | Database system | |
DE19954534A1 (en) | Joker search method for relational databank for directory service for e-mail system has forwards and backwards index established for provision of relational databank interrogation when joker has given position | |
EP0010195A1 (en) | Device for address translation in a computer | |
DE2208664A1 (en) | Method for decoding a prefix-free compression code of variable length | |
LU101410B1 (en) | Method for providing and validating alternative object identifiers as well as for determining references of alternative object identifiers within an OPC UA-based communication environment | |
DE102020123509A1 (en) | Method for providing and validating alternative object identifiers and for determining references of alternative object identifiers within an OPC UA-based communication environment | |
EP3753233B1 (en) | Method for the event-controlled retrieval of process data | |
EP4095697A1 (en) | Method for characterizing the operating state of a computer system | |
WO2019121890A1 (en) | Method for reducing the computing time of a data processing unit | |
DE602004012493T2 (en) | A method and apparatus for configurably storing network element data in a network management system | |
EP1515244A2 (en) | Mapping a class hierarchy to a relational database system | |
EP1099172B1 (en) | Method, arrangement and set of a plurality of arrangements for remedying at least one inconsistency in a group of databases which comprises a database and at least one copy database of the database | |
EP1331794B1 (en) | Method for address allocation in a network and components therefore | |
DE102010010035A1 (en) | Method for construction of objects e.g. control box, of object oriented database, involves generating objects with containment relations and single relations, and replacing placeholders by appropriate reciprocal relations | |
EP4300327A1 (en) | Method for providing data of an automation system, search method for determining data of an automation system, computer program, computer readable medium and data processing device | |
DE69925183T2 (en) | Method for storing and unpacking object attributes | |
DE19835905B4 (en) | Method of creating a database access table from records | |
DE10218645A1 (en) | Bus device, e.g. a CAN node, has a buffer memory with a control unit that controls memory contents in a time dependent manner, so that the node can be used with a time-triggered CAN bus | |
EP2290561B1 (en) | Method and device for saving and restoring electronic documents and databases | |
DE112021004278T5 (en) | EFFICIENT BULK LOAD OF MULTIPLE ROWS OR PARTITIONS FOR A SINGLE TARGET TABLE | |
DE102013108309A1 (en) | Method for connecting objects in a software application | |
DE112021000573T5 (en) | HIERARCHICAL DATA | |
EP3828790A1 (en) | Method for producing a product selected from a product volume and a selection criteria, and production system therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0016100000 Ipc: G06F0015163000 |