讓 AI 畫規格書 — 把 Excel 清單變成圖,再讓 AI 檢核畫好的圖
最後更新: 2026-09-23 / 分類: 控制設計、PLC
讓 AI 把 Excel 的 I/O 清單轉成 JSON,圖就不必手抄也能做出來。本文寫給「清單有了、圖還沒畫」的設計者,以及想讓 AI 檢核畫好的圖的人。
1. 不要讓 AI 畫圖,要讓它寫資料
拜託 AI 的不是圖片,而是編輯器讀的 JSON。讓生成式 AI 把圖畫成影像,線會歪、字會糊、訊號的數量會自己改變。請它修正,往往別的地方又壞了。
4 個編輯器讀寫的 JSON 資料結構是公開的。只要知道格式,AI 不必畫圖,只要寫資料就好。繪圖是編輯器的工作:線不會歪,修正也不會弄壞別的地方。
同樣的理由,檢核也是讓它讀資料而不是影像。哪個訊號是哪個訊號的觸發、哪個判斷有哪些出口,都寫在資料裡。若從影像讀,它會搞錯箭頭是從哪個變化點出發的。
2. Excel 的 I/O 清單不要手抄,轉成 JSON 匯入
已經有的清單,不必手抄就能變成圖。
步驟只有:讓它讀規格、貼上表格、匯入 JSON
- 讓 AI 讀 JSON 資料結構規格 的頁面(無法讀取 URL 的 AI,就貼上該頁的內文)。
- 把 Excel 的表格直接貼上(複製貼上後會變成以 Tab 分隔的文字)。
- 請它「轉成這個規格的
kind: "timingchart"的 JSON」。 - 複製回傳的 JSON,貼到編輯器的「檔案 → 匯入… → 貼上 JSON」載入。
請求的範例:不讓它決定波形,只讓它建立列與方向
請依照 https://fa-spec.com/json-format 的規格,
從下面的 I/O 清單建立 kind: "timingchart" 的 JSON。
- steps 為 16
- BOOL 的 values 為 true/false,數值為字串,未設定為 null
- role:PLC 輸出的訊號為 "M",伺服輸出的訊號為 "S"
- 波形尚未決定,請全部設為 false
變數名稱 型別 註解 方向
bStartReq BOOL 定位啟動要求 M
bBusy BOOL 動作中 S
bInPos BOOL 定位完成 S
nTargetPos DINT 目標位置 M
讓它把波形全部設成 false,只準備列與方向。哪個訊號何時變化正是設計判斷本身,不是該讓 AI 決定的地方。
位址對照表也一樣。讓它把編號留空,在編輯器分配
元件註解的清單、或機械設計給的 I/O 清單,也能以 kind: "addressmap" 匯入。這時讓它把 address 留空。
編號的分配不交給 AI。那是一邊看著元件範圍、型別、位元的排法一邊計數的工作,AI 很容易出錯。留空載入後,用編輯器的「位址分配…」(Ctrl+R)一次分配。重複與超出範圍也會自動偵測。
座標(x / y)也不必讓它寫。系統架構圖與流程圖載入沒有座標的資料時會自動排列。
分工:計數交給編輯器,何時改變什麼由設計者決定
計數的工作交給編輯器,決定的工作留給設計者。
| 交給誰 | 工作 |
|---|---|
| AI | 名稱、型別、註解、方向的歸類,從文字規格轉寫,指出遺漏 |
| 編輯器 | 編號的連號、位元位置、元件的剩餘量、Step 數與波形長度的一致、配置與線的路徑 |
| 設計者 | 何時改變什麼(波形、順序、等待時間),是否採納指摘的判斷 |
3. 畫好的圖在審查之前,先用 AI 檢核用文字讓 AI 看過
審查之前,先讓 AI 過一遍。每個編輯器的「輸出 → 匯出…(Ctrl+E)」裡都有「AI 檢核用文字…」。它會輸出圖的內容並附上「希望檢查什麼」的文字,直接貼給 AI 即可。
時序圖:找出順序的矛盾,以及沒有觸發的變化
- 要求與回應的順序矛盾 — 還沒確認回應就把要求撤掉
- 互鎖遺漏 — 異常中啟動要求仍能通過
- 漏接 — 只出現 1 個 Step 的訊號,對方接不到
- 沒有觸發的變化 — 說不出是什麼觸發了變化的地方
最後一項,在沒畫時序圖的畫法的圖上找不到。檢核用文字也包含箭頭的清單。加一句「列出沒有箭頭的變化」,它就會點名回覆沒有根據的變化。那些地方多半是規格尚未決定的地方。
流程圖:找出跳不出去的迴圈,以及沒有去處的分支
- 跳不出去的迴圈 — 哪裡都沒有離開的條件
- 到不了的處理 — 依分支的組合,永遠不會經過
- 沒有去處的分支 — YES / NO 的其中一邊沒接到任何地方
位址對照表:找出名稱不一致,以及型別與存放處不符
- 名稱不一致 —
bStart與StartBit混用 - 型別與存放處不符 — 把 DINT 放進 1 個字組
- 擴充的餘裕 — 擴充用的空位是否連續保留
重複與超出範圍,編輯器會自己找出並附在檢核用文字中。名稱不一致、型別與存放處、擴充空位則由 AI 負責。
4. 修正時複製 JSON,請它「只改被指出的地方」
認同指摘之後,修正也交給 AI,以 JSON 的形式來回。「輸出 → 匯出…」選「JSON」再「複製到剪貼簿」。請它「保持這個結構,只修改被指出的地方」。回傳的 JSON 貼到「檔案 → 匯入… → 貼上 JSON」即可,不會產生檔案。
要指定修改的地方。若請它「重做」,無關的地方也可能被改掉。
載入 JSON 後,先前的編輯無法用 Ctrl+Z 回溯。先把目前內容「另存新檔…」再載入。
5. 適合的場合:改造、讀客戶規格書、審查前、交接
在已經有清單或文字規格、但圖還沒有的場合最有效。
| 場合 | 要做的事 |
|---|---|
| 既有設備的改造 | 把上次的元件註解轉成 JSON,只補畫有變更的地方 |
| 讀客戶規格書 | 讓它把文字規格轉成 JSON 畫成圖,向客戶確認「這樣對嗎」 |
| 審查之前 | 先跑一次 AI 檢核用文字,把可能被指出的地方先修好 |
| 交接 | 把圖和 JSON 一起交出去。接手的人也能讓 AI 讀 |
6. 貼上之前先確認公司規定,是否採納指摘由設計者決定
- 把客戶資訊貼給 AI 之前,先確認公司規定。機器型號、IP 位址、產品名稱很容易留在裡面。編輯器只在你的電腦裡處理資料,但貼給 AI 的那一刻就流到外面了。
- 是否採納 AI 的指摘,是設計者的判斷。就算它說「互鎖不夠」,也可能已由上位的安全迴路保障。
- JSON 載入不了時,先確認貼上的範圍。把 AI 回覆的說明文字、或包住 JSON 的
```一起貼上就無法載入。要貼的是從第一個{到最後一個}。還是讀不了的話,看看圖內容的陣列在不在:時序圖是rows,流程圖是nodes,系統架構圖是devices,位址對照表是variables。
使用的工具
上面的分工圖,是用 Flowchart Editor 的泳道(負責人的欄)畫好再匯出成 SVG 的。
- JSON 資料結構規格 — 給 AI 讀的規格書
- Timing Chart Editor — 訊號的順序與觸發
- Address Map Editor — 變數與編號的分配
- Flowchart Editor — 狀態與轉移條件
- System Diagram Editor — 機器與通訊的連接
不用安裝也不用註冊。輸入的資料只存在你的電腦裡,不會傳到伺服器。
相關文章
yk.builds