
Twido PLC的所有運行數據都具有掉電保持功能,也就是說,PLC運行過程中的所有字寄存器、位寄存器及特殊功能模塊等內部變量的數據,在下一次通電時的值與其斷電前的值是一致的,例外情況是當PLC發生冷啟動時,所有數據被清零(關于冷啟動的概念請參考Twido的資料)。
有些設備中要求上電時部分或全部的數據區都要清零才能工作,例如為防止設備在突然失電后再次通電時,設備突然工作而帶來對操作人員的潛在的危險;或者設備的啟動需要嚴格依照特定的順序才能進入正常工作流程,等等。在這些設備的控制中,都需要在PLC上電時的第一個掃描周期處理相應的數據處理(多數為清除數據中的內容或清除數據內容后再對部分數據賦以初始值)。
從不同設備的數據初始化的要求上劃分,有清除全部數據或清除部分數據的要求;而從Twido PLC的實現上來講,實現兩種要求都沒有問題。設備的編程人員需要分析設備的實際要求,確認清除全部同內存是否可以,如果可以,那么PLC的編程非常簡單;如果不能清除全部內存數據,需要知道那些類型的內存數據(內存字寄存器?內存位寄存器?還是某些特殊功能塊的數據?等等)不可以被清除,不同的內存數據清除要求,其實現的PLC程序是不一樣的。下面就幾種不同內存數據清除要求分別說明。
一、 PLC中的所有內存數據都可以清除
這種情況下的編程是最簡單的,只要利用Twido PLC的系統位%S0就可以完成。見下面程序圖。需要注意,對系統位%S0的操作不能用SET指令,否則PLC無法正常工作。
指令表程序:
(* 上電后第一個掃描周期做初始化,清除全部數據 *)
(* %S1熱啟動標志;%S13是PLC由編程狀態轉入運行狀態標志 *)
LD 1
AND( %S1
OR %S13
)
ST %S0
二、 PLC中除部分內存字寄存器(%MW)外的所有內存數據都可以清除
這種情況的編程簡單的方式是用第一種情況的程序再配合系統位%S95、%S96及系統字%SW97,將需要保留的內存字寄存器%MW的數據保存到Twido PLC內置的Flash中,等到數據清除操作完成后,再將相關的%MW的數據從Flash中調出。
使用Twido PLC的內置的Falsh保存及恢復%MW數據,需要規劃好需要操作的%MW數據區,使之從%MW0開始。編程的細節可以參考另外一篇文章《施耐德電氣Twido系列PLC數據掉電保存的應用》。
三、 PLC中需要保留部分內存字寄存器(%MW)及部分內存位寄存器(%M)
這種情況可以考慮為清除掉不需要保留的內存字寄存器(%MW)及內存位寄存器(%M),先生成一個第一個掃描周期的標志,用這個標志完成不需要保留部分內存的數據。
下面的程序中清除%MW90~%MW189共100個內存字寄存器%MW及%M64~%M95共32個內存位寄存器%M。
指令表程序:
(* 得到上電后第一個掃描周期的標志 *)
(* %S1熱啟動標志;%S13是PLC由編程狀態轉入運行狀態標志 *)
LD 1
AND( %S1
OR %S13
)
ST %M0
(* 清除部分內存字寄存器%MW及部分內存位寄存器%M *)
LD %M0
[ %MW90:100 := 0 ]
[ %M64:16 := 0 ]
[ %M80:16 := 0 ]
四、 清除部分特殊功能塊的數據
首先需要生成一個第一個掃描周期的標志:
上電時清除定時器的數據(復位)
上電時清除計數器的數據(復位)
上電時清除步進計數器的數據(復位)
上電時清除堆棧(LIFO)寄存器/隊列(FIFO)寄存器/移位寄存器的數據(復位)
上電時清除鼓形控制器的數據(復位)
其它帶有復位端(R)的特殊功能塊,都可以將第一個掃描周期信號接到它的復位端上完成其數據清除功能。
五、 Twido PLC數據的掉電保持功能對輸出點的影響
在Twido PLC中,如果PLC在掉電時某一個輸出點正處出輸出狀態,則其在上電時會有一個瞬間的接通過程,即使這個輸出點在上電時它相關程序部分不滿足輸出的條件。這樣一來,會使部分輸出點有一個快速的閃動,在有些設備的控制上不允許這種情況發生,可以用以下處理方式中的一種去除這種影響。
將第一個掃描周期信號的常閉點串接在輸出點控制回路中是最容易想到的:
Twido PLC的系統字%S9作用是當它被置為1時,PLC的所有輸出點被強制為0,利用這個功能,做出下面的防止PLC輸出點在上電時閃動的程序:
如果想讓抑制PLC輸出點在上電時閃動的功能更加可靠,可以改為:
通過上面介紹可以看到,Twido PLC雖然沒有提供某些PLC的可配置掉電保持區域的功能,但可以通過編寫程序的方式完成各種要求的內存數據的保持或清除。雖然在使用時會略顯麻煩,但為編程者提供了更多的選擇,從這個角度看,Twido PLC的數據保持/清除功能比使用配置方式的產品有更大的靈活性。