曹 陽(yáng), 盧 翠, 許 冰, 林 峰
(1.沈陽(yáng)航空航天大學(xué) 電子信息工程學(xué)院,遼寧 沈陽(yáng) 110136;2.沈陽(yáng)工業(yè)大學(xué) 軟件學(xué)院,遼寧 沈陽(yáng) 110023)
飛機(jī)電器裝置主要是用于對(duì)機(jī)載設(shè)備進(jìn)行自動(dòng)化控制,其工作狀態(tài)直接關(guān)系到機(jī)載系統(tǒng)工作的可靠性,因此對(duì)其檢測(cè)及故障判斷極其重要。
目前,在飛機(jī)電器裝置檢測(cè)系統(tǒng)的設(shè)計(jì)方案上,有學(xué)者提出上位機(jī)用匯編語(yǔ)言編程,硬件以單片機(jī)和液晶顯示子系統(tǒng)為核心構(gòu)成檢測(cè)系統(tǒng),該系統(tǒng)可擴(kuò)展性好、檢測(cè)效率高,但可靠性低[1];還有一些學(xué)者將Visual C++軟件平臺(tái)與嵌入式PC/104硬件設(shè)備結(jié)合構(gòu)成檢測(cè)系統(tǒng),該系統(tǒng)界面較好、操作方便,但是費(fèi)用較高[2]。針對(duì)以上方案的優(yōu)缺點(diǎn)和LabVIEW在監(jiān)控系統(tǒng)中的應(yīng)用[3-4],文中提出了采用LabVIEW與PLC結(jié)合的方式設(shè)計(jì)飛機(jī)電器裝置檢測(cè)系統(tǒng),這樣可以將LabVIEW所具有的界面友好、編程直觀、顯示多樣化的特點(diǎn)和PLC可靠性好、抗干擾能力強(qiáng)的優(yōu)點(diǎn)有機(jī)結(jié)合,構(gòu)成界面友好、功能完善、檢測(cè)便捷的系統(tǒng)。
LabVIEW與PLC相結(jié)合構(gòu)成的檢測(cè)系統(tǒng)工作時(shí)有測(cè)試程序的傳送和測(cè)試結(jié)果的返回,這就需要裝有LabVIEW軟件平臺(tái)的計(jì)算機(jī)與PLC進(jìn)行通信。通信方式主要有:1)采用OMRON公司的C200HG系列PLC,用RS232直接將HOST LINK模塊連接到上位機(jī),該方式通信速度快,穩(wěn)定性高,但是可擴(kuò)展性較差[5];2)采用OPC技術(shù),該方式的軟件開發(fā)周期短,可靠性和穩(wěn)定性較好,但需要配套的軟硬件設(shè)備,費(fèi)用高[6]。除了以上方式,還可以在西門子S7-200 PLC的自由口模式(Free Port Mode)下自定義通信協(xié)議,進(jìn)而實(shí)現(xiàn)串口通信[7]。S7-200PLC的自由端口通信模式有足夠的靈活性,用戶可以根據(jù)需要自行定義通信協(xié)議,包括計(jì)算機(jī)的發(fā)送信息格式和PLC反饋信息格式的約定。
文中應(yīng)用LabVIEW8.5為開發(fā)平臺(tái),結(jié)合以S7-200 PLC為核心的硬件,提出了基于LabVIEW8.5與S7-200PLC的飛機(jī)電器裝置檢測(cè)系統(tǒng)的設(shè)計(jì),根據(jù)實(shí)際工程應(yīng)用證明,該系統(tǒng)性能良好,檢測(cè)效率高。
計(jì)算機(jī)與PLC是通過(guò)RS-232/485轉(zhuǎn)接電纜通信的,為了避免通信過(guò)程中各方爭(zhēng)用通信線路,采用主從方式,即PC機(jī)為主機(jī),PLC為從機(jī)[8],二者連接的點(diǎn)對(duì)點(diǎn)方式如圖1所示。當(dāng)然,也可以是一臺(tái)主機(jī)多臺(tái)從機(jī)的一對(duì)多方式。
圖1 PC機(jī)與PLC的通信示意圖Fig.1 PC and PLC communication diagram
計(jì)算機(jī)發(fā)送信息的基本格式如表1所示[9]。當(dāng)通信系統(tǒng)中有多臺(tái)PLC從機(jī)時(shí),發(fā)送信息的格式中還應(yīng)包含對(duì)目標(biāo)從機(jī)地址的定義。
表1 發(fā)送信息的格式Tab.1 Format of sending information
發(fā)送信息中包含控制字符和操作數(shù)據(jù),因此,為了統(tǒng)一其數(shù)據(jù)格式、防止結(jié)束字符和數(shù)據(jù)字符混淆,所有字符都采用十六進(jìn)制ASCII形式輸出。這樣,使用ASCII碼的30H到39H和41H到46H就可以表示任何數(shù)值數(shù)據(jù)了,而控制字符可以使用各自的ASCII碼。
文章在上位計(jì)算機(jī)中定義一個(gè)24字符長(zhǎng)的發(fā)送信息指令,由16字符長(zhǎng)的控制字符和8字符長(zhǎng)的操作數(shù)據(jù)組成。計(jì)算機(jī)每次發(fā)送一條指令給下位機(jī),實(shí)現(xiàn)一次讀/寫操作。具體的發(fā)送信息格式如表2所示。
字符1為起始字符,采用大寫“S”作為起始字符;字符2、3為目標(biāo)PLC的站地址,用來(lái)標(biāo)明要發(fā)送數(shù)據(jù)的目標(biāo)地址,各個(gè)PLC據(jù)此判斷是不是發(fā)給自己的數(shù)據(jù);字符4~11為目標(biāo)寄存器地址,其中字符4、5為寄存器類型(00H:I寄存器,01H:Q 寄存器,02H:V 存儲(chǔ)區(qū),04H:M 存儲(chǔ)區(qū)),字符 6、7 為寄存器號(hào),字符8~11為地址,如VB100為0200 0064H,是V存儲(chǔ)區(qū)中的字節(jié),地址是64H;字符12為指令類型,該字符說(shuō)明上位機(jī)發(fā)出的是讀指令還是寫指令,控制PLC做相應(yīng)的讀/寫操作,這里約定 R(52H)代表讀,W(57H)代表寫;字符13為讀/寫字節(jié)數(shù),字符14~21為寫入PLC的數(shù)據(jù),占用8個(gè)字符;字符22、23為校驗(yàn)碼,是運(yùn)用布爾函數(shù)中的“復(fù)合運(yùn)算”節(jié)點(diǎn)中的“異或”模式,對(duì)字符2~21中的數(shù)據(jù)做異或運(yùn)算的結(jié)果;字符24為結(jié)束字符,采用大寫“O”作為發(fā)送信息結(jié)束字符。
發(fā)送信息格式在上位機(jī)中的實(shí)現(xiàn)過(guò)程是,以LabVIEW8.5為開發(fā)平臺(tái),利用“連接字符串”函數(shù)將發(fā)送信息封裝打包,通過(guò)VISA節(jié)點(diǎn)中的VISA Write節(jié)點(diǎn)發(fā)送給PLC。相關(guān)程序?qū)⒃诰幊虒?shí)現(xiàn)部分中給出。
表2 具體的發(fā)送信息格式Tab.2 Idiographic format of sending information
PLC每接收到上位機(jī)的一條指令,就返回一條13字符長(zhǎng)的反饋信息,其格式如表3所示。
表3 反饋信息的格式Tab.3 Format of feedbacking information
字符1為起始字符,標(biāo)明反饋信息的開始,對(duì)于不同的從機(jī)需要定義不同的起始字符,上位機(jī)由此識(shí)別反饋信息來(lái)自哪個(gè)從機(jī);字符2為狀態(tài)信息,表明PLC對(duì)上位機(jī)傳送的控制命令和數(shù)據(jù)的執(zhí)行狀態(tài)(01H:讀取正確,02H:接收正確,03H:校驗(yàn)碼有誤,04H:非法指令);字符 3~10為數(shù)據(jù)區(qū),是PLC要反饋給上位機(jī)的數(shù)據(jù),占用8個(gè)字符,以十六進(jìn)制ASCII形式表示;字符11、12為校驗(yàn)碼,是對(duì)字符2~10中的數(shù)據(jù)做異或運(yùn)算的結(jié)果,發(fā)送給上位機(jī)用于判斷傳輸?shù)臓顟B(tài);字符13為結(jié)束字符,標(biāo)明反饋信息結(jié)束,各從機(jī)可選用同一結(jié)束字符,采用小寫“o”作為反饋信息結(jié)束字符。
上位機(jī)通過(guò)LabVIEW8.5開發(fā)環(huán)境中的VISA Read節(jié)點(diǎn)讀取下位機(jī)的反饋信息,首先對(duì)其解析,主要是用到字符串函數(shù)中的“截取字符串”,然后對(duì)解析得到的數(shù)據(jù)區(qū)的數(shù)據(jù)進(jìn)行相應(yīng)的分析和處理,以便監(jiān)測(cè)下位機(jī)的工作狀態(tài)。
LabVIEW中程序設(shè)計(jì)的總體思路:首先,將發(fā)送指令中的控制字符和數(shù)據(jù)區(qū)數(shù)據(jù)通過(guò)“連接字符串”函數(shù)封裝打包;然后將打包好的發(fā)送指令作為“VISA Write”節(jié)點(diǎn)的輸入,經(jīng)轉(zhuǎn)接電纜發(fā)送給PLC。具體程序如圖2、圖3所示,其中圖2為計(jì)算異或校驗(yàn)碼、連接字符串的程序,此處封裝得到的結(jié)果是要發(fā)送給下位機(jī)的信息;圖3為串口通信程序。
圖2 發(fā)送信息的封裝Fig.2 Package of sending information
圖3中的“發(fā)送給PLC的命令和數(shù)據(jù)”就是圖2中的“發(fā)送信息”。在該串口通信程序中,對(duì)串口的配置是,VISA資源名稱即串口號(hào):COM1,波特率:9 600 b/s,8位數(shù)據(jù)位,無(wú)奇偶校驗(yàn),1位停止位,無(wú)軟件握手協(xié)議(流控制)。
完成了發(fā)送信息的封裝和傳送,下一步的工作是處理PLC返回的信息,LabVIEW利用“截取字符串”函數(shù)解析PLC返回的信息[10],具體過(guò)程如下。首先,截取第一個(gè)字符可以判斷是哪個(gè)從機(jī)的反饋信息;然后讀取第二個(gè)字符,檢查PLC對(duì)命令的執(zhí)行狀態(tài);若寫入正確,則通過(guò)圖4中的程序讀取返回信息中的數(shù)據(jù)區(qū)內(nèi)容,進(jìn)一步作相應(yīng)的分析和處理,以便對(duì)儀器設(shè)備進(jìn)行實(shí)時(shí)控制。部分程序如圖4所示。
要采用自由端口模式與上位機(jī)進(jìn)行通信,PLC必須處于運(yùn)行(RUN)狀態(tài),而且 PLC是通過(guò)調(diào)用發(fā)送指令(XMT)、接收指令(RCV),接收中斷、發(fā)送中斷來(lái)完成通信操作的,因此,為使通信正常進(jìn)行,需要對(duì)PLC自由端口的控制寄存器和RCV指令進(jìn)行初始化。部分程序如下:
圖3 串口通信程序Fig.3 Serial communication program
圖4 讀取PLC返回信息Fig.4 Read returning information of PLC
以下是初始化子程序:
完成對(duì)控制寄存器和RCV指令的初始化后,還需要設(shè)置專門的緩沖區(qū),用來(lái)存放接收到的控制命令和操作數(shù)據(jù)以及要發(fā)送的反饋信息,并定義標(biāo)志位。主要包括以下幾個(gè)子程序:
1)接收子程序PLC首先判斷指令中的目標(biāo)地址,與本機(jī)地址一致,并且指令類型為W(57H),校驗(yàn)碼正確,則執(zhí)行接收子程序,把數(shù)據(jù)存放在PLC的存儲(chǔ)區(qū)中,并發(fā)送“接收正確(02H)”的反饋信息。
2)讀取子程序PLC首先判斷指令中的目標(biāo)地址,與本機(jī)地址一致,并且指令類型為R(52H),校驗(yàn)碼正確,則執(zhí)行讀取子程序,把要讀取的數(shù)據(jù)轉(zhuǎn)換為十六進(jìn)制ASCII形式并存儲(chǔ)到緩沖區(qū),計(jì)算校驗(yàn)碼,發(fā)送反饋信息。
3)RCV_OVER接收完成中斷程序,用于把接收緩沖區(qū)的數(shù)據(jù)存放到相應(yīng)的存儲(chǔ)區(qū),計(jì)算校驗(yàn)碼,若無(wú)校驗(yàn)錯(cuò)誤則復(fù)位校驗(yàn)錯(cuò)誤指示位,若有誤則置位校驗(yàn)錯(cuò)誤指示位。
4)XMT_OVER發(fā)送完成中斷程序,發(fā)送完成后允許新的接收,緩沖區(qū)清零,復(fù)位各個(gè)標(biāo)志位。
采用上述通信協(xié)議的定義格式,文中實(shí)現(xiàn)了基于LabVIEW8.5開發(fā)平臺(tái)的計(jì)算機(jī)與PLC的飛機(jī)電器裝置檢測(cè)系統(tǒng)。該檢測(cè)系統(tǒng)的前面板如圖5所示。
圖5 檢測(cè)系統(tǒng)前面板Fig.5 Front panel of detection system
控件“測(cè)試目錄選擇”被按下后,界面切換到測(cè)試目錄選擇主菜單界面,用于選擇要檢測(cè)的電器裝置;“開始”、“確認(rèn)”、“單步測(cè)試”、“暫停”按鈕用于控制檢測(cè)過(guò)程的開始、單步測(cè)試、暫停等操作。右側(cè)是檢測(cè)結(jié)果顯示界面:標(biāo)準(zhǔn)值中以指示燈的不同顏色來(lái)表示不同的測(cè)試功能;測(cè)試值中,指示燈“綠色”表明測(cè)試值與標(biāo)準(zhǔn)值一致,“紅色”表示有故障,同時(shí)以對(duì)話框形式給出故障信息,用戶可以根據(jù)需要選擇退出檢測(cè)或是忽略故障繼續(xù)進(jìn)行下一步檢測(cè)。
實(shí)驗(yàn)表明,檢測(cè)系統(tǒng)的通信正常,能夠完成檢測(cè)工作,操作方便、界面友好。
以LabVIEW8.5為軟件開發(fā)平臺(tái)、S7-200系列PLC為底層硬件,在自由端口模式下定義通信協(xié)議,實(shí)現(xiàn)了二者的串行通信。其優(yōu)點(diǎn)是:1)LabVIEW作為軟件平臺(tái),提供了豐富的用于開發(fā)用戶界面的對(duì)象,包括圖形、圖表、按鈕與開關(guān)、指示燈等,用戶可以編制友好的人機(jī)界面,添加報(bào)警功能,進(jìn)行系統(tǒng)的監(jiān)控和管理,彌補(bǔ)了PLC不易實(shí)時(shí)顯示圖表和曲線、無(wú)良好界面、不便于監(jiān)控等缺陷。2)PLC有良好的可擴(kuò)展能力和適應(yīng)性,以其為核心構(gòu)成的控制系統(tǒng)具有可靠性高、編程簡(jiǎn)單靈活、抗干擾能力強(qiáng)的特點(diǎn),可以執(zhí)行可靠有效的分散控制。3)采用自由端口模式下的通信,不用購(gòu)買軟件,可以讀取PLC中任意存儲(chǔ)區(qū)的數(shù)據(jù),成本低,靈活性好,特別適合于小規(guī)模的控制系統(tǒng)。自由端口模式下通信協(xié)議的設(shè)計(jì)還可以結(jié)合Internet實(shí)現(xiàn)PLC控制系統(tǒng)的遠(yuǎn)程監(jiān)測(cè),具有較大的推廣空間和較好的應(yīng)用前景。
[1]賈承軍,張先勇.航空器機(jī)載繼電器盒測(cè)試儀的設(shè)計(jì)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2009,22(4):134-135.
JIA Cheng-jun.ZHANG Xian-yong.The design of aero-relay box testing instrument[J].Development&Innovation of Machinery&Electrical Products,2009,22(4):134-135.
[2]張樹勇.飛機(jī)繼電器盒綜合檢查儀研制[D].沈陽(yáng):東北大學(xué),2007.
[3]WANC Chun-chieh,Hsia K H,SU Kuo-lan,et al.Application of a remote image surveillance system in a robotic weapon[J].Artif Life Robotics,2010,15:284-290.
[4]HlaM T,MarlarK,Zaw M N.Development of process monitoring system in drilling process using fuzzy rules[J].Int J Syst Assur Eng Manag,2011,2(1):78-83.
[5]謝建君,王洪猛,徐春梅.基于LabVIEW與PLC的串級(jí)控制系統(tǒng)設(shè)計(jì)[J].工業(yè)儀表與自動(dòng)化裝置,2005(2):54-56.
XIE Jian-jun,WANG Hong-meng,XU Chun-mei.The design of a cascade control system based on LabVIEW and PLC[J].Industrial Instrument&Automation, 2005(2):54-56.
[6]羅文鋒.基于LabVIEW與PLC的船舶電站監(jiān)控系統(tǒng)的研究[D].武漢:武漢理工大學(xué),2009.
[7]湯光華,吳青.自由口模式下S7200PLC與上位機(jī)的通信[J].微計(jì)算機(jī)信息,2008,24(5-1):62-64.
TANG Guang-hua,WU Qing.Communication between host computer and S7200 PLC under Free-port mode[J].Microcomputer Information,2008,24(5-1):62-64.
[8]王晉杰.基于LabVIEW的PC與PLC實(shí)時(shí)監(jiān)控的實(shí)現(xiàn)[J].武漢理工大學(xué)學(xué)報(bào),2006,28(11):53-55.
WANG Jin-jie.Implementation of PC and PLC real-time control based on LabVIEW[J].Journal of WUT,2006,28(11):53-55.
[9]馬振鋒,劉獻(xiàn)禮,王鵬,等.基于LabVIEW7.1的PC機(jī)與PLC通信[J].哈爾濱理工大學(xué)學(xué)報(bào),2005,10(5):30-36.
MA Zhen-feng,LIU Xian-li, WANG Peng,etal.Serial communication between PLC and PC based on LabVIEW7.1[J].Journal of Harbin UNIV:SCI.&TECH,2005,10(5):30-36.
[10]柳劍,陳於學(xué),楊曙年.基于編程口的三菱PLC與PC機(jī)串行通信實(shí)現(xiàn)[J].自動(dòng)化儀表,2010,31(11):31-37.
LIU Jian,CHEN Yu-xue,YANG Shu-nian.Implementing serial communication between PC and MITSUBISHI PLC based on self-contained programming port[J].Process Automation Instrumentation,2010,31(11):31-37.