王文輝
(中國南方電網(wǎng)調(diào)峰調(diào)頻發(fā)電公司檢修試驗中心,廣東 廣州 511400)
基于OPC的Labview仿真軟件與PLC通訊實現(xiàn)
王文輝
(中國南方電網(wǎng)調(diào)峰調(diào)頻發(fā)電公司檢修試驗中心,廣東 廣州 511400)
介紹了基于Labview的抽水蓄能機組運行信號仿真軟件特點,并描述了仿真軟件通過NI OPC Sever與西門子S7-400PLC通信實現(xiàn)的過程。
Labview;OPC Sever;PLC;OPC Client
抽水蓄能機組是同時具有抽水與發(fā)電功能的機組,是電網(wǎng)穩(wěn)定調(diào)節(jié)的重要手段,相比一般發(fā)電機組運行工況更復雜。為模擬抽水蓄能機組現(xiàn)實運行情況,采用Labview軟件編寫了抽水蓄能機組運行仿真軟件,模擬機組正常運行過程中所涉及設備的運行信號。仿真軟件與運行機組控制程序的PLC通訊就能模擬抽水蓄能機組在正常運行過程中各工況流程。因抽水蓄能機組工況復雜,運行過程中涉及設備較多,對運行信號進行模擬的仿真軟件中變量數(shù)量十分龐大,仿真軟件與PLC通訊需交換大量數(shù)據(jù)。仿真軟件與PLC不能直接通訊,需選擇合適的方法實現(xiàn)Labview仿真軟件與PLC的實時通訊。
OPC(OLE for Pmcess Contml)是基于Windows NT技術(shù)的OLE,COM/DOOM接口的擴展,其本質(zhì)是OPC Client用一種開放的、標準化的通訊方式與OPC Server進行通訊[1]。OPC規(guī)范定義的標準接口,系統(tǒng)能夠以OPC Server(服務器)/OPC Client(客戶端)標準方式從服務器獲取數(shù)據(jù)并傳遞給客戶應用程序,利用NI OPC server可實現(xiàn)Labview仿真軟件與S7-400PLC實時通訊[2]。
仿真軟件安裝于PC機上,與PLC連接方式如圖1所示,通過Ethernet經(jīng)交換機與PLC連接。PLC通過網(wǎng)線與交換機相連,PC可以通過網(wǎng)線,亦可通過無線方式與交換機連接。在以上硬件條件下,因PLC與Labview通訊有不同的接口和規(guī)范,PLC無法直接通過Ethernet與Labview仿真軟件進行實時通訊,關(guān)鍵在于選擇標準化、通用規(guī)范的接口實現(xiàn)硬件與軟件的數(shù)據(jù)交互[3]。通過此標準、規(guī)范的通用接口,安裝有Labview仿真軟件的PC才能通過Ethernet從PLC地址塊中讀出數(shù)據(jù)或向地址塊中寫入數(shù)據(jù)。NI公司有自己的OPC Server,已得到廣泛使用,穩(wěn)定性及可靠性都得到證明,因此選用NI OPC服務器作為仿真軟件與PLC的通訊接口交互數(shù)據(jù)。
圖1 PC與PLC連接圖
PLC程序中的I/O點(輸入/輸出點)必須經(jīng)輸入/輸出端與外部硬點連接交換數(shù)據(jù)。本項目中Labview仿真軟件與PLC通訊過程中沒有硬點連接,因此無法直接實現(xiàn)仿真軟件中模擬信號與PLC中I/O點的通訊。因模擬程序可以通過PLC中的DB塊(數(shù)據(jù)塊)向PLC讀/寫數(shù)據(jù),因此在PLC程序中建立新的DB塊(數(shù)據(jù)塊),使程序中I/O點與數(shù)據(jù)塊中的點映射。如建立數(shù)據(jù)塊DB3000作為輸入數(shù)據(jù)塊,使數(shù)據(jù)塊中點DB3000.DBX0.0對應I0.0,使數(shù)據(jù)塊中點DB3000.DBX0.1對應I0.1,如此可將所有I點(輸入點)與數(shù)據(jù)塊DB3000中的點對應,同樣也可以建立輸出數(shù)據(jù)塊與O點(輸出點)對應。Labview仿真軟件通過與數(shù)據(jù)塊中點的通訊實現(xiàn)與I/O點通訊。
先創(chuàng)建一個新的OPC文件,輸入通道名(channel name),再選擇合適的設備驅(qū)動程序,本方案選擇Siemens TCP/IP Ethernet(如圖2)。選擇驅(qū)動程序后,根據(jù)驅(qū)動的不同,將彈出不同的參數(shù)配置對話框,根據(jù)設備情況配置不同參數(shù)。
圖2 設備驅(qū)動程序選擇
通過OPC控制外部設備,需要計算機寫入到外部設備寄存器,這要求比較高的實時性,有3種寫入方式供選擇。①Write all values for all tags方式,所有的OPC客戶端,都會將需要寫入的數(shù)據(jù)保存在OPC的內(nèi)部隊列里;OPC以最快的速度不斷寫入外部設備,直至隊列為空;該模式寫入的數(shù)據(jù)有嚴格的次序,即使寫入的數(shù)據(jù)相同,也必須按照內(nèi)部隊列的次序逐個寫入。②Write only latest values for non_boolean方式,通常情況下,客戶端某段時間內(nèi)寫入的數(shù)據(jù)是相同的,由于絕大多數(shù)外部設備的寄存器具有保持功能,因此沒有必要連續(xù)寫入相同的數(shù)據(jù);使用這種模式,不會寫入相同的數(shù)據(jù),避免浪費通信的帶寬;該模式除了布爾類型外,其他的類型數(shù)據(jù)只有更新后才寫入。因為一般布爾控件要求瞬間效應,所以需要立即寫入更新。③Write only latest values for all tags方式,與“Write only latest values for non_boolean”模式基本相同,區(qū)別在于對布爾值的處理;如果對布爾值的實時性要求不高,可以選擇在所有值發(fā)生變化時才寫入外部設備[4]。
抽水蓄能機組控制程序中參與控制的信號多數(shù)是數(shù)字信號,對信號實時性要求較高。在機組正常運行過程中參與控制的模擬量一般都會在一定范圍內(nèi)變化,但不是每次變化都產(chǎn)生控制信號。只有當數(shù)值變化超過設定值時才能發(fā)出控制信號。因此在仿真軟件中對模擬量仿真可以采用在特定階段給定數(shù)值的方法,簡化仿真過程但不會影響控制要求。此時選擇Write only latest values for non_boolean模式,可以避免不斷向PLC寫入模擬量數(shù)據(jù),浪費通信的帶寬,數(shù)字信號也能實時讀寫不影響控制,提高通訊效率。
Duty cycle(占空比)項設置寫次數(shù)與讀次數(shù)的比率,在仿真軟件與PLC通訊過程中,仿真軟件實時讀取PLC信號然后執(zhí)行相應的模擬仿真程序,再向PLC寫入控制命令。讀/寫時間要求一樣,因此將占空比設置為1(圖3),也就是每寫1次讀1次,如果長時間內(nèi)沒有寫入數(shù)據(jù),讀數(shù)據(jù)將按照固定的周期進行[5]。
圖3 數(shù)據(jù)寫入方式及占空比選擇
完成通道配置后添加硬件設備,一個通道可以對應多個設備,通道下所擁有設備使用相同的驅(qū)動程序。本項目中因為仿真軟件與S7-400PLC通訊,所以在配置設備對話框中,選擇S7-400PLC(圖4),之后設置PLC所在網(wǎng)絡IP地址,IP地址設定后仿真軟件可以在網(wǎng)絡上通過訪問該IP地址與PLC進行通訊。PLC中包含大量的輸入/輸出點、計數(shù)器、定時器等,這些都對應著PLC的內(nèi)部寄存器。通過配置標簽(tag),使OPC的標簽與PLC內(nèi)部的寄存器一一對應,讀寫OPC項目如同直接讀寫PLC內(nèi)部的寄存器一樣方便,中間的通信與轉(zhuǎn)換完全由驅(qū)動程序自動完成。
圖4 硬件模塊選擇
OPC是一種使用變量進行通訊的方法。在通訊過程中,通訊變量與通訊變量之間地位是相等的,即一個布爾量與一個幾十或上百字節(jié)的數(shù)組在讀寫時通訊時間基本相當。壓縮通訊變量個數(shù)的方法可提高PC與PLC之間的通訊速率[5]。抽水蓄能機組運行工況復雜,運行過程中涉及設備較多,對運行信號進行模擬的仿真軟件中變量數(shù)量十分龐大。為了提高通訊效率、節(jié)省通訊時間,把類型相同的數(shù)據(jù)組合成一個數(shù)組,減少變量以加快PC與PLC之間的通訊。本方案中將PLC控制程序中同一數(shù)據(jù)塊中同一類型的點組合成一個數(shù)組,可將數(shù)千個變量縮減為幾十個變量,大大提高通訊效率、減少通訊時間。在設備上右鍵選擇New Tag Group,定義數(shù)組名稱,然后在數(shù)組里選擇New Tag定義數(shù)組,設置數(shù)組數(shù)據(jù)類型和地址(圖5)。OPC中變量地址設置與PLC中相應變量地址相同,這樣OPC變量可以通過訪問該地址與PLC變量通訊。
圖5 數(shù)組定義
OPC Server通過Ethernet以數(shù)組的形式統(tǒng)一讀取PLC變量,仿真軟件通過OPC Server讀/寫變量時需查找出對應變量,因此需要編寫變量讀寫子程序,從數(shù)組中讀取相應變量或向相應變量內(nèi)寫值[6]。對不同類型變量的讀/寫需要不同的讀/寫子程序,圖6和圖7是對數(shù)字量讀寫子程序,通過索引數(shù)組查找變量在數(shù)組中位置,然后讀取或?qū)懭胱兞恐怠T贚abview仿真軟件中調(diào)用該讀/寫程序就可以完成對OPC Server中相應變量的讀寫。OPC Server再與PLC通訊讀出或?qū)懭胱兞勘阃瓿闪朔抡孳浖絇LC的變量傳遞,從而實現(xiàn)Labview仿真軟件與PLC的通訊。
圖6 讀取BOOL型變量子程序
圖7 寫B(tài)OOL型變量子程序
隨著OPC的發(fā)展,越來越多的軟硬件通過OPC通訊?;贠PC的Labview軟件與PLC的通訊方法效率高、速度快,適用于存在大量變量的數(shù)據(jù)通訊。該方案已成功運用于基于Labview的抽水蓄能機組控制程序測試平臺項目,應用此通訊方法,系統(tǒng)運行穩(wěn)定、可靠,效果良好。
[1]張俊彪,王鴻輝,何長安.基于OPCServer的PLC與S7-300/400的通信,[J].水電站機電技術(shù),2007,30(1):4-5.
[2]陳 欣,王浩宇,郎 朗.基于OPC技術(shù)的上位機與西門子PLC 的通信,[J].自動化與儀器儀表,2008(1):70-73.
[3]石靈丹,華 斌,吳 明.基于OPC技術(shù)的LabView與西門子PLC的實時通訊[J].船電技術(shù),2011,31(1):9-12.
[4]曾珞亞.基于OPC技術(shù)的PLC與LabView通信實現(xiàn)[J].微機計算機信息,2009,25(6):52-54.
[5]李紅梁.基于OPC的PC與PLC實時通訊的LabView實現(xiàn)[J].計算機應用研究,2003(12):115-118.
[6]YANG Zhi,LU Wu-yi,XIONG Hong-yun.The Communi cation Between LabVIEW and PLC Based on OPC[J].Journal of Changsha Aeronautical Vocational and Technical College,2006,36(3):36-40.
TN919
A
1672-5387(2015)S-0063-03
10.13599/j.cnki.11-5130.2015.S.019
2015-10-26
王文輝(1985-),男,工程師,從事抽水蓄能電站自動化技術(shù)研究工作。