ARM嵌入式控制器應(yīng)用于印染設(shè)備監(jiān)控中
3 上位機(jī)和變頻器
PC機(jī)與變頻器的通信采用USS協(xié)議。該協(xié)議由SIEMENS AG定義,主要以RS-485總線方式將多臺(tái)西門子公司生產(chǎn)的變頻器、直流調(diào)速器或PLC等終端設(shè)備與工業(yè)控制計(jì)算機(jī)相連,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。USS協(xié)議是開放的,所以為用戶開發(fā)自己的基于該協(xié)議的軟件產(chǎn)品提供了可行性。這樣不僅有利于降低開發(fā)成本,而且能充分滿足特定項(xiàng)目的需要,方便日常的工控網(wǎng)絡(luò)維護(hù)。
USS協(xié)議支持多點(diǎn)聯(lián)接,支持主一從存取方式,用于單主站系統(tǒng),最多可鏈接32個(gè)站。USS協(xié)議支持可變和固定報(bào)文長度,報(bào)文格式簡單,通信字符格式為:1位起始位、1位停止位、1位校驗(yàn)位、8位數(shù)據(jù)位,波特率最高可達(dá)18715Kbps。
圖2為變頻器MM440的通信報(bào)文結(jié)構(gòu),對(duì)報(bào)文的具體字符含義不做過多解釋,強(qiáng)調(diào)一點(diǎn)MM440支持BiCo(二進(jìn)制互聯(lián)連接)技術(shù),用戶可更方便的對(duì)它進(jìn)行參數(shù)的控制。
圖2 變頻器通信報(bào)文結(jié)構(gòu)
在變頻器與PC機(jī)進(jìn)行485通信前,對(duì)于MM440的參數(shù)設(shè)置至關(guān)重要。首先將所有參數(shù)復(fù)位到出廠設(shè)置:
P0010(調(diào)試參數(shù)過濾器):30,表示為工廠的設(shè)定值;
P970(工廠復(fù)位)=1,表示所有參數(shù)都復(fù)位到它們的缺省值;
設(shè)置參數(shù):P0700(選擇命令源)=5,表示C0M 鏈路的USS設(shè)置;
PIO00(頻率設(shè)定值的選擇)=5,表示可通過USS對(duì)變頻器進(jìn)行控制;
P2010(USS波特率)=6,表示通信波特率選9600;
P2011(USS地址號(hào))=1,表示變頻器1的地址為1;
P2009(USS規(guī)格化)=1,表示數(shù)值是以絕對(duì)十進(jìn)制數(shù)的形式發(fā)送[即4000(十進(jìn)制)(=0FA0hex)等于40.00Hz];
P2012(USS協(xié)議的PZD(過程數(shù)據(jù))長度):2,表示PZD傳輸?shù)氖强刂谱趾驮O(shè)定值,共2個(gè);
P1013(USS協(xié)議的PKW 長度)=4,表示用4個(gè)字節(jié)讀寫各個(gè)參數(shù)的數(shù)值;
P2014(USS的停止傳輸時(shí)間(ms))=X,表示允許用戶設(shè)定一個(gè)時(shí)間X,在經(jīng)過這個(gè)時(shí)間以后,如果USS通道接收不到報(bào)文,就將產(chǎn)生故障信號(hào)F07O。
上位機(jī)和變頻器通信采用VB6.0編程,程序編制上采用事件驅(qū)動(dòng)的通信方式。串口每接收16個(gè)字符便激活一個(gè)OnComm()事件,在On-Comm()消息處理函數(shù)中,加入相應(yīng)的處理代碼,實(shí)現(xiàn)對(duì)變頻器參數(shù)的在線修改。
4 上位機(jī)和ARM
嵌入式控制器采用三星公司的32位微處理器S3C44B0,芯片的內(nèi)核是16/32位ARM7TDMI精簡指令結(jié)構(gòu)處理器,是一種低功耗,通用微處理器內(nèi)核,特別適合于對(duì)價(jià)格比較敏感產(chǎn)品的設(shè)計(jì)[4]。S3C44B0芯片除了微處理器內(nèi)核外,在芯片中還集成了許多外圍設(shè)備,如8通道10位ADC,1個(gè)I2C-BUS控制器,LCD控制器,2通道UART。最重要的是它可以移植操作系統(tǒng)uClinux進(jìn)行管理。uClinux是一個(gè)優(yōu)秀的嵌入式操作系統(tǒng),它很適合那些沒有MMU(Memory Management Unit)的處理器。沒有MMU 的處理器在嵌入式領(lǐng)域中應(yīng)用相當(dāng)普遍。針對(duì)uClinux內(nèi)核的二進(jìn)制代碼和源代碼都經(jīng)過重新編寫,以緊縮和裁剪基本的代碼。這就使uClinux和標(biāo)準(zhǔn)Linux 2.0內(nèi)核相比非常小,但它仍然保持了Linux操作系統(tǒng)主要優(yōu)點(diǎn)。
本系統(tǒng)中,我們用帶uClinux操作系統(tǒng)的S3C44BOX控制器,用它自帶的一路10位ADC,方便的對(duì)拉幅熱定型機(jī)的烘房溫度進(jìn)行較高精度的數(shù)據(jù)采集;通過I2C總線和外圍計(jì)數(shù)芯片實(shí)現(xiàn)兩路電機(jī)轉(zhuǎn)速的采集。一個(gè)UART用作485總線接口,與PC機(jī)通信;一個(gè)LCD控制器直接接3.5寸的STN液晶器,方便觀察。由于uClinux本身已經(jīng)做好網(wǎng)絡(luò)的移植,本系統(tǒng)采用網(wǎng)絡(luò)芯片RTL8019AS把嵌入式接入以太網(wǎng),用戶可以通過瀏覽器訪問該控制系統(tǒng)的運(yùn)行數(shù)據(jù),實(shí)現(xiàn)對(duì)系統(tǒng)的遠(yuǎn)程監(jiān)控。
在拉幅熱定型機(jī)中,作為主傳動(dòng),帶動(dòng)布鋏的主、從電機(jī)的線速度同步,是保證加工質(zhì)量的關(guān)鍵,控制算法通常在PC機(jī)中完成,由于本系統(tǒng)采用32位微處理器,所以完全可以在作為下位機(jī)的ARM控制器中完成。PC機(jī)僅用于監(jiān)測和變頻器通信,大大減輕了負(fù)擔(dān)。而且S3C44B0具有很好的移植性,可以作為模塊方便的掛在485總線上。嵌入式控制器S3C44B0和PC機(jī)之間,我們定義了下面的收發(fā)協(xié)議,如圖3所示。其中命令包括復(fù)位命令和發(fā)送命令,若接收方在約定時(shí)間內(nèi)未收到發(fā)送命令幀,則發(fā)送復(fù)位幀,雙方回到通信程序的開始,清空緩沖區(qū),然后重新同步,具體流程如圖4所示。
圖3 控制器和PC機(jī)通信協(xié)議
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論