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

下載本文檔

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

文檔簡(jiǎn)介

1、V b 6.0 實(shí)現(xiàn)計(jì)算機(jī)與三菱P L C 的通信摘要:本文介紹了V B 進(jìn)行串口通信的各種基本方式和三菱可編程控制器之間的通信的程序設(shè)計(jì),重點(diǎn)介紹了利用M S C O M M .O C X 進(jìn)行串行通信的設(shè)計(jì)方法。關(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ù)采集與管理。作為工廠自動(dòng)化的三大支柱可編程控制器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)過(guò)程中,要監(jiān)視P L C 內(nèi)部的數(shù)據(jù)與運(yùn)行狀況,選用市場(chǎng)上的人機(jī)界面或組態(tài)軟件,雖然

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

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

6、i c 6.0,數(shù)據(jù)庫(kù)選用A c c e s s 97,梯形圖程序在三菱P L C 編程軟件G P P W I N 軟件環(huán)境設(shè)計(jì)。上位機(jī)軟件實(shí)現(xiàn)計(jì)算機(jī)對(duì)P L C 內(nèi)部數(shù)據(jù)讀取、寫入?yún)?shù)和保存數(shù)據(jù)到數(shù)據(jù)庫(kù)。三菱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é)束符 和校驗(yàn) 波特率9600,偶校驗(yàn),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é)束符+和檢驗(yàn)碼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ù),通過(guò)調(diào)用G e t D a t a子程序。參數(shù)設(shè)置程序可參考讀取子程序,只是改變命令而已。A c c e s s97數(shù)據(jù)庫(kù)中包含三個(gè)表單,包括參數(shù)表、記錄表、報(bào)警記錄表。通過(guò)如下子程序是將實(shí)際稱量值(記錄表更新到數(shù)據(jù)庫(kù):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)時(shí)間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āng)前稱量值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āng)前稱量值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長(zhǎng)石當(dāng)前稱量值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āng)前稱量值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純堿當(dāng)前稱量值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ù)庫(kù)記錄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變量對(duì)應(yīng)為圖二系統(tǒng)參數(shù)表單中實(shí)稱值。保存參數(shù)子程序只是對(duì)數(shù)據(jù)庫(kù)操作,程序結(jié)構(gòu)可參考以上子程序。上位機(jī)與P L C通信質(zhì)量的好壞,對(duì)系統(tǒng)的安全可靠運(yùn)行影響極大,因此,編寫程序時(shí),除了在兩者之間的通信協(xié)議上保持絕對(duì)一致

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

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

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

16、omm1.CommPort=2 選擇通信端口2MSComm1.Settings=9600,N,8,1設(shè)置端口參數(shù):傳輸速率9600,無(wú)校驗(yàn),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準(zhǔn)備向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ù)信號(hào)MSComm1. Output=js $rdh $=Mid $(rdh $,6,4檢出DO內(nèi)數(shù)據(jù)并將其轉(zhuǎn)化為十

18、進(jìn)制數(shù)rdh =Val(&H+ Trim(rdh $x =MsgBox(讀取正常,16Elsex =MsgBox(讀取數(shù)據(jù)錯(cuò)誤!,16END IfEND Sub(3將計(jì)算機(jī)時(shí)鐘值寫入PLC計(jì)數(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 $取上位機(jī)時(shí)鐘值將其轉(zhuǎn)化為PLC要求的格式wr $ = Chr $(5+01FFWW0CN25001+ xr $ + Chr $(13+ Chr $(10 準(zhǔn)備向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)點(diǎn),PLC 在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用, 如基于 PLC 的變頻監(jiān)控系統(tǒng)。在 PLC 組成的控制系統(tǒng)中,一般由上下微機(jī)組成主從式控制 系統(tǒng),PLC 作為下位機(jī),完成數(shù)據(jù)采集、狀態(tài)判別、輸出控制等,上位機(jī)(微型計(jì)算機(jī)、 工業(yè)控制機(jī))完成采集數(shù)據(jù)信息的存儲(chǔ)、分析處理、狀態(tài)顯示以及打印輸出,以實(shí)現(xiàn)對(duì)系統(tǒng) 的實(shí)時(shí)監(jiān)控。這種監(jiān)控系統(tǒng)充分利用了微型機(jī)和 PLC 各自的特點(diǎn),實(shí)現(xiàn)了優(yōu)勢(shì)互補(bǔ),得到 了廣泛的應(yīng)用。 二、通訊連接方式 在工業(yè)控制及測(cè)量領(lǐng)域較為常用的網(wǎng)絡(luò)之一就是物理層采用 RS 一 485 通信接口所組成 的工控設(shè)備網(wǎng)絡(luò)。由于 RS 一 48

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

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

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

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

26、SCII 碼:1 5H30H30H46H46H30H36H 四、通訊程序的設(shè)計(jì) 在 PLC 與上位機(jī)通信之前,必須對(duì) RS 一 485 通訊端口進(jìn)行初始化,使兩者按相同的 格式通訊。初始化參數(shù)包括波特率、起始位、數(shù)據(jù)位、停止位和奇偶校驗(yàn)等。FX2N 的 RS 一 485 通訊口一般設(shè)置為 9600bps、8 個(gè)數(shù)據(jù)位、1 個(gè)停止位、無(wú)校驗(yàn),因而只需對(duì)上位機(jī) 的 RS 一 485 端口進(jìn)行初始化即可。通訊形式由特殊數(shù)據(jù)寄存器 D8120 設(shè)定。由 D8120 設(shè) 定只在由 RS 指令驅(qū)動(dòng)時(shí)有效,因此在指令后改變 D81 20 值,此設(shè)定值不能被實(shí)際接受。 上位機(jī)的通訊程序用 VB 語(yǔ)言設(shè)計(jì):通訊:讀 PLC,TX 通訊標(biāo) 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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論