Polling ModBus TCP


mrmainwoods

Recommended Posts

So, Im trying to talk to a subnet solutions Substation server running Modbus. I am looking to query located at data addresses 40001, and above. I have put 1 in the chn#, and read holding S16(3) in the IO type. I have looked at the server, and it is seeing the requests, but is sending back an illegal data address error 0002. I know that the server is working, as it was tested during commissioning.

Any thoughts?

GP

Link to comment
Share on other sites

If your device is using 40001 style notation, you should just put 40001 in for the channel number. As it happens, a channel # of "1" is actually 40,002, not 40,001. Its very confusing really and I don't really know why they ever bothered using 40,001 notation since in the actual modbus frame, the channel numbers start at 0 (which corresponds to 40,001). The "4" tells you what type of data point it is, but the weird part is that it doesn't correspond to the modbus command. 40,001 is for holding registers, which is modbus command 3, while 30,001 is input registers, which is modbus command 4. Go figure :)

Anyhow, as long as you stick with one notation style, DAQFactory will support both, so just use 40,001 and whatever other numbers your documentation specifies.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.