电工学习网

 找回密码
 立即注册

西门子S7-1500Modbus TCP通信

2021-1-28 12:03| 编辑:电工学习网| 查看: 20223| 评论: 0|原作者: 西门子工业技术论坛

    Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。标准的Modbus协议物理层接口有RS232、RS422、RS485和以太网接口,采用master/slave方式通信。Modbus设备可分为主站(Master)和从站(slave),主站只有一个,从站有多个,主站向各从站发送请求帧,从站给予响应。在使用TCP通信时,主站为client端,主动建立连接;从站为server端,等待连接。对于这三种通信在数据模型和功能调用上都是相同的,只有封装方式是不同的。Modbus TCP协议是一个运行在TCP/IP网络连接中的一种协议,与传统的串口方式相比,MODBUS TCP插入一个标准的MODBUS报文头到 TCP报文中,不再带有差错校验和地址域,如下图所示。MBAP为报文头,长度为7字节。

1.png

一、SIMATIC S7-1500 ModbusTCP 通信使用要求

    从TIA Portal V12 SP1开始软件中增加了S7-1500的Modbus TCP块库(V3.0及以上版本),用于S7-1500与支持Modbus TCP的通信伙伴进行通信。S7-1500支持ModbusTCP指令的所有库版本,在用户程序中调用和参数化"MB_CLIENT"和"MB_SERVER"指令。
    "MB_CLIENT"指令通过CPU 或 CM/CP 的本地接口作为ModbusTCP客户端进行通信,无需要任何额外的硬件支持。使用"MB_CLIENT"指令在客户端和服务器之间建立连接,发送请求和接收响应,并控制断开连接。
    "MB_SERVER"指令通过CPU 或 CM/CP 的本地接口作为ModbusTCP服务器进行通信,无需要任何额外的硬件支持。"MB_SERVER"指令处理ModbusTCP客户端的连接请求,接收Modbus客户端的请求并发送响应消息。

    软件需求:

TIA V16 Professional
Modbus Poll
Modbus Slave

    硬件需求:

CPU 1511-1 PN V2.8
CP 1543-1 V2.2

二、Modbus TCP 通信程序

1、打开 TIA Portal V16软件,新建一个项目命名为 "ModbusTCP",在项目中添加 CPU1511-1PN V2.8 及CP1543-1 V2.2,为CP1543-1以太网接口新建一个子网并设置 IP地址为 "192.168.0.3"。

2、在 CPU1511-1PN的 OB1组织块中添加Modbus TCP Server功能块 "MB_SERVER",软件将提示会为该 FB块增加一个背景数据块,本例中为 DB1"MB_SERVER_DB",如下图所示。接下来为指令块分配引脚,各引脚的具体含义如下图所示。

图片1.png

2.png

3、保持性寄存器存储区与"MB_SERVER"管脚参数"MB_HOLD_REG"进行映射,对于线圈、离散输入、输入寄存器等通过功能块均已经与 S7-1500的过程映像区进行了映射,其映射地址对应如下图所示。

3.png

4、使用上述指令实现CP1543-1为Modbus TCP的 Server与通信伙伴建立通信,通过表2可知CONNECT参数的设定有两种方式,下面分别介绍这两种方式如何创建CONNECT参数。

1)使用TCON_IP_v4结构创建连接参数。

添加一个全局数据块用于匹配功能块"MB_SERVER"的管脚"CONNECT",本例中为数据块DB2(块名称:MB_CONNECT),打开该数据块,创建变量 "MB_Server",手动在数据类型框中输入"TCON_IP_v4",并将该变量关联到功能块"MB_SERVER"的管脚参数"CONNECT"上。

2)通过"网络视图"创建TCP连接后,再使用TCON_Configured结构创建连接参数。

    在"网络视图"窗口,左上侧选择"连接"按钮,选择”TCP连接“,然后在CPU上点击鼠标"右键"并选择"添加新连接"。在"添加新连接"窗口中,"类型"选择为"TCP连接",伙伴选择"未指定",本地接口选择"CP1543-1,以太网接口_1[X1]",分配本地连接ID,服务器为被动连接,点击 "添加"创建TCP 连接。

"TCP_连接_1"为建立的连接,选中该连接,在属性的"地址详细信息"中可以设置该TCP 连接的相关信息。

添加一个全局数据块用于匹配功能块"MB_SERVER"的管脚"CONNECT",本例中为数据块DB2(块名称:MB_CONNECT),打开该数据块,创建变量 "MB_Server",手动在数据类型框中输入"TCON_Configured",并将该变量关联到功能块"MB_SERVER"的管脚参数"CONNECT"上。

看过《西门子S7-1500Modbus TCP通信》的人还看了以下文章:

最新评论

  • PLC输入端和输出端怎么接线
  • PLC十字路口的交通灯控制编程实例
  • 西门子S7-200系列PLC全套接线图
  • 如何理解PLC工作原理图和接线图
  • 什么是COM端口?PLC中COM端口如何接线?
  • plc基础知识指令27个
热点文章

||电工学习网 ( )

GMT+8, 2021-6-25 14:35

Powered by © 2011-2021 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部