I’m looking to get some insight into how the Siemens Enhanced Driver works on the backend.
We have a requirement stating that we need to use publish/subscribe (pub-sub) communication with all of our end devices. I’m trying to understand whether the new Siemens Enhanced Driver actually subscribes to data being published by the PLC, or if the driver is continuously polling the PLC for data.
In other words, is the communication model truly PLC → driver (pub-sub), or is it driver → PLC (polling)?
Any insight into how this works under the hood would be greatly appreciated.
It's actually driver<-->driver. Both sides implement OPC-UA. It's not a straight forward pub-sub though; it really depends on the purpose of the requirement. Technically, write is exposed, and there's a good chance that's what they're trying to guard against. You need to get to the heart of why the requirement is there, I'd say.
Both the legacy and enhanced Siemens drivers are polling-based.
If instead of a driver you make a direct OPC UA connection to the controller's onboard OPC UA server, like the S7-1200 and S7-1500 have, then as long as you haven't switched your Ignition Tag Group into Polled/Read mode an OPC UA Subscription is used. OPC UA Subscriptions are report-by-exception.
I wouldn't go as far as to say it's "pub-sub", which typically implies one-to-many via middleware/broker.
The main reason we are exploring this is that we had planned on creating an OPC UA interface on the controller which gets mapped to local DB tags however our dynamic bindings in Ignition on the UDTs were going to leverage the path to tag parameter. We found out that creating an OPC UA interface then creates node IDs for each tag (nsu=http://Namespace;i=6224).
We ideally would like to subscribe to the DBs driectly so the OPC item path shares the same path to tag parameter.
The key for the requirement is subscription based. If I am understanding right, we use the OPC UA server on the S7-1500. Ignition connects to it. Does that mean if we link to a DB directly on the controller via OPC UA it is effectively subscription based?
Use Siemens SiOME to convert the OPC UA NodeId IdentifierType from Numeric to String for all nodes in the target namespace, then export the updated OPC UA NodeSet2 XML. Verify that NodeIds and all references use string identifiers (s=) instead of numeric identifiers (i=).
In SiOME, the recommended procedure is:
Open/import the OPC UA NodeSet XML in SiOME.
Open the Namespaces tab.
Select the namespace that contains your custom information model.
Use the namespace context menu → Change to String NodeIds. Siemens explicitly provides this operation for converting every NodeId in a namespace.
Under Settings, set Default NodeId Type = String so newly created nodes also receive string NodeIds. SiOME additionally lets you configure the string NodeId prefix, postfix, separator, and which hierarchy elements are included.
Export the model again as OPC UA NodeSet XML.
Validate the exported XML before importing it into TIA Portal/server configuration.
In some cases extra step is required in SiOME:
Unlock locked Namespace and rename default NamespaceUri " http:// www. siemens .com/simatic-s7-opcua " to "simatic-s7-opcua" for example.