微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 基于Modbus的EPS应急电源监控系统的研究

基于Modbus的EPS应急电源监控系统的研究

时间:08-16 来源:互联网 点击:
1 引 言

随着环保和消防要求的提高,柴油发电机逐渐失去优势,而由于逆变技术的成熟发展,新型无公害、高可靠性、动力型的大型应急电源EPS(Emergency Power Supply)逐步成为代替柴油发电机组的“绿色电源”,目前已经在建筑领域得到大面积推广。同时,随着微处理器、计算机和数字通信技术的飞速发展,计算机控制已经扩展到了几乎所有的工业领域。将所有的功能集成于统一开放的平台上,通过人机界面可以使复杂的控制和数据处理变得更加简单。

2 监控系统设计

美国电子工业协会(EIA)制定的RS 485标准作为一种多点差分数据传输的电气规范,现已成为业界应用最为广泛的标准通信接口之一。这种通信接口允许在简单的一对双绞线上进行多点、双向通信。平衡发送、平衡接收,具有传输距离远、通信速率高、抗干扰能力强、软硬件支持丰富与现场仪表接口简单、易于实现和扩展等特点。接口总线上可连接32个设备,加中继器后最多可达255个设备。因此,许多领域都采用RS 485作为数据传输链路,例如汽车电子、电信设备、局域网、蜂窝基站、工业控制仪器仪表等。

上位机的RS 232串行口通过RS 232/RS 485转换器转换为RS 485总线,各下位机通过MAX485芯片连接到总线上。各个下位机设有自己惟一的地址,且下位机之间不能通信,一切通信受上位机控制。开始时,所有下位机都处于监听状态,等待上位机发出指令。当上位机发出指令时,所有下位机都接收并且将其中的地址帧与自己的地址比较,如果相同则继续接收后面的指令或数据,若不同则不予理睬。

3 通信协议Modbus

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其他设备之间可以通信。他已经成为一通用工业标准,不同厂商生产的控制设备利用其可以连成工业网络,进行集中监控。

Modbus协议定义了消息域格式和内容的公共格式,如表1和表2所示,使控制器能认识和使用消息结构,而无需考虑通信网络的拓扑结构。他描述了一个控制器访问其他设备的过程,当采用Modbus协议通信时,此协议规定每个控制器需要知道自己的设备地址,识别按地址发来的消息,如何响应来自其他设备的请求,如何侦测错误并记录。

系统通信采用主从技术,即只有主设备能发出查询,从设备响应消息。主设备可单独和从设备通信,从设备返回一个消息。如果采用广播方式(地址为零)查询,从设备不作任何回应。

Modbus协议有两种模式:ASCII和RTU模式。一个Modbus通信系统中只能选择一种模式,不允许两种模式混合使用。本系统采用RTU模式,消息的起始位以至少3.5个字符传输时间的停顿开始(一般采用4个),在传输完最后一个字符后,有一个至少3.5个字符传输时间的停顿来标识结束。一个新的消息可在此停顿后开始。在接收期间,如果等待接收下一个字符的时间超过1.5个字符传输时间,则认为是下一个消息的开始。校验码采用CRC16方式,只对设备地址、功能代码和数据段进行。整个消息帧必须作为一连续的流传输,传输速率较ASCII模式高。

Modbus可能的从设备地址是0~247(十进制),单个设备的地址范围是1~247。可能的功能代码范围是十进制的1~255。其中有些代码适用于所有的控制器,有些是针对某种Modicon控制器,有些是为用户保留或备用。

4 软件设计

本系统上位机软件采用VC 6.0开发,操作系统为Windows 98,上位机向串口读写数据,通过485总线将控制信息送到现场的每台EPS设备,就可以监控网络上任何一台EPS设备,同时现场采集到的电压、电流等信号实时显示在上位机的界面上。

(1) 人机界面子程序

包括实时信息动态更新及数字显示,异常判断及报警声音提示。

(2) 串口通信子程序

在Windows 98中将串行口和文件的操作统一起来。对他们打开、读、写、关闭等操作都使用相同的API函数,但是又是有区别的,比如串行口不能像文件一样被删除,这些差别体现在API函数中部分的参数设置上。在VC中设计串行通信程序时要用到一些通信的API函数,如CreateFile(),CloseHandle(),ReadFile(),WriteFile(),SetupComm(),WaitCommEvent()等。除上述几个函数外,还要经常用到一个重要的记录DCB(设备控制块)。DCB中记录有可定义的串行口参数,设置串行口参数时必须先用GetCommState函数将系统默认值填入DCB控制块,然后才可把用户想改变的自定义值设定。

PC机串行通信从调用CreateFile()函数开始,接着设置串行口波特率、数据位、校验位、停止位等参数和超时参数,最后选择一种工作方式来读写串行口。在Windows环境下,串行通信有4种方式可供选择:查询方式、同步I/O、异步I/O和事件驱动方式。这几种方式各有自己的优缺点:

①查询方式比较直接,但要占用大量的CPU时间;

②同步I/O方式直到读取指定的字节数或超时的时候才返回,这样很容易长时间地阻塞线程;

③异步I/O可以在后台读写数据,而在前台做其他的事情;

④事件驱动方式是由Windows通知应用程序某些事件什么时候发生,然后根据所发生的事情来对串口进行操作。

在监测系统中,由于事件的偶然性和要求传送的实时性,计算机常采用事件驱动I/O方式来进行现场监测。事件驱动I/O方式是指线程通过监视通信资源中的一组事件来进行I/O操作,这种方式类似于MSDOS下的中断方式,效率比较高。在实际项目应用和开发过程中,大多用的这种工作方式来实现PC机和下位机的通信。

上位机部分通信程序的实现过程如下:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top