1功能介紹
s7-1500產(chǎn)品系列的cpu支持在運(yùn)行期間擴(kuò)展函數(shù)塊的接口,或者增加全局?jǐn)?shù)據(jù)塊的變量。此過(guò)程無(wú)需將cpu設(shè)置為stop模式,既可下載已修改的塊,此時(shí)也不會(huì)影響已經(jīng)加載變量的過(guò)程值。這是一種簡(jiǎn)單的程序更改實(shí)施方式,這一加載過(guò)程(無(wú)需重新初始化的加載)不會(huì)對(duì)受控對(duì)象造成負(fù)面影響。
原理:被激活為“優(yōu)化塊訪問(wèn)”(optimized block access)屬性的函數(shù)塊或者數(shù)據(jù)塊已經(jīng)默認(rèn)包含一個(gè)預(yù)留存儲(chǔ)區(qū)間,該預(yù)留區(qū)間在初期并未使用,可用于后續(xù)的函數(shù)塊接口的擴(kuò)展或者數(shù)據(jù)塊變量的增加。預(yù)留功能會(huì)占用更多的存儲(chǔ)區(qū)。如果希望已經(jīng)帶有存儲(chǔ)區(qū)預(yù)留的程序塊用于下載無(wú)需重新初始化功能,那么新聲明的所有變量都將保存到存儲(chǔ)器預(yù)留的區(qū)域中,所以所有新增變量的大小必須小于預(yù)留的存儲(chǔ)區(qū)的大小。執(zhí)行無(wú)需重新初始化的下載不會(huì)影響任何已經(jīng)加載的變量或?qū)\(yùn)行造成不利影響。
2功能實(shí)現(xiàn)
2.1要求
要實(shí)現(xiàn)下載函數(shù)塊或者數(shù)據(jù)塊無(wú)需重新初始化功能,需要滿足以下條件:
1) 項(xiàng)目是博途v12版本創(chuàng)建的
2) 使用s7-1500產(chǎn)品系列的cpu
3) 函數(shù)塊在lad、fbd、stl、或scl中創(chuàng)建
4) 塊由用戶創(chuàng)建,即這些塊不能是博途 v12安裝后自身帶有的塊
5)這些塊設(shè)置為優(yōu)化訪問(wèn)方式
2.2應(yīng)用舉例
下面以db為例,來(lái)說(shuō)明怎樣實(shí)現(xiàn)下載無(wú)需重新初始化功能。
序號(hào)
操作
圖示
1.
首先打開(kāi)博途 v12 軟件,切換至項(xiàng)目視圖,添加一款s7-1500cpu。
2.
添加一個(gè)新的數(shù)據(jù)塊,數(shù)據(jù)塊名稱和編號(hào)使用缺省值即可。
3.
默認(rèn)情況下,數(shù)據(jù)塊已經(jīng)被設(shè)置為優(yōu)化的塊訪問(wèn)方式,如果不是,手動(dòng)設(shè)置為優(yōu)化的塊訪問(wèn)方式。
4.
默認(rèn)預(yù)留存儲(chǔ)空間大小為100字節(jié),可以修改這一存儲(chǔ)預(yù)留區(qū)域以適應(yīng)用戶的需求,最大可以設(shè)置為2m。這部分預(yù)留存儲(chǔ)空間由裝載存儲(chǔ)器提供。
保持存儲(chǔ)區(qū)中默認(rèn)情況下沒(méi)有設(shè)置預(yù)留區(qū)域,這是因?yàn)楸3中痛鎯?chǔ)區(qū)由cpu提供,這一存儲(chǔ)區(qū)是有限的(例如cpu1516為484000個(gè)字節(jié))。如果增加的變量需要設(shè)置為保持屬性,那么就需要設(shè)置預(yù)留可保持性存儲(chǔ)器的大小。
5.
接下來(lái)在在數(shù)據(jù)塊中建立變量,本例中建立以下三個(gè)變量“variable1”、“variable2”和“variable3”,數(shù)據(jù)類型分別為bool,real和int。
6.
在ob1中對(duì)這些變量賦值,此賦值過(guò)程為使用上升沿與跳轉(zhuǎn)指令賦值,只持續(xù)一個(gè)周期
7.
在線監(jiān)視賦值結(jié)果。
8.
點(diǎn)擊下載無(wú)需初始化功能圖標(biāo),彈出提示對(duì)話框,點(diǎn)擊確定。
9.
注意:一旦激活了下載無(wú)需初始化按鈕,則無(wú)法再刪除現(xiàn)有變量。 除了“默認(rèn)值”、“起始值”和“注釋”屬性之外,其它屬性均不得再進(jìn)行更改。同時(shí),也不能再次修改步驟4中保留存儲(chǔ)器的大小。
10.
可以在現(xiàn)有變量標(biāo)簽上選擇“插入行”或者“添加行”來(lái)增加變量,本例增加了兩個(gè)變量,分別是“variable4”和“variable5”,并且修改了“variable3”的啟動(dòng)值。
11.
在編譯期間,新聲明的變量將插入到預(yù)留存儲(chǔ)器中。 如果預(yù)留存儲(chǔ)器過(guò)小,編譯將終止,并顯示一條錯(cuò)誤消息,通知發(fā)生錯(cuò)誤。
點(diǎn)擊下載,將數(shù)據(jù)塊下載到cpu中,下載預(yù)覽中的“消息”欄中,沒(méi)有出現(xiàn)下載需要初始化選項(xiàng),說(shuō)明成功實(shí)現(xiàn)下載程數(shù)據(jù)塊無(wú)需重新初始化功能。
12.
查看增加新變量后的塊屬性,可以觀測(cè)到保留存儲(chǔ)區(qū)的剩余資源。
13.
下載后監(jiān)視數(shù)據(jù)塊,原有變量的過(guò)程值保留原來(lái)的值,并沒(méi)有被重新初始化為啟動(dòng)值,新增加的變量被初始化為啟動(dòng)值。
3其它注意事項(xiàng)
3.1修改缺省預(yù)留存儲(chǔ)區(qū)大小
如果要在項(xiàng)目中為所有新創(chuàng)建的塊設(shè)置預(yù)留存儲(chǔ)器的大小,請(qǐng)按以下步驟操作:
1) 在“選項(xiàng)”(options) 菜單中,選擇“設(shè)置”(settings) 命令。選擇后將在工作區(qū)中顯示“設(shè)置”(settings) 窗口。
2) 在區(qū)域?qū)Ш街羞x擇“plc 編程 > 常規(guī)”(plc programming > general) 組。
3) 在“無(wú)需重新初始化設(shè)置下載的預(yù)留存儲(chǔ)器”(reserved memory for download without reinitialization) 組中,在“存儲(chǔ)器預(yù)留區(qū)域”(memory reserve) 的輸入框中輸入為函數(shù)塊或者數(shù)據(jù)塊進(jìn)行后續(xù)擴(kuò)展而分配的預(yù)留存儲(chǔ)區(qū)的字節(jié)數(shù)。
設(shè)置完成后,當(dāng)新建一個(gè)優(yōu)化的函數(shù)塊或者數(shù)據(jù)塊時(shí),步驟4中缺省的預(yù)留存儲(chǔ)空間變?yōu)樾轮付ǖ拇笮?。而已?jīng)存在的塊不受此次更改的影響。
設(shè)置界面如圖3-1所示。
圖3-1修改系統(tǒng)缺省預(yù)留存儲(chǔ)區(qū)大小
3.2取消下載無(wú)需初始化功能
如果取消下載無(wú)需初始化功能,可以將之前位于預(yù)留區(qū)域的所有變量都移動(dòng)到常規(guī)區(qū)域。 因此,需要對(duì)塊進(jìn)行編譯并再次加載。 cpu 中變量的值在加載期間重新初始化。預(yù)留存儲(chǔ)器仍然存在,可供之后進(jìn)行擴(kuò)展時(shí)使用, 并再次具有塊屬性中所定義的空間大小。
3.3重至預(yù)留存儲(chǔ)區(qū)
要重置一個(gè)或多個(gè)塊的預(yù)留存儲(chǔ)器,請(qǐng)按以下步驟操作:
1) 選擇“程序塊”(program blocks) 文件夾,或該文件夾中的特定塊。
2) 在快捷菜單中,選擇“編譯 > 軟件(重置預(yù)留存儲(chǔ)器)”(compile > software (reset memory reserve))命令。
此操作的結(jié)果是,之前位于預(yù)留存儲(chǔ)器中所選塊的所有變量,都從此區(qū)域移動(dòng)到常規(guī)區(qū)域中,并且塊重新被編譯。變量在下一次加載期間將重新初始化。塊中所組態(tài)的預(yù)留存儲(chǔ)器將保留,且繼續(xù)保持活動(dòng)狀態(tài)。
注意:取消下載無(wú)需初始化功能和重置預(yù)留存儲(chǔ)器時(shí),在預(yù)留存儲(chǔ)器中之前設(shè)置的所有變量都將在下次加載時(shí)重新初始化。這適用于保持性和非保持性變量。在工廠運(yùn)行期間,更改變量值將導(dǎo)致嚴(yán)重的財(cái)產(chǎn)損失和人身傷害! 因此,在重置預(yù)留存儲(chǔ)器后必須先在測(cè)試環(huán)境中進(jìn)行全面徹底地檢查之后,才能使用。