Today is...
Thursday, February 22, 2018
Welcome to Control.com, the global online
community of automation professionals.
Featured Video...
Featured Video
EtherCAT with CTC’s master lets your multivendor network play well together...
Our Advertisers
Help keep our servers running...
Patronize our advertisers!
Visit our Post Archive
Obsolete Registers - Who Decides
I created a MODBUS address list with both 3xxxx and 4xxxx register addresses but I was asked to change the 3xxxx address to 4xxxx addresses. Why?

FC=03: Modbus Master reads analog output holding registers (4xxxx) from the slave

FC=04: Modbus Master reads analog input registers (3xxxx) from the slave

FC=16: Modbus Master writes analog output holding registers (4xxxx) to the slave

I was caught out because I created a MODBUS address list with both 3xxxx and 4xxxx register addresses, to utilize FC4 and FC3 respectively. But I was asked to change the 3xxxx address to 4xxxx addresses to conform with the way it was done on a previous project.

I came across this old article http://control.com/thread/1026208903

Extract: "Unless you're creating a Master to poll unknown 3rd party products and have to support function 4, the 3xxxx "Input Status registers" are obsolete. Some important embedded systems 'CANNOT' issue the function 4 command required to read them."

Is it true? Why would anyone consider the FC4/3xxxx combination obsolete, what is the argument for preferring the FC3/4xxxx combination?

Yes, it's true. As the previously cited thread relates, some Master/clients don't support Function Code 04 at the 3xxxxx address range. No FC 04 makes it difficult to get the 3xxxxx data values, for those who use those master/clients.

I guess the argument for dropping FC 04 is that it's just a matter of mapping the raw inputs to 4xxxxx, and designating them read-only.

Given the low cost of memory and the move to 6 digit register addressing, the 65535 available registers for 4xxxxx is sufficiently large enough to cover both the number of raw input registers and all those considered to be a Holding register value.