随着科学技术的发展,对单一现场数据的采集与显示已不能满足人们的需求,特别是当网络结点变多的时候,逐个对每个结点进行单一管理显得十分困难,因此,数据的集中采集和智能管理已成为现代控制领域必然的发展方向。 现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。 1整体设计方案 本系统涉及上位机和下位机之间的通信,因此系统共包含三个部分:下位机-ATmega32单片机、总线和协议-485总线和Modbus通讯协议、上位机-MFC应用程序。系统设计框图如下: 2下位机简介 下位机是ATmega32单片机,单片机接收上位机发来的指令,并根据要求向上位机传送数据或者更改参数设置。 下位机设备有独立的通信模块,通过B0505与外部电路隔离,通信模块留有RXD、TXD、A、B四个接口,RXD、TXD与单片机串行口连接,A、B与485总线连接,中间是独立的转换电路。 不同的下位机地址不同,全部挂在485总线上,上位机发送一条指令后,下位机首先判断该指令的地址是否与本机相同,从而决定是否响应该指令;地址判断通过后,下位机通过识别功能码进行不同的操作。 2.1通信模块硬件电路 单片机通过串口发送数据,数据经过MAX485进行必要的电平转换,之后进入485总线传送,即上图中的A、B端口。图中的6N137和B0505分别起稳压和隔离的作用,保证数据在转换和发送的过程中不受其他模块的干扰。 2.2通信模块程序流程图 单片机预先将电压、电流、功率、电能、电压电流变比等数据存到自定义的缓冲区中,并定时刷新。每个下位机都有个特定的从机地址,当单片机接收到数据时,首先判断从机地址,如果不相同不作任何响应,如果相同,下位机根据功能码作出相应的响应。 3485总线和Modbus协议简介 主机和从机之间采用RS-485工业总线通信,RS-485电平传输更稳定,传送距离更远,主机与从机通过标准Modbus通信协议在RS-485总线上进行稳定的数据传输,在整个总线上最多可以接入255台从机。 Modbus协议按主-从方式进行网络通信,仅一个主设备查询,其他从设备根据主设备查询时提供的数据信息作出相应反应,。主设备可以单独和每个从设备通信,也能以广播方式与所有从设备通信。在Modbus协议中,主机查询和从机回复的消息结构如图3.1所示。查询消息中的功能代码告知被选中的从设备要执行何种功能,数据段包含了从设备执行该功能需要的附加信息。错误检测域为从设备提供了一种验证消息内容是否正确的方法。 在从设备的回应消息中,功能码是对查询消息中功能代码的回应,数据段包含从设备收集的数据。如果有错误发生,功能码将指出是错误回应消息,同时数据段包含了描述此错误信息的代码。错误检测域用于主设备确认消息内容是否可用。 4VC上位机软件 该软件是基于对话框的MFC应用程序。对话框机制的应用程序,界面简洁明了,用户操作更为方便。上位机软件程序流程图如下: 软件采用MSComm类,通过串口与单片机进行通信。MSComm是封装好的串口通讯专用类,应用时,只需对相应的端口进行配置,便可灵活运用。 在此通信系统中,接收数据长度是不固定的,一帧数据最短7个字节,最长69个字节,当数据长度小于8字节时,数据接收正常,当数据长度大于8字节时,一帧数据被自动截为两端,数据处理出错。程序中,在Oncomm()中断服务程序的开头部分加入了sleep(100),让主程序在进入串口中断后休眠100ms,等待所有数据接收完成再统一处理,解决了以上问题。 软件主界面如下图4.4所示: 如果软件没检测到下位机设备或设备与当前选择地址不相同,所有数据显示0,同时参数设置键为不可操作状态。 软件正常工作时,如下图4.5所示: 当检测到设备时,参数设置键变为可操作状态,同时下面的窗口中显示各项电压、电流,以及合相有功功率、合相有功电能,上图中合相有功功率为2322.00w,如果功率大于9999w,该项自动调整为Kw为单位。 下图4.6为参数设置窗口,通过该窗口可对设备进行电压电流变比设定,电能清零等操作。 通过该窗口可对下位机配置参数进行修改,电能清零键会清除下位机累积电能,为防止误操作,该键设置了"确定清零"弹出对话框,对操作进行二次确认。信号网络是设置输入设备的信号为三相四线或三相三线,电压电流变比是设置采样值与显示值之间的变比。点确定键后,上位机将所有设置命令打包发送给下位机,下位机对响应的寄存器进行配置。 5总结 本文介绍的多功能仪表上位机管理软件,具有简洁的人机对话窗口,同时在传输速度以及稳定性方面有明显优势,节省了大量的人力成本,实用性较强,目前该产品已被多家公司使用,与多功能仪表设备配套出售。当前,国家大力倡导节能减排,工业上对电量的检测和管理必然会被更多人重视,多功能仪表的应用会越来越广泛,因此该设计具有良好的市场前景。 [参考文献] [1]高志伟.VisualC++程序设计教程与上机指导[M].北京:北京大学出版社,2006:205. [2]M.J.VsberandD.A.Keating.SensorsandTransducers.SecondEditon[N].LondonMacmillanPressLtd,1996. [3]王浩.基于MFC对话框程序设计中UPDATE_COMMAND_UI机制实现方法探讨[J].计算机系统应用,2005,(14):09. [4]王卫红,等.基于AVR单片机的多外围设备控制系统的设计[J].计算机系统应用,2008,(17):02. [5]童诗白,华成英.模拟电子技术基础[M].高等教育出版社,2006:428-432. [6]浦昭邦,赵辉.普通高等教育"十一五"国家级规划教材[M].机械工业出版社,2010:76. [7]AliSophian,GuiYunTian,DavidTaylor,JohnRudlin.Designofapulsededdycurrentsenorfordetectionofdefectsinaircraftlap-joints[J].SensorsandActuatorsA,2002,(101):92-98. [8]U.Patel,D.Rodger.Finiteelementmodellingofpulsededdycurrentsfornondestructivetesting[J].IEEETrans.Magn.1996,32(3):1593-1596. [9]T.Mac.MFC-Programmierung:Dialoge[J].CTMagazinfurComputerTechnik.2011,(2):222. [10]解明祥.激光脉冲编码发生器上位机软件实现[J].弹箭与制导学报,2009,(04):265 |