?

基于軟邏輯的田間閘門鎖控制器設計

2023-02-01 14:33李桐滿丁文捷韓小龍
寧夏工程技術 2023年4期
關鍵詞:電磁鎖合閘閘門

李桐滿,丁文捷,韓小龍,洪 斌,郁 凱

(1.武漢烽火技術服務有限公司,湖北 武漢 430070;2.寧夏大學 機械工程學院,寧夏 銀川 750021;3.寧夏水利科學研究院,寧夏 銀川 750021)

基于STM32、樹莓派、89C51 和自由開發的邏輯控制器經常出現程序“跑飛”“死鎖”的情況,主要原因是程序邏輯結構和內存使用不規范,編寫的C 程序其功能和數據邏輯驗證往往存在不足,致使代碼執行的邏輯可靠性出現問題[1]。而工業PLC 使用了限制性內存變量及逐行式掃描邏輯結構,因此其控制邏輯可靠、信號處理過程穩定[2]。

國際電工委員會在IEC 61131—3 標準中統一了軟邏輯控制器的編程方法和規則,提出可以利用計算機或嵌入式控制器的軟件和硬件資源來實現硬PLC 的功能,這種技術被稱為軟邏輯[3]。近幾年,歐洲地區已有70%~80% 的工程師在使用基于IEC 61131—3 標準編制的工業編程軟件[4]。國內很多學者也在利用該標準編制軟件,如雷路路[5]設計了三菱FX 系列嵌入式PLC 系統,該系統以STM32 為控制核心,利用PLC 編程工具開發了代碼,并且成功實現了嵌入式PLC 的通信。林江靜[6]給出了符合IEC 61131—3 標準的由梯形圖到C 語言的轉換算法,轉化后的程序下載控制器可實現嵌入式PLC 功能。因此,基于IEC 61131—3 標準開發具有端口輪詢處理功能、逐行式掃描邏輯結構、異常監測機制、變量規范、程序邏輯結構和功能塊穩定運行等特點的編程規范就顯得極為重要了。編程規范可以滿足工業領域對控制器提出的通用性強、可靠性高、運行速度快和控制功能完善等需求,從而實現其應用價值。

為了高效利用水資源,減少灌溉期巡查管理模式下管理人員的工作量,本文提出了一種便于農戶自助使用的田間閘門鎖控制器系統[7-8]。該控制器基于文中提出的軟邏輯編程規范及北斗通信協議對田間閘開閘和合閘過程進行了硬件設計,并且能夠實現對系統的遠程控制。

1 軟邏輯編程規范結構分析

1.1 端口輪詢處理

輪詢處理是IEC 61131—3 標準中規定的控制器管理輸入輸出接口的方式[9]。輪詢是指CPU 主動發出詢問,并且依序詢問每一個輸入輸出接口需要的相關數據傳輸服務請求。當設備的標志位指示為“準備正?!睜顟B時,CPU 會向該設備提供輸入輸出接口服務。

1.2 逐行式掃描邏輯結構

IEC 61131—3 標準要求CPU 設置一部分應用數據存儲單元來存儲應用程序執行期間輸入/輸出(I/O)映像的數據狀態及定時器、計數器、條件設定值等信息,程序執行過程如圖1 所示。由圖1 可知,程序按順序執行代碼,但上一條指令是否成功執行不會影響下一條指令的執行。

圖1 程序執行過程

1.3 異常監測機制

軟邏輯編程需要使用看門狗功能塊,用于監視程序執行過程中出現的異常情況。當系統受到外部干擾或程序進入死循環時會自動激活看門狗功能并中止當前任務和對應程序,然后重新啟動系統[10]。

2 軟邏輯編程規范開發

2.1 變量規范開發

變量規范開發主要包括兩個步驟,具體如下。

(1)定義接口變量。接口變量包括輸入口單元IO、輸出口單元QO、位存儲器單元M 變量、定時器接口變量及計數器接口變量。本文使用C 語言中的位域定義了字節中的位操作,同時采用了關鍵字volatile 指令,該指令不會因編譯器的優化而被省略且程序執行時會直接讀取變量值。此外,系統規定接口變量的輸入輸出狀態分為有輸入(“1”)和無輸入(“0”)兩種。輸入存儲器的4 種引用方法如表1所示。

表1 輸入存儲器引用方法

(2)本地變量聲明。本地變量分為局部存儲器單元與全局存儲器單元,其僅供程序內邏輯使用,不需要和外部串口及網絡進行通信。

2.2 端口初始化配置

I/O 端口需要進行初始化邏輯定義,其端口配置如表2 所示。

2.3 程序邏輯結構設計

硬PLC 的編程語言中大量使用了if…else 等選擇語句及for…while 等循環語句,并且有嚴格的使用規范,如for 語句的循環嵌套最多為8 層[11]。本文根據IEC 61131—3 標準制定了軟邏輯編程語言的邏輯規范:if…else 條件判斷語句可嵌套2 層,for 循環語句可嵌套2 層,while 主循環語句有且只有1個;條件判斷式可使用接口變量和本地變量。

2.4 功能塊函數編程設計

2.4.1 定時器功能塊函數 系統設定定時器的定時值為pt,定時單位值為acc,則定時時間T=pt×acc,單位為ms。定時器設定情況見表3。

表3 定時器設定表

本文以定時器2 為例來說明定時器調用程序的流程(圖2)。調用定時器2 時,首先打開定時器中斷TIM2_Control(1);然后調用定時器封裝函數,確定T[2].bits._0 的值;最后再執行后續的程序體。此外,定時器使用結束后要關閉定時器中斷TIM2_Control(0),目的是減少定時器中斷之間的串擾。

圖2 定時器2調用程序流程圖

2.4.2 計數器功能塊函數 硬PLC 計數器是實現次數動作的計數器。編程規范規定計數器共有3 種類型,即加計數器、減計數器和加減計數器,計數值為pv,其規范如表4 所示。

表4 計數器規范

2.5 軟邏輯規范實例化程序

以下為部分軟邏輯規范實例化程序。

頭文件#include “PLC.h”

全局變量聲明;

程序單元(本地變量)

{本地變量聲明;

設備初始化;

while(1)

{I_filter(1);//輸入口掃描函數;

程序邏輯主體;

PLC_IO_Refresh();}}//調用輸出刷新函數;

……

3 田間閘門鎖控制系統

本文基于軟邏輯規范設計了田間閘門鎖控制系統。該系統通過北斗通信設備與服務器及用戶終端相互配合[12],其組成示意圖如圖3 所示。

圖3 田間閘門控制系統組成示意圖

3.1 控制系統硬件設計

田間閘門鎖控制系統硬件設計步驟:北斗通信模塊將檢測到的水量數據傳輸至服務器,服務器接收水量數據并儲存;服務器通過北斗通信模塊傳送閘門操作指令,控制器操控第一霍爾傳感器接收磁塊靠近信號和超聲波傳感器距離減少信號來實現開閘操作,或者是控制器操控第二霍爾傳感器接收磁塊靠近信號和超聲波傳感器距離增加信號來實現合閘操作;電磁鎖配合完成閘門開合,從而實現農戶自助灌溉管理和灌溉過程中水量的精確統計。田間閘門鎖控制器硬件連接示意圖如圖4 所示。

圖4 控制器硬件連接示意圖

3.2 控制系統流程設計

3.2.1 開合閘 開合閘流程圖見圖 5。由圖5 可知:首先控制器接收開鎖指令,控制電磁鎖開鎖;然后農戶對水閘裝置進行相應的操作;傳感器配合電磁鎖實現水閘裝置的開閘或合閘動作,同時向服務器發送水量數據,包括瞬時流量、累計流量和當前水位,數據為IEEE—754 標準浮點數,即先將單精度浮點數據轉換為16 進制數據報文,再發送至服務器。

圖5 開合閘流程圖

圖6 關閉電磁鎖流程圖

圖7 主循環程序流程圖

圖8 開閘應答程序流程圖

3.2.2 打開電磁鎖 控制器接收到服務器發送的開閘或合閘指令后,控制電磁鎖的鎖銷從掛環中脫離,實現閘門動作。

3.2.3 關閉電磁鎖 田間閘門鎖控制器的感應距離L會隨著閘門的升起和放下而發生變化。首先,控制器控制電磁鎖打開,閘門在低位時的第一預設距離為140 mm

4 程序開發

連接外部設備的I/O 端口分配表見表5。系統功能參數數據表見表 6。

表5 I/O端口分配表

表6 系統功能參數數據表

4.1 主循環程序

本文采用Keil MDK V5 軟件進行了系統程序編制,主要涉及輸入輸出初始化PLC_IO_config()、RS 485_Init(19 200)、定時器初始化TIM_config_Init()、ADC 初始化Adc_Init()、超聲波初始化Ultrasonic_Init()、看門狗初始化IWDG_Init(7,1 000)等函數。主循環程序流程圖如圖 7 所示。

相比傳統程序,軟邏輯程序只使用了1 個主循環while 結構,并且采用逐行循環掃描方式實現了輸入接口掃描、程序體執行及輸出接口刷新過程。此外,程序中的if 邏輯判斷語句只嵌套了1 層。綜上可知,程序設計中的變量規范且采用了看門狗監測程序,符合軟邏輯編程規范。

4.2 開閘應答程序

開閘程序也采用了1 個主循環while 結構及逐行循環掃描方式,并且接口變量規范。其中,定時器4用來配合監測超聲波距離值,并且看門狗監測程序等內容符合規范要求。開閘應答程序流程圖如圖 8所示。

5 系統測試

田間閘門鎖控制器的測試工作主要包括以下幾個部分。

(1)內存變量測試。程序編譯后,內存變量所占存儲空間為28 856 字節,未超出總內存。此外,程序中無動態內存變量申請,內存變量的使用符合內存管理規范。

(2)端口程序測試。測試中,Q00 端口輸出高電平,固態繼電器電路導通并控制電磁鎖打開,實物見圖9。此外,超聲波傳感器、霍爾傳感器、液位傳感器可以正常采集數據,并且以上傳感器采集數據的邏輯判斷過程符合程序邏輯結構設計流程。

圖9 硬件連接實物圖

(3)通信程序測試。經測試,RS485端口可以穩定接收與發送北斗報文數據。串口1監測傳感器數據的界面如圖10所示,其中左側數據監測區用于檢查閘門操作信息,右側通信數據區用于檢查服務器通信報文。

圖10 串口1監測界面

(4)功能塊測試。經過測試,采用超聲波觸發信號的定時器能夠正常工作。測量距離數據見圖10。

(5)程序可靠性測試。系統進行了168 h的串口測試(圖10),串口共接收424 375 937條數據。本文通過查看數據記錄,可知程序執行過程中沒有觸發異常監測機制,程序沒有出現“跑飛”“卡死”等故障,即長時間運行測試達到了預期的可靠性目標。以上程序測試的主要結果如表7所示。

表7 程序測試結果

6 結論

本文給出了軟邏輯編程規范,并且根據田間閘門鎖控制器的控制要求,制定了利用北斗通信協議對開閘和合閘過程進行控制的硬件設計方案,制定了控制器的主循環程序和開閘應答程序,實現了遠程控制電磁鎖打開和關閉的操作。主要結論如下。

(1)定時器4 實現了超聲波觸發信號每隔20 μs重復開關1 次的操作。此外,程序可連續運行168 h,驗證了編程模型邏輯、變量規范、端口初始化配置、程序邏輯結構、定時器功能塊函數、異常監測機制和其他功能函數的可靠性。

(2)經項目組調整,庫文件程序的正確率提高了20%,為C 程序庫文件的便捷調用提供了依據,并且解決了由定時器觸發中斷時間短、模式選擇多,傳感器數據采集不到位,輸出端口和開合閘指令設計不足等因素引發的運行穩定性及程序移植穩定性問題。

猜你喜歡
電磁鎖合閘閘門
我終于會過地鐵閘門了
基于FTA的電磁鎖故障分析
負極刀閘電磁鎖故障分析及處理
地鐵安全門電磁鎖的優化研究
基于DCS系統的廠用電設備防誤配置策略
把住醫?;鹚亻l門
找準入口,打開思路的閘門
基于Hilbert變換的斷路器選相合閘技術的研究
我國專家發現藥物成癮新機制,找到“閘門”開關
一次不合閘故障引發的電池組更新問題
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合