摘 要:應(yīng)用圖形化編程語言LabVIEW,根據(jù)松下FP1可編程控制器通信協(xié)議,開發(fā)出FP1PLC與Labview通信驅(qū)動程序,并以Labview為平臺構(gòu)建PLC虛擬控制對象:十字路口交通燈、運(yùn)料小車等,實(shí)現(xiàn)PLC對虛擬對象的控制。
關(guān)鍵詞:LabVIEW;PLC控制;虛擬對象;串口通訊
實(shí)現(xiàn)PLC對虛擬對象的控制,一方面可擺脫實(shí)物模型的限制,另一方面也可大大節(jié)約實(shí)物模型的制作成本,文獻(xiàn)[1]利用Turbo C開發(fā)了幾套PLC控制對象的仿真模型,但需要編制一定的程序才能實(shí)現(xiàn)。LabVIEW是美國國家儀器公司開發(fā)的虛擬儀器開發(fā)平臺軟件,功能強(qiáng)大靈活,廣泛應(yīng)用于自動測量系統(tǒng)、工業(yè)過程自動化、實(shí)驗(yàn)室仿真等各個領(lǐng)域[2-4]。文獻(xiàn)[5]雖利用Labview開發(fā)出了一套PLC控制對象:虛擬小車,但PLC與上位PC機(jī)間數(shù)據(jù)交換還需單片機(jī)8052作為信號轉(zhuǎn)換器。本文利用Labview構(gòu)建十字路口交通燈、運(yùn)料小車等虛擬控制對象,根據(jù)松下FP1 PLC通信協(xié)議,開發(fā)出了Labview與FP1PLC進(jìn)行串口通信的驅(qū)動程序,有效地實(shí)現(xiàn)了PLC對虛擬對象的控制,從而可以擺脫硬件模型限制。
1 FP1 PLC與Labview的串口通信
FP系列PLC通信是遵照松下電工專用通訊協(xié)議MEWTOCOL[6]來實(shí)現(xiàn)的。計(jì)算機(jī)通過MEWTOCOL—COM協(xié)議中的命令,可對PLC進(jìn)行讀、寫和監(jiān)控等。
1、多接點(diǎn)讀命令(RCP)
讀發(fā)送幀格式如下:
2、多接點(diǎn)寫命令(WCP)
寫發(fā)送幀格式如下:

要實(shí)現(xiàn)PLC對虛擬對象的控制,問題的關(guān)鍵是要根據(jù)FP1 PLC通信協(xié)議,利用Labview開發(fā)出PLC與Labview的通信驅(qū)動程序?,F(xiàn)結(jié)合虛擬交通燈模型,分別以多接點(diǎn)讀命令及多接點(diǎn)寫命令為例加以說明。
1.1 多接點(diǎn)讀命令
[align=center]

圖1 初始化串口框圖程序[/align]
讀取PLC輸出繼電器Y1、Y2、Y3狀態(tài)值可分為以下三個步驟:
第一 初始化串口:串口初始化是通過Serial Port Init模塊來實(shí)現(xiàn),設(shè)置端口號為0,波特率為9600bps,數(shù)據(jù)位為8位,停止位為1位,奇偶校驗(yàn)為奇校驗(yàn),框圖程序如圖1所示。
第二 向PLC發(fā)送多接點(diǎn)讀命令的命令參數(shù):向PLC發(fā)送多接點(diǎn)讀命令命令參數(shù)是通過Serial Port Write模塊來完成的,其框圖程序如圖2所示??驁D程序左側(cè)部分的功能為產(chǎn)生輸入命令的BCC校驗(yàn)碼,MEWTOCOL-COM協(xié)議采用異或校驗(yàn)碼,BCC校驗(yàn)碼產(chǎn)生規(guī)則為發(fā)送方把所有待發(fā)送的ASCII碼字符,從頭到尾按位作異或運(yùn)算,把結(jié)果作為BCC校驗(yàn)碼發(fā)出。Number To Hexadecimal String子VI將輸入數(shù)字轉(zhuǎn)換成規(guī)定字節(jié)數(shù)的字符串。
第三 讀取PLC反饋信息:其框圖程序如圖3所示,讀取PLC反饋信息采用Serial Port Read模塊。在讀取數(shù)據(jù)之前,需應(yīng)用Bytes at Serial Port模塊查詢當(dāng)前串口接收緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù),并將該數(shù)值存放于byte count中。如果Serial Port Read要讀取的字節(jié)數(shù)大于緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù),Serial Port Read操作將一直等待,直至Timeout或者緩沖區(qū)中的數(shù)據(jù)字節(jié)數(shù)達(dá)到要求的字節(jié)數(shù)。圖3中的Subset String函數(shù)的功能是從Serial Port Read模塊輸出的字符串中提取控制十字路口交通燈所需輸出繼電器狀態(tài)值的字符,Scan From Sting函數(shù)的作用是將Subset String函數(shù)所提取的字符串轉(zhuǎn)換成規(guī)定類型的數(shù)據(jù)。為了能夠控制十字路口交通燈的亮滅,將其轉(zhuǎn)換成可控制開關(guān)變量的Boolean型數(shù)據(jù)。
1.2 多接點(diǎn)寫命令
對于急車強(qiáng)通信號的控制,可采用外部硬開關(guān)控制,也可在用LabVIEW構(gòu)建的虛擬模型中設(shè)置兩個開關(guān)來進(jìn)行控制。此控制方式需要將PLC程序中的急車強(qiáng)通信號(X1,X2)改為中間繼電器。當(dāng)LabVIEW前面板的急車強(qiáng)通開關(guān)閉合時,就將強(qiáng)通開關(guān)的狀態(tài)寫入PLC中間繼電器R3,R4,使程序進(jìn)入強(qiáng)通運(yùn)行狀態(tài),其運(yùn)行結(jié)果在LabVIEW前面板顯示。向中間繼電器寫入數(shù)據(jù)的部分框圖程序如圖4所示。串口初始化部分與多接點(diǎn)讀命令相同。
[align=center]

圖2 向PLC發(fā)送多接點(diǎn)讀命令命令參數(shù)框圖程序

圖3 讀取PLC反饋信息框圖程序

圖4 向PLC中間繼電器寫入數(shù)據(jù)[/align]
2 十字路口交通燈虛擬對象的控制實(shí)現(xiàn)
[align=center]

圖5 東西方向有急車時的前面板狀態(tài)[/align]
為了使基于LabVIEW構(gòu)建的模型能夠正確模擬十字路口交通燈的正常運(yùn)行,應(yīng)將所有的讀取和寫入操作編輯成可為頂層VI調(diào)用的子VI程序。PLC控制急車強(qiáng)通十字路口交通燈的子VI有:讀取用于控制東西方向紅燈、黃燈的輸出繼電器狀態(tài)值的子VI 2A1;讀取控制東西方向綠燈和南北方向紅燈的輸出繼電器狀態(tài)值的子VI2A2;讀取控制南北方向黃燈和綠燈的輸出繼電器狀態(tài)值的子VI2B1;用于寫入反映急車強(qiáng)通信號的子VIR34。最后將這些子VI組合到一起,并與前面板的交通燈相連就可以實(shí)現(xiàn)一個完整的十字路口交通燈模擬控制系統(tǒng)。
圖5是在東西方向有急車強(qiáng)通時的前面板狀態(tài)圖。此時,東西方向的急車強(qiáng)通開關(guān)閉合,同時東西方向來車的車頂警示燈變亮。呼叫后東西方向的交通燈變綠,急車強(qiáng)行通過;南北方向的紅燈變亮,以方便急車通過。急車強(qiáng)通信號一旦為OFF,燈的狀態(tài)即轉(zhuǎn)為來車方向的綠燈閃3次,隨后向下順序運(yùn)行。
3 小車自動選向、定位系統(tǒng)的控制實(shí)現(xiàn)
小車模型前面板的設(shè)計(jì)包含一個運(yùn)行邊框、運(yùn)料小車和幾個用來檢測小車位置的光電開關(guān),是利用簇結(jié)構(gòu)編輯的。對于小車運(yùn)行的動態(tài)效果處理,采用定義屬性節(jié)點(diǎn)的方法,對位置屬性節(jié)點(diǎn)進(jìn)行加減常數(shù)或者加減0運(yùn)算來實(shí)現(xiàn)小車的運(yùn)行、停止。
圖6為小車模型的部分框圖程序。子VI SE的功能是用來讀取PLC發(fā)出的控制信號,即用來判斷小車左行、右行還是停止,當(dāng)PLC發(fā)出正轉(zhuǎn)(“2”)、反轉(zhuǎn)(“1”)或停止(“0”)信號時,通過Case 結(jié)構(gòu)將程序轉(zhuǎn)到對應(yīng)的位置上,實(shí)現(xiàn)位置屬性節(jié)點(diǎn)加、減常數(shù)或0。子VI R的功能用來檢測小車位置,即通過光電開關(guān)來判斷小車位置,并將位置信號傳送給PLC中間繼電器,再通過PLC程序控制,以此實(shí)現(xiàn)小車的定位。
[align=center]

圖6 小車模型框圖程序[/align]
4 結(jié)束語
本文以Labview為平臺構(gòu)建了十字路口交通燈、運(yùn)料小車虛擬控制對象,基于LabVIEW串口通訊函數(shù),開發(fā)出LabVIEW與PLC通信驅(qū)動程序,最后實(shí)現(xiàn)了PLC對十字路口交通燈、運(yùn)料小車虛擬對象的控制,控制效果良好,且具有很好的直觀性,已應(yīng)用于PLC實(shí)驗(yàn)教學(xué)。以此為基礎(chǔ),可開發(fā)出適應(yīng)面更為廣泛的虛擬工業(yè)控制對象,實(shí)現(xiàn)以PLC為核心的工業(yè)控制系統(tǒng)的虛擬設(shè)計(jì)、調(diào)試,為機(jī)電一體化產(chǎn)品的虛擬樣機(jī)開發(fā)提供技術(shù)基礎(chǔ)。
本文作者創(chuàng)新點(diǎn):根據(jù)松下FP1可編程控制器通信協(xié)議,基于LabVIEW開發(fā)出FP1PLC與Labview通信驅(qū)動程序,并成功實(shí)現(xiàn)PLC對基于LabVIEW虛擬對象的控制。
參考文獻(xiàn)
[1] 趙玉昆. PLC控制對象的計(jì)算機(jī)仿真. 計(jì)算機(jī)測量與控制.2001, 9(6): 30-31, 34
[2]劉君華等. 虛擬儀器圖形化編程語言Labview教程. 西安: 西安電子科技大學(xué)出版社. 2001
[3]汪敏生. LabVIEW基礎(chǔ)教程. 北京: 電子工業(yè)出版社, 2002: 4-49
[4]Robert H.Bishop. 喬瑞萍,林欣等譯. LabVIEW 6i 實(shí)用教程. 北京: 電子工業(yè)出版社. 2003
[5] 單士源, 張良祖, 劉美蘭. 一種對虛擬對象進(jìn)行控制的系統(tǒng)設(shè)計(jì). 微計(jì)算機(jī)信息, 2003, 19(11): 21-22
[6] 汪曉光, 孫曉瑛, 等. 可編程控制器原理及應(yīng)用, 第2版. 北京: 機(jī)械工業(yè)出版社. 2001