陳靜



摘 要:工程機械是一種綜合性強、科技含量高、工況復雜的機械化施工工程所需的機械設備,一般的工程機械上裝配有可編程邏輯控制器(PLC)用以控制復雜的邏輯動作間接實現智能化作業的目的,本文所述的可編程邏輯控制器主要涉及在發動機的通訊及控制的應用。目前工程機械發動機多為柴油電噴發動機,發動機配有ECU(電子控制單元,又稱“車載電腦”或“行車電腦”)用以控制發動機的運行及監控發動機各個傳感器的運行參數,確保發動機的安全、可靠運行。鑒于于工程機械工況復雜,震動強,使用環境比較差;因此,工程機械對上裝作業控制器要求較高,普通PLC不能滿足需求。基于上述問題考慮,本文選擇專為移動車輛及工程機械而產的可編程邏輯控制器作為論述基礎,這種可編程邏輯控制器與發動機ECU的通信網絡系統采用國際標準的CAN總線通訊協議,可編程控制器與發動機ECU之間的數據可通過通信雙絞線實時讀取、實時發送。
關鍵詞:可編程邏輯控制器;PLC;發動機ECU;CAN
中圖分類號:U462.1 ?文獻標識碼:A ?文章編號:1671-7988(2019)23-59-03
CAN bus Communication Design of Construction Machinery engine ECU based
on programmable logic controller
Chen Jing
( Zhengzhou Institute of Industrial Application Technology, Henan Zhengzhou 451199 )
Abstract: Construction machinery is a comprehensive strong complex working conditions, high technology content, the mechanization of construction machinery and equipment needed for the engineering, general engineering machinery equipped with programmable logic controller (PLC) is used to control complex logic action indirectly the realization of the aim of intelligent operation, this article described the programmable logic controller mainly involve the application of the communications and control in the engine.At present, most engineering machinery engines are diesel electric injection engines, which are equipped with ECU (electronic control unit, also known as "on-board computer" or "on-board computer") to control the operation of the engine and monitor the operation parameters of various sensors of the engine to ensure the safe and reliable operation of the engine.In view of complex engineering machinery working conditions, strong vibration, the use environment is poor; Therefore, construction machinery on top of the work controller requirements are higher, ordinary PLC can not meet the demand.Based on the above problems, this article choose specifically for mobile vehicles and engineering machinery and production as the basis of programmable logic controller, the programmable logic controller and the engine ECU communication network system adopts the international standard of CAN bus communication protocol, programmable controller and the data between the engine ECU CAN be sent via communication twisted-pair real-time read, real-time.
Keywords: Programmable logic controller; PLC; Engine ECU; CAN
CLC NO.: U462.1 ?Document Code: A ?Article ID: 1671-7988(2019)23-59-03
1 引言
工程機械是一種用于工程建設的施工機械的總稱,種類繁多。大多用于水利、建筑、道路、國防、電力、港口和礦山等工程領域,是我國國民生產的支柱產業。大多數工程機械在汽車專用底盤基礎上加裝附加設備用于工程作業,上裝設備含有可編程邏輯控制器用于控制上裝作業動作;同時控制器與底盤發動機ECU通過CAN通信雙絞線連接,用以實時監控發動機的冷卻液溫度、機油壓力、發動機轉速等,便于遠程讀取發動機危險故障信息并及時處理發動機故障;部分工程機械需要遠程控制發動機的轉速、扭矩等,使發動機在上裝作業時達到最佳作業狀態。本文主要介紹了可編程邏輯控制器如何遠程讀取發動機冷卻液溫度、機油壓力、發動機轉速等參數及如何遠程控制發動機轉速,以此簡單說明可編程邏輯控制器在工程機械發動機發動機方面的CAN總線通信應用。
2 CAN總線通信系統簡單說明
CAN(Controller Area Network, 縮寫CAN)簡稱控制器局域網絡,最早由德國BOSCH公司開發用于各個汽車電子產品的相互通信,目前CAN總線通信協議已發展為ISO國際標準化的串行通信協議,因其高可靠性、極好的性能被廣泛應用于汽車、船舶、醫療設備、工業自動化等領域。CAN總線通信技術為分布式控制系統實現各節點之間可靠、實時的數據通信提供了強有力的技術支持。CAN總線的通信介質主要包括光纖、同軸電纜、帶屏蔽層的雙絞線,最高通信速率可達1Mbps,最大通信距離可達10KM,與其他現場總線相比具有易實現、性價比高、通信速率高等優點。
3 可編程邏輯控制器與發動機ECU的通信說明
目前,工程機械領域可編程邏輯控制器與發動機ECU主要通過帶屏蔽層的雙絞線直接連接,并且在雙絞線首末終端需各加一個120Ω,最終兩線之間電阻值為60Ω,首末終端加120Ω電阻是因為高頻信號傳輸時,信號波長相對傳輸線較短,信號在傳輸線終端會形成反射波最終干擾原信號,所以需要在傳輸線末端加終端電阻,使信號到達傳輸線末端后不反射。對于低頻信號則不用CAN總線兩端必須連接終端電阻才可以正常工作,終端電阻應該與通訊電纜的阻抗相同,典型值為120Ω。其作用是匹配總線阻抗,提高數據通信的抗干擾性及可靠行。
圖1 ?可編程邏輯控制器與發動機ECU雙絞線連接示意圖
4 可編程邏輯控制器讀寫、發送發動機ECU程序說明
可編程邏輯控制器與發動機ECU通訊程序設計主要依據發動機ECU的通訊協議規范編寫,發動機ECU的通訊協議制定了發動機各個參數的通訊ID及數據內容。可編程邏輯控制器在程序設計時必須嚴格按照發動機ECU的通信協議編寫程序。這樣才能讀取、發送指令給發動機ECU,從而實現發動機ECU與可編程邏輯控制器的實時、準確、有效通訊。
4.1 讀取發動機ECU數據程序設計
發動機數據的讀取主要依據發動機ECU相關報文信息,報文信息含有各個信息的參數描述、報文名稱、ID、周期、相應字節位置、數據增益,可編程控制器以報文信息編寫程序,通過相關ID讀取發動機ECU發送的信息,并將信息依據相應字節位置、數據增益將讀取的數據解析為直觀的數據內容。下面程序段是依據玉柴國五發動機CAN報文信息編寫的程序段,程序段主要讀取了發動機轉速、力矩百分比、冷卻液溫度、機油壓力等數據內容,并將數據內容解析計算得到實際的發動機數據信息。
● 讀取相應ID的數據內容:
CAN2_RECEIVE_3(config:=init_1,clear:=FALSE,
id:=16#0CF00400,(*data_EEC1,發動機轉速實際讀取*)
data=>arCAN2_16ID0CF00400_RX_DATA);
CAN2_RECEIVE_4(config:=init_1,
clear:=FALSE,
id:=16#0CF00300,(*data_EEC2,發動機力矩百分比讀取*)
data=>arCAN2_16ID0CF00300_RX_DATA);
CAN2_RECEIVE_5(config:=init_1,
clear:=FALSE,
id:=16#18FEEE00,(*data_TEMP,發動機冷卻液溫度讀取*)
data=>arCAN2_16ID18FEEE00_RX_DATA);
CAN2_RECEIVE_6(config:=init_1,
clear:=FALSE,
id:=16#18FEEF00,(*data_OilPressure,發動機機油壓力讀取*)
data=>arCAN2_16ID18FEEF00_RX_DATA);
● 將相應ID下的數據的數據內容解析為正確的發動機數據:
IF true THEN
sCan_EngineData.iEngine_percent_torque:=BYTE_TO_INT(arCAN2_16ID0CF00300_RX_DATA[3]);(*發動機力矩百分比數據解析,將該ID下第三字節賦值給力矩百分比變量即為實際力矩百分比*)
sCan_EngineData.wEngineSpeed :=(BYTE_TO_WORD(arCAN2_16ID0CF00400_RX_DATA[5])*256+BYTE_TO_WORD(arCAN2_16ID0CF00400_RX_DATA[4]))/8;(*發動機轉速數據解析,將該ID下第五字節×256+第四字節,取得和再除以8賦值給發動機轉速變量即為實際發動機實際轉速*)
sCan_EngineData.iEngine_CoolantTemp:=BYTE_TO_INT(arCAN2_16ID18FEEE00_RX_DATA[1])-40;(*發動機冷卻液溫度數據解析,將該ID下第一字節—40的結果賦值給發動機冷卻液溫度變量即為實際發動機冷卻液溫度*)
sCan_EngineData.wEngine_OilPressure:=BYTE_TO_INT (arCAN2_16ID18FEEF00_RX_DATA[4])*4;(*發動機冷卻液溫度數據解析,將該ID下第一字節×4的結果賦值給發動機機油壓力變量即為實際發動機機油壓力*)
ELSE
sCan_EngineData.iEngine_percent_torque:=0;
sCan_EngineData.wEngineSpeed:=0;
sCan_EngineData.iEngine_CoolantTemp:=0;
sCan_EngineData.wEngine_OilPressure:= 0;
END_IF
4.2 發送至發動機ECU數據程序設計
給發動機ECU發送數據同樣需要按照規定的報文制定發動ID及參數描述、報文名稱、周期、相應字節位置、數據增益等,下面程序段以給發動機發送轉速控制請求及數據內容為例,解釋可編程控制如何給發動機ECU發送數據信息。
wEngineSpeed_send:=750;(*給發動機ECU發送的實際轉速數據*)
WORD_TO_LSB_MSB_0(WORD_IN:=wEngineSpeed_send*8,LSB=>SPEED_SEND_H,MSB=>SPEED_SEND_L);(*將實際轉速數據轉化為CAN通訊相應ID及字節下可以傳送的數據內容*)
arCAN2_ID0C00000B_TX_DATA[0]:=16#CD;(發動機轉速控制請求信號)
arCAN2_ID0C00000B_TX_DATA[1]:=SPEED_SEND_L;(*經上述轉化后數據內容為16#70*)
arCAN2_ID0C00000B_TX_DATA[2]:=SPEED_SEND_H;(*經上述轉化后數據內容為16#17*)
TSC1_ID:= 16#0C00000B;(*控制轉速的相應ID*)
TSC1_DATA[0]:=arCAN2_ID0C00000B_TX_DATA[0];TSC1_ DATA[1]:= arCAN2_ID0C00000B_TX_DATA[1];TSC1_DATA [2]: =arCAN2_ID0C00000B_TX_DATA[2];TSC1_DATA[3]:= 0;TSC1_ DATA[4]:= 0;TSC1_DATA[5]:= 0;TSC1_DATA[6]:= 0;TSC1_ DATA[7]:= 0;(相應字節的數據內容)
J1939_TX_0(ENABLE:=TRUE,CHANNEL:=2,ID:=16#0C00000B,DATA:=arCAN2_ID0C000003_TX_DATA);(*通過可編程邏輯控制器發送信息*)
5 結論
根據上述文中描述,我們將編寫好的程序下載至可編程邏輯控制器中,并與發動機相應通訊,再用監控軟件監控CAN雙絞線上的發動機ECU與可編程控制器之間的CAN報文,通過計算驗證了程序及發動機CAN報文的正確性,下面以部分報文簡單介紹程序及報文的驗證。
圖2 ?軟件在CAN雙絞線抓取的相應報文
圖2為用軟件抓取的可編程控制器與發動機ECU之間的部分報文信息,由圖可以看到上述程序相應ID及數據內容,如ID16#C00000B中,經對比8個字節內容與程序發送一致;ID16#CF00400中,根據公式第五字節×256+第四字節,取得和再除以8(16#1A×256+16#98=6000,6000/8=750)計算后結果為750,與可編程控制器給發動機ECU發送的轉速控制數值一致,監測結果驗證了程序設計的正確性,證明本文基于可編程邏輯控制器的工程機械發動機ECU的 CAN總線通信設計論述具有一定的實用價值。
參考文獻
[1] 饒運濤,鄒繼軍,鄭勇蕓.現場總線CAN原理與應用技術.南昌:東華理工學院.2002.
[2] 林小峰,宋春寧,宋紹劍,黃清寶.基于IEC 61131-3標準的控制系統及應用.南寧:廣西大學.2007.
[3] 彭瑜,何衍慶.IEC 61131-3編程語言及應用基礎.北京:機械工業出版社.2009.
[4] 周哲,張振東,尹叢勃,梁承友,周正祥,李凱.基于轉矩模型的高壓共軌柴油機控制策略.上海:上海理工大學汽車工程研究所上海汽車集團股份有限公司商用車技術中心.2017.
[5] 吳進軍.高壓共軌式柴油轉子發動機ECU研制及其試驗匹配研究.北京:機械科學研究總院.2007.
[6] 于世濤,楊林,王俊席,龔元明,卓斌.柴油機高壓共軌電控系統開發方案的研究[J]. 汽車工程. 2005.
[7] 王尚軍.帶CAN電控汽油發動機故障診斷模擬系統的研究與試驗分析.廣州:華南理工大學.2016.
[8] 楊秀強.汽車電控發動機傳感器的原理與檢測[J]. 徐州:江蘇省徐州技師學院汽車工程系. 2011.
[9] 馬建民.柴油機高壓共軌系統ECU的研究與設計.上海:上海交通大學.