黄俊超 王磊 孔德秀
摘要: Modbus是应用于电子控制器上的一种通信协议。该文主要介绍了以上位机PC 为核心的基于Modbus通信协议的建筑能耗监控系统的设计,详细阐述了基于Modbus RTU规约的电力参数采集显示系统的软硬件组成和实现。VC++6.0 开发环境下编程实现了与下位机的通信,并利用ADO 访问SQL 数据库,实现了对采集来的数据进行存储、绘图等。
关键词:RS-485;Modbus通信协议;数据采集;监控系统
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)22-5182-03
随着计算机技术和网络技术的迅速发展,监控系统出现了多种新的实现方式,与此同时,我国经济的迅速发展,能源需求不断增长与能源相对不足的矛盾日益严重,节能成为了全社会共同关注的话题。利用RS-485将建筑物内的智能电表数据采集出来,以Modbus协议与上位机PC进行通讯,使得建筑物内不同位置的智能电表组成一个网络,构成一个监控系统,操作人员利用上位机PC监控软件即可对整个建筑物内的用电情况进行采集,处理,实现控制目的。
1 Modbus协议
1.1 Modbus简介
Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。不同厂商生产的控制设备可以通过该协议连接成一个工业网络,来完成集中监控。
这个协议定义了一个用来认识所使用的消息结构的控制器,不需要了解消息是经过何种网络进行通讯的。Modbus协议描述了一控制器对其他设备的请求与回应过程,以及如何侦测错误并记录,Modbus协议制定了消息域格局和内容的公共格式。
Modbus协议在网络上进行通讯时,决定了每个控制器必须了解它们的设备地址,通过识别按地址发送来的消息,决定是否应答,控制器使用Modbus协议发送反馈信息,这个消息转换成其他网络所使用的数据帧或者包结构。
1.2 Modbus传输方式
控制器可以设置成两种传输模式(ASCII或RTU),。当设备以ASCII 模式进行通信时,消息中的每一个8 位的字节作为两个ASCII 字符传输。当设备以RTU 模式进行通信时,消息中的每一个8 位的字节分成两个4 位的16 进制的字符传输[2]。因此在相同的波特率下RTU 模式有更高的传输密度,可以传播更多数据(相比ASCII),应用也更广。用户可以选择想要的模式,包括串口通讯参数(波特率,比特率,校验方式),同一个网络上的所有设备必须使用相同的传输模式和串口参数。
1.3 Modbus报文
本建筑能耗监控系统使用的是RTU传输模式。
在Modbus协议中,RTU模式与ASCII不同,没有起始符和结束符,具体格式如表1所示,要进行一次消息发送,至少要以3.5个字符时间(T1-T2-T3-T4) 作为停顿间隔表示开始,同样的,也至少要以3.5个字符时间作为停顿间隔表示消息结束。
在Modbus(RTU)数据帧之中,地址码表示主机发往的从机的地址,同一个485总线中最多能有255个从机地址,数据码之中包含主机对从机进行的功能命令,功能代码分成三类:公共功能代码、用户定义的功能代码和保留的功能代码[1]。数据码根据功能码的不同而改变,包含了主机的执行命令或者从机的反馈数据,CRC校验码是2个字节的错误检测码,用于让主机或从机判断收到的信息是否发生错误,增加了系统的安全和效率。
2 系统的整体设计
本系统主要由一台PC上位机,多台监控仪表下位机,以及RS-485转以太网转换器以及一个局域网环境组成,系统原理图如图1所示。
上位机PC通过现有网络环境,经过RS-485转以太网转换器后,与由下位机组成的RS485总线相连,与下位机进行数据通讯。
为了避免RS-485总线通讯竞争以及冲突,系统采用比较常用的主从通讯控制方法,即在每一个RS-485的总线系统中,每一台下位机都拥有唯一的地址码,采用的通讯方式是上位机轮询,下位机应答。
因为每一个RS-485的总线系统中,下位机的个数最多只能由255个,所以通过RS485转以太网转换器,配合建筑已有的网络环境,可以进行设备数量的扩充,并且利用已有的网络环境,可以省去大部分位RS485总线进行布线的步骤,增加系统的兼容性。
3 系统的硬件设备
本系统所需的硬件设备并不需要特别指定型号与厂家,根据实际需要,现场设备,智能电表可以根据使用者的相应情况,选择具有RS-485接口的智能电表即可。
RS458以太网转换器,采用济南有人科技有限公司的USR-TCP232-500多功能串口转以太网转换器,转换器的硬件原理图,如图2所示。可以将TCP网络数据包或UDP数据包与RS232/RS422/RS485接口数据实行透明传输,内部集成了TCP/IP协议栈,可以利用它完成嵌入式设备的网络功能,模块集成10/100M自适应以太网接口,串口最高波特率支持460800,功耗低,搭载ARMCortex-M3处理器。
4 系统的软件设计
4.1 通讯程序
本系统上位机PC采用Socket通讯方式,将符合Modbus协议的Modbus报文传给串口服务器,再由串口服务器转发到RS-485总线,最终由下位机设备接收并反馈信息,Socket连接方式为UDP连接,因为网络环境是在局域网中使用,UDP连接出错概率极低,系统开销小,传输速度大,对网络资源利用率高。
上位机使用通讯程序与以太网转换器建立起UDP连接,向RS-485以太网转换器发送Modbus协议报文,通过下位机的反应,判断下位机是否存在,确认下位机的存在后,向下位机发送信息查询命令,具体流程如图3所示,然后下位机返回反馈信息,上位机对返回的Modbus协议报文进行分析,经过报文分析以后,上位机提取出相应的数据,然后存入数据库,具体流程如图4所示。下位机程序流程如图5所示。
4.2 数据统计程序
上位机通过与下位机的数据通讯,获得了由下位机采集而来的数据,并将这些数据存入数据库,之后可以对采集而来的数据进行统计,整理,分析,本系统可运用数据统计程序,可以将这些数据归类整理,绘制成所需要的图示。
可使用JAVA编程,对数据库进行访问,提取出其中所需要的数据,绘制成图表,如分类查询以及能耗数据统计图,统计表以及相关的用户管理等。对处理后的数据用图像,表格等形式通过客户端实时显示。
5 结束语
Modbus协议是一种标准,通用的总线协议,其免费,支持多接口,帧格式简单,紧凑,通俗易懂等优点,使得其在工业现场中获得了广泛的应用,该文基于Modbus协议设计了一套建筑能耗监控系统,通过对Modbus协议,RS-485通讯,以及Socket通讯,UDP连接等分析,设计了系统硬件之间的通讯连接和程序,并给出部分程序示例。本系统对不同厂商的硬件具有较高兼容性,扩展性,不仅能完成对电器设备的能耗监控,还可拓展应用于其他智能设备,具有不错的推广前景。
参考文献:
[1] MODBUS Application Protocol Specification V1.1a[DB/OL].http://www.Modbus-IDA.org,2004. (下转第5194页)
(上接第5184页)
[2] MODBUS over Serial Line Specification & Implementation guide V1.0[DB/OL].http://www.Modbus- IDA.org,2004.
[3] 新华控制工程公司.标准Modbus 协议[Z].2001.
[4] 潘洪跃.基于Modbus 协议通信的设计与实现[J].计量技术,2002(4).
[5] 祝木田,师勇.Modbus协议通讯的应用[J].微计算机信息,2003(11).