I’m using the Kimera driver to connect Ignition to a Wiener crate but I’m not being able to read nor write floats to a SNMP tag. I can r/w with integers.
About reading: When I try to read I always get the value “9” which is probably associated with the hexadecimal string being sent by the crate. It has more or less the same structure (9f:78:04:44:7a:00:00) where the first 3 bytes are associated with the type of tag and the last 4 bytes are the value itself. I manage to find a way to convert this into a float by using the python struct module
import struct value = str(currentValue.value).replace(':','')[6:] res = struct.unpack('!f', value.decode('hex')) system.tag.write('[.]Raw Tag Hex Converted',float(res))
This works fine actually.
The real problem arises when I try to write to the same tag and same value (9f:78:04:44:7a:00:00) with or without the “:”.
I tried encoding it has utf8 but without success.
value = '\x9f\x78\x04\x44\x7a\x00\x00' value = value.encode('utf8') system.tag.write('LZ System Test/Wiener Crates/outputVoltage1',value)
With Wireshark I can see the actual packages that are being sent and the hex “9f” is somehow converted to “3f 3f” which I believe is the real problem. The other bytes are sent properly.
Do you guys know anything about this?
Ignition version: 7.9.7
Kymera SNMP Driver version: 1.9.0 (b1387)