Coils claim good quality but dont match PLC

Im pulling tags from a productivity 2000. I have the tags set to enable remote access, and have set them to automatically assign modbus addresses. It gave my bits addresses from 00001 to 00110, and ints and floats addresses from 40001 to ~40200.

I am reading the holding registers correctly, matching numbers and all. The coils claim they are reading successfully (tag quality good), but none of them are on, and at least the first two should be.

Address configuration is unit id 0 (same as the holding registers) modbus type: coil, modbus address 1

Whatever I’m missing, I’m sure it’s something really dumb, so lets hear some of your dumbest ways to mess up a modbus read.

Can you get a Wireshark capture? It should be easy to see if there’s something wrong with the driver, something wrong with your Ignition tag/address configuration, or something wrong with the device or device configuration.

I don’t know what I’m looking at. I see queries from my IP as “read coils” and responses back from the PLCs IP. What else is helpful?

Look at the Coil responses and see if they match what Ignition is telling you.

Upload it somewhere that I can get it and I can take a look also.

They do match, the response is all zeros. Modbus poll grabs values successfully.
Main difference I see between the request from modbus poll and from ignition is the reference number on modbus poll is 1, on ignition its 65535.
Upload could happen, but is convoluted, I think they have their network locked down so half the sites I go to just don’t load. Ignition forums, for example.

Sounds like maybe you started from address C0 in Ignition and have the default 1-based addressing setting enabled?

Try setting it up for 0-based or start with C1.

System ID of the first one I’m grabbing is C-000010. Modbus address as automatically assigned by productivity suite is 00001. I have set up my coils to start at modbus address 00001, which is the same as the holding registers. When that didn’t work I also tried 2, 3 and 5. Right now it is set to 5, and wireshark still says the reference number is 65535.

Oh boy. After setting it to zero based addressing, I now have some ones, but it broke all of my holding registers. Hopefully I just go bump all those down by 1.