范然然,蘇 磊,藍偉銘
(柳州職業技術學院 機電工程學院,廣西 柳州 545000)
水箱液位控制系統是工業過程控制中常見的控制系統,液位控制系統因其涉及到的傳感器數量多且種類較為復雜,初期調試階段需要花費較長的時間,并且上位機監控畫面的設計也是其重點[1]。西門子S7-1200 可編程邏輯控制器(Rogrammable Logic Controller,PLC)作為目前工業控制常用的控制器得到了較為廣泛的應用,但是其售價較高,尤其是在受到全球芯片短缺的情況下,許多PLC 公司都提高其產品的售價。西門子公司的S7-1200PLC 市場占有率是最高的,有著廣泛的應用場景和實際使用群體[2]。本文針對在缺少西門子物理S7-1200PLC的情況下,開發出一套借助于仿真控制器來完成對水箱液位控制系統調試的途徑和手段,為S7-1200PLC 水箱液位控制系統虛擬調試開拓新的方法。
案例中控制要求為有一水箱,水箱進水可由變頻器驅動的三相異步電機水泵泵入,現需對水箱中水位體積進行液位體積控制,并可在5500mL ~20000mL(最大值數據可根據水箱高度確定)范圍內進行調節。系統中中間水箱為帶有加熱棒控制的水箱,可以在浮球開關浮起時對水進行加熱。上部水箱有S7-1200PLC 控制的比例閥來進行開度調節,實現放水功能。系統元件框架如圖1。

圖1 系統元件框架圖Fig.1 Frame diagram of system components
系統以S7-1200PLC 為控制核心元件,采用CPU 1214C DC/DC/DC 型PLC,考慮模擬量控制元器件較多的編程需求,根據實際工況的組態狀況,選用SM1234 AI4/AQ2模擬量拓展模塊作為模擬量輸入/輸出控制模塊。本文中主要是針對液位系統的仿真與分析,被控對象以模擬量信號的采集與控制為主,涉及到的模擬量采集信號有溫度、壓力、距離,模擬量輸出控制信號主要有變頻器頻率、比例閥開度。考慮到編程與仿真的快捷性,所有模擬量信號采集和輸出控制均將地址建立在背景數據塊(data block,DB)DB1 中。PLC 控制模擬量輸如輸出分配表見表1。

表1 模擬量輸入輸出變量表Table 1 Analog input and output variable table
在TIA15.1 中循環中斷組織塊(organization block,OB)的功能是循環中斷組織塊OB 在經過一段固定的時間間隔后執行相應的中斷OB 中的程序。S7-1200最多支持4 個循環中斷OB,在創建循環中斷OB 時設定固定的間隔掃描時間。循環中斷OB 的編號為30 ~38。本文考慮模擬量信號的采集周期和實際需求,為了提高CPU的運行速度,將模擬量控制程序編寫在建立的循環中斷OB30 中,其執行過程如圖2[3]。

圖2 循環中斷OB30的執行過程Fig.2 Execution process of cyclic interrupt OB30
PLC 上電后,首先執行主程序OB1 中的程序,在下一個間隔時間后,再執行OB30。OB30 的循環時間可以在其屬性中設定,本文中設置為100ms。如果以相同的時間間隔調用優先級較高和優先級較低的循環中斷OB,則只有在優先級較高的OB 完成處理后,才會執行優先級較低的OB。低優先級OB 的執行起始時間會根據優先級較高的OB 的處理時間而延遲,如果希望以固定的時間間隔來執行優先級較低的OB,則優先級較低的OB 需要設置相移時間,且相移時間應大于優先級較高的OB 的執行時間,本文采用默認相移時間。
在圖3(a)中,編寫了對溫度這一模擬量信號的采集程序。根據S7-1200 中模擬量信號的轉換關系可知,模擬量信號采集模塊是將溫度變送器采集到的電信號經過D/A 轉換,變為0 ~27648 范圍內的數字量,然后才能使用NORM_X 進行標準化和使用SCALE_X 進行縮放。由于是進行模擬仿真,為盡量接近工程實際中的應用環境,在此將D/A 轉換后的數據關聯到DB1 中,進而可以直接在組態王中可以直接輸入0 ~27648 之間的數據。通過輸入的數據來模擬外圍溫度變送器所采集到的溫度信號。利用同樣的方法,編寫了壓力變送器采集到的壓力電信號,以及超聲波傳感器采集到的距離電信號。本文中采用的超聲波傳感器采集的是超聲波探頭距離頁面高度的結果為30mm ~300mm,但是實際現場是水箱上標注有體積的刻度。為此,采用了編程推導轉換實現液位高度轉化為液位體積[4],程序如圖3(b)。另外,在實際人機交互畫面(human machine interface,HMI)中,變頻器頻率是直接在畫面上可以設定的,故本文針對實際控制需求作了兩次的標準化和縮放的程序編寫。首先,將變頻器設定值進行標準化和縮放。這一步是為了將0Hz ~50Hz 這個物理量轉換為0 ~27648 的數字量,之后為了方便在HMI中監控實際的頻率值,又將0 ~27648 的數字量進行標準化和縮放為0Hz ~50Hz 的物理量,顯示在HMI 中。通過兩次的標準化和縮放過程更能直觀地對變頻器控制程序的虛擬調試進行仿真驗證。

圖3 模擬量信號采集與控制程序Fig.3 Analog signal acquisition and control program
西門子的S7-PLCSIM 在博圖中的仿真較為單一。TIA15.1 中可以實現西門子WINCC 和西門子PLC 的仿真,但是對于第三方的組態軟件則不能直接實現仿真。要實現第三方組態軟件的仿真,則需要使用NetToPLCSim這款工具軟件。NetToPLCsim 與S7-1200PLC 仿真須依靠S7-PLCSIM 一起使用,可以將TIA15.1 中的程序地址映射到上位機中,進而可以實現第三方的組態軟件對PLC 程序的訪問與控制,從而實現在沒有PLC 硬件的情況下的項目調試。設置PC 及和模擬S7-1200PLC 的參數如下:①Network IP Address,運行PLCSim的 機 器 的IP 地 址:192.168.0.100;Plcsim IP Address:PLC 的IP 地址,根據實際的PLC 硬件組態輸入:192.168.0.1;Rack/Slot:PLC 所在的機架號和槽位號,根據實際的PLC 硬件組態輸入,S7-1200 一般是R0/S1。
在本文中主要定義組態王中的I/O 變量。組態王中外部數據與軟件通訊交換主要依靠I/O 變量,PLC 程序中需要采集和監控的數據、交換的指令,比如“液位體積”“開關”等變量,都要設置成“I/O 變量”。本文中數據類型用到了實型變量,用于表示PLC 中的Real 型數據,以浮點(FIOAT)型數據形式選用;離散變量,是只有0,1 兩種取值的布爾量(BOOL),用于表示一些開關量[4],根據控制系統的設計要求組態王中定義的變量見表2。

表2 組態王中定義的變量表Table 2 Variables defined in Kingview
根據圖1 系統元件框架圖中的元器件與PLC 控制系統的關系,在組態王中組建了如圖4 所示的畫面。畫面分為系統監控區和操作控制區,在系統監控區可以實時監控當前系統中各個傳感器采集的數據和PLC 控制程序發送的數據;在操作控制區可以對溫度、頻率、超聲波距離、壓力、比例閥等進行控制和調試。圖4 中在組態王畫面中設置溫度虛擬采集值為10000,按照NORM_X 和SCALE_X 程序的理論計算應該為36.16899℃,畫面監控值為36.17℃。這是因為畫面僅取了實型變量小數點后兩位進行四舍五入的結果。圖4 中還將各個參數均進行了調試,結果顯示系統完全可以正常仿真運行,并且傳輸速度較快,比較真實地對水箱液位控制系統進行了仿真調試。

圖4 TIA15.1與組態王運行調試畫面Fig.4 TIA15.1 and Kingview running and debugging screen
通過對水箱液位控制系統中上位機組態王的畫面設計,使用NetToPLCsim 與S7-PLCSIM 進行通訊參數設定,聯合組態王進行仿真運行。結果發現NetToPLCsim 對S7-PLCSIM 地址映射穩定性和可行性較高,無論離散變量還是實型變量均可以進行虛擬調試,水箱液位值系統按照程序設定預期結果運行良好。該方法可以為S7-1200PLC過程控制系統的搭建提供重要的技術支撐,對于在缺少昂貴的實物PLC 情況下,同時又需要對非西門子產品上位機和下位機之間進行系統聯調的工程任務起到了重要的虛擬調試借鑒意義。