摘 要: 對(duì)CPLD" title="CPLD">CPLD在可編程邏輯控制系統(tǒng)中的可行性和應(yīng)用優(yōu)勢(shì)進(jìn)行了分析,提出了一種基于CPLD的新的可編程邏輯控制系統(tǒng)設(shè)計(jì)方法,并給出了一個(gè)設(shè)計(jì)實(shí)例。
關(guān)鍵詞: CPLD 可編程邏輯控制系統(tǒng) PLC
可編程邏輯控制器PLC" title="PLC">PLC(Programmable Logic Controller)以體積小、編程靈活、功能強(qiáng)大、使用方便等特點(diǎn)在工業(yè)自動(dòng)化領(lǐng)域得到了廣泛應(yīng)用。
目前流行的PLC普遍以微處理器芯片為核心,配以必要的存儲(chǔ)器和I/O接口,通過(guò)編寫(xiě)和運(yùn)行程序?qū)崿F(xiàn)對(duì)各種I/O信號(hào)的邏輯控制。以下將這類(lèi)PLC簡(jiǎn)稱(chēng)為程控式PLC。程控式PLC在運(yùn)行過(guò)程中,其CPU與各設(shè)備之間的信息交換、用戶程序的執(zhí)行、信號(hào)采集、控制量的輸出等操作都是按照固定的順序以循環(huán)掃描的方式進(jìn)行,每個(gè)循環(huán)都要對(duì)所有功能進(jìn)行查詢、判斷和操作。這種順序和格式不能人為改變。在一個(gè)周期內(nèi),CPU對(duì)整個(gè)用戶程序只執(zhí)行一遍。這種機(jī)制雖然方便,但實(shí)時(shí)性差。過(guò)長(zhǎng)的掃描時(shí)間,直接影響系統(tǒng)對(duì)信號(hào)響應(yīng)的效果。在保證控制功能的前提下,最大限度地縮短CPU的周期掃描時(shí)間是一個(gè)很復(fù)雜的問(wèn)題,一般只能從用戶程序執(zhí)行時(shí)間最短方面采取措施。例如,為了提高實(shí)時(shí)響應(yīng)速度,可采用中斷方式處理輸入信號(hào)。但是微處理器響應(yīng)中斷的過(guò)程也需要花費(fèi)一定的機(jī)器周期,響應(yīng)時(shí)間通常為幾十微秒至幾百微秒,如果加上中斷處理程序的執(zhí)行時(shí)間,則到最終輸出響應(yīng)信號(hào)所需的時(shí)間甚至可達(dá)幾毫秒。程控式PLC的這種響應(yīng)特性使它不能滿足實(shí)時(shí)響應(yīng)速度要求較高的應(yīng)用系統(tǒng)。
為了克服程控式PLC輸出響應(yīng)速度慢的缺點(diǎn),本文對(duì)現(xiàn)場(chǎng)可編程邏輯門(mén)陣列CPLD(Complex Programmable Logic Device)在PLC控制系統(tǒng)中的可行性和應(yīng)用優(yōu)勢(shì)進(jìn)行了分析,提出了一種新的基于CPLD的可編程邏輯控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方法。
1 CPLD在可編程邏輯控制系統(tǒng)中應(yīng)用的優(yōu)勢(shì)
CPLD具有體系結(jié)構(gòu)和邏輯單元靈活、高集成度、高速度、標(biāo)準(zhǔn)化、低成本、設(shè)計(jì)方便、可反復(fù)編程并可現(xiàn)場(chǎng)模擬調(diào)試驗(yàn)證等特點(diǎn)。這些特點(diǎn)都使CPLD適于作為可編程邏輯控制系統(tǒng)的核心控制部件。
此外,CPLD很重要的一個(gè)特點(diǎn)是在對(duì)輸入輸出信號(hào)進(jìn)行邏輯控制時(shí),不需要執(zhí)行指令和程序,不需要執(zhí)行掃描循環(huán),沒(méi)有“指令周期”概念,輸入信號(hào)僅通過(guò)CPLD芯片內(nèi)硬件邏輯門(mén)陣列的不同組合來(lái)控制輸出信號(hào),系統(tǒng)對(duì)輸入信號(hào)的響應(yīng)時(shí)間僅取決于門(mén)陣列的傳輸延時(shí)。CPLD允許使用高達(dá)數(shù)百兆赫茲的全局時(shí)鐘信號(hào)驅(qū)動(dòng),因此其響應(yīng)時(shí)間僅為數(shù)十納秒。這相對(duì)于程控式PLC來(lái)說(shuō)具有顯著的優(yōu)勢(shì)。
2 基于CPLD的可編程邏輯控制器結(jié)構(gòu)
基于CPLD的可編程邏輯控制器結(jié)構(gòu)如圖1所示。它具有與程控式PLC相同的輸入輸出電路,但控制器的核心采用CPLD芯片,用來(lái)實(shí)現(xiàn)對(duì)輸入/輸出信號(hào)的邏輯控制,取代了程控PLC中的微處理器、存儲(chǔ)器及控制程序。用戶可在電腦上方便地通過(guò)集成開(kāi)發(fā)軟件修改控制邏輯,并可隨時(shí)通過(guò)JTAG接口將修改后產(chǎn)生的編程文件(其作用相當(dāng)于程控PLC中的用戶程序)下載到CPLD芯片中。
輸入接口電路的作用主要是將各種現(xiàn)場(chǎng)輸入信號(hào)轉(zhuǎn)換為+5V邏輯信號(hào),經(jīng)過(guò)光電隔離后送給CPLD處理。
輸出接口電路的作用是將CPLD的輸出控制信號(hào)經(jīng)過(guò)光電隔離和驅(qū)動(dòng),以繼電器方式或晶體管方式提供給系統(tǒng)的執(zhí)行電路。
3 基于CPLD的可編程邏輯控制系統(tǒng)的設(shè)計(jì)方法
用CPLD設(shè)計(jì)可編程邏輯控制系統(tǒng)的內(nèi)容包括控制系統(tǒng)硬件設(shè)計(jì)和CPLD控制邏輯設(shè)計(jì)兩部分。系統(tǒng)硬件由PLC控制器、外部信號(hào)輸入電路和輸出執(zhí)行電路構(gòu)成。系統(tǒng)總體結(jié)構(gòu)與程控式PLC控制系統(tǒng)相同,僅控制器核心部分不同。CPLD控制邏輯用VHDL語(yǔ)言或邏輯原理圖實(shí)現(xiàn)程控式PLC控制系統(tǒng)中階梯圖的功能,這一工作可利用多種專(zhuān)用的集成開(kāi)發(fā)軟件完成,例如ALTERA公司的MAX+PLUS II和Quartus II、Xilinx公司的Xilinx Foundation、Lattice公司的Lattice ispEXPERT等。
用CPLD設(shè)計(jì)可編程邏輯控制系統(tǒng)的流程如圖2所示。
首先根據(jù)系統(tǒng)邏輯控制功能的需要進(jìn)行設(shè)計(jì)輸入,實(shí)現(xiàn)類(lèi)似PLC階梯圖的功能。通??刹捎脙煞N設(shè)計(jì)輸入方法,即邏輯原理圖法和VHDL語(yǔ)言編程法。邏輯原理圖法是一種圖形化的設(shè)計(jì)輸入方法,具有直觀易懂的特點(diǎn),有許多現(xiàn)成的庫(kù)元件可直接調(diào)用,用戶還可以向庫(kù)中自主加入新元件。當(dāng)設(shè)計(jì)的系統(tǒng)較為復(fù)雜時(shí),可采用層次化設(shè)計(jì),使用十分方便。VHDL語(yǔ)言編程法具有多層次描述系統(tǒng)硬件功能的能力,具有豐富的庫(kù)函數(shù)和仿真語(yǔ)句,可隨時(shí)對(duì)設(shè)計(jì)進(jìn)行仿真模擬,在設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)的功能可行性。
設(shè)計(jì)輸入完成后,立即可用集成開(kāi)發(fā)軟件的仿真功能進(jìn)行模擬仿真,查驗(yàn)設(shè)計(jì)系統(tǒng)的功能和時(shí)序,確保設(shè)計(jì)的正確性和可靠性。
設(shè)計(jì)校驗(yàn)通過(guò)后,需要將設(shè)計(jì)輸入文件編譯成針對(duì)具體CPLD芯片的編程數(shù)據(jù)文件。在編譯時(shí),還可對(duì)各I/O引腳進(jìn)行重新分配和指定。
將編譯后產(chǎn)生的編程文件下載到CPLD芯片中,就可進(jìn)行實(shí)際的現(xiàn)場(chǎng)試運(yùn)行調(diào)試了。由于控制邏輯已經(jīng)過(guò)軟件仿真,因此現(xiàn)場(chǎng)調(diào)試的工作量和調(diào)試時(shí)間都將大大減少。編程文件的下載既可采用便攜式電腦與下載電纜完成,也可通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)遠(yuǎn)程下載。
4 設(shè)計(jì)實(shí)例
下面以一個(gè)最簡(jiǎn)單的帶自保持的啟動(dòng)/停止控制為例說(shuō)明具體的設(shè)計(jì)方法。本例中,描述邏輯控制功能的階梯圖如圖3所示。
其中:x1為啟動(dòng)信號(hào),x2為停止信號(hào),y1為輸出控制信號(hào),x1、x2和y1都是高電平有效;reset為CPLD芯片的上電復(fù)位信號(hào),低電平有效。采用VHDL語(yǔ)言編程如下:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY plc IS
PORT(x1,x2,reset:IN STD_LOGIC;y1:BUFFER STD_LOGIC);
END plc;
ARCHITECTURE ladder OF plc IS
BEGIN
PROCESS(reset,x1,x2)
BEGIN
IF(reset=′0′) THEN y1<=′0′;
ELSE
y1<=(x1 OR y1)AND (NOT x2);
END IF;
END PROCESS;
END ladder;
利用MAX+PLUS II的定時(shí)仿真工具對(duì)以上程序仿真,結(jié)果如圖4所示。
本示例用VHDL語(yǔ)言初步實(shí)現(xiàn)了程控PLC中的階梯圖的邏輯控制功能。雖然本例只采用了一個(gè)簡(jiǎn)單的梯形圖,但復(fù)雜的梯形圖也完全可以通過(guò)VHDL語(yǔ)言編程實(shí)現(xiàn)。本例所采用的CPLD芯片的速度等級(jí)為10ns,由圖4可見(jiàn),從x1信號(hào)開(kāi)始有效到y(tǒng)1產(chǎn)生有效輸出信號(hào),輸出響應(yīng)時(shí)間僅為10ns,這與程控式PLC微秒級(jí)的輸出響應(yīng)時(shí)間相比具有顯著優(yōu)勢(shì)。如果采用速度等級(jí)更高的CPLD芯片,則可進(jìn)一步擴(kuò)大速度優(yōu)勢(shì)。
對(duì)CPLD在可編程邏輯控制系統(tǒng)應(yīng)用的優(yōu)勢(shì)分析與設(shè)計(jì)實(shí)例的結(jié)果表明,CPLD可以很好地應(yīng)用于可編程邏輯控制系統(tǒng)的設(shè)計(jì)中,基于CPLD的可編程邏輯控制系統(tǒng)具有響應(yīng)速度快、實(shí)時(shí)性好等優(yōu)點(diǎn),可應(yīng)用于對(duì)實(shí)時(shí)性要求很高的系統(tǒng)控制中。如果能提高設(shè)計(jì)輸入的效率,該設(shè)計(jì)方法將會(huì)得到更為廣泛的應(yīng)用。
參考文獻(xiàn)
1 杜開(kāi)初.AT89C51單片機(jī)控制的微型可編程控制器[EB/OL].http://www.qlmcu.com/,2005,12
2 李國(guó)洪,沈明山.可編程器件EDA技術(shù)與實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2004
3 林小峰,陳 斌,許光濘.一種基于工業(yè)PC的軟PLC控制系統(tǒng).微計(jì)算機(jī)信息,2005;(11)