Yes you can. To accomplish this, follow the steps below:
NOTE: In order for changes to be made from one protocol to another, the processor serial port must be configured for Modbus Slave mode.
1. First create an IODDT variable linked to the processor’s serial channel, then set the bit that corresponds to the protocol desired:
TO_MODBUS_MASTER(%MWr.m.c.24.12) (Bit 12): Current protocol is changed to Modbus Master.
TO_MODBUS_SLAVE(%MWr.m.c.24.13) (Bit 13): Current protocol is changed to Modbus Slave.
TO_CHAR_MODE(%MWr.m.c.24.14) (Bit 14): Current protocol is changed to Character Mode.
2. Then initiate the WRITE_CMD for the channel. Whenever the mode(Master to Slave or Slave to Master) is changed, a WRITE_CMD must be executed. The WRITE_CMD can be triggered on a rising edge. No need to write every scan. See sample code below
3. You can now read/write the data to the remote device using explicit exchange messaging such as the READ_VAR, WRITE_VAR or DATA_EXCH function blocks.
NOTE: In order for changes to be made from one protocol to another, the processor serial port must be configured for Modbus Slave mode.
1. First create an IODDT variable linked to the processor’s serial channel, then set the bit that corresponds to the protocol desired:
TO_MODBUS_MASTER(%MWr.m.c.24.12) (Bit 12): Current protocol is changed to Modbus Master.
TO_MODBUS_SLAVE(%MWr.m.c.24.13) (Bit 13): Current protocol is changed to Modbus Slave.
TO_CHAR_MODE(%MWr.m.c.24.14) (Bit 14): Current protocol is changed to Character Mode.
2. Then initiate the WRITE_CMD for the channel. Whenever the mode(Master to Slave or Slave to Master) is changed, a WRITE_CMD must be executed. The WRITE_CMD can be triggered on a rising edge. No need to write every scan. See sample code below
3. You can now read/write the data to the remote device using explicit exchange messaging such as the READ_VAR, WRITE_VAR or DATA_EXCH function blocks.