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
Can't defined different UserAccessLevel than AccessLevel
September 18, 2017
13:39, EEST
Avatar
Thomas Reuther
Member
Members
Forum Posts: 33
Member Since:
September 18, 2017
sp_UserOfflineSmall Offline

Hi there!

I use Java SDK 2.3.2 Eval and I have a problem with UserAccessLevel.
I create a nodeset file where UserAccessLevel differs from AccessLevel, e.g. AccessLevel=”1″ UserAccessLevel=”0″ (other combinations are: 2/0, 3/1, 15/11)
I load the file using:
MyUaServer.getAddressSpace().loadModel(new FileInputStream(new File(“uatestserver.xml”)))
So far all nodes are there as I expect. But not the permissions. In all cases AccessLevel = UserAccessLevel, here: 1/1, 2/2, 3/3, 15/15.

I also checked the SampleConsoleServer and SimulationServer.
In SampleConsoleServer the node “/ComplianceNodes/AccessLevels/AccessLevelCurrentReadNotUser” has AccessLevel=”1/CurrentRead” and UserAccessLevel=”1/CurrentRead” but should have UserAccessLevel=”0/None” as the name says.
In SimulationServer the node “/StaticData/AccessLevels/AccessLevelCurrentReadNotUser” is the same: AccessLevel=”1/CurrentRead” and UserAccessLevel=”1/CurrentRead” but not “0/None”.
On both servers it’s the same with “AccessLevelCurrentReadNotUser” where UserAccessLevel is “2/CurrentWrite” instead of “0/None”.

I’m also using the Unified Automation .Net SDK where I use the same nodeset file, and it is shown perfectly. The same nodes and the permissions as expected.

Thanks for any suggestions.
Thomas

September 18, 2017
16:08, EEST
Avatar
Heikki Tahvanainen
Member
Members
Forum Posts: 402
Member Since:
April 17, 2013
sp_UserOfflineSmall Offline

Hello Thomas,

You have observed the functionality completely correctly. This is actually not a issue, but rather a feature of the Prosys OPC UA Java SDK. If you want to implement the UserAccessLevel functionality, you will need to do this handling in the IoManager or IoManagerListener. Otherwise, the Java SDK will use the value from AccessLevel.

Defining the UserAccessLevel attribute in the information model is not useful, because the value of this attribute is supposed to have different values depending on the user who is connected to the server. If you want to set a fixed value for all users, then the attribute AccessLevel should be used.

Let us know if you have any further questions or suggestions about the AccessLevel attributes.

September 18, 2017
17:14, EEST
Avatar
Thomas Reuther
Member
Members
Forum Posts: 33
Member Since:
September 18, 2017
sp_UserOfflineSmall Offline

Hello Heikki,

yes, this was already my assumption.

Before I tried Prosys SDK I used Unified Automation .Net SDK as well as .Net SDK downloadable from OPC Foundation (I don’t know its vendor). Both SDKs handle this in the way what I expected first. And even Softing C++ SDK allows static UserAccessLevels defined in the node set file.

In my case as a software tester I want to create a kind of mockup server with well-known behaviour as underlying system for the “real” server under test.
Yes, I agree for a life server static UserAccessLevels make not much sense.
So I will go and use IoManager.

Many thanks!
Thomas

September 19, 2017
17:05, EEST
Avatar
Thomas Reuther
Member
Members
Forum Posts: 33
Member Since:
September 18, 2017
sp_UserOfflineSmall Offline

Hello Heikki,

I made another observation with the UserExecutable attribute. While AccessLevel overwrites UserAccessLevel (node set file: AccessLevel=”3″ UserAccessLevel=”1″ => address space: AccessLevel=”3″ UserAccessLevel=”3″), in case of methods UserExecutable overwrites Executable (node set file: Executable=”true” UserExecutable=”false” => address space: Executable=”false” UserExecutable=”false”).

Here the IoManager won’t help me because I cannot correct the Executable attribute (only UserExecutable)!?!

Thomas

September 21, 2017
17:36, EEST
Avatar
Heikki Tahvanainen
Member
Members
Forum Posts: 402
Member Since:
April 17, 2013
sp_UserOfflineSmall Offline

Hi Thomas,

It seems that you have noticed an actual issue which was not known to us before. Seems that the Executable attribute cannot be set from the NodeSet file and instead the value of UserExecutable is put to both of these attributes. I’ll still need to verify this but this is the behaviour that I can also reproduce myself.

The quick fix here is that don’t set the UserExecutable from the NodeSet file, but instead handle this in the IoManager. This way you will end up in the desired situation Executable=”true” UserExecutable=”false”. As explained above, our view is that these UserAccessLevel and UserExecutable attributes should not be specified in the NodeSet file because that is not semantically correct.

Thanks for the report!

Forum Timezone: Europe/Helsinki

Most Users Ever Online: 1919

Currently Online:
7 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: 737

Moderators: 7

Admins: 1

Forum Stats:

Groups: 3

Forums: 15

Topics: 1524

Posts: 6450

Newest Members:

fannielima, kristiewinkle8, rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettinger, howardkennerley

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

Administrators: admin: 1