一,、引言
隨著工業(yè)生產(chǎn)自動化水平的不斷加快,,對控制系統(tǒng)提出了愈來愈嚴(yán)格的要求。隨著大規(guī)模集成電路廣泛應(yīng)用,,控制系統(tǒng)本身也得到長足發(fā)展,,已由原來的分立元件、繼電器控制,,發(fā)展成為大規(guī)模集成電路的微機(jī)控制,。控制方式也由原來的分散控制發(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ī),計(jì)算機(jī)綜合可編程控制器和其他設(shè)設(shè)備的數(shù)據(jù),,作出相應(yīng)的處理和顯示,。關(guān)于整個系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)另文介紹,本文主要介紹該系統(tǒng)中用作下位機(jī)的可編程控制器的作用,、與計(jì)算機(jī)的通訊及程序設(shè)計(jì)方法,。
二、可編程控制器的性能特點(diǎn)
用于控制系統(tǒng)中的可編程控制器是以循環(huán)掃描的方式工作,,它不斷讀取輸入點(diǎn)的狀態(tài),,然后按照既定的控制方式進(jìn)行邏輯運(yùn)算,將結(jié)果從輸出端送出,,從而達(dá)到控制的目的,。它是由工業(yè)專用微型計(jì)算機(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è)計(jì)相應(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ì)算機(jī)來完成,。
在電纜自動生產(chǎn)線檢控系統(tǒng)中,可編程控制器作為下位機(jī)用來控制各種電機(jī),、風(fēng)機(jī)的啟,、停,調(diào)速器的投切,,讀取各控制點(diǎn)的狀態(tài),,然后將各點(diǎn)的狀態(tài)輸入到上位機(jī)——計(jì)算機(jī)。計(jì)算機(jī)處理可編程控制器和其他設(shè)備的信息,,以圖表的方式顯示,,使操作者對生產(chǎn)線的工作狀態(tài)一目了然。計(jì)算機(jī)和可編程控制器的硬件連接及可編程控制器與各控制端,、狀態(tài)點(diǎn)的連接如圖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ī)進(jìn)行數(shù)據(jù)交換的方式有很多,,如網(wǎng)絡(luò)方式、485方式,、RS232方式等,。由于在電纜生產(chǎn)線中,上,、下位機(jī)之間距離較近,,因而我們選用了RS232方式,,其硬件連接如圖2所示,。

圖2是我們使用三菱公司的FX2可編程控制器與計(jì)算機(jī)的連接方法??删幊炭刂破鞫耸褂昧薋X - 232ADP串行通訊模塊,,即可編程控制器與計(jì)算機(jī)之間以RS232方式進(jìn)行數(shù)據(jù)交換。當(dāng)可編程控制器與計(jì)算機(jī)的距離比較遠(yuǎn)時,,也可以485方式進(jìn)行數(shù)據(jù)交換,,只要在計(jì)算機(jī)中插一個485接口板,并將可編程控制器的ADP - 232模塊換成485模塊即可,。
1,、可編程控制器通訊程序設(shè)計(jì)
在可編程控制器與計(jì)算機(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個順序單元,。可編程控制器完成一次傳送的程序流程如圖3 所示,。

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為若干條完成控制所需的計(jì)算、處理指令,,OUT為執(zhí)行控制和一組輸出指令,,TRN為若干條向串行口發(fā)送數(shù)據(jù)的指令,依次反復(fù)執(zhí)行IN,、MEN,、CAL、OUT,、TRN,,從而完成控制和數(shù)據(jù)交換的任務(wù)。由此可見,,可編程控制器從串行口送出的數(shù)據(jù)是一個分段連續(xù)的數(shù)據(jù)流,,如圖4 (a)所示。


圖中Dn(n=1, 2……N)為連續(xù)從串行口輸出的N個數(shù)據(jù),,在TRN之外的時間里串行口并不工作,。這樣,當(dāng)計(jì)算機(jī)在接收可編程控制器的數(shù)據(jù)時,,就需作如下考慮:
1) 首先應(yīng)找到數(shù)據(jù)流的首部,,因?yàn)橛?jì)算機(jī)對可編程控制器的訪問具有很大的隨機(jī)性,當(dāng)計(jì)算機(jī)在讀串行口時,,有可能讀到的是數(shù)據(jù)流中的任何一個數(shù)據(jù),,因而,只有找到數(shù)據(jù)流的首部,,然后讀到的數(shù)據(jù)才是正確的,、完整的數(shù)據(jù)。
2) 計(jì)算機(jī)讀串行口時,,應(yīng)有足夠的等待時間,,如果計(jì)算機(jī)讀串行口時,,恰好讀到的是數(shù)據(jù)2(D2),,由于本次讀到的數(shù)據(jù)不是完整的,因此計(jì)算機(jī)大約需要等可編程控制器的一個掃描周期才能讀到一組完整的數(shù)據(jù),。
2,、計(jì)算機(jī)通訊程序設(shè)計(jì)
在設(shè)計(jì)電纜自動生產(chǎn)線檢測控制系統(tǒng)時,我們已明確了可編程控制器向計(jì)算機(jī)發(fā)哪些數(shù)據(jù),,即計(jì)算機(jī)讀可編程控制器數(shù)據(jù)的個數(shù)M已知,,因此可以用該數(shù)據(jù)個數(shù)M來判斷所讀數(shù)據(jù)是否完整。初始化串行口就是將可編程 控制器和計(jì)算機(jī)串行口的波特率,、停止位,、校驗(yàn)位,、數(shù)據(jù)位等設(shè)置為相同。為了使計(jì)算機(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ì)算機(jī)讀取數(shù)據(jù)時,,首先檢查讀到的是不是03,如果是03,,再讀下一個數(shù)據(jù)并檢查是否為FF,,若是,再讀下一個數(shù)據(jù)并檢查是不是FF,,若是,,則認(rèn)為讀到了數(shù)據(jù)流的首部,接著讀取數(shù)據(jù),,如果上述任意一項(xiàng)檢查不符,,則認(rèn)為沒有讀到數(shù)據(jù)流的首部,再重復(fù)上述檢查,,直至讀到數(shù)據(jù)流的首部為止,。這樣既保證了數(shù)據(jù)交換的正確性,也保證了數(shù)據(jù)交換的完整性,。
綜上所述,,我們在分析了可編程控制器的工作流程、串行口工作方式和系統(tǒng)工作情況的基礎(chǔ)上,,設(shè)計(jì)了數(shù)據(jù)流的首標(biāo)志,,設(shè)定了傳送數(shù)據(jù)的個數(shù),以此來判斷計(jì)算機(jī)所讀取數(shù)據(jù)的位置及數(shù)據(jù)的完整性,,并以這種方式設(shè)計(jì)了通訊程序,,實(shí)際證明效果良好。
五,、結(jié)論
本文簡要介紹了可編程控制器的性能,、特點(diǎn),在電纜自動生產(chǎn)線中將可編程控制器與計(jì)算機(jī)以RS - 232的方式連接,,并設(shè)計(jì)了相應(yīng)程序,。按照這種連接和設(shè)計(jì),我們完成了計(jì)算機(jī)與可編程控制器的通訊,,實(shí)現(xiàn)了電纜生產(chǎn)線的檢測控制系統(tǒng),,實(shí)際運(yùn)行良好,。