Kepware Long type

Siemens 1500 TIA19 FW 3.1 ---> Kepware 6.14 OPC ---> Ignition 8.1.33

Dint in siemens --> Long in Kepware (auto tag generation) --> Integer in Ignition

using tag browse in ignition to select the write OPC path.

Read works fine for any value.
I can change the value in Kepware OPC client to any value and it works correctly and reflected on PLC and Ignition. Changing at PLC shows the correct value everywhere.

Changing value to a value >32,767 causes the values in client and PLC to change

for example if I change the value in ignition to 34,000 the value will change to -31,536 setting value to 32,000 the value will go to 32,000 on all 3.

It might be interesting to connect UaExpert to Kepware and then browse to that Node and see what value Kepware is indicating for the OPC UA DataType attribute.

interesting

It calls it an INT16, so looks like kepware issue with its datatype assignment

Strange

image

Yep, if Kepware tells us it's Int16 we're going to cast it to Int16 before writing it, and that's where the rollover is happening.

I've hit this issue with Kepware before and how it auto-assigns data types. You may have to manually change the datatype to get it to behave.

Try changing it to DWord instead of Long. Long is a signed Int, DWord is unsigned.

Siemens DINT is signed 32 bit. So the Long data type in Kepware is correct

Kepware has it configured as a Long

Kepware client shows it as Long

image

and now after I shut everything down and restarted and rescanned / generated everything UaExpert is showing it as a Int32

image

so bottom line turn it all off and back on again

1 Like

Yes.

Also, one other thing - don't trust Kepware's client when troubleshooting anything OPC UA related. AFAIK their client is still a Classic/COM/DA client and nothing it tells you is relevant to the KSE UA server interface. Always use UaExpert or some other client.

2 Likes