
2022年基于Modbus规约的智能模块在电量采集系统中的应用论文.docx
7页基于Modbus规约的智能模块在电量采集系统中的应用论文导读:常将数字化的智能模块EDA9033D作为系统监测参数的现场数据采集装置控件可简化Windows下的串口通信编程此系统已在某分部市电量采集监控中使用规约,基于Modbus规约的智能模块在电量采集系统中的应用关键词:Modbus规约,智能模块,电量采集,MSComm控件 0概述在过去传统的电力监控系统中,常采用电流、电压、功率、功率因素、电量等一系列变送器及测量这些变送器标准输出信号的输入模块作为系统的前端采集装置,这样既增加了系统本钱,又使现场布线复杂,系统可靠性还不高随着计算机技术的不断开展,综合了4C技术的分布式控制系统的产生,实现了工业生产过程的集中管理与分散控制在现代各种分布式电力监控系统及工业控制与测量系统中,常利用上监控中心计算机进行现场实时数据的获取与发送采用简单可靠易开发的通信软件,可大大降低系统的开发难度由于文献1没有对通信软件及通信流程进行详细介绍,本文结合具体通信实例给出了相应程序代码1. 1EDA9033D智能模块在现代分布式电力监控系统中,常将数字化的智能模块EDA9033D作为系统监测参数的现场数据采集装置。
智能电量变送器EDA9033D采用了RS-485接口,遵循标准的Modbus-RTU通讯规约,且能连接到所有的计算机和终端并与之通讯1.1EDA9033D智能模块性能EDA9033D智能模块是一智能型三相电参数数据综合采集模块,可准确输出三相相电压;三相电流;功率、正〔反〕向有〔无〕功电度等电参数;电压、电流等的测量精度优于0.2%,其它电量的测量精度优于0.5%进行通信时,数据格式、通讯速率、模块地址等参数可灵活设定组网方便,通过使用RS-485中继器,可将多达247个模块连接到同一网络上1.2智能模块通讯格式EDA9033D通信采用Modbus-RTU通讯规约,数据传输方式中每个字节包括1个起始位,8个数据位〔最小的有效位优先发送〕,无奇偶校验位,1个终止位;数据错误检测时采用循环冗余校验码方式进行确认进行数据交换时,主机发送的查询数据帧格式,应与EDA9033D返回的响应数据帧格式相同发生任何错误都不会有成功的响应,或者返回一个错误指示帧数据帧格式如表1所示 Adress Function Data Check 8-bits 8-bits Nx8-bits 16-bits 表1 EDA9033D数据帧格式 1.2.1数据帧地址域地址域在数据帧的开始局部,由一个字节组成,地址范围为0-255,EDA9033D可用的模块地址为1-247,地址0用作播送地址,其它地址保存。
每个模块在接入网络时,地址是唯一的,主计算机通过地址域来选通EDA9033D模块,模块发送回应消息时,它把自己的地址放入回应的地址域中,告诉主计算机哪个模块正与之进行通信1.2.2数据帧功能码功能码告诉被寻址到的EDA9033D模块执行何种功能,表2列出了模块用到的主要功能码以及其含义发表论文,Modbus规约 功能码 含义 01H 读1/多路开关量输出状态 02H 读1/多路开关量输入状态 03H 读多路存放器 05H 写1路开关量输出 0FH 写多路开关量输出 10H 写多路存放器 表2 功能码及其含义 除上表中列出的常用功能码之外,EDA模块还有两个扩展功能码65H和66H,65H用于读取多个连续测量周期的实时数据,66H用于实时测量数据自动上传。
1.2.3数据帧数据域数据域包含了主计执行特定功能所需要的数据,或者从机响应查询时采集到的数据如果有错误发生,此域包含一异议代码,主机应用程序可以用来判断采取下一步行动1.2.4数据帧错误校验域该域允许主从设备检查传输过程中的错误有时,由于电噪声和其它干扰,一组数据在传输时线路上可能会发生一些改变,出错校验能够保证不去响应那些传输过程中发生改变的数据,可提高系统的平安性和效率EDA9033D模块错误校验使用了CRC-16方式,其容易实现,是目前应用最广的检错码编码方式之一21EDA9033D智能模块在.电量采集系统中的应用2.1系统组成分析现代分布式电力监控系统通常是由监控中心计算机、通信网络、现场数据采集装置和现场电气设备4局部组成发表论文,Modbus规约监控中心计算机通过网络监控多个现场的数据采集装置,完成实时数据的存储和显示现场数据采集装置与现场电气设备连接,实时采集电气设备运行过程中的各项工作参数2.2监控中心计算机通信软件由于本系统采用力创公司生产的多个作为现场数据采集装置与监控中心计算机的通信软件作为现场数据采集装置,于是系统通信网络采用RS485菊花链总线结构,协议采用Modbus协议。
监控中心计算机利用现有的RS-232接口,通过使用RS232/485的转换器与EDA9033D模块相连接监控中心计算机采用采用VB6.0中的串口通信控件MSComm作为现场数据采集装置与监控中心计算机的通信软件MSComm控件可简化Windows下的串口通信编程,通过串行端口来接收和传输数据,为应用程序提供串行通信功能2.3系统通信实例系统采用查询与应答方式进行通信,每一种查询命令都对应着一种应答发表论文,Modbus规约例如,系统要求获得1号模块所连接现场设备的相电压、电流、功率等26个实时电参数,并将其以十进制形式循环显示,需知道系统的4个配置参数Uo、Io、Ubb和Ibb才能进行数据的转换2.4通信程序MSComm通信控件处理通信问题时有事件驱动和查询两种方式事件驱动通信是处理串行端口交互作用的一种非常有效的方法OnComm事件是MSComm控件的唯一事件事件驱动通信方式流程包括串口初始化→写串口→触发OnComm事件→读串口→数据处理显示1)串口初始化程序为保证数据传输成功,需将EDA9033D模块数据格式、通讯速率设置成和监控中心计算机一样的参数MSComm1.CommPort =1'设定通信端口号为COM1MSComm1.InputMode= comInputModeBinary'设定为二进制的数据流方式MSComm1.RThreshold= 1'设定接收缓冲区每收到一个字符就触发OnComm事件MSComm1.SThreshold= 0'数据发送时不产生OnComm事件MSComm1.Settings ='9600,n,8,1''设定传输数据格式MSComm1.PortOpen =True'翻开COM1端口程序启动时翻开串口;退出程序时关闭串口,以便使各种操作在串口翻开状态下进行。
2)写串口程序Output属性用于将要发送的数据写入传输缓冲区按照Modbus–RTU标准协议写串口发表论文,Modbus规约当使用RTU格式是,由于MSComm通信控件自身具有缺乏,不能简单发送十六进制数据,进行一下处理Dim info(1 To 8)As Byteinfo(1) = &H1info(2) = &H3info(3) = &H0info(4) = &H40info(5) = &H0info(6) = &H1Ainfo(7) =&HC5 'crc校验码低字节info(8) =&HD5 'crc校验码高字节MSComm1.Output =info'写串口(3)通信事件发生在初始化程序中设定的RThreshold属性值,决定了发生OnComm事件之前要接收的字符数,OnComm事件发生后,将接收缓冲区的数据读取出来发表论文,Modbus规约由于此次通信事件接收缓冲区等待的字符数为57,局部程序代码为:IfMSComm1.InBufferCount = 15发表论文,Modbus规约此通信格式下的数据都以十六进制显示,且存放在相邻的两个内存单元,以Uo为例,需进行如下处理:Uo =Val('&H' & (Hex(getbyte(3)) + Hex(getbyte(4))))将Uo、Io、Ubb和Ibb定义成全局变量,代入从串口读出的数据,便可以真实值显示。
以0041H存放器中的数值Ub为例,先定义Ub1代入公式得出Ub的真实值Ub1 =Val('&H' & (Hex(getbyte(5)) + Hex(getbyte(6))))Text3(1).Text =CStr(Ub1 x Uo x Ubb / 10000)3.结束目前,此系统已在某分部市电量采集监控中使用,这种通信方式灵活,可扩展性强,并且结构简单,可靠性高,具有较好的实际价值和使用价值,可大大减轻现场操作工人的工作强度,提高工作效率参考文献[1]陆敏等,Modbus协议在电量采集系统中的应用,水利水文自动化,2004(1)[2]EDA9033D三相电参数采集模块使用说明书[3]范逸之,VisualBasic与RS-232串行通信控制,清华大学出版社,2002 。
