National Central University
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try an AI Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

3

Local AI

--

Uedu Code

--

中央大學 AQI 72 24°C PM2.5 13
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 01

PLC 是什麼

可程式邏輯控制器、掃描週期、和微控制器與電腦的差別
Interaction 20 minute(s)

Learning Objectives

  • 說出 PLC 是什麼,以及它為什麼取代了繼電器控制盤
  • 比較 PLC、微控制器與個人電腦適合的場合
  • 說明掃描週期的三個步驟,以及輸入映像與輸出映像的作用
  • 判斷一個很短的輸入訊號會不會被 PLC 漏掉

工廠裡的「控制器」

走進一條汽車零件產線:輸送帶把工件送到定位,感測器偵測到工件,氣缸夾住、機械手臂加工、再送到下一站。 指揮這些動作的,多半不是一台個人電腦,而是一個裝在控制箱裡、方方正正的盒子:可程式邏輯控制器(Programmable Logic Controller,PLC)。

PLC 的工作很單純:讀進感測器與按鈕的狀態,依照程式決定要開哪些馬達、閥門與燈,一秒鐘重複幾十到幾百次,而且一跑就是好幾年。

PLC 從哪裡來

1960 年代的產線用一整面牆的繼電器做邏輯控制,每換一種車型,就要重新配線。1968 年,通用汽車(GM)的 Hydramatic 變速箱部門提出需求:想要一種電子設備取代繼電器控制盤,改控制邏輯時改程式就好,不必重新配線。 麻州的 Bedford Associates 提出的設計在 1969 年做出來,編號 084(他們的第 84 個專案),一般認為是第一台 PLC; 參與設計的 Dick Morley 常被稱為「PLC 之父」。這家公司後來改名為 Modicon。

為了讓原本看得懂繼電器電路圖的技術人員也能寫程式,PLC 最常用的語言畫得就像繼電器電路圖,這就是第 03 課的階梯圖。

PLC、微控制器、個人電腦,差在哪裡

PLC 微控制器(ESP32、Arduino) 個人電腦
工作環境 控制箱裡,耐震、耐溫、抗電氣雜訊 要自己做外殼與保護 辦公室環境
輸入輸出 24 V 工業訊號,接線端子直接接感測器、繼電器 3.3 V/5 V,要自己加隔離與驅動電路 要另外接介面卡
程式 階梯圖等 IEC 61131-3 語言,執行中可監看每個接點 C/C++、MicroPython 什麼都可以
時間行為 固定的掃描週期,可以預測 看程式怎麼寫 作業系統隨時可能插隊
維修 換同型號模組、載入程式就能復工 要懂電路與韌體 要懂作業系統

所以 PLC 不是「比較強的電腦」,而是為工廠的可靠性與好維修而設計。微控制器適合做產品與原型(ESP32 軌), 個人電腦適合做監控、記錄與分析(本軌後半會用 Python 透過 Modbus 讀寫 PLC)。

PLC 的組成

部分 做什麼
電源 把控制箱的電源轉成 PLC 內部用的電;很多 PLC 吃 24 V 直流
CPU 存放與執行程式、處理通訊;面板上有 RUN/STOP 指示燈
輸入模組 接按鈕、極限開關、感測器;每一點有一顆指示燈,亮=這個輸入是 1
輸出模組 接指示燈、電磁閥、接觸器(再由接觸器去開大功率的馬達)
通訊 和觸控螢幕(HMI)、電腦、其他 PLC 交換資料(第 08 課以後)

小型 PLC 把這些做成一體式的一個盒子;大型系統用模組式,把電源、CPU、各種模組插在機架或導軌上,需要多少點就加多少模組。

PLC 有兩種模式:RUN 時不斷執行程式;STOP 時不執行程式、輸出關閉,用來下載程式與檢修。

安全守則:PLC 控制的是真的會動的機器。檢修前要停機、切斷電源並上鎖掛牌(lockout/tagout), 急停按鈕要接在硬體安全迴路裡,不能只靠 PLC 程式。本課程只在模擬器上練習,不放任何電源接線步驟。

動手看:掃描週期

PLC 不是一直盯著輸入看,而是一輪一輪地掃描:

  1. 讀輸入:把所有輸入端子的狀態一次抄進記憶體裡的「輸入映像」。
  2. 執行程式:從第一條 rung 算到最後一條,只看輸入映像,結果寫進「輸出映像」。
  3. 寫輸出:把輸出映像一次送到輸出端子。

上面的動畫是一輪掃描;下面的時間圖把好幾輪攤開來:最上面是感測器真實的訊號,直線刻度是每一輪讀輸入的時刻。 調整掃描週期與脈衝寬度,依序完成任務。

逐步看:用 Python 寫一個掃描迴圈

PLC 的作業系統其實就在跑一個永不結束的迴圈。這裡用 for 迴圈跑 4 輪。注意每一輪都是固定的三個步驟,而且第 7 行的「程式」只看 I0_0(輸入映像),不直接看按鈕。

為什麼要先抄一份「映像」

如果程式執行到一半,輸入突然變了,前面幾條 rung 看到舊值、後面幾條看到新值,結果就會互相矛盾。 PLC 在一輪掃描開始時把所有輸入一次抄好,整輪程式都看同一份資料,結果才一致、可以預測。

代價是反應時間:輸入在剛讀完之後才變化,要等到下一輪才讀到,再執行完程式才送到輸出。 所以從感測器動作到輸出改變,最長大約要兩輪掃描(再加上輸入、輸出模組本身的延遲)。

另一個代價:比掃描週期還短的訊號可能整個被漏掉。下面的範例就是這種情況。 真實的 PLC 遇到很快的訊號(例如編碼器的脈衝),會用專門的高速計數器或中斷輸入,不靠一般的掃描來讀。

PLC 還有一個看門狗(watchdog)計時器:如果某一輪掃描花太久(例如程式寫出無窮迴圈),PLC 會停止運轉並關閉輸出,避免機器失控。

逐步看:漏掉的脈衝

感測器在 13~17 毫秒與 31~45 毫秒各送出一個脈衝,PLC 每 10 毫秒讀一次。注意第一個脈衝只有 4 毫秒,剛好落在兩次讀取之間。

互動練習:第一次讓 PLC 動起來

這台 PLC 接了一個選擇開關(I0.0)、一個按鈕(I0.1)和兩個指示燈(Q0.0 綠、Q0.1 紅)。 起始程式只有一條 rung。階梯圖的細節下兩課會詳細講,現在先這樣讀:左邊的接點導通,右邊的線圈就變成 1。

  1. 按「執行(RUN)」,切換開關、按住按鈕,看綠燈跟著誰。然後點接點,把位址改成 I0.0,讓綠燈跟著開關。
  2. 新增一條 rung:開關 OFF 時紅燈亮(提示:接點種類改成「常閉接點」,它在位元是 0 時導通)。
  3. 回答一個問題。

小測驗:PLC 的定位

1.

1968 年 GM 想用電子設備取代繼電器控制盤,最主要的理由是什麼?

2.

下面哪一個工作最適合交給 PLC?

3.

PLC 在 STOP 模式時會怎樣?

第 1 次作答

小測驗:掃描週期

1.

一輪掃描的順序是?

2.

用 Python 模擬每 10 毫秒讀一次輸入,會印出什麼?

pulse = range(22, 27)
seen = [t for t in range(0, 50, 10) if t in pulse]
print(len(seen))
3.

為什麼 PLC 要在每輪開始時把輸入「一次抄好」,而不是程式執行到哪裡就讀到哪裡?

第 1 次作答

重點整理

  • PLC 是為工業現場設計的控制器:讀輸入、照程式決定輸出,可靠、好維修,改邏輯只要改程式。
  • 第一台 PLC 是 1968 年 GM 提出需求、Bedford Associates 做出的 084。
  • PLC、微控制器、個人電腦各有適合的場合:PLC 管機器、微控制器做產品原型、電腦做監控與分析。
  • PLC 由電源、CPU、輸入模組、輸出模組與通訊組成;有一體式與模組式。RUN 執行程式,STOP 停止並關閉輸出。
  • 掃描週期:讀輸入 → 由上而下執行程式 → 寫輸出,不斷重複。整輪程式看同一份輸入映像。
  • 反應時間最長約兩輪掃描;比掃描週期短的訊號可能被漏掉,要用高速計數器或中斷輸入。
  • 檢修機器前要停機、斷電、上鎖掛牌;急停要接在硬體安全迴路。

下一課看 PLC 的輸入輸出怎麼接:24 V 訊號、NPN 與 PNP 感測器、繼電器與電晶體輸出。

這一課完成了!
Next lesson:數位輸入輸出與現場設備
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。