The I/O address of this tag is moscad.device0.013571.
When I create this tag in Ignition, and try to manually address with opcItemPath = ns=1;s=[moscad]1.DI3571, I get bad quality. I'm getting exception code 0x04 (Slave Device Failure).
I'm not sure where this issue is arising. This is me trying to get several devices working together, and having some trouble.
In particular - the modbus device is a MOSCAD RTU. The device is over 10 years old, and the programming software is no longer available, so I'm kind of working with a black box. Still - the fact that I can see the tags in iFix and not in Ignition is really bothering me.
That's true. The old iFix system is using a direct serial connection through a USB-to-serial adapter with no modbus gateway. Still, there should be some other software which allows me to monitor the traffic.
Are you certain it's RS-232 and not RS-485? Most of the Modbus serial stuff I've used has be RS-485, but I would make sure. Possibly check your serial adapter it was using to see what mode of serial communications it was using.
I believe it's discrete input because there are addresses in iFix with start with prefix 00, as in 003571 would be the coil address for the original one I posted.
Edit: I see what you're saying now, as in the address should actually be 13,571, not 3,571.
I had created a program which converted all the old iFix tags, so I had a couple hundred DI tags created. I could see about 20 live values, or 20 tags where I was not getting bad quality, modbus exception codes, etc.
Before this, I was manually addressing the tags, but still running into errors. I am no Modbus expert, so it could certainly be me using the wrong addresses.
Have you tried using any of the available Modbus scanner tools to see if you can read those addresses to confirm that at least something can read them?
Also, not sure how much it matters, but is your driver set up in Ignition as Modbus TCP or Modbus RTU over TCP? That might make a difference, but I really don't know for certain.
In Modbus, the first digit of an address indicates its datatype, nothing else. Your Moscad address is 013571. The first digit is a zero. This is a coil. If it were a discrete input the address would be 113571.