“Pumps” show up under both the Stations.01 and Stations.02 branch. For example, consider the following tiny name space:Īs we can see there are many nodes whose Display Name is not unique (e.g. This means, to build the “tag”, I am concatenating the Display Name of each level (as one would expect in an OPC DA style tag). Yes, Display Name might not be unique but, as I said in my post, I am not using Display Name, I am using the Display Name hierarchy. However, I would have to disagree on the first part. I would agree on the second part…if your OPC Server has a very large address space then the dictionary could get very large.
Kepserverex opc server code#
So far I am having a little trouble with writing because it keeps complaining about the data type not matching but I should be able to resolve that soon.Ĭurrently subscriptions are not yet supported (next on the list) but you might want to have a look at my code if this is something that interests you. It is a work in progress since I only started today but I am already able to read any tag from the address space by using the corresponding tag (as opposed to node id). The UaSimpleClient then uses this dictionary to provide functions for reading and writing OPC tags using tag notation (as opposed to node Ids). In a recent post, it was explained to me that while Kepware Server seems to use string NodeId which somewhat follow the tag convention, but other server may use integers, objects or arrays for NodeIds instead of the tag like strings.įor this purpose, my UaSimpleClient, upon connection, recursively runs through the address space of the server and creates a dictionary mapping between the Display Name hierarchy and node Ids. I am working on a UaSimpleClient which provides OPC DA like tag access to the address space without needing to concern yourself with NodeIds. I know it’s so simple i think but i’m also new in Unified Architecture, and i work hard to achieve my goal Please tell me if One of the Approach can lead me to a solution, or if i should try a different way. – I did know the NodeId of one of the Tag : for Example : NodeId = ns=2 s= Otherway, i tried to access the tag directly, but it doesn’t work I guess because i can’t use ReferenceDescription for browsing it like a Node(RootFolder) and then getting other references. I have made strategies to get one Node (Variable) : First approach, i tried to begin with a node with the nodeid= identifiers.rootFolder and then there are three Options that we have Types, objects and views, i used ReferenceDescription and after that it works for accessing Objects and getting _System, _server, Channel1 i want to browse also Channel1 Node and then Device1 (the same way) and the Tag Item that is located in the server but doesn’t work: Doesn’t print anything on a console. I’ve read the Unified Architecture Book and tried to understund well the Code. I’m developping a Java Application that will extract some values from PLC, for that reason i’m using KepServerEx and Prosys SDK.