編寫PC的通信程序可采用匯編語(yǔ)言編寫,或采用各種高級(jí)語(yǔ)言編寫,或采用工控組態(tài)軟件,或直接采用PLC廠家的通信軟件(如三菱的MELSE MEDOC等)
下面利用VB6.0以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明編寫通信程序的要點(diǎn)。假設(shè)PC要求從PLC中讀入從D123開始的4個(gè)字節(jié)的數(shù)據(jù)(D123、D124),其傳輸應(yīng)答過(guò)程及報(bào)文如圖7-16所示。

圖7-16傳輸應(yīng)答過(guò)程及命令報(bào)文
命令報(bào)文中10F6H為D123的地址,04H表示要讀入4個(gè)字節(jié)的數(shù)據(jù)。校驗(yàn)和SUM=30H+31H+30H+46H+36H+30H+34H+03 H=174H,溢出部分不計(jì),故SUMH=7,SUAIL=4,相應(yīng)的ASCⅡ碼為“37H”,“34H”。應(yīng)答報(bào)文中4個(gè)字節(jié)的十六進(jìn)制數(shù),其相應(yīng)的ASCⅡ碼為8個(gè)字節(jié),故應(yīng)答報(bào)文長(zhǎng)度為12個(gè)字節(jié)。
根據(jù)PC與FX系列PLC的傳輸應(yīng)答過(guò)程,利用VB的MSComm控件可以編寫如下通信程序?qū)崿F(xiàn)PC與FX系列PLC之間的串行通信,以完成數(shù)據(jù)的讀取。MSComm控件可以采用輪詢或事件驅(qū)動(dòng)的方法從端口獲取數(shù)據(jù)。在這個(gè)例子中使用了輪詢方法。
1)通信口初始化
MSComm1.CommPort =1
MSComm1.Settings = “9600,E,7,1”
MSComm1.InBufferSize = 1024
MSComml.OutBuffersize = 1024
MSComm1.InputLen = 0
MSComml.InputMode = comInputText
MSComm1.Handshaking = comNone
MSComm1.PortOpen = True
End Sub
2)請(qǐng)求通信與確認(rèn)
Private Function MakeHandshaking()As Boolean
Dim InPackage As String
MSComml.OutBufferCount = 0
MSComml.InBufferCount = 0
MSComml.OutPut = Chr(&H5)
Do
DoEvents
Loop Until MSComml.InBufferCount = 1
InPackage = MSComml.Input
If InPackage = Chr(&H6)Then
MakeHandShaking = True
Else
MakeHandshaking = False
End If
End Function
3)發(fā)送命令報(bào)文
Private Sub SendFrame ()
Dim Outstring As String
MSComml.OutBufferCount = 0
MSComml.InBufferCount = 0
Outstrin = Chr(&H2)+″on″+″10F604″+Chr(&H3)+″74″
MSComml.Output = Outstring
End Sub
4)讀取應(yīng)答報(bào)文
Private Sub ReceiveFrame()
Dim Instring As String
Do
DoEvents
Loop Until MSComml.InBufferCount = 12
InString = MSComml.Inpult
End Sub
-
plc
+關(guān)注
關(guān)注
5051文章
14592瀏覽量
486886 -
通信
+關(guān)注
關(guān)注
18文章
6391瀏覽量
140038 -
三菱
+關(guān)注
關(guān)注
32文章
828瀏覽量
44169
原文標(biāo)題:利用VB的MSComm控件編程實(shí)現(xiàn)PC與三菱PLC FX系列通信
文章出處:【微信號(hào):工控PLC學(xué)習(xí),微信公眾號(hào):工控PLC學(xué)習(xí)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
三菱FX3U PLC控制伺服電機(jī)的高速脈沖模式解析
三菱FX系列PLC+FX以太網(wǎng)通訊處理器:上位機(jī)通訊應(yīng)用案例
CCLKIE轉(zhuǎn)智能網(wǎng)關(guān)實(shí)現(xiàn)鍋爐房西門子PLC與三菱PLC通訊案例
工業(yè)智能網(wǎng)關(guān)配合三菱以太網(wǎng)通信處理器實(shí)現(xiàn)三菱FX3U PLC的無(wú)線通信
三菱FX3S PLC借助于PLC以太網(wǎng)通訊模塊與上位機(jī)通訊實(shí)現(xiàn)觸摸屏監(jiān)控的應(yīng)用配置案例
西門子200SMART如何無(wú)線聯(lián)三菱FX3U? 御控工業(yè)網(wǎng)關(guān)實(shí)現(xiàn)多站點(diǎn)PLC無(wú)線通訊集中控制!
三菱PLC數(shù)據(jù)采集實(shí)現(xiàn)變頻器遠(yuǎn)程監(jiān)控與遠(yuǎn)程控制
如何破解三菱PLC與西門子PLC的通訊難題
三菱PLC對(duì)變頻器進(jìn)行控制,其硬件如何配置?
三菱PLC與西門子PLC如何實(shí)現(xiàn)485通訊?
三菱PLC與西門子PLC如何實(shí)現(xiàn)互通?看這篇就夠了!
如何實(shí)現(xiàn)ModbusRTU轉(zhuǎn)ProfibusDP網(wǎng)關(guān)與三菱PLC的完美通訊!
三菱PLC對(duì)變頻器進(jìn)行控制,其通信參數(shù)如何設(shè)置?
工業(yè)智能網(wǎng)關(guān)支持采集哪些三菱PLC
利用VB的MSComm控件編程實(shí)現(xiàn)PC與三菱PLC FX系列通信
評(píng)論