分享

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

 PLC发烧友 2023-03-08 发布于广东
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)参数状态说明

来源:徐陈爽

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多