SIMATIC S7-1500 Modbus TCP通讯概述
S7-1500 PLC需要通过TIA Portal博途软件进行组态配置,从TIA Portal V12SP1开始软件中增加了S7-1500的Modbus TCP块库,用于S7-1500与支持Modbus TCP的通信伙伴进行通信,如下图2-1所示:
配置 S7-1500 CPU作为Modbus TCP Server与通信伙伴建立通讯
打开TIA Portal V13软件,新建一个项目,本例中命名为“S7_1500ModbusTCP_Final_V13”,在项目中添加CPU1516-3PN/DP,为集成的PROFINET接口新建一个子网并设置IP 地址,本例中为“192.168.1.30”,如图3-1所示:
在CPU1516-3PN/DP的OB1组织块中添加Modbus TCP Server功能块“MB_SERVER”,软件将提示会为该FB块增加一个背景数据块,本例中为DB2“MB_SERVER_DB”,如图3-2所示:
之后在CPU1516-3PN/DP中添加一个全局数据块用于匹配功能块“MB_SERVER”的管脚参数“CONNECT”,本例中为数据块DB3“MB_TCON”,打开该数据块,手动输入一个“TCON_IP_v4”的数据类型,如图3-3所示:
创建一个全局数据块用于匹配功能块“MB_SERVER”的管脚参数“MB_HOLD_REG”,本例中为DB1“Server_DB”,用于存储保持寄存器的通信数据,需要注意的是该数据块必须为非优化数据块(支持绝对寻址),在该数据块的属性中不勾选“优化的块访问”选项,如图3-5所示:
功能块“MB_SERVER”的其它管脚参数如表3-2所示:
上面提到保持寄存器功能块DB1“MB_Server”与管脚参数“MB_HOLD_REG”关联,对于其它数据类型,如线圈、离散输入、输入寄存器等通过功能块均已经与S7-1500的过程映像区进行了映射,其映射地址对应如图3-6所示:
设置完上述各管脚参数后,下载项目到CPU1516-3PN/DP中,打开Modsan32应用程序,下面以保持寄存器为例介绍通信测试过程。
在Modscan32的数据定义界面中设置数据类型为保持寄存器,并设置Modbus偏移量及长度,建立与CPU1516-3PN/DP集成PN口的通信连接,可以看到双方可以建立通信连接并进行数据读写,如图3-7所示:
对于其它数据类型,已与S7-1500CPU的过程映像区进行了映射,其过程类似。
使用功能块“MB_SERVER”的一些注意事项:
1)S7-1500 CPU的集成PN口通过功能块“MB_SERVER”支持与多个Modbus客户端的通信,支持的个数取决于CPU所支持的TCP连接数,必须为每一个客户端连接分别调用一次功能块“MB_SERVER”,其背景数据块、ID、端口号等参数必须唯一。
2)S7-1500 CPU的集成PN口可以同时作为Modbus TCP的Server及Client。
3)S7-1500 CPU的集成PN口支持多协议,除了运行Modbus TCP协议外,同时可以运行PROFINET、TCP/IP、S7等协议。
配置 S7-1500 CPU作为Modbus TCP Client与通信伙伴建立通讯
在上述新建的项目中增加一个CPU1516-3PN/DP的站点,设置PROFINET的IP 地址“192.168.1.30”,之后在CPU1516-3PN/DP的OB1组织块中添加Modbus TCP Client功能块“MB_CLIENT”,软件将提示会为该FB块增加一个背景数据块,本例中为DB1“MB_CLIENT_DB”,如图4-1所示:
同样在CPU1516-3PN/DP中添加一个全局数据块用于匹配功能块“MB_CLIENT”的管脚参数“CONNECT”,本例中为数据块DB2“MB_CLIENT_TCON”,打开该数据块,手动输入“TCON_IP_v4”的数据类型,如图4-2所示:
展开DB块后其“TCON_IP_v4”的数据类型的各参数设置如下:
创建一个全局数据块用于匹配功能块“MB_CLIENT”的管脚参数“MB_DATA_PTR”,本例中为DB3“MB_Client_Data”,用于存储Modbus通信的各数据类型,需要注意的是该数据块必须为非优化数据块(支持绝对寻址),在该数据块的属性中不勾选“优化的块访问”选项,如图4-4所示:
对于功能块“MB_CLIENT”的其它参数管脚含义如表4-2所示:
之后,打开上述功能块“MB_CLIENT”的背景数据块,在“MB_UNIT_ID”参数中表示通信服务器伙伴的从站地址,该地址必须一致,如图4-6所示:
设置完上述各管脚参数后,下载项目到CPU1516-3PN/DP中,打开Modslave应用程序,下面以保持寄存器为例介绍通信测试过程。
在Modslave的数据定义界面中设置数据类型为保持寄存器,在功能块“MB_CLIENT”的“MB_DATA_ADDR”和“MB_DATA_LEN”设置起始地址和长度,可以看到双方可以建立通信连接并进行数据读写,如图4-7所示:
对于其它数据类型,测试过程类似。
使用功能块“MB_CLIENT”的一些注意事项:
1)S7-1500 CPU的集成PN口通过功能块“MB_CLIENT”支持与多个Modbus服务器的通信,支持的个数取决于CPU所支持的TCP连接数,必须为每一个服务器连接需要分别调用一次功能块“MB_CLIENT”,其背景数据块、ID 等参数必须唯一。
2)S7-1500 CPU的集成PN口可以同时作为Modbus TCP的Server及Client。
3)S7-1500 CPU的集成PN口支持多协议,除了运行Modbus TCP协议外,同时可以运行PROFINET、TCP/IP、S7等协议。