Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EPIC: Define a mapping of Addressspace infos to OPC UA PubSub #5

Open
DasbachVDMA opened this issue Apr 4, 2024 · 8 comments
Open
Assignees
Labels

Comments

@DasbachVDMA
Copy link

Define the topic structure and the UA JSON structure for the MQTT broker.

Preliminary discussions:

  • Maybe reuse the browsepathes
  • The approach must be repeatable for each OPC UA CS

@Kantiran91 Please make a appointment for a workshop

@Kantiran91
Copy link
Member

Kantiran91 commented Apr 17, 2024

2024-04-17:
Target of the topic structure + encoding:
The nodes defined by a type definition (from a Companion Specification) are transmitted in MQTT.

Requirements for the topic structure

  • Be able to react to dynamic changes in the address space (nodes are added / nodes are deleted)
  • Resolve pro-mans references (NodeId as values)
  • Hierarchy references must be mapped
  • No-hierachy references should be mapped if necessary
  • Provide TypeInformation
  • Methods should already be considered
  • Online detection (possibly as separate topics)
  • Objects that can be empty.
  • Events / alarms must be able to be mapped
  • Coordinate the completeness of the run
  • The encoding should be UA JSON
  • Dimensioning for approx. 350 subscribers (machines + dashboard users)
  • Custom DataType must be included

Idea: Own dataset for publisher

  • Gateway version
  • Error message
  • Status

@Kantiran91
Copy link
Member

Kantiran91 commented Apr 17, 2024

todos:

@Kantiran91
Copy link
Member

Kantiran91 commented Apr 20, 2024

ideas for mapping the Hierarchy references must be mapped:

ideas for mapping references to KeyValuePair:
Key (QualifiedName): Browsename of the ReferenceType
Value(NodeId): NodeId of the TargetValue

@Kantiran91 Kantiran91 changed the title Define a topic structure for the pub sub Broker Define a mapping of Addressspace infos to OPC UA PubSub Apr 22, 2024
@Kantiran91
Copy link
Member

Here is a wiki article that contain all infos for this discussion:
https://github.com/umati/UA-CloudPublisher/wiki/Recommendations-for-Mapping-OPC-UA-Addessspace-information-in-OPC-UA-Pub-Sub

@Kantiran91 Kantiran91 changed the title Define a mapping of Addressspace infos to OPC UA PubSub EPIC: Define a mapping of Addressspace infos to OPC UA PubSub May 8, 2024
@Kantiran91 Kantiran91 added the epic label May 8, 2024
@Kantiran91
Copy link
Member

Kantiran91 commented Jun 28, 2024

@mdornaus @wlkrm @GoetzGoerisch @karstenroethig @ccvca
I have create an draft for the Pub/Sub Spec of the Dashboard.
Can you please review the document?

#54

@ccvca
Copy link
Member

ccvca commented Jun 28, 2024

grafik

https://reference.opcfoundation.org/Core/Part3/v105/docs/5.2.4

There is also no rule, that BrowseNames must not contain any of the following characters: ./:

@Kantiran91
Copy link
Member

Kantiran91 commented Jun 28, 2024

grafik

https://reference.opcfoundation.org/Core/Part3/v105/docs/5.2.4

There is also no rule, that BrowseNames must not contain any of the following characters: ./:

Yes that why we use the BrowsPath as name which can be used for intentify.

If you flow the annex of Part 4 the character are not allowed:
https://reference.opcfoundation.org/Core/Part4/v105/docs/A

Do you suggest that we give a hint how to solve BrowsePath conflicts? e.g. allowing to add an iteration value?

@ccvca
Copy link
Member

ccvca commented Jun 28, 2024

/ is allowed, ist just needs to be prefixed by a &, which will screw up MQTT as well.

<name>::= (<name-char> | '&' <reserved-char>) [<name>]
<reserved-char>::= '/' | '.' | '<' | '>' | ':' | '#' | '!' | '&' 
<name-char> ::= All valid characters for a String (see [OPC 10000-3](https://reference.opcfoundation.org/Core/Part3/v105/docs/)) excluding reserved-chars.

In the current version, this is solved by an URL-Encoding using an underscore instead of a '%'.

@Kantiran91 Kantiran91 linked a pull request Jul 1, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants