If you want the ECOM100 to read Input Registers then what you currently have will not work because, by default, the ECOM100 reads Holding Registers. Also, you have a fundamental misunderstanding. I will see if I can clear this up for you.
Currently your program looks like this:
LD K410
LD K128
LDA O1400
RX V2057
What this code means:
- The LD K410 (or LD K0410) is the base number (0), ECOM slot number (4) and partner ID (10).
- The LD K128 is how many bytes you want to read (128 bytes), or 64 words (registers).
- The LDA O1400 means, when you do the RX (read), store the results starting at V1400. This V1400 has NOTHING to do with Modbus mapping. This can literally be ANY V-memory location in your PLC because this is where the results are going. For example, it could be LDA O2000, which would store the 64 words read starting at V2000. With a value of LDA O1400 then the range of V1400-1477 will be overwritten with whatever was read.
- The RX V2057 normally means read V2057 from the slave device. However, because this is a request sent to the ECOM100 in slot 4 which has a peer-to-peer configuration, this will get translated into a Modbus TCP telegram. Here's how... the ECOM100 in slot 4 hears the RX command on the backplane. This RX command is to slave ID 10 (the first LD instruction determined this; LD K410). The ECOM100 checks and sees if he has a peer-to-peer table entry for 10. In your case, he does. According to your configuration, he will then translate that request as a Modbus TCP telegram that will be sent to IP address 169.254.54.15 over TCP port 502 and Unit ID 255. The V-memory parameter (in this case V2057) will get translated into a particular Modbus Function Code and Range. According to the range in the manual:
V2057 --> Function Code 03 "Read Holding Registers" with offset 1072 decimal (2057 octal is 1071 decimal, but you have to add 1 because Modbus registers begin with 1, not 0).
So, the code you have is going to read Holding Registers, not Input Registers.
If you want it to read Input Registers, you will have to change your code to this:
LD K410
LD K129
LDA V1400
RX V2057
Notice the 2nd LD instruction is now an odd number (129) instead of an even. This will make the RX V2057 now get translated to Function Code 04 "Read Input Registers" with offset 1072 decimal.
If you want different Input Registers, then you'll have to do the math conversion and change your RX V to something else.