1功能介紹
S7-1500產(chǎn)品系列的CPU支持在運行期間擴(kuò)展函數(shù)塊的接口,或者增加全局?jǐn)?shù)據(jù)塊的變量,。此過程無需將CPU設(shè)置為STOP模式,,既可下載已修改的塊,此時也不會影響已經(jīng)加載變量的過程值,。這是一種簡單的程序更改實施方式,,這一加載過程(無需重新初始化的加載)不會對受控對象造成負(fù)面影響。
原理:被激活為“優(yōu)化塊訪問”(Optimized block access)屬性的函數(shù)塊或者數(shù)據(jù)塊已經(jīng)默認(rèn)包含一個預(yù)留存儲區(qū)間,,該預(yù)留區(qū)間在初期并未使用,,可用于后續(xù)的函數(shù)塊接口的擴(kuò)展或者數(shù)據(jù)塊變量的增加。預(yù)留功能會占用更多的存儲區(qū),。如果希望已經(jīng)帶有存儲區(qū)預(yù)留的程序塊用于下載無需重新初始化功能,,那么新聲明的所有變量都將保存到存儲器預(yù)留的區(qū)域中,所以所有新增變量的大小必須小于預(yù)留的存儲區(qū)的大小,。執(zhí)行無需重新初始化的下載不會影響任何已經(jīng)加載的變量或?qū)\行造成不利影響,。
2功能實現(xiàn)
2.1要求
要實現(xiàn)下載函數(shù)塊或者數(shù)據(jù)塊無需重新初始化功能,需要滿足以下條件:
1) 項目是博途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)化訪問方式
2.2應(yīng)用舉例
下面以DB為例,,來說明怎樣實現(xiàn)下載無需重新初始化功能。
序號 | 操作 | 圖示 |
1. | 首先打開博途 V12 軟件,,切換至項目視圖,,添加一款S7-1500CPU。 |  |
2. | 添加一個新的數(shù)據(jù)塊,,數(shù)據(jù)塊名稱和編號使用缺省值即可。 |  |
3. | 默認(rèn)情況下,,數(shù)據(jù)塊已經(jīng)被設(shè)置為優(yōu)化的塊訪問方式,,如果不是,手動設(shè)置為優(yōu)化的塊訪問方式,。 |  |
4. | 默認(rèn)預(yù)留存儲空間大小為100字節(jié),,可以修改這一存儲預(yù)留區(qū)域以適應(yīng)用戶的需求,最大可以設(shè)置為2M。這部分預(yù)留存儲空間由裝載存儲器提供,。 保持存儲區(qū)中默認(rèn)情況下沒有設(shè)置預(yù)留區(qū)域,,這是因為保持型存儲區(qū)由CPU提供,這一存儲區(qū)是有限的(例如CPU1516為484000個字節(jié)),。如果增加的變量需要設(shè)置為保持屬性,,那么就需要設(shè)置預(yù)留可保持性存儲器的大小。 |  |
5. | 接下來在在數(shù)據(jù)塊中建立變量,,本例中建立以下三個變量“Variable1”,、“Variable2”和“Variable3”,數(shù)據(jù)類型分別為Bool,,Real和Int,。 |  |
6. | 在OB1中對這些變量賦值,此賦值過程為使用上升沿與跳轉(zhuǎn)指令賦值,,只持續(xù)一個周期 |  |
7. | 在線監(jiān)視賦值結(jié)果,。 |  |
8. | 點擊下載無需初始化功能圖標(biāo),彈出提示對話框,,點擊確定,。 |  |
9. | 注意:一旦激活了下載無需初始化按鈕,則無法再刪除現(xiàn)有變量,。 除了“默認(rèn)值”,、“起始值”和“注釋”屬性之外,其它屬性均不得再進(jìn)行更改,。同時,,也不能再次修改步驟4中保留存儲器的大小。 |  |
10. | 可以在現(xiàn)有變量標(biāo)簽上選擇“插入行”或者“添加行”來增加變量,,本例增加了兩個變量,,分別是“Variable4”和“Variable5”,并且修改了“Variable3”的啟動值,。 |  |
11. | 在編譯期間,,新聲明的變量將插入到預(yù)留存儲器中。 如果預(yù)留存儲器過小,,編譯將終止,,并顯示一條錯誤消息,通知發(fā)生錯誤,。 點擊下載,,將數(shù)據(jù)塊下載到CPU中,下載預(yù)覽中的“消息”欄中,,沒有出現(xiàn)下載需要初始化選項,,說明成功實現(xiàn)下載程數(shù)據(jù)塊無需重新初始化功能,。 |  |
12. | 查看增加新變量后的塊屬性,可以觀測到保留存儲區(qū)的剩余資源,。 |  |
13. | 下載后監(jiān)視數(shù)據(jù)塊,,原有變量的過程值保留原來的值,并沒有被重新初始化為啟動值,,新增加的變量被初始化為啟動值,。 |  |
3其它注意事項
3.1修改缺省預(yù)留存儲區(qū)大小
如果要在項目中為所有新創(chuàng)建的塊設(shè)置預(yù)留存儲器的大小,請按以下步驟操作:
1) 在“選項”(Options) 菜單中,,選擇“設(shè)置”(Settings) 命令,。選擇后將在工作區(qū)中顯示“設(shè)置”(Settings) 窗口。
2) 在區(qū)域?qū)Ш街羞x擇“PLC 編程 > 常規(guī)”(PLC programming > General) 組,。
3) 在“無需重新初始化設(shè)置下載的預(yù)留存儲器”(Reserved memory for download without reinitialization) 組中,,在“存儲器預(yù)留區(qū)域”(Memory reserve) 的輸入框中輸入為函數(shù)塊或者數(shù)據(jù)塊進(jìn)行后續(xù)擴(kuò)展而分配的預(yù)留存儲區(qū)的字節(jié)數(shù)。
設(shè)置完成后,,當(dāng)新建一個優(yōu)化的函數(shù)塊或者數(shù)據(jù)塊時,,步驟4中缺省的預(yù)留存儲空間變?yōu)樾碌拇笮 6呀?jīng)存在的塊不受此次更改的影響,。
設(shè)置界面如圖3-1所示,。

圖3-1修改系統(tǒng)缺省預(yù)留存儲區(qū)大小
3.2取消下載無需初始化功能
如果取消下載無需初始化功能,可以將之前位于預(yù)留區(qū)域的所有變量都移動到常規(guī)區(qū)域,。 因此,,需要對塊進(jìn)行編譯并再次加載。 CPU 中變量的值在加載期間重新初始化,。預(yù)留存儲器仍然存在,,可供之后進(jìn)行擴(kuò)展時使用, 并再次具有塊屬性中所定義的空間大小,。
3.3重至預(yù)留存儲區(qū)
要重置一個或多個塊的預(yù)留存儲器,,請按以下步驟操作:
1) 選擇“程序塊”(Program blocks) 文件夾,或該文件夾中的特定塊,。
2) 在快捷菜單中,,選擇“編譯 > 軟件(重置預(yù)留存儲器)”(Compile > Software (Reset memory reserve))命令。
此操作的結(jié)果是,,之前位于預(yù)留存儲器中所選塊的所有變量,,都從此區(qū)域移動到常規(guī)區(qū)域中,并且塊重新被編譯,。變量在下一次加載期間將重新初始化,。塊中所組態(tài)的預(yù)留存儲器將保留,且繼續(xù)保持活動狀態(tài),。
注意:取消下載無需初始化功能和重置預(yù)留存儲器時,,在預(yù)留存儲器中之前設(shè)置的所有變量都將在下次加載時重新初始化。這適用于保持性和非保持性變量,。在工廠運行期間,,更改變量值將導(dǎo)致嚴(yán)重的財產(chǎn)損失和人身傷害! 因此,,在重置預(yù)留存儲器后必須先在測試環(huán)境中進(jìn)行全面*地檢查之后,,才能使用。