基于VB的上位機與PLC的串行通信(共6頁)_第1頁
基于VB的上位機與PLC的串行通信(共6頁)_第2頁
基于VB的上位機與PLC的串行通信(共6頁)_第3頁
基于VB的上位機與PLC的串行通信(共6頁)_第4頁
基于VB的上位機與PLC的串行通信(共6頁)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上1  引言在現(xiàn)代控制系統(tǒng)中,pc機作為上位機負責系統(tǒng)管理、狀態(tài)監(jiān)控、信息處理和打印報表等工作,plc作為下位機進行面向現(xiàn)場的實時控制已成為一種典型的系統(tǒng)結(jié)構(gòu)。因此,pc機與plc之間的通信問題便成了系統(tǒng)能否實現(xiàn)的關(guān)鍵。串行通信以其接線簡單、容易實現(xiàn)的特點得到了廣泛的應用。visual basic編程軟件簡單易學、功能強大,利用它可以很方便的實現(xiàn)pc機與plc間的串行通訊。本文以omron公司的cpm2a plc為例,介紹了利用vb6.0實現(xiàn)pc機與plc串行通訊的具體方法。omron公司的cpm2a plc支持host-link通信協(xié)議,可以與上位

2、計算機進行通信。使用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所示,計算機作為上位機,plc作為下位機,因omron cpm2a本身帶有rs-232串口,因此,利用rs-232電纜將其與pc機的串口(com1或com2)相連,便構(gòu)成了一個1:1的簡單的通訊系統(tǒng)1。 圖1  系統(tǒng)結(jié)構(gòu)2.2 host-link通信協(xié)議2omron公司的host-link通信系統(tǒng)是由上位計算機(ibm pc或兼容機)通過安裝在各臺plc上的host-l

3、ink單元連接多臺plc構(gòu)成的網(wǎng)絡(luò)。上位機對系統(tǒng)中的plc進行集中管理與監(jiān)控,通過與host link單元的通信,可以編輯或修改各臺plc的程序,實時監(jiān)控其運行過程,實現(xiàn)自動化系統(tǒng)的集散控制。對于小型plc,也可以通過其rs 232c通信端口進行鏈接。系統(tǒng)使用host-link通信協(xié)議進行通信,上位機具有傳送優(yōu)先權(quán),總是首先發(fā)出命令并啟動通信,host link單元收到命令交由plc執(zhí)行,然后將執(zhí)行結(jié)果返回上位機,二者以通信幀為單位,輪流交換數(shù)據(jù)。通信時一組傳送的數(shù)據(jù)稱為“塊”,它是命令或響應的單位,從上位機發(fā)送到host -link單元的數(shù)據(jù)塊稱為命令塊,反過來,從host- link單元發(fā)

4、送到上位機的數(shù)據(jù)塊稱為響應塊。多點通信時,可作為單幀發(fā)送的最大數(shù)據(jù)塊為131個字符,因此當一個數(shù)據(jù)塊含有132個或更多字符時,要分成兩幀或多幀發(fā)送。每個數(shù)據(jù)塊都以設(shè)備號及標題開始,以校驗碼(fcs)及結(jié)束符結(jié)束。響應塊中還包括反應執(zhí)行結(jié)果的響應碼。通信格式如圖2所示。圖2  通信幀格式 3  軟件實現(xiàn)3.1 mscomm控件介紹3mscomm控件全稱為microsoft communications control,是microsoft公司提供的簡化windows下串行通信編程的activex控件,它為應用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡化方

5、法。mscomm控件有兩種通信方式,查詢方式和事件驅(qū)動方式,本文采用事件驅(qū)動方式。mscomm控件的屬性有許多,其中一些需要在編程時設(shè)置,另一些則取默認值即可,具體設(shè)置方法可參見相關(guān)資料,表1列出了mscomm控件的常用屬性。3.2 plc參數(shù)設(shè)置4plc的通信參數(shù)可以采用默認的host-link通信形式,即1位啟動位,7位字長,偶校驗,2位停止位,9600bit/s。設(shè)備號為00。3.3 上位機軟件設(shè)計使用vb通信控件mscomm編寫plc監(jiān)控程序,通過rs-232端口發(fā)送并接收數(shù)據(jù),關(guān)鍵代碼如下:程序初始化并設(shè)置串口參數(shù)private sub form_load()mp

6、ort = 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)閉,則打開它ifmscom.portopen = false thenmscom.portopen = trueend ifplc必須處于編程狀態(tài)才可以寫入數(shù)據(jù)plcend="00sc00" “”為“開始符”表示數(shù)據(jù)幀

7、開始;“sc”為host-link指令;“00”表示下位plc的設(shè)備地址,ascii碼表示4。mscom.output = plcend + fcs(plcend) + "*" + chr$(13)mscom.inbuffercount = 0dim outstring as stringoutstring="00wr0010"+ trim(txtcontent.text)outstring = outstring + fcs(outstring) + "*" + chr$(13) 采用異或校驗,即fcs校驗;“*+ chr$(13)

8、”表示結(jié)束符,表示數(shù)據(jù)幀的結(jié)束,即“*”4。mscom.inbuffercount = 0mscom.output = outstring 向plc發(fā)送數(shù)據(jù)end sub從plc讀取數(shù)據(jù)private sub butread_click()if mscom.portopen = false thenmscom.portopen = trueend ifdim outstring, instring as stringoutstring="00rr"outstring=outstring+fcs(outstring) + "*"+chr$(13)mscom

9、.inbuffercount = 0mscom.output=outstring 向plc發(fā)送讀取數(shù)據(jù)的命令dim i as integerdo while mscom.inbuffercoun-t <= 14 or i > 9000 i為等待的時間 i = i + 1loop 提取有用數(shù)據(jù)并顯示if i < 9000 then instring = mscom.input txtcontent.text = "輸出010通道的數(shù)據(jù)為" + mid(instring, 8, 4)elsemsgbox ("讀取失敗")end ifend

10、subfcs校驗function fcs(byval fcsstr as string) as stringdim slen, i, xorresult as integerdim tempfcs as stringslen = len(fcsstr)xorresult = 0for i = 1 to slenxorresult = xorresult xor asc(mid$(fcsstr, i, 1)next itempfcs = hex$(xorresult)if len(tempfcs) = 1 then tempfcs = "0" + tempfcs fcs = tempfcsen

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論