一、引言
隨著工業(yè)生產(chǎn)自動化水平的不斷加快,對控制系統(tǒng)提出了愈來愈嚴(yán)格的要求。隨著大規(guī)模集成電路廣泛應(yīng)用,控制系統(tǒng)本身也得到長足發(fā)展,已由原來的分立元件、繼電器控制,發(fā)展成為大規(guī)模集成電路的微機(jī)控制??刂品绞揭灿稍瓉淼姆稚⒖刂瓢l(fā)展為集中控制。正是在這種發(fā)展的需求下,可編程控制器應(yīng)運(yùn)而生。由于可編程控制器(PLC)具有體積小、抗干擾能力強(qiáng)、組態(tài)靈活等優(yōu)點(diǎn),因而在工業(yè)控制系統(tǒng)中得到非常廣泛的應(yīng)用。
在電纜自動生產(chǎn)線檢測控制系統(tǒng)中,可編程控制器主要用作下位機(jī),檢測各狀態(tài)點(diǎn)的狀態(tài),直接控制系統(tǒng)的啟、停和其他控制單元的投切,并將各點(diǎn)的狀態(tài)送給上位機(jī)――計算機(jī),計算機(jī)綜合可編程控制器和其他設(shè)設(shè)備的數(shù)據(jù),作出相應(yīng)的處理和顯示。關(guān)于整個系統(tǒng)的設(shè)計與實(shí)現(xiàn)另文介紹,本文主要介紹該系統(tǒng)中用作下位機(jī)的可編程控制器的作用、與計算機(jī)的通訊及程序設(shè)計方法。
二、可編程控制器的性能特點(diǎn)
用于控制系統(tǒng)中的可編程控制器是以循環(huán)掃描的方式工作,它不斷讀取輸入點(diǎn)的狀態(tài),然后按照既定的控制方式進(jìn)行邏輯運(yùn)算,將結(jié)果從輸出端送出,從而達(dá)到控制的目的。它是由工業(yè)專用微型計算機(jī)、輸入/ 輸出繼電器、保護(hù)及抗干擾隔離電路等組成的微機(jī)控制裝置,具有順序、周期性工作的特性。由于它具有可編程的功能,且其基本輸入/輸出點(diǎn)全部使用開關(guān)量,因而完全可以替代繼電器控制系統(tǒng)和由分立元件構(gòu)成的控制系統(tǒng)。從應(yīng)用角度來看,可編程控制器具有如下特點(diǎn):
1、可靠性高:可編程控制器的輸入/ 輸出端口均采用繼電器或光耦合器件,即基本輸入/ 輸出點(diǎn)均為開關(guān)量,同時附加有隔離和抗干擾措施,使其具有很高的抗干擾能力,因而能在比較惡劣的環(huán)境下可靠工作。
2、體積小:在制造時采用了大規(guī)模集成電路和微處理器,用軟件編程替代了硬連線,達(dá)到了小型化,便于安裝。
3、通用性好:可編程控制器采用了模式化結(jié)構(gòu),一般有CPU模塊、電源模塊、通訊模塊、PID模塊、模擬輸入/ 輸出模塊等。用這些模塊可以靈活地組成各種不同的控制系統(tǒng)。對不同的控制系統(tǒng),只需選取不同的模塊設(shè)計相應(yīng)的程序即可。
4、使用方便、靈活:對于不同的控制系統(tǒng),當(dāng)控制對象及輸入/ 輸出硬件結(jié)構(gòu)選定后,若要改變控制方式或?qū)刂茖ο笞饕恍└膭?,只需修改相?yīng)程序即可,無須對系統(tǒng)連線作較大的修改。從而減少了現(xiàn)場調(diào)試的工作量,提高了工作效率。
三、用作下位機(jī)的可編程控制器
由于可編程控制器具有上述特點(diǎn),因而在檢測和控制系統(tǒng)中得到廣泛應(yīng)用。但因其專用性太強(qiáng)以及受輸入/ 輸出節(jié)點(diǎn)數(shù)的限制,在由可編程控制器構(gòu)成的系統(tǒng)中,可編程控制器主要用來完成組合邏輯與時序邏輯的輸入/ 輸出控制。另外,由于可編程控制器無法以比較靈活的方式顯示當(dāng)前各個輸入/ 輸出點(diǎn)的狀態(tài),不能以多種方式提供整個系統(tǒng)的運(yùn)行情況,因而,在用可編程控制器構(gòu)成比較大的檢測控制系統(tǒng)時,一般用可編程控制器完成信號的采集和控制,比較復(fù)雜的數(shù)據(jù)處理、圖形顯示、人機(jī)界面等由計算機(jī)來完成。
在電纜自動生產(chǎn)線檢控系統(tǒng)中,可編程控制器作為下位機(jī)用來控制各種電機(jī)、風(fēng)機(jī)的啟、停,調(diào)速器的投切,讀取各控制點(diǎn)的狀態(tài),然后將各點(diǎn)的狀態(tài)輸入到上位機(jī)――計算機(jī)。計算機(jī)處理可編程控制器和其他設(shè)備的信息,以圖表的方式顯示,使操作者對生產(chǎn)線的工作狀態(tài)一目了然。計算機(jī)和可編程控制器的硬件連接及可編程控制器與各控制端、狀態(tài)點(diǎn)的連接如圖1所示。
圖1 可編程控制器接線示意圖
圖1中,輸入到可編程控制器的檢測點(diǎn)可分為按鍵類和光電開關(guān)類。按鍵類主要有:啟動、停止、幫助、診斷、查詢、復(fù)位按鍵等。光電開關(guān)類主要有:張力輪位置、張力桿位置、左右托位置、左右盤位置、抓勾位置、左右防護(hù)位置、排線位置、排架位置、光電開關(guān)等??删幊炭刂破鞯妮敵鲇脕砜刂蒲h(huán)水、退火水、吹干風(fēng)機(jī)及各種電機(jī)的啟停等。
可編程控制器不斷讀取輸入端,按既定的控制方式對輸入端的狀態(tài)進(jìn)行邏輯運(yùn)算,然后將運(yùn)算結(jié)果經(jīng)輸出端輸出(即進(jìn)行控制),從而保證生產(chǎn)線的可靠、連續(xù)運(yùn)行,同時將本系統(tǒng)的狀態(tài)按某種協(xié)議反映給上位機(jī),上位機(jī)處理可編程控制器和其它設(shè)備的信息,作出響應(yīng),并以圖表的方式顯示,使操作者能隨時掌握生產(chǎn)線的工作狀態(tài),以便在需要時進(jìn)行調(diào)試。
四、通訊連接及程序設(shè)計
上位機(jī)和下位機(jī)進(jìn)行數(shù)據(jù)交換的方式有很多,如網(wǎng)絡(luò)方式、485方式、RS232方式等。由于在電纜生產(chǎn)線中,上、下位機(jī)之間距離較近,因而我們選用了RS232方式,其硬件連接如圖2所示。
圖2 可編程控制器與計算機(jī)連接示意圖
圖2是我們使用三菱公司的FX2可編程控制器與計算機(jī)的連接方法。可編程控制器端使用了FX - 232ADP串行通訊模塊,即可編程控制器與計算機(jī)之間以RS232方式進(jìn)行數(shù)據(jù)交換。當(dāng)可編程控制器與計算機(jī)的距離比較遠(yuǎn)時,也可以485方式進(jìn)行數(shù)據(jù)交換,只要在計算機(jī)中插一個485接口板,并將可編程控制器的ADP - 232模塊換成485模塊即可。
1、可編程控制器通訊程序設(shè)計
在可編程控制器與計算機(jī)通訊之前,必須設(shè)置相互認(rèn)可的參數(shù),這些參數(shù)有:波特率、停止位和奇偶校驗(yàn)位等。可編程控制器通訊參數(shù)通過寄存器D8120的位組合方式來選擇,其各位定義如下:
b0 數(shù)據(jù)長度:= 0 ,7位; = 1, 8位
b2b1 校驗(yàn): = 00,無校驗(yàn); = 01,奇校驗(yàn); = 10, 偶校驗(yàn)
b3 停止位: = 0, 1位; = 1, 2位
b7b6b5b4 波特率;
= 0011, 300 bps; = 0100, 600 bps;
= 0101, 1200 bps; = 0110, 2400 bps;
= 0111, 4800 bps; = 1000, 9600 bps;
= 1001, 19200 bps;
可編程控制器通訊適配器FX - 232ADP的命令為Ram ò n,其中S設(shè)定了傳送數(shù)據(jù)的緩沖區(qū)首址,m為從首地址開始的第m個順序單元,D為接收數(shù)據(jù)的緩沖區(qū)首址,n為接收數(shù)據(jù)的n個順序單元??删幊炭刂破魍瓿梢淮蝹魉偷某绦蛄鞒倘鐖D3 所示。
圖3 可編程控制器發(fā)送數(shù)據(jù)流程
M8000是當(dāng)PLC運(yùn)行時,處于接通狀態(tài)的特殊輔助繼電器。
可編程控制器是以循環(huán)掃描的方式工作(如圖4 (b)所示),即按順序反復(fù)地執(zhí)行一條一條指令。如圖4(b)所示,IN為一組輸入指令,即一組將接點(diǎn)狀態(tài)讀入可編程控制器的指令,MEM為一組記錄接點(diǎn)狀態(tài)的指令,CAL為若干條完成控制所需的計算、處理指令,OUT為執(zhí)行控制和一組輸出指令,TRN為若干條向串行口發(fā)送數(shù)據(jù)的指令,依次反復(fù)執(zhí)行IN、MEN、CAL、OUT、TRN,從而完成控制和數(shù)據(jù)交換的任務(wù)。由此可見,可編程控制器從串行口送出的數(shù)據(jù)是一個分段連續(xù)的數(shù)據(jù)流,如圖4 (a)所示。
(a) 可編程控制器發(fā)送的數(shù)據(jù)流
(b) 可編程控制的工作流程
圖4
圖中Dn(n=1, 2……N)為連續(xù)從串行口輸出的N個數(shù)據(jù),在TRN之外的時間里串行口并不工作。這樣,當(dāng)計算機(jī)在接收可編程控制器的數(shù)據(jù)時,就需作如下考慮:
1) 首先應(yīng)找到數(shù)據(jù)流的首部,因?yàn)橛嬎銠C(jī)對可編程控制器的訪問具有很大的隨機(jī)性,當(dāng)計算機(jī)在讀串行口時,有可能讀到的是數(shù)據(jù)流中的任何一個數(shù)據(jù),因而,只有找到數(shù)據(jù)流的首部,然后讀到的數(shù)據(jù)才是正確的、完整的數(shù)據(jù)。
2) 計算機(jī)讀串行口時,應(yīng)有足夠的等待時間,如果計算機(jī)讀串行口時,恰好讀到的是數(shù)據(jù)2(D2),由于本次讀到的數(shù)據(jù)不是完整的,因此計算機(jī)大約需要等可編程控制器的一個掃描周期才能讀到一組完整的數(shù)據(jù)。
2、計算機(jī)通訊程序設(shè)計
在設(shè)計電纜自動生產(chǎn)線檢測控制系統(tǒng)時,我們已明確了可編程控制器向計算機(jī)發(fā)哪些數(shù)據(jù),即計算機(jī)讀可編程控制器數(shù)據(jù)的個數(shù)M已知,因此可以用該數(shù)據(jù)個數(shù)M來判斷所讀數(shù)據(jù)是否完整。初始化串行口就是將可編程 控制器和計算機(jī)串行口的波特率、停止位、校驗(yàn)位、數(shù)據(jù)位等設(shè)置為相同。為了使計算機(jī)能夠準(zhǔn)確找到數(shù)據(jù)流的首部,我們根據(jù)該數(shù)據(jù)流的特點(diǎn)和可能出現(xiàn)的情況,定義了03FFFF為數(shù)據(jù)流的首部,即可編程控制器發(fā)送的第一個數(shù)據(jù)為03,第二個數(shù)據(jù)為FF,第三個數(shù)據(jù)為FF,然后依次發(fā)送可編程控制器的數(shù)據(jù)。計算機(jī)讀取數(shù)據(jù)時,首先檢查讀到的是不是03,如果是03,再讀下一個數(shù)據(jù)并檢查是否為FF,若是,再讀下一個數(shù)據(jù)并檢查是不是FF,若是,則認(rèn)為讀到了數(shù)據(jù)流的首部,接著讀取數(shù)據(jù),如果上述任意一項檢查不符,則認(rèn)為沒有讀到數(shù)據(jù)流的首部,再重復(fù)上述檢查,直至讀到數(shù)據(jù)流的首部為止。這樣既保證了數(shù)據(jù)交換的正確性,也保證了數(shù)據(jù)交換的完整性。
綜上所述,我們在分析了可編程控制器的工作流程、串行口工作方式和系統(tǒng)工作情況的基礎(chǔ)上,設(shè)計了數(shù)據(jù)流的首標(biāo)志,設(shè)定了傳送數(shù)據(jù)的個數(shù),以此來判斷計算機(jī)所讀取數(shù)據(jù)的位置及數(shù)據(jù)的完整性,并以這種方式設(shè)計了通訊程序,實(shí)際證明效果良好。
五、結(jié)論
本文簡要介紹了可編程控制器的性能、特點(diǎn),在電纜自動生產(chǎn)線中將可編程控制器與計算機(jī)以RS - 232的方式連接,并設(shè)計了相應(yīng)程序。按照這種連接和設(shè)計,我們完成了計算機(jī)與可編程控制器的通訊,實(shí)現(xiàn)了電纜生產(chǎn)線的檢測控制系統(tǒng),實(shí)際運(yùn)行良好。