何耀華,庫亞斌,李 奎,魏樂文
(1.現代汽車零部件技術湖北省重點實驗室,武漢430070;2.武漢理工大學 汽車工程學院,武漢430070)
駐車制動系統是汽車的重要安全系統之一,其調整質量的好壞直接關乎著汽車的駐車安全,影響著汽車的車輪阻滯力和燃油經濟性[1]。駐車制動系統傳統的調整方法是人工調整,全程利用人工憑借經驗進行調整,存在著勞動強度大、生產效率與調整精度低、難以進行定量研究等缺點。近年來,基于人工調整工藝的自動調整系統開始出現。
現有的駐車制動自動調整系統多單獨采用PLC或者LabVIEW開發[2]。PLC作為控制器,實時性好、可靠性高、抗干擾能力強、使用方便,但卻難以實現對數據庫的操作和生產網絡的接入,難以滿足生產企業對生產線檢測設備的數據存儲要求[3]。基于LabVIEW的虛擬儀器控制系統用戶界面友好,可方便實現對數據庫的操作以及與生產網絡的對接,進而實現檢測數據的存儲和上傳,但對電機的控制卻存在較高的延時性[4]。因此,駐車制動調整系統中將基于LabVIEW的虛擬儀器控制系統作為上位機,PLC作為下位機,采用兩者聯合控制的方式,實現優勢互補,提升系統的整體性能。目前,該系統已成功應用于上汽通用五菱整車生產線。
在駐車制動自動調整系統中,為了方便測試員快捷地了解系統工作狀態,需要在LabVIEW的用戶界面同步顯示“準備”、“測試中”、“合格”與“不合格”等各種指示燈的狀態以及實時力矩與檢測結果的數值。這就需要LabVIEW程序多次讀取PLC相應軟元件的狀態。此外,為了防止下位機在誤操作情況下單獨運轉,出于系統的安全性考慮,下位機必須在上位機寫入開始命令后才可運行。因此,有必要對LabVIEW與PLC的通信進行深入研究,探索出高效、可靠的通信方法,以實現對PLC軟元件數據的讀取和寫入。
手制動裝調系統的整體主要包括硬件部分和軟件部分。通過軟件程序對電機等硬件的控制實現運動。利用力矩傳感器獲得最后的測量值并與標準值進行對比來判斷裝調是否合格。在調整過程中使用準備、測試中、急停等指示燈顯示設備工作狀態。
整個系統的軟件部分主要由LabVIEW和PLC構成。他們之間的連接關系以及各自負責的主要功能如圖1所示。PC通過RS-232轉RS-485轉換模塊與PLC相連。RS-485的傳輸線路為正負兩根信號線,與RS-232相比,RS-485為半雙工工作模式,其信號由正負兩條線路信號準位相減而得,為差分輸入方式,抗共模干擾能力強,抗噪聲干擾性好,數據傳輸速率高,實際傳輸距離可達1200 m,可實現一對多的主從通信[5]。由于PC未加裝RS-485接口,因此使用轉換模塊使二者相連。該方法簡單可靠,成本低。PC上使用LabVIEW平臺建立了裝調結果數據庫,并與工廠生產網絡相連,將數據進行存儲和上傳。PLC部分負責了手制動硬件系統部分的控制,其核心部分是電機的控制和指示燈的控制。期間,LabVIEW不斷地從PLC讀取和寫入需要的參數,并將讀取的數據存入數據庫。

圖1 系統軟件部分構成Fig.1 Software structure of system
串口通信程序的實現主要依據LabVIEW的串口配置相關函數以及PLC的串口通信協議。根據PLC的串口讀取和寫入數據的格式,利用LabVIEW的串口通信函數將命令從發送區發送至PLC。PLC收到命令后作出回應即可完成整個通信過程[6]。
本文采用PC級具有優先權,PLC始終被動響應PC發來的命令的通信方式,選用的PLC為三菱FX2N型,系統采用其編程口專用通信協議[7]。
三菱FX系列PLC有4種通信命令,包括讀取命令、寫入命令、強制開命令和強制關命令[8]。它們的命令代碼以及可操作的對象如表1所示。其中X—輸入繼電器;Y—輸出繼電器;M—輔助繼電器;S—狀態元件;T—定時器;C—計數器;D—數據寄存器。

表1 通信命令Tab.1 Communication command
手制動裝調系統中主要用到的命令為讀取命令和寫入命令。一段完整的命令幀由控制字符STX(02H)、命令碼(CMD)、數據段、控制字符 ETX(03H)以及和校驗碼五部分組成[9]。
PC讀出與寫入軟設備值的命令幀都包括開始標志、命令、首地址、軟元件字節數、終止符、校驗碼等幾部分。不同的是寫入軟設備的命令幀在軟元件字節數和終止符之間多出了寫入的數據這部分。它們的命令幀組成如表2和表3所示。PLC在接收到PC的請求之后,按照對應的格式返回數據。

表2 從PLC讀取數據的命令幀格式Tab.2 Command frame format for reading data from the PLC

表3 向PLC寫入數據的命令幀格式Tab.3 Command frame format for writing data to the PLC
在LabVIEW 編程中,系統利用虛擬儀器軟件規范VISA實現串行通信[10]。其串口通信的主要步驟包括初始化端口、讀寫端口和關閉端口。編寫完成的程序如圖2所示。

圖2 串口通信模塊程序Fig.2 Serial communication module program
首先使用VISA配置串口函數,配置串口通信的端口號、波特率、停止位、校驗、數據位等參數。然后利用VISA寫入函數和VISA讀取函數進行數據的寫入和讀取。由于程序的運行需要時間,中間加了延時器并利用屬性節點檢測讀取數據的位數。最后關閉串口釋放緩存。
由于在后續串口通信讀取與寫入程序的編寫過程中需要多次用到串口通信模塊程序,將串口通信模塊封裝成子VI,以方便程序的調用。此外為了提高程序的可移植性,利用輸入控件進行串口參數的配置。這樣在使用不同的PLC時,可以直接改變參數的配置。
在串口通信模塊的基礎上,讀取與寫入程序的編程首先要解決的問題是發送區符合PLC通信協議的通信命令的編寫。而根據PLC的通信協議,通信命令的關鍵是校驗碼的計算。
和校驗碼的計算需要根據PLC的通信格式來確定。它由命令碼(CMD)、數據段、控制字符ETX等三部分的ASCII相加的結果的最低兩位得到[11]。其中這里的數據段主要指變量數據和變量地址。由于變量數據和變量地址都是字符串格式,在程序編寫過程中需要使用“截取字符串”函數將字符串的每一位截取出來并轉換成十六進制。之后利用“復合運算”函數將三部分的數值相加。最后截取出結果的最低兩位分別輸出即可。部分程序如圖3所示。

圖3 校驗碼計算部分程序Fig.3 Check code calculation program
程序的整體運行思路如圖4所示。利用Lab-VIEW的“順序結構”先進行PLC變量地址的轉換和校驗碼的計算,然后按照通信協議分別確定發送區讀取與寫入的通信命令,并按照通信格式使用“連接字符串”函數將命令的各部分連接。最后利用串口通信模塊完成通信。

圖4 程序的整體思路Fig.4 Overall idea of the program
其中,PLC的軟元件地址主要有X、Y、M、D四種。變量地址計算與轉換利用“條件結構”對X、Y、M、D軟元件地址分別進行。讀取與寫入模式的選擇則是通過邏輯“0”與“1”的“下拉列表”輸入控件進行選擇(讀取為0,寫入為1)。不同軟元件的選擇也可以利用“下拉列表”函數實現。最終將程序封裝成子VI,方便駐車制動程序對不同軟元件數據讀取和寫入時的多次調用。封裝后的子VI程序如圖5所示。

圖5 讀取與寫入子VI程序Fig.5 Reading and writing subVI programs
在使用時,首先設置程序是讀取模式還是寫入模式,讀取為0,寫入為1。點開軟元件類型下拉列表選擇需要讀取或者寫入的軟元件類型,然后輸入軟元件地址即可完成對對應軟元件的操作。
為了驗證該串口通信程序在駐車制動自動調整系統中能否正常使用,使用該程序讀取控制“測試中”與“急停”指示燈的Y11與Y12軟元件的數據。當使用PLC點亮物理指示燈時,可以看到前面板的對應虛擬指示燈同時亮起,如圖6所示。說明該程序可以實現讀取功能。然后將控制PLC整個程序開始運行的M2寫入邏輯“1”,發現PLC程序開始運行,駐車制動自動調整系統開始工作。說明該程序可以實現對應軟元件的寫入功能。

圖6 駐車制動自動調整系統前面板Fig.6 Front panel of parking brake automatic adjustment system
由于該串口通信程序是獨立的子VI程序,且直接進行串口通信參數的配置。所以,該程序可以便捷的移植到類似LabVIEW與PLC聯合控制的系統中使用。具有很好的移植性。在需要多次讀寫不同軟元件數據的編程過程中,可以直接調用該子VI,極大的提高了編程效率。
本文根據PLC通信協議,基于LabVIEW開發了串口通信模塊程序,實現了PC與PLC的通信。該方法簡單可靠,節省了成本,簡化了結構。在串口通信模塊程序的基礎上,編寫了對PLC不同軟元件數據讀取和寫入子VI,實現了對PLC軟元件的數據監控。便于復雜程序的多次調用,且操作簡單,提高了程序開發效率;將通信程序應用于手制動裝調系統,運行結果準確可靠,驗證了其實用性;基于LabVIEW編寫的PLC通信子VI,只需要根據不同的通信協議更改其配置便可應用于其他類似系統,具有良好的移植性。便于其他以LabVIEW為基礎的PC與PLC聯合控制系統的開發,具有很好的應用前景。
[1]吳亞菲,何耀華.駐車制動自動調整系統的開發研究[D].武漢:武漢理工大學,2016.
[2]吳亞菲,何耀華,盧磊.駐車制動自動調整系統可靠性分析[J].武漢理工大學學報,2016(12):80-84.
[3]蔣新衛.PLC在工業自動化中的發展和應用[J].工程施工,2015,14(6):64-65.
[4]He Y.,Yang C.,Shang B..Vehicle driving wandering test system based on LabVIEW[J].SAE Technical Paper 2010-01-0998,2010,doi:10.4271/2010-01-0998.
[5]王晉杰.基于LabVIEW的PC與PLC實時監控的實現[J].武漢理工大學學報,2001(11):53-55.
[6]柳劍.基于編程口的三菱PLC與PC串口通信實現[J].自動化儀表,2010,31(11):31-35.
[7]張力.LabVIEW與三菱PLC串口通信的實現[J].微型機與應用,2013,32(12):51-55.
[8]汪晟杰,王宇恒,王博,等.基于LabVIEW與三菱PLC通信在液壓控制中的應用[J].電氣與自動化,2017(10):171-173.
[9]宋伯生.PLC編程實用指南[M].北京:機械工業出版社,2017.
[10]陳錫輝.LabVIEW8.20程序設計從入門到精通[M].北京:清華大學出版社,2007.
[11]哈立德·卡梅爾.PLC工業控制[M].北京:機械工業出版社,2015.