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