跳轉到

1969-PLC可程式邏輯控制器#

案件摘要#

1968 年,美國波士頓一家小公司 Bedford Associates 的工程師 Dick Morley(Richard E. Morley, 1932–2017),為通用汽車(GM)的 Hydramatic 部門寫下了一份劃時代的規格書。隔年,他的團隊(包括 Tom Boissevain 與 Mike Greenberg)造出了第一台可程式邏輯控制器——Modicon 084(MODular DIgital CONtroller,084 是公司第八十四個企劃案編號)。這台機器的罪行:謀殺了整面牆的繼電器控制盤(relay panel)。本偵探要查的是:一個「不夠快、不夠精密」的電腦,憑什麼打敗了統治工廠數十年的硬接線邏輯?答案藏在階梯圖與掃描循環裡。

前因 -- 為什麼會有這個案子#

1960 年代末的汽車廠控制室是一堵「牆」:數千個繼電器、計時器、計數器用銅線硬接(hard-wired)在一起。GM Hydramatic 變速箱廠每年換一次車型,就要重新接線數週甚至數月——停機一天損失以萬美元計,接錯一根線就全線癱瘓。繼電器本身也是機械觸點,會磨損、會黏死、會誤動作。

1968 年,GM 提出著名的白皮書招標規格,要求新控制器必須: 1. 可程式化、可現場重編程; 2. 能承受工廠的震動、溫度、電氣雜訊; 3. 用階梯圖(ladder logic)編程,讓現有繼電器技術員不必學新語言; 4. 價格具競爭力、維修模組化。

當時主流電腦(如 IBM、DEC 的機器)太貴、太怕髒、太難編程。Morley 的洞見是:不要做一台更好的電腦,要做一台「夠用」的工廠電腦——犧牲速度與浮點運算,換取可靠性與即時確定性。

線索與推理 -- 數學式、程式、理論#

線索一:布林代數與繼電器邏輯——硬接線的數學本質#

繼電器控制盤本質上是布林代數的物理實現。串聯 = AND,並聯 = OR,常閉觸點 = NOT:

\[ Y = (A \cdot B + \bar{C}) \cdot D \]

Shannon 在 1937 年的碩士論文(A Symbolic Analysis of Relay and Switching Circuits)已經證明繼電器電路與布林代數同構。問題不在數學,而在實現方式:繼電器是機械的(響應時間約 5–20 ms,壽命約 \(10^6\) 次動作),PLC 用固態電子(響應時間為微秒級)取代之,邏輯不變、壽命趨近無限。

線索二:掃描循環——確定性的即時系統#

Modicon 084 的執行模型是掃描循環(scan cycle):讀輸入 → 求解邏輯 → 寫輸出,週而復始。掃描週期 \(T_s\) 典型為 10–100 ms,輸入延遲的上界:

\[ t_{\text{delay}} \le T_s + t_{\text{filter}} \]

關鍵在確定性(determinism):每次掃描執行相同的邏輯路徑,輸出延遲有嚴格上界。這與分時作業系統(time-sharing)的不確定延遲形成對比——工廠控制需要的是「保證最壞情況」,不是「平均很快」。對於快於掃描週期的脈衝訊號,PLC 提供高速計數器與中斷處理作為補充。

線索三:階梯圖——相容性的絕殺招#

Morley 團隊最重要的工程決策:編程語言採用階梯圖(ladder diagram),外觀與繼電器控制圖完全相同——兩條垂直電源軌(L1、L2)之間畫一排水平「階級」(rungs),觸點與線圈符號不變。這讓 GM 的繼電器技術員零學習成本上手。這是「使用者介面決定技術採用」的經典案例:技術上更優雅的語言(如 Fortran 直接編程)反而會死在相容性上。

一個階梯圖階級可以用 Python 模擬其布林求值:

# 階梯圖 rung 模擬: Y = (A AND B) OR (NOT C AND D)
def scan_cycle(A, B, C, D):
    rung = (A and B) or ((not C) and D)
    return rung

# 掃描多個輸入組合, 驗證等價於布林代數
for A, B, C, D in [(1,1,0,0),(0,1,0,1),(1,0,1,1),(1,1,1,1)]:
    print(f"A={A} B={B} C={C} D={D} -> Y={int(scan_cycle(A,B,C,D))}")

線索四:可靠性工程——MTBF 的戰場#

PLC 用固態邏輯與模組化設計,把平均故障間隔時間(MTBF)從繼電器盤的月級推向年級。系統可靠度為:

\[ R_{\text{system}}(t) = e^{-\lambda t}, \quad \text{MTBF} = \frac{1}{\lambda} \]

模組化設計意味著故障模組可熱抽換(hot swap),修復時間(MTTR)從數天縮到數分鐘——可用度 \(A = \frac{\text{MTBF}}{\text{MTBF}+\text{MTTR}}\) 大幅提升,這正是 GM 招標規格的真正目標。

破案時刻#

1969 年,Modicon 084 通過 GM 的驗收測試,成功取代繼電器控制盤。接線工作從「數週」變成「改幾行程式」——換車型的停機時間暴跌。Morley 把 Modicon 業務賣給 Gould,之後 PLC 產業爆發:Allen-Bradley(後併入 Rockwell)、西門子(Siemens S5 系列)相繼推出產品。階梯圖成為工業控制的事實標準,後來被正式納入 IEC 61131-3 標準(1993)的五種語言之一。破案定論:繼電器邏輯的數學 + 確定性掃描 + 階梯圖相容性,三證俱全,謀殺繼電器盤的罪名成立。

後果 -- 改變了什麼#

  • 工業自動化典範轉移:PLC 成為離散製造控制的標準配備,從汽車延伸到食品、包裝、電梯、水處理。今天全球仍有數千萬台 PLC 在服役。
  • 軟體取代硬體:「改產品 = 改程式」首次成為現實,這是後來「軟體定義一切」(software-defined X)思想在工業端的先聲。
  • 標準化:IEC 61131-3 定義了階梯圖(LD)、功能塊圖(FBD)、結構化文字(ST)、指令表(IL)、順序功能圖(SFC)五種語言,階梯圖至今仍是最普及的一種。
  • 工程職業改變:電氣技術員演變成「PLC 程式設計師」,工業控制的知識從接線圖轉移到軟體邏輯。
  • Dick Morley 的遺產:他被尊稱「PLC 之父」,晚年成為矽谷式的技術先知與創業導師。Modicon 品牌一路存活到被施耐德電機(Schneider Electric)收購。