基于 MODBUS 總線多功能電力儀表遠(yuǎn)程通訊的軟件開發(fā)技術(shù)
三、軟件的設(shè)計和開發(fā)
注:從CD194E系列的多功能電力儀表傳過來的電功率數(shù)據(jù)就存放在Byte1到Byte4內(nèi)。
3.通信步驟:
⑴加入通信控件。也就是MSComm控件
⑵設(shè)置通信端口號碼。即CommPort屬性,在本文使用Com1。
⑶設(shè)置通訊參數(shù)。即Settings屬性。在本文設(shè)置為9600,n,8,1。即通訊速度為9600,數(shù)據(jù)格式為1個起始位,8個數(shù)據(jù)位,1個停止位,無校驗位。注意必須與多功能電力儀表的設(shè)置一致,不然就會通信失敗。
⑷設(shè)置其它參數(shù)。必要時再加上其它的屬性設(shè)置。
⑸打開通信端口。即PortOpen屬性設(shè)成True。
⑹每隔500毫秒送出字符串或讀入字符串。即發(fā)送命令4(讀N個字節(jié))來讀取電功率參數(shù),使用Input及Output屬性。
⑺使用完MSComm控件后,將通信端口關(guān)閉。
4.人機(jī)界面:
5.程序代碼:
'API函數(shù)聲名
PrivateDeclareFunctionGetTickCountLib"kernel32"()AsLong
'點擊結(jié)束程序按鈕
PrivateSubCmdEnd_Click()
End
EndSub
'點擊讀取電功率按鈕
PrivateSubCmdRead_Click()
Timer1.Enabled=NotTimer1.Enabled
IfTimer1.EnabledThen
CmdRead.Caption="停止讀數(shù)"
Else
CmdRead.Caption="讀取電功率"
EndIf
EndSub
'程序初始化
PrivateSubForm_Load()
MSComm1.InputMode=comInputModeBinary
MSComm1.PortOpen=True
Timer1.Enabled=False
EndSub
PrivateSubTimer1_Timer()
DimC4%,C5%,C6%,C7%
DimTick
DimDataAsDouble
DimBuf()AsByte
DimByteOut(7)AsByte
MSComm1.InputLen=0
Buf=MSComm1.Input
'重新定義數(shù)據(jù)輸入緩沖區(qū),發(fā)送命令4
MSComm1.InputLen=1
ByteOut(0)=H1
ByteOut(1)=H4
ByteOut(2)=H0
ByteOut(3)=H5C
ByteOut(4)=H0
ByteOut(5)=H4
ByteOut(6)=H31
ByteOut(7)=HDB
MSComm1.Output=ByteOut(0)ByteOut(1)ByteOut(2)ByteOut(3)ByteOut(4)ByteOut(5)
ByteOut(6)ByteOut(7)
評論