小视频免费在线观看_夜夜b_男女隐私免费视频_国产一级性生活视频_久久综合入口_精品国内视频

技術頻道

利用VB的MSComm控件編程實現PC與三菱PLC FX系列通信

編寫PC的通信程序可采用匯編語言編寫,或采用各種高級語言編寫,或采用工控組態軟件,或直接采用PLC廠家的通信軟件(如三菱的MELSE MEDOC等)

下面利用VB6.0以一個簡單的例子來說明編寫通信程序的要點。假設PC要求從PLC中讀入從D123開始的4個字節的數據(D123D124),其傳輸應答過程及報文如圖7-16所示。

7-16 傳輸應答過程及命令報文

命令報文中10F6HD123的地址,04H表示要讀入4個字節的數據。校驗和SUM30H31H30H46H36H30H34H03 H174H,溢出部分不計,故SUMH=7,SUAIL=4,相應的ASC碼為“37H”,“34H”。應答報文中4個字節的十六進制數,其相應的ASC碼為8個字節,故應答報文長度為12個字節。

根據PCFX系列PLC的傳輸應答過程,利用VBMSComm控件可以編寫如下通信程序實現PCFX系列PLC之間的串行通信,以完成數據的讀取。MSComm控件可以采用輪詢或事件驅動的方法從端口獲取數據。在這個例子中使用了輪詢方法。

1)通信口初始化

Private Sub Initialize()

MSComm1CommPort =1

MSComm1Settings = “9600,E,7,1”

MSComm1InBufferSize = 1024

MSCommlOutBuffersize = 1024

MSComm1InputLen = 0

MSCommlInputMode = comInputText

MSComm1Handshaking = comNone

MSComm1PortOpen = True

End Sub

2)請求通信與確認

Private Function MakeHandshaking()As Boolean

Dim InPackage As String

MSCommlOutBufferCount = 0

MSCommlInBufferCount = 0

MSCommlOutPut = Chr(&H5

Do

DoEvents

Loop Until MSCommlInBufferCount = 1

InPackage = MSCommlInput

If InPackage = Chr(&H6 Then

MakeHandShaking = True

Else

MakeHandshaking = False

End If

End Function

3)發送命令報文

Private Sub SendFrame ()

Dim Outstring As String

MSCommlOutBufferCount = 0

MSCommlInBufferCount = 0

Outstrin = Chr(&H2)+on10F604Chr(&H3)+74

MSCommlOutput = Outstring

End Sub

4)讀取應答報文

Private Sub ReceiveFrame()

Dim Instring As String

Do

DoEvents

Loop Until MSCommlInBufferCount = 12

InString = MSCommlInpult

End Sub

文章版權歸西部工控xbgk所有,未經許可不得轉載。

主站蜘蛛池模板: 成人精品 | av一区二区三区在线播放 | 国产精品一区二区三区免费视频 | 中文字幕精品一区久久久久 | 粉嫩国产15xxxxx | 中文字幕免费播放 | 精品国产精品国产偷麻豆 | 中文字幕一区二区三 | 精品久久久精品 | 精品国产一区二区三区四区在线观看 | 亚洲精品视频在线 | 亚洲精品综合 | 亚洲精品三级 | 国产一区二区在线播放视频 | 亚洲欧洲视频在线 | 日韩欧美在线视频一区二区三区 | 国产精品久久久久久久久久东京 | 欧美激情精品久久久久久久久久 | 久久久久久精 | 免费成人高清 | 亚洲高清在线视频 | 国产精品29页 | 精品久久一区二区 | 国产一区二区 | 精品国产欧美日韩 | 婷婷综合在线观看 | 精品日韩在线观看 | 午夜在线免费视频 | 欧美性猛交xxxx乱大交退制版 | 色天天综合久久久久综合片 | 中文字幕精品久久久久 | 国产精品99久久久久久久久 | 精品国产一区二区三区日日嗨 | 中文字幕一区二区三区四区不卡 | 成人精品视频在线 | 99久久99| 日韩欧美精品一区二区三区经典 | 中国一级特黄毛片大片 | 国产精品久久久久久 | 九九热在线视频 | 国产精品久久99 |