vb6.0實現(xiàn)pc與三菱plc通訊的幾個例子_第1頁
vb6.0實現(xiàn)pc與三菱plc通訊的幾個例子_第2頁
vb6.0實現(xiàn)pc與三菱plc通訊的幾個例子_第3頁
vb6.0實現(xiàn)pc與三菱plc通訊的幾個例子_第4頁
vb6.0實現(xiàn)pc與三菱plc通訊的幾個例子_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、V b 6.0 實現(xiàn)計算機與三菱P L C 的通信摘要:本文介紹了V B 進行串口通信的各種基本方式和三菱可編程控制器之間的通信的程序設(shè)計,重點介紹了利用M S C O M M .O C X 進行串行通信的設(shè)計方法。關(guān)鍵詞:串行通信, P L C , V i s u a l B a s i c 6.0A b s t r a c t : D e s c r i b e s a l l k i n d s o f b a s i c s e r i a l p o r t c o m m u n i c a t i o n m e t h o d s u s i n g V i s u a lB

2、a s i c 6.0 a n d d e s i g n o f f r e e p o r t c o m m u n i c a t i o n p r o g r a m o f M I T S U B I S H P LC , f u r t h e r m o r e s e t f o c u s o n t h e d e s i g n i n g m e t h o d o f s e r i a l p o r t c o m m u n i c a t i o n t h r o u g h d y n a m i c l i n k e d l i b r a r y

3、 i n V i s u a l B a s i c 6.0K e y W o r d s : S e r i a l p o r t c o m m u n i c a t i o n , P L C , V i s u a l B a s i c 6.0一、引言在工業(yè)生產(chǎn)中,人們常常面臨著數(shù)據(jù)采集與管理。作為工廠自動化的三大支柱可編程控制器P L C (P r o g r a m m a b l e L o g i c C o n t r o l l e r ,由于其安全可靠,廣泛的用于數(shù)據(jù)采集與控制。生產(chǎn)過程中,要監(jiān)視P L C 內(nèi)部的數(shù)據(jù)與運行狀況,選用市場上的人機界面或組態(tài)軟件,雖然

4、功能豐富,但大都價格昂貴,在一些中小規(guī)模的生產(chǎn)場合,人們希望能自己用高級語言開發(fā)一個簡易實用的通信程序。微軟公司推出的V i s u a l B a s i c 6.0,開發(fā)串行通信程序時,有兩種方法,一種是用W i n d o w s A P I 函數(shù),另一種是用V B 支持的通信控件M S C O M M .O C X 。利用W i n d o w s A P I 函數(shù)是通過調(diào)用讀寫等函數(shù)來操作串口。兩種比較,使用M S C O M M .O C X 控件編程方便,具有更完善的發(fā)送和接收功能。這里采用了M S C O M M .O C X 控件。本文根據(jù)杭州某包裝材料公司原料配料控制系統(tǒng)為

5、背景,簡述實現(xiàn)計算機與三菱F X 系列P L C 通信的實現(xiàn)過程。二、硬件與選型日本三菱公司是國際著名的工廠自動化設(shè)備制造商,工業(yè)可編程控制器在國內(nèi)市場占有率一直保持前列。項目選用三菱F X 2N -64M R 型P L C ,S C -09電纜作為計算機與P L C 通信的連線。連接電纜的9針端連接在計算機串口上,另一端連接在P L C 的R S -422編程口。系統(tǒng)框圖如圖一所示: 計算機 三菱 P L C 圖一三、軟件編程軟件設(shè)計主要包括P L C 梯形圖設(shè)計和計算機V B 程序、數(shù)據(jù)庫設(shè)計。計算機操作系統(tǒng)為W i n d o w s 98,編程語言用V i s u a l B a s

6、i c 6.0,數(shù)據(jù)庫選用A c c e s s 97,梯形圖程序在三菱P L C 編程軟件G P P W I N 軟件環(huán)境設(shè)計。上位機軟件實現(xiàn)計算機對P L C 內(nèi)部數(shù)據(jù)讀取、寫入?yún)?shù)和保存數(shù)據(jù)到數(shù)據(jù)庫。三菱F X 2N 型P L C 編程口通信協(xié)議如下:命令命令字 控制元件 備注 讀元件 0 X ,Y ,M ,S ,T ,C ,D 讀字/位元件狀態(tài)寫元件 1X,Y,M,S,T,C,D寫字/位元件狀態(tài)置位 7X,Y,M,S,T,C位元件置位復(fù)位 8X,Y,M,S,T,C位元件復(fù)位通信格式:起始符 命令字 首地址 數(shù)據(jù)區(qū) 結(jié)束符 和校驗 波特率9600,偶校驗,8位數(shù)據(jù)位,一位停止位。在新建工

7、程的表單上添加M S C O M M.O C X控件,初始化程序:P r i v a t e S u b F o r m_L o a d(M S C o m m1.C o m m P o r t=1選擇C O M1口M S C o m m1.S e t t i n g s=9600,e,7,1E n d S u b 系統(tǒng)參數(shù)主畫面如下圖所示:圖二數(shù)據(jù)讀取子程序:P u b l i c F u n c t i o n G e t D a t a(B y V a l S t a r t A d d r e s s A s S t r i n g,B y V a l G e t B y t e s

8、A s I n t e g e r, B y V a l H e x_B y t e s A s S t r i n gA s S t r i n gM S C o m m1.I n p u t L e n=G e t B y t e s*2+4M S C o m m1.O u t p u t = S T X + C M D_R e a d + S t a r t A d d r e s s + H e x_B y t e s + E T X + G e t S u m C h k(C M D_R e a d+S t a r t A d d r e s s+H e x_B y t e s+E

9、T X傳送數(shù)據(jù)組成:起始符+命令+首地址+數(shù)據(jù)位+結(jié)束符+和檢驗碼G e t D a t a=M S C o m m1.I n p u tM S C o m m1.I n B u f f e r C o u n t=0M S C o m m1.I n p u t L e n=0E n dF u n c t i o n如需讀取數(shù)據(jù),通過調(diào)用G e t D a t a子程序。參數(shù)設(shè)置程序可參考讀取子程序,只是改變命令而已。A c c e s s97數(shù)據(jù)庫中包含三個表單,包括參數(shù)表、記錄表、報警記錄表。通過如下子程序是將實際稱量值(記錄表更新到數(shù)據(jù)庫:P r i v a t e S u b S a

10、v e D a t a(D i m i A s I n t e g e rD i m v a l i d A s B o o l e a nO n E r r o r R e s u m e N e x tv a l i d=T r u eD a t a1.R e c o r d s e t.A d d N e wD a t a1.R e c o r d s e t.F i e l d s(d t i m e=T i m e S e r i a l(O n H o u r,O n M i n u t e,O n S e c o n dD a t a1.R e c o r d s e t.F i

11、 e l d s(s y s t i m e=T i m e系統(tǒng)時間D a t a1.R e c o r d s e t.F i e l d s(g e t_x l=L F(1小料當前稱量值D a t a1.R e c o r d s e t.F i e l d s(g e t_f j s=L F(2方解石當前稱量值D a t a1.R e c o r d s e t.F i e l d s(g e t_c s=L F(3長石當前稱量值D a t a1.R e c o r d s e t.F i e l d s(g e t_s y s=L F(4石英砂當前稱量值D a t a1.R e c o

12、 r d s e t.F i e l d s(g e t_c j=L F(5純堿當前稱量值O n E r r o r R e s u m e N e x tD a t a1.R e c o r d s e t.U p d a t e更新數(shù)據(jù)庫記錄D a t a1.R e c o r d s e t.M o v e P r e v i o u sE n d S u b程序中,L F(i變量對應(yīng)為圖二系統(tǒng)參數(shù)表單中實稱值。保存參數(shù)子程序只是對數(shù)據(jù)庫操作,程序結(jié)構(gòu)可參考以上子程序。上位機與P L C通信質(zhì)量的好壞,對系統(tǒng)的安全可靠運行影響極大,因此,編寫程序時,除了在兩者之間的通信協(xié)議上保持絕對一致

13、和采取相應(yīng)的容錯技術(shù)外,還要考慮系統(tǒng)的整體容錯技術(shù),防止系統(tǒng)的不正常。四、結(jié)束語串行通信是目前計算機與其他設(shè)備之間通信廣泛采用的方式之一,傳送數(shù)據(jù)準確,程序穩(wěn)定運行是系統(tǒng)開發(fā)的主要目的。本設(shè)計中充分利用計算機和P L C的資源,在幾乎不增加設(shè)備開支的情況下成功的實現(xiàn)上位機與P L C之間的通信。參考文獻1、美國 M i c r o s o f t V i s a l B a s i c6.0C o n t r o l s r e f e r e n c e控件參考手冊2、舒繼武V i s u a l B a s i c中通信及應(yīng)用微型機與應(yīng)用,1996;3、陳小歐W i n d o w s環(huán)境

14、下串口異步通信程序設(shè)計電子技術(shù)應(yīng)用由于Visual Basic6.0具有可視化,支持面向?qū)ο蟮某绦蛟O(shè)計,具有結(jié)構(gòu)化的事件驅(qū)動編程模式,編程效率高等優(yōu)點,所以我們VB6.0提供串口通信控件MSComm來進行通信編程。在VB6.0的開發(fā)環(huán)境中MSComm控件可直接從VB的T oolBox中加入窗體Form,即可用其進行通信。MSComm控件有很多重要屬性,其中最主要的有: Comm Port:設(shè)置并返回通信端口號。 Settings:設(shè)置串口的通信參數(shù),以字符串的形式設(shè)置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位。 PortOpen:設(shè)置并返回通信端口的狀態(tài),并強行打開和關(guān)閉端口。 Input:從接收

15、緩沖區(qū)讀取數(shù)據(jù)。 Output:向輸出緩沖區(qū)寫入數(shù)據(jù)。 InBufferCount:接收緩沖區(qū)中的字節(jié)數(shù)。 InputLen:設(shè)置并返回Input每次讀出的字節(jié)數(shù)。MSComm控件同時支持事件驅(qū)動及查詢方法,在本系統(tǒng)中,我們采用查詢通信方式,通過檢查InBufferCount屬性值來判斷輸入緩沖區(qū)中是否接收到相應(yīng)的數(shù)目字符。PLC通信模塊設(shè)置為波特率:9600,數(shù)據(jù)位:8,停止位:1,可以在線寫;不進行字符的奇偶檢驗和報文的和校驗。以下是計算機讀取1#站PLC數(shù)據(jù)寄存器DO的內(nèi)容和將計算機時鐘值寫入PLC計數(shù)器C250中的程序。(1窗口加載程序Private Sub Form-Load(MSC

16、omm1.CommPort=2 選擇通信端口2MSComm1.Settings=9600,N,8,1設(shè)置端口參數(shù):傳輸速率9600,無校驗,8位數(shù)據(jù),1位停止位END Sub(2讀取1#站PLC數(shù)據(jù)寄存器DO的內(nèi)容指令序列代碼格式為:ENQ 01 FF WR 0D000 01 CR LFPrivate Sub CommandRead-Click(If MSComm1. PortOpen=False ThenMSComm1. PortOpen=True打開串行端口END IfMSComm1. Inputlen=0串行數(shù)據(jù)接收緩沖區(qū)初始化rd $=Chr $(5+01FFWR0D000001+ C

17、hr $(13+ Chr $(10準備向PLC發(fā)送的讀取數(shù)據(jù)命令字符串MSComm1. Output=rd $向PLC發(fā)送該字符串Dummy=DOEvents=(Loop Until MSComm1. InBufferCount=9rdh $= MSComm1. Input讀取接收緩沖區(qū)數(shù)據(jù)pd $=Mid $(rdh $,1,5取PLC應(yīng)答字符串的前5位If pd $=chr $(2+01FFThen判斷讀取是否正確js $ =chr $(06+01FF向PLC發(fā)送已正確接收數(shù)據(jù)信號MSComm1. Output=js $rdh $=Mid $(rdh $,6,4檢出DO內(nèi)數(shù)據(jù)并將其轉(zhuǎn)化為十

18、進制數(shù)rdh =Val(&H+ Trim(rdh $x =MsgBox(讀取正常,16Elsex =MsgBox(讀取數(shù)據(jù)錯誤!,16END IfEND Sub(3將計算機時鐘值寫入PLC計數(shù)器C250中指令序列代碼格式為:ENQ 01 FF WW 0CN250 01 CR LFPrivate Sub CommandWrite-Click(If MSComm1. PortOpen=False ThenMSComm1. PortOpen=True打開串行口END If MSComm1. In putLen=0串行數(shù)據(jù)接收緩沖區(qū)初始化szt $ =Trim(str(Int(Timer/60xr $

19、 =Trim(Str(Val(Space(4-Len(szt $+ Hex(Val(szt $取上位機時鐘值將其轉(zhuǎn)化為PLC要求的格式wr $ = Chr $(5+01FFWW0CN25001+ xr $ + Chr $(13+ Chr $(10 準備向PLC發(fā)送的寫入數(shù)據(jù)命令字符串MSComm1. Output = wr $向PLC發(fā)送該命令字符串DO 等待接收PLC回答的字符串Dummy = DO Events = (Loop Until MSComm1. InBufferCount=5fh $ = MSComm1. Input 讀取接收緩沖區(qū)數(shù)據(jù)jc $ = Mid $(fh $,1,5

20、 取PLC應(yīng)答字符串的前5位If jc $ = chr $(6+01FFThen 判斷寫入是否正確x = MsgBox(寫入正常!,16Elsex = MsgBox(沒有正確寫入!,16END IfEND Sub(4通信關(guān)閉程序Private Sub CommandClose-Click(If MSComm1. PortOpen = True ThenMSComm1. PortOpen = False 關(guān)閉串行端口x = MsgBox (關(guān)閉通信!,16END SubGenerated by Foxit PDF Creator Foxit Software For evaluation onl

21、y. 一、引言 由于體積小、可靠性高以及組態(tài)靈活等優(yōu)點,PLC 在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用, 如基于 PLC 的變頻監(jiān)控系統(tǒng)。在 PLC 組成的控制系統(tǒng)中,一般由上下微機組成主從式控制 系統(tǒng),PLC 作為下位機,完成數(shù)據(jù)采集、狀態(tài)判別、輸出控制等,上位機(微型計算機、 工業(yè)控制機)完成采集數(shù)據(jù)信息的存儲、分析處理、狀態(tài)顯示以及打印輸出,以實現(xiàn)對系統(tǒng) 的實時監(jiān)控。這種監(jiān)控系統(tǒng)充分利用了微型機和 PLC 各自的特點,實現(xiàn)了優(yōu)勢互補,得到 了廣泛的應(yīng)用。 二、通訊連接方式 在工業(yè)控制及測量領(lǐng)域較為常用的網(wǎng)絡(luò)之一就是物理層采用 RS 一 485 通信接口所組成 的工控設(shè)備網(wǎng)絡(luò)。由于 RS 一 48

22、5 具有物理連接方便、抗干擾能力強、傳輸距離遠等特點, 采用這種通信接口可以十分方便地將許多設(shè)備組成一個控制網(wǎng)絡(luò)。 PLC 與上位機一般采用 RS 一 485 接口的串行方式。FX2N 是三菱公司推出的一種新型 的小型 PLC,該 PLC 有許多優(yōu)點,其中一個主要的特點就是在 CPU 單元上,增加了一個外 置的 RS 一 485 的 FXZN 一 485 一 BD 通 j 承板,可以很方便地和外部設(shè)備進行串行通訊。 1、在用雙絞線場合下,將 330 歐 14 千瓦終端電阻接與端子 SDA 與 SDB 和 RDA 與 RDB 問。 2、在用單絞線,將“0 歐 12 千瓦終端電阻接與端子 RDA

23、與 RDB 間。 三、通信協(xié)議及格式 網(wǎng)絡(luò)能有序安全運行的一個很重要原因,就是它遵循一定的規(guī)范,就是說,信息在網(wǎng)絡(luò) 中的傳遞同人在街上行走一樣, 也要用規(guī)則來約束和規(guī)范的。 網(wǎng)絡(luò)里的這個規(guī)則就是通訊協(xié) 議。換句話說,通訊協(xié)議是網(wǎng)絡(luò)社會中信息在網(wǎng)絡(luò)的計算機之間、網(wǎng)絡(luò)設(shè)備之間及其相互之 間。通行。的交通規(guī)則。 在不同類型的網(wǎng)絡(luò)中,應(yīng)用的網(wǎng)絡(luò)通訊協(xié)議也是不一樣的。雖然這些協(xié)議各不相同,各 有優(yōu)缺點,但是所有協(xié)議的基本功能或者目的都是一樣的,即保證網(wǎng)絡(luò)上信息能暢通無阻、 準確無誤地被傳輸?shù)侥康牡亍?通訊協(xié)議也規(guī)定信息交流的方式,信息在哪條通道間交流,什么時間交流,交流什么信 息,信息怎樣交流,這就是網(wǎng)

24、絡(luò)中通訊協(xié)議的幾個基本內(nèi)容。 通訊格式: 例如:要讀出站號為 0 的 Fx2n 系列 PLC 的 X00 到 X08 共 9 點的狀態(tài)值,延時 100ms, 假設(shè)采用 Communication Format(D81 20)的 Formatl 方式: 注 釋 : 請 求 站 號 PLC 號 命 令 延 時 元 件 首 地 址 元 件 數(shù) 量 和 效 驗 代 碼 : ENQOOFFBRAX00000942 ASCII 碼: 05H30H30H46H46H42H52H41H58H30H30H30H30H30H35H34H32H 您 只 要 將 以 上 蘭 色 部 分 的 代 碼 以 字 符 串 形

25、 式 ( VB 中 可 以 表 示 為 CHR ( 5 ) &”00FFBRA00000942。 )發(fā)送到 PLC,就會有正確的回應(yīng)信息,如下: 注釋:頭站號 PLC 號元件首地址尾和效驗代碼:S1OOFF001 1 01 1 01 EXT05 ASCII 碼: 02H30H30H46H46H30H30H31H31 H30H31 H31 H30H31 H03H30H35H. 若發(fā)送碼有誤,則有以下回應(yīng): 注釋:頭站號 PLC 號和效驗代碼:NAKOOFF06 Generated by Foxit PDF Creator Foxit Software For evaluation only. A

26、SCII 碼:1 5H30H30H46H46H30H36H 四、通訊程序的設(shè)計 在 PLC 與上位機通信之前,必須對 RS 一 485 通訊端口進行初始化,使兩者按相同的 格式通訊。初始化參數(shù)包括波特率、起始位、數(shù)據(jù)位、停止位和奇偶校驗等。FX2N 的 RS 一 485 通訊口一般設(shè)置為 9600bps、8 個數(shù)據(jù)位、1 個停止位、無校驗,因而只需對上位機 的 RS 一 485 端口進行初始化即可。通訊形式由特殊數(shù)據(jù)寄存器 D8120 設(shè)定。由 D8120 設(shè) 定只在由 RS 指令驅(qū)動時有效,因此在指令后改變 D81 20 值,此設(shè)定值不能被實際接受。 上位機的通訊程序用 VB 語言設(shè)計:通訊:讀 PLC,TX 通訊標 txbz(1)=1 Ifplcszl=Then MSComml.0utBufferCount=O MSComml.InBufferCount=0 MSComml.Output=Chr$(5)+”01“+”FFWROD01 0009“+Chr$13)+Chr$(1 0) t=timeG

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論