計(jì)算機(jī)通信論文計(jì)算機(jī)算法論文基于VB通信控件MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與_第1頁
計(jì)算機(jī)通信論文計(jì)算機(jī)算法論文基于VB通信控件MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與_第2頁
計(jì)算機(jī)通信論文計(jì)算機(jī)算法論文基于VB通信控件MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與_第3頁
計(jì)算機(jī)通信論文計(jì)算機(jī)算法論文基于VB通信控件MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與_第4頁
計(jì)算機(jī)通信論文計(jì)算機(jī)算法論文基于VB通信控件MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、計(jì)算機(jī)通信論文計(jì)算機(jī)算法論文:基于VB通信控件MSComm實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC串行通信編程的研究與應(yīng)用摘要:主要闡述了如何在VB(Visual Basic)編程環(huán)境下利用MSComm通信控件實(shí)現(xiàn)計(jì)算機(jī)與歐姆龍PLC進(jìn)行串行通信的編程技術(shù)。關(guān)鍵詞:MSComm控件;串行通信0引言計(jì)算機(jī)串行通信是計(jì)算機(jī)與控制設(shè)備(PLC)進(jìn)行數(shù)據(jù)傳送的一種通信方式,也是實(shí)現(xiàn)工業(yè)自動(dòng)控制經(jīng)常用到的通信模式。每一種通信方式都嚴(yán)格約定了與其對(duì)應(yīng)的通信協(xié)議。要確保計(jì)算機(jī)與P L C之間能正常通信,就必須遵照PLC通信協(xié)議編寫通信程序。本文將圍繞如何使用VisualBasic(簡稱VB)的MSComm通信控件編寫計(jì)算機(jī)

2、與歐姆龍PLC串行通信程序進(jìn)行闡述。1串行通信串行通信在工業(yè)系統(tǒng)控制的范疇中一直占據(jù)著極其重要的地位,串行端口(RS-232)是計(jì)算機(jī)上的標(biāo)準(zhǔn)配置,常用于連接調(diào)制解調(diào)器來傳輸數(shù)據(jù),在計(jì)算機(jī)的硬件設(shè)備管理器中可以看到,定義為COM1、COM2等。常用的串行通信方式有兩種,分別是RS-232和RS-485,本文以RS-232方式為例進(jìn)行介紹。2 VB集成開發(fā)環(huán)境中MSComm通信控件的使用與設(shè)置2.1 Visual Basic集成開發(fā)環(huán)境V B采用了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。它的基本思路是把復(fù)雜的程序設(shè)計(jì)問題分解為一個(gè)個(gè)能夠完成獨(dú)立功能的相對(duì)簡單的對(duì)象集合,所謂“對(duì)象”就是一個(gè)可操作的實(shí)體,如窗體、

3、窗體中的命令按鈕、標(biāo)簽、文本框等。面向?qū)ο蟮木幊叹秃孟翊罘e木一樣,程序員可根據(jù)程序和界面設(shè)計(jì)要求,直接在屏幕上“畫"出窗口、菜單、按鈕等不同類型的對(duì)象,并為每個(gè)對(duì)象設(shè)置屬性。2.2串行通信控件MSComm的使用和設(shè)置VB提供了支持串行通信的可編程組件MSComm,用戶只需要將其加載到應(yīng)用程序中,對(duì)其進(jìn)行簡單的屬性設(shè)置即“可使用?,F(xiàn)將控件的加載及屬性設(shè)置方法進(jìn)行介紹。將MSComm控件加載到應(yīng)用程序中在VB集成開發(fā)環(huán)境(IDE)中選擇“工程”選項(xiàng)卡中的“部件”子菜單進(jìn)入控件選擇頁面。在控件選擇頁面中選上Microsoft Comm Cotrol 6.0控件加載項(xiàng),單擊“確定”按鈕完成M

4、SComm控件的加載。當(dāng)完成MSComm控件的加載后,在IDE中的常規(guī)控件欄即可看到MSComm控件,此時(shí)就可使用此控件了。 MSComm控件屬性設(shè)置當(dāng)應(yīng)用程序成功添加MSComm控件后,就可在其屬性設(shè)置頁面完成其屬性的設(shè)置,如圖4所示。在一般的串行通信應(yīng)用程序中只需要對(duì)MSComm控件的如下幾個(gè)屬性進(jìn)行設(shè)置。CommPort:通信程序使用的串口序號(hào),根據(jù)計(jì)算機(jī)的串口硬件配置進(jìn)行選擇,可以為1、2等。Settings:屬性設(shè)置字符串,屬性有:波特率、奇偶校驗(yàn)、字節(jié)數(shù)據(jù)位數(shù)、字節(jié)停止位數(shù)??梢詾?600、e、7、2。也可在程序中動(dòng)態(tài)設(shè)置,屬性設(shè)置程序代碼如下:“9600,e,7,2”3 PLC通

5、信數(shù)據(jù)幀介紹計(jì)算機(jī)與P L C通信時(shí),按應(yīng)答方式進(jìn)行。由計(jì)算機(jī)發(fā)給PLC一組ASCII碼字符數(shù)據(jù),這一組數(shù)據(jù)成為命令幀。P L C對(duì)收到的命令幀進(jìn)行校驗(yàn),并將校驗(yàn)結(jié)果返回給計(jì)算機(jī),P L C返回給計(jì)算機(jī)的這一組數(shù)據(jù)稱為響應(yīng)幀,只有當(dāng)校驗(yàn)正確時(shí)P L C才按照命令執(zhí)行。計(jì)算機(jī)和P L C通信時(shí),PLC是被動(dòng)的,必須先由計(jì)算機(jī)給PLC發(fā)出命令幀,PLC再給計(jì)算機(jī)發(fā)出響應(yīng)幀,每幀最多由1 3 1個(gè)字符組成。下面將命令幀與響應(yīng)幀的組成結(jié)構(gòu)介紹如下:3.1命令幀幀結(jié)構(gòu)解析:在起始處必須放置;節(jié)點(diǎn)號(hào):有效值為0031,表示PC機(jī)最多可同32臺(tái)PLC通信;頭代碼:PLC的命令代碼;發(fā)送文本:P C機(jī)發(fā)送的命

6、令參數(shù);FCS(Frame Check Sequence):幀檢查順序代碼(幀校驗(yàn)碼);幀校驗(yàn)碼是2位(Bit)十六進(jìn)制數(shù)。它是由幀數(shù)據(jù)包含的所有字符的ASCII碼進(jìn)行位異或運(yùn)算的結(jié)果。終止符:“*”號(hào)和回車符“CR”。 3.2響應(yīng)幀幀結(jié)構(gòu)解析:返回命令頭;節(jié)點(diǎn)號(hào):有效值為0031,返回?cái)?shù)據(jù)的PLC節(jié)點(diǎn)號(hào)頭代碼:PLC的命令代碼;尾代碼:返回命令完成狀態(tài)碼;接收文本:在有數(shù)據(jù)時(shí)返回的數(shù)據(jù);FCS:幀檢查順序代碼;終止符:“*”號(hào)和回車符“CR”。 3.3 FCS(幀數(shù)據(jù)冗余校驗(yàn)碼)的計(jì)算為了降低串行通信的誤碼率,在接收和發(fā)送端都必須對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),常用的方法是進(jìn)行F C S校驗(yàn)。對(duì)幀數(shù)據(jù)進(jìn)行冗

7、余校驗(yàn)計(jì)算時(shí),應(yīng)對(duì)幀數(shù)據(jù)中各個(gè)字符的ASCII碼進(jìn)行位異或運(yùn)算,然后將結(jié)果轉(zhuǎn)為2位十六進(jìn)制字符。4計(jì)算機(jī)與PLC串行通信程序?qū)嵗?.1通信主程序的設(shè)計(jì)架構(gòu)設(shè)計(jì)通信主程序的主要功能是:實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC的運(yùn)行控制和狀態(tài)監(jiān)視,即構(gòu)成一個(gè)閉環(huán)監(jiān)控系統(tǒng)。4.2打開串行通信端口打開通信端口,對(duì)端口進(jìn)行初始化設(shè)置,程序設(shè)計(jì)流程。4.3寫PLC數(shù)據(jù)將計(jì)算機(jī)發(fā)出的命令寫入PLC,實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC的控制功能。程序設(shè)計(jì)流程4.4讀PLC數(shù)據(jù)。從PLC中讀取數(shù)據(jù),監(jiān)視PLC的運(yùn)行狀態(tài),程序設(shè)計(jì)流程。例1打開通信端口程序源代碼“9600,E,7,2”End If例2寫PLC函數(shù)程序源代碼Public Sub MyW

8、rite(MyAddress As String,MyValueAs String)Dim a,tmpstr As StringDim i2 As IntegerCRLF="*"+Chr(13)Dim word As Stringword="00WD"a=word&MyAddress&MyValuea=a&fcs(a)&CRLFi2=0DoDoEventsi2=i2+1If i2<10000 ThenElseMsgBox"傳輸錯(cuò)誤!"End IfEnd IfEnd Sub附錄C讀PLC內(nèi)存函數(shù)程序

9、源代碼Public Sub MyRead(MyAddress As String,MyBiteAs String,MyBit As Integer,MyFunction As String)Dim a,tmpstr As StringDim i2 As IntegerDim word As StringCRLF="*"+Chr(13)word="00RD"a=word&MyAddress&MyBitea=a&fcs(a)&CRLFai2=0DoDoEventsi2=i2+1If i2<10000 ThenIf MyF

10、unction="zt1"ThenGlobal_SYSTEMSTATE1=tmpstrEnd IfIf MyFunction="zt2"ThenGlobal_SYSTEMSTATE2=tmpstrEnd IffrmMain.Text3="PLC通訊正常"Elsetim=tim+1If Mid(tmpstr,8,4)<>"8888"ThenfrmMain.Text3="PLC通訊失敗"End IfEnd IfEnd IfEnd Sub附錄D FCS函數(shù)程序源代碼Function fcs

11、(ByVal inputstr As String)As StringDim slen,i,xorresult As IntegerDim tempfes As Stringslen=Len(inputstr)xorresult=0For i=1 To slenxorresult=xorresult Xor Asc(Mid$(inputstr,i,1)Next itempfes=Hex$(xorresult)If Len(tempfes)=1 Then tempfes="0"+tempfesfcs=tempfesEnd Function參考文獻(xiàn)1徐德,孫同景,陳桂友.可編程序控制器(PLC)應(yīng)用技術(shù)M.山東:山東科學(xué)技術(shù)出版社,2005,32皮壯行等編著.可編程序控制器的系統(tǒng)設(shè)計(jì)與應(yīng)用實(shí)例M.北京:機(jī)械工業(yè)出版社,2000,113Microsoft Corpora

溫馨提示

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

評(píng)論

0/150

提交評(píng)論