MODNET Function 16

Hi,

I have MODBUS register 405000 to 405005 (6 registers) that needs to write value in each register using FUNCTION 16 (multiple register writes). Is there anyone knows how to implement it in Citect.

Thanks in advance

Felix 

Parents
  • I'm a bit confused here.

    Writing to a Read/Write register is pretty much what Citect does normally.

    Is there some sort of difference between this an a normal read that is escaping me?

    It's mostly transparent to the user.

  • Normal integer writes use either Modbus Function Code 6: Write single register, or FC 16: Write multiple registers, depending on how many tags need to be written.

    There are actually 3 classes of modbus function codes. Very simple modbus devices may only support class 0 commands (FC 3: read multiple registers, and FC16 write multiple registers). This is the minimum useful set of functions, for modbus devices. To limit communications to that leve in Citect, you have to set the INI parameter I mentioned to tell Citect to use FC 16 regardless of the number of registers it's writing.

    Here's a clip from the Open Modbus/TCP Specification

Reply
  • Normal integer writes use either Modbus Function Code 6: Write single register, or FC 16: Write multiple registers, depending on how many tags need to be written.

    There are actually 3 classes of modbus function codes. Very simple modbus devices may only support class 0 commands (FC 3: read multiple registers, and FC16 write multiple registers). This is the minimum useful set of functions, for modbus devices. To limit communications to that leve in Citect, you have to set the INI parameter I mentioned to tell Citect to use FC 16 regardless of the number of registers it's writing.

    Here's a clip from the Open Modbus/TCP Specification

Children
No Data