OT: What are "product URI" and "application URI" for?

1,597 views
Skip to first unread message

Grant Edwards

unread,
Nov 16, 2017, 2:58:24 PM11/16/17
to open62541
I apologize if some of these questions aren't specific to open62541...

I see that the product URI and application URI are defaulted to these values
in ./plugins/ua_config_standard.c:


   
27  #define PRODUCT_URI "http://open62541.org"
   
29  #define APPLICATION_URI "urn:unconfigured:application"


I've been reading the OPC UA spec (and Googling the web in general), but I can't find any explanation of what those two URI strings should be set to.

What are they supposed to identify?

Are the really intended to be hard-wired at build time and subsequently identical for all serial numbers of all models of hardware that use the firmware?

Or are they supposed to be unique to each model?  Or each serial number?

Or are they supposed to be end-user configurable?

-- 
Grant Edwards


Julius Pfrommer

unread,
Nov 17, 2017, 4:17:48 AM11/17/17
to open62541
They _are end-user configurable_.
The server will work with whatever configuration it is given.

The default configuration is a suggestion of sane settings.
These can be adjusted by users to fit their needs.

Best regards,
Julius Pfrommer

Grant Edwards

unread,
Nov 17, 2017, 10:54:08 AM11/17/17
to open62541
On Friday, November 17, 2017 at 3:17:48 AM UTC-6, Julius Pfrommer wrote:

They _are end-user configurable_.

I'm sorry, I was unclear.  By "end-user", I meant the person who buys the device containing the firmware I'm writing (which contains an embedded open62541 server).  The end-user configures that device via a set of web pages and then installs that device on his factory floor and connects various sensors, actuators, etc. to the device. The end-user then configures a SCADA system to query my device for various data using OPC UA.

As the firmware is currently written, those two URIs are not end-user configurable.  They contain the default values from plugins/ua_config_standard.c.
 
The server will work with whatever configuration it is given.

Yes, I'm aware of that -- which is why my questions are probably off-topic since they're not strictly about Open62541, but are about what those two values mean in the OPC UA world in general and what people expect those values to be.

I haven't been able to find out the semantics of those two values.

What are they used for in the real world?

What are they expected to represent when I ship a customer a physical product containing an embedded OPC UA server?
 
I can't find any description or definition for them in the OPC UA documentation, and Google hasn't found anything helpful either.

Are they supposed to indicate the manufacturer of the product containing the OPC UA server?

Are they supposed to indicate the product model?

Are they supposed to be configurable by the person who bought the device containing the OPC UA server and is installing the server on the factory floor?

The default configuration is a suggestion of sane settings.
These can be adjusted by users to fit their needs.

Currently, I can change them by editing source code, re-building firmware, and re-flashing the device with the new firmware.

But, they
  • Can't be changed at the time the device is manufactured and programmed with the firmware.
  • Can't be changed by the end-user.
  • Will be identical for all units of all product models running my firmware.
Is that what people expect when they buy a device that contains an embedded OPC UA server?

 I was hoping somebody on this mailing list might know...

Thanks,

Julius Pfrommer

unread,
Nov 17, 2017, 11:28:50 AM11/17/17
to open62541
The current configuration plugin does hard-code them.
But you can of course provide an implementation where this information comes from a file or other source of configuration.

Here's the relevant section of the standard (Part 5).

Auto Generated Inline Image 1
Reply all
Reply to author
Forward
0 new messages