李 瀟
(中國計量科學研究院信息電子所,北京 100013)
汽車電子化是現代汽車發展的重要標志。電子部件在整個汽車系統中的比重越來越大,這就對電子部件的可靠性和穩定性提出了很高的要求。如果由于電子部件的失效或干擾而造成車輛運行的失控,其后果不堪設想。因此,對汽車零部件和整車所進行的干擾和抗干擾的電磁兼容試驗就顯得尤為重要。
整車的輻射抗擾度測試需要在電波暗室中進行。測試時,使被測車輛處于行駛狀態,在指定頻段內使用經校準的場強照射被測車輛,觀察在滿足標準要求的各個場強強度等級下該車輛的運行是否受影響。
整車輻射抗擾度測試主要檢驗被測車輛是否會被外界較強的場強干擾,通常照射頻段為9 kHz~2.5 GHz,場強最高可至100 V/m的照射強度。但在如此高的場強下,由人駕駛汽車會對人體造成較大傷害,因此,需要開發一種自動的、能夠遠程駕駛汽車的裝置對汽車進行駕駛控制,完成輻射抗擾試驗。
汽車EMC測試駕駛系統是由電腦軟件控制PLC電控單元,再由電控單元輸出控制信號至氣動控制器中的壓縮空氣比例控制閥,從而調節壓縮空氣,以此控制氣動執行器驅動伸縮踏板來控制汽車駕駛。整套系統中的硬件包括壓縮空氣發生系統、PLC駕駛電控單元、氣動控制器、氣動執行器、緊急停止裝置、電腦及串口光電轉換器。
①壓縮空氣發生系統:能夠產生足夠潔凈、干燥且能達到指定壓強的壓縮空氣,為氣動執行器提供動力。
②PLC駕駛電控單元:接收計算機發來的控制指令,將其轉換成氣動控制器需要的控制信號,從而控制執行器動作。
③氣動控制器:包含多組壓縮空氣比例控制閥,根據輸入的電信號對輸入的指定壓強的壓縮空氣進行調節,再輸出至氣動執行器。
④氣動執行器:有3個由壓縮空氣驅動的伸縮踏板,分別對應汽車的離合、剎車和油門。該執行器放置在車內,由3個伸縮踏板即可完成對汽車的控制。
⑤緊急停止裝置:由獨立的光纖連接,與計算機控制分離,獨立地對氣動控制器的電源進行切斷控制,保證在緊急情況下對氣動執行器進行復位。
⑥計算機及串口光電轉換器:運行控制程序,通過光纖發送指令至輔助駕駛電控單元,遠程控制汽車駕駛。
整套系統大部分被安置在電波暗室的地下室內。其中,控制室中電腦串口發出的控制指令通過RS-232光纖收發器發送給比例閥電控單元。汽車EMC測試駕駛裝置硬件系統構成如圖1所示。

圖1 系統硬件構成圖Fig.1 Hardware composition of the system
為保證可靠性,并與國際測試機構保持一致,整個硬件系統中氣動執行器和氣動控制器均購買國外的成品組件。將氣動執行器和氣動控制器的氣路連接后,輸入壓縮空氣,并對比例控制閥輸入變化的直流電壓,即可控制3個踏板的伸縮行程。
整個系統的設計思路是:由PC發射指令給電控單元,電控單元將PC指令轉換為符合要求的模擬電壓信號,然后輸入至氣動控制器,由其控制氣動執行器相應踏板的伸縮。整套駕駛裝置的核心和技術難點是控制軟件和電控裝置的設計。根據氣動控制器中安裝的氣動比例控制閥的要求和氣動執行器中伸縮踏板的數量,電控裝置中除要包含同PC通信的部分外,還要有一個D/A模塊,從而根據PC指令產生至少3組電壓在0~5 V范圍內精確可調的直流電壓信號。由于汽車測試的高輻射和高速駕駛狀態下的危險性,該電控裝置須保證較高的控制精度和較強的穩定性。
輔助駕駛電控單元的設計要求如下:①響應速度快,輸入指令后的響應時間應小于50 ms;②4組模擬量輸出,每組可輸出0~5 V可調直流電壓,且量化精度大于等于12位;③模擬量輸出穩定,電壓抖動不超過0.1 V;④抗干擾能力強且穩定可靠,在電磁環境較惡劣的場合可正常工作;⑤能夠通過RS-232接口同計算機通信。
根據以上設計要求,最終選定西門子S7-300型PLC主控單元及其相應模塊進行電控單元設計。
2.2.1 模塊選型
根據設計要求,選定所需要的PLC功能模塊,電控單元PLC模塊的型號信息如表1所示[1]。

表1 型號信息Tab.1 Information of the PLC modules
①S7-300 CPU CPU312C模塊是緊湊型CPU模塊,帶有1個RS-485接口,用于通信和程序下載。該模塊自帶有8個數字輸入和輸出端,集成32 kB主存儲器,并支持最大8 MB的MMC卡擴展。在運行速度方面,位操作用時最少為 0.2 μs、字指令最少為0.4 μs、定點運算最少為 5 μs、浮點運算最少為 6 μs。
②電源模塊PS3075A的最大輸出電流為5 A,可輸出3路24 V直流電壓,并通過專用連接器同PLC各個模塊相連。安全隔離符合EN 60950。
③ 模擬量輸出模塊SM3324×16,24 V輸入,可輸出4組16位的電壓或電流信號,其取值范圍可設定為±10 V、0~10 V、1~5 V、±20 mA、0~20 mA、4~20 mA;在0~10 V范圍內誤差限值為±0.02%,重復精度為±0.002%,負載阻抗(在額定輸出范圍內)電壓輸出最小1 kΩ,容性負載最大1 μF。
④ 通信模塊CP340,使用RS-232串口通信協議,可使外部設備如電腦等訪問PLC,并對其進行控制;也可通過該模塊控制其他外部設備,如顯示器、打印機等。
2.2.2 硬件組態
在對電控單元系統中所需要的所有PLC模塊進行選擇后,根據對控制系統的功能要求,確定系統的硬件配置。S7-300 PLC采用緊湊的、無槽位限制的模塊化組合結構,因此,可將這些模塊安裝到同一導軌上。其中,導軌是一種專用的金屬機架[2]。
硬件組態的任務就是在Step7 V5.4中生成一個與實際的硬件系統完全相同的系統。例如要生成網絡、網絡中各個站的機架和模塊,以及設置各硬件組成部分的參數,即給參數賦值。所有模塊的參數都用編程軟件來設置。Step7為西門子專用的可編程邏輯控制器組態和編程的標準軟件包[3]。在Step7中,對硬件組態完畢并確認無誤后,使用編程電纜連接電腦和PLC的CPU模塊,將組態信息下載至CPU的存儲器中,以便讓CPU能夠識別并使用系統中的各個功能模塊。
3.1.1 PLC 程序功能分析
根據汽車駕駛裝置的要求,由上位機PC通過串口發送指令至PLC,以獨立發出3組可變電壓信號,并由這些信號控制氣動執行器動作。簡而言之,PLC程序的設計任務是控制通信模塊讀取來自電腦的串口數據,PLC對這些信號進行識別,并根據這些信號控制模擬量輸出模塊的3個通道輸出0~5 V的電壓。PLC程序基本功能框圖如圖2所示。

圖2 PLC程序功能分析框圖Fig.2 Functional analysis of the PLC program functions
3.1.2 PLC 程序設計及調試
使用Step7進行編程有3種編程方式,分別為梯形圖LAD、語句表STL和功能塊圖FBD。對于規模不大的程序來說,使用功能塊圖方式更為直觀,這也是本文采用的程序設計方式。
程序運行后,首先由CP340讀取計算機發出的指令。對于CP340的串口控制功能,Step7中的系統功能塊(SFB)已包含有RS-232收發功能塊,系統命名為FB2和FB3。由于使用中并不需要信息反饋,所以,這里只采用接收功能塊FB2,符號名為‘I_REV’,并創建一個數據塊DB1為其背景數據塊,同時,再創建一個數據塊DB10,用于存放其從計算機接收到的字符串。
EN_R為接收觸發端,故使用 M1.1地址上的‘TRUE’值觸發;R為復位端,使用 M1.2地址上的‘FALSE’值忽略;而NDR和ERROR端也用‘FALSE’值忽略。LADDR端為CP340起始地址。DB_NO為接收數據塊的號,這里使用DB10,故將DB_NO設為10。DBB_NO為DB10的起始地址,這里設為0。LEN為接收數據的最大長度[4]。由于接收到的串口數據為字符串型,而模擬模塊輸出指定的電壓值,因此,需要給其模塊地址發送一個整數型的數據。Step7中并沒有集成有將字符串數據轉換為整數型數據的函數,故需要自行編寫。加上預留端口,共有4組電壓輸出,故應有4組字符輸入,為方便操作且加快發送速度,將4組字符整合為一組字符串輸入。向模擬量輸出模塊的物理地址賦值,0~27648的整數值即可控制輸出模塊輸出電壓在0~5 V范圍內變化。所以,電腦輸出的字符串為“00000000000000000000”至“27648276482764827648”,以控制模擬模塊4組0~5 V的輸出[5]。
將接收到的包含20個字符的字符串輸入至DB10中,預先定義的一個4×5的二維數組“REC_DATAS”,再通過“字符串型轉整數型”函數 FC1(CHAR TO INT),將各個字符轉換為整數。最后,使用“字符串轉整數”函數FB1(STRING5 TO INT),將二維數組的4行字符轉換為4組5位的整數,并將其保存在DB11(“RETURN”)中指定的變量中。其中,FB1是以調用FC1來實現功能的。將FB1輸出的5位整數存入DB11中后,通過賦值功能塊,將DB11(“RETURN”)中的變量發送給模擬量模塊SM332的指定通道的地址,即可使該通道輸出需要的電壓值。加上預留的通道,實際有4組變量的輸出,即對FB1,FC1須進行多次調用才可滿足要求。根據以上程序設計方案,得到完整的程序執行流程如圖3所示。

圖3 程序執行流程圖Fig.3 Flowchart of the execution of program
最后,當PLC程序下載完畢后,整個運行程序存儲在PLC中CPU單元上的一個MMC卡中。
進行調試時,首先將CP340模塊上的RS-232口與計算機的串口相連接。打開計算機和PLC的電源,同時將PLC上CPU模塊312C上的運行開關由“Stop”開至“Run”,使PLC處于運行模式,此時,PLC已開始順序并重復執行OB1塊中的代碼。
在計算機上運行串口調試軟件。根據使用的端口和在硬件組態時對CP340設置的參數,將串口的參數設置為串口號COM4、波特率9600 bit/s、校驗位EVEN(偶校驗)、數據位8位、停止位1位。
在點擊“打開串口”之前,CP340上的SF燈亮起,表示連接異常;當打開串口后,SF燈熄滅。此時,PLC各個模塊沒有明顯故障出現。
在發送數據區寫入“00000000000000000000”字符串并發送時,CP340上的接收指示燈閃爍一次,使用萬用表測量SM332各個輸出通道的直流電壓,均為0 V。此時,再輸入“27648276482764827648”并發送,經測量,各通道電壓均為10 V左右,說明程序運行基本成功。為保證各個通道輸出對應準確,且輸出電壓準確,對不同通道和電壓值進行試驗,其結果如表2所示。

表2 PLC輸出電壓調試結果Tab.2 Result of PLC output voltage test
由于本文的重點在于PLC電控單元本身的設計,故對上位機程序設計僅作簡要介紹。上位機PC端控制軟件直接面向用戶,要求操作方式和界面盡可能直觀且友好。此外,整個汽車輔助裝置是用于汽車測試中的輔助系統,測試員的精力主要放在測試上;同時,汽車運行時功率較大,操作本身具有一定的風險性。所以,軟件的操作要盡可能地簡單易用,甚至需要包含一些自動化功能。
根據以上這些要求,PC端軟件應具備以下幾個功能特征:①能夠訪問計算機串口,并通過串口發送數據;②可通過圖形化的方式直觀地控制各個伸縮器的動作;③可對整個界面進行鎖定,以防止非測試人員誤操作;④可通過軟件對執行器進行緊急復位;⑤可對各個踏板的調節進行自動操作。
整套上位機控制程序在Microsoft Visual Studio 2005中的VB.net環境下完成設計和編譯。
其中,串口通信功能為程序的核心所在。程序的最終目的是能夠通過計算機串口發送一個字符串指令給PLC,在VB.net中已有現成的Serial Port控件可以使用。該控件已包含了對串口的底層控制和常用的通信功能,包括波特率的設置、校驗位的設置、數據收發及端口開關等,使用十分方便,足夠應對數據量小且對速率要求不是很高的場合。
首先將serial port控件拖入窗體設計器,并將該控件命名為MyPort[6]。然后在主程序中添加一個串口初始化函數‘OpenCom’。該函數對串口的名稱、波特率、數據位、終止位、奇偶校驗位和端口開關狀態都進行了設置。IsOpen為TRUE時,執行該函數,即為打開端口,并對端口各個參數進行初始化[7]。其代碼如下。


當調節踏板行程變量時,通過代碼‘MyPort.Write(SumControlCmd)’,即可將命令字符串變量‘SumControlCmd’發送給PLC。
由于整車輻射抗擾度電磁兼容測試具有高場強、高速度和多狀態等特點,使用PLC為核心設計的汽車EMC測試駕駛裝置的電控單元,可極大地提高該系統的可靠性和穩定性,同時也適用于惡略的電磁環境中,這是整車輻射抗擾度電磁兼容測試所必須的試驗條件。由于PLC編程簡便,模塊使用靈活,且設計時留有備用的端口,可為今后系統維護和升級提供極大的便利。
在整個系統的設計中,數據通信使用光纖進行傳輸,極大地避免了EMC測試中的干擾問題。目前,整套系統已投入使用,整個PLC控制器運行可靠穩定,在測試中,可以實現汽車精確可靠的駕駛控制。
[1]劉美俊.西門子S7系列PLC的應用與維護[M].北京:機械工業出版社,2008:30-50.
[2]李剛.應用STEP7進行PLC控制的編程方法和技巧[J].現代企業文化,2008,81(5):120 -122.
[3]邊春元,程立英,任雙艷,等.實例解析S7-300/400PLC[M].北京:機械工業出版社,2008:81-83.
[4]高來順,何惠平.用CP340實現工業PC對礦井提升機的監控[J].電氣傳動自動化,2001,23(4):40 -42.
[5]張其武,張玉林,王穎,等.Siemens CP340模塊與單片機的ASCII協議通信的實現[J].山東大學學報:工學版,2005,35(z):115 -118.
[6]劉金星,劉維亭,莊肖波,等.基于CP340通訊模塊的船舶機艙監控系統設計與應用[J].微計算機信息,2006,22(4 -1):37-39.
[7]張繼燕,王海瑞,李婷.自動稱重系統中PLC與上位機串口通信的實現[J].自動化與信息工程,2008(2):26-27.