摘 要:應(yīng)用圖形化編程語(yǔ)言LabVIEW,根據(jù)松下FP1可編程控制器通信協(xié)議,開(kāi)發(fā)出FP1PLC與Labview通信驅(qū)動(dòng)程序,并以Labview為平臺(tái)構(gòu)建PLC虛擬控制對(duì)象:十字路口交通燈、運(yùn)料小車等,實(shí)現(xiàn)PLC對(duì)虛擬對(duì)象的控制。
關(guān)鍵詞:LabVIEW;PLC控制;虛擬對(duì)象;串口通訊
實(shí)現(xiàn)PLC對(duì)虛擬對(duì)象的控制,一方面可擺脫實(shí)物模型的限制,另一方面也可大大節(jié)約實(shí)物模型的制作成本,文獻(xiàn)[1]利用Turbo C開(kāi)發(fā)了幾套PLC控制對(duì)象的仿真模型,但需要編制一定的程序才能實(shí)現(xiàn)。LabVIEW是美國(guó)國(guó)家儀器公司開(kāi)發(fā)的虛擬儀器開(kāi)發(fā)平臺(tái)軟件,功能強(qiáng)大靈活,廣泛應(yīng)用于自動(dòng)測(cè)量系統(tǒng)、工業(yè)過(guò)程自動(dòng)化、實(shí)驗(yàn)室仿真等各個(gè)領(lǐng)域[2-4]。文獻(xiàn)[5]雖利用Labview開(kāi)發(fā)出了一套PLC控制對(duì)象:虛擬小車,但PLC與上位PC機(jī)間數(shù)據(jù)交換還需單片機(jī)8052作為信號(hào)轉(zhuǎn)換器。本文利用Labview構(gòu)建十字路口交通燈、運(yùn)料小車等虛擬控制對(duì)象,根據(jù)松下FP1 PLC通信協(xié)議,開(kāi)發(fā)出了Labview與FP1PLC進(jìn)行串口通信的驅(qū)動(dòng)程序,有效地實(shí)現(xiàn)了PLC對(duì)虛擬對(duì)象的控制,從而可以擺脫硬件模型限制。
1 FP1 PLC與Labview的串口通信
FP系列PLC通信是遵照松下電工專用通訊協(xié)議MEWTOCOL[6]來(lái)實(shí)現(xiàn)的。計(jì)算機(jī)通過(guò)MEWTOCOL—COM協(xié)議中的命令,可對(duì)PLC進(jìn)行讀、寫(xiě)和監(jiān)控等。
1、多接點(diǎn)讀命令(RCP)
讀發(fā)送幀格式如下:
2、多接點(diǎn)寫(xiě)命令(WCP)
寫(xiě)發(fā)送幀格式如下:
要實(shí)現(xiàn)PLC對(duì)虛擬對(duì)象的控制,問(wèn)題的關(guān)鍵是要根據(jù)FP1 PLC通信協(xié)議,利用Labview開(kāi)發(fā)出PLC與Labview的通信驅(qū)動(dòng)程序?,F(xiàn)結(jié)合虛擬交通燈模型,分別以多接點(diǎn)讀命令及多接點(diǎn)寫(xiě)命令為例加以說(shuō)明。
1.1 多接點(diǎn)讀命令
[align=center]
圖1 初始化串口框圖程序[/align]
讀取PLC輸出繼電器Y1、Y2、Y3狀態(tài)值可分為以下三個(gè)步驟:
第一 初始化串口:串口初始化是通過(guò)Serial Port Init模塊來(lái)實(shí)現(xiàn),設(shè)置端口號(hào)為0,波特率為9600bps,數(shù)據(jù)位為8位,停止位為1位,奇偶校驗(yàn)為奇校驗(yàn),框圖程序如圖1所示。
第二 向PLC發(fā)送多接點(diǎn)讀命令的命令參數(shù):向PLC發(fā)送多接點(diǎn)讀命令命令參數(shù)是通過(guò)Serial Port Write模塊來(lái)完成的,其框圖程序如圖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)換成可控制開(kāi)關(guān)變量的Boolean型數(shù)據(jù)。
1.2 多接點(diǎn)寫(xiě)命令
對(duì)于急車強(qiáng)通信號(hào)的控制,可采用外部硬開(kāi)關(guān)控制,也可在用LabVIEW構(gòu)建的虛擬模型中設(shè)置兩個(gè)開(kāi)關(guān)來(lái)進(jìn)行控制。此控制方式需要將PLC程序中的急車強(qiáng)通信號(hào)(X1,X2)改為中間繼電器。當(dāng)LabVIEW前面板的急車強(qiáng)通開(kāi)關(guān)閉合時(shí),就將強(qiáng)通開(kāi)關(guān)的狀態(tài)寫(xiě)入PLC中間繼電器R3,R4,使程序進(jìn)入強(qiáng)通運(yùn)行狀態(tài),其運(yùn)行結(jié)果在LabVIEW前面板顯示。向中間繼電器寫(xiě)入數(shù)據(jù)的部分框圖程序如圖4所示。串口初始化部分與多接點(diǎn)讀命令相同。
[align=center]
圖2 向PLC發(fā)送多接點(diǎn)讀命令命令參數(shù)框圖程序
圖3 讀取PLC反饋信息框圖程序
圖4 向PLC中間繼電器寫(xiě)入數(shù)據(jù)[/align]
2 十字路口交通燈虛擬對(duì)象的控制實(shí)現(xiàn)
[align=center]
圖5 東西方向有急車時(shí)的前面板狀態(tài)[/align]
為了使基于LabVIEW構(gòu)建的模型能夠正確模擬十字路口交通燈的正常運(yùn)行,應(yīng)將所有的讀取和寫(xiě)入操作編輯成可為頂層VI調(diào)用的子VI程序。PLC控制急車強(qiáng)通十字路口交通燈的子VI有:讀取用于控制東西方向紅燈、黃燈的輸出繼電器狀態(tài)值的子VI 2A1;讀取控制東西方向綠燈和南北方向紅燈的輸出繼電器狀態(tài)值的子VI2A2;讀取控制南北方向黃燈和綠燈的輸出繼電器狀態(tài)值的子VI2B1;用于寫(xiě)入反映急車強(qiáng)通信號(hào)的子VIR34。最后將這些子VI組合到一起,并與前面板的交通燈相連就可以實(shí)現(xiàn)一個(gè)完整的十字路口交通燈模擬控制系統(tǒng)。
圖5是在東西方向有急車強(qiáng)通時(shí)的前面板狀態(tài)圖。此時(shí),東西方向的急車強(qiáng)通開(kāi)關(guān)閉合,同時(shí)東西方向來(lái)車的車頂警示燈變亮。呼叫后東西方向的交通燈變綠,急車強(qiáng)行通過(guò);南北方向的紅燈變亮,以方便急車通過(guò)。急車強(qiáng)通信號(hào)一旦為OFF,燈的狀態(tài)即轉(zhuǎn)為來(lái)車方向的綠燈閃3次,隨后向下順序運(yùn)行。
3 小車自動(dòng)選向、定位系統(tǒng)的控制實(shí)現(xiàn)
小車模型前面板的設(shè)計(jì)包含一個(gè)運(yùn)行邊框、運(yùn)料小車和幾個(gè)用來(lái)檢測(cè)小車位置的光電開(kāi)關(guān),是利用簇結(jié)構(gòu)編輯的。對(duì)于小車運(yùn)行的動(dòng)態(tài)效果處理,采用定義屬性節(jié)點(diǎn)的方法,對(duì)位置屬性節(jié)點(diǎn)進(jìn)行加減常數(shù)或者加減0運(yùn)算來(lái)實(shí)現(xiàn)小車的運(yùn)行、停止。
圖6為小車模型的部分框圖程序。子VI SE的功能是用來(lái)讀取PLC發(fā)出的控制信號(hào),即用來(lái)判斷小車左行、右行還是停止,當(dāng)PLC發(fā)出正轉(zhuǎn)(“2”)、反轉(zhuǎn)(“1”)或停止(“0”)信號(hào)時(shí),通過(guò)Case 結(jié)構(gòu)將程序轉(zhuǎn)到對(duì)應(yīng)的位置上,實(shí)現(xiàn)位置屬性節(jié)點(diǎn)加、減常數(shù)或0。子VI R的功能用來(lái)檢測(cè)小車位置,即通過(guò)光電開(kāi)關(guān)來(lái)判斷小車位置,并將位置信號(hào)傳送給PLC中間繼電器,再通過(guò)PLC程序控制,以此實(shí)現(xiàn)小車的定位。
[align=center]
圖6 小車模型框圖程序[/align]
4 結(jié)束語(yǔ)
本文以Labview為平臺(tái)構(gòu)建了十字路口交通燈、運(yùn)料小車虛擬控制對(duì)象,基于LabVIEW串口通訊函數(shù),開(kāi)發(fā)出LabVIEW與PLC通信驅(qū)動(dòng)程序,最后實(shí)現(xiàn)了PLC對(duì)十字路口交通燈、運(yùn)料小車虛擬對(duì)象的控制,控制效果良好,且具有很好的直觀性,已應(yīng)用于PLC實(shí)驗(yàn)教學(xué)。以此為基礎(chǔ),可開(kāi)發(fā)出適應(yīng)面更為廣泛的虛擬工業(yè)控制對(duì)象,實(shí)現(xiàn)以PLC為核心的工業(yè)控制系統(tǒng)的虛擬設(shè)計(jì)、調(diào)試,為機(jī)電一體化產(chǎn)品的虛擬樣機(jī)開(kāi)發(fā)提供技術(shù)基礎(chǔ)。
本文作者創(chuàng)新點(diǎn):根據(jù)松下FP1可編程控制器通信協(xié)議,基于LabVIEW開(kāi)發(fā)出FP1PLC與Labview通信驅(qū)動(dòng)程序,并成功實(shí)現(xiàn)PLC對(duì)基于LabVIEW虛擬對(duì)象的控制。
參考文獻(xiàn)
[1] 趙玉昆. PLC控制對(duì)象的計(jì)算機(jī)仿真. 計(jì)算機(jī)測(cè)量與控制.2001, 9(6): 30-31, 34
[2]劉君華等. 虛擬儀器圖形化編程語(yǔ)言Labview教程. 西安: 西安電子科技大學(xué)出版社. 2001
[3]汪敏生. LabVIEW基礎(chǔ)教程. 北京: 電子工業(yè)出版社, 2002: 4-49
[4]Robert H.Bishop. 喬瑞萍,林欣等譯. LabVIEW 6i 實(shí)用教程. 北京: 電子工業(yè)出版社. 2003
[5] 單士源, 張良祖, 劉美蘭. 一種對(duì)虛擬對(duì)象進(jìn)行控制的系統(tǒng)設(shè)計(jì). 微計(jì)算機(jī)信息, 2003, 19(11): 21-22
[6] 汪曉光, 孫曉瑛, 等. 可編程控制器原理及應(yīng)用, 第2版. 北京: 機(jī)械工業(yè)出版社. 2001