软件采用Visual Basic6.0编程,作出十分直观的人机界面,采用RS-485通信标准和上述的问答方式进行数据通信,通过上位机向串口读写数据,并通过光纤485总线将各种控制信息传送到现场的每路MARX充电子系统,上位机就可以监控网络上任何一台MARX能源了,予置数值可以分别显示在PC机软件窗口和单片机系统的予置数字表头上。同时,现场实测电压信号也可以实时显示在PC机的界面上。此设计界面直观,而且利于对现场信号进行实时监测。因此,采用本系统,大大提高了现场信号予置精度,对实验操作人员来说人机界面良好,简单易懂。
根据系统功能的要求,上位机需发送2种类型的命令:(1)同期命令,它由定时器触发引起,每隔一个定时周期发送1次,例如发往各充电单元的数据和状态回传命令;(2)非周期性命令,它由操作者按动相应命令按钮引起,非周期性发送。所有命令均采用ASCII码方式传送,为了防止通讯错误,各子机正确收到上位机发来的命令后返回相应的确认字符。
在VB6.0中使用了MSCOMM控件,用来实现串行通信。MSComm控件有很多属性,其中最基本的有以下几个:
Commport属性 设置并返回通信端口号,用于指定使用PC机的哪一个串行端口。
Setting属性 以字符串的形式设置并返回波特率、奇偶校验、数据位和停止位。
Portopen属性 设置并返回通信端口的状态,用于打开或关闭端口。
Output属性 用于发送数据,可以是文本数据或二进制数据。
Input属性 从接收缓冲区返回和删除字符,用于接收数据。
本系统VB程序初始化上位机通信程序如下:
MSComm1.CommPort=2 ;选串行端口2
MSComm1.Settings=“57600,n,8,1” ' 设置通信参数
MSComm1.OutBufferSize=512 ' 设置发送缓冲区大小
MSComm1.OutBufferCount=0 ' 清除输出缓冲区
Mscomm1.Inputlen=0 ' 读入接收缓冲区全部字符
MSComm1.PortOpen=True ' 打开串行端口
由于数据是动态接收,所以数据的处理也是动态进行,程序中使用了一个Timer控件,其命令发出与数据的接收均在Timer控件的定时期间进行,在Timer控件的定时期间依次调用模拟量和状态量返回子过程,同时监视是否有命令按钮按下,当按下某操作命令按钮时调用命令处理子过程,部分程序如下:
Private Sub Timer1_Timer()
IF CmdPress=True Then Call SendCmd ' 当按下某操作命令按钮时转入命令处理子过程
UpdateAI 更新各模拟量数据的显示
UpdateDI更新各状态量
End Sub
Private Sub sendCmd()
UpdateDO (Cmd) ' 输出控制开关量
………
End Sub
5 系统抗干扰问题
监控系统在工业中的应用越来越多,由于现场的电气环境比较复杂,容易形成各种干扰源,特别是在大电流、强脉冲实验环境中,因此研究解决系统抗干扰问题对确保系统的稳定运行有着非常的意义。
该系统中使用RS485总线,RS485总线是采用差分平衡电气接口,本身具有较强的抗电磁干扰能力,但在实际当中仍然会现一些问题,为此应注意以下几个方面:
(1)与远距离上位机通讯采用光纤传输,子机之间不方便采用用光纤传输时,应选择合理的网络拓扑结构。
(2)采用双绞线作为RS485传输线时,虽然对电磁感应噪声有较强的抑制能力,但对静电感应引起噪声的抑制能力较差,因此应选用带屏蔽的双绞线,同时双绞线的屏蔽层要正确接地。
(3)通过在总线两端加入匹配电阻的方法,解决信号反射问题
(4)系统的供电方式有两种:一种是集中供电方式,即电源都引自同一处,另一种是分布式供电,各子设备在安装位置附近取电源,从抗干扰效果的角度讲,应选择集中供电方式,这样可基本消除各处参考电位不等的情况。
6 结束语
本文提出的主从分布式多机通信系统硬件电路简单,控制灵活。与其他语言相比,用VB语言实现上位机数据传送的优点是可方便地控制通信对象的选择,具有较大的灵活性,且编程容易。此外,由于RS485总线的通讯方式仍属于串行通讯方式,在通讯速度上有些偏低,在操作上表现为数据刷新时间稍微偏长,当系统子设备较多时,其控制的实时性不很理想,此时需对控制系统作进一步的改进。
7 参考文献
1. 曾伟民、邓勇刚等 Visual Basic 6.0高级实用教程 电子工业出版社1999.10
2. 蔡祥荣. RS-485总线应用中的几个问题. 力源电子工程,2001
上一页 [1] [2]
VB脉冲功率装置能源计算机控制技术 第2页下载如图片无法显示或论文不完整,请联系qq752018766