VB的上位機(jī)與PLC的串行通信

發(fā)布時間:2023-07-31
1引言
在現(xiàn)代控制系統(tǒng)中,pc機(jī)作為上位機(jī)負(fù)責(zé)系統(tǒng)管理、狀態(tài)監(jiān)控、信息處理和打印報表等工作,plc作為下位機(jī)進(jìn)行面向現(xiàn)場的實時控制已成為一種典型的系統(tǒng)結(jié)構(gòu)。因此,pc機(jī)與plc之間的通信問題便成了系統(tǒng)能否實現(xiàn)的關(guān)鍵。串行通信以其接線簡單、容易實現(xiàn)的特點得到了廣泛的應(yīng)用。
visual basic編程軟件簡單易學(xué)、功能強(qiáng)大,利用它可以很方便的實現(xiàn)pc機(jī)與plc間的串行通訊。本文以omron公司的cpm2a plc為例,介紹了利用vb6.0實現(xiàn)pc機(jī)與plc串行通訊的具體方法。
omron公司的cpm2a plc支持host-link通信協(xié)議,可以與上位計算機(jī)進(jìn)行通信。使用host-link通信協(xié)議構(gòu)成的通信網(wǎng)絡(luò),可以很方便的實現(xiàn)上位pc對下位plc的實時監(jiān)控。
2原理設(shè)計
2.1系統(tǒng)結(jié)構(gòu)
系統(tǒng)結(jié)構(gòu)如圖1所示,計算機(jī)作為上位機(jī),plc作為下位機(jī),因omron cpm2a本身帶有rs-232串口,因此,利用rs-232電纜將其與pc機(jī)的串口(com1或com2)相連,便構(gòu)成了一個1:1的簡單的通訊系統(tǒng)[1]。
圖1系統(tǒng)結(jié)構(gòu)
2.2host-link通信協(xié)議[2]
omron公司的host-link通信系統(tǒng)是由上位計算機(jī)(ibm pc或兼容機(jī))通過安裝在各臺plc上的host-link單元連接多臺plc構(gòu)成的網(wǎng)絡(luò)。上位機(jī)對系統(tǒng)中的plc進(jìn)行集中管理與監(jiān)控,通過與host link單元的通信,可以編輯或修改各臺plc的程序,實時監(jiān)控其運行過程,實現(xiàn)自動化系統(tǒng)的集散控制。對于小型plc,也可以通過其rs 232c通信端口進(jìn)行鏈接。
系統(tǒng)使用host-link通信協(xié)議進(jìn)行通信,上位機(jī)具有傳送優(yōu)先權(quán),總是首先發(fā)出命令并啟動通信,host link單元收到命令交由plc執(zhí)行,然后將執(zhí)行結(jié)果返回上位機(jī),二者以通信幀為單位,輪流交換數(shù)據(jù)。通信時一組傳送的數(shù)據(jù)稱為“塊”,它是命令或響應(yīng)的單位,從上位機(jī)發(fā)送到host -link單元的數(shù)據(jù)塊稱為命令塊,反過來,從host- link單元發(fā)送到上位機(jī)的數(shù)據(jù)塊稱為響應(yīng)塊。多點通信時,可作為單幀發(fā)送的最大數(shù)據(jù)塊為131個字符,因此當(dāng)一個數(shù)據(jù)塊含有132個或更多字符時,要分成兩幀或多幀發(fā)送。
每個數(shù)據(jù)塊都以設(shè)備號及標(biāo)題開始,以校驗碼(fcs)及結(jié)束符結(jié)束。響應(yīng)塊中還包括反應(yīng)執(zhí)行結(jié)果的響應(yīng)碼。通信格式如圖2所示。
圖2 通信幀格式
3軟件實現(xiàn)
3.1mscomm控件介紹[3]
mscomm控件全稱為microsoft communications control,是microsoft公司提供的簡化winoows下串行通信編程的activex控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡化方法。
mscomm控件有兩種通信方式,查詢方式和事件驅(qū)動方式,本文采用事件驅(qū)動方式。mscomm控件的屬性有許多,其中一些需要在編程時設(shè)置,另一些則取默認(rèn)值即可,具體設(shè)置方法可參見相關(guān)資料,表1列出了mscomm控件的常用屬性。
3.2plc參數(shù)設(shè)置[4]
plc的通信參數(shù)可以采用默認(rèn)的host-link通信形式,即1位啟動位,7位字長,偶校驗,2位停止位,9600bit/s。設(shè)備號為00。
3.3上位機(jī)軟件設(shè)計
使用vb通信控件mscomm編寫plc監(jiān)控程序,通過rs-232端口發(fā)送并接收數(shù)據(jù),關(guān)鍵代碼如下:
‘程序初始化并設(shè)置串口參數(shù)
private sub form_load()
mscom.commport = 1
mscom.settings = 9600,e,7,2 `通信參數(shù)設(shè)置
mscom.inputmode= cominput
-modetext `以文本方式接收數(shù)據(jù)
mscom.portopen = true `打開串口
end sub
`向plc寫入數(shù)據(jù)
private sub butwrite_click()
`檢驗串口是否關(guān)閉,若串口已關(guān)閉,則打開它
if mscom.portopen = false then
mscom.portopen = true
end if
`plc必須處于編程狀態(tài)才可以寫入數(shù)據(jù)
plcend=@00sc00 `“@”為“開始符”表示數(shù)據(jù)幀開始;“sc”為host-link指令;“00”表示下位plc的設(shè)備地址,ascii碼表示[4]。
mscom.output = plcend + fcs(plcend) + * + chr$(13)
mscom.inbuffercount = 0
dim outstring as string
outstring=@00wr0010+ trim(txtcontent.text)
outstring = outstring + fcs(outstring) + * + chr$(13) `采用異或校驗,即fcs校驗;“*+ chr$(13)”表示結(jié)束符,表示數(shù)據(jù)幀的結(jié)束,即“*↙”[4]。
mscom.inbuffercount = 0
mscom.output = outstring `向plc發(fā)送數(shù)據(jù)
end sub
`從plc讀取數(shù)據(jù)
private sub butread_click()
if mscom.portopen = false then
mscom.portopen = true
end if
dim outstring, instring as string
outstring=@00rr00100001
outstring=outstring+fcs(outstring) + *+chr$(13)
mscom.inbuffercount = 0
mscom.output=outstring `向plc發(fā)送讀取數(shù)據(jù)的命令
dim i as integer
do while mscom.inbuffercoun
-t <= 14 or i > 9000 `i為等待的時間
i = i + 1
loop
`提取有用數(shù)據(jù)并顯示
if i < 9000 then
instring = mscom.input
txtcontent.text = 輸出010通道的數(shù)據(jù)為 + mid(instring, 8, 4)
else
msgbox (讀取失敗)
end if
end sub
`fcs校驗
function fcs(byval fcsstr as string) as string
dim slen, i, xorresult as integer
dim tempfcs as string
slen = len(fcsstr)
xorresult = 0
for i = 1 to slen
xorresult = xorresult xor asc(mid$(fcsstr, i, 1))
next i
tempfcs = hex$(xorresult)
if len(tempfcs) = 1 then tempfcs = 0 + tempfcs
fcs = tempfcs
end function
4結(jié)束語
本文給出了利用vb(主要是其中的mscomm通信控件)開發(fā)通信程序,實現(xiàn)了plc與pc普通串口通信的實用方法。實驗表明,該程序運行穩(wěn)定可靠,且操作簡便。將程序稍加修改,還可應(yīng)用到其他工業(yè)控制設(shè)備,在小型工業(yè)控制系統(tǒng)中具有一定的應(yīng)用價值。
上一個:win7電腦鼠標(biāo)滾輪亂跳怎么修復(fù)視頻(win7電腦鼠標(biāo)滾輪亂跳怎么修復(fù)正常)
下一個:玩求生之路2掉幀(win10玩求生之路2閃退)

印度檀香樹有多大的經(jīng)濟(jì)價值
小程序視頻怎么保存到本地(小程序視頻怎么保存到優(yōu)盤)
如何在電腦中安裝新字體(怎么在電腦上安裝新的字體)
濟(jì)南電腦維修網(wǎng)點查詢,濟(jì)南那里能修電腦
心臟草的花語:熱愛
征信報告?zhèn)€人查詢打印,個人征信報告制作神器
電腦硬盤256g多少錢一張,256的G盤一般幾錢
八角金盤養(yǎng)植方法
筆記本電腦cpu處理器天梯圖,處理器天梯圖教您筆記本電腦處理器哪種好
常用PLC數(shù)字量輸入模塊與現(xiàn)場儀表接線問題的研究
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos