I have a fundamental query regarding the integration of a Siemens S7-1500 via OPC-UA, where the Siemens unit serves as the server. Within this controller, a comprehensive data block has been established, encapsulating all critical information. The data structure exhibits a certain degree of complexity, incorporating both standard arrays and arrays of strings.
Had both parties been B&R controllers, this would pose no challenge; I would simply import the server’s type definition file as a reference within the client project and subscribe to the entire structure. However, how should one proceed in this specific scenario? While I can replicate the structure of the Siemens data block, this approach fails to reveal which elements are byte-compatible on the B&R side.
What is the recommended methodology in this instance? I am currently utilizing the EasyUA Client Library.
Please note that individual elements within the data block can be read and written without issue using the opcua_any client.
Please take this as a result of my small research I have done about this topic. Based on this I have found that Siemens and TIA Portal enables Optimized Block Access per default.
With this enabled, each DB element is an individual node in the OPC UA namespace. To read the entire DB as a structure in one call, you should either:
Disable Optimized Block Access on the DB in TIA Portal or
Use UA_ReadList to batch-read individual elements efficiently.
but maybe there is someone else who has experiences with that? I pinned this topic because Im quite interested about experiences from others.
We conducted further research yesterday, and the Siemens controller programmer has now configured a ‘Server Interface’ within TIA Portal, replacing the direct OPC UA access to the data block. This enabled the export of a UA Nodeset file, which I have received. Can this be leveraged on the B&R side to establish the connection? To be candid, I am currently somewhat at a loss regarding the next steps.
again only thinking, never have done in practise. But on the B&R side, the NodeSet import feature is primarily for hosting third-party information models on the B&R OPC UA server , not for configuring the client connection.
However, the NodeSet XML is still usefull, you can open it and look for the <UADataType> / <Definition> elements and these define the exact field names, types, and order used in OPC UA encoding for the Siemens structures.
You then manually recreate matching IEC STRUCT types in your B&R project. Maybe try it with one structure type first, if is it complex configuration, maybe agentic engeering can be used for that.
Again giving the ball to Community, maybe others have better idea
Many thanks. Everything is now functioning smoothly, rendering the entire theatrical display entirely unnecessary. The error in the program actually resided elsewhere entirely