何耀華,庫(kù)亞斌,李 奎,魏樂(lè)文
(1.現(xiàn)代汽車(chē)零部件技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室,武漢430070;2.武漢理工大學(xué) 汽車(chē)工程學(xué)院,武漢430070)
駐車(chē)制動(dòng)系統(tǒng)是汽車(chē)的重要安全系統(tǒng)之一,其調(diào)整質(zhì)量的好壞直接關(guān)乎著汽車(chē)的駐車(chē)安全,影響著汽車(chē)的車(chē)輪阻滯力和燃油經(jīng)濟(jì)性[1]。駐車(chē)制動(dòng)系統(tǒng)傳統(tǒng)的調(diào)整方法是人工調(diào)整,全程利用人工憑借經(jīng)驗(yàn)進(jìn)行調(diào)整,存在著勞動(dòng)強(qiáng)度大、生產(chǎn)效率與調(diào)整精度低、難以進(jìn)行定量研究等缺點(diǎn)。近年來(lái),基于人工調(diào)整工藝的自動(dòng)調(diào)整系統(tǒng)開(kāi)始出現(xiàn)。
現(xiàn)有的駐車(chē)制動(dòng)自動(dòng)調(diào)整系統(tǒng)多單獨(dú)采用PLC或者LabVIEW開(kāi)發(fā)[2]。PLC作為控制器,實(shí)時(shí)性好、可靠性高、抗干擾能力強(qiáng)、使用方便,但卻難以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作和生產(chǎn)網(wǎng)絡(luò)的接入,難以滿足生產(chǎn)企業(yè)對(duì)生產(chǎn)線檢測(cè)設(shè)備的數(shù)據(jù)存儲(chǔ)要求[3]。基于LabVIEW的虛擬儀器控制系統(tǒng)用戶界面友好,可方便實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作以及與生產(chǎn)網(wǎng)絡(luò)的對(duì)接,進(jìn)而實(shí)現(xiàn)檢測(cè)數(shù)據(jù)的存儲(chǔ)和上傳,但對(duì)電機(jī)的控制卻存在較高的延時(shí)性[4]。因此,駐車(chē)制動(dòng)調(diào)整系統(tǒng)中將基于LabVIEW的虛擬儀器控制系統(tǒng)作為上位機(jī),PLC作為下位機(jī),采用兩者聯(lián)合控制的方式,實(shí)現(xiàn)優(yōu)勢(shì)互補(bǔ),提升系統(tǒng)的整體性能。目前,該系統(tǒng)已成功應(yīng)用于上汽通用五菱整車(chē)生產(chǎn)線。
在駐車(chē)制動(dòng)自動(dòng)調(diào)整系統(tǒng)中,為了方便測(cè)試員快捷地了解系統(tǒng)工作狀態(tài),需要在LabVIEW的用戶界面同步顯示“準(zhǔn)備”、“測(cè)試中”、“合格”與“不合格”等各種指示燈的狀態(tài)以及實(shí)時(shí)力矩與檢測(cè)結(jié)果的數(shù)值。這就需要LabVIEW程序多次讀取PLC相應(yīng)軟元件的狀態(tài)。此外,為了防止下位機(jī)在誤操作情況下單獨(dú)運(yùn)轉(zhuǎn),出于系統(tǒng)的安全性考慮,下位機(jī)必須在上位機(jī)寫(xiě)入開(kāi)始命令后才可運(yùn)行。因此,有必要對(duì)LabVIEW與PLC的通信進(jìn)行深入研究,探索出高效、可靠的通信方法,以實(shí)現(xiàn)對(duì)PLC軟元件數(shù)據(jù)的讀取和寫(xiě)入。
手制動(dòng)裝調(diào)系統(tǒng)的整體主要包括硬件部分和軟件部分。通過(guò)軟件程序?qū)﹄姍C(jī)等硬件的控制實(shí)現(xiàn)運(yùn)動(dòng)。利用力矩傳感器獲得最后的測(cè)量值并與標(biāo)準(zhǔn)值進(jìn)行對(duì)比來(lái)判斷裝調(diào)是否合格。在調(diào)整過(guò)程中使用準(zhǔn)備、測(cè)試中、急停等指示燈顯示設(shè)備工作狀態(tài)。
整個(gè)系統(tǒng)的軟件部分主要由LabVIEW和PLC構(gòu)成。他們之間的連接關(guān)系以及各自負(fù)責(zé)的主要功能如圖1所示。PC通過(guò)RS-232轉(zhuǎn)RS-485轉(zhuǎn)換模塊與PLC相連。RS-485的傳輸線路為正負(fù)兩根信號(hào)線,與RS-232相比,RS-485為半雙工工作模式,其信號(hào)由正負(fù)兩條線路信號(hào)準(zhǔn)位相減而得,為差分輸入方式,抗共模干擾能力強(qiáng),抗噪聲干擾性好,數(shù)據(jù)傳輸速率高,實(shí)際傳輸距離可達(dá)1200 m,可實(shí)現(xiàn)一對(duì)多的主從通信[5]。由于PC未加裝RS-485接口,因此使用轉(zhuǎn)換模塊使二者相連。該方法簡(jiǎn)單可靠,成本低。PC上使用LabVIEW平臺(tái)建立了裝調(diào)結(jié)果數(shù)據(jù)庫(kù),并與工廠生產(chǎn)網(wǎng)絡(luò)相連,將數(shù)據(jù)進(jìn)行存儲(chǔ)和上傳。PLC部分負(fù)責(zé)了手制動(dòng)硬件系統(tǒng)部分的控制,其核心部分是電機(jī)的控制和指示燈的控制。期間,LabVIEW不斷地從PLC讀取和寫(xiě)入需要的參數(shù),并將讀取的數(shù)據(jù)存入數(shù)據(jù)庫(kù)。
圖1 系統(tǒng)軟件部分構(gòu)成Fig.1 Software structure of system
串口通信程序的實(shí)現(xiàn)主要依據(jù)LabVIEW的串口配置相關(guān)函數(shù)以及PLC的串口通信協(xié)議。根據(jù)PLC的串口讀取和寫(xiě)入數(shù)據(jù)的格式,利用LabVIEW的串口通信函數(shù)將命令從發(fā)送區(qū)發(fā)送至PLC。PLC收到命令后作出回應(yīng)即可完成整個(gè)通信過(guò)程[6]。
本文采用PC級(jí)具有優(yōu)先權(quán),PLC始終被動(dòng)響應(yīng)PC發(fā)來(lái)的命令的通信方式,選用的PLC為三菱FX2N型,系統(tǒng)采用其編程口專(zhuān)用通信協(xié)議[7]。
三菱FX系列PLC有4種通信命令,包括讀取命令、寫(xiě)入命令、強(qiáng)制開(kāi)命令和強(qiáng)制關(guān)命令[8]。它們的命令代碼以及可操作的對(duì)象如表1所示。其中X—輸入繼電器;Y—輸出繼電器;M—輔助繼電器;S—狀態(tài)元件;T—定時(shí)器;C—計(jì)數(shù)器;D—數(shù)據(jù)寄存器。
表1 通信命令Tab.1 Communication command
手制動(dòng)裝調(diào)系統(tǒng)中主要用到的命令為讀取命令和寫(xiě)入命令。一段完整的命令幀由控制字符STX(02H)、命令碼(CMD)、數(shù)據(jù)段、控制字符 ETX(03H)以及和校驗(yàn)碼五部分組成[9]。
PC讀出與寫(xiě)入軟設(shè)備值的命令幀都包括開(kāi)始標(biāo)志、命令、首地址、軟元件字節(jié)數(shù)、終止符、校驗(yàn)碼等幾部分。不同的是寫(xiě)入軟設(shè)備的命令幀在軟元件字節(jié)數(shù)和終止符之間多出了寫(xiě)入的數(shù)據(jù)這部分。它們的命令幀組成如表2和表3所示。PLC在接收到PC的請(qǐng)求之后,按照對(duì)應(yīng)的格式返回?cái)?shù)據(jù)。
表2 從PLC讀取數(shù)據(jù)的命令幀格式Tab.2 Command frame format for reading data from the PLC
表3 向PLC寫(xiě)入數(shù)據(jù)的命令幀格式Tab.3 Command frame format for writing data to the PLC
在LabVIEW 編程中,系統(tǒng)利用虛擬儀器軟件規(guī)范VISA實(shí)現(xiàn)串行通信[10]。其串口通信的主要步驟包括初始化端口、讀寫(xiě)端口和關(guān)閉端口。編寫(xiě)完成的程序如圖2所示。
圖2 串口通信模塊程序Fig.2 Serial communication module program
首先使用VISA配置串口函數(shù),配置串口通信的端口號(hào)、波特率、停止位、校驗(yàn)、數(shù)據(jù)位等參數(shù)。然后利用VISA寫(xiě)入函數(shù)和VISA讀取函數(shù)進(jìn)行數(shù)據(jù)的寫(xiě)入和讀取。由于程序的運(yùn)行需要時(shí)間,中間加了延時(shí)器并利用屬性節(jié)點(diǎn)檢測(cè)讀取數(shù)據(jù)的位數(shù)。最后關(guān)閉串口釋放緩存。
由于在后續(xù)串口通信讀取與寫(xiě)入程序的編寫(xiě)過(guò)程中需要多次用到串口通信模塊程序,將串口通信模塊封裝成子VI,以方便程序的調(diào)用。此外為了提高程序的可移植性,利用輸入控件進(jìn)行串口參數(shù)的配置。這樣在使用不同的PLC時(shí),可以直接改變參數(shù)的配置。
在串口通信模塊的基礎(chǔ)上,讀取與寫(xiě)入程序的編程首先要解決的問(wèn)題是發(fā)送區(qū)符合PLC通信協(xié)議的通信命令的編寫(xiě)。而根據(jù)PLC的通信協(xié)議,通信命令的關(guān)鍵是校驗(yàn)碼的計(jì)算。
和校驗(yàn)碼的計(jì)算需要根據(jù)PLC的通信格式來(lái)確定。它由命令碼(CMD)、數(shù)據(jù)段、控制字符ETX等三部分的ASCII相加的結(jié)果的最低兩位得到[11]。其中這里的數(shù)據(jù)段主要指變量數(shù)據(jù)和變量地址。由于變量數(shù)據(jù)和變量地址都是字符串格式,在程序編寫(xiě)過(guò)程中需要使用“截取字符串”函數(shù)將字符串的每一位截取出來(lái)并轉(zhuǎn)換成十六進(jìn)制。之后利用“復(fù)合運(yùn)算”函數(shù)將三部分的數(shù)值相加。最后截取出結(jié)果的最低兩位分別輸出即可。部分程序如圖3所示。
圖3 校驗(yàn)碼計(jì)算部分程序Fig.3 Check code calculation program
程序的整體運(yùn)行思路如圖4所示。利用Lab-VIEW的“順序結(jié)構(gòu)”先進(jìn)行PLC變量地址的轉(zhuǎn)換和校驗(yàn)碼的計(jì)算,然后按照通信協(xié)議分別確定發(fā)送區(qū)讀取與寫(xiě)入的通信命令,并按照通信格式使用“連接字符串”函數(shù)將命令的各部分連接。最后利用串口通信模塊完成通信。
圖4 程序的整體思路Fig.4 Overall idea of the program
其中,PLC的軟元件地址主要有X、Y、M、D四種。變量地址計(jì)算與轉(zhuǎn)換利用“條件結(jié)構(gòu)”對(duì)X、Y、M、D軟元件地址分別進(jìn)行。讀取與寫(xiě)入模式的選擇則是通過(guò)邏輯“0”與“1”的“下拉列表”輸入控件進(jìn)行選擇(讀取為0,寫(xiě)入為1)。不同軟元件的選擇也可以利用“下拉列表”函數(shù)實(shí)現(xiàn)。最終將程序封裝成子VI,方便駐車(chē)制動(dòng)程序?qū)Σ煌浽?shù)據(jù)讀取和寫(xiě)入時(shí)的多次調(diào)用。封裝后的子VI程序如圖5所示。
圖5 讀取與寫(xiě)入子VI程序Fig.5 Reading and writing subVI programs
在使用時(shí),首先設(shè)置程序是讀取模式還是寫(xiě)入模式,讀取為0,寫(xiě)入為1。點(diǎn)開(kāi)軟元件類(lèi)型下拉列表選擇需要讀取或者寫(xiě)入的軟元件類(lèi)型,然后輸入軟元件地址即可完成對(duì)對(duì)應(yīng)軟元件的操作。
為了驗(yàn)證該串口通信程序在駐車(chē)制動(dòng)自動(dòng)調(diào)整系統(tǒng)中能否正常使用,使用該程序讀取控制“測(cè)試中”與“急停”指示燈的Y11與Y12軟元件的數(shù)據(jù)。當(dāng)使用PLC點(diǎn)亮物理指示燈時(shí),可以看到前面板的對(duì)應(yīng)虛擬指示燈同時(shí)亮起,如圖6所示。說(shuō)明該程序可以實(shí)現(xiàn)讀取功能。然后將控制PLC整個(gè)程序開(kāi)始運(yùn)行的M2寫(xiě)入邏輯“1”,發(fā)現(xiàn)PLC程序開(kāi)始運(yùn)行,駐車(chē)制動(dòng)自動(dòng)調(diào)整系統(tǒng)開(kāi)始工作。說(shuō)明該程序可以實(shí)現(xiàn)對(duì)應(yīng)軟元件的寫(xiě)入功能。
圖6 駐車(chē)制動(dòng)自動(dòng)調(diào)整系統(tǒng)前面板Fig.6 Front panel of parking brake automatic adjustment system
由于該串口通信程序是獨(dú)立的子VI程序,且直接進(jìn)行串口通信參數(shù)的配置。所以,該程序可以便捷的移植到類(lèi)似LabVIEW與PLC聯(lián)合控制的系統(tǒng)中使用。具有很好的移植性。在需要多次讀寫(xiě)不同軟元件數(shù)據(jù)的編程過(guò)程中,可以直接調(diào)用該子VI,極大的提高了編程效率。
本文根據(jù)PLC通信協(xié)議,基于LabVIEW開(kāi)發(fā)了串口通信模塊程序,實(shí)現(xiàn)了PC與PLC的通信。該方法簡(jiǎn)單可靠,節(jié)省了成本,簡(jiǎn)化了結(jié)構(gòu)。在串口通信模塊程序的基礎(chǔ)上,編寫(xiě)了對(duì)PLC不同軟元件數(shù)據(jù)讀取和寫(xiě)入子VI,實(shí)現(xiàn)了對(duì)PLC軟元件的數(shù)據(jù)監(jiān)控。便于復(fù)雜程序的多次調(diào)用,且操作簡(jiǎn)單,提高了程序開(kāi)發(fā)效率;將通信程序應(yīng)用于手制動(dòng)裝調(diào)系統(tǒng),運(yùn)行結(jié)果準(zhǔn)確可靠,驗(yàn)證了其實(shí)用性;基于LabVIEW編寫(xiě)的PLC通信子VI,只需要根據(jù)不同的通信協(xié)議更改其配置便可應(yīng)用于其他類(lèi)似系統(tǒng),具有良好的移植性。便于其他以LabVIEW為基礎(chǔ)的PC與PLC聯(lián)合控制系統(tǒng)的開(kāi)發(fā),具有很好的應(yīng)用前景。
[1]吳亞菲,何耀華.駐車(chē)制動(dòng)自動(dòng)調(diào)整系統(tǒng)的開(kāi)發(fā)研究[D].武漢:武漢理工大學(xué),2016.
[2]吳亞菲,何耀華,盧磊.駐車(chē)制動(dòng)自動(dòng)調(diào)整系統(tǒng)可靠性分析[J].武漢理工大學(xué)學(xué)報(bào),2016(12):80-84.
[3]蔣新衛(wèi).PLC在工業(yè)自動(dòng)化中的發(fā)展和應(yīng)用[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實(shí)時(shí)監(jiān)控的實(shí)現(xiàn)[J].武漢理工大學(xué)學(xué)報(bào),2001(11):53-55.
[6]柳劍.基于編程口的三菱PLC與PC串口通信實(shí)現(xiàn)[J].自動(dòng)化儀表,2010,31(11):31-35.
[7]張力.LabVIEW與三菱PLC串口通信的實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2013,32(12):51-55.
[8]汪晟杰,王宇恒,王博,等.基于LabVIEW與三菱PLC通信在液壓控制中的應(yīng)用[J].電氣與自動(dòng)化,2017(10):171-173.
[9]宋伯生.PLC編程實(shí)用指南[M].北京:機(jī)械工業(yè)出版社,2017.
[10]陳錫輝.LabVIEW8.20程序設(shè)計(jì)從入門(mén)到精通[M].北京:清華大學(xué)出版社,2007.
[11]哈立德·卡梅爾.PLC工業(yè)控制[M].北京:機(jī)械工業(yè)出版社,2015.