Replies: 3 comments 4 replies
-
Hi @roin93 , First, I recommened to switch to opcua-asyncio, since this repo is in maintainance mode (we also have a sync wrapper, which should work).
The duration of parsing big xml files realy needs time. This is a known behaviour and we can't speed this up at the moment (even in the other repo). PRs welcome. Luckly the xmlimporter works fine there so far (otherwise please address issues to me 😅 ). If I understand you correctly, you try to develope an OPC UA Server Aggregator? About the problematic, finding the right node: I would use the browsepath to identify the right node. Mayabe browse the path first, then get the ID node and use this NodeId for later calls (depending on your server philosophy). |
Beta Was this translation helpful? Give feedback.
-
Isn't there a section in the spec about one server talking to another server? I thought there was some guidelines that a node should only ever exist in one server? |
Beta Was this translation helpful? Give feedback.
-
data aggregation is a commen usecase! there are already products out there which did that (https://www.sterfive.com/#/product-aggregator), its like crawling some parts of the addressspace and rebuild them in the new server (subscribe and update bidirectional) passing thru methodcalles and results also passing thru events (subscribe and re-emit). you need to check typedefinition and all other references and rebuild the addressspace inkl. custom models and xml (all namespaces > Index 0) if its a variable or property you need tu subscribe them and you need to find a way to wirte thru the new server (bidirectional read and write) thats a lot of work and many pitfalls if you have customtypes and methods |
Beta Was this translation helpful? Give feedback.
-
Hello,
I want to build some kind of repeater for opcua.
I have a server which provide me a whole bunch of objects and variables (Siemens SPS for example). Because of the network security and the potential load I want to subscribe all nodes with my script and provide the gathered nodes at another server (my script / accessable server).
I currently have plenty of problems. I tried to export_xml and import it at the server but first of all it will take ages to create the xml and secondly the xml importing is not fully working because of already existing nodes (default nodes) or missing datatypes.
Therefore I thought I just iterate recursivly through all children of my most basic nodes and gather the browse_name and the path for example.
Then I want to create the same node at my reperater server and somehow link them together via a callback function to update the values when needed.
I currently struggle to do so because I need to define the datatypes first i guess. Furthermore I am not sure how to create the mentioned callback function to identify the right node. I cannot be sure that my new node at my repeater server will have the same node id because i am planning to subscribe to multiple servers and provide them all together at the same repeater server.
Is there an implementation of that somewhere or can someone give me some advise how to accomplish that task?
Would you do it the same way I do?
Also: Is there a way to multithread / multiprocess the opcua client and server? Just doing the iteration over one of my servers takes several minutes.
Best regards.
Beta Was this translation helpful? Give feedback.
All reactions