Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
Simulator replicating real world data?
February 7, 2017
17:37, EET
Avatar
Mark Petty
Member
Members
Forum Posts: 11
Member Since:
October 26, 2016
sp_UserOfflineSmall Offline

Hi,

I’m working on building a client and was wondering how close the simulator comes to replicating a real word server data hierarchy. In specific, the situation where a node had NodeClass has type Variable and has “children” that also have NodeClass of the type Variable. (see: “ns=2;s=MyLevel.Alarm/0:AckedState).

Also, is there a way to configure it to replicate real world servers? If not, do you have any suggestions to achieve that goal?

-thanks
-Mark

February 7, 2017
17:58, EET
Avatar
Heikki Tahvanainen
Member
Members
Forum Posts: 402
Member Since:
April 17, 2013
sp_UserOfflineSmall Offline

Hello Mark,

Unfortunately, you cannot modify the Simulation Server address space completely freely. You can add your own simulation signals but you’re not able to modify references between the nodes in the way that you explained.

To replicate your own real world server, the best solution for now is to develop a replica using the OPC UA Java SDK yourself.

February 7, 2017
20:44, EET
Avatar
Mark Petty
Member
Members
Forum Posts: 11
Member Since:
October 26, 2016
sp_UserOfflineSmall Offline

Hello Heikki,

I don’t think I clearly explained my issues.

The Prosys simulation server, when showing Address Space in hierarchical mode, shows nodes where a node of type [Variable] NodeClass is the parent of one or more other nodes of type [Variable] NodeClass. My cited example (see: “ns=2;s=MyLevel.Alarm/0:AckedState) was one example. I’m new to OPC and more familiar with systems like SNMP where [Variable] can only be bottom layer and not have children nodes.

My question was “is this going to be normal in the commercial world?” I’m assuming so, but I wanted to make sure, as I’m not designing to interact with a specific server.

The next question was “is there a way to make the Prosys server replicate specific Servers”, as I was hoping to be able to use it to increase my test bed with data against different server configurations.

-Thanks again

February 8, 2017
13:28, EET
Avatar
Heikki Tahvanainen
Member
Members
Forum Posts: 402
Member Since:
April 17, 2013
sp_UserOfflineSmall Offline

Hello,

Sorry for the misunderstanding! This is a good question, although I think that there’s some problem with your server setup if you see the MyLevelAlarm node as a variable. It’s NodeClass should be object.

The object and variable concepts in OPC UA should be thought of in the same way as in object-oriented programming. So, normally all variables belong to some object. In the example that you mentioned, the MyLevelAlarm (ns=2;s=MyLevel.Alarm) node is an Object node, which then contains variables and methods. The variables are referenced with HasComponent or HasProperty refences and the methods are always referenced with HasComponent reference.

However, this general rule does not apply always. Data variables can be complex, that is, they can have sub-variables containing parts of the data and properties describing them. An example about this is the ServerStatus node (i=2256), which contains the value as an array and also the individual fields as sub-variables.

Basically the only thing that can be assumed about variable nodes is that they always belong to another node meaning that they are referenced by at least one HasComponent or HasProperty reference from another node (not necessarily an object).

Hopefully this answers the first question. Let us know if there’s still something unclear.

As for the question “is there a way to make the Prosys server replicate specific Servers”:
The short answer is no. In principle, you can replicate the address space of any OPC UA server with the Java SDK, but the level of complexity depends on the specific case. Depending on the case, this can involve a lot of manual work and the SDK has not been designed to specifically help you with replicating an existing server.

February 8, 2017
16:33, EET
Avatar
Mark Petty
Member
Members
Forum Posts: 11
Member Since:
October 26, 2016
sp_UserOfflineSmall Offline

Hi,

Thanks for the clear and extensive answer. As a clarification, I wasn’t seeing MyLevelArarm as a [Variable], but its child AckedState, which is a [Variable], and AckedState’s children FalseState, Id, and TrueState, which are also all [Variable].

Your explanation of HasComponent, HasProperty, and potentially ComponentOf gives me a direction to work from.

-Thanks again
-Mark

February 8, 2017
16:57, EET
Avatar
Heikki Tahvanainen
Member
Members
Forum Posts: 402
Member Since:
April 17, 2013
sp_UserOfflineSmall Offline

Hi,

Thank you for the explanation, somehow I was able to misinterpret that part also. But good to know that you got an answer to your question. Let us know if further questions arise.

Forum Timezone: Europe/Helsinki

Most Users Ever Online: 1919

Currently Online:
13 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Heikki Tahvanainen: 402

hbrackel: 144

rocket science: 88

pramanj: 86

Francesco Zambon: 83

Ibrahim: 78

Sabari: 62

kapsl: 57

gjevremovic: 49

Xavier: 43

Member Stats:

Guest Posters: 0

Members: 735

Moderators: 7

Admins: 1

Forum Stats:

Groups: 3

Forums: 15

Topics: 1523

Posts: 6449

Newest Members:

rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettinger, howardkennerley, Thomassnism, biancacraft16

Moderators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1026, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0

Administrators: admin: 1