(2)非周期性命令的发送:根据命令按钮状态及周期性命令数据传输状态,在TimNonPeriodic定时器的中断程序中发送非周期性命令。
Sub CmdNonPeriodic_Click()
CmdPressed=True’命令按钮激活
End Sub
Sub TimNonperiodic_Timer()
If DuringPeriodic=True OR Cmdpressed=False Then Exit Sub’如周期命令数据传输尚未结束或命令按钮处于激活
状态,则退出发送非周期性命令程序。
CmdPressed=False’命令按钮恢复为未激活状态
Call SendData(NonPeriodic_COMMAND) ’发送非周期性命令
Mscomm1.Rthreshold=R_NONPERIODIC_BYTE‘发送非周期性命令后,设置Rthreshold属性,使主站接收所设定的字节数
后引发OnComm事件
End Sub
(3)TimPeriodic定时器程序:在TimPeriodic定时器的中断程序中发送周期性命令。
Sub TimPeriodic_Timer()
If DuringNonPeriodic=True Then Exit Sub’如非周期命令数据传输尚未结束,则退出发送非周期性命令程序。
DuringPeriodic=True’设置周期命令数据传输状态为正在进行中
Call SendData(NonPeriodic_COMMAND)’发送非周期性命令
Mscomm1.Rthreshold=R_PERIODIC_BYTE’设置Rthreshold属性,使主站接收R_PERIODIC_BYTE个字节,引发OnComm事件
End Sub
(4)OnComm事件程序:根据Rthreshold属性设置值,当接收缓存区内接收到相应字节的字符时,引发OnComm事件,在中断程序中接收数据。
Sub Mscomm1_OnComm()
Select Case Mscomm1.commEvent’在此插入处理各种不同错误或事件的代码
Case MSCOMM_EV_RECEIVE
ReceiveString$=Mscomm1.Input
Select Case Mscomm1.Rthreshold
Case R_PERIODIC_BYTE‘周期性命令的应答数据
Call DisposeDate(NonPeriodic_CommAND)’处理接收数据
DuringPeriodic=False’设置周期命令数据传输状态为结束
Case R_NONPERIODIC_BYTE’非周期性命令的应答数据
Call DisposeData(NonPeriodic_CommAND)’处理接收数据
DuringNonPeriodic=False’设置非周期命令数据传输状态结束
End Select
End Select
End Sub
上述程序中,因MicroMaster变频器回送的状态信息一帧为14个字节,所以R_NONPERIODIC_BYTE和R_PERIODIC_BYTE 。对于变频器回送的状态信息则利用WINOOWs的消息处理函数OnComm()进行处理。在消息处理函数中,将变频器回送的14个状态字一次全部读到所定义的变量参数中,然后程序再从变量参数中分别读取各状态字,在屏幕上显示、判断并报警。
五、结束语
本文利用VB6.0下的ActiveX控件和MicroMaster变频器RS-485的串行通信功能,实现了在WINOOWs09环境下用单台PC机控制多台变频器的任务,并能实时检测各变频器的运行状态。整个控制系统灵活方便,具有很大的实用性。
上一页 [1] [2]
本文关键字:变频器 通信 电工文摘,电工技术 - 电工文摘