I’m currently working on a project that requires communication to be established from SIEMENS S7-1200 PLC to the Distributed Control System (DCS) via MODBUS RTU protocol. The PLC is configured as a MASTER in the PLC program [see attached link for screenshots] and the DCS has to be configured as a SLAVE. I have started by first trying to connect my laptop directly with the CM 1241 communication module to figure out the holding register mapping. The pin configurations on both the PLC (CM 1241) and laptop end are as follows:
Pin CM 1241 (via DB9 connector) Laptop (via RS485 to USB converter)
D+ 3 2
D- 8 1
GND 5 5
MODBUS Slave is the software utility that is being used. The settings configured in the software matches those that exist in the code are as follows:
Protocol RS-485 ( 2-wire half-duplex)
Baud Rate 9600
Data Bits 8
Stop Bit 1
Parity None
PLC ID 2
Starting Address 40000
Upon establishing the connection successfully, the holding registers show no valves even though the data traffic is active. Also, at the PLC end, the status LEDs of Tx and Rx is as such as that Rx is consistently AMBER while Tx LED does not light up. Though in the PLC program, the ‘LOAD.DONE’ bit is HIGH in the ‘MB_COMM_LOAD’ block and there is no error.
1) Does this mean that the request sent by the PLC (MASTER) is not being received by the SLAVE device?
2) And, is there a step that is missed along the way or something that needs to be rectified in the existing settings?
3) Also, at the DCS end, it requires an ‘offset’ address that needs to be configured in the settings. What does this ‘offset’ address mean and where would this address come from? The PLC end?
The screenshots of the entire MODBUS communication settings have been attached for reference. Any assistance in this matter would be highly appreciable.
https://www.dropbox.com/s/k1q3ee3pus367js/MODBUS Query.rar?dl=0
Pin CM 1241 (via DB9 connector) Laptop (via RS485 to USB converter)
D+ 3 2
D- 8 1
GND 5 5
MODBUS Slave is the software utility that is being used. The settings configured in the software matches those that exist in the code are as follows:
Protocol RS-485 ( 2-wire half-duplex)
Baud Rate 9600
Data Bits 8
Stop Bit 1
Parity None
PLC ID 2
Starting Address 40000
Upon establishing the connection successfully, the holding registers show no valves even though the data traffic is active. Also, at the PLC end, the status LEDs of Tx and Rx is as such as that Rx is consistently AMBER while Tx LED does not light up. Though in the PLC program, the ‘LOAD.DONE’ bit is HIGH in the ‘MB_COMM_LOAD’ block and there is no error.
1) Does this mean that the request sent by the PLC (MASTER) is not being received by the SLAVE device?
2) And, is there a step that is missed along the way or something that needs to be rectified in the existing settings?
3) Also, at the DCS end, it requires an ‘offset’ address that needs to be configured in the settings. What does this ‘offset’ address mean and where would this address come from? The PLC end?
The screenshots of the entire MODBUS communication settings have been attached for reference. Any assistance in this matter would be highly appreciable.
https://www.dropbox.com/s/k1q3ee3pus367js/MODBUS Query.rar?dl=0
Last edited: