|
|
④上位机发出启动指令后,指定地址程控电源的输出开始从0伏慢慢线性上升到设定值,保持到指定的时间后关断输出。当上位机发出所有电源都启动指令后,所有程控电源都启动。
⑤上位机发出立即停止指令后,指定地址程控电源的输出立即停止上升,保持到指定的时间后关断输出,当上位机发出所有电源都停止指令时,所有程控电源都立即停止。
⑥上位机发出接地打开指令后,指定地址程控电源的开关量输出为1,电磁铁吸合,当上位机发出所有程控电源的接地都断开命令时,所有程控电源的接地电磁铁都吸合。
⑦上位机发出接地指令后,指定地址程控电源的开关量输出为0,电磁铁释放,当上位机发出所有程控电源都接地时,所有程控电源的接地电磁铁都释放。
4 监控软件设计
软件采用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更新各状态上一页 [1] [2] [3] 下一页
|
|
|
|
|
|
|
|
 |
|