Nanobrain (Customer) asked a question.
I am trying to communicate with a Click PLC (Basic) via a Node JS server. I've had success and can change the values in memory. The issue is that the addresses in the address picker in the Click Programming Software seem to be offset by 1 address location when changing the memory from a Node JS server.
I'm attempting to turn on the first output coil, which the software shows it at Modbus address 8193:
So in code I set this address (8193) in an attempt to turn on the 1st (Y001) output coil:
However, this actually turn on the 2nd output coil:
Strange...
However, if I turn on address 8192 it will turn on the 1st coil. Wha? 😂
So, my question is, why does the address picker not show 8192?

+1 RBPLC
You are dealing with Modbus base 1.
Modbus “Standard” 4xxxx (base 1) 4xxxx (base 0)
Function 3, Offset 0 40001 40000
Function 3, Offset 1 40002 40001
http://support.elkor.net/knowledgebase.php?article=14
"To add more confusion to the scenario, some device manufacturers start their “4xxxx” references at 40001, and some start at 40000. The starting register corresponds to offset “0” within the given function. It is not always evident which reference a manufacturer uses, and it is best to clearly read the documentation to attempt to gain understanding."
Regards,
Garry
https://accautomation.ca/series/click-plc/