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