Modbus RTU Communication Between a Siemens S7-1200 PLC and an A6 Series Servo Drive

D

Daniel Zhang

Last updated on Jul 14, 2026

This article demonstrates how to establish Modbus RTU communication between a Siemens S7-1200 PLC and a STEPPERONLINE A6-RS series servo drive.

Application scenario: The S7-1200 PLC acts as the Modbus RTU master, and the A6-RS servo drive acts as the slave. The PLC reads the DC bus voltage from the servo drive.

Prerequisites

Prepare the following items before you begin:

  • S7-1200 PLC: CPU 1215C DC/DC/DC
  • Any servo motor in the A6-RS series
  • An RS-485 communication cable

Procedure

1. Set the servo drive parameters

Configure the following parameters on the A6-RS servo drive:

Parameter Value Description
C0A.00 1 Modbus slave address
C0A.01 7 Modbus baud rate
C0A.02 0 Modbus communication format

2. Configure the Modbus RTU communication module

3. Enable system memory

In the project tree, select PLC_1, right-click Properties, navigate to System and clock memory, and check Enable the use of system memory byte.

4. Call the MB_COMM_LOAD instruction

Open the Main (OB1) block. In the Instructions pane, navigate to Communication → Communication Processor → Modbus, and drag the MB_COMM_LOAD instruction into a program segment, as shown below:

5. Create data send and receive buffers

In the project tree, select Add new block → Data block (DB) → OK, as shown below.

After adding the new data block, disable the Optimized block access option and define the data send and receive buffer areas.

6. Call the MB_MASTER instruction

Open the Main (OB1) organization block. In the Instructions pane, navigate to Communication → Communication Processor → Modbus, and drag the MB_MASTER instruction into a program segment, as shown below:

Configure the instruction parameters as follows:

  • MB_ADDR: Set to 1 (the slave address configured in Step 1).
  • MODE: Set to 0 (read mode).
  • DATA_ADDR: Set to 16#4006 to read register U40.06 (DC bus voltage). Use the direct register address; do not add the 40001 offset typically used in Modbus addressing.

7. Run the program

Monitor the value of U40.06 in the PLC program. The received data is in hexadecimal format; convert it to decimal and compare it with the U40.06 value displayed on the A6-RS servo drive to verify correctness.