STEP7 中的OB,FC,FB,DB 都可以設置一些特殊屬性,本文介紹這些屬性的含義及設置方法。選中OB,FC,FB,DB,在右鍵菜單中找到“Object Property”,打開如下屬性頁。
DB is write-protected in the plc:
DB 塊特有的屬性,勾選后DB塊寫保護。程序執行時只能讀取DB中的內容,不能修改其中的內容。嘗試向寫保護的DB中寫入數據會導致CPU 報編程錯誤。如果沒有下載OB121會導致CPU停機。
Standard block:
西門子的標準塊,已經包含 Know how protection,包含 Name,Version,Family,Author 信息。這個復選框是只讀的,無法修改。
Know-how protection:
勾選后無法看到程序塊的代碼,只能看到接口信息。在這兒是只讀的。需要通過編譯源文件增加這個屬性。具體如下
打開要設置該屬性的程序塊,在“File”菜單中選擇“Generate source”,打開如圖2的界面。在左側選中“Sources”目錄,“Object name”填寫要生成的源文件的名字。最后按確認鍵,打開圖3所示的界面。
在圖3的界面中左側是未選中的程序塊,右側是已經選中的程序塊。點擊向左或向右的箭頭可以將程序塊在兩側移動。如我們只生成FC2的源文件,只需將FC2移動到右側。點擊確認按鈕就會自動在 “Source”文件夾下生成名字“BB”的源文件。
打開“BB”源文件,在圖4中所示的位置添加 “KNOW_HOW_PROTECT”。然后保存。在源文件編輯器的“File”菜單中找到“Compile”子菜單,點擊確認,更改過的原文件會重新在“Block”目錄中生成 FC2。注意編譯前要關掉之前打開的FC2程序塊。編譯完成后,回到“Block”中再檢查 FC2 ,會發現FC2的圖標已經有了一個加鎖的標記。打開FC2 無法看到內部的程序,只能看到接口信息。
圖 4 在源文件中添加KNOW_HOW_PROTECT 屬性
Unlinked:
只有DB塊可以勾選該屬性,默認是不勾選的。勾選后DB塊只保存在裝載內存中,不會下載到工作內存。勾選該屬性的DB塊不能用通常的方式訪問,只能用SFC20 BLKMOV 或 SFC83 READ_DBL 訪問。Non Retain:
只有DB塊可以勾選該屬性,默認是不勾選的。只有CPU支持時該選項才有用。勾選該選項后DB塊中的當前值不會掉電保持,下次上電時或者CPU 從 STOP 切換到RUN 時DB塊中的數據會恢復到初始值。CPU 是否支持Non Retain 請參考CPU技術參數手冊。不支持該屬性的CPU勾選后不會有任何作用。
Block read-only:
該選項如果勾選,程序是只讀的,無法修改。無法直接勾選設置,設置方式如下:
打開要設置該屬性的程序塊,在“File”菜單中找到“Store Read-Only”,在第一個彈出對話框中直接點擊確認。在第二次彈出的對話框中,點擊“Rename”,將名字FC4更改為FC5。點擊確認后,會另存為一個只讀的FC5。打開FC5時,會提示該程序是只讀的。只能瀏覽,在線監控,無法修改FC5中的內容。