先建立本次變更邊界
只下載一個程式檔之後,不能只看成功提示就說其餘內容都沒變。你需要兩種證據:本次實際選了哪些項目,以及下載前後哪些項目已完成比對。本篇帶你用範圍清單核對選定變更與預期保留內容,避免把未選取誤寫成已證實相同。
本文以Q06UDVCPU和適用版本GX Works2為背景,依Common手冊第15.2節的Verify with PLC說明比對。寫入與RUN中線上修改另有條件,不應把本篇比對流程當成所有情況都可直接執行的下載方法。
先保存變更前工程及可取得的CPU基線,記下CPU身份、連線路徑、軟體版本、程式類型與參數。若同一現場有兩台相同型號PLC,型號一致還不足以確認目標;比對與寫入都應指向同一個已確認的控制器。
把工作分為程式與設定、編譯依賴、執行中資料三層。程式與參數可按實際支援項目比對;FB和標籤需追它們編譯後影響哪個程式或配置;運轉計數及配方目前值需按資料生命週期判斷。三層不能都用一個不變判準。
建立清單時至少列項目名稱、本次是否選取、預期變化、基線檔、驗證方法與結果。沒有基線就明寫缺失,不事後拿下載後資料當成下載前版本。檔名日期或專案時間戳可供索引,不能證明內容未被改寫。
按工具支援項目選擇比對
GX Works2的Online、Verify with PLC可選程式、參數、智慧型模組參數、裝置註解、裝置記憶體和檔案寄存器等,實際可用項目依目標而定。先記錄檔案清單與模組範圍,再執行既定只讀比對;不要把視窗總結的一致擴大成未選項目也一致。
FB與標籤是工程依賴,不保證各自是一個可獨立下載或讀回的同名檔案。若修改共用FB,追所有使用它的程式及編譯產物;若標籤配置變化,核對受影響裝置與符號資訊。以工具實際列出的項目建立證據,不能虛構FB=v2這樣的CPU原生版本欄。
比對結果分開記已一致、有差異、未選取、無法讀取及不適用。這是本文的審查分類,不是保證GX Works2會顯示相同英文碼。受保護項目或工具未支持的資料不能算通過,也不應為取得結果而任意取消保護。
若只能讀回部分資料,保留原始讀回檔與範圍描述,再在副本進行分析。外部雜湊可驗證檔案封存後是否相同,卻不能自動證明CPU全部內容與工程檔一致。專案封裝或格式轉換也可能改變檔案位元組,需和工具內容比對分開判讀。
完成這一階段應能指出未下載項目中哪些已有前後證據,哪些仍只屬預期不變。兩者不能混成一欄。若下載操作實際擴大到原先未規劃項目,先保存操作結果與差異,再重新檢查影響範圍。
用MAIN與ALARM案例核對保留範圍
假設變更前有MAIN及ALARM兩個程式檔,這次只修改ALARM中的非安全報警文字選擇條件,預期MAIN與PLC參數保持原狀。下載前分別保存MAIN、ALARM及參數的基線證據,再列ALARM預期差異。這裡的名稱是教學專案假設,不代表現場一定有相同檔名。
下載後選ALARM與核准新版比對,選MAIN及參數與原基線比對。若ALARM一致、MAIN一致而參數未選,正確結論是前兩項已比對、參數尚待確認。不能因只計畫寫ALARM,就自動把參數欄填成未變更通過。
再加入共用FB變更:若ALARM呼叫的FB也被MAIN使用,雖然原本只想改報警,編譯依賴已超出單一檔案。重新檢查工具顯示的寫入項目和兩個呼叫者,不能把共用FB的修改當成只影響正在開啟的那個編輯頁。
另一個失敗案例是參數比對有差異。先確認差異是否原先就存在、是否來自另一位工程師或本次操作連帶項目;沒有下載前基線就不能準確歸責。保留兩邊資料與時間,停止把整體結果標為完成,依變更程序處置。
練習寫驗收句子:「ALARM與核准新版一致,MAIN與下載前基線一致;PLC參數尚未取得比對結果,共用FB依賴已列入待查。」這句話可被下一位工程師接續,不會讓人誤以為全部內容都已驗證。
把動態裝置資料分開處理
RUN中D100若是累計計數,由1200變成1215可能完全正常,不能當作未下載區程式被改。先定義D100應隨生產增加,再以批次與時間核對合理變化。反過來,重要配方設定突然改值也不能一律用運轉資料會變來忽略。
把執行中資料再分為固定設定、保持計數、即時量測和暫存工作值。固定設定與核准配方比;保持計數查重置與合理增量;即時量測查來源和更新;暫存則按程式生命週期判斷。不要要求所有D/M在兩次讀取之間位元組完全相同。
若部分寫入可能連帶初始化,需先按實際功能和手冊界定哪些資料可能受影響,保存必要快照。快照讀取跨掃描時不是原子資料,記錄取得窗口及既有一致性機制。不能看到數值變零就立即判定初始化成功,也可能是讀取失敗或錯誤目標。
未下載區驗收還應涵蓋外部依賴。HMI顯示、通訊資料契約與模組設定可能不在本次PLC寫入檔中,但程式對它們的解讀可能改變。把內容比對與功能回歸分開:前者證明選定資料一致,後者檢查資料如何被使用。
失敗時依序查目標CPU、基線、勾選範圍、依賴關係和動態資料分類。若差異仍無法解釋,保存證據並列未決項,不直接把PC覆蓋CPU或將CPU全部讀回覆蓋原專案;那會失去分析原始差異的依據。
完成後應看到的結果與FAQ
交付一份範圍矩陣,包含每個已修改項目的新版比對,以及每個預期保留項目的基線比對。所有未讀取、未支持和不適用項目都寫原因;另外附功能回歸計畫與待驗結果。本文完成的是這套檢查方法,未宣稱已執行工程軟體或硬體測試。
問:沒勾選參數就證明參數沒變嗎?答:只能證明本次選取意圖,前後內容需獨立證據。
問:FB和標籤可以一律各自讀回比對嗎?答:不保證,依專案與工具支援追編譯產物、符號及受影響程式。
問:D值不同就表示下載範圍出錯嗎?答:先分清設定與動態資料,再看更新、重置和初始化條件。
問:比對一致就能省略功能測試嗎?答:不能。比對回答內容是否相符,功能測試回答在指定條件下是否符合預期。
參考:三菱GX Works2 Common 第15.2節 Verify with PLC 印刷章節頁15之29起