
S7-1200集成PN接口的MODBUS TCP通信概述
Modbus TCP是一种标准的网络通信协议,通过CPU上的PN接口进行TCP/IP通信,不需要额外的通信硬件模块。Modbus TCP使用开放用户通信连接作为Modbus通信路径,CPU支持的混合客户端和服务器之间的最大连接数为8。
软件STEP7 V11 SP1版,S7-1200CPU来自固件V1.0.2,不再需要安装Modbus TCP库文件,可以直接调用Modbus TCP库指令“MB_CLIENT”和“MB_SERVER”实现Modbus TCP通信功能,如图1所示。
图一。Modbus TCP的库指令
S7-1200是一个Modbus Tcp服务器。
“MB_SERVER”命令将处理Modbus TCP客户端的连接请求,接收Modbus函数的请求并发送响应。
1.调用MB_SERVER通信指令,进入“程序块”和“OB1”主程序,设置连接ID、IP端口等参数,如下图2所示。
图二。调用MB_SERVER通信指令
功能块参数的含义如下表5所示。
表1。功能块“MB_SERVER”参数
2.创建MB _ data _ ptr数据块
点击“程序块”和“添加新块”,选择“数据块”创建DB块,选择“标准兼容S7- 300/400”,点击“确定”将数据区定义为100个字的数组,如图3所示。
图3。创建新的MB_DATA_PTR块
3.3的对应关系。Modbus地址
“MB_SERVER”指令允许Modbus函数(FC01、 fc 02、 fc 04、 fc 05、 fc 15)直接读写S7-1200CPU的过程图像输入/输出区(数据类型:BOOL和WORD)。将到达的Modbus报文写入Modbus保持寄存器或通过Modbus功能码(FC03、FC06和FC16)从寄存器中读取(保持寄存器可以通过MB_SERVER指令的参数“MB_HOLD_REG”指定),保持寄存器的大小(MB_HOLD_REG参数)必须大于1字节。详情参见表2。
表二。2之间的对应关系。Modbus地址
4.客户端的Modscan32软件设置
注:Modscan32软件用于客户端测试,Modscan32是Modbus TCP客户端测试软件,是第三方软件,可以从网上下载。
将测试计算机的IP地址设置为192.168.0.210,打开Modscan32软件,设置功能码、起始地址、长度等。在Modscan32的"Setup-"数据定义中,如图4所示。
图4。设置“数据定义”参数
在“连接-”连接。",选择“远程modbus TCP服务器”并设置服务器的IP地址和端口号,如图5所示。
图5。设置连接属性
注意:使用Modsscan32作为客户端不需要考虑设备ID和服务器的一致性,服务器自动响应客户端的设备ID。
5.通信测试
S7-1200为服务器,客户端Modscan32读取带有FC03功能码的服务器两个字,设置客户端与服务器对应的功能、起始地址、端口等参数,如图5-6所示。
图6。S7-1200作为服务器
通信结果如下图7所示。Modscan32将数据10和20从服务器读取到DB4。DBW0和DB4。客户端的DBW2区域。
图7。7的通信结果。FC03
用函数FC15向服务器的Q0.0~Q0.7写入8位数据,设置连接参数。Modscan32的设置结果如下图8所示。
图8。使用FC15通信,设置Modscan32。
测试结果显示,服务器端直接对应进程图像输出区,00001~00008对应Q0.0~Q0.7,如下图9所示。
图9。使用FC15交流测试结果
6.HR_Start_Offset后台参数
HR_Start_Offset是一个类型的字,用于指定Modbus保持寄存器的起始地址。它存储在MB_SERVER后台数据块中,默认值为0。该值可以通过编程写入HR_Start_Offset。以FC03函数读取两个字为例,将HR_Start_Offset的偏移量设置为2,其他参数不变。HR_Start_Offset前后的地址对应如下表7所示,编程调用和结果如图10~11所示。
表3。HR _ start _ offset偏移前后的地址对应
编程调用如下面的图10所示。
图10。HR _ start _ offset的偏移设置
通信结果如下图11所示。
图11。沟通结果
7.7的查询请参考下面的列表4。MB_SERVER参数状态。
表4。MB _服务器参数状态
审计郭婷










