中自网

热门搜索:PID  plc  传感器  电机  变频器  工业以太网  无线通讯  低压 

当前位置:首页>>应用案例首页>>专业论文>>正文

Modbus TCP轮询在S7-1500上的应用

发布日期:2021-10-13   来源:《变频器世界》21-08期   作者:庄园   浏览次数:13880
分享到:
【摘   要】:本文介绍了在S7-1500上使用Modbus TCP轮询,查询多个智能仪表数据的一种应用。S7-1515作为客户端,Acrel智能电表作为服务器,客户端请求读取每个电表的3段数据。轮询方式不仅降低了PLC通信通道的数量要求,并且简化了程序,提高了读数的灵活性和一致性,减少了调试时间。


关键词:
西门子Modbus TCP轮询

Abstract: With This paper introduces an application that Modbus TCP polling used on the S7-1500 to query multiple smart meter data. Siemens S7-1515 as the client, and Acrel smart meter as the server, requests to read three slices of data of each meter. Polling not only reduces the needs of PLC communication channels, but also simplifies the program, improves the flexibility and consistency of data requesting, and reduces debugging time.

Key words: SIEMENS; Modbus TCP; Polling

 

1. 项目简介

在现代工厂中,能耗的监控变得越来越重要,越来越普遍。在福州某厨余垃圾处理厂的配电间,每路抽屉柜都配了一个Acrel智能电表。电表具有全面的三相交流电量测量、复费率电能计量、四象限电能计量、谐波分析、电网质量分析、遥信输入、遥控输出以及网络通讯等功能。本项目选用的电表支持Modbus TCP,数据采集PLC选用的西门子S7-1515。电表和S7-1500PLC之间采用星型网络结构。

Modbus TCP作为广泛使用的通信总线,在智能仪表上有非常多的应用,不同于Modbus RTU,每路Modbus TCP都占用PLC的通信资源。PLC的通信资源有限,过多的通信通道增大了组态和编程的工作量。通过轮询,不仅可以降低工作量,也可以让程序简洁,数据一致性好。

 

1  星型网络的交换机

 


 

2  部分智能电表

 

2. 程序结构

2.1 组态

电表作为Modbus TCP服务器,S7-1500作为客户机。S7-1500 PLC通过TIA Portal软件进行组态配置,使用Modbus TCP库中的MB_CLIENT指令与服务器建立通信连接。建立通信连接需要设定指令的CONNECT参数,该参数设定有两种方法:

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

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

轮询程序选用第1种方法来设定连接参数。

 

2.2  轮询

1)仪表轮询:

电表分为7组,每组20个。每组电表占用一个连接资源,通过不同的TCON_IP_v4连接参数的ID来区分。

2)数据轮询:

每个电表需要获取的数据较为分散,不同供电回路需要采集的数据不全相同,PLC的Modbus TCP指令支持读取的数据最大长度有限,所以PLC与电表建立连接后,需要轮询请求所需数据。

2.3  程序

仪表的连接和数据的请求都由库指令MB_CLIENT执行。部分程序如图3所示。

 

3  程序

1)仪表轮询:

仪表的轮询指依次对组内的各个仪表发起连接请求。

发起连接后,满足以下3个任一条件则请求断开并发起下个仪表连接请求:

a、发起连接3s后无连接状态;

b、有连接状态3s后;

c、收到数据轮询完成信号。

其中针对第1种情况,需要将当前连接不成功的仪表状态位复位以表示通信不正常(正常表置位)。

2)数据轮询:

当有连接状态后,依次发起仪表的数据请求,以MB_CLIENT的DONE或者ERROR来触发下个数据请求命令。

当最后一个数据请求命令完成后,发出数据轮询完成信号给仪表轮询功能块。

2.4   仪表指令DB

以数组和UDT的方式建立指令DB可以方便的对所需指令寻址,也保证了程序数据的一致性。

instru[1]包含了1号仪表的IP,Connecting ID,回路名称,命令的数量,以及最多10个数据请求命令。仪表DB块如图4所示。

 

4  仪表DB块

2.5    Trace

Trace可以清楚的看出组内6号仪表连接成功,读取了3次数据。7号仪表连接不成功,未读取数据。Trace曲线如图5所示。

 

5  Trace曲线

3. 总结

本项目是对多个Modbus TCP仪表采集数据,数据实时性要求不高,利用轮询,充分利用了有限的CPU连接资源,并保证了程序的简洁易读与数据的一致性。在硬件成本与调试成本上都取得了良好的结果。

 

参考文献

[1]TIA 信息中心;MB_CLIENT:作为Modbus TCP客户端通过PROFINET通信[Z].

[2]S7-1500的Modbus TCP通信CONNECT参数设置说明[Z].

[3]Programming Guideline for S7-1200/S7-1500[Z].

 
 
[ 应用案例搜索 ]  [ ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]  [ 返回顶部 ]

0条 [查看全部]  网友评论