Software Tools

The content you are looking at may be outdated.  The most current version of the document can be found at this location:

http://www.schneider-electric.ca/sites/canada/en/support/faq/faq_main.page?page=content&country=CA&lang=EN&locale=en_US&id=FA279122

A searchable archive can be accessed from:

http://www.schneider-electric.ca/sites/canada/en/support/faq/faq_main.page

Question

I am trying to read registers from a slave device that uses 6 digit modbus addressing but Telepace only lets me poll up to register 49999 (or 409999)

Answer

The MSTR and MSIP use a block of registers to store their configurations.

If the MSTR block uses register 41001 in the SCADAPack as it's configuration start register, then :

41001 = Comm port number

41002 = function code

41003 = slave controller address

41004 = slave register address

41005 = master register address

41006 = length

41007 = time out in 0.1s increments

Trying to configure the MSTR block in Telepace prevents you from putting in a slave register address greater than 49999.

Using a PUTU block, you can put an unsigned integer in the range 40001-65535 into register 41004 to indicate the slave register address. It appears as though the program will take the value in register 40004 and subtract 40001 to determine the holding register offset that gets sent in the actual modbus message.

For example, using PUTU to put a value of 50010 into register 40004 would then cause the MSTR block to poll for a holding register with an offset of 10009 in the message which would correspond with a 6 digit address of register 410010.

The largest unsigned integer you could put into register 40004 would be 65535, which would correspond with a 6-digit modbus holding register of 425535.