1 引言
隨著工程機(jī)械智能化程度不斷提高,控制精度、穩(wěn)定性也要求不斷提高,而且還要求有相當(dāng)高的傳輸速率,尤其是控制對(duì)象相對(duì)復(fù)雜、功能要求較高的銑刨機(jī),人們不能采用單個(gè)的控制器,更不能采用傳輸速率較低、傳輸距離較短、抗干擾能力較差的RS232或RS485的通訊方式。最主要的是它們不能連接多個(gè)收發(fā)器,不具有多站點(diǎn)能力。而CAN(控制器局域網(wǎng))作為唯一一種有國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線,與RS232、RS485相比,其信號(hào)形式更適合熱插拔,而且它的網(wǎng)絡(luò)層協(xié)議在滿足模塊間通信需要高實(shí)時(shí)性要求的同時(shí),與定量觸發(fā)的TIP相比適合不定時(shí)傳送信息的要求。它繼承了DCS的優(yōu)點(diǎn),可以更方便地構(gòu)建模塊間通訊網(wǎng)絡(luò)。因此,筆者在銑刨機(jī)電控制系統(tǒng)中采用了CAN的通訊方案。
本文以筆者設(shè)計(jì)開發(fā)的銑刨機(jī)電控系統(tǒng)為例,主要介紹利用CAN總線實(shí)現(xiàn)系統(tǒng)間通訊的系統(tǒng)設(shè)計(jì)和應(yīng)用。
2 系統(tǒng)描述
(1) 系統(tǒng)組成及網(wǎng)絡(luò)結(jié)構(gòu)系統(tǒng)的組成如圖1所示。
圖1 系統(tǒng)的網(wǎng)絡(luò)拓樸結(jié)構(gòu)
系統(tǒng)采用監(jiān)控顯示器(德國(guó)博世力士樂生產(chǎn)的DI2顯示器),并聯(lián)各控制對(duì)象的數(shù)據(jù)采集模塊(力士樂配套的RC6-9控制器+MOBA找平儀+CATERPILLAR的ECM控制器)和CAN總線組成。
本文的銑刨機(jī)采用上述CAN總線接口的微處理器系統(tǒng)。該系統(tǒng)包括兩部分:數(shù)據(jù)采集和施工過程控制。前者由掛接在CAN總線上的數(shù)據(jù)采集單元完成,主要是從總線上收集有關(guān)的運(yùn)行數(shù)據(jù)(由分控部件的控制單元提供),進(jìn)行一些基本的數(shù)據(jù)處理和診斷,如有關(guān)傳感器、執(zhí)行機(jī)構(gòu)是否失效,然后將有關(guān)數(shù)據(jù)和施工狀況存儲(chǔ)在可擴(kuò)展的EPROM中,在適當(dāng)時(shí)刻將存儲(chǔ)的數(shù)據(jù)通過CAN總線傳輸?shù)斤@示器上進(jìn)行數(shù)據(jù)分析處理。另外,施工的過程數(shù)據(jù)傳輸?shù)斤@示器上,主要是處理數(shù)據(jù)采集系統(tǒng)發(fā)送的數(shù)據(jù),如發(fā)動(dòng)機(jī)轉(zhuǎn)速、行駛速度、銑刨深度等參數(shù)。
銑刨機(jī)各電控單元間以及模塊與顯示器間通過控制器局域網(wǎng)(CAN)連接通信。通信網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用總線式結(jié)構(gòu)。
這種結(jié)構(gòu)的特點(diǎn)是多個(gè)節(jié)點(diǎn)共用一條傳輸線,結(jié)構(gòu)簡(jiǎn)單、成本低;采用無源抽頭連接,可靠性高。信息的傳輸采用CAN2.0通信協(xié)議,線路的利用率高。傳輸介質(zhì)為雙絞線,如需進(jìn)一步提高抗干擾能力,還可在控制器和傳輸介質(zhì)之間加接光電隔離。以上總線式拓?fù)浣Y(jié)構(gòu)的特點(diǎn)能滿足本系統(tǒng)的設(shè)計(jì)要求。
(2) 硬件介紹
硬件包括RC控制器與CAN總線的接口、顯示器與CAN總線的接口、電噴發(fā)動(dòng)機(jī)控制器ECM與CAN總線的接口、MOBA控制器與CAN總線的接口。
表1 PCAN_USB CAN端口的定義
由于后兩個(gè)控制器的控制程序已由生產(chǎn)廠家固化進(jìn)去,OEM廠商只需要實(shí)現(xiàn)CAN通訊,完成數(shù)據(jù)的互換就可以了,筆者的精力集中在前兩類控制器進(jìn)行編程和程序下載及調(diào)試。由于筆者使用的是CAN通訊接口,所以由PC機(jī)下載程序進(jìn)入控制器時(shí)筆者采用了USB接口轉(zhuǎn)CAN接口的CAN通訊專用下載工具―PCAN_USB。此工具具有適用于工業(yè)級(jí)CAN總線通訊中的信息交換,遵循國(guó)際標(biāo)準(zhǔn),支持熱插拔,傳輸速率高,外置發(fā)光二極管顯示當(dāng)前狀態(tài),可以自主開發(fā)程序,支持多種語(yǔ)言平臺(tái),可以自由上傳、下載及測(cè)試等特點(diǎn),使用起來非常方便。各針的定義和接線方式如表1所示。
圖2 PCAN_USB與PC機(jī)的接線
3) RC和DI2的CAN控制器
RC控制器具有兩個(gè)CAN控制器,可分別互換使用;支持CAN2.0協(xié)議;有自動(dòng)重發(fā)功能;支持?jǐn)?shù)據(jù)幀和遠(yuǎn)程幀;數(shù)據(jù)收發(fā)采用郵箱方式;可工作在標(biāo)準(zhǔn)模式和擴(kuò)展模式;有可編程位定時(shí)器;可編程實(shí)現(xiàn)總線喚醒功能;可對(duì)中斷配置編程;DI2附帶一個(gè)CAN控制器,其功能與RC控制器的CAN控制器一致,該CAN控制器的這些功能方便了整個(gè)系統(tǒng)功能的實(shí)現(xiàn)。
3 系統(tǒng)的軟件
(1) 主模塊的確定
為了使各個(gè)控制模塊能協(xié)調(diào)工作,筆者單列一個(gè)RC控制器作為主控制器,由它單獨(dú)和顯示器進(jìn)行數(shù)據(jù)交換和顯示。禁止其他模塊成為主模塊,所有其他模塊的數(shù)據(jù)只能以主模塊為基準(zhǔn)。按照規(guī)定我們可以將顯示器和各個(gè)控制器分別通訊,進(jìn)行數(shù)據(jù)交換和處理,但為了適配RC控制器的編程特點(diǎn)采用現(xiàn)有方式,從實(shí)際情況來看,確實(shí)比較實(shí)用。
(2) 顯示器的軟件
顯示器的軟件和RC控制的軟件一樣,都是以博世力士樂開發(fā)的專用軟件為平臺(tái)進(jìn)行二次開發(fā),并把顯示器作為局域網(wǎng)上的操作服務(wù)器,用戶通過它可以各個(gè)模塊進(jìn)行操作(下文詳談),方便、及時(shí)、有效。
4 CAN控制器的編程
(1) 波特率設(shè)置
表2 位速率和節(jié)點(diǎn)間最大速率的關(guān)系
由表2和圖3可知:CAN總線的傳輸速率與兩個(gè)節(jié)點(diǎn)之間的最大距離有關(guān)。由于MOBA控制器自身的物理因素(電纜長(zhǎng)度、反饋電線末端的死區(qū)等)決定了本套系統(tǒng)工作波特率為125Kbit/s。此波特率在實(shí)際運(yùn)用中完全符合要求。
圖3 波特率曲線圖
(2) CAN通訊的實(shí)現(xiàn)
由于RC控制器和DI2顯示器的編程環(huán)境都是由博世力士樂提供的,所以在編程時(shí)只需要在軟件平臺(tái)上進(jìn)行相應(yīng)的CAN通訊配置就可以了,具體的實(shí)施過程如下:
對(duì)DI2顯示器來說,System settings中選取驅(qū)動(dòng)方式,現(xiàn)有的系統(tǒng)配置決定筆者只能選擇適配CAN通訊的BT 15 DI2/11 an:CAN的驅(qū)動(dòng)方式,如圖4所示。
圖4 選擇驅(qū)動(dòng)方式
然后在Device settings中作好相應(yīng)的RAM和Recipes配置(一般選用默認(rèn)值)。
圖5 相應(yīng)的RAM和recipe配置
最后在Driver settings作好波特率、控制器的配置,如前所述,本系統(tǒng)的波特率設(shè)置為125KBd。
圖6 配置波特率、控制器
做好以上工作后,再編輯RD_PLC(讀入PLC的實(shí)時(shí)參數(shù))和WR_PLC(對(duì)PLC的參數(shù)進(jìn)行修改)模塊;在此模塊中定義控制對(duì)象的地址,直接與PLC(博世力士樂RC控制器)對(duì)應(yīng)的地址對(duì)象進(jìn)行通訊從而實(shí)現(xiàn)對(duì)顯示器進(jìn)行施工過程的實(shí)時(shí)監(jiān)控設(shè)計(jì)(部分程序如下)。
******* RD_PLC ***********
IF=(Display,21)
{
SB(No_Error_Onlinewindow)
IFPLU(Key_ESC,PAI0.0) {LW(Display,Pre_Display) }
IFPLU(Key_FI,PAI0.1) {LW(Display,Pre_Display) }
IFPLU(Key_FII,PAI0.2)
}
;******* WR PLC***********
IF=(Display,22)
{
SB(No_Error_Onlinewindow) IFPLU(Key_FI,PAI0.1) {INC(Adress_WR_PLC,70,96)}
IFPLU(Key_FII,PAI0.2) {LW(BI,Adress_WR_PLC)
INC(B1,0,65535)}
IFPLU(Key_FIII,PAI0.3) {LW(BI,Adress_WR_PLC)
DEC(B1,0,65535)}
}
對(duì)于RC控制器的CAN設(shè)置相對(duì)來說要復(fù)雜一些,首先要進(jìn)行通訊初始化并選擇好通道號(hào);其次是對(duì)接收到的數(shù)據(jù)進(jìn)行初始化;如是發(fā)送數(shù)據(jù),則需要將數(shù)據(jù)打包;這樣就可以通過CAN控制器實(shí)現(xiàn)各控制模塊的自由通信了,特別值得注意的是:在與顯示器進(jìn)行通訊時(shí),先進(jìn)行DI2顯示器的初始化,然后編輯通訊模塊,只有這樣才能完成RC與DI2的數(shù)據(jù)互換,從實(shí)際應(yīng)用來說,這是最方便快捷和一種方式(程序節(jié)選如下)。
數(shù)據(jù)讀入控制器:
can_init(1,baud250K);
Di2_init(40,46);
Di2_initError(64,400);
can_initRecDatabox(0,4,ADR(rcto2),0,21,8);
can_initRecDatabox(0,2,ADR(rc3),0,15,8);
swlimitdrumdoor:= rc3[0];
swconbackward:= rc3[1];
swliftlimitrear:=rcto2[1];
swconoilfilt:=rcto2[2];
counter:=Di2_getData(70);
Di2_setProc(80,counter);
Di2_calc(void);
Di2_setProc(16,swliftlimitrear);
數(shù)據(jù)發(fā)送控制器:
can_sendData(0,2,message_basic_format,8,ADR(rc3));
can_sendData(0,4,message_basic_format,8,ADR(rcto2));
rc3[0]:=swlimitdrumdoor;
rc3[1]:=swconbackward;
rcto2[1]:=swliftlimitrear;
rcto2[2]:=swconoilfilt;
5 應(yīng)用
本文研究的銑刨機(jī)電控?cái)?shù)據(jù)通信系統(tǒng)有效的利用了RC控制器和DI2顯示器內(nèi)嵌CAN控制器的特點(diǎn),通過掛接在CAN總線上的數(shù)據(jù)采集單元收集組合銑刨機(jī)的實(shí)時(shí)數(shù)據(jù),并上傳給顯示器進(jìn)行分析,經(jīng)過顯示器的數(shù)據(jù)處理和診斷控制銑刨機(jī)的正常工作。
6 結(jié)語(yǔ)
本文介紹了RC和DI2內(nèi)嵌CAN控制器的特點(diǎn),并在此基礎(chǔ)上把CAN總線技術(shù)應(yīng)用在銑刨機(jī)電控系統(tǒng)數(shù)據(jù)通訊系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中,通過靈活的通信協(xié)議和接口的設(shè)計(jì),使系統(tǒng)滿足CAN總線短突發(fā)、高實(shí)時(shí)性、高數(shù)據(jù)率的要求。此系統(tǒng)不僅可以應(yīng)用在工程機(jī)械、在其他行業(yè)也具有廣泛的應(yīng)用前景。