簡介
用戶程序必須先經過編譯才能在 CPU 中執行。每次進行更改后都需要重新編譯程序。
編譯期間會執行以下步驟:
檢查用戶程序的語法錯誤。
將從用戶程序中刪除不需要的指令。
檢查被編譯塊中的所有塊調用。如果更改了被調用塊的接口,則會在信息窗口的“編譯”(Compilation) 選項卡中顯示錯誤信息。必須先更正這些錯誤。
塊在用戶程序中的編號不能重復。如果多個塊具有相同的編號,在編譯過程中將對編號沖突的塊自動重新編號。在以下情況下將不對塊重新編號:
無法通過自動重新編號解決的編號沖突必須手動更正。請注意巡視窗口中針對此問題的消息。
說明
重新編號專有技術保護塊
僅 S7-1500 和 S7-1200 (V4) 系列 CPU 支持對無密碼的專有技術保護塊進行自動重新編碼和手動重新編碼。專有技術保護功能必須通過 TIA Portal V13 SP1 或更高版本進行設置。
塊被單獨選中或者隨其它塊一起選中進行編譯。
在塊的屬性中將編號分配設置為“手動”(manual)。
最后,將用戶程序編譯成 CPU 可讀取的代碼。
編譯方法
可在以下窗口或編輯器中啟動編譯:
在項目樹中編譯塊
用于編譯單個塊或同時編譯“程序塊”文件夾中的一個或多個塊。
在程序編輯器中編譯塊
該選項用于編譯單個打開的塊。
在調用結構或從屬性結構中編譯塊
用于編譯個別的塊。
編譯選項
如果要在項目樹中編譯塊,可選擇更多選項:
軟件(僅更改)
將編譯所選塊中的所有程序更改。如果已選擇了塊文件夾,那么將編譯該文件夾中包含的塊的所有程序變更。
軟件(編譯所有塊)
編譯所有塊。建議在第一次編譯時以及在進行了重大修訂后執行此操作。
軟件(重置預留存儲器)
所選塊接口的預留區域中聲明的所有變量都將移動到接口的標準區域中。現在,存儲器預留區域可用于進行接口擴展。
說明
該選項僅適用于 S7-1500 和 S7-1200 V4 及更高版本系列的 CPU。
一致性檢查
更改被調用塊的接口或使用的 PLC 數據類型,可以導致在調用塊和被調用塊之間;或者發生 PLC 數據類型與使用這些數據類型的全局 PLC 數據塊之間不一致的情況。
為了避免用戶程序出現此類不一致情況,在每次執行編譯前系統自動執行一致性檢查。比較時間戳,然后根據比較的結果執行或取消編譯。
僅當被調用塊接口的時間戳記早于調用塊對應的時間戳記時,才能編譯調用塊。
僅當基于 PLC 數據類型的全局數據塊的時間戳記晚于此 PLC 數據類型的時間戳記時,才能正確編譯該全局數據塊。
僅當背景數據塊接口的時間戳記與所分配的函數塊對應的時間戳記相同時,才能正確編譯該背景數據塊。
如果取消編譯過程,則在巡視窗口中將顯示一條報警。更新相關塊中的塊調用和全局數據塊中的 PLC 數據類型,然后重啟編譯。通過一致性檢查還可找到不能編譯的專有技術保護的塊。在巡視窗口中也將顯示相應消息。
若立即開始加載,而不是首先編譯,則所選塊會自動編譯,并顯式更新塊調用和全局數據塊。請注意,各 CPU 系列之間具有以下區別:
S7-1200/1500:所有受影響的塊都加載,以保證不會造成不一致性。
S7-300/400:僅加載所選塊。
更正編譯錯誤
在巡視窗口的“信息” >“編譯”中,可查看編譯是否成功或在程序中是否檢測到錯誤。如果發生錯誤,則需要進行更正,然后重新啟動編譯。
步驟
要修正編譯錯誤,請按以下步驟操作:
在巡視窗口中使用“信息” >“編譯” 打開錯誤列表。
如果存在錯誤,則單擊錯誤文本旁的藍色問號,可獲得有關解決該問題的信息。
雙擊要更正的錯誤。
相應的錯誤將高亮顯示。
更正錯誤。
重新啟動編譯。
審核編輯:湯梓紅
-
cpu
+關注
關注
68文章
10854瀏覽量
211589 -
西門子
+關注
關注
94文章
3034瀏覽量
115788 -
程序
+關注
關注
117文章
3785瀏覽量
81005 -
編譯
+關注
關注
0文章
657瀏覽量
32852
原文標題:西門子博途:編譯塊
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論