把讀取與寫入拆成兩條可驗證路徑
閘道能讀到設備值,不代表上位系統寫入也會到正確位置。雙向驗收分別檢查來源到上位的讀取路徑,以及上位到來源的寫入路徑,再做獨立回讀。每個方向都要有輸入、經過的映射、預期輸出與實際證據,不能只以連線燈亮當通過。
準備映射清冊,列來源設備、協定、站號或端點、資料區、位址、長度、型別、字序、倍率、單位、權限與品質。閘道兩側可能用不同協定與名稱,必須寫出一對一的工程意義,而不是只放兩張看起來相似的設定截圖。
本文以Modbus暫存器作通訊資料模型例子,不指定任何設備的正式可寫位址。測試前建立隔離的模擬設備或專用測試區,確認不連到真實輸出、配方或保護設定。Q06UDVCPU與QJ71C24N的程式指令與設定,仍需依實際專案另行核對。
雙向不是要求每個點都可寫。只讀量測點的反向案例應是寫入被拒絕且來源不變;設定點才驗證合法寫入。把所有點先開讀寫權限再測,會改變原來的介面需求,不能拿來證明正式配置正確。
先用容易辨識的資料圖樣讀一次
在已確認的測試來源放入兩個十六位字,依約定順序為十六進位1234與5678。若契約將第一個字當三十二位整數的高字,合併為12345678十六進位,也就是十進位305419896。這個圖樣比零或一更容易辨識字序錯誤。
分別保存來源兩個字、閘道解碼後整數、上位收到的值。若上位變成56781234,優先查兩個字的順序;若每字內位元組也交換,則會有另一種不同圖樣。先核對原始字與位元組,不用隨機切換所有swap選項直到數字看似合理。
Modbus協定定義暫存器與封包內多位元組資料的傳送方式,但跨多個暫存器的浮點或三十二位工程值映射仍要看設備文件。閘道的ABCD等標籤也要核對其產品定義,不能只因另一家同名選項曾可用就照搬。
位址同時記設備文件表示法與實際協定偏移,確認資料區。文件中的40001類名稱不等於封包內原樣送40001;有的軟體介面要求零起算,有的要求一起算。測試表保存實際請求位址,避免人與工具各自再減一次。
完成讀取後,先換成另一個已知圖樣,再測零、有號負值與工程邊界。只測一組固定值可能剛好掩蓋映射到鄰近暫存器的問題。不同型別使用各自合法測試值,不能把整數圖樣直接宣稱為同一個浮點數。
寫入後用獨立來源回讀確認
對專用可寫測試點,由上位送入已知設定值,記錄上位請求、閘道轉換值、來源接受結果與實際保存值。回讀應走能確認來源狀態的路徑,不能只讀閘道剛寫入的本地快取,就宣稱設備已採用。
例如上位設定二十五點三攝氏度,契約為來源保存十分之一度整數,應寫入二百五十三。讀回二百五十三再按同一契約顯示二十五點三。若寫入與讀回都使用相同錯倍率,畫面可能自洽,所以來源原始值也必須獨立核對。
測試表分開通訊回覆與業務接受。設備可能接受暫存器寫入,PLC程式卻因模式或範圍條件而不採用;設定請求值、有效設定值與完成狀態若是不同欄位,就逐一記錄。通訊成功不能替代製程動作完成的證據。
三十二位資料若分兩次寫入,來源可能短暫看到新舊各一半。使用哪種多字寫入、緩衝或握手方式,必須依設備支持與應用契約決定;即使單一協定請求含多個暫存器,也不能未查文件就假設所有PLC掃描讀取具備相同原子性。
測非法範圍、只讀點與錯誤型別時,預期是明確拒絕或依已約定行為處理,來源不應被意外改動。拒絕後再讀合法相鄰點,確認閘道沒有位址偏移或長度錯誤而寫壞其他測試資料。
把斷線與重試也列入雙向表
讀取斷線時,上位應取得不良或過期品質,或看到明確缺值策略,不能一直把舊值標成良好。恢復時核對來源重新確認的資料與時間,避免閘道先回傳舊快取卻立即宣告全部正常。品質映射和數值映射同樣重要。
寫入逾時可能是未到來源,也可能已到但回覆遺失。一般設定值是否可安全重寫,需依語意判斷;脈衝、累加或啟動命令不能一律盲目重送。測試表列不確定結果的確認方式與責任,不用「再按一次」取代設計。
失敗時依方向逐站查:來源原值是否正確、閘道讀取是否正確、轉換是否正確、上位欄位是否正確。寫入則反向追到來源並獨立回讀。保留請求時間、站號、位址、原始資料與錯誤碼,避免只截一張最終錯值畫面。
驗收矩陣每列是一個點、一個方向與一種條件,列預期與實際差異。讀取通過、寫入未測的點不能標成雙向通過;只讀點寫入拒絕可按契約通過。完成後回復測試值與測試映射,並核對正式版本與驗收版本一致。
練習與常見問題
練習:兩字1234與5678按高字在前應得到305419896;若只改第二字為5679,合併整數應增加一。用這個小變化確認低字映射,再對可寫測試點送入253並回讀,檢查上位工程顯示是否二十五點三。
另做相鄰測試點,讓兩點放不同數值。若更改其中一點時另一點也變,查地址重疊、資料長度與三十二位點是否占用兩字。不要只看主要點正確就忽略鄰近資料被覆寫的副作用。
問:能讀就代表能寫嗎?答:方向、權限與映射可能不同,需要分別驗收。
問:寫入回覆成功就代表設備動作完成嗎?答:只證明相應通訊處理結果,業務完成另查狀態。
問:浮點數字序由Modbus統一規定嗎?答:跨暫存器資料映射仍須核對設備與閘道契約。
問:測試表只填通過或失敗夠嗎?答:還需要輸入、預期值、實際來源回讀與版本證據。
參考:Modbus Application Protocol:資料模型、編碼與讀寫功能的基礎;跨暫存器工程映射須另查設備文件。