基于S7-1500-CPU-集成PN口的ModbusTCP-通讯快速入门

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于S7-1500CPU集成PN口的Modbus/TCP通讯快速入门S7-1500,Modbus/TCP,Library2    目录1ModbusTCP通讯概述.......................................................................................31.1通讯所使用的以太网参考模型...................................................................31.2ModbusTCP数据帧...............................................................................31.3ModbusTCP使用的通讯资源端口号.......................................................31.4ModbusTCP使用的功能代码.................................................................31.5ModbusTCP通讯应用举例.....................................................................42SIMATICS7-1500ModbusTCP通讯概述.........................................................43配置S7-1500CPU作为Modbus/TCPServer与通信伙伴建立通讯..................54配置S7-1500CPU作为Modbus/TCPClient与通信伙伴建立通讯...............103   1ModbusTCP通讯概述 MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如PLC’s,I/O模块,以及连接其它简单域总线或I/O模块的网关服务的. 1.1通讯所使用的以太网参考模型 ModbusTCP传输过程中使用了TCP/IP以太网参考模型的5层:第一层:物理层,提供设备物理接口,与市售介质/网络适配器相兼容第二层:数据链路层,格式化信号到源/目硬件址数据帧第二层:网络层,实现带有32位IP址IP报文包第四层:传输层,实现可靠性连接、传输、查错、重发、端口服务、传输调度第五层:应用层,Modbus协议报文. 1.2ModbusTCP数据帧 Modbus数据在TCP/IP以太网上传输,支持EthernetII和802.3两种帧格式,ModbusTCP数据帧包含报文头、功能代码和数据3部分,MBAP报文头(MBAP、ModbusApplicationProtocol、Modbus应用协议)分4个域,共7个字节. 1.3ModbusTCP使用的通讯资源端口号 在Moodbus服务器中按缺省协议使用Port502通信端口,在Modus客户器程序中设置任意通信端口,为避免与其他通讯协议的冲突一般建议2000开始可以使用. 1.4ModbusTCP使用的功能代码按照使用的通途区分,共有3种类型分别为:1)公共功能代码:己定义好功能码,保证其唯一性,由Modbus.org认可:2)用户自定义功能代码有两组,分别为65~72和100~110,无需认可,但不保证代码使用唯一性,如变为公共代码,需交RFC认可:3)保留功能代码,由某些公司使用某些传统设备代码,不可作为公共用途。按照应用深浅,可分为3个类别1)类别0,客户机/服务器最小可用于集:读多个保持寄存器(fc.3):写多个保持寄存器(fc.16)。4   2)类别1,可实现基本互易操作常用代码:读线圈(fc.1):读开关量输入(fc.2):读输入寄存器(fc.4):写线圈(fc.5):写单一寄存器(fc.6)。3)类别2,用于人机界面、监控系统例行操作和数据传送功能:强制多个线圈(fc.15):读通用寄存器(fc.20):写通用寄存器(fc.21):屏蔽写寄存器(fc.22):读写寄存器(fc.23) 1.5ModbusTCP通讯应用举例 在读寄存器的过程中,以ModbusTCP请求报文为例,具体的数据传输过程如下:1)ModbusTCP客户端实况,用Connect()命令建立目标设备TCP502端口连接数据通信过程2)准备Modbus报文,包括7个字节MBAP内请求:3)使用send()命令发送:4)同一连接等待应答:5)同recv()读报文,完成一次数据交换过程6)当通信任务结束时,关闭TCP连接,使服务器可以为其他服务  2SIMATICS7-1500ModbusTCP通讯概述 S7-1500PLC需要通过TIAPortal博途软件进行组态配置,从TIAPortalV12SP1开始软件中增加了S7-1500的Modbus/TCP块库,用于S7-1500与支持Modbus/TCP的通信伙伴进行通信,如下图1所示:Picture1:TIAPortal中包含的ModbusTCP块库在使用该块库时需要注意以下几点:1)该块库只针对于S7-1500CPU的集成PROFINET接口,对于集成的普通以太网口不适用。2)该块库包含为客户端/服务器,可分别将S7-1500创建为Modbus/TCPSever及Client用于与通信伙伴通讯。5  名称数量订货号SIMATICCPU1516-3PN/DP(固件V1.5)16ES7151-3AN00-0AB0网线但干 编程器兼软件测试机1 名称订货号SIMATICSTEP7ProssionalV13 Modscan32用于在PC中模拟ModbusClient ModbusSlaveV4.3用于在PC中模拟ModbusServerV4.3.0(免授权版) 下面将分别介绍如何配置S7-1500为Modbus/TCP的Server,Client与通信伙伴建立通信,测试例程中用到的软硬件如下表1、2所示:           Table1:例程中用到的硬件列表           Table2:例程中用到的软件列表3配置S7-1500CPU作为Modbus/TCPServer与通信伙伴建立通讯 打开TIAPortalV13软件,新建一个项目,本例中命名为“S7_1500ModbusTCP_Final_V13,在项目中添加CPU1516-3PN/DP,为集成的PROFINET接口新建一个于网并设置IP地址,本例中为“192.168.1.30,如下图2所示:6   Picture2:新建一个S7-1500项目并配置IP地址在CPU1516-3PN/DP的OB1组织块中添加Modbus/TCPServer功能块“MB_SERVER,软件将提示会为该FB块增加一个背景数据块,本例中为DB2“MB_SERVER_DB,如下图3所示:Picture3:添加“MB_SERVER功能块之后在CPU1516-3PN/DP中添加一个全局数据块用于匹配功能块“MB_SERVER的管脚参数“CONNECT”,本例中为数据块“MB_TCON,打开该数据块,于动输入一个“TCON_IP_v4的数据类型,如下图4所示:7  TCON_IP_V4数据类型管脚定义 含义本例中的情况Interfaced接口,固定为W#16#64W#16#64ID连接ID,每个连接必须独立W#16#01ConnectionType连接类型,16#0B=TCP/IP;16#13=UDP16#0B=TCP/IPActiveEstablished是否主动建立连接,True=主动False RemoteAddress通信伙伴IP地址,设置为0允许远程任意的IP建立连接 16#0 RemotePort通信伙伴端口号,设置为0允许远程任意的端口建立连接 16#0 LocalPort本地端口号,缺省的Modbus/TCPServer为502 502 Picture4:添加一个与管脚“CONNECT匹配的全局数据块展开DB块后其“TCON_IP_v4的数据类型的各参数设置如下:                          Table3:“TCON_IP_v4的数据类型的各参数设置创建一个全局数据块用于匹配功能块“MB_SERVER的管脚参数“MB_HOLD_REG,本例中为“SERVER_DB,用于存储保持寄存器的通信数据,需要注意的是该数据块必须为非优化数据块(支持绝对寻址),在该数据块的属性中不勾边“Optimizedblockaccess边项,如下图5所示:8  “MB_SERVER的管脚参数管脚声明 数据类型含义 DISCONNECT 输入 BOOL0:0:在无通信连接时建立被动连接。1:终止连接初始化。 NDR 输出 BOOL0:无新数据1:从Modbus客户端写入的新数据 DR 输出 BOOL0:未读取数据1:从Modbus客户端读取的数据ERROR输出BOOL通信故障STATUS输出WORD通信状态信息,用于诊断 Picture5:创建保持寄存器存储数据块功能块“MB_SERVER的其它管脚参数如下表4所示:                      Table4:功能块“MB_SERVER的其它管脚参数上面提到保持寄存器是由功能块“MB_SERVER的管脚参数“MB_HOLD_REG关联,对于其它数据类型,如线圈、离散输入、输入寄存器等通过功能块均己经与S7-1500的过程映像区进行了映射,其映射地址对应如下图6所示:9   Picture7:S7-1500的Modbus地址映射表设置完上述各管脚参数后,下载项目到CPU1516-3PN/DP中,打开Modsan32应用程序,下面以保持寄存器为例介绍通信测试过程。在Modscan32的数据定义界面中设置数据类型为保持寄存器,并设置Modbus偏移量及长度,建立与CPU1315-3PN/DP集成PN口的通信连接,可以看到双方可以建立通信连接并进行数据读写,如下图8所示:Picture8:通信测试对于其它数据类型,由于与S7-1500CPU的过程映像区进行了映射,其过程类似。使用功能块“MB_SERVER的一些注意事项:1)S7-1500CPU的集成PN口通过功能块“MB_SERVER支持与多个Modbus客户端的通信,支持的个数取决于CPU集成PN口所支持的TCP连接数,必须为每一个客户端连接分别调用一次功能块“MB_SERVER,其背景数据块、ID、端口号等参数必须唯一。2)S7-1500CPU的集成PN口支持多协议,除了运行Modbus/TCP协议外,同时可以运行PROFINET、TCP/IP、S7等协议10   4配置S7-1500CPU作为Modbus/TCPClient与通信伙伴建立通讯 在上述新建的项目中增加一个CPU1516-3PN/DP的站点,设置PROFINET的IP地址“192.168.1.30,之后在CPU1516-3PN/DP的OB1组织块中添加Modbus/TCPClient功能块“MB_CLIENT,软件将提示会为该FB块增加一个背景数据块,本例中为DB1“MB_CLIENT_DB,如下图9所示:Picture9:插入一个MB_CLIENT功能块同样在CPU1516-3PN/DP中添加一个全局数据块用于匹配功能块“MB_CLIENT的管脚参数“CONNECT”,本例中为数据块“MB_CLIENT_TCON,打开该数据块,于动输入“TCON_IP_v4的数据类型,如下图10所示:Picture10:添加一个与管脚“CONNECT匹配的全局数据块展开DB块后其“TCON_IP_v4的数据类型的各参数设置如下: TCON_IP_V4数据类型管脚定义 含义

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功