一 資源清單與相對路徑
HMI畫面不只包含視圖檔,還可能依賴字型、圖片、字串翻譯、元件庫、報表模板和外部路徑。先建立資源清單,為每個項目記錄類型、資源URI或實際路徑、版本、授權需求與使用畫面。不要只把空白圖示補回去就宣布完成,因為字型替換也可能改變按鈕尺寸。
虛構專案搬到工程電腦B後,泵浦圖示空白、中文變成系統預設字型。工程師先查畫面資源引用與錯誤日誌,再比對A機的資源清單;結果圖片在專案外的D:\Plant\icons,字型則是授權字型未安裝。
資源名稱與檔名要分開保存,大小寫和副檔名也納入檢查。路徑依平台採受控資源URI或明確基準的相對位置,不能依賴某一工程師的桌面資料夾。
| 資源 | 必記欄位 | 失效症狀 |
|---|---|---|
| 字型 | 家族/字重/授權 | 缺字或換行 |
| 圖片 | 相對路徑/格式 | 空白圖示 |
| 元件庫 | 版本/依賴 | 元件缺失 |
資源盤點也要記錄檔案大小與雜湊,否則同名圖片被替換時難以判斷是否為正確版本。檔名大小寫在跨平台搬移時尤其要檢查。
圖片格式需依目標HMI版本確認,PNG能開不表示SVG或透明通道都被支援。把格式限制寫進封裝檢查。
專案依賴清單應由工具輸出再人工確認,因腳本產生的動態圖片路徑可能不在靜態資源樹。把每個動態路徑加到封裝測試。
資源版本更新後先比較manifest,再開啟代表畫面;若只看畫面可忽略未被當下頁面使用的缺失檔。
完成搬移後保存A/B差異清單,下一次版本更新可以只重測變更項。
二 找出遺失資源
看到空白圖示先確認資源是否存在,再看路徑解析、檔案權限與格式支援。字型變形則檢查字型家族、字重、字元覆蓋與授權;把缺字誤當成圖片錯誤會浪費時間。
案例中圖庫路徑顯示存在但仍空白,檢查後發現搬移時只複製了png,未複製同名svg目錄,畫面引用的是svg。另一個標籤顯示方框,原因是字型沒有中文字元,不是字串表丟失。
每項錯誤記resource_id、引用畫面、實際解析路徑、錯誤時間與修復檔案。手動在畫面放一張同名圖片不能取代修正專案引用。
字型的授權與安裝權限是工程條件,不把網路下載的字型直接放進生產機。先確認字元覆蓋,再用長中文標籤測試換行、截斷與按鈕高度。
字型替換除了外觀也影響觸控命中區域;在窄螢幕上測試長標籤,確認文字不遮住確認按鈕。
語言包和字型分開測試,切換語言後重新測試按鈕、表格和報表標題。
字串資源還要檢查語言包版本。中文與英文長度不同時,固定寬度按鈕可能截斷,應在每種啟用語言測試。
三 封裝與搬移
封裝前執行檢查:列出專案內資源、掃描外部引用、確認相對路徑、計算檔案雜湊、列授權文件。Ignition專案匯出可帶專案特定資源,但Gateway層設定不一定隨專案匯出,不能把匯出zip當成整台系統備份。
把外部圖庫移入受控assets目錄後,畫面引用改為該平台支援的資源URI或相對位置,並在版本庫提交manifest。字型若受授權限制,封裝只記名稱與安裝步驟,不把未授權檔案散發。
封裝檢查失敗時產生清單而非半成品。缺授權、缺字型或外部路徑不可達,都標為阻擋項,直到第二台電腦驗證完成。
外部路徑若由環境變數組成,要在封裝說明中列出變數名稱、預設值與缺失時的錯誤訊息;不要把工程師個人路徑寫進畫面設定。
相對路徑的基準依產品和功能而異,可能是專案資源、Web URL或執行服務目錄。先查平台規則,再記實際解析結果;不要把Designer本機磁碟路徑直接當瀏覽器可讀URL。驗證也要使用Runtime實際帳號與目標用戶端,避免工程師有權讀取而服務沒有權限。
資源修復後再次刪除本機快取並開新工作階段,確認畫面不是沿用舊資源。把驗證結果和封裝版本一併交付。
元件庫更新可能連帶改變屬性名稱,匯入後先看錯誤清單再開畫面,避免只看一張成功畫面。
本篇平台例採Ignition 8.1。官方文件指出Gateway備份包含Image Management Library及Perspective自訂fonts、icons、themes;專案匯出則不能代表整個Gateway。手動加入安裝目錄或另用的外部檔仍須盤點。Gateway還原會覆蓋設定,資源搬移演練須在隔離環境,不能為補圖片直接還原正式Gateway。
四 第二台電腦驗證
在B機建立乾淨工作目錄,匯入專案後先不開啟所有畫面,按清單逐項確認資源。測試圖示、中文長字串、報表預覽和元件庫各一個代表案例,再記錄解析路徑。
B機的泵浦圖示恢復,但報表標題換行,檢查發現B機使用替代字型且字寬不同。此時不能只驗圖示,應把字型安裝或版面調整列為新差異,並截圖比較A/B。
不同HMI平台對外部資源、字型嵌入和專案匯出的支援不同;本文以資源盤點流程示範,不假定所有平台有相同目錄或API。
搬移後先用離線副本驗證,不直接覆蓋運轉中的專案。驗證完成再依平台的匯入流程部署,並保留匯入前後版本號。
資源清單中加上最後驗證人和驗證機器,出現差異時能區分檔案版本與環境差異。
授權檔案不應放在公開版本庫,封裝清單只記其識別和安裝責任。
五 限制與驗收
驗收表列出每個畫面、圖片、字型、字串、元件庫、報表與外部檔,結果分Pass、Missing、Substitute、Blocked。缺一項就記影響畫面和下一步,不用『看起來正常』代替檢查。
問:把檔案放桌面可解決嗎?答:只能暫時驗證,正式專案應改平台支援的受控資源引用。
問:替代字型可以直接接受嗎?答:需比較字寬、字元覆蓋和授權,並經需求方核准。
問:匯出zip包含Gateway設定嗎?答:依平台文件確認,不能一概假設。
問:圖示存在卻空白?答:查引用副檔名、格式支援、權限和錯誤日誌。
| 驗收 | 方法 | 結果 |
|---|---|---|
| 清單 | 逐項解析 | Pass/Blocked |
| 版面 | A/B截圖 | 差異可解釋 |
| 授權 | 文件核對 | 可搬移 |
資源清單完成後設定變更審查門檻:新增外部檔、替換字型或更新元件庫都必須重跑相依性檢查。
若B機無法取得外部檔,畫面應顯示資源缺失狀態而不是靜默空白,便於現場排查。
封裝完成後在第二台工程電腦做三層驗證:先驗檔案清單和雜湊,再開啟代表畫面確認圖片、字型與字串,最後執行報表和元件庫案例。案例要包含長中文、英文、缺圖、缺字型和不同顯示比例。若外部路徑仍指向第一台電腦,將它標為Blocked並修正為目標平台可解析的受控路徑;若授權字型不能隨包提供,安裝責任與版本寫入README。匯出檔只代表平台支援的專案資源,Gateway設定、連線和標籤等另依平台備份文件處理。
搬移報告要列出通過的畫面與仍需處理的資源,讓後續工程師不必重新猜測差異。
參考:Ignition 8.1 Gateway Backup and Restore:圖庫與Perspective自訂資源的備份範圍。
參考:Ignition 8.1 Project Export and Import:專案與Gateway資源邊界。