范然然,蘇 磊,藍(lán)偉銘
(柳州職業(yè)技術(shù)學(xué)院 機(jī)電工程學(xué)院,廣西 柳州 545000)
水箱液位控制系統(tǒng)是工業(yè)過(guò)程控制中常見(jiàn)的控制系統(tǒng),液位控制系統(tǒng)因其涉及到的傳感器數(shù)量多且種類較為復(fù)雜,初期調(diào)試階段需要花費(fèi)較長(zhǎng)的時(shí)間,并且上位機(jī)監(jiān)控畫(huà)面的設(shè)計(jì)也是其重點(diǎn)[1]。西門子S7-1200 可編程邏輯控制器(Rogrammable Logic Controller,PLC)作為目前工業(yè)控制常用的控制器得到了較為廣泛的應(yīng)用,但是其售價(jià)較高,尤其是在受到全球芯片短缺的情況下,許多PLC 公司都提高其產(chǎn)品的售價(jià)。西門子公司的S7-1200PLC 市場(chǎng)占有率是最高的,有著廣泛的應(yīng)用場(chǎng)景和實(shí)際使用群體[2]。本文針對(duì)在缺少西門子物理S7-1200PLC的情況下,開(kāi)發(fā)出一套借助于仿真控制器來(lái)完成對(duì)水箱液位控制系統(tǒng)調(diào)試的途徑和手段,為S7-1200PLC 水箱液位控制系統(tǒng)虛擬調(diào)試開(kāi)拓新的方法。
案例中控制要求為有一水箱,水箱進(jìn)水可由變頻器驅(qū)動(dòng)的三相異步電機(jī)水泵泵入,現(xiàn)需對(duì)水箱中水位體積進(jìn)行液位體積控制,并可在5500mL ~20000mL(最大值數(shù)據(jù)可根據(jù)水箱高度確定)范圍內(nèi)進(jìn)行調(diào)節(jié)。系統(tǒng)中中間水箱為帶有加熱棒控制的水箱,可以在浮球開(kāi)關(guān)浮起時(shí)對(duì)水進(jìn)行加熱。上部水箱有S7-1200PLC 控制的比例閥來(lái)進(jìn)行開(kāi)度調(diào)節(jié),實(shí)現(xiàn)放水功能。系統(tǒng)元件框架如圖1。
圖1 系統(tǒng)元件框架圖Fig.1 Frame diagram of system components
系統(tǒng)以S7-1200PLC 為控制核心元件,采用CPU 1214C DC/DC/DC 型PLC,考慮模擬量控制元器件較多的編程需求,根據(jù)實(shí)際工況的組態(tài)狀況,選用SM1234 AI4/AQ2模擬量拓展模塊作為模擬量輸入/輸出控制模塊。本文中主要是針對(duì)液位系統(tǒng)的仿真與分析,被控對(duì)象以模擬量信號(hào)的采集與控制為主,涉及到的模擬量采集信號(hào)有溫度、壓力、距離,模擬量輸出控制信號(hào)主要有變頻器頻率、比例閥開(kāi)度??紤]到編程與仿真的快捷性,所有模擬量信號(hào)采集和輸出控制均將地址建立在背景數(shù)據(jù)塊(data block,DB)DB1 中。PLC 控制模擬量輸如輸出分配表見(jiàn)表1。
表1 模擬量輸入輸出變量表Table 1 Analog input and output variable table
在TIA15.1 中循環(huán)中斷組織塊(organization block,OB)的功能是循環(huán)中斷組織塊OB 在經(jīng)過(guò)一段固定的時(shí)間間隔后執(zhí)行相應(yīng)的中斷OB 中的程序。S7-1200最多支持4 個(gè)循環(huán)中斷OB,在創(chuàng)建循環(huán)中斷OB 時(shí)設(shè)定固定的間隔掃描時(shí)間。循環(huán)中斷OB 的編號(hào)為30 ~38。本文考慮模擬量信號(hào)的采集周期和實(shí)際需求,為了提高CPU的運(yùn)行速度,將模擬量控制程序編寫(xiě)在建立的循環(huán)中斷OB30 中,其執(zhí)行過(guò)程如圖2[3]。
圖2 循環(huán)中斷OB30的執(zhí)行過(guò)程Fig.2 Execution process of cyclic interrupt OB30
PLC 上電后,首先執(zhí)行主程序OB1 中的程序,在下一個(gè)間隔時(shí)間后,再執(zhí)行OB30。OB30 的循環(huán)時(shí)間可以在其屬性中設(shè)定,本文中設(shè)置為100ms。如果以相同的時(shí)間間隔調(diào)用優(yōu)先級(jí)較高和優(yōu)先級(jí)較低的循環(huán)中斷OB,則只有在優(yōu)先級(jí)較高的OB 完成處理后,才會(huì)執(zhí)行優(yōu)先級(jí)較低的OB。低優(yōu)先級(jí)OB 的執(zhí)行起始時(shí)間會(huì)根據(jù)優(yōu)先級(jí)較高的OB 的處理時(shí)間而延遲,如果希望以固定的時(shí)間間隔來(lái)執(zhí)行優(yōu)先級(jí)較低的OB,則優(yōu)先級(jí)較低的OB 需要設(shè)置相移時(shí)間,且相移時(shí)間應(yīng)大于優(yōu)先級(jí)較高的OB 的執(zhí)行時(shí)間,本文采用默認(rèn)相移時(shí)間。
在圖3(a)中,編寫(xiě)了對(duì)溫度這一模擬量信號(hào)的采集程序。根據(jù)S7-1200 中模擬量信號(hào)的轉(zhuǎn)換關(guān)系可知,模擬量信號(hào)采集模塊是將溫度變送器采集到的電信號(hào)經(jīng)過(guò)D/A 轉(zhuǎn)換,變?yōu)? ~27648 范圍內(nèi)的數(shù)字量,然后才能使用NORM_X 進(jìn)行標(biāo)準(zhǔn)化和使用SCALE_X 進(jìn)行縮放。由于是進(jìn)行模擬仿真,為盡量接近工程實(shí)際中的應(yīng)用環(huán)境,在此將D/A 轉(zhuǎn)換后的數(shù)據(jù)關(guān)聯(lián)到DB1 中,進(jìn)而可以直接在組態(tài)王中可以直接輸入0 ~27648 之間的數(shù)據(jù)。通過(guò)輸入的數(shù)據(jù)來(lái)模擬外圍溫度變送器所采集到的溫度信號(hào)。利用同樣的方法,編寫(xiě)了壓力變送器采集到的壓力電信號(hào),以及超聲波傳感器采集到的距離電信號(hào)。本文中采用的超聲波傳感器采集的是超聲波探頭距離頁(yè)面高度的結(jié)果為30mm ~300mm,但是實(shí)際現(xiàn)場(chǎng)是水箱上標(biāo)注有體積的刻度。為此,采用了編程推導(dǎo)轉(zhuǎn)換實(shí)現(xiàn)液位高度轉(zhuǎn)化為液位體積[4],程序如圖3(b)。另外,在實(shí)際人機(jī)交互畫(huà)面(human machine interface,HMI)中,變頻器頻率是直接在畫(huà)面上可以設(shè)定的,故本文針對(duì)實(shí)際控制需求作了兩次的標(biāo)準(zhǔn)化和縮放的程序編寫(xiě)。首先,將變頻器設(shè)定值進(jìn)行標(biāo)準(zhǔn)化和縮放。這一步是為了將0Hz ~50Hz 這個(gè)物理量轉(zhuǎn)換為0 ~27648 的數(shù)字量,之后為了方便在HMI中監(jiān)控實(shí)際的頻率值,又將0 ~27648 的數(shù)字量進(jìn)行標(biāo)準(zhǔn)化和縮放為0Hz ~50Hz 的物理量,顯示在HMI 中。通過(guò)兩次的標(biāo)準(zhǔn)化和縮放過(guò)程更能直觀地對(duì)變頻器控制程序的虛擬調(diào)試進(jìn)行仿真驗(yàn)證。
圖3 模擬量信號(hào)采集與控制程序Fig.3 Analog signal acquisition and control program
西門子的S7-PLCSIM 在博圖中的仿真較為單一。TIA15.1 中可以實(shí)現(xiàn)西門子WINCC 和西門子PLC 的仿真,但是對(duì)于第三方的組態(tài)軟件則不能直接實(shí)現(xiàn)仿真。要實(shí)現(xiàn)第三方組態(tài)軟件的仿真,則需要使用NetToPLCSim這款工具軟件。NetToPLCsim 與S7-1200PLC 仿真須依靠S7-PLCSIM 一起使用,可以將TIA15.1 中的程序地址映射到上位機(jī)中,進(jìn)而可以實(shí)現(xiàn)第三方的組態(tài)軟件對(duì)PLC 程序的訪問(wèn)與控制,從而實(shí)現(xiàn)在沒(méi)有PLC 硬件的情況下的項(xiàng)目調(diào)試。設(shè)置PC 及和模擬S7-1200PLC 的參數(shù)如下:①Network IP Address,運(yùn)行PLCSim的 機(jī) 器 的IP 地 址:192.168.0.100;Plcsim IP Address:PLC 的IP 地址,根據(jù)實(shí)際的PLC 硬件組態(tài)輸入:192.168.0.1;Rack/Slot:PLC 所在的機(jī)架號(hào)和槽位號(hào),根據(jù)實(shí)際的PLC 硬件組態(tài)輸入,S7-1200 一般是R0/S1。
在本文中主要定義組態(tài)王中的I/O 變量。組態(tài)王中外部數(shù)據(jù)與軟件通訊交換主要依靠I/O 變量,PLC 程序中需要采集和監(jiān)控的數(shù)據(jù)、交換的指令,比如“液位體積”“開(kāi)關(guān)”等變量,都要設(shè)置成“I/O 變量”。本文中數(shù)據(jù)類型用到了實(shí)型變量,用于表示PLC 中的Real 型數(shù)據(jù),以浮點(diǎn)(FIOAT)型數(shù)據(jù)形式選用;離散變量,是只有0,1 兩種取值的布爾量(BOOL),用于表示一些開(kāi)關(guān)量[4],根據(jù)控制系統(tǒng)的設(shè)計(jì)要求組態(tài)王中定義的變量見(jiàn)表2。
表2 組態(tài)王中定義的變量表Table 2 Variables defined in Kingview
根據(jù)圖1 系統(tǒng)元件框架圖中的元器件與PLC 控制系統(tǒng)的關(guān)系,在組態(tài)王中組建了如圖4 所示的畫(huà)面。畫(huà)面分為系統(tǒng)監(jiān)控區(qū)和操作控制區(qū),在系統(tǒng)監(jiān)控區(qū)可以實(shí)時(shí)監(jiān)控當(dāng)前系統(tǒng)中各個(gè)傳感器采集的數(shù)據(jù)和PLC 控制程序發(fā)送的數(shù)據(jù);在操作控制區(qū)可以對(duì)溫度、頻率、超聲波距離、壓力、比例閥等進(jìn)行控制和調(diào)試。圖4 中在組態(tài)王畫(huà)面中設(shè)置溫度虛擬采集值為10000,按照NORM_X 和SCALE_X 程序的理論計(jì)算應(yīng)該為36.16899℃,畫(huà)面監(jiān)控值為36.17℃。這是因?yàn)楫?huà)面僅取了實(shí)型變量小數(shù)點(diǎn)后兩位進(jìn)行四舍五入的結(jié)果。圖4 中還將各個(gè)參數(shù)均進(jìn)行了調(diào)試,結(jié)果顯示系統(tǒng)完全可以正常仿真運(yùn)行,并且傳輸速度較快,比較真實(shí)地對(duì)水箱液位控制系統(tǒng)進(jìn)行了仿真調(diào)試。
圖4 TIA15.1與組態(tài)王運(yùn)行調(diào)試畫(huà)面Fig.4 TIA15.1 and Kingview running and debugging screen
通過(guò)對(duì)水箱液位控制系統(tǒng)中上位機(jī)組態(tài)王的畫(huà)面設(shè)計(jì),使用NetToPLCsim 與S7-PLCSIM 進(jìn)行通訊參數(shù)設(shè)定,聯(lián)合組態(tài)王進(jìn)行仿真運(yùn)行。結(jié)果發(fā)現(xiàn)NetToPLCsim 對(duì)S7-PLCSIM 地址映射穩(wěn)定性和可行性較高,無(wú)論離散變量還是實(shí)型變量均可以進(jìn)行虛擬調(diào)試,水箱液位值系統(tǒng)按照程序設(shè)定預(yù)期結(jié)果運(yùn)行良好。該方法可以為S7-1200PLC過(guò)程控制系統(tǒng)的搭建提供重要的技術(shù)支撐,對(duì)于在缺少昂貴的實(shí)物PLC 情況下,同時(shí)又需要對(duì)非西門子產(chǎn)品上位機(jī)和下位機(jī)之間進(jìn)行系統(tǒng)聯(lián)調(diào)的工程任務(wù)起到了重要的虛擬調(diào)試借鑒意義。