Modbus - Reading bits in reverse bit order?

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.

Is this possible?

@Kevin.Herron?

Nope. Not in mine, either.

I heard that you have to use a crossover cable to connect to the device, just be careful the bytes aren't upside down.

Do they make software crossover cables? I'm using a modbus simulator :face_with_hand_over_mouth:

Ctrl+alt+Down arrow :face_with_hand_over_mouth:

hacky expression, but works.

binEnc(
    getBit({[.]In}, 15),
    getBit({[.]In}, 14),
    getBit({[.]In}, 13),
    getBit({[.]In}, 12),
    getBit({[.]In}, 11),
    getBit({[.]In}, 10),
    getBit({[.]In}, 9),
    getBit({[.]In}, 8),
    getBit({[.]In}, 7),
    getBit({[.]In}, 6),
    getBit({[.]In}, 5),
    getBit({[.]In}, 4),
    getBit({[.]In}, 3),
    getBit({[.]In}, 2),
    getBit({[.]In}, 1),
    getBit({[.]In}, 0)
)

I’ve seen some bad Modbus implementations, but that’s pretty bad.

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...

It is "normal". The Modicon 984 bit order is most significant to least significant.

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)

That's just flipping the words though. OP is asking about reading the individual bits backwards.

Word flip:
12 34 -> 34 12

Reverse bits:
12 34 -> 43 21

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

Something about your report is odd. Reverse word order doesn't affect plain HR and IR addresses. Only the 32bit and larger types are affected.