技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > PC機(jī)和PLC在交通燈監(jiān)控系統(tǒng)中的通訊實(shí)現(xiàn)

PC機(jī)和PLC在交通燈監(jiān)控系統(tǒng)中的通訊實(shí)現(xiàn)

時(shí)間:2008-05-14 15:33:00來源:dujing

導(dǎo)語:?本文介紹了VB和PLC通訊的實(shí)現(xiàn)過程。該系統(tǒng)以裝有VB的PC機(jī)作為上位機(jī),PLC作為下位機(jī)
摘要:本文介紹了VB和PLC通訊的實(shí)現(xiàn)過程。該系統(tǒng)以裝有VB的PC機(jī)作為上位機(jī),PLC作為下位機(jī)。利用VB中的MSComm控件, PLC的自由口模式創(chuàng)建用戶定義的協(xié)議,通過PC/PPI電纜連接PC機(jī)和PLC,實(shí)現(xiàn)上位機(jī)和下位機(jī)的串口通訊。并給出了該方法在十字路口交通燈實(shí)時(shí)監(jiān)控系統(tǒng)中的具體應(yīng)用。 關(guān)鍵詞:VB PLC 監(jiān)控系統(tǒng) 交通燈 Abstract: This paper introduces the system of communication between VB and PLC. The system takes PC machine of VB as main-machine, PLC as submitted-machine. The system uses MSComm control components of VB, the free communication port of PLC by user defining protocol, links PC machine and PLC by PC/PPI cable, achieves the serial communication between the main-machine and the submitted-machine. And gives concrete application in the real time testing and controlling system of traffic lights in crossroad. Key words: VB PLC monitor system traffic lights 1. 引言 隨著經(jīng)濟(jì)發(fā)展,汽車數(shù)量急劇增加,城市道路日漸擁擠,交通擁塞已成為一個(gè)國際性的問題。因此,設(shè)計(jì)可靠、安全、便捷的多功能交通燈控制系統(tǒng)有極大的現(xiàn)實(shí)必要性。通常情況下,交通信號(hào)燈控制的主要缺陷是交通信號(hào)燈控制系統(tǒng)缺乏有效的應(yīng)急措施,導(dǎo)致十字路交通受阻,造成不必要的經(jīng)濟(jì)損失。為此,我們考慮設(shè)計(jì)十字路口的監(jiān)控系統(tǒng)。以便方便、快速的對(duì)交通燈控制。Siemens公司生產(chǎn)的PLC由于價(jià)格低、適應(yīng)工業(yè)現(xiàn)場以及強(qiáng)大聯(lián)網(wǎng)功能特點(diǎn)被廣泛使用??紤]到這些因素,本系統(tǒng)以PLC作為下位機(jī)。上位機(jī)可以采用VC++、VB、Delphi等高級(jí)語言,由于本系統(tǒng)實(shí)現(xiàn)的功能相對(duì)簡單,涉及的數(shù)據(jù)處理和數(shù)據(jù)管理要求不是太高,因此考慮用價(jià)格便宜,通訊容易實(shí)現(xiàn)的VB作為上位機(jī)。 2. 系統(tǒng)構(gòu)成 [align=center] 圖1 系統(tǒng)構(gòu)成[/align] 系統(tǒng)構(gòu)成如圖1 監(jiān)控系統(tǒng)主要由計(jì)算機(jī)和PLC構(gòu)成。用PC/PPI電纜連接計(jì)算機(jī)的RS-232口和PLC的RS-485口,作為數(shù)據(jù)轉(zhuǎn)換器(使用PC/PPI電纜上的DIP開關(guān)來為電纜配置正確的波特率)。 本系統(tǒng)選用的計(jì)算機(jī)處理器型號(hào)是Pentium (R) 4 CPU; 有40G的硬盤空間;選用Microsoft windows XP 操作系統(tǒng);有一個(gè)COM口。 Siemens 公司提供多種型號(hào)的CPU以適應(yīng)各種應(yīng)用。本系統(tǒng)選用的是Siemens 公司生產(chǎn)的CPU224型號(hào)的S7-200PLC, 它有一個(gè)RS-485口, 14個(gè)輸入口,10個(gè)輸出口,完全可以滿足該系統(tǒng)的要求(該系統(tǒng)需要8個(gè)輸出口)。 3. 操作流程及通訊原理 3.1 操作流程 a 在SETP7-Micro/WIN軟件的操作欄中點(diǎn)擊system block 圖標(biāo),出現(xiàn)圖2所示的界面。 [align=center] 圖2 配置S7-200CPU[/align] b 為PLC選擇站地址、波特率。 c 在操作欄中點(diǎn)擊communications 圖標(biāo),出現(xiàn)圖3所示的界面。 [align=center] 圖3配置S7-200CPU[/align] d 在所示的界面3上點(diǎn)擊右邊欄的“雙擊刷新”按鈕,以便搜尋正確的波特率。 e 將程序下載至PLC。 f 將 PLC處于RUN模式。 g 打開VB界面,點(diǎn)擊菜單的“運(yùn)行”選項(xiàng),出現(xiàn)圖4的所示的監(jiān)控界面,在監(jiān)控界面中輸入需要傳輸?shù)臄?shù)據(jù)。 h 單擊圖4的監(jiān)控界面上的開始按鈕,通訊開始。 3.2 通訊原理 當(dāng)程序開始時(shí),初始化VB界面,打開通信端口,當(dāng)按下VB界面上的開始按鈕時(shí),啟動(dòng)定時(shí)器,用于采集通信數(shù)據(jù),該定時(shí)器每隔0.1s采集一次通信數(shù)據(jù);同時(shí)接收和發(fā)送函數(shù)也已經(jīng)打開,這時(shí)可以在VB界面中輸入南北、東西交通燈的運(yùn)行時(shí)間。即在VB中輸入數(shù)據(jù)傳送給PLC。 [align=center] 圖4 監(jiān)控界面[/align] PLC程序開始時(shí),初始化PLC的通訊端口,接收VB發(fā)送過來的數(shù)據(jù),PLC判斷是否接收到結(jié)束字符,如果沒有接收到結(jié)束字符,PLC將處于接收狀態(tài),如果接收到結(jié)束字符,PLC延時(shí)0.01s后開始向VB發(fā)送數(shù)據(jù)。如果由于任何其它原因接收完成,啟動(dòng)一個(gè)新的接收。 VB接收PLC發(fā)送過來的數(shù)據(jù)“1”或“0”來控制交通燈的“亮”或“滅”,同時(shí)控制對(duì)應(yīng)車的“運(yùn)行”或“停止”。 當(dāng)沒有按下停止或結(jié)束按鈕時(shí),VB每隔0.1s發(fā)送一次數(shù)據(jù)給PLC, PLC接收到數(shù)據(jù)后,如果滿足發(fā)送條件,就把數(shù)據(jù)發(fā)送給VB。這樣就達(dá)到了計(jì)算機(jī)上的模擬界面來監(jiān)控實(shí)際路面交通的運(yùn)行狀況,如果遇到緊急事件,需要調(diào)整車輛的運(yùn)行時(shí)間,只需要在計(jì)算機(jī)中輸入需要的時(shí)間即可。 3. 4. VB中的MSComm控件簡介 4.1在Windows環(huán)境下,操作系統(tǒng)通過驅(qū)動(dòng)程序控制各種硬件資源,不允許用戶像在DOS 環(huán)境下那樣直接對(duì)串口進(jìn)行底層操作。為此,Visual Basic 6.0提供了一個(gè)串口通訊控件 Miscrosoft Comm Control,簡 稱MSComm 控件。操作員只需設(shè)置和監(jiān)視MSComm控件的屬性和事件,就可以輕而易舉地實(shí)現(xiàn)串行通信。 4.2 MSComm控件的屬性 .CommPort: 設(shè)置并返回通信端口號(hào)。 .Settings: 以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)位、數(shù)據(jù)位和停止位。其中以字符n、o、e分別表示無校驗(yàn)、奇校驗(yàn)和偶校驗(yàn)。 .PortOpen: 設(shè)置并返回通信端口狀態(tài)。設(shè)置為True時(shí),打開端口;設(shè)置為False時(shí),關(guān)閉端口。 .Input: 從接收緩沖區(qū)讀取數(shù)據(jù),類型為Variant。 .Output: 向發(fā)送緩沖區(qū)寫入數(shù)據(jù),類型為字符串或字節(jié)數(shù)組。 .InputMode: 設(shè)置從緩沖區(qū)讀取數(shù)據(jù)的格式,設(shè)為0時(shí)為字符串格;設(shè)為1為二進(jìn)制格式。 .InBufferCount: 設(shè)置和返回接收緩沖區(qū)的字節(jié)數(shù),設(shè)為0時(shí)清空接收緩沖區(qū)。 .OutBufferCount: 設(shè)置和返回發(fā)送緩沖區(qū)的字節(jié)數(shù),設(shè)為0時(shí)清空發(fā)送緩沖區(qū)。 .Inputlen: 設(shè)置和返回Input每次讀出的字節(jié)數(shù),設(shè)為0時(shí)讀出接收緩沖區(qū)的全部內(nèi)容。 .Rthreshold: 表示在串口事件OnComm發(fā)生之前,接收緩沖區(qū)接收的最少字節(jié)數(shù)。若設(shè)為0,可以禁止發(fā)生OnComm事件。一般設(shè)為1,即當(dāng)接收緩沖區(qū)中的字節(jié)數(shù)大于等于1時(shí),就會(huì)產(chǎn)生接收事件。 CommEvent: 返回相應(yīng)的Oncomm事件常數(shù)。 4.3 MSComm控件處理接收信息的方式 MSComm控件提供了兩種處理方式: (1)事件驅(qū)動(dòng)方式:Rthreshold 屬性非0時(shí),收到字符或傳輸線發(fā)生變化時(shí)就會(huì)產(chǎn)生串口事件OnComm。通過查詢CommEvent屬性可以捕獲并處理這些通信事件。 (2)查詢方式:通過查詢InputBufferCount(接收緩沖區(qū)的字節(jié)數(shù))屬性值, 處理接收到的信息。 本文采用事件驅(qū)動(dòng)方式 5. 方案的具體實(shí)現(xiàn) 5.1程序設(shè)計(jì) [align=center] 圖5 VB監(jiān)控系統(tǒng)原理[/align] 5.1.1 VB發(fā)送數(shù)據(jù)給PLC MSComm1.Output = Text2.Text & Text3.Text &Text4.Text & Text5.Text & Chr(10) ‘利用MSComm控件向PLC發(fā)送數(shù)據(jù) (文本框內(nèi)分別為控制交通燈南北直行、南北彎行、東西直行、東西彎行的時(shí)間) 說明:由于PLC識(shí)別從VB發(fā)送過來的ASCII碼,所以這些文本框內(nèi)為經(jīng)過運(yùn)算的, PLC的識(shí)別的ASCII碼。這里用 p = Val(txt1.Text) Text2.Text = Chr((p - 3) * 10)等語句。 5.1.2 VB接收PLC發(fā)送過來的數(shù)據(jù) Private Sub MSComm1_OnComm() If MSComm1.CommEvent = comEvReceive Then ‘如果接收到字符 S1 = MSComm1.Input ‘把接收緩沖區(qū)內(nèi)的數(shù)據(jù)賦值給臨時(shí)變量"S1" If (S1 = Chr(&H1B)) And (Len(SCOMS) > 2) Then ‘如果變量"S1"(接收緩沖區(qū)內(nèi)的數(shù)據(jù)接收到起始字符‘&H1B‘,并且變量"SCOMS"中的字節(jié)數(shù)大于2),則 SCOMS = "" 清空變量"SCOMS"中的數(shù)據(jù) Else ‘否則 If S1 <> Chr(&HD) Then ‘如果變量"S1"沒有接收到結(jié)束字符‘&H0D‘,則 SCOMS = SCOMS&S1 ‘將"S1"中的數(shù)據(jù)累加到"SCOMS"中 Else ‘否則 …… ‘?dāng)?shù)據(jù)處理 End sub ‘ 結(jié)束 Text5.text=MSComm1.input xt5.T ‘ text5.Text為存放PLC發(fā)送過來的數(shù)據(jù) End Sub 5.2下位機(jī)程序設(shè)計(jì) 5.2.1 PLC 接收VB發(fā)過來的數(shù)據(jù) (PLC接收緩沖區(qū)的分配如圖5) RCV VB100, 0 [align=center] 圖6 PLC 的接收緩沖區(qū)的數(shù)據(jù)分配[/align] 5.2.2 PLC向VB發(fā)送數(shù)據(jù)(PLC發(fā)送緩沖區(qū)的分配如圖6) MOVB 8, VB400 //設(shè)置發(fā)送字節(jié)個(gè)數(shù)為8,發(fā)送緩沖區(qū)為VB400 MOVB 16#1B, VB401 //設(shè)置發(fā)送信息的起始字符為"16#1B" MOVB 16#0D, VB408 //設(shè)置發(fā)送信息的結(jié)束字符為"16#0D", MOVB ‘1‘, VB402 NOT MOVB ‘0‘, VB402 //若Q0.0有輸出,VB402為"1",否則為"0" XMT VB400, 0 //在端口0向用戶回送信息,發(fā)送緩沖區(qū)指向VB400 [align=center] 圖7 PLC的發(fā)送緩沖區(qū)的數(shù)據(jù)分配[/align] 6. 結(jié)論 通過VB實(shí)現(xiàn)與PLC通訊。使PLC的工作納入微型計(jì)算機(jī)的管理之下。經(jīng)試驗(yàn)驗(yàn)證,編制的VB程序在Microsoft windows XP系統(tǒng)下和PLC之間通訊運(yùn)行良好、無誤碼,能有效的解決十字路口交通的運(yùn)行狀況。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:高壓變頻器在電廠風(fēng)機(jī)節(jié)能中...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)