崔 巍,吳愛國
(天津大學(xué)電氣與自動化工程學(xué)院,天津 300072)
近年來,隨著計算機(jī)技術(shù)和電子技術(shù)的不斷進(jìn)步和完善,通用數(shù)字控制器作為工業(yè)自動化控制類產(chǎn)品,已經(jīng)被越來越多的產(chǎn)業(yè)領(lǐng)域接受,并已達(dá)到一個令人矚目的市場規(guī)模。在航空航天、大型裝備制造、電子信息等高新領(lǐng)域中,對控制器的快速性、穩(wěn)定性、抗干擾性、精度、速度等指標(biāo)提出了更高的要求,對超高速工業(yè)控制器的需求越來越強(qiáng)烈[1]。國內(nèi)具有自主知識產(chǎn)權(quán)的工業(yè)控制器近年來取得了一定進(jìn)展,但總體水平仍落后于國外技術(shù)先進(jìn)的國家,主要體現(xiàn)在:控制器難以運(yùn)用于超高速應(yīng)用場合,抗干擾性和穩(wěn)定性較差,由于控制器軟硬件體系結(jié)構(gòu)設(shè)計不合理,導(dǎo)致控制周期大于超高速應(yīng)用的要求,抗干擾性和穩(wěn)定性不好,最終的控制效果較差。因此,開發(fā)一款具備自主知識產(chǎn)權(quán),能夠通用于各種控制系統(tǒng)的超高速、低成本、高可靠性的可與上位機(jī)共同組成控制系統(tǒng)及能夠直接與傳感器和執(zhí)行機(jī)構(gòu)信號匹配的超高速工業(yè)控制器具有重要的意義。
FPGA作為主控芯片最突出的特點是超高速、并行性,同時具有速度快、成本低、通用性好、穩(wěn)定性高、可靠性好、現(xiàn)場可編程與擴(kuò)展能力強(qiáng)等優(yōu)點[2]。因此文中設(shè)計出一種基于FPGA的超高速工業(yè)控制器,用它完成工業(yè)控制系統(tǒng)的模擬量、開關(guān)量的高速采集與控制,并可在上位機(jī)通過RS-422(半/全雙工RS-485)和RS-232總線對該控制器實現(xiàn)高速監(jiān)控。同時,控制器可根據(jù)上位機(jī)的設(shè)定實現(xiàn)工業(yè)現(xiàn)場8個雙閉環(huán)PID或單閉環(huán)PID自動控制方案,整個控制周期低于0.3 ms,同時又可實現(xiàn)模擬量的手動輸出或波形輸出控制。最后,通過實驗驗證,使用文中所設(shè)計的控制器并結(jié)合雙閉環(huán)/單閉環(huán)PID控制方案能夠保證工業(yè)控制系統(tǒng)的模擬量超高速采集與控制,實現(xiàn)高速、理想的控制效果。
為了完成工業(yè)控制系統(tǒng)的模擬量、開關(guān)量的高速采集與控制,與工業(yè)現(xiàn)場包含的各類設(shè)備交互,所設(shè)計的基于FPGA的超高速工業(yè)控制器應(yīng)具有相應(yīng)接口:(1)為與上位計算機(jī)通信,控制器應(yīng)具有RS-422(半/全雙工RS-485)和RS-232總線接口;(2)為采集工業(yè)現(xiàn)場各種模擬式傳感器如位移傳感器、流量傳感器、壓力傳感器、溫度傳感器等模擬量信號,控制器應(yīng)具有16路4~20 mA/0~10 V模擬量輸入AI的A/D轉(zhuǎn)換接口;(3)為控制工業(yè)現(xiàn)場的各種執(zhí)行器行程、調(diào)節(jié)閥開度而與常用設(shè)備的驅(qū)動模塊(交直流電機(jī)、伺服閥、溢流閥、換向閥的驅(qū)動器)連接,從而連續(xù)調(diào)節(jié)現(xiàn)場被控物理量,控制器應(yīng)具有8路-10~10 V模擬量輸出AO的D/A轉(zhuǎn)換接口;(4)為讀取工業(yè)現(xiàn)場的各種開關(guān)量輸入設(shè)備狀態(tài)和直接驅(qū)動生產(chǎn)中各種電磁閥的通斷,控制器應(yīng)具有16路開關(guān)量24 V輸入DI信號的接口和8路開關(guān)量觸點輸出信號DO的接口。
如圖1所示,該控制器僅使用FPGA作為主控核心,F(xiàn)PGA的并行性保證了處理的超高速性??刂破魇褂盟膶覨PGA核心板+調(diào)理板的結(jié)構(gòu),F(xiàn)PGA核心板和調(diào)理板由相互獨立的電源供電。該控制器的硬件功能單元主要包括16路模擬量輸入A/D轉(zhuǎn)換單元,8路模擬量輸出D/A轉(zhuǎn)換單元,16路開關(guān)量輸入信號隔離與調(diào)理單元,8路開關(guān)量輸出信號隔離與驅(qū)動單元和總線通信單元??刂破魃洗篷詈凸怦畹母綦x設(shè)計,使得工業(yè)現(xiàn)場的所有信號與FPGA核心主板不存在所有電氣上的連接,僅保留邏輯聯(lián)系,極大地增強(qiáng)了FPGA超高速工業(yè)控制器的硬件抗干擾性能。該控制器是真正的工業(yè)級超高速控制器,在硬件上所有芯片的選型都保證是工業(yè)級芯片且力求集成度高、處理速度快。
圖1 基于FPGA的超高速工業(yè)控制器硬件框圖
2.1主控芯片F(xiàn)PGA
FPGA超高速工業(yè)控制器的FPGA核心主控制單元選用的是Cyclone Ⅲ系列FPGA[3]中的EP3C16E144I7,該型號的FPGA具有比較豐富的內(nèi)部資源:15 408個LE(邏輯單元),85個用戶可使用I/O口,516 096位的內(nèi)部存儲器資源,112個內(nèi)嵌9位×9位乘法器,4個PLL(鎖相環(huán)),20個全局時鐘。同時該型號FPGA的速度等級是7,溫度等級是-20~85 ℃,相比于速度等級是8的一般型號的FPGA,主頻可以跑得更高,延遲更短,實時性和快速性更強(qiáng)。該型號FPGA為編寫狀態(tài)機(jī)等復(fù)雜的邏輯控制程序和復(fù)雜的控制算法程序奠定了硬件基礎(chǔ),使超高速控制成為可能,同時利于今后控制器的功能升級。因此,EP3C16E144I7非常適合作為FPGA超高速工業(yè)控制器的核心主控芯片。
FPGA獨立供電模塊為FPGA提供3.3 V、2.5 V、1.2 V共3種電源電壓等級:3.3 V作為該型號FPGA的I/O口電源VCCIO,1.2 V作為FPGA的內(nèi)核電源VCCINT和PLL數(shù)字電源VCCD_PLL,2.5 V作為FPGA的PLL模擬電源VCCA和JTAG調(diào)試接口電路電源。
2.2 16路模擬量輸入A/D轉(zhuǎn)換單元
16路模擬量輸入A/D轉(zhuǎn)換單元包括I/V選擇與變換電路、2片12位8通道A/D轉(zhuǎn)換器電路、A/D接口數(shù)字隔離電路[4]。如圖2所示,I/V選擇與變換電路既可將工業(yè)現(xiàn)場輸入的4~20 mA電流信號轉(zhuǎn)換為1~5 V或0.5~2.5 V的電壓信號,又可將工業(yè)現(xiàn)場輸入的0~10 V信號轉(zhuǎn)換為0~5 V電壓信號。如圖3所示,轉(zhuǎn)換后的AI0~AI15共16路電壓信號傳輸至2片12位8通道A/D轉(zhuǎn)換器AD7928,并由A/D轉(zhuǎn)換器轉(zhuǎn)換為2組12位內(nèi)部數(shù)字信號DB[11:0]:經(jīng)軟件配置后,AI0~AI7(1~5 V/0~5 V)在第一片AD7928上的轉(zhuǎn)換關(guān)系是AI=5 V×DB[11:0]/4096;AI8~AI15(0.5~2.5 V)在第二片AD7928上的轉(zhuǎn)換關(guān)系是AI=2.5 V×DB[11:0]/4 096。上述2組12位數(shù)字信號以SPI協(xié)議16位串行格式都通過2片磁隔離芯片ADum1201CR和ADum1200CR連接至FPGA的用戶I/O口上。圖3中的AD780BR用于產(chǎn)生2.5 V±0.001 V電壓基準(zhǔn)REFin_2.5 V供A/D轉(zhuǎn)換使用,精準(zhǔn)的2.5 V電壓基準(zhǔn)保證了模擬量采集與控制的高精度和準(zhǔn)確性。
圖2 I/V選擇與變換電路原理圖
磁隔離芯片與FPGA連接側(cè)的供電回路應(yīng)與FPGA的I/O電壓一致,即應(yīng)接入FPGA獨立電源供電單元提供的VCC3.3到GND的3.3 V電壓;磁隔離芯片與外設(shè)芯片連接側(cè)的供電回路應(yīng)與該外設(shè)芯片數(shù)字接口的電源引腳(文中是AD7928的Vdrive引腳)電壓一致,即應(yīng)接入調(diào)理板電源供電單元提供的VCC5到SGND的5 V電壓。磁隔離芯片在這里除隔離作用外,還起到了5 V/3.3 V電平轉(zhuǎn)換作用。
圖3 A/D轉(zhuǎn)換器電路原理圖
2.3 8路模擬量輸出D/A轉(zhuǎn)換單元
8路模擬量輸出D/A轉(zhuǎn)換單元包括D/A接口數(shù)字隔離電路、14位8通道D/A轉(zhuǎn)換器電路、模擬量輸出信號放大與驅(qū)動電路[5]。FPGA的類SPI協(xié)議32位串行格式的數(shù)字信號通過磁隔離芯片ADuM1400CRW連接至14位8通道D/A轉(zhuǎn)換器AD5648,磁隔離芯片的供電回路與2.2中所述一致。如圖4所示,AD5648有AO0~AO7共8路模擬量輸出引腳,在軟件中將AD5648配置成使用內(nèi)部電壓參考源,故每路電壓輸出值Vout=5 V×D[13:0]/16384,其中D[13:0]是與該路AO對應(yīng)的14位D/A數(shù)值。這8路0~5 V電壓再經(jīng)如圖5所示LM7332運(yùn)放電路的信號放大與驅(qū)動后,可線性放大為8路-10~+10 V的模擬量輸出電壓,所選LM7332可在輸出±10 V電壓時輸出±70 mA電流,可滿足工業(yè)現(xiàn)場絕大多數(shù)閥門執(zhí)行機(jī)構(gòu)的驅(qū)動控制要求。
圖4 D/A轉(zhuǎn)換器電路原理圖
圖5 模擬量輸出信號放大與驅(qū)動電路原理圖
2.4 16路開關(guān)量輸入信號隔離與調(diào)理單元
如圖6所示,工業(yè)現(xiàn)場的16路0 V或24 V電壓開關(guān)量輸入信號DI1~DI16經(jīng)光耦PC817進(jìn)行電壓變換隔離,將0 V或24 V電壓信號轉(zhuǎn)為0 V或3.3 V電壓信號輸出給FPGA的I/O口。其中3.3 V穩(wěn)壓管D2起到過壓和反接保護(hù)作用。
圖6 開關(guān)量輸入信號隔離與調(diào)理單元電路原理圖
2.5 8路開關(guān)量輸出信號隔離與驅(qū)動單元
如圖7所示,控制器外接的24 V電源通過DC/DC模塊提供專為繼電器驅(qū)動電路[6]提供的獨立電源,其地SGND_JiDianQi與控制器信號調(diào)理板的信號地SGND和控制器核心板的地GND完全相互獨立,避免繼電器輸入端大電流頻繁通斷對系統(tǒng)的干擾。其工作原理是:當(dāng)FPGA的相應(yīng)I/O口輸出高電平時,LED滅,光耦PC817不導(dǎo)通,PNP型三極管導(dǎo)通,額定電壓為12 V的繼電器輸入端流過接近37.5 mA的電流,繼電器輸出端兩個觸點吸合;當(dāng)FPGA的相應(yīng)I/O口輸出低電平時,LED亮,光耦PC817導(dǎo)通,PNP型三極管截止,繼電器輸入端無電流流過,繼電器輸出端兩個觸點斷開。將繼電器的輸出觸點串入工業(yè)現(xiàn)場的負(fù)載回路中即可完成8路對電磁閥等設(shè)備的開關(guān)量控制。
圖7 開關(guān)量輸出信號隔離與驅(qū)動單元電路原理圖
2.6總線通信單元
總線通信單元包括通信數(shù)字隔離電路、用于與上位機(jī)或接入工業(yè)網(wǎng)絡(luò)進(jìn)行通信的半/全雙工RS-485(RS-422)接口電路和RS-232接口電路。如圖8所示,F(xiàn)PGA的4個I/O口經(jīng)磁隔離芯片ADuM1401BRW連接至MAX491ESD,磁隔離芯片的供電回路與2.2中所述一致。FPGA通過MAX491ESD完成收發(fā)控制的方法如下:FPGA將發(fā)送使能控制線485_DE置高時,會使能MAX491ESD對異步串行通信接口發(fā)送信號485_DI的TTL電平到差分發(fā)送端RS-485(RS-422)電平標(biāo)準(zhǔn)的電平轉(zhuǎn)換,反之會禁止發(fā)送信號的RS-485(RS-422)電平轉(zhuǎn)換;FPGA將接收使能控制線485_RE置低時,會使能MAX491ESD對差分接收端RS-485(RS-422)電平標(biāo)準(zhǔn)到異步串行通信接口接收信號485_RO的TTL電平轉(zhuǎn)換,反之會禁止接收信號的TTL電平轉(zhuǎn)換。類似的,通過MAX3232ESE芯片構(gòu)成的RS-232接口電路和磁隔離芯片ADuM1402BRW,可完成TTL電平與RS-232電平標(biāo)準(zhǔn)之間的轉(zhuǎn)換。
圖8 半/全雙工RS-485(RS-422)接口電路圖
如圖9所示是FPGA內(nèi)部的頂層設(shè)計中各功能模塊的連接示意及對外引腳圖[7],用Verilog HDL語言在FPGA上完成各功能模塊的設(shè)計,所有涉及時序的模塊均用Verilog代碼設(shè)計成有限狀態(tài)機(jī),工作快速、穩(wěn)定。最后利用Quartus II集成開發(fā)環(huán)境對由各個Verilog模塊集成的頂層設(shè)計文件進(jìn)行綜合。
從圖9看出,F(xiàn)PGA內(nèi)部各功能模塊中的核心主控模塊是DA上層控制模塊,DA上層控制模塊的流程如圖10所示。由于FPGA的并行性特點,在DA上層控制模塊循環(huán)進(jìn)行8路模擬量輸出AO的計算與輸出的同時,圖9中還同時并行地進(jìn)行著如下主要工作:16路模擬量輸入AI信號的輪詢AD采樣轉(zhuǎn)換與濾波,異步串行通信數(shù)據(jù)接收及其命令解析和參數(shù)設(shè)置,16路DI狀態(tài)的讀取與8路DO輸出控制,向上位機(jī)通過異步串行通信接口循環(huán)發(fā)送所有的AI、AO、DI、DO數(shù)值信息。
圖9 FPGA內(nèi)部的頂層設(shè)計中各個功能模塊的連接示意及對外引腳圖
圖10 DA上層控制模塊的流程圖
由圖10及軟件功能分析可知,該控制器可根據(jù)上位機(jī)發(fā)送的模擬量輸入AI設(shè)定值及相關(guān)Kp、Ki、Kd參數(shù)進(jìn)行雙閉環(huán)/單閉環(huán)的PID自動調(diào)節(jié),也可根據(jù)上位機(jī)發(fā)送的波形參數(shù)(周期、峰值、谷值)進(jìn)行波形自動輸出或手動值輸出??刂破骺赏瓿勺疃?路模擬量AI的定值或隨動控制,因FPGA可并行完成各種控制、采集、通信功能,一個控制周期Ts中16路AI中的每路都采集7次的情況下,8個模擬量的PID閉環(huán)控制總周期Ts可以低至0.3 ms,如果在一個Ts中,減少AO輸出數(shù)目或使單路AI采集次數(shù)少于7次,控制周期Ts可以低至0.1 ms以下,完全可滿足超高速的控制要求。
為了驗證該控制器對模擬量、開關(guān)量的高速采集與控制功能,使用LabVIEW編寫了上位機(jī)監(jiān)控系統(tǒng),該監(jiān)控系統(tǒng)共實現(xiàn)了6組功能:實時顯示、數(shù)字量顯示及輸出設(shè)置、模擬量輸出設(shè)置、控制參數(shù)設(shè)置、歷史曲線、X-Y曲線。同時將該控制器用于對高階大滯后對象的雙閉環(huán)PID控制,高階對象的輸出與輸入分別作為控制器的AI4與AO4,高階對象的中間輸出作為控制器的AI5,如圖11所示,該高階對象的輸出可快速跟蹤監(jiān)控系統(tǒng)對AI4設(shè)置的給定值。
圖11 控制器對高階對象的雙閉環(huán)PID控制曲線圖
文中根據(jù)工業(yè)控制系統(tǒng)需求,設(shè)計出基于FPGA的超高速工業(yè)控制器,該控制器配備總線通信、模擬量輸入/輸出、開關(guān)量輸入/輸出等接口,能夠完成工業(yè)控制系統(tǒng)的模擬量、開關(guān)量的高速采集與控制,并可在上位機(jī)通過RS-422(半/全雙工RS-485)和RS-232總線對該控制器實現(xiàn)高速監(jiān)控。該控制器僅使用FPGA作為主控芯片,最突出的特點是超
高速、并行性,整個控制周期低于0.3 ms,控制器既可根據(jù)上位機(jī)的設(shè)定實現(xiàn)工業(yè)現(xiàn)場8個雙閉環(huán)PID或單閉環(huán)PID自動控制方案,又可實現(xiàn)模擬量的手動輸出或波形輸出控制。最后,通過實際實驗,驗證使用文中所設(shè)計的控制器并結(jié)合雙閉環(huán)PID控制方案能夠保證工業(yè)控制系統(tǒng)的模擬量超高速采集與控制,實現(xiàn)高速的控制效果和理想的監(jiān)控功能。
參考文獻(xiàn):
[1]劉志勇.工業(yè)控制器可靠性若干問題的研究與開發(fā):[學(xué)位論文].杭州:浙江大學(xué),2012.
[2]王誠,蔡海寧.Altera FPGA/CPLD設(shè)計.第2版.北京:人民郵電出版社,2011.
[3]Cyclone III Design Guidelines,datasheet,Altera Corporation,2008.
[4]江小平,劉文杰.基于CPLD/FPGA的A/D轉(zhuǎn)換控制器的設(shè)計.蘇州大學(xué)學(xué)報,2005,25(4):1-3.
[5]鄭艷霞,張培仁,張志堅.高精度遠(yuǎn)程隔離型多路AI/AO電路設(shè)計.工業(yè)控制計算機(jī),2006,19 (9):12-14.
[6]顧海洲,馬雙武.PCB電磁兼容技術(shù)——設(shè)計實踐.北京:清華大學(xué)出版社,2004.
[7]劉小林,范育兵,羅春暉.基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計.電子技術(shù)應(yīng)用,2009(7):1-3.
作者簡介:崔巍(1989—),碩士研究生,主要從事工業(yè)控制系統(tǒng)及其控制器開發(fā)。E-mail:cuiwei007@tju.edu.cn
吳愛國(1954—),教授,博士生導(dǎo)師,主要研究領(lǐng)域為以液壓系統(tǒng)、制冷系統(tǒng)、電機(jī)為對象的非線性系統(tǒng)控制方法研究。