摘 要: 為滿足不同工程機(jī)械的控制要求,設(shè)計(jì)了一款基于CoDeSys的工程機(jī)械控制器,使其具有I/O端口的可配置性。該控制系統(tǒng)主要采用嵌入式軟PLC技術(shù),以符合IEC61131標(biāo)準(zhǔn)的CoDeSys的運(yùn)行系統(tǒng)為調(diào)度核心,以英飛凌公司的TriCore系列微控制器TC1793為硬件核心。重點(diǎn)闡述了控制系統(tǒng)的硬件設(shè)計(jì)、軟件開發(fā),以實(shí)現(xiàn)控制系統(tǒng)的開放性、通用性、高魯棒性,具有良好的經(jīng)濟(jì)效益和廣闊的應(yīng)用前景。
關(guān)鍵詞: 工程機(jī)械;控制系統(tǒng);通用性;CoDeSys
0 前言
工程機(jī)械是國(guó)民經(jīng)濟(jì)建設(shè)的重要裝備,在城鎮(zhèn)建設(shè)、搶險(xiǎn)救災(zāi)和國(guó)防建設(shè)中起著十分重要的作用??刂破髯鳛楣こ虣C(jī)械的核心部分,是決定工程機(jī)械性能的重要因素之一[1]。然而工程機(jī)械控制器的市場(chǎng)幾乎被德國(guó)的西門子和力士樂(lè)、美國(guó)的卡特彼勒、芬蘭的EPEC等國(guó)外產(chǎn)品所占據(jù);相比之下,國(guó)內(nèi)起步較晚,沒(méi)有掌握核心技術(shù),大部分產(chǎn)品依靠進(jìn)口,價(jià)格昂貴[2-3],故進(jìn)行工程機(jī)械控制器的研究很有必要。
目前國(guó)內(nèi)外的大部分控制器具有很強(qiáng)的針對(duì)性,但是功能單一,通用性不強(qiáng),而根據(jù)現(xiàn)場(chǎng)作業(yè)條件,出現(xiàn)了不同種類的工程機(jī)械的需求,故相應(yīng)的控制器的軟硬件開發(fā)較多,這加大了人力物力的開銷,不利于產(chǎn)品的更新?lián)Q代。此外,目前大多數(shù)控制器所使用的硬件平臺(tái)是16位的處理器,并且可編程控制器(PLC)的封閉性明顯,這導(dǎo)致控制器的數(shù)據(jù)處理能力有限,開放性差,可編程性不夠理想。
基于此,結(jié)合當(dāng)前符合IEC61131標(biāo)準(zhǔn)的開放式控制器開發(fā)的基本思想,融合PLC和嵌入式控制系統(tǒng)的優(yōu)點(diǎn),以實(shí)現(xiàn)控制器開放性、通用性和高魯棒性,本文提出了一種基于CoDeSys的軟PLC與高性能的嵌入式硬件系統(tǒng)相結(jié)合的工程機(jī)械通用控制器的設(shè)計(jì)方案以解決上述問(wèn)題。
1 控制系統(tǒng)的整體方案
1.1 系統(tǒng)的功能需求
種類繁多的工程機(jī)械,一方面,根據(jù)不同的應(yīng)用場(chǎng)合,需要不同種類和數(shù)量的I/O端口,為滿足要求,需要I/O端口具有可配置性;另一方面,為了便于系統(tǒng)的二次開發(fā),降低開發(fā)難度,實(shí)現(xiàn)系統(tǒng)的開放性和通用性,需要采用符合IEC61131標(biāo)準(zhǔn)的開發(fā)軟件。
1.2 系統(tǒng)的整體結(jié)構(gòu)
圖1所示為本文所設(shè)計(jì)的控制器系統(tǒng)的整體結(jié)構(gòu),包括硬件系統(tǒng)結(jié)構(gòu)和軟件系統(tǒng)結(jié)構(gòu)。其中硬件系統(tǒng)結(jié)構(gòu)是以英飛凌的微控制器為控制核心的硬件平臺(tái),軟件系統(tǒng)結(jié)構(gòu)是以CoDeSys的運(yùn)行系統(tǒng)為調(diào)度核心,包括應(yīng)用程序、CoDeSys的運(yùn)行內(nèi)核、驅(qū)動(dòng)程序。
2 硬件設(shè)計(jì)
根據(jù)工程機(jī)械的功能需求,控制系統(tǒng)的硬件設(shè)計(jì)包括微控制器、輸入模塊、輸出模塊、通信模塊、基本模塊、存儲(chǔ)擴(kuò)展模塊,如圖2所示。
本設(shè)計(jì)采用英飛凌的32位微控制器TC1793為控制系統(tǒng)的硬件平臺(tái)的核心,該MCU主頻可達(dá)到270 MHz,具有很強(qiáng)的實(shí)時(shí)性,集成了DSP的數(shù)據(jù)處理能力[4],適用于高魯棒性的控制;其內(nèi)部提供了豐富的外設(shè)資源,有通用定時(shí)器列陣GPTA、同步串行通信接口SSC、捕獲比較單元CCU、外部總線單元EBU等。這些完全可以滿足設(shè)計(jì)通用控制器硬件系統(tǒng)所需的接口數(shù)目和種類的要求。
2.1 輸入輸出模塊
通過(guò)控制器的輸入模塊實(shí)現(xiàn)對(duì)工程機(jī)械的開關(guān)量、脈沖量和模擬量的采集;通過(guò)控制器的輸出模塊實(shí)現(xiàn)對(duì)工程機(jī)械的執(zhí)行器件的驅(qū)動(dòng)和控制。為了讓控制器能應(yīng)用于不同種類的工程機(jī)械中,需要設(shè)計(jì)輸入輸出模塊具有可配置性的功能。
本文設(shè)計(jì)了18路開關(guān)量的輸入,其中有8路可以配置為正向開關(guān)量或負(fù)向開關(guān)量,用戶可以根據(jù)不同的應(yīng)用場(chǎng)合,在軟件中配置該8路電路為所需要的開關(guān)量類型。采用飛思卡爾的多開關(guān)檢測(cè)模塊MC33975來(lái)設(shè)計(jì)開關(guān)量輸入接口的電路設(shè)計(jì),如圖3所示。MC33975模塊可檢測(cè)22路開關(guān)量,通過(guò)SSC與MCU進(jìn)行通信,實(shí)現(xiàn)SP0-SP7的開關(guān)量類型的選擇,以及SP0-SP7和SG0-SG9開關(guān)量信號(hào)的采集。
設(shè)計(jì)16路模擬量的輸入,用以檢測(cè)油溫、油位、水溫等物理量傳感器信號(hào)。為了實(shí)現(xiàn)不同工程機(jī)械對(duì)應(yīng)的模擬量類型的采集,設(shè)計(jì)了8路模擬量類型可選擇的采集電路,同時(shí)該8路電路可復(fù)用于開關(guān)量的采集。采用亞德諾半導(dǎo)體公司的低壓CMOS模擬多通道復(fù)用器ADG704設(shè)計(jì)該模擬量輸入電路,如圖4所示。根據(jù)ADG704的A0和A1引腳的高低電平配置,選擇S1~S4 4個(gè)輸入之一切換到公共輸出D。為此,通過(guò)設(shè)計(jì)R53~R56 4個(gè)分壓電阻阻值,實(shí)現(xiàn)0~24 V、0~10 V、0~5 V和4~20 mA的模擬信號(hào)的檢測(cè)。由于MCU的ADC只能采集0~5 V的模擬量信號(hào),故本設(shè)計(jì)中采用了鉗位二極管BAT4S構(gòu)成電壓鉗制電路,以防止ADC引腳的轉(zhuǎn)換電壓過(guò)高,從而影響AD轉(zhuǎn)換結(jié)果。此外,當(dāng)GPIO0為高電平時(shí),兩個(gè)MOS管都導(dǎo)通,輸入端+24 V上拉,此時(shí)可以采集開關(guān)量的信號(hào)。
設(shè)計(jì)了驅(qū)動(dòng)比例電磁閥、油門電機(jī)等感性負(fù)載的PWM輸出電路,同時(shí)該電路可復(fù)用于開關(guān)量的輸出。本設(shè)計(jì)采用MCU的GPTA模塊產(chǎn)生的PWM作為控制信號(hào),使用英飛凌的智能高邊功率開關(guān)BTS5215作為功率輸出,具體的電路設(shè)計(jì)如圖5所示。其中,CF與POUT之間加電流反饋電路,以防止功率負(fù)載因線圈阻抗的不穩(wěn)定引起電流偏差,從而影響負(fù)載動(dòng)作的精度。通過(guò)CF與POUT之間添加的0.1 Ω采樣電阻,將OUT引腳輸出電流0~7.4 A轉(zhuǎn)化為0~0.74 V的電壓,再經(jīng)過(guò)放大增益為5 dB的電流反饋電路放大到0~3.7 V,連接回MCU的ADC引腳。由于TC1793的外設(shè)功能引腳與GPIO復(fù)用,故可將PWM輸出引腳配置成GPIO模式,便可選擇以PWM1和PWM2為開關(guān)量的輸出。
2.2 存儲(chǔ)器擴(kuò)展模塊和通信模塊
?。?)存儲(chǔ)器擴(kuò)展模塊包括EEPROM、外擴(kuò)Flash、外擴(kuò)RAM。
所設(shè)計(jì)的控制器需要存儲(chǔ)一些標(biāo)定的參數(shù)、功率器件的閾值等,MCU集成了SSC,故選用ST公司同步串行接口EEPROM芯片M95640來(lái)存儲(chǔ)這些參數(shù)。
為滿足控制器的通用性,針對(duì)不同的工程機(jī)械,程序代碼和數(shù)據(jù)的占用空間差別很大,同時(shí)為滿足后續(xù)符合IEC61131標(biāo)準(zhǔn)的CoDeSys系統(tǒng)移植的需求,利用MCU集成的EBU,設(shè)計(jì)外擴(kuò)Flash和外擴(kuò)RAM模塊。
?。?)通信模塊包含CAN總線通信和RS232通信。
種類繁多的工程機(jī)械所需控制部件較多,為便于數(shù)據(jù)通信,選用CAN總線,以實(shí)現(xiàn)控制器與儀表等外部設(shè)備之間的通信。本文采用TI公司的CAN收發(fā)器SN65HVD230設(shè)計(jì)電路。
采用RS232接口,實(shí)現(xiàn)控制器與CoDeSys編程環(huán)境的程序下載和上傳。利用MCU集成的ASC,采用SIPEX公司的RS232收發(fā)器芯片SP3232設(shè)計(jì)電路。
2.3 電源模塊
工程機(jī)械控制器一般通過(guò)車載蓄電池和發(fā)動(dòng)機(jī)供電,但電壓的波動(dòng)大,并且各個(gè)模塊所需的供電電壓不同,故控制器的電源模塊設(shè)計(jì)包括電源保護(hù)電路設(shè)計(jì)和電壓轉(zhuǎn)換電路設(shè)計(jì)。
工程機(jī)械供電系統(tǒng)常常伴有浪涌電壓,這對(duì)硬件電路造成很大的破壞;此外,人為的誤操作將電源反接也會(huì)對(duì)控制器造成很大的破壞。為此需要在電源模塊保護(hù)電路中設(shè)計(jì)防浪涌電路和防反接電路。以凌特公司的過(guò)壓保護(hù)芯片LT4356為核心,使用瞬態(tài)電壓抑制二極管SMBJ5BCA吸收輸入電壓的浪涌功率,并鉗制輸入電壓不高于+36 V,進(jìn)而構(gòu)建MCU的電源模塊保護(hù)電路。
MCU的外設(shè)接口ADC需+5 V供電,CAN和I/O等需+3.3 V供電,內(nèi)核需+1.3 V供電,而有些外圍電路需+12 V供電,故控制系統(tǒng)所需的電壓為+24 V、+12 V、+5 V、+3.3 V、+1.3 V。本設(shè)計(jì)選用線性穩(wěn)壓器LTM4607實(shí)現(xiàn)+24 V~+12 V的電壓轉(zhuǎn)換;選用LTM8025為核心構(gòu)建+5 V、+3.3 V、+1.3 V的轉(zhuǎn)換電路實(shí)現(xiàn)微控制器的供電;此外設(shè)計(jì)合適的外圍電路以實(shí)現(xiàn)MCU上電時(shí)序的要求。
3 軟件開發(fā)
為了降低程序的復(fù)雜度,使其具備可重構(gòu)能力,以滿足不同工程機(jī)械的控制要求,采用將應(yīng)用程序和驅(qū)動(dòng)程序分離的開發(fā)方法。
本控制器采用開放性的軟件CoDeSys進(jìn)行軟件的開發(fā),包括應(yīng)用程序、CoDeSys的運(yùn)行內(nèi)核、驅(qū)動(dòng)程序。軟件系統(tǒng)的具體結(jié)構(gòu)如圖6所示。
其中CoDeSys軟件是3S公司基于IEC61131標(biāo)準(zhǔn)的軟件套件,包括CoDeSys運(yùn)行內(nèi)核和應(yīng)用程序開發(fā)環(huán)境。CoDeSys運(yùn)行內(nèi)核需要移植到硬件系統(tǒng)中,移植工作主要包括:Target描述文件的設(shè)計(jì)、通信驅(qū)動(dòng)描述文件的設(shè)計(jì)、I/O驅(qū)動(dòng)描述文件的設(shè)計(jì)等[5-6],即形成一個(gè)用來(lái)描述目標(biāo)系統(tǒng)與CoDeSys編程系統(tǒng)之間的軟硬件的特定配置和定義的目標(biāo)支持軟件包。
I/O端口配置模塊方便用戶根據(jù)需要選擇I/O端口的種類和數(shù)目,生成I/O配置文件,CoDeSys運(yùn)行系統(tǒng)訪問(wèn)I/O配置文件,調(diào)用對(duì)應(yīng)的底層驅(qū)動(dòng),以實(shí)現(xiàn)I/O端口的可配置性。其中I/O端口控制的部分代碼如下:
#define AIDI_DI_Read[i] DI_Value[i];
#define AIDI_AI_Read[i] AI_Value[i];
void IO_Control()
{
……
for(i=0;i<m;i++)//本文的m為8
{
if(AIDI_En[i]==1)//1使能,0禁止
{
if(AIDI_Config[i]==DI)
{
*((unsigned int*)InputBuf [AIDIBaseAddr+i*2])=AIDI_DI_Read[i];
}
else
{
*((unsigned int*)InputBuf[AIDIBaseAddr+i*2])=AIDI_AI_Read[i];
}
}
……
}
}
以上過(guò)程總結(jié)為圖7所示的系統(tǒng)軟件主程序流程。
4 控制系統(tǒng)的性能測(cè)試
通用控制器的樣機(jī)完成制作之后,需要對(duì)控制器的性能進(jìn)行測(cè)試,主要包括可靠性測(cè)試、溫度測(cè)試、通用性測(cè)試等。本文主要闡述控制器的通用性測(cè)試。
對(duì)控制器的通用性測(cè)試,采用在控制器的I/O端口加載相應(yīng)的負(fù)載,并編寫對(duì)應(yīng)的測(cè)試程序的方法來(lái)實(shí)現(xiàn)。具體的實(shí)現(xiàn)方法是:在可配置為開關(guān)量采集的模擬量輸入接口AIN上,分別接0~24 V之間的電壓、4~20 mA之間的電流、0~1.5 kΩ之間的電阻;開關(guān)量的輸入接口DIN和輸出接口DOUT都接繼電器;脈沖量輸入接口PIN接PWM的輸出接口;將可配置為開關(guān)量輸出的PWM輸出接口分別接電磁閥和繼電器。通過(guò)這樣的加載方式,用示波器分別觀察對(duì)應(yīng)端口的狀態(tài),實(shí)現(xiàn)控制器的通用性測(cè)試。例如PWM/DO端口,通過(guò)I/O端口配置模塊先配置為PWM輸出,加載PWM測(cè)試程序成功驅(qū)動(dòng)電磁閥;再配置為DO輸出,加載DO測(cè)試程序成功驅(qū)動(dòng)繼電器。用示波器測(cè)出該端口的狀態(tài)分別如圖8和圖9所示。從圖可知該端口可以實(shí)現(xiàn)PWM和DO的復(fù)用。
5 結(jié)論
通過(guò)加載測(cè)試,本文所設(shè)計(jì)的基于CoDeSys的工程機(jī)械通用控制器具有I/O端口可配置性,具備可重構(gòu)能力,可以滿足不同種類的工程機(jī)械的控制要求,降低人力物力的投入。此外,該控制器符合IEC61131標(biāo)準(zhǔn),支持5種編程語(yǔ)言,為用戶提供統(tǒng)一的編程環(huán)境,具有很強(qiáng)的開放性,便于實(shí)現(xiàn)控制系統(tǒng)的二次開發(fā),在科技不斷發(fā)展和市場(chǎng)競(jìng)爭(zhēng)愈發(fā)激烈的形勢(shì)下,具有良好的應(yīng)用前景。
參考文獻(xiàn)
[1] 王國(guó)慶,劉潔,張宗濤,等.工程機(jī)械智能化控制器研究[J].筑路機(jī)械與施工機(jī)械化,2008,25(3):73-75.
[2] 閔華松,李美升,魏洪興,等.工程機(jī)械智能控制器設(shè)計(jì)[J].信息與控制,2011(2):254-261.
[3] 袁森,黃海松.基于MCU和uC/OS-Ⅱ的工程機(jī)械電氣控制器設(shè)計(jì)研究[J].測(cè)控技術(shù),2014,33(4):58-61.
[4] Infineon Technologies AG. TC1798. Data Sheet(V1.1)[S].2014.
[5] 3S-Smart Software Solutions GmbH. CODESYS control V3 migration and adaptation(Version 4.0)[S]. 2014.
[6] 王麗麗,康存鋒,馬春敏,等.基于CoDeSys的嵌入式軟PLC系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代制造工程,2007(3):54-56.