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 PDF

Info

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
Application number
DE102020123509.7A
Other languages
German (de)
Inventor
Oliver Theis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phoenix Contact GmbH and Co KG
Original Assignee
Phoenix Contact GmbH and Co KG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Phoenix Contact GmbH and Co KG filed Critical Phoenix Contact GmbH and Co KG
Publication of DE102020123509A1 publication Critical patent/DE102020123509A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram 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. 8). Das Verzeichnis aller Namensräume bzw. Namensraumindizies des Adressraums ist als Attribut „NamespaceArray“ des Knotens „Server“ hinterlegt (vgl. 9).One possible application of an OPC UA server is, for example, in the field of automation technology, to provide OPC UA clients with access to variables of a programmable logic control (PLC). For example, with controllers based on the applicant's PLCnext Technology, the variables of the components are listed as nodes of an address space of an OPC UA server, whereby the identifier type STRING is specified for the unique node identifier (cf. 8th ). The directory of all namespaces or namespace indexes of the address space is stored as the “NamespaceArray” attribute of the “Server” node (cf. 9 ).

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 independent patent claim 1, a method with the features of independent patent claim 6 and a method with the features of independent patent claim 9. Furthermore, the invention proposes a server according to independent claim 14, a system according to independent claim 15 and a computer program product according to independent claim 16.

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 (K), wobei jedes Objekt des Adressraums des Servers durch einen herkömmlichen Objektbezeichner eindeutig bezeichnet ist. Dabei wird wenigstens ein Zusatzbezeichner definiert und zweckmäßiger Weise in einem Verzeichnis der für diesen Adressraum des Servers definierten Zusatzbezeichner gespeichert. Zudem wird dabei für jedes Objekt des Adressraums des Servers ein das Objekt ebenfalls eindeutig bezeichnender alternativer Objektbezeichner gebildet, indem der Zusatzbezeichner mit dem herkömmlichen Objektbezeichner des jeweiligen Objekts nach einem bestimmten Schema kombiniert wird.A method is therefore proposed for providing alternative object identifiers for objects in an address space of a server within an OPC UA-based communication environment ( K ), each object in the address space of the server being uniquely identified by a conventional object identifier. At least one additional identifier is defined and expediently stored in a directory of the additional identifier defined for this address space of the server. In addition, an alternative object identifier that uniquely identifies the object is formed for each object in the address space of the server by combining the additional identifier with the conventional object identifier of the respective object according to a specific scheme.

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.
A method is also proposed for validating an alternative object identifier within an OPC UA-based communication environment, each object of an address space of a server being uniquely identified by a conventional object identifier and additionally being uniquely identified by at least one alternative object identifier, comprising the steps:
  • - 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.
A method is also proposed for determining references of an alternative object identifier within an OPC UA-based communication environment, each object of an address space of a server being uniquely designated by a conventional object identifier and additionally being uniquely designated by at least one alternative object identifier, comprising the steps:
  • - 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.
These and other features and advantages of the present invention also emerge from the exemplary embodiments, which are explained in more detail below with reference to the accompanying drawings. It shows in a schematic representation
  • 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.

1 zeigt beispielhaft ein System mit einer OPC-UA-basierenden Kommunikationsumgebung K, welches hier zwei Server S1 und S2 sowie zwei Clients C1 und C2 aufweist, welche über ein Netzwerk N miteinander verbunden sind. Dabei sind die Clients als OPC-UA-Clients und die Server als OPC-UA-Server ausgebildet. Die Server sind zudem zur Durchführung der erfindungsgemäßen Verfahren zur Bereitstellung, Validierung und Ermittlung von Referenzen alternativer Objektbezeichner ausgebildet, wobei die einzelnen Verfahren im Folgenden noch näher erläutert werden. Die Server S1 und S2 stellen Ihre Informationen den Clients C1 und C2 in einem Adressraum bereit. 1 shows an example of a system with an OPC UA-based communication environment K which here are two servers S1 and S2 as well as two clients C1 and C2 having which over a network N are connected to each other. The clients are designed as OPC UA clients and the servers as OPC UA servers. The servers are also designed to carry out the method according to the invention for providing, validating and determining references of alternative object identifiers, the individual methods being explained in more detail below. The servers S1 and S2 present your information to the clients C1 and C2 ready in an address space.

Die 8 zeigt beispielhaft einen Teil des Adressraums des OPC-UA-Servers S1. Darin sind die Komponentenvariablen einer nicht dargestellten Steuerung der PLCnext Technology, mit der zumindest der Server S1 in Verbindung steht, als Knoten mit eindeutigen herkömmlichen Knotenbezeichnern des Bezeichnertyps STRING aufgeführt. 9 zeigt einen anderen Teil des Adressraums des OPC-UA-Servers S1, wobei hier erkennbar ist, dass das Verzeichnis aller Namensräume bzw. Namensraumindizies des Adressraums als Attribut „NamespaceArray“ des Knotens „Server“ hinterlegt ist.The 8th shows an example of part of the address space of the OPC UA server S1 . This contains the component variables of a PLCnext Technology controller, not shown, with which at least the server S1 is in connection, listed as nodes with unique conventional node identifiers of the identifier type STRING. 9 shows another part of the address space of the OPC UA server S1 It can be seen here that the directory of all namespaces or namespace indexes of the address space is stored as the “NamespaceArray” attribute of the “Server” node.

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 2 gezeigt gebildet wird durch die Kombination bzw. Verkettung (vgl. Prefix Concatenator) eines ersten Teils eines Zusatzbezeichners Prefix[y] und eines zweiten Teils eines Zusatzbezeichners in Form eines Separators Literal mit dem herkömmlichen Knotenbezeichner NodeID, wobei Prefix[y] ein Element der Menge Prefix[Y] mit dem Index y = 1:Y ist.In the case of a conventional node identifier NodeID of the identifier type identifierType = STRING in a namespace N [x], a new or alternative node identifier PrefixedNodeID of the same identifier type is defined, which is defined as in 2 shown is formed by the combination or concatenation (see Prefix Concatenator) of a first part of an additional identifier Prefix [y] and a second part of an additional identifier in the form of a literal separator with the conventional node identifier NodeID, where Prefix [y] is an element of the set Prefix [Y] with the index y = 1: Y is.

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 5 gezeigt gebildet wird durch die Kombination bzw. Addition (vgl. Bias Adder) eines Zusatzbezeichners Bias[y] und des herkömmlichen Knotenbezeichners NodeID, wobei Bias[y] ein Element der Menge Bias[Y] mit dem Index y = 1:Y ist, und wobei Bias[y] das Produkt der Multiplikation eines Basiswerts Base mit y ist (vgl. Base Multiplier), wobei der Basiswert Base größer ist als der um 1 erhöhte größte numerische Wert unter allen herkömmlichen Knotenbezeichnern NodeID in dem Namensraum N[x].In the case of a conventional node identifier NodeID of the identifier type identifierType = NUMERIC in a namespace N [x], a new or alternative node identifier BiasedNodeID of the same identifier type is defined, which is defined as in 5 is formed by the combination or addition (see Bias Adder) of an additional identifier Bias [y] and the conventional node identifier NodeID, where Bias [y] is an element of the set Bias [Y] with the index y = 1: Y, and where Bias [y] is the product of the multiplication of a base value Base by y (cf. Base Multiplier), where the base value Base is greater than the largest numerical value increased by 1 among all conventional node identifiers NodeID in the namespace N [x].

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 S1, S2 innerhalb einer OPC-UA-basierenden Kommunikationsumgebung K vorgesehen, wobei jedes Objekt des Adressraums des Servers S1, S2 durch einen herkömmlichen Objektbezeichner eindeutig bezeichnet, 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 Adressraums 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.In general terms, there is thus a method for providing alternative object identifiers for objects of an address space, in particular a namespace, of a server S1 , S2 within an OPC UA-based communication environment K provided, each object being the address space of the server S1 , S2 uniquely identified by a conventional object identifier, with at least one additional identifier being defined and in a directory for the address space of the server S1 , S2 defined additional identifier is stored, and for each object of the address space of the server S1 , S2 an alternative object identifier that also uniquely identifies the object is formed by combining the additional identifier with the conventional object identifier of the respective object according to a specific scheme.

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. 2) .In 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 addition, 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, the second additional identifier part and the conventional object identifier of the respective object in this combination order (cf. 2 ).

Beispielhafte Ergebnisse dieses Verfahrens sind in den 10 und 11 dargestellt.Exemplary results of this procedure are shown in 10 and 11 shown.

Zu sehen ist in 10 eine 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. Zum einen wurde der Zusatzbezeichner „PlcOpen.Programs“ definiert, um ein Informationsmodell für Programmvariablen bereitzustellen. Zum anderen wurde der Zusatzbezeichner „PlcOpen.GlobalVars“ definiert, um ein Informationsmodell für globale Variablen bereitzustellen. In beiden Fällen umfasst der Zusatzbezeichner zudem das Separatorzeichen „:“.Can be seen in 10 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. On the one hand, the additional identifier "PlcOpen.Programs" was defined to provide an information model for program variables. On the other hand, the additional identifier "PlcOpen.GlobalVars" was defined to provide an information model for global variables. In both cases, the additional identifier also includes the separator ":".

In 11 ist eine weitere Auflistung von herkömmlichen Objektbezeichnern und alternativen Objektbezeichnern für Objekte bzw. Knoten eines Adressraums zu sehen, welche Variablen der Steuerungskomponente „Arp . PLC . Eclr“ in nochmals anderen Informationsmodellen repräsentieren. Zum einen wurde hier der Zusatzbezeichner „History.SessionA“ definiert, für ein Informationsmodell zum Zugriff auf historische Werte dieser Variablen, welche in einer Session A mit einer ersten Samplingrate erfasst wurden. Zum anderen wurde der Zusatzbezeichner „History.SessionB“ definiert, für ein Informationsmodell zum Zugriff auf historische Werte dieser Variablen, welche in einer Session B mit einer zweiten Samplingrate erfasst wurden. In beiden Fällen umfasst der Zusatzbezeichner zudem wieder das Separatorzeichen „:“.In 11 a further list of conventional object identifiers and alternative object identifiers for objects or nodes of an address space can be seen which variables of the control component “Arp. PLC. Eclr ”in yet another information model. On the one hand, the additional identifier "History.SessionA" was defined here for an information model for accessing historical values of these variables, which are stored in of a session A with a first sampling rate. On the other hand, the additional identifier “History.SessionB” was defined for an information model for accessing historical values of these variables, which were recorded in session B with a second sampling rate. In both cases, the additional identifier also includes the separator ":".

In den Beispielen gemäß der 2, 10 und 11 ist der Zusatzbezeichner als Prefix zum herkömmlichen Objektbezeichner vorgesehen. Denkbar wäre aber auch, den Zusatzbezeichner als Suffix zum herkömmlichen Objektbezeichner vorzusehen.In the examples according to 2 , 10 and 11 the additional identifier is provided as a prefix to the conventional object identifier. However, it would also be conceivable to provide the additional identifier as a suffix to the conventional object identifier.

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 S1, S2. Außerdem 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 (vgl. 5).In an alternative 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 S1 , S2 . In addition, the scheme specifies that the alternative 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 (cf. 5 ).

Die 3 und 6 zeigen zwei Beispiele eines Verfahrens zum Validieren eines alternativen Objektbezeichners innerhalb einer OPC-UA-basierenden Kommunikationsumgebung K, wobei jedes Objekt eines Adressraums eines Servers S1, S2 durch einen herkömmlichen Objektbezeichner eindeutig bezeichnet ist und zusätzlich durch wenigstens einen alternativen Objektbezeichner eindeutig bezeichnet ist. Im Allgemeinen umfasst das Verfahren die Schritte:

  • - 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.
The 3rd and 6th show two examples of a method for validating an alternative object identifier within an OPC UA-based communication environment K , where each object is an address space of a server S1 , S2 is uniquely designated by a conventional object identifier and is also uniquely designated by at least one alternative object identifier. In general, the procedure includes the following steps:
  • - 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. 3) gibt das Schema vor, dass wenn der alternative Objektbezeichner vom Bezeichnertyp STRING ist, als Teilungskriterium ein Separatorzeichen Literal verwendet wird und das Separatorzeichen innerhalb der gesamten Zeichenkette des alternativen Objektbezeichners PrefixedNodeID als zweiter Zusatzsbezeichnerteil identifiziert wird, wobei der Teil der Zeichenkette vor dem Separatorzeichen als erster Zusatzbezeichnerteil Prefix und der Teil der Zeichenkette nach dem Separatorzeichen als herkömmlicher Objektbezeichner NodeID identifiziert und weiterverarbeitet wird (vgl. Prefix Splitter).According to an initial development of the procedure (cf. 3rd ) specifies the scheme that if the alternative object identifier is of the identifier type STRING, a literal separator character is used as the division criterion and the separator character within the entire character string of the alternative object identifier PrefixedNodeID is identified as the second additional identifier part, with the part of the character string in front of the separator character being the first Additional identifier part Prefix and the part of the character string after the separator character is identified and further processed as a conventional object identifier NodeID (see Prefix Splitter).

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. 6) gibt das Schema vor, dass wenn der alternative Objektbezeichner vom Bezeichnertyp NUMERIC ist, als Teilungskriterium ein Basiswert Base verwendet wird und der alternative Objektbezeichner BiasedNodeID durch den Basiswert Base dividiert wird, wobei der Ganzzahlquotient dieser Division, insbesondere nach erneuter Multiplikation mit dem Basiswert Base, als Zusatzbezeichner Bias und der Rest dieser Division als herkömmlicher Objektbezeichner NodeID identifiziert und weiterverarbeitet wird (vgl. Base Modulo). In der 6 ist die erneute Multiplikation des Ganzzahlcruotienten mit dem Basiswert Base nicht gezeigt. According to another development of the procedure (cf. 6th ) the scheme specifies that if the alternative object identifier is of the identifier type NUMERIC, a base value Base is used as the division criterion and the alternative object identifier BiasedNodeID is divided by the base value Base, the integer quotient of this division, especially after repeated multiplication with the base value, as an additional identifier Bias and the remainder of this division is identified and processed as a conventional object identifier NodeID (see Base Modulo). In the 6th the repeated multiplication of the integer cruotient with the base value is not shown.

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 4 und 7 zeigen zwei Beispiele eines Verfahrens zum Ermitteln von Referenzen eines alternativen Objektbezeichners innerhalb einer OPC-UA-basierenden Kommunikationsumgebung K, wobei jedes Objekt eines Adressraums eines Servers S1, S2 durch einen herkömmlichen Objektbezeichner eindeutig bezeichnet ist und zusätzlich durch wenigstens einen alternativen Objektbezeichner eindeutig bezeichnet ist. Im Allgemeinen umfasst das Verfahren die Schritte:

  • - 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).
The 4th and 7th show two examples of a method for determining references of an alternative object identifier within an OPC UA-based communication environment K , where each object is an address space of a server S1 , S2 is uniquely designated by a conventional object identifier and is also uniquely designated by at least one alternative object identifier. In general, the procedure includes the following steps:
  • - 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. 4) gibt das Schema vor, dass wenn der alternative Objektbezeichner PrefixedNodeID, dessen Referenzen zu ermitteln sind, vom Bezeichnertyp STRING ist, als Teilungskriterium ein Separatorzeichen Literal 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 Prefix und der Teil der Zeichenkette nach dem Separatorzeichen als herkömmlicher Objektbezeichner NodeID identifiziert und weiterverarbeitet wird.According to an initial development of the procedure (cf. 4th ) specifies the scheme that if the alternative object identifier PrefixedNodeID, whose references are to be determined, is of the identifier type STRING, a literal separator character is used as the division criterion and the separator character within the character string of the alternative object identifier is identified as the second additional identifier part, and the part the character string before the separator character as the first additional identifier part Prefix and the part of the character string after the separator character is identified and further processed as the conventional object identifier NodeID.

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 4 tritt der Zusatzbezeichner als Prefix zum herkömmlichen Objektbezeichner auf. Denkbar wäre aber auch, dass der Zusatzbezeichner als Suffix zum herkömmlichen Objektbezeichner erscheint.In the example according to the 4th the additional identifier occurs as a prefix to the conventional object identifier. It is also conceivable that the additional identifier appears as a suffix to the conventional object identifier.

Gemäß einer anderen Ausbildung des Verfahrens (vgl. 7) gibt das Schema vor, dass wenn der alternative Objektbezeichner BiasedNodeID, dessen Referenzen zu ermitteln sind, vom Bezeichnertyp NUMERIC ist, als Teilungskriterium ein Basiswert Base verwendet wird und der alternative Objektbezeichner durch den Basiswert dividiert wird, wobei der Ganzzahlquotient dieser Division nach erneuter Multiplikation mit dem Basiswert Base als Zusatzbezeichner Bias und der Rest dieser Division als herkömmlicher Objektbezeichner NodeID weiterverarbeitet wird. In der 7 ist die erneute Multiplikation des Ganzzahlquotienten mit dem Basiswert Base nicht gezeigt. Der Ganzzahlquotient an sich, entspricht dem Index y der Dimension bzw. des Informationsmodells.According to another development of the procedure (cf. 7th ) specifies the scheme that if the alternative object identifier BiasedNodeID, whose references are to be determined, is of the identifier type NUMERIC, a base value Base is used as the division criterion and the alternative object identifier is divided by the base value, the integer quotient of this division after repeated multiplication by the base value Base is processed further as the additional identifier Bias and the remainder of this division as the conventional object identifier NodeID. In the 7th the repeated multiplication of the integer quotient by the base value is not shown. The integer quotient itself corresponds to the index y of the dimension or of the information model.

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 4 und 7 für das Ermitteln von Vorwärtsreferenzen dargestellt und beschrieben ist, kann dieses ebenfalls für das Ermitteln von Rückwärtsreferenzen genutzt werden.Even if the procedure is carried out according to the 4th and 7th is shown and described for determining forward references, this can also be used for determining backward references.

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)

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 Adressraums 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.Method for providing alternative object identifiers for objects in an address space of a server (S1, S2) within an OPC UA-based communication environment (K), each object of 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 that also uniquely identifies the object is 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. Verfahren nach Anspruch 1, wobei das Schema vorgibt, 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.Procedure according to Claim 1 The scheme stipulates 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. Verfahren nach Anspruch 2, wobei das Schema vorgibt, 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.Procedure according to Claim 2 The scheme stipulates that the alternative object identifier is also of the identifier type STRING and is formed from the three parts first additional identifier part, second additional identifier part and conventional object identifier of the respective object in this or the reverse combination order. Verfahren nach Anspruch 1, wobei das Schema vorgibt, 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 (S1, S2).Procedure according to Claim 1 The scheme stipulates 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 object identifiers of the objects in the address space of the server (S1, S2). Verfahren nach Anspruch 4, wobei das Schema vorgibt, dass der alternative Objektbezeichner ebenfalls vom Bezeichnertyp NUMERIC ist und durch Addieren des Zusatzbezeichners und des herkömmlichen Objektbezeichners des jeweiligen Objekts gebildet wird.Procedure according to Claim 4 , whereby the scheme specifies that the alternative 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. Verfahren zum Validieren eines alternativen Objektbezeichners innerhalb einer OPC-UA-basierenden Kommunikationsumgebung (K), wobei jedes Objekt eines Adressraums eines Servers (S1, S2) 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 (C1, C2), - 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 (S1, S2) vorhandenen herkömmlichen Objektbezeichner ermittelt werden kann, - Beurteilen des Zusatzbezeichners als valide, wenn er in einem Verzeichnis der für diesen Adressraum des Servers (S1, S2) definierten Zusatzbezeichner ermittelt werden kann, - Beurteilen des alternativen 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.Procedure for validating an alternative object identifier within an OPC UA-based communication environment (K), wherein each object of an address space of a server (S1, S2) is uniquely designated by a conventional object identifier and is also uniquely designated by at least one alternative object identifier, comprehensive the steps: - Extracting an alternative object identifier from a request from a client (C1, C2), - Dividing 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 (S1, S2), - 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 (S1, S2), - 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. Verfahren nach Anspruch 6, wobei das Schema vorgibt, 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.Procedure according to Claim 6 , whereby 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 before the separator character as the first additional identifier part and the part of the character string after the separator character is identified and processed further as a conventional object identifier or the part of the character string before the separator character as a conventional object identifier and the part of the character string after Separator characters are identified and processed further as the first additional identifier part. Verfahren nach Anspruch 6, wobei das Schema vorgibt, 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.Procedure according to Claim 6 , whereby 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 with the base value, as an additional identifier and the rest of this division is identified and processed further as a conventional object identifier. Verfahren zum Ermitteln von Referenzen eines alternativen Objektbezeichners innerhalb einer OPC-UA-basierenden Kommunikationsumgebung (K), wobei jedes Objekt eines Adressraums eines Servers (S1, S2) 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 (C1, C2), - 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 (S1, S2) 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.Method for determining references of an alternative object identifier within an OPC UA-based communication environment (K), wherein each object of an address space of a server (S1, S2) is uniquely designated by a conventional object identifier and is also uniquely designated by at least one alternative object identifier, comprehensive the steps: - Extracting an alternative object identifier from a request from a client (C1, C2), - 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 (S1, S2), each reference comprising a conventional object identifier of another assigned 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. Verfahren nach Anspruch 9, wobei das Schema vorgibt, 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 weiterverarbeitet wird.Procedure according to Claim 9 , whereby the scheme stipulates 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 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. Verfahren nach Anspruch 10, wobei das Schema vorgibt, 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.Procedure according to Claim 10 , whereby the scheme stipulates that for each identified reference the alternative object identifier 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 identifier of the respective assigned other object, second additional identifier part and first additional identifier part. Verfahren nach Anspruch 9, wobei das Schema vorgibt, 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.Procedure according to Claim 9 , whereby 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 by the base value Base, as an additional identifier and the rest of this division as a conventional object identifier. Verfahren nach Anspruch 12, wobei das Schema vorgibt, 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.Procedure according to Claim 12 The scheme stipulates 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. Server (S1, S1) ausgebildet zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 13.Server (S1, S1) designed to carry out the method according to one of the Claims 1 to 13th . System umfassend eine OPC-UA-basierende Kommunikationsumgebung (K) mit wenigstens einem Server (S1, S1) nach Anspruch 14 und wenigstens einem Client (C1, C2), die über ein Netzwerk (N) miteinander verbunden sind.System comprising an OPC UA-based communication environment (K) with at least one server (S1, S1) Claim 14 and at least one client (C1, C2), which are connected to one another via a network (N). Computerprogrammprodukt, umfassend Anweisungen, die bei Ausführung durch einen Computer, diesen veranlassen, das Verfahren nach einem der Ansprüche 1 bis 13 auszuführen.Computer program product, comprising instructions which, when executed by a computer, cause the computer to execute the method according to one of the Claims 1 to 13th to execute.
DE102020123509.7A 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 Pending DE102020123509A1 (en)

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)

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