基于 MODBUS 總線多功能電力儀表遠(yuǎn)程通訊的軟件開發(fā)技術(shù)
'等待多功能電力儀表響應(yīng)的數(shù)據(jù)到達(dá)串口
Tick=GetTickCount()
Do
If(GetTickCount()-Tick)/1000#>10Then
MsgBox"時(shí)間過久,請檢查多功能電力儀表及傳輸狀態(tài)!",vbCritical+vbOKOnly,"系統(tǒng)信息"
ExitSub
EndIf
DoEvents
LoopUntilMSComm1.InBufferCount>=9
'從輸入緩沖區(qū)讀數(shù)據(jù)
Buf=MSComm1.Input
IfBuf(0)>1Then
MsgBox"地址錯(cuò)誤!",vbCritical+vbOKOnly,"系統(tǒng)信息"
ExitSub
EndIf
Buf=MSComm1.Input
IfBuf(0)>4Then
MsgBox"長度錯(cuò)誤!",vbCritical+vbOKOnly,"系統(tǒng)信息"
ExitSub
EndIf
Buf=MSComm1.Input
C4=Buf(0)
Buf=MSComm1.Input
C5=Buf(0)
Buf=MSComm1.Input
C6=Buf(0)
Buf=MSComm1.Input
C7=Buf(0)
Buf=MSComm1.Input
Buf=MSComm1.Input
Data=Power(C4,C5,C6,C7)
TxtPower.Text=CStr(Data)
EndSub
'自定義功率換算函數(shù)
PrivateFunctionPower(C4%,C5%,C6%,C7%)
DimPowerExpAsString,MantissaAsString
DimReadValue#
DimValueSign
If((C4AndH80)/2︿7)=TrueThen
ValueSign=-1
Else
ValueSign=1
EndIf
PowerExp=CStr((C4AndH7F)*2+(C5AndH80)/2︿7)
Mantissa=CStr((H80OrC5)*2︿16+C6*2︿8+C7)
ReadValue=ValueSign*2︿(Val(PowerExp)-126)*Val(Mantissa)/(256*65536)
Power=ReadValue
EndFunction
四、結(jié)論
本實(shí)例是作者在實(shí)驗(yàn)室做過多次實(shí)驗(yàn),達(dá)到了預(yù)定的應(yīng)用效果,目前在江西某廠取得了實(shí)際的應(yīng)用。
該控制系統(tǒng)的最大優(yōu)點(diǎn)是:
1,從硬件上看,僅僅使用一個(gè)轉(zhuǎn)換模塊就可以實(shí)現(xiàn)全廠電能遠(yuǎn)程監(jiān)控和集中管理的功能。大大提高了效率,且十分經(jīng)濟(jì)實(shí)惠。
2,從軟件上看,直接使用串口的控制技術(shù),而不必需要寫額外的驅(qū)動程序。采用VB開發(fā)應(yīng)用軟件十分方便,編程工作量小。
【參考文獻(xiàn)】
1.李肇慶、韓濤。串行端口技術(shù),國防工業(yè)出版社,2004
2.范逸之。VisualBasic與RS-232串行通信控制,清華大學(xué)出版社,2002
3.范逸之。VisualBasic與分布監(jiān)控系統(tǒng)——RS232/485串行通信,清華大學(xué)出版社,2002
4.江陰長江斯菲爾電力儀表有限公司使用手冊
5.臺灣泓格科技有限公司的232/485轉(zhuǎn)換模塊說明書.
評論