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