S7-200系列PLC帶參數(shù)子程序中如何使用定時器功能
吳翠萍
發(fā)布于2021-02-23 18:17
28
2
標(biāo)簽:西門子PLC,S7-200PLC,定時器
【點(diǎn)擊領(lǐng)取】三菱案例 | 西門子案例 | 電工手冊 | 工具箱 軟件
【點(diǎn)擊獲取】三菱PLC例程117個|西門子PLC例程777個
【點(diǎn)擊下載】2020最新電工仿真軟件
一、導(dǎo)讀
當(dāng)我們在設(shè)計程序時,碰到具有相同的控制要求,如需要實現(xiàn)對多臺電機(jī)進(jìn)行控制,而這些電機(jī)的控制方式是相同的,或?qū)崿F(xiàn)對某種重復(fù)的算法,如模擬量換算。
基于這種情況,我們在設(shè)計程序時,往往會考慮編寫帶參數(shù)的子程序,然后通過重復(fù)調(diào)用這子程序,給該子程序的形參賦予不同的實參,這樣可提高編程的效率和程序的課移植性。
然后受到S7-200系列PLC本身性能的問題,有一些功能并不能進(jìn)行參數(shù)化,如沿脈沖指令,定時器指令和計數(shù)器指令,當(dāng)使用到這些指令時你會發(fā)現(xiàn)無法進(jìn)行參數(shù)化,這樣在子程序中使用這些指令后,在一個掃描周期內(nèi)多次執(zhí)行時就會出現(xiàn)問題。那么如何處理呢?
二、子程序中沿脈沖指令的處理方法
當(dāng)子程序中無法使用沿脈沖指令時,我們可以根據(jù)沿脈沖指令的原則自行通過了邏輯關(guān)系的搭建方式去編寫沿脈沖指令。
上升沿的含義:
本次的狀態(tài)與上一次的狀態(tài)進(jìn)度對比,若上一次的狀態(tài)為0,而本次的狀態(tài)為1,則說明產(chǎn)生上升沿,那么可以把上一次的狀態(tài)取反,然后與本次的狀態(tài)進(jìn)行“與”運(yùn)算,運(yùn)算完后把本次的狀態(tài)再賦值給上一次的狀態(tài),則“與”運(yùn)算的結(jié)果就是一個上升沿的輸出。
下降沿的含義:
本次的狀態(tài)與上一次的狀態(tài)進(jìn)行對比,若上一次的狀態(tài)為0,本次的狀態(tài)為1,則說明產(chǎn)生下降沿,那么可以把本次的狀態(tài)取反,然后與上一次的狀態(tài)進(jìn)行“與”運(yùn)算,運(yùn)算完后把本次的狀態(tài)再賦值給上一次的狀態(tài),則“與”運(yùn)算的結(jié)果就是一個下降沿的輸出。
基于這些含義,可以不用調(diào)用上升沿和下降沿指令就可編寫出上升沿和下降沿的功能,這樣當(dāng)在帶參數(shù)子程序中應(yīng)用到上升沿和下降沿時就不會受到限制。如下為相應(yīng)的變量表和對應(yīng)的程序:
三、定時器在帶參數(shù)程序中的處理方法
對于定時器的處理可以使用沿脈沖配合指令BGN_ITIME和CAL_ITIME指令以一起可實現(xiàn)計算時間間隔差。通過這個時間間隔差可替代定時器的功能,這樣在子程序中可以不用使用定時器指令來做定時功能,可避免定時器指令無法參數(shù)化的情況實現(xiàn)。
BGN_ITIME指令:捕獲開始時間間隔指令,可以讀取內(nèi)置1毫秒計數(shù)器的當(dāng)前值,并將該值存儲在 OUT 中。
CAL_ITIME指令:捕獲間隔時間指令,計算間隔時間指令計算當(dāng)前時間與 IN 中提供的時間的時間差,然后將差值存儲在 OUT 中。
定時器的功能如下程序所示
(1)變量表的建立
(2)使用形參編寫的程序
(3)調(diào)用的塊程序
注:程序中的定時時間以ms為單位,如程序中的定時設(shè)定值為:10000ms。
(技成培訓(xùn)網(wǎng)原創(chuàng),作者:曾鑫,未經(jīng)授權(quán)不得轉(zhuǎn)載,違者必究)

技成培訓(xùn)
微信公眾號:jcpeixun
|

技成電工課堂
微信公眾號:jcdgkt
|

學(xué)PLC聯(lián)盟
微信公眾號:jcpx006
|