Siemens S7-1214C and MG400 communication


Hello everyone,
I got this MG400 Dobot and I’m programming a small automated rod feeder for a sorting machine. I was able to create a small script to test the functions of the robot and I/O signal exchange with the PLC (robot step trigger, robot in motion etc.). But to be able to control the robot from the S7-12xx PLC reliably, I would like to ask a couple of questions:

  1. How do I catch internal events in the Dobot - for example alarms, robot readiness status, robot function enabling etc? I want these events project to and from PLC (so that the PLC knows the real status of the robot and can react to it).
  2. How do I quit a Dobot alarm from PLC? Is there any system variable in Dobot that I can reset to quit the alarm?
  3. Is there any native support from Dobot for Siemens S7 PLC (like communication libraries and functions, GSD driver files etc.)?
  4. How do I make a blockly/script started automatically after the robot boot?
    Thanks a lot for your tips.


I reply here to myself:

Ad 1: Using the Siemens Modbus over TCP (MB Client: MB_MODE = 102, MB_DATA_ADDR = 0, MB_DATA_LEN 5, MB_DATA_PTR = Array[0…4] of bool). These bits are the status bits of the robot (0 - 4).

Ad 2: Using the Siemens Modbus over TCP (MB Client: MB_MODE = 115, MB_DATA_ADDR = 0, MB_DATA_LEN 6, MB_DATA_PTR = Array[0…5] of bool). These bits are the control bits of the robot (0 - 5). Setting the bit 5 quits the alarm.

Ad 3: I haven’t found any. Using standard MB_CLIENT, MB_Server is good enough.

Ad 4: Selecting Remote Control -> RemoteModbus -> selecting the script / blockly diagram makes it to be run automatically after setting the robot into the Running state.


Hello CzechDave,

I was doing the same thing. Through a Siemens PLC (1500) I wanted to get information and control some actions of the PLC. I am using also the MB_CLIENT of TIA PORTAL. However, I can neither receive information from the robot nor send signals to it.

In the past, I have connected through an external Profinet-Modbus gateway, acting on the addresses and being able to remotely activate the selected program.

If it has worked for you with that configuration I would be very grateful to see your project. Thank you very much and best regards.


try to check the Modbus ID for each connection - it should not be the same. The ID is in the MB_Client config DB -> stCONNECT_CFG -> ID.
I was fighting with it a lot too, before I found out that two different connections had the same ID. The robot must be set into Remote Modbus mode and there must be a Blockly or Lua script running so that the robot can even communicate with the PLC.


Thank you very much for your reply CzechDave. It finally worked and without changing anything. Maybe it was because of connection. I also made a connection with this Modbus module for a UR and I have noticed that the “MB_MODE” and THE “MB_DATA_PTR” are very important.

If you need anything you can contact us through our youtube channel (REBOTS) and we will be happy to help you.

Best Regards,


do you have a plc drive that can send commands to dobot mg400 can i have one please thanks



there is no dedicated PLC driver for the Dobot control. You can use either TCP/IP libraries (T_SEND, T_RCV and related blocks) or Modbus/TCP blocks (MB_Client and MB_Server). These are available in the PLC by default.

Note to the DOBOT R&D team: it would be cool from you to develop a TIA Portal Technology Object representing the Dobot including all the necessary configurations. That would make our lifes easier :).



From a Siemens PLC I have controled the CR models through Modbus TCP/IP which already have the Modbus function blocks on Siemens.



agree, ModBUS works quite well.