Is there any way to force a device to read register bits in reverse order? i.e. set bit 15 to the LSB and bit 0 to MSB so that when HR153 = 1, HR153.15 is ON and the rest are Off? (or, the bit value would look like this 0b1000 0000 instead of 0b0000 0001)
I'm trying to using Ignition as a tag browser to aid in testing (reading and writing to tags) another garbage SCADA platform that makes this a significant challenge, however it's reading modbus registers in reverse bit order. I didn't see that as an option in the ignition device settings; there's reverse word order or 32bit registers, but not reverse bits.
Yes... You can un-reverse the bits by setting the ReverseBitRegister option to True in that scada. I thought that was funny. They think reversed is normal...
Indeed. But once transferred as a number over the protocol, the source bit order is meaningless. Ignition isn't a Modicon 984. The convention in modern software is bit number is the exponent of the bit's place value.
At the driver level, using the modicon bit order would yield a different number in Ignition versus the source, for the register as a whole.
Nick's desire cannot be satisfied while keeping the register's integer value correct. Only a display kludge will do.
If you have Modbus TCP, should be available here:
device connections > your device > edit > Show advanced properties > Reverse Word Order (that worked for me, but found also option Reverse String Byte Order)
Hm, maybe it doesn't sounds right, but that checkbox did exactly what needed. I had bits on PLC that were converted to word, and Ignition read them in opposite order: word, in binary 1110010100000000, was read as HR153.0 was False and HR153.15 was True. After applying reverse word order i got and HR153.0 as True while HR153.15 is False.
As I understand that if there would be a DWORD, then yeah it would (probably) flip them as 1234 > 3412, but in reality it worked exactly as needed and made 1234 > 4321