『7x24小时有问必答』

点击上方蓝字  关注我们

01

 相关使用说明:

(1) Modbus TCP 客户端通过 PROFINET 连接进行通信。
通过“MB_CLIENT”指令,可以在客户端和服务器之间建立连接、发送 Modbus 请求、接收响应并控制 Modbus TCP 客户端的连接终端。
通过“MB_SERVER”指令将处理 Modbus TCP 客户端的连接请求、接收并处理 Modbus 请求并发送响应。

(2) S7-1200 固件版本 V4.0 支持“MB_CLIENT”指令和最高 V3.1 版本的库。S7-1200 固件版本 V4.1 及更高版本和 S7-1500,支持“MB_CLIENT”指令与“MB_SERVER”指令的所有库版本。
使用该指令时,无需其它任何硬件模块。

(3) 使用各客户端连接时,请记住以下规则:
▀  每个“MB_CLIENT”连接都必须使用唯一的背景数据块。
▀   对于每个“MB_CLIENT”连接,必须指定唯一的服务器 IP 地址。

02

 MB_CLIENT指令中

 MB_MODE、MB_DATA_ADDR和MB_DATA_LEN三个参数组合定义了当前Modbus消息中所用的功能代码,如表

03

准备工作

(1) S7-1200作为服务器的话,端口号必须是502,作为客户端端口号是0;
(2) 
硬件标识符一般是64 (16#40)

04

编程

(1)客户端
 

CONNECT 引脚的指针类型
先创建一个新的全局数据块DB, 双击打开新生成的DB块,定义变量名称为“aa",数据类型为“TCON_IP_v4”(可以将 TCON_IP_v4 拷贝到该对话框中),然后点击“回车”按键。该数据类型结构创建完毕( ID号的意义不大在这里,可以不考虑数值问题,主要是通过IP地址通讯)

注意: MB_DATA_PTR指定的数据缓冲区可以为DB块或M存储区地址中。DB块可以为优化的数据块,也可以为标准的数据块结构。若为优化的数据块结构,编程时需要以符号寻址的方式填写该引脚;若为标准的数据块结构(可以右键单击DB块,“属性”中将“优化的块访问”前面的勾去掉,需要以绝对地址的方式填写该引脚,这样便于写P#格式。
 
(2)服务器端

CONNECT 引脚的指针类型
先创建一个新的全局数据块DB, 双击打开新生成的DB块,定义变量名称为“aa",数据类型为“TCON_IP_v4”(可以将 TCON_IP_v4 拷贝到该对话框中),然后点击“回车”按键。该数据类型结构创建完毕( ID号的意义不大在这里,可以不考虑数值问题,主要是通过IP地址通讯)
 

05

编程注意事项:

(1)MODBUS-TCP通讯需要用分时控制各MB_CLIENT功能块,在同一时间只能有一个MB_CLIENT功能块的DISCONNET处于OFF(即:建立连接),不然会出现通讯不正常。
(2)不同的MB_CLIENT功能块寄存器地址范围注意不要一样(40001-49999),特别是读写时一定不能一样,容易造成数据混乱,因为读写的40001-49999的寄存器地址是同一个区域。
(3)“MB_SERVER”功能块在服务器侧一般只调用1次。所有客户端的读写数据全部包含在里面,所以要注意分别。
(4)在修改过CONNECT 引脚的指针参数或端口参数后一般需要PLC重新启动才有效。

06

实际案列程序:

  (1)客户端程序

  (2)服务器端程序

(3)参数状态说明
来源:徐陈爽
嗨,你还在看吗?

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码