西门子200smart的MODBUS_RTU从站通讯是非常简单的,简言之就是使用软件的MBUS_INIT和MBUS_Slave两个指令;MBUS_Init用于设定串口参数,包含波特率,奇偶校验,端口(本机体带的是0),超时及各种地址范围的设定;MBUS_Slave用于设定本机为MODBUS从站。
1、硬件准备
200SMART PLC一台,本体9针串口3+8-;
对侧设备一台,本例中使用PC机(串口调试助手带MODBUS_RTU调试功能);
USB转485电缆一条。
2、MODBUS_RTU的从站的地址
PLC做MODBUS_RTU的从站,则其被访问的地址为PLC本身的线圈和寄存器,例如I区,Q区,M区,Q区,V区等。实际上200smart的MODBUS_RTU的通讯并不包含M区,如果您需要使用M区做通讯,需要将其转化到V区才好通讯。具体对应关系如下:
Modbus RTU 从站指令支持以下地址:
00001 至 09216 是映射到 Q0.0 至 Q1151.7 的离散量输出。
10001 至 19216 是映射到 I0.0 至 I1151.7 的离散量输入。
30001 至 30056 是映射到 AIW0 - AIW110 的模拟量输入寄存器。
40001 至 49999 和 400001 至 465535 是映射到 V 存储器的保持寄存器。
3、程序内容
完成程序编写后,需在“程序块”中“库”右键进行库存储空间的指定,否则报错。具体如下:
、调试助手
对于设定的V区寄存器可读可写,本例中可对VB950-VB1050共100个字节50个字的内容进行读写。
A/可通过调试助手先写后读,先写进去,观察PLC中状态表是否显示,再通过助手的读回来,看整个过程是否正确。
B/PLC端做Slave时,不存在主动读的情况,只要调试助手发送了,PLC即可接收(概念是接收的,不是读的)。但可通过PLC主动写入寄存器, 再通过调试助手读取。
#####################我是一个分割线######################
期待主站通讯的同学可查看链接:https://blog.youkuaiyun.com/weixin_42946146/article/details/145957974