Arrays, UDTs and Structures Over OPC UA: What the Client Actually Sees

The TR14_Belt user-defined type listed twice side by side with byte offsets, as built at 28 bytes and again at 32 bytes after a DINT called Jam Count is inserted after the State member, with the six members that changed offset marked in red and the hidden host SINT and pad bytes shown in grey

Arrays, UDTs and Structures Over OPC UA: What the Client Actually Sees Insert one DINT called Jam_Count into the TR14_Belt user-defined type, put it after the State member where it belongs logically, and download to the 1756-L83E. Fault_Code moves from byte 4 to byte 8, and Starts, Run_Seconds, Speed_mps, Motor_Amps and Last_Fault_S each move four … Read more

Browsing an OPC UA Server Against a Static Tag List: Which One, and When Each Is Wrong

Six boxes showing what a client does during a browse: read the namespace array from node i=2255, browse the Objects folder at i=85, browse each folder in turn or in batches up to MaxNodesPerBrowse, call BrowseNext for every continuation point returned, read the attributes of each node worth keeping, and finish with a tag list, with two numbered break points naming the continuation point errors

Browsing an OPC UA Server Against a Static Tag List: Which One, and When Each Is Wrong Node i=2255 is the NamespaceArray, and one Read of it is the single most-skipped call in industrial OPC UA. Skip it and you type ns=3 into a client, which works for a year and then reads the wrong … Read more

OPC UA Security Policies and User Authentication: What to Enable, and What It Costs

Table of security policies against the three message security modes, showing that mode None is legal only with policy None, that Basic128Rsa15 and Basic256 are deprecated and should be left off, and that Basic256Sha256 and the two Aes policies are usable with Sign or SignAndEncrypt

OPC UA Security Policies and User Authentication: What to Enable, and What It Costs One RSA-2048 private-key operation measured 3.363 ms on the laptop this was written on, and one pass of AES-256 over a kilobyte of notification measured about 2.1 microseconds. That ratio, roughly sixteen hundred to one, is the whole of the OPC … Read more

OPC UA Certificates: Trust, Rejection, and Why the First Handshake Fails

The six stages of a first OPC UA connection drawn as boxes with numbered break points underneath: Hello and Acknowledge, the OpenSecureChannel request carrying the client certificate, the response carrying the server certificate, CreateSession, ActivateSession with the user token, and the first Browse or Read, with a different status code named at each break

OPC UA Certificates: Trust, Rejection, and Why the First Handshake Fails BadSecurityChecksFailed, status 0x80130000, is the answer an OPC UA server gives when it has decided not to talk to you and is not permitted to say why. Part 6 of the specification is explicit about it: the Reason string in an abort message “shall … Read more

OPC DA to OPC UA: What Changed, and the Tunneller You No Longer Need

The path of one OPC DA read drawn as six boxes: SCADA client calling IOPCSyncIO Read, the COM runtime marshalling with the caller identity, TCP 135 as the RPC endpoint mapper, a second connection to a dynamic port above 49152, the DA server executable and its account question, and the EtherNet or IP driver to the controller

OPC DA to OPC UA: What Changed, and the Tunneller You No Longer Need KB5004442 stopped being optional on 14 March 2023, and with it went the last registry value that could keep an OPC DA link alive between two Windows machines. RequireIntegrityActivationAuthenticationLevel is still sitting under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\AppCompat on every machine somebody set it on, … Read more

Good Quality, Stale Value: Diagnosing an OPC Link That Is Lying to You

Five boxes in a row from the controller through the driver, the server cache and the subscription to the client, with four numbered red break points marked underneath

Seal_Temp has read 182.4 °C since about 04:00, the quality field next to it says Good, and the trend behind it is a flat line eleven hours long. The bagger has run four product changes in that time and the seal jaws are visibly hot. Nothing on the SCADA is in alarm, nothing in the … Read more

Scan Rates, Scan Groups and the Deadband That Halves Your Traffic

A four-column table listing the controller task, the device Scan Mode, the tag Scan Rate and the client group rate against what each controls, its range and when it wins, with the device Scan Mode rows highlighted

A SCADA client on the TR-14 line subscribes to 1180 tags in one group at 250 ms, which people write down as 4720 value updates a second. Over an hour the server actually delivered 3,832,580 notifications, and 3,744,000 of those came from 260 analogue tags, most of which were sitting still. The 920 digital and … Read more

Kepware Channels, Devices and Tags: the Structure to Get Right Before the First Tag

Five boxes in a row showing one value walking from the controller through the channel, the device, the tag group and the server tag, with four numbered red points below marking where the chain breaks

A SCADA client stores one string for every value it reads, and on the line I am about to describe that string is CLX_Line1.Bagger.Infeed.Belt1_Run. Four names, each chosen by a different person on a different day, and 684 more strings on that one device built the same way. Rename the tag group on a Friday … Read more

Advertisement