6EP1333-2BA20 SITOP PSU100S 24 V/5 A STABILIZED POWER SUPPLY INPUT: 120/230 V AC OUTPUT: 24 V/5 A DC |
西門子西門子SITOP電源5A訂貨號:6EP1333-2BA20
想請教一下高手們,關于定時器S_ODT的復位的問題,我在主程序OB1中調用自己編寫的FC功能塊,在FC中使用了定時器S_ODT,當在OB1中調用FC功能塊的條件不滿足時,但FC功能塊中的程序并沒有執行完,在下一次當調用條件再符合時,FC中的程序會接著上次中止的部分繼續執行,我想在每一次調用FC功能塊的時候,(無論是在FC功能塊中程序執行完后,然后再次調用,還是在FC功能塊中程序還沒有執行完,但調用條件已經不滿足時,當條件再次滿足時繼續FC功能塊中的程序)保證定時器S_ODT是從設定值開始倒計時的,請教有過這樣經驗的高手幫忙!
僅從實現某單一邏輯功能來看,指令如何用以及用什么指令是無所謂好壞優劣的,任智之見不過是個人偏好而已。只有在系統模型的層面才能決定優劣取舍。
一個程序系統的水平主要就體現在系統的模型框架方面。編程著手應該從模型開始,而不是具體的邏輯語句。就像建大廈是先搭樓體骨架,后墻體、再裝修。
從程序的可讀、易懂、維護、調試等方面的要求出發,程序的每個指令或邏輯的處理以及數據的傳遞都應該是明確而且明示的,否則條件發生變化時,尤其是變化的組合多樣化,這些指令或邏輯處理的邊界條件就會混亂不清,起碼達不到一覽無遺,這種編程方式很容易形成邏輯BUG或死區,一則錯難查,而則錯難糾。所以本人非常贊同“邏輯程序讓OB1每個周期都掃描到”這個原則。
mars ld同行的程序就出現了某段程序在某些條件下,CPU對這段程序是失控的,不管不問,因此當CPU在新的條件下進入這段程序時,程序員自己都不知道CPU是如何處理的。
所以改指令之前先梳理清晰你的系統模型。
班主的批評不錯,本人得益非淺.其實條件調用功能或功能塊時,當條件不滿足時,這個功能或功能塊,在CPU掃描到這個位置時,是不會進去掃描這個功能或功能里面的程序的,而是跳過直接掃描下一個語句.那你這個功能或功能塊里的所有的變量會保持剛調用之前的狀態.除非里面的變量給其他的功能或功能塊調用并刷新.所以你的定時器及其它變量是保持在剛調用前的狀態的.
我以前曾做過一個試驗,就是在S7-300CPU的OB100中編了個語句:
AN Q0.7
=Q0.7
只要是這個Q0.7僅在這使用,Q0.7是保持常亮的.
這說明了在S7-300程序中,一個程序塊不被掃描時,其中的變量是保持原態的.
班主意思說得很明白了,盡量少用條件調用功量或功量塊.調用條件要做在功能或功量塊里面.
說白了就是,讓系統掃描到你的每個邏輯條件并及時刷新,不要留下死角讓系統掃描不到.
樓主的工藝要求每個時期只有一個步驟在進行,這與CPU的掃描是沒有沖突的.因為只要邏輯條件滿足的才被執行,不滿足的就不被執行.掃描時只不過是每個周期不斷地刷新你的邏輯結果而已.并不是說掃描到你的程序就一定執行,是不是?
西門子SITOP電源5A簡介
SITOP PSU100S 24 V/5 A 調節電源 輸入:AC 120/230 V 輸出:DC 24 V/5 A
設備描述
SITOP PSU100S 是一款用于連接到單相交流電網的開關型電源。 本電源輸出的是一個可由電位計調節的直流電壓。 電源輸出端為電位隔離,設計有空載保護和短路保護。 LED 信號用于顯示運行狀態。 通過信號觸點可以進一步處理設備的運行狀態。