Address Out Of Range

Hi everyone,

                Currently I am trying to communicate one device over Modbus protocol that has register address of Coil (1 – 4).

The data is visible on Modbus tester only when the register length set to 8. It means to read coil status 1 -4, I need to read 8 Number of registers in the Modbus tester. Then only slave device respond.

Now with SCADA It is compulsory for me to send the query with exact 8 nos of register to read.

For that I tried to create 8 variable tags (coils 1 – 8). But not succeeded. I tried the same by reducing [Modbus]Block = 8 but not succeeded.

The IO device kernel shows “address out of range”

I can read the holding register from the slave device. Only the problem is with coil.

Has anyone faced this type of scenario earlier?

  • TN8842 tells how to use the [Modbus]MaxBits parameter to set the number of bits in a read request. I'm not sure if it would affect reading integers or floating point values if you set that below 16 or 32.

    Another option is to force Citect to read each variable tag in a separate request to the PLC. This greatly slows down communications, but shouldn't be a problem for a small number of tags. See TN6825. I don't see that mentioned in the MODBUS driver help, but it is shown in the MODNET driver help, and that technote says both drivers support it.

  • Hi Eric,
    Thank you for the reply.
    The above exercise could not solve the purpose.
    But when performed using "TN5832" by changind PROTDIR.DBF then it solved the issue.