王安邦++徐從躍++何升慶
摘 要本文主要講述了在如何在編程中使用壓棧堆棧的方法對延時進行處理,分別使用了數據傳送的方式以及指針的方式進行編程,對兩種編程方法進行了比較,并對兩種編程方法的適用性以及靈活性進行了分析。
【關鍵詞】自動控制系統(tǒng) PLC 壓棧堆棧
目前,在自動控制系統(tǒng)中,我們經常遇到需要處理延時加水或加料的問題,一般常使用壓棧堆棧處理來實現延時?,F在我們以設備自動加水系統(tǒng)為例,通過在PLC控制系統(tǒng)中使用這種控制方法。
在設備自動加水系統(tǒng)中,一般根據電子秤的物料流量乘以加水系數來計算加水的流量,由于電子秤上物料到加水位置有一段距離,為了保證把水準確的施加到物料的表面,我們需要對物料流量進行延時處理。 下面我們使用壓棧堆棧方法來處理,實現延時加水。
1 使用數據傳送進行程序編制
電子稱上物料距離加水點需要5秒時間,我們通過對西門子PLC程序進行改進,來實現延時加水。我們把電子稱流量數據變量名定為DB10.DBD100,延時后的電子稱流量為DB10.DBD200。然后這個數字乘以加水系數即為當前加水位置的水流量。程序如圖1所示。
在圖1中,使用時間繼電器來實現0.5秒的震蕩脈沖,即M432.0每隔0.5秒接通一次, 然后在圖2中, 在第一秒時M432.0接通,程序跳轉執(zhí)行M003,此時把電子稱流量DB10.DBD100傳送給DB20.DBD0,其余的DB20.DBD4 、DB20.DBD12等數據為空,在第1.5秒時,程序開始執(zhí)行M004,把第一秒的電子稱流量傳送給DB20.DBD4,此時在DB20.DBD0和DB20.DBD4中存儲的數據都為第一秒的電子稱流量。在第2秒時,程序執(zhí)行M003,把第2秒的電子稱流量傳送給DB20.DBD0,同時把DB20DBD4傳送給DB20.DBD8,此時DB20.DBD4和DB20.DBD8中儲存的數據為第一秒的電子稱流量。當程序連續(xù)執(zhí)行時,DB20.DBD40儲存的數據是5秒前的數據,即DB20.DBD40的數據是電子稱數據經過5秒后輸出的數據,也就是經過了5秒的延時。然后把DB20.DBD40傳送給DB10.DBD200,這樣DB10.DBD200就是電子稱流量DB10.DBD100延時5秒的數據。這樣
把DB10.DBD200乘以加水系數,算出當前加水量,即可實現當前延時加水。
上面的這種方法直接使用脈沖,通過PLC程序的跳轉來在數據塊中傳送數據,實現了數據的延時輸出,但是這種方法編程所使用的程序字節(jié)較多,當需要延時50秒時,程序占用的字節(jié)就會很多,需要一直傳送到DB20.DBD400,編程起來比較繁瑣如果需要延時100秒、200秒呢!這是我們使用另一種帶指針的編程方法來實現。使用指針來進行編程。
2 使用指針進行程序編制
我們以50秒數據延時為例,來進行指針編程。見圖3。
圖3的程序被塊OB32(每隔1秒掃描一次)調用,其中主要使用FB11功能塊來實現電子稱數據延時,而FB11功能塊的內部程序見圖4。我們來分析一下圖4中的程序如何實現50秒延時。首先,#in1為輸入數據50,代表50秒延時,把#in1裝入臨時變量#tm3來同進行比較,如果小于700,程序跳轉至m001,在把 #tm3同1進行比較,如果大于1,程序跳轉至m002,裝載靜態(tài)變量#st2(初始值為0),程序FB11每掃描一次#st2的數值加1,然后同#tm3進行比較,如果小于#tm3,在程序跳轉至m003,如果#st2大于數值大于50,則程序會先把#st2重新置零,然后在跳轉至m003。在m003中,首先對#st2左移5位,也就是把數字#st2乘以32,這樣就等于是把數字“位”變化成了雙字,即在數據塊中只會出現DBD0、DBD4、DBD8等之類的數據,地址指針指向#st1(初始值為0),把它同#st2相加,然后把對應的地址裝載如地址寄存器AR1。程序每隔一秒掃描一次,這樣在第一秒時把DBD0傳送給#out(延時后的電子稱流量),然后把#in0(電子稱流量)傳送給DBD0,以后每隔一秒均是如此,大家可以看到到第50秒時把DBD196傳送給#out,然后把當前的電子稱流量#in0傳送給DBD196。這種使用指針的編程方法實現了數據的延時處理,而且比較靈活,只要在圖3中#in1的引腳輸入不同的數字,即可實現不同時間的延時。
數據延時在自動控制系統(tǒng)中使用的較為廣泛,使用第一種數據傳送的方法編程較為簡單也容易理解,使用第二中指針編程的方法,在程序內部使用地址寄存器來實現數據傳送,結構要復雜一些,但是這種功能塊比較靈活,可以實現不同的延時,而且可以反復調用。
參考文獻
[1]程昊.PLC變頻器用于大中型企業(yè)電氣自動化控制的可行性[J].科技展望,2017,27(17):145.
[2]王穎麗.可編程邏輯控制器技術的發(fā)展[J/OL].河南科技,2016(03):24.
作者單位
安徽中煙工業(yè)有限責任公司合肥卷煙廠 安徽省合肥市 230601endprint