新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于 MODBUS 總線多功能電力儀表遠(yuǎn)程通訊的軟件開發(fā)技術(shù)

基于 MODBUS 總線多功能電力儀表遠(yuǎn)程通訊的軟件開發(fā)技術(shù)

作者: 時(shí)間:2012-07-14 來(lái)源:網(wǎng)絡(luò) 收藏

三、軟件的設(shè)計(jì)和開發(fā)

注:從CD194E系列的多功能傳過(guò)來(lái)的電功率數(shù)據(jù)就存放在Byte1到Byte4內(nèi)。
3.通信步驟:
⑴加入通信控件。也就是MSComm控件
⑵設(shè)置通信端口號(hào)碼。即CommPort屬性,在本文使用Com1。
⑶設(shè)置通訊參數(shù)。即Settings屬性。在本文設(shè)置為9600,n,8,1。即通訊速度為9600,數(shù)據(jù)格式為1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,無(wú)校驗(yàn)位。注意必須與多功能的設(shè)置一致,不然就會(huì)通信失敗。
⑷設(shè)置其它參數(shù)。必要時(shí)再加上其它的屬性設(shè)置。
⑸打開通信端口。即PortOpen屬性設(shè)成True。
⑹每隔500毫秒送出字符串或讀入字符串。即發(fā)送命令4(讀N個(gè)字節(jié))來(lái)讀取電功率參數(shù),使用Input及Output屬性。
⑺使用完MSComm控件后,將通信端口關(guān)閉。
4.人機(jī)界面:

5.程序代碼:
'API函數(shù)聲名
PrivateDeclareFunctionGetTickCountLib"kernel32"()AsLong
'點(diǎn)擊結(jié)束程序按鈕
PrivateSubCmdEnd_Click()
End
EndSub
'點(diǎn)擊讀取電功率按鈕
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)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉