大数跨境
0
0

连载 ▏S7-1200 作为Modubs TCP客户端

连载 ▏S7-1200 作为Modubs TCP客户端 易维通
2019-01-31
1
导读:连载 ▎S7-1200Modbus TCP通信设置教程

干货下载:(点击标题试试)

13大PLC品牌8000个实例程序免费下载!

免费获得2000G电气自动化、机械等工程领域的资料及软件


连载目录


Modbus TCP功能块与固件版本兼容性说明

Modbus TCP V4.0指令

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 —

想要免费阅读知识库的内容,请查阅《易维通》微信订阅号自定义菜单。


目前,易维通正在积极构建虚拟团队,控制器、驱动器、执行机构、智能制造、配电系统、职业发展、心理学、外语等核心技术分享虚拟团队都已具雏形。能力出众的你,别再犹豫了,加入我们!



长按二维码关注


【 易维通服务号 】

更多资料下载,

更多资源推送,

不让你错过

每一个有价值的机会!



每天阅读高质量的技术文章,关注我们吧!

【声明】内容源于网络
0
0
易维通
易维通是工业互联网技术服务创新模式的代表。以企业身边的工业保姆,服务工程师职业发展全周期为己任。在易维通,用户可以随时随地找到技术精湛且靠谱的工程师;技术人才入驻后可以通过开设付费课程和问答等知识分享方式打造个人品牌从而获得机会和订单。
内容 1120
粉丝 0
易维通 易维通是工业互联网技术服务创新模式的代表。以企业身边的工业保姆,服务工程师职业发展全周期为己任。在易维通,用户可以随时随地找到技术精湛且靠谱的工程师;技术人才入驻后可以通过开设付费课程和问答等知识分享方式打造个人品牌从而获得机会和订单。
总阅读2.9k
粉丝0
内容1.1k