← 所有文章

HMI字型與圖片遺失的尋找與封裝

· 站長

盤點HMI字型、圖片、字串、元件庫和外部檔案相依,建立搬移與封裝驗收。

一 資源清單與相對路徑

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資源邊界。

延伸閱讀


使用 PLC 工具箱 →