工業通訊

理解工廠通訊層級;掌握 Modbus RTU/TCP 的定址與功能碼; 比較主流工業乙太網協定;認識 OPC UA 與 MQTT 的角色。

通訊層級(自動化金字塔)

越往下即時性要求越高、資料量越小;越往上相反。協定選擇即是在對的層級用對的工具。

串列通訊與 Modbus RTU

RS-485 差動傳輸、多點匯流排(1 主多從,常見 32 節點)、距離可達 1200 m。 Modbus RTU 是其上最普及的協定,記憶體模型四區:

區域 傳統位址 存取 常用功能碼
Coils(線圈) 0xxxx 讀寫 bit 01 讀、05/15 寫
Discrete Inputs 1xxxx 唯讀 bit 02 讀
Input Registers 3xxxx 唯讀 16-bit 04 讀
Holding Registers 4xxxx 讀寫 16-bit 03 讀、06/16 寫

Modbus 整合三大地雷:(1) 位址偏移一位——文件寫 40001,封包裡是 0; (2) 32-bit 值的字序(word swap)——兩個暫存器組 REAL 時高低字順序各家不同; (3) 輪詢節奏——RS-485 上從站多、輪詢快,逾時設定不當會拖垮整條匯流排。 整合前先拿 Modbus 測試工具(如 Modbus Poll)驗證對方定址,再寫 PLC 程式。

工業乙太網

Modbus TCP EtherNet/IP PROFINET EtherCAT
主要陣營 開放/施耐德 Rockwell/ODVA Siemens/PI Beckhoff/ETG
即時性 一般(TCP) 中(CIP, UDP I/O) 中–高(RT/IRT) 極高(μs 級)
拓撲 標準乙太網 標準乙太網 標準/專用交換器 線形串接(從站硬體)
典型應用 儀表、電表、簡單整合 美系產線 歐系產線 高速運動控制
組態難度

選擇通常跟著 PLC 品牌走(AB \(\to\) EtherNet/IP、Siemens \(\to\) PROFINET、 運動控制密集 \(\to\) EtherCAT),跨陣營整合時 Modbus TCP 常是最務實的公分母。

OPC UA 與 MQTT

OPC UA:跨平台的工業資料標準——自帶資訊模型(物件、階層、單位)、 安全機制(憑證、加密)與服務(讀寫、訂閱、歷史)。 是控制層與 IT 層之間的標準橋樑,新一代 PLC 多半內建 UA Server。

MQTT:輕量發布/訂閱協定,經 broker 轉發,適合大量分散節點上雲。 搭配 Sparkplug B 規範可補足工業語意。粗略分工:廠內設備互通用 OPC UA, 上雲遙測用 MQTT

  1. 變頻器手冊寫「頻率命令在 40003」,PLC 的 Modbus 讀取位址該填多少?兩種可能都寫出來。

  2. 一個 REAL 佔幾個 Modbus holding register?讀出來數值錯亂時你會檢查什麼?

  3. 你的產線有 AB 與 Siemens 兩套 PLC 要交換 20 個 tag,提出兩種方案並比較。

運動控制

認識伺服系統組成與兩種指令介面;理解原點復歸、電子齒輪與電子凸輪; 會使用 PLCopen 標準功能塊的基本流程。

伺服系統組成

控制器(PLC/運動控制器)\(\to\) 驅動器(Drive/Amplifier)\(\to\) 伺服馬達(含編碼器) \(\to\) 機構(滾珠螺桿、皮帶、減速機)。三層迴路由內而外:電流環、速度環、位置環, 前兩者在驅動器內,位置命令來自控制器。

兩種指令介面

脈衝列(Pulse Train) 通訊型(EtherCAT/CC-Link IE 等)
接線 脈衝+方向,點對點 網路線串接多軸
軸數擴充 受限於 PLC 脈衝輸出點 數十軸以上
回授資訊 少(需另接) 位置/轉矩/警報全都有
精度與同步 一般 高(分散時鐘同步)
成本 中高
適用 1–4 軸簡單定位 多軸插補、凸輪、飛剪

基本概念

  • 原點復歸(Homing):增量編碼器上電不知道位置,須以原點開關+Z 相建立座標; 絕對值編碼器免復歸,斷電記憶位置。

  • 電子齒輪比:把「指令單位(mm、度)」換算為編碼器脈衝的比例設定; 設錯會出現「走 100 mm 實際走 99.7 mm」這類系統性誤差。

  • 電子凸輪(E-CAM):從軸位置依凸輪表跟隨主軸位置,取代機械凸輪; 飛剪、旋切、追膜的核心技術。

  • 加減速與 Jerk:梯形/S 曲線速度規劃,S 曲線減少機構衝擊。

PLCopen 運動控制功能塊

IEC 61131 生態的標準運動介面,各廠名稱幾乎一致:

(* 典型單軸定位流程 *)
MC_Power(Axis := Axis1, Enable := TRUE);            // 軸致能
MC_Home(Axis := Axis1, Execute := trigHome.Q);      // 原點復歸
MC_MoveAbsolute(Axis := Axis1,
                Execute  := trigGo.Q,
                Position := 250.0,      // mm
                Velocity := 100.0,      // mm/s
                Acceleration := 500.0);
MC_Stop(Axis := Axis1, Execute := cmd_Stop);
MC_Reset(Axis := Axis1, Execute := trigReset.Q);    // 清除軸故障

軸本身就是一個狀態機(Disabled、StandStill、Homing、Discrete Motion、ErrorStop…), 功能塊的 DoneBusyError 輸出必須逐一處理—— 把第 9 章的狀態機方法套到軸控流程,是多軸專案不亂掉的關鍵。

Execute 類輸入吃上升緣:條件保持 TRUE 不會重複執行, 而在 Busy 期間再次觸發,各平台行為不一(緩衝、覆蓋或報錯)。 另外:機械極限開關要接進驅動器的硬體極限輸入,不能只靠軟體極限。

  1. 滾珠螺桿導程 10 mm、馬達編碼器 23 bit/轉、減速比 5:1,走 1 mm 需要多少脈衝當量?

  2. 為「取放機構」(原點 \(\to\) 取料位 \(\to\) 放料位循環)設計軸控狀態機。

  3. 什麼場合值得從脈衝控制升級到 EtherCAT?列出三個判斷指標。

機械安全與功能安全

理解「一般控制」與「安全功能」必須分離;認識 ISO 13849 的 PL 與 IEC 62061 的 SIL; 掌握急停、安全門、光柵等典型安全迴路的設計原則。

核心觀念:安全不能只靠程式

一般 PLC 的單一 CPU、單一輸出電晶體都可能以「危險側」失效 (輸出短路導通、程式凍結)。因此安全功能必須由安全等級的元件鏈 (安全感測器 \(\to\) 安全繼電器或安全 PLC \(\to\) 強制導向接觸器)實現, 一般 PLC 只「知悉」安全狀態、做停機善後與顯示,不參與安全功能本身

法規與標準地圖

標準 角色
ISO 12100 風險評估與風險減低的總綱(本質安全 \(\to\) 防護 \(\to\) 使用資訊)
ISO 13849-1 控制系統安全相關部件;以 PL a–e 分級;類別 B, 1–4 結構
IEC 62061 / IEC 61508 功能安全;以 SIL 1–3 分級
IEC 60204-1 機械電氣設備安全(急停類別 0/1/2、配電、保護連結)

PL(Performance Level)由風險圖(傷害嚴重度 S、暴露頻率 F、可避免性 P)決定需求等級, 再以結構類別、MTTF\(_d\)、診斷覆蓋率 DC 與共因失效 CCF 驗證達成等級。 實務上 PL d/Cat. 3(雙通道、單一故障不喪失安全功能)是機械業最常見的設計點。

典型安全迴路

  • 急停(E-Stop):常閉雙通道接點 \(\to\) 安全繼電器 \(\to\) 切斷動力接觸器; 復歸必須手動且在確認危險排除後,不可自動復歸。

  • 安全門:門開時停止危險運動;高慣性設備配安全鎖(停止完成才允許開門)。

  • 安全光柵:進入偵測;與停止性能距離計算(安全距離公式)綁定。

  • 雙手按鈕:沖壓類設備,兩鈕需在 0.5 s 內同時按下且全程保持。

  • 強制導向接觸器回授(EDM):安全繼電器檢查接觸器確實釋放才允許再啟動。

安全 PLC

安全 PLC 以雙 CPU 互檢、測試脈衝輸出、SIL/PL 認證韌體實現可程式的安全邏輯, 適合安全 I/O 多、邏輯複雜(分區停機、模式相依的安全功能)的設備。 安全程式與一般程式分開編譯、簽章與權限管理;修改安全程式屬於變更管理事件, 需重新驗證。

常見違規:把光柵訊號接進一般 PLC,由梯形圖去停馬達——這不構成安全功能, 稽核與事故責任上都不成立。急停按鈕串進一般 DI「順便看看」可以, 但切斷動力的路徑必須是安全鏈

  1. 說明急停類別 0 與類別 1 的差異,各舉一種適用設備。

  2. 為一台有伺服軸的組裝機設計急停與安全門架構(畫出安全鏈方塊圖)。

  3. 為什麼安全繼電器要檢查接觸器的強制導向輔助接點(EDM)?

軟體工程實務:版本、模擬與測試

把一般軟體工程的紀律帶進 PLC 專案:版本控制、程式規範、模擬與虛擬調機、 以及可測試的程式結構。

版本控制與變更管理

  • 專案檔進 Git(多數現代 IDE 支援文字化匯出或原生 Git 整合), 至少做到:每次出機/改機一個 tag、變更說明寫「為什麼」。

  • 線上修改(online edit)後必須回收程式:現場搶修完, 把 CPU 內的最新版本上傳回版本庫,否則下次下載會把熱修覆蓋掉—— 這是業界最常見的「程式遺失」事故。

  • 建立「黃金備份」:CPU 程式+硬體組態+HMI 專案+驅動器參數+配方, 缺一不可,並定期演練還原。

程式規範

團隊層級的規範文件應涵蓋:命名規則(第 7 章)、分層架構(第 8 章)、 狀態機樣板(第 9 章)、警報準則(第 11 章)、註解要求 (每個 POU 開頭:用途、作者、修改歷史;每段非顯而易見邏輯:意圖而非行為)。

模擬與虛擬調機

層級 工具 能驗證什麼
軟體模擬 廠商模擬器(PLCSIM、Sysmac 模擬等) 邏輯正確性、狀態機轉移
I/O 模擬 模擬程式取代 I/O 映射層 含時序的流程(感測器延遲、逾時)
虛擬調機 3D 機構模型+物理引擎 干涉、節拍、多軸協調

第 7–8 章的 I/O 映射層在此展現價值:把映射層換成「行為模型」 (下達開閥命令 \(\to\) 2 秒後回授到位),整個主程式可以在辦公室先跑過所有流程與故障情境, 現場調機時間常可縮短一半以上。

可測試的程式與單元測試思維

FB 介面乾淨(輸入/輸出明確、不偷用全域變數)就可以被測試: 寫一個測試程式,餵入序列化的輸入劇本,檢查輸出與狀態。 至少為共用庫(換算函數、通用設備 FB)建立測試案例, 升級韌體或重構後重跑一次,防止「改 A 壞 B」。

審查他人(或自己)PLC 程式的簡明清單: 狀態變數是否單一寫入點?每個等待狀態有無逾時出口?上電初始化是否明確? 輸出是否集中且為狀態的函數?計時器/計數器命名是否語義化? 邊緣與電平使用是否正確?——這六問可以抓出大部分結構性問題。

  1. 為第 8 章 FB_Motor 寫一份測試劇本(表格:時間、輸入、預期輸出)。

  2. 設計「輸送帶+光電」的 I/O 行為模型,用於離線驗證第 9 章的狀態機。

  3. 你的工廠發生過「下載舊版覆蓋現場熱修」嗎?寫出一套防止它的流程。

試車、除錯與維護

建立系統化的試車流程;安全地使用線上監視與強制;掌握常見故障的排除路徑。

試車流程

  1. 冷測(斷動力):配線點檢、絕緣/迴路量測、I/O 對點 (逐點觸發輸入看 PLC、逐點強制輸出看現場——做記錄、簽名)。

  2. 單體測試:手動模式逐台設備動作,確認方向、極限、回授。

  3. 空車測試(dry run):自動模式無料運轉,驗證流程、互鎖與節拍。

  4. 帶料測試(wet run):漸進負載,驗證真實時序與例外處理 (堵料、缺料、急停後復機)。

  5. 驗收(SAT/FAT):依規格逐項驗證並留存紀錄與最終版本備份。

線上監視與強制(Force)

線上監視 rung 導通狀態與變數值是 PLC 最強的除錯武器;「交叉參照(cross reference)」 可列出變數所有讀寫位置——查「這個輸出為什麼會 ON」永遠從交叉參照開始。

強制(Force)會繞過所有程式邏輯直接鎖定 I/O,等同拆掉一道防線: 強制前確認現場無人、掛牌告知;一次只強制一點;用畢立即解除並檢查「強制表已空」。 帶著殘留強制把設備交還產線,是重大事故的經典開場。

常見故障排除路徑

症狀 排查順序
輸出不動作 交叉參照查邏輯 \(\to\) 輸出映像值 \(\to\) 模組指示燈 \(\to\) 端子電壓 \(\to\) 負載
輸入讀不到 感測器指示燈 \(\to\) 端子電壓 \(\to\) COM 極性(Sink/Source)\(\to\) 濾波時間
CPU 故障燈 讀診斷緩衝區(永遠先看診斷,不要瞎猜):電池、模組、程式錯誤
通訊中斷 實體層(線材、終端電阻、指示燈)\(\to\) 位址/參數 \(\to\) 逾時與輪詢負載
偶發誤動作 懷疑雜訊:檢查接地、遮蔽、動力線距離;檢查邊緣/電平誤用與掃描相依邏輯

預防維護

備品清單(CPU、電源、關鍵模組)、電池更換週期、備份排程、 盤內清潔與端子緊固年檢、韌體版本清冊。 把「診斷資訊上 HMI」做在專案裡:模組健康、通訊狀態、掃描時間、電池電壓—— 讓維護人員不用接電腦就能判斷八成的問題。

  1. 制定一份 I/O 對點表格式(欄位自訂),以 10 點 DI/DO 為例填寫。

  2. 一顆輸出強制 ON 之後被遺忘,寫出可能的事故鏈與三道防止措施。

  3. 為你熟悉的一台設備列出「診斷上 HMI」的十個項目。

工業 4.0 與 IIoT 整合

理解 PLC 在智慧工廠資料架構中的位置;掌握資料採集的設計要點; 認識邊緣運算與 PLC 技術的發展方向。

資料整合架構

傳統 ISA-95 金字塔逐層上報的架構,正被「控制層維持金字塔、 資料層直上平台」的混合架構取代:PLC 依然負責即時控制, 但透過 OPC UA/MQTT 把資料直接送往歷史資料庫(Historian)、MES 與雲端分析平台, 邊緣閘道器(Edge Gateway)負責協定轉換、緩存與前處理。

資料採集設計要點

  • 在 PLC 端就把資料整理好:帶時戳、帶品質旗標、帶批次/工單關聯, 而不是丟一堆裸暫存器讓上層猜。

  • 事件比輪詢有價值:狀態轉移、警報、批次開始/結束打包成事件上報; 高頻類比才用固定週期採樣。

  • 通訊負載隔離:資料採集使用獨立網口或獨立任務, 不允許上層輪詢拖慢控制掃描。

  • 斷線緩存:邊緣端須能在網路中斷時暫存資料,恢復後補傳(store and forward)。

OEE:最常見的第一個應用

設備總合效率 \(OEE = 稼動率 \times 性能率 \times 良率\)。 PLC 要提供的原始資料:運轉/停機狀態與停機原因碼、理論節拍與實際產量、良品/不良品計數。 停機原因碼最有價值也最難做好——在狀態機(第 9 章)的 FAULT 與等待狀態中 順手記錄原因碼,遠勝事後人工填報。

資安基本盤

控制網路與 IT 網路分區(DMZ/防火牆)、關閉不用的服務與埠、 變更預設密碼、遠端連線走 VPN 且留存紀錄、韌體弱點追蹤(訂閱廠商資安公告)。 IEC 62443 是工控資安的參考框架;最低限度:絕不把 PLC 直接暴露在網際網路上

PLC 的未來

軟體定義 PLC(虛擬化、容器化執行環境)、開放自動化(IEC 61499、廠商中立執行時)、 內建 AI 推論的控制器、以及「IT 工具鏈(Git、CI/CD、模擬)成為標配」—— 本書中級篇與高級篇的工程方法,正是迎接這些趨勢的基本功。

  1. 為一台包裝機設計 OEE 資料介面:列出 tag 清單(名稱、型別、更新時機)。

  2. 說明為什麼「PLC 裸暴露於網際網路」不可接受,列出三種真實風險。

  3. 規劃你工廠的第一個 IIoT 專案:目標、資料流、所需元件與分工。

學習路線圖與資源

建議學習路線

階段 里程碑 建議實作專案
初級(1–2 月) 獨立完成接線+基本梯形圖 三段式輸送帶啟停、紅綠燈、停車場計數
中級(3–6 月) ST 狀態機+模組化+PID 自動門、小型分揀線、恆溫水槽
高級(6 月起) 通訊整合+伺服+安全設計 變頻器 Modbus 整合、單軸取放、含安全門的設備改造

練習環境

各大廠皆提供免費或試用的開發環境與模擬器(如 Siemens TIA Portal 試用版+PLCSIM、 Rockwell CCW 免費版、Omron/三菱試用版、CODESYS 免費開發環境)。 沒有硬體時,CODESYS + 軟體模擬是零成本練完本書中級篇的可行途徑; 初級篇的接線與感測器實務,建議至少購置一台入門 PLC 與幾顆感測器實作。

延伸閱讀方向

IEC 61131-3 標準文本與各平台程式手冊、ISA-18.2(警報管理)、 ISO 13849-1(機械安全)、IEC 62443(工控資安)、PLCopen Motion 規範, 以及各廠牌的最佳實務文件(如 Rockwell 的程式設計指南、Siemens 的程式風格指南)。

詞彙表

術語 說明
PLC / PAC 可程式邏輯控制器/可程式自動化控制器(整合運動、程序控制的高階 PLC)
Scan Cycle 掃描週期:輸入 \(\to\) 程式 \(\to\) 輸出的循環
I/O Image 輸入/輸出映像區:實體 I/O 在記憶體中的快照
Watchdog 看門狗:監控掃描逾時的保護機制
NO / NC 常開/常閉(接點型式;注意實體與程式層面的區別)
Sink / Source 數位 I/O 的電流方向型式,對應 NPN/PNP 感測器
Seal-in 自保持電路:輸出以自身接點維持導通
TON / TOF / TP 通電延遲/斷電延遲/脈衝計時器
R_TRIG / F_TRIG 上升緣/下降緣偵測功能塊
POU 程式組織單元:Program、Function Block、Function
FB Instance 功能塊實例:同一 FB 型別的獨立記憶副本
UDT 使用者定義型別(結構)
Retentive 保持型記憶體:斷電後資料保留
First Scan 首次掃描旗標:上電後第一個週期為真,用於初始化
HSC 高速計數器:不受掃描週期限制的硬體計數
PID 比例–積分–微分控制
Anti-windup 積分抗飽和:輸出飽和時停止積分累積
Scaling 原始值與工程單位間的線性換算
HMI / SCADA 人機介面/監控與資料擷取系統
Alarm Flood 警報洪水:短時間大量警報淹沒操作員
Modbus RTU/TCP 最普及的開放工業通訊協定(串列/乙太網)
OPC UA 跨平台工業資料交換標準,含資訊模型與安全機制
MQTT 輕量發布/訂閱通訊協定,常用於 IIoT 上雲
EtherCAT 高速工業乙太網,運動控制常用
Homing 原點復歸:建立軸座標系的程序
E-CAM 電子凸輪:以凸輪表使從軸跟隨主軸
PL / SIL 安全性能等級(ISO 13849)/安全完整性等級(IEC 61508/62061)
E-Stop 緊急停止;類別 0(立即斷電)/類別 1(受控停止後斷電)
EDM 外部裝置監控:安全繼電器檢查接觸器強制導向接點
Force 強制:繞過程式直接鎖定 I/O 值(高風險除錯手段)
Cross Reference 交叉參照:列出變數在程式中所有讀寫位置
FAT / SAT 出廠驗收測試/現場驗收測試
OEE 設備總合效率 = 稼動率 \(\times\) 性能率 \(\times\) 良率
Digital Twin 數位孿生:設備的虛擬模型,用於模擬與虛擬調機
IEC 61131-3 PLC 程式語言國際標準(LD、FBD、ST、SFC、IL)
IEC 62443 工業自動化與控制系統資安標準