Reading modbus from Cisco IE4000 switch

Good day All,
I am new to ignition. I am actually a Network Admin.
When I started working for this company, they had no automation in “the plant”.
We have since installed ignition, and have managed to get some equipment online, with monitoring and control.
I really like this system, and having a great time learning it.
Unfortunately, I have hit a roadblock.
I would like to add monitoring of our network switches (Cisco IE4000’s) as the support Modbus TCP.
I cannot seem to get Ignition to read the modbus registers, and don’t know where I am going wrong.
I have enabled Modbus TCP on the switch with the default port of 502.
I can add the device in ignition, and it shows connected on both ends. But cannot figure out the Modbus registers, as Cisco documents them in HEX.

Has anyone done this before? Or have any suggestions?
This is a link to the Modbus register map from Cisco <A HREF=“https://www.cisco.com/c/en/us/td/docs/switches/lan/cisco_ie4000/software/modbus/swmodreg_ie4k.html”

Any help would be greatly appreciated. I am sure its something stupid I am overlooking.

Assuming you are using windows, open calculator, change to programmer mode, click on Hex and enter 1208 and it will return 4616 Dec

That’s for port 1 statistics number of packets received. Check with the Cisco UI the figure and play with Ignition until the value you receive matches. Common things to change are one based/zero based addressing and reverse word order

I tried that.
As soon as I create a tag, I get the following error in the logs.

Received response with ExceptionCode: 0x02 (IllegalDataAddress).

Did you change the one/zero-based addressing setting? Try a different unit/slave id?

Don’t forget span gaps. Better disable them. Also nice to test with a free utility like ModbusViewTCP to see some values, if they are using zero based, etc.

Kevin, I have tried many slave ID's, and played with the zero/one based addressing.
I can now read the string values from the "port information registers" table
But not the port status'. These are uint16 and should be pretty basic.... I am so confused. lol

allnet, I have also disabled the span gap setting.

I think its an addressing issue.
Port 12 name (Address 12C0) is a string at 64 registers long, and the Port 1 status register is address 12C1.
The math there doesnt make sense…
Leave it to cisco to muck up their documentation … lol

Thanks for the help though guys. At least I got the other registers now!