問(wèn)題1:數(shù)據(jù)塊的初始值有什么作用?
回答:數(shù)據(jù)塊的初始值僅對(duì)于一個(gè)數(shù)據(jù)塊的"離線"組態(tài)有意義。如果用戶(hù)離線創(chuàng)建了一個(gè)新的數(shù)據(jù)塊或者在離線組態(tài)的過(guò)程中在數(shù)據(jù)塊里創(chuàng)建了一個(gè)新的變量,如果用戶(hù)不做任何修改,新建的變量會(huì)使用系統(tǒng)默認(rèn)值作為初始值,如果用戶(hù)為此變量了其它數(shù)值作為初始值,數(shù)據(jù)塊將會(huì)多占用相應(yīng)變量長(zhǎng)度的Load memory。在此后的操作中(數(shù)據(jù)塊的上傳及下載),只要數(shù)據(jù)塊的結(jié)構(gòu),變量的數(shù)據(jù)類(lèi)型沒(méi)有發(fā)生改變,變量的初始值都沒(méi)有實(shí)際作用,只起到變量類(lèi)型定義的作用。
如果用戶(hù)不給此新建的變量實(shí)際值,初始值會(huì)被用作變量的實(shí)際值。
用戶(hù)可以給變量實(shí)際值,初始值可以與實(shí)際值不同。
問(wèn)題2:數(shù)據(jù)塊的實(shí)際值有什么作用?回答:數(shù)據(jù)塊中的每個(gè)變量都有自己的實(shí)際值,如果用戶(hù)不自行,系統(tǒng)將使用初始值作為變量的實(shí)際值;如果用戶(hù)自行變量的實(shí)際值,則變量的初始值與實(shí)際值可能不相同。
如果用戶(hù)在data view 視圖下,在菜單命令中執(zhí)行Edit →initialize data block,數(shù)據(jù)塊中所有變量的實(shí)際值都將被初始值覆蓋(用戶(hù)執(zhí)行此操作需要格外謹(jǐn)慎,需要確認(rèn)不再需要數(shù)據(jù)塊中的實(shí)際值)。
#FormatImgID_1# 問(wèn)題3:數(shù)據(jù)塊如何實(shí)現(xiàn)斷電保持特性?
回答:為了斷電保存數(shù)據(jù),S7-300CPU中的Work memory劃分為兩部分,其中一部分類(lèi)型為RAM(斷電丟失),一部分為NVRAM(斷電保持),如果數(shù)據(jù)塊為斷電保持,則此數(shù)據(jù)塊需要占用具備斷電保持特性的Work memory部分。當(dāng)CPU 經(jīng)歷POWER ON→POWER OFF→ POWER ON或者RESTART過(guò)程后,數(shù)據(jù)塊中的數(shù)據(jù)不會(huì)丟失。
注意:
當(dāng)用戶(hù)在S7-300CPU 項(xiàng)目中插入新的數(shù)據(jù)塊時(shí),系統(tǒng)默認(rèn)其屬性為斷電保持。
數(shù)據(jù)塊斷電保持是work memory 的特性,與Load memory(MMC) 無(wú)關(guān)。
問(wèn)題4:具備斷電保持特性的數(shù)據(jù)塊何時(shí)會(huì)丟失當(dāng)前值?回答:如下操作會(huì)導(dǎo)致數(shù)據(jù)塊丟失當(dāng)前值
? Memory RESET 操作(手動(dòng)開(kāi)關(guān)操作及STEP7 中菜單操作)
? CPU在沒(méi)有MMC卡的情況下上電(實(shí)際是因?yàn)榇饲闆r導(dǎo)致了CPU執(zhí)行Memory RESET操作)
? 插入損壞MMC卡/錯(cuò)誤MMC卡的情況下上電(實(shí)際是因?yàn)榇饲闆r導(dǎo)致了CPU執(zhí)行Memory RESET操作)
? CPU損壞
? 下載數(shù)據(jù)塊,且離線數(shù)據(jù)塊中的actual value 與當(dāng)前數(shù)據(jù)塊中的數(shù)值不同
注意:Memory RESET操作將刪除標(biāo)志位、S7 定時(shí)器和 S7 計(jì)數(shù)器地址區(qū)的值,而不管這些區(qū)域是否已定義為保持或非保持屬性。對(duì)于停止/啟動(dòng)(STOP/RUN)操作模式或斷電/上電(POWER OFF/ON ),如果標(biāo)志位、S7 定時(shí)器和 S7 計(jì)數(shù)器地址區(qū)已定義為保持,則保持它們的數(shù)值;否則,這些區(qū)域的數(shù)值將丟失且被初始化為“0”。
問(wèn)題5:如何使MMC卡中的數(shù)據(jù)塊與Work memory中的數(shù)據(jù)塊保持一致?回答:當(dāng)用戶(hù)*次將數(shù)據(jù)塊下載到CPU 后,如果用戶(hù)程序及用戶(hù)監(jiān)控/修改操作對(duì)數(shù)據(jù)塊未進(jìn)行過(guò)任何修改,則MMC卡中的數(shù)據(jù)塊與Work memory中的數(shù)據(jù)塊內(nèi)容是一致的(這種情況在實(shí)際應(yīng)用中很少出現(xiàn))。
一般情況下,用戶(hù)程序及用戶(hù)的監(jiān)控/修改操作都會(huì)影響數(shù)據(jù)塊的當(dāng)前值,此數(shù)值位于Work memory中,這樣MMC卡中的數(shù)據(jù)塊有可能與Work memory中的數(shù)據(jù)塊內(nèi)容不一致。對(duì)于不同的數(shù)據(jù)塊屬性,此情況會(huì)有所不同,可分為3種:
1. 勾選了Un-linked 選項(xiàng)的數(shù)據(jù)塊
此數(shù)據(jù)塊只存儲(chǔ)于MMC卡,不存在與Work memory數(shù)據(jù)一致問(wèn)題
2. 勾選了Non-Retain選項(xiàng)的數(shù)據(jù)塊
由于此類(lèi)數(shù)據(jù)塊斷電不保持,所以在每次斷電后,Work memory中數(shù)據(jù)塊當(dāng)前值丟失;CPU再上電后,MMC卡中數(shù)據(jù)塊被復(fù)制到Work memory中,兩者將保持?jǐn)?shù)據(jù)一致。
3. 未勾選Non-Retain選項(xiàng)的數(shù)據(jù)塊
由于此類(lèi)數(shù)據(jù)塊斷電保持,所以在每次斷電后,Work memory中數(shù)據(jù)塊當(dāng)前值保持;CPU再上電后,MMC卡中數(shù)據(jù)塊有可能與Work memory中數(shù)據(jù)不一致。
解決辦法:
1. 需要Work memory中數(shù)據(jù)塊作為保留值:請(qǐng)參考問(wèn)題11的操作
2. 需要MMC卡中數(shù)據(jù)塊作為保留值:執(zhí)行RESET 操作