干货下载:(点击标题试试)
《免费获得2000G电气自动化、机械等工程领域的资料及软件》
连载目录
MODBUS TCP V3版本指令
S7-1200集成PN接口MODBUS TCP通信多请求处理
MODBUS TCP应用例程
点击目录蓝色标题,看已经推送的文章。
今天要分享的是Modbus TCP V3版本中S7-1200 作为Modubs TCP客户端的相关指令。
S7-1200集成PN接口MODBUS TCP通信概述
Modbus TCP是标准的网络通信协议,通过CPU上PN接口进行TCP/IP通信,不需要额外的通信硬件模块,Modbus TCP使用开放式用户通信连接作为Modbus通信路径,所支持的混合客户机和服务器连接数最大为CPU所允许的最大开放式用户通信连接数8个。
软件 STEP7 V11 SP1版本开始,S7-1200CPU 从Firmware V1.0.2开始,不再需要安装Modbus TCP的库文件,可以直接调用Modbus TCP的库指令“MB_CLIENT”和“MB_SERVER”使用实现Modbus TCP通信功能,如图1.所示。

图1. Modbus TCP的库指令
S7-1200 做Modbus Tcp Client(客户端)
MB_CLIENT 进行客户机和服务器TCP连接、发送命令消息、接收响应以及控制服务器的断开。
1.调用MB_CLIENT通信指令,进入 “Program blocks” > “OB1” 主程序中,调用MODBUS TCP客户机指令,如图2.所示。

图2. MB_CLIENT通信指令
功能块参数意义如下表1.:
表1. 功能块参数意义
2.MB_DATA_PTR数据块的新建
通过“Program blocks”>“Add new block”,选择“Data block”创建 DB 块,选择“标准与S7- 300/400兼容” ,点击“OK”键,定义数据区为100个字的数组,如图3.所示。


图3. 创建MB_DATA_PTR数据块
3. MB_MODE、MB_DATA_ADDR和功能码的关系
MB_CLIENT指令中,MB_MODE、MB_DATA_ADDR和MB_DATA_LEN三个参数组合定义了当前Modbus消息中所用的功能代码,如表2.。

表2. MB_MODE、MB_DATA_ADDR和功能码的关系
如上例中S7-1200作客户机,用FC03功能码读取服务器的两个字,起始从Modbus地址40001开始,接收的数据存放在缓冲区DB3.DBX0.0开始区域,设置如上:MB_MODE=0,MB_DATA_ADDR=40001,MB_DATA_LEN=2,对应关系为:40001->DB3.DBW0 ,40002->DB3.DBW2。
4.服务器端Modbus Slave 软件设置
注意:服务器采用Modbus Slave软件测试,该软件是第三方软件,可以从 internet 网络上下载。
首先将测试电脑的IP地址设置成192.168.0.210,如图4.所示,打开Modbus Slave 软件,在Modbus Slave的“Set up->Slave Definition”中设置功能码、起始地址、长度等,如图5.所示。

图4. 电脑的IP地址设置

图5. 服务器端Modbus Slave软件设置
创建Modbus TCP/IP连接,在“Connection->connect...”中打开连接属性对话框,选择“Modbus TCP/IP” ,TCP/IP Server Port本地服务器端口为502,并可以勾选“Ignore Unit ID”选项,如图6.所示。

图6. 连接属性
注意:图5.中的Slave ID 是服务器的站地址,和客户机中“MB_CLIENT” 中的“CONNECT_ID” 不是一个概念,实际上与客户机中“MB_CLIENT”的背景数据块中的STAT变量“MB_UNIT_ID”需要一致,在1200中该地址默认为16#00FF,如图7 所示,可以在变量表中修改与实际服务器站地址一致。如果在图6中勾选“Ignore Unit ID”,则不需要考虑一致情况,如果不勾选,则需要修改一致。

图7. 客户机中“MB_CLIENT”的背景数据块中的STAT变量“MB_UNIT_ID”
5.通讯测试
S7-1200作客户机,用FC03功能码读取服务器的两个字,设置客户机和服务器的功能、起始地址、端口等参数相对应,具体设置如上,设置M5.0和M0.0为1,触发请求,如图8.所示。

图8. S7-1200作客户机,用FC03功能码读取服务器的两个字
通讯结果如图9.所示,从服务器读到数据20,30到客户机的DB3.DBW0和DB3.DBW2区域。

图9. 通讯结果
6.MB_CLIENT 参数 STATUS 错误代码查询参考下面两个列表3.和表4.。

表3. 协议错误代码

表4. 参数错误代码
除了上面列出的MB_CLIENT错误外,也可以从底层传输通信指令(TCON、TDISCON、TSEND和TRCV)返回错误,参考相应指令的错误代码。
要查看Modbus TCP V3版本中S7-1200 作为Modubs TCP客户端的相关指令,可以点击【阅读原文】,搜索【V3】查看。
— THE END —
想要免费阅读知识库的内容,请查阅《易维通》微信订阅号自定义菜单。
推荐阅读

目前,易维通正在积极构建虚拟团队,控制器、驱动器、执行机构、智能制造、配电系统、职业发展、心理学、外语等核心技术分享虚拟团队都已具雏形。能力出众的你,别再犹豫了,加入我们!
【 易维通服务号 】
更多资料下载,
更多资源推送,
不让你错过
每一个有价值的机会!
每天阅读高质量的技术文章,关注我们吧!


