Modbus supports four "objects";
- Discrete inputs
- Input registers
- Holding registers
In the old Modicon specification, each object was bound to a particular address range. With the newer address standard, the full range is available to each object and the object type is determined by the specific commands to read and write.
|Object type||Access||Size||Modicon Address Space||New Address Space|
|Coil||Read/Write||1 bit||00001 to 09999||0 to 65535|
|Discrete input||Read||1 bit||10001 to 19999||0 to 65535|
|Input register||Read||16 bits||30001 to 39999||0 to 65535|
|Holding register||Read/Write||16 bits||40001 to 49999||0 to 65535|
A scale (factor) is used to transform a decimal value into an integer value by multiplying it with that value. This is often required as simple computers are often bad at handling decimal values. As a result, we lose the decimal part when converting a decimal value to an integer value.
For example, if the value 3.1415 is to be managed in such a way, it can be scaled using 10, 100, 1000 or even 10000. Giving us the integer values; 31, 314, 3141 or 31415.
These integer values can then be transmitted to a more intelligent computer, where they are divided by the same factor to produce a decimal value once more.
Remember that the scale factor decides how many decimals are retained once converted back to a decimal value.