您当前的位置:五五电子网电子知识电工技术电工文摘Windows98下单台P与多台变频器的串行通信 正文
Windows98下单台P与多台变频器的串行通信

Windows98下单台P与多台变频器的串行通信

点击数:7490 次   录入时间:03-04 11:52:58   整理:http://www.55dianzi.com   电工文摘

(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] 


本文关键字:变频器  通信  电工文摘电工技术 - 电工文摘