查看原文
其他

S7-1200 Modbus-TCP 通讯配置向导说明

徐陈爽 PLC发烧友 2023-07-10


点击上方蓝字  关注我们

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)参数状态说明

来源:徐陈爽

文章推荐 博途 V15 安装的必要条件 为什么单相电机要用电容,三相电机不需要? PLC梯形图程序的自锁、互锁功能 案例 | 200SMART的模块与SIMATIC NET 进行 S7 通信 17个变频器+电动机使用中必须要弄清楚的问题,电工高级工必备! S7-1200和S7-200 SMART的以太网S7通讯 这24个问题 | 三菱5U,西门子smart、西门子1200问题,值得学习~ 各种液压元件工作原理动态演示 请收藏!工控人必备的几个免费工具
嗨,你还在看吗?

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存