METHOD FOR PROVIDING AND VALIDATING ALTERNATIVE OBJECT IDENTIFIERS AND FOR DETERMINING REFERENCES OF ALTERNATIVE OBJECT IDENTIFIERS WITHIN AN OPC-UA-BASED COMMUNICATION ENVIRONMENT

20220345444 · 2022-10-27

    Inventors

    Cpc classification

    International classification

    Abstract

    A method for providing alternative object identifiers for objects of an address space of a server within an OPC UA based communication environment, wherein each object of the address space of the server is uniquely identified by a conventional object identifier, wherein at least one additional identifier is defined and is stored in a directory of additional identifiers defined for this address space of the server, and wherein an alternative object identifier also uniquely identifying the object is formed for each object of the address space of the server, whereby the additional identifier is combined with the conventional object identifier of the respective object according to a determined pattern. Another method for validating alternative object identifiers and a method for determining references of object identifiers, as well as a server, a system, and a computer program product designed to carry out at least one of the methods.

    Claims

    1. A method for providing alternative object identifiers for objects of an address space of a server within an OPC UA based communication environment, wherein each object of the address space of the server is uniquely identified by a conventional object identifier, wherein at least one additional identifier is defined and stored in a directory of the additional identifiers defined for this address space of the server, and wherein for each object of the address space of the server, an alternative object identifier is formed which also uniquely identifies the object by combining the additional identifier with the conventional object identifier of the respective object according to a determined pattern.

    2. The method of claim 1, wherein the pattern provides that if the conventional object identifier is of the STRING identifier type, the additional identifier is also of the STRING identifier type and comprises two additional identifier parts, and wherein the first additional identifier part is a freely definable string and the second additional identifier part is a freely definable separator character.

    3. The method of claim 2, wherein the pattern provides that the alternative object identifier is also of the STRING identifier type and is formed of the three parts: first additional identifier part, second additional identifier part, and conventional object identifier of the respective object in this or reverse combination order.

    4. The method of claim 1, wherein the pattern provides that if the conventional object identifier is of the NUMERIC identifier type, the additional identifier is also of the NUMERIC identifier type and is a multiple of a base value, and wherein the base value is greater than the largest numerical value, increased by 1, of all the conventional object identifiers of the objects of the address space of the server.

    5. The method of claim 4, wherein the pattern provides that the alternative object identifier is also of the NUMERIC identifier type and is formed by adding the additional identifier and the conventional object identifier of the respective object.

    6. A method for validating an alternative object identifier within an OPC UA based communication environment, wherein each object of an address space of a server is uniquely identified by a conventional object identifier and is additionally uniquely identified by at least one alternative object identifier, comprising: extracting an alternative object identifier from a request from a client; dividing the alternative object identifier according to a certain pattern using a division criterion, such that a conventional object identifier and an additional object identifier are subsequently present; judging that the conventional object identifier is valid, if it can be identified in a directory of conventional object identifiers existing in this address space of the server; judging that the additional identifier is valid, if it can be identified in a directory of the additional identifiers defined for this address space of the server; judging that the alternative object identifier is valid, if both the conventional object identifier and the additional identifier were previously judged to be valid; and judging that the alternative object identifier is not valid if the conventional object identifier and/or the additional identifier were previously judged to not be valid.

    7. The method of claim 6, wherein the pattern provides that if the alternative object identifier is of the STRING identifier type, a separator character is used as the division criterion and the separator character is identified within the entire string of the alternative object identifier as the second additional identifier part, and wherein the part of the character string before the separator character is identified as the first additional identifier part and the part of the character string after the separator character is identified as the conventional object identifier and processed further, or the part of the character string before the separator character is identified as the conventional object identifier and the part of the character string after the separator character is identified as the first additional identifier part and processed further.

    8. The method according to claim 6, wherein the pattern provides that if the alternative object identifier is of the NUMERIC identifier type, a base value is used as a division criterion and the alternative object identifier is divided by the base value, wherein the integer quotient of this division, in particular after renewed multiplication by the base value base, is identified as an additional identifier and the remainder of this division being identified and processed further as a conventional object identifier.

    9. A method for determining references of an alternative object identifier within an OPC UA based communication environment, wherein each object of an address space of a server is uniquely identified by a conventional object identifier and is additionally uniquely identified by at least one alternative object identifier, comprising: extracting an alternative object identifier from a request from a client; dividing the alternative object identifier according to a certain pattern using a division criterion, such that a conventional object identifier and an additional object identifier are subsequently present; determining the references associated with the conventional object identifier in a directory of the references present in this address space of the server, wherein each reference comprises a conventional object identifier of an associated other object; and for each determined reference, forming of an alternative object identifier by combining the additional identifier with the conventional object identifier of the associated other object comprised by the reference according to a certain pattern.

    10. The method of claim 9, wherein the pattern provides that if the alternative object identifier whose references are to be determined is of the STRING identifier type, a separator character is used as the division criterion and the separator character within the string of the alternative object identifier is identified as the second additional identifier part, and wherein the part of the character string before the separator character is identified as the first additional identifier part and the part of the character string after the separator character is identified as the conventional object identifier and processed further, or the part of the character string before the separator character is identified as the conventional object identifier and the part of the character string after the separator character is identified as the first additional identifier part and processed further.

    11. The method of claim 10, wherein the pattern provides that for each determined reference, the alternative object identifier is also of the STRING identifier type and is formed of three parts, namely, in the order: first additional identifier part, second additional identifier part, and conventional object identifier of the respective associated other object, or in the order: conventional object identifier of the respective associated other object, second additional identifier part, and first additional identifier part.

    12. The method according to claim 9, wherein the pattern provides that if the alternative object identifier whose references are to be determined is of the NUMERIC identifier type, a base value is used as division criterion and the alternative object identifier is divided by the base value; and wherein the integer quotient of this division, in particular after renewed multiplication by the base value base, is processed further as an additional identifier and the remainder of this division as a conventional object identifier.

    13. The method of claim 12, wherein the pattern provides that for each determined reference, the alternative object identifier is also of the NUMERIC identifier type and is formed by adding the additional identifier and the conventional object identifier of the respective associated other object.

    14. A server configured to perform the method according to claim 1.

    15. System comprising an OPC UA based communication environment with at least one server according to claim 14 and at least one client which are interconnected via a network.

    16. A computer program product comprising instructions which, when executed by a computer, cause the computer to perform the method of claim 1.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0059] These and further features and advantages of embodiments of the present invention also result from the examples, which are explained in more detail below with reference to the accompanying drawings. The figures are schematic representation wherein:

    [0060] FIG. 1 shows a system with an OPC UA based communication environment;

    [0061] FIG. 2 shows a first example of a method for providing an alternative object identifier;

    [0062] FIG. 3 shows a first example of a method for validating an alternative object identifier;

    [0063] FIG. 4 shows a first example of a method for determining references of an alternative object identifier;

    [0064] FIG. 5 shows a second example of a method for providing an alternative object identifier;

    [0065] FIG. 6 shows a second example of a method for validating an alternative object identifier;

    [0066] FIG. 7 shows a second example of a method for determining references of an alternative object identifier;

    [0067] FIG. 8 shows an address space of an OPC UA server, wherein the component variables of a controller are listed as nodes with unique node identifiers of the STRING identifier type;

    [0068] FIG. 9 shows an address space of an OPC UA server, wherein the directory of all namespaces or namespace indices of the address space is stored as “NamespaceArray” attribute of the “Server” node;

    [0069] FIG. 10 shows a first example of a listing of conventional object identifiers and alternative object identifiers for objects or nodes of an address space, which represent variables of the “Arp.PLC.Eclr” control component in different information models; and

    [0070] FIG. 11 shows a second example of a listing of conventional object identifiers and alternative object identifiers for objects or nodes of an address space, which represent variables of the “Arp.PLC.Eclr” control component in different information models.

    DETAILED DESCRIPTION

    [0071] FIG. 1 shows, by way of example, a system with an OPC UA based communication environment K, which here has two servers S1 and S2 as well as two clients C1 and C2, which are connected to each other via a network N. In so doing, the clients are designed as OPC UA clients and the servers as OPC UA servers. The servers are moreover designed to carry out the methods according to the invention for the provision, validation, and determination of references of alternative object identifiers, wherein the individual methods are explained in more detail below. The servers S1 and S2 provide their information to the clients C1 and C2 in an address space.

    [0072] FIG. 8 shows, by way of example, a part of the address space of the OPC UA server S1. In the drawing, the component variables of a PLCnext Technology controller (that is not shown) to which at least the server S1 is connected, are listed as nodes with unique conventional node identifiers of the STRING identifier type. FIG. 9 shows another part of the address space of the OPC UA server S1, wherein it can here be recognized that the directory of all namespaces or namespace indices of the address space is stored as “NamespaceArray” attribute of the “Server” node.

    [0073] The OPC UA standard does not specify how a server is required to manage the nodes. It is assumed that the address space is divided into namespaces N[x], wherein the conventional NodeID node identifiers are in a namespace N[x] of the identifierType=STRING identifier type or of the identifierType=NUMERIC identifier type. It is further assumed that the server uses an array-like structure called NodeIDArray to store valid NodeID node identifiers and uses a map-like structure called Forward-/BackwardReferenceMap to store references, which is to say arrays of NodeID node identifiers of the references to each NodeID node identifier. However, these assumptions have been made exclusively to simplify the description of the embodiments of the present invention and are not meant to limit the invention.

    [0074] Embodiments of the present invention aims at extending an existing address space, in particular within a namespace N[x], by a dimension y having y=1 . . . Y, and this at low costs or minimal effort, which is to say without replication of node instances in a memory, in particular without adding new elements to the NodeIDArray or the Forward/BackwardReferenceMap. In this way, embodiments of the present invention enable the implementation of Y additional information models or contexts for a dataset.

    [0075] For this purpose, embodiments of the present invention propose a new addressing pattern that has already been mentioned here above.

    [0076] In the case of a conventional NodeID node identifier of the identifierType=STRING identifier type in a namespace N[x], a new or alternative PrefixedNodeID node identifier of the same identifier type is defined, which is formed, as shown in FIG. 2, by combination or concatenation (cf. prefix concatenator) of a first part of an additional Prefix[y] identifier and a second part of an additional identifier in the form of a separator literal with the conventional NodeID node identifier, where Prefix[y] is an element of the Prefix[Y] set with index y=1:Y.

    [0077] In the case of a conventional NodeID node identifier of the identifierType=NUMERIC identifier type in a namespace N[x], a new or alternative BiasedNodeID node identifier of the same identifier type is defined, which is formed as shown in FIG. 5 by the combination or addition (cf. bias adder) of an additional identifier Bias[y] and the conventional NodeID node identifier, wherein Bias[y] is an element of the set Bias[Y] with index y=1:Y, and wherein Bias[y] is the product of the multiplication of a base value base by y (cf. base multiplier), wherein the base value base is larger than the largest numerical value, increased by 1, of all the conventional NodeID node identifiers in the namespace N[x].

    [0078] If, for example, the namespace N[x] contains 10 nodes with NodeID node identifiers=1 . . . 9, then the base value base can be=100, since 100>max (0 . . . 9) is valid, such that for Y=3, it results in alternative biased NodeID node identifiers=(100 . . . 109, 200 . . . 209, 300 . . . 309).

    [0079] In general terms, in this way, a method is provided for the provision of alternative object identifiers for objects of an address space, in particular of a name space, of a server S1, S2 within an OPC UA based communication environment K, wherein each object of the address space of the server S1, S2 is uniquely identified by a conventional object identifier, wherein at least one additional identifier is defined and stored in a directory of the additional identifiers defined for this address space of the server S1, S2, and wherein for each object of the address space of the server S1, S2, an alternative object identifier is formed according to a determined pattern, which identifier also uniquely identifies the object by combining the additional identifier with the conventional object identifier of the respective object.

    [0080] In an embodiment of the method, the pattern provides that if the conventional object identifier is of the STRING identifier type, the additional identifier is also of the STRING identifier type 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. Furthermore, the pattern provides that the alternative object identifier is also of the STRING identifier type and is formed of three parts: first additional identifier part, second additional identifier part and conventional object identifier of the respective object, in this combination order (cf. FIG. 2).

    [0081] Exemplary results of this method are shown in FIG. 10 and FIG. 11.

    [0082] FIG. 10 shows a list of conventional object identifiers and alternative object identifiers for objects or nodes of an address space, which represent variables of the “Arp.PLC.Eclr” control component 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” has been defined to provide an information model for global variables. In both cases, the additional identifier also includes the “:” separator character.

    [0083] FIG. 11 shows another list of conventional object identifiers and alternative object identifiers for objects or nodes of an address space, which represent variables of the “Arp.PLC.Eclr” control component in yet again different information models. On the one hand, the additional identifier “History.SessionA” was defined here for an information model for accessing historical values of these variables, which were recorded in a session A with a first sampling rate. On the other hand, the additional identifier “History.SessionB” has been defined for an information model to access historical values of these variables, which have been captured in a Session B with a second sampling rate. In both cases, the additional identifier also again includes the “:” separator character.

    [0084] In the examples according to FIG. 2, FIG. 10 and FIG. 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.

    [0085] In an alternative embodiment of the method, the pattern provides that if the conventional object identifier is of the NUMERIC identifier type, the additional identifier is also of the NUMERIC identifier type and is a multiple of a base value, wherein the base value is greater than the largest numerical value, increased by 1, of all the conventional object identifiers of the objects of the address space of the server S1, S2. Furthermore, the pattern provides that the alternative object identifier is also of the NUMERIC identifier type and is formed by adding the additional identifier and the conventional object identifier of the respective object (cf. FIG. 5).

    [0086] FIG. 3 and FIG. 6 show two examples of a method 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 identified by a conventional object identifier and is additionally uniquely identified by at least one alternative object identifier. In general, the method comprises the steps of: [0087] extracting an alternative PrefixedNodeID or BiasedNodeID object identifier from a request of a client C1, C2, [0088] dividing the alternative object identifier according to a specific pattern making use of a division criterion, such that subsequently a conventional NodeID object identifier and a prefixed or biased additional identifier are available, [0089] judging that the conventional NodeID object identifier is valid, if it can be identified in a NodeIDArray directory of conventional object identifiers existing in this address space of the server S1, S2 (cf. node validator), [0090] judging that the additional identifier is valid, if it can be identified in a prefix[Y] or bias[Y] directory of the additional identifiers defined for this address space of the server S1, S2 (cf. prefix validator or bias validator), [0091] judging that the alternative object identifier is valid, if both the conventional object identifier and the additional identifier were previously judged to be valid (cf. Logical AND), [0092] judging that the alternative object identifier is not valid if the conventional object identifier and/or the additional identifier were previously judged to not be valid.

    [0093] According to an embodiment of the method (cf. FIG. 3), the pattern provides that if the alternative object identifier is of the STRING identifier type, a separator literal character is used as a division criterion and the separator character is identified within the entire string of the alternative PrefixedNodeID object identifier as a second additional identifier part, wherein the part of the string before the separator character is identified as the first additional prefixed identifier part and the part of the string after the separator character is identified and processed further as the conventional NodeID object identifier (cf. prefix splitter).

    [0094] In a case not shown in the figures, it could instead be provided that the part of the character string before the separator character is identified and processed further as a conventional object identifier and the part of the character string after the separator character is identified and processed further as a first additional identifier part.

    [0095] According to another embodiment of the method (cf. FIG. 6), the pattern provides that if the alternative object identifier is of the NUMERIC identifier type, a base value base is used as a division criterion and the alternative BiasedNodeID object identifier is divided by the base value base, wherein the integer quotient of this division, in particular after renewed multiplication by the base value base, is identified and processed further as the additional bias identifier and the remainder of this division is identified and processed further as the conventional NodeID object identifier (cf. Base Modulo). In FIG. 6, the renewed multiplication of the integer quotient with the base value base is not shown.

    [0096] The integer quotient itself, corresponds to the index y of the dimension or the information model.

    [0097] Due to this step-by-step validation according to embodiments of the present invention, the validation of alternative object identifiers can be carried out very efficiently. And since in the provision of alternative object identifiers for an additional information model according to embodiments of the present invention, only a new additional identifier is entered into the directory of additional identifiers, but no node instances are replicated, the validation of alternative object identifiers requires virtually no additional storage space and computing power or time. In this way, the embodiments of the present invention enable implementation of Y additional information models or contexts for a dataset without increasing memory and computing power or time requirements by a factor of Y+1.

    [0098] FIG. 4 and FIG. 7 show two examples of a 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 identified by a conventional object identifier and is additionally uniquely identified by at least one alternative object identifier. In general, the method comprises the steps of: [0099] extracting an alternative PrefixedNodeID or BiasedNodeID object identifier from a request of a client C1, C2, [0100] dividing the alternative object identifier according to a determined pattern using a division criterion so that a conventional NodeID object identifier and an additional prefixed or biased identifier are subsequently available, [0101] determining the references assigned to the conventional NodeID object identifier in a ForwardReferenceMap directory of the references present in this address space of the server S1, S2, wherein each reference comprises a conventional object identifier of an assigned other object (cf. NodeID lookup), [0102] for each determined ForwardReferences reference, forming of an alternative PrefixedForwardReferences or BiasedForwardReferences object identifier through the combination of the additional prefix or bias identifier with the conventional object identifier of the associated other object comprised according to a certain pattern by the ForwardReferences reference (cf. prefix concatenator or bias adder).

    [0103] According to an embodiment of the method (cf. FIG. 4), the pattern provides that if the alternative PrefixedNodeID object identifier whose references are to be determined is of the STRING identifier type, a separator literal character is used as a division criterion and the separator character within the string of the alternative object identifier is identified as the second additional identifier part, and wherein the part of the string before the separator character is identified and processed further as first additional prefix identifier part and the part of the string after the separator character is identified and processed further as conventional NodeID object identifier.

    [0104] In a case not shown in the figures, it could instead be provided that the part of the character string before the separator character is identified and processed further as a conventional object identifier and the part of the character string after the separator character is identified and processed further as a first additional identifier part.

    [0105] Furthermore, the pattern provides that for each determined ForwardReferences reference the alternative PrefixedForwardReferences object identifier is also of the STRING identifier type and is formed of three parts in the order: first additional prefix identifier part, second additional identifier part separator literal and conventional object identifier of the respective assigned other object or in the order: conventional object identifier of the respective assigned other object, second additional identifier part and first additional identifier part.

    [0106] In the example according to FIG. 4, the additional identifier occurs as a prefix to the conventional object identifier. It is, however, also conceivable that the additional identifier can appear as a suffix to the conventional object identifier.

    [0107] According to another embodiment of the method (cf. FIG. 7), the pattern provides that if the alternative BiasedNodeID object identifier, whose references are to be determined, is of the NUMERIC identifier type, a base value base is used as a division criterion and the alternative object identifier is divided by the base value, wherein the integer quotient of this division is processed further as the additional bias identifier after renewed multiplication by the base value base and the remainder of this division being processed further as the conventional NodeID object identifier. In FIG. 7, the renewed multiplication of the integer quotient with the base value base is not shown. The integer quotient by itself, corresponds to the index y of the dimension or information model.

    [0108] Furthermore, the pattern provides that for each determined ForwardReferences reference, the alternative BiasedForwardReferences object identifier is also of the NUMERIC identifier type and is formed by adding the additional bias identifier and the conventional object identifier of the respective assigned other object.

    [0109] Even though the method according to FIG. 4 and FIG. 7 is shown and described for determining forward references, it can also be used for determining backward references.