

Twido PLC的所有運行數據都具有掉電保持功能,也就是說,PLC運行過程中的所有字寄存器、位寄存器及特殊功能模塊等內部變量的數據,在下一次通電時的值與其斷電前的值是一致的,例外情況是當PLC發生冷啟動時,所有數據被清零(關於冷啟動的概念請參考Twido的資料)。
有(you)些(xie)設(she)備(bei)中(zhong)要(yao)求(qiu)上(shang)電(dian)時(shi)部(bu)分(fen)或(huo)全(quan)部(bu)的(de)數(shu)據(ju)區(qu)都(dou)要(yao)清(qing)零(ling)才(cai)能(neng)工(gong)作(zuo),例(li)如(ru)為(wei)防(fang)止(zhi)設(she)備(bei)在(zai)突(tu)然(ran)失(shi)電(dian)後(hou)再(zai)次(ci)通(tong)電(dian)時(shi),設(she)備(bei)突(tu)然(ran)工(gong)作(zuo)而(er)帶(dai)來(lai)對(dui)操(cao)作(zuo)人(ren)員(yuan)的(de)潛(qian)在(zai)的(de)危(wei)險(xian);或者設備的啟動需要嚴格依照特定的順序才能進入正常工作流程,等等。在這些設備的控製中,都需要在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在(zai)掉(diao)電(dian)時(shi)某(mou)一(yi)個(ge)輸(shu)出(chu)點(dian)正(zheng)處(chu)出(chu)輸(shu)出(chu)狀(zhuang)態(tai),則(ze)其(qi)在(zai)上(shang)電(dian)時(shi)會(hui)有(you)一(yi)個(ge)瞬(shun)間(jian)的(de)接(jie)通(tong)過(guo)程(cheng),即(ji)使(shi)這(zhe)個(ge)輸(shu)出(chu)點(dian)在(zai)上(shang)電(dian)時(shi)它(ta)相(xiang)關(guan)程(cheng)序(xu)部(bu)分(fen)不(bu)滿(man)足(zu)輸(shu)出(chu)的(de)條(tiao)件(jian)。這(zhe)樣(yang)一(yi)來(lai),會(hui)使(shi)部(bu)分(fen)輸(shu)出(chu)點(dian)有(you)一(yi)個(ge)快(kuai)速(su)的(de)閃(shan)動(dong),在(zai)有(you)些(xie)設(she)備(bei)的(de)控(kong)製(zhi)上(shang)不(bu)允(yun)許(xu)這(zhe)種(zhong)情(qing)況(kuang)發(fa)生(sheng),可(ke)以(yi)用(yong)以(yi)下(xia)處(chu)理(li)方(fang)式(shi)中(zhong)的(de)一(yi)種(zhong)去(qu)除(chu)這(zhe)種(zhong)影(ying)響(xiang)。
將第一個掃描周期信號的常閉點串接在輸出點控製回路中是最容易想到的:

Twido PLC的係統字%S9作用是當它被置為1時,PLC的所有輸出點被強製為0,利用這個功能,做出下麵的防止PLC輸出點在上電時閃動的程序:

如果想讓抑製PLC輸出點在上電時閃動的功能更加可靠,可以改為:

通過上麵介紹可以看到,Twido PLC雖然沒有提供某些PLC的de可ke配pei置zhi掉diao電dian保bao持chi區qu域yu的de功gong能neng,但dan可ke以yi通tong過guo編bian寫xie程cheng序xu的de方fang式shi完wan成cheng各ge種zhong要yao求qiu的de內nei存cun數shu據ju的de保bao持chi或huo清qing除chu。雖sui然ran在zai使shi用yong時shi會hui略lve顯xian麻ma煩fan,但dan為wei編bian程cheng者zhe提ti供gong了le更geng多duo的de選xuan擇ze,從cong這zhe個ge角jiao度du看kan,Twido PLC的數據保持/清除功能比使用配置方式的產品有更大的靈活性。