2026年9月2日 星期三

EasyBuilder Pro 元件 與 Schneider EcoStruxure Machine Expert - Basic PLC ( PLC 100範例 -19 )

EasyBuilder Pro 元件 與 Schneider EcoStruxure Machine Expert - Basic PLC  ( PLC 100範例 -19 )


 

圖片中標示的就是 Schneider EcoStruxure Machine Expert - Basic 的高速計數器區塊!

不過在 Basic 軟體中,高速計數器有分成兩種模式,需要根據您的應用(AB 相編碼器)來確認配置:

1. 工具列上的圖示功能對照

在左側工具列中,與計數相關的三個圖示分別為:

  • 123 (普通計數器 Counter):即 %C0,用於一般低速開關訊號計數。

  • 1123 (快速計數器 Fast Counter):即 %FC,用於較簡單的單相快速計數。

  • 11123 (高速計數器 High Speed Counter):即 %HSC,這是您圖片中拉出來的區塊,支援雙相 (AB相) 編碼器輸入。

2. AB 相編碼器(Dual Phase / Quadrature)的設定重點

當您將 11123 (%HSC) 區塊拉到階梯圖後,需要點擊該區塊進行 Configuration(硬體配置)

  1. Address (位址):選擇 %HSC0

  2. Mode (模式)

    • 要接收圖片中的 AB 相脈衝,模式必須設定為 Quadrature X1Quadrature X2Quadrature X4(四倍頻模式最常用,解析度最高)。

  3. Dedicated Inputs (專用腳位)

    • 軟體會自動固定將 %I0.0 指派給 A 相%I0.1 指派給 B 相

3. 高速計數器端子說明 (Tooltip 內容解析)

  • IN (Enable):啟用端。接通時(TRUE),高速計數器開始接收 %I0.0 / %I0.1 的脈衝並進行計數。

  • S (Preset):預設值載入端。接通時,將預設值載入至 %HSC0.V(當前值)。

  • F (Overflow):溢位標誌。

  • U (Counting Direction):計數方向指示(在 AB 相模式下,系統會根據 A/B 相相位差自動判斷正轉/反轉,此端子會動態顯示當前是正計數還是倒計數)。

  • TH0 / TH1 (Threshold):設定門檻值達標輸出(若有設定比較值)。



出現這個問題(Address 顯示紅框 %HSC0 且 Type 顯示 Type: Not Configured)的原因是:Schneider EcoStruxure Machine Expert - Basic 的高速計數器(%HSC)無法直接在階梯圖編輯器中手動打字修改型態,必須先在「硬體組態 (Configuration)」分頁中進行啟用與配置。

請按照以下步驟完成設定:

正確設定步驟(3 步驟解決):

步驟一:前往左側/上方的「Configuration (組態)」分頁

  1. 點擊頂部選單列的 Configuration(組態分頁,通常在 Programming 旁邊)。

  2. 在左側硬體樹狀圖中,點選您的 PLC 型號 TM221CE40R 下方的 High Speed Counters(高速計數器)或直接點選 %HSC0

步驟二:配置 %HSC0 參數

%HSC0 的設定頁面中:

  1. Used:勾選 Yes(啟用此高速計數器)。

  2. Type (型態):將原本的 Not Configured 切換選擇為 Main(主計數器)或 Dual Phase / Quadrature

  3. Mode (模式):若接 AB 相編碼器,請選擇 Quadrature X4(四倍頻模式)或 Quadrature X1 / X2

  4. Preset Value (預設值):可先維持 0 或輸入設定值。

  5. Dedicated Inputs (固定腳位):系統會自動將 %I0.0 指定給 A 相,%I0.1 指定給 B 相。

步驟三:返回階梯圖編輯器 (Programming)

  1. 點擊頂部 Programming 回到階梯圖畫面。

  2. 此時原本紅框的 %HSC0Type: Not Configured 就會自動變為正常黑色字樣,Rung0 左側的紅色錯誤警告(X)也會隨之消失!

總結觀念:

在 SoMachine / Machine Expert - Basic 中,像 %HSC (高速計數器)%PTO (脈衝輸出)%ETH0 (網路通訊) 這類佔用特殊硬體腳位的功能區塊,都必須先在 Configuration 設定「啟用 (Used = Yes)」,階梯圖(Ladder)才能正常引用該位址


在 Schneider EcoStruxure Machine Expert - Basic 的 High Speed Counter Assistant %HSC0(高速計數器助手)畫面中,針對 AB 相編碼器(A/B Phase Encoder) 的標準設定方法與各欄位說明如下:

1. 頂部主要模式設定 (Main Settings)

  • Type of HSC:選擇 Dual Phase(雙相 / AB相模式)。

  • Counting Mode:選擇 Free-large(自由大型計數,即從 -2,147,483,6482,147,483,647 的連續雙字組範圍,最適合定位與編碼器回授)。

  • Input Mode:選擇 Quadrature X4(四倍頻模式,解析度最高、最常用;若不需要倍頻可選 Quadrature X1X2)。

2. General(一般參數設定)

  • Double Word建議勾選(Checked)

    • 原因:編碼器旋轉脈衝數通常很大,勾選 Double Word 後,暫存器 %HSC0.V 會轉為 32 位雙字組(可儲存超過 9,999 的數值),避免計數值快速溢位。

  • Preset (預設載入值):填入 0(作為復位/觸發 S 端時的初始歸零值)。

  • Threshold S0 / Threshold S1 (比較門檻值)

    • 若程式只需在 PLC 內即時讀取 %HSC0.V 脈衝並用梯形圖做比較(例如剛才程式寫的 ABS(%MD0 - %MD2)),這兩欄保持預設值或填入目標比較值即可

    • Trigger:選 Not Used(除非需要觸發硬體高優先權中斷服務 Subroutine)。

3. Inputs(硬體輸入腳位分配)

系統已自動幫您指派並勾選:

  • Pulse Input Phase A%I0.0(自動作為 A 相脈衝輸入)

  • Pulse Input Phase B%I0.1(自動作為 B 相脈衝輸入)

  • Normal Input (%I0.2 / %I0.3)不勾選(保留作為一般 PLC 輸入點使用即可)。

4. Reflex outputs(硬體快速反射輸出)

  • Reflex Output 0 / 1不勾選

    • 說明:這是當計數器達到門檻(Threshold)時,無需經過 PLC 掃描週期、直接由硬體晶片驅動晶體輸出的功能。我們一般由梯形圖(Rung)控制指示燈 %M100 / %M101,因此此處保持取消勾選即可。

設定完成步驟

  1. 確認以上參數設定無誤後,點擊右下角的 Apply(套用)。

  2. 返回 Programming(階梯圖頁面),此時梯形圖中的 %HSC0 區塊就會恢復為正常的黑色可執行狀態(不再顯示紅框與錯誤)。



在 EasyBuilder Pro 或實機上測試時,若「編碼器實際讀取脈衝(%MW2)」永遠停在 0,請依序排查以下 3 個最常見的原因與對應解法

原因一:PLC 的 %HSC0 區塊未被啟動(IN 端子未接通)

在 Machine Expert - Basic 中,高速計數器(%HSC0)必須在其左側 IN 端子保持導通(ON) 的狀態下,才會開始接收外接脈衝訊號。

  • 檢查項目: 在 PLC 程式(Rung 0)中,%HSC0 的前面是否接了 %M0?若按下人機按鈕前 %M0 為 OFF,%HSC0 就不會開始運作。

  • 解決方法: 在 Rung 0 中,直接將 %HSC0IN 端接在左側母線上(無條件導通),或確保監控開關 %M0 已切換至 ON:

Plaintext
(* Rung 0: 讓 %HSC0 常時啟用,無條件接收脈衝 *)
          +-----------------------+
          |        %HSC0          |
---| |----|IN                     |
 (母線)   |  Type: Dual Phase     |
          |  Mode: Quadrature X4  |
          +-----------------------+

原因二:階梯圖中沒有持續執行 %MW2 := %HSC0.V

若讀取指令放在有條件(例如前面的觸點為 OFF)的階梯中,PLC 就不會執行傳送,人機讀到的 %MW2 就會一直保持初始值 0。

  • 解決方法: 請確認 Rung 1 為無條件直接傳送(指令框直接連到左側母線),確保每個掃描週期都在更新數值:

Plaintext
(* Rung 1: 無條件即時讀取當前脈衝值至 %MW2 *)
|------------------------------------------------------------[ %MW2 := %HSC0.V ]--|

原因三:模擬器/實機接線與軟體模擬限制

  1. 若使用「線上模擬 (Simulation Mode)」

    • 由於電腦模擬器沒有連接真實的硬體編碼器,實體輸入點 %I0.0%I0.1 不會有脈衝進來,因此 %HSC0.V 預設必定為 0。

    • 測試方法:可以在 PLC 梯形圖中暫時加一條測試邏輯(例如按另一個按鈕手動對 %MW2 加算,或用 %S6 1秒脈衝模擬計數),驗證人機介面(%MW2)顯示是否正常。

  2. 若連接「實體 PLC (TM221CE40R)」

    • 檢查硬體腳位:編碼器 A 相必須接至 %I0.0,B 相必須接至 %I0.1

    • 檢查信號電位:TM221CE40R 的輸入點預設為 24V DC(SINK / SOURCE)。若編碼器輸出為 5V TTL 或 Line-Driver(差動信號),PLC 會因為電位不足而無法感應到脈衝,需要加上 5V 轉 24V 的訊號轉換板,或選用 24V NPN/PNP 集極開路(Open Collector)輸出的編碼器。


EcoStruxure Machine Expert - BasicEasyBuilder Pro 進行「純軟體線上模擬(Simulation)」時,因為電腦沒有連接實體編碼器,%HSC0(硬體高速計數器)無法接收到實體腳位 %I0.0 / %I0.1 的脈衝,所以 %HSC0.V 會一直固定為 0

為了在線上模擬時能看到人機介面動態顯示計數、偏差計算與指示燈動作,可以在 PLC 程式中加入一段「模擬脈衝切換開關」:當開啟模擬模式時,利用 PLC 內部的 1 秒脈衝(%S6)或 100ms 脈衝(%S5)來自動對 %MW2(實際脈衝)進行加減算。

線上模擬專用 PLC 階梯圖程式 (Ladder Logic View)

新增模擬控制點位:

  • %M10:模擬運轉開關(HMI 上的「模擬編碼器轉動」按鈕)

  • %M11:正轉 / 反轉切換開關(ON: 模擬出庫/反轉 -1, OFF: 模擬入庫/正轉 +1)

Plaintext
(* Rung 0: 實機高速計數器啟用 (實機時運作) *)
          +-----------------------+
          |        %HSC0          |
----------|IN                     |
 (常導通) |  Type: Dual Phase     |
          |  Mode: Quadrature X4  |
          +-----------------------+

(* Rung 1: 實機/模擬 數值選擇 *)
(* 當未開啟模擬(%M10為OFF)時,即時讀取實機 %HSC0.V 至 %MW2 *)
|--[ / %M10 ]------------------------------------------------[ %MW2 := %HSC0.V ]--|

(* Rung 2: 線上模擬邏輯 - 正轉加計數 (每 100ms 脈衝 %S5 加 10 個脈衝) *)
|--[ %M10 ]-----[ / %M11 ]-----[ %S5:P ]---------------------[ %MW2 := %MW2 + 10 ]--|

(* Rung 3: 線上模擬邏輯 - 反轉減計數 (每 100ms 脈衝 %S5 減 10 個脈衝) *)
|--[ %M10 ]-----[ %M11 ]-------[ %S5:P ]---------------------[ %MW2 := %MW2 - 10 ]--|

(* Rung 4: 計算兩數偏差絕對值 *)
|--[ %M0 ]-----[ %MW0 >= %MW2 ]------------------------------[ %MW4 := %MW0 - %MW2 ]--|
|                                                                                    |
|--[ %M0 ]-----[ %MW0 < %MW2  ]------------------------------[ %MW4 := %MW2 - %MW0 ]--|

(* Rung 5: 偏差過大檢測 (當偏差 %MW4 > 10 時觸發報警燈 %M101) *)
|--[ %M0 ]-----[ %MW4 > 10 ]-----------------------------------------( %M101 )--|

(* Rung 6: 定位完成指示燈 (當偏差 %MW4 <= 10 時亮起 %M100) *)
|--[ %M0 ]-----[ %MW4 <= 10 ]----------------------------------------( %M100 )--|

(* Rung 7: 清零與報警復位按鈕 (%M1) *)
|--[ %M1 ]--+--------------------------------------------------------[ %MW2 := 0 ]--|
            +--------------------------------------------------------[ %HSC0.V := 0 ]--|
            +--------------------------------------------------------( RST %M101 )--|


EasyBuilder Pro 人機介面測試設定

為了方便在線上模擬時測試,可在人機畫面上臨時或永久新增兩個按鈕

  1. 「模擬編碼器轉動」按鈕(位元按鈕)

    • 讀寫位址%M10

    • 按鈕型態交替型 (Toggle)開關型

    • 功能:開啟後,%MW2 就會以每秒 100 個脈衝的速度自動累加,模擬馬達旋轉與編碼器回授。

  2. 「模擬反轉/倒退」按鈕(位元按鈕 - 選配)

    • 讀寫位址%M11

    • 按鈕型態交替型 (Toggle)

    • 功能:開啟後,脈衝會倒扣,用來模擬 AB 相反轉。

模擬測試驗證步驟

  1. 設定目標脈衝(例如填入 500)。

  2. 按下 「定位發射 / 定位啟動 (%M0)」

  3. 按下 「模擬編碼器轉動 (%M10)」,會看到「編碼器實際讀取脈衝(%MW2)」從 0 開始快速增加。

  4. %MW2 接近 500(偏差 %MW4 <= 10)時,「定位完成指示燈 (%M100)」 會自動亮起;若脈衝超過 510 或偏差過大,「位置誤差過大報警燈 (%M101)」 會點亮。






EasyBuilder Pro 元件 與 Schneider EcoStruxure Machine Expert - Basic PLC ( PLC 100範例 -18 )

EasyBuilder Pro 元件 與 Schneider EcoStruxure Machine Expert - Basic PLC  ( PLC 100範例 -18 ) 



圖片展示了「利用計數器完成時鐘設計(時.分.秒)」的進位控制邏輯:

  • 控制要求:利用 3 個計數器配合 1 秒時鐘脈衝(原圖永宏為 M1922),構成標準 24 小時時鐘(60秒進1分、60分進1時、24小時歸零)。

  • 控制原理

    • 秒計數(C0):1 秒脈衝觸發 C0 加 1(PV = 60)。當累計至 60 秒時,C0 觸點閉合觸發 CLR 將秒清零,同時向分計數器發送進位脈衝。

    • 分計數(C1):接收到秒進位脈衝時 C1 加 1(PV = 60)。當累計至 60 分時,C1 觸點閉合觸發 CLR 將分清零,同時向時計數器發送進位脈衝。

    • 時計數(C2):接收到分進位脈衝時 C2 加 1(PV = 24)。當累計至 24 小時時,C2 觸點閉合觸發 CLR 將時歸零。

Schneider PLC 程式與 EasyBuilder Pro HMI 對應設計

點位與資源規劃

  • 按鈕(%M0 ~ %M99)%M0(時鐘運行/停止開關)、%M1(時鐘重置歸零按鈕)

  • 指示燈(%M100 ~ %M199)%M100(1秒秒閃指示燈)

  • 時基與計數器/暫存器

    • %S6:Schneider 系統專用 1 秒時鐘脈衝位元(Time Base 1s)

    • %C0:秒計數器(Preset: 60)

    • %C1:分計數器(Preset: 60)

    • %C2:時計數器(Preset: 24)

    • %MW0(秒)、%MW1(分)、%MW2(時):供人機介面讀取的顯示暫存器

這套 Schneider EcoStruxure Machine Expert - Basic 程式是利用 3 個計數器(%C0 秒、%C1 分、%C2 時) 搭配系統 1 秒脈衝,實現電子時鐘(進位與自動歸零)的完整邏輯。

PLC 階梯圖文字與指令表 (IL)

階梯圖文字表示 (Ladder Logic View)

Plaintext
(* Rung 0: 秒計數器 %C0 (Preset: 60) *)
|--[ %C0.D ]--+---------------------------------------------[ R  %C0 ]--|
|             |                                                          |
|--[ %M1   ]--+                                                          |
|                                                                        |
|--[ %M0   ]-----[ %S6 ]-------------------------------------[ CU %C0 ]--|

(* Rung 1: 擷取秒達標脈衝至內部暫存位元 %M10 *)
|--[ %C0.D ]-----------------------------------------------------( %M10 )--|

(* Rung 2: 分計數器 %C1 (Preset: 60) *)
|--[ %C1.D ]--+---------------------------------------------[ R  %C1 ]--|
|             |                                                          |
|--[ %M1   ]--+                                                          |
|                                                                        |
|--[ %M10:P ]------------------------------------------------[ CU %C1 ]--|

(* Rung 3: 擷取分達標脈衝至內部暫存位元 %M11 *)
|--[ %C1.D ]-----------------------------------------------------( %M11 )--|

(* Rung 4: 時計數器 %C2 (Preset: 24) *)
|--[ %C2.D ]--+---------------------------------------------[ R  %C2 ]--|
|             |                                                          |
|--[ %M1   ]--+                                                          |
|                                                                        |
|--[ %M11:P ]------------------------------------------------[ CU %C2 ]--|

(* Rung 5 ~ 7: 將計數器當前值同步至字組暫存器,供 HMI 讀取 *)
|----------------------------------------------------[ %MW0 := %C0.V ]--| (* Rung 5: 秒 *)
|----------------------------------------------------[ %MW2 := %C1.V ]--| (* Rung 6: 分 *)
|----------------------------------------------------[ %MW4 := %C2.V ]--| (* Rung 7: 時 *)

(* Rung 8: 秒閃運轉指示燈 *)
|--[ %M0   ]-----[ %S6 ]----------------------------------------( %M100 )--|

指令表 (Instruction List / IL)

程式碼片段
BLK Rung0
  LD    %C0.D
  OR    %M1
  R     %C0
  LD    %M0
  AND   %S6
  CU    %C0
END_BLK

BLK Rung1
  LD    %C0.D
  ST    %M100
END_BLK

BLK Rung2
  LD    %C1.D
  OR    %M1
  R     %C1
  LD    %M10:P
  CU    %C1
END_BLK

BLK Rung3
  LD    %C1.D
  ST    %M11
END_BLK

BLK Rung4
  LD    %C2.D
  OR    %M1
  R     %C2
  LD    %M11:P
  CU    %C2
END_BLK

BLK Rung5
  LD    1
  [%MW0 := %C0.V]
END_BLK

BLK Rung6
  LD    1
  [%MW2 := %C1.V]
END_BLK

BLK Rung7
  LD    1
  [%MW4 := %C2.V]
END_BLK

BLK Rung8
  LD    %M0
  AND   %S6
  ST    %M100
END_BLK

各階梯(Rung)詳細運作說明

  • Rung 0 (秒邏輯)

    • 計數觸發 (CU):當「時鐘啟動開關 %M0」為 ON 且「1 秒脈衝 %S6」導通時,秒計數器 %C0.V 自動 +1

    • 復位邏輯 (R):當累計滿 60 秒(%C0.D 導通)或按下「手動清零按鈕 %M1」時,對 %C0 進行復位歸零。

  • Rung 1 & Rung 3 (進位信號轉接)

    • 因為 Machine Expert - Basic 不允許直接對 %C0.D 加上升沿 :P,所以程式將 %C0.D%C1.D 的完成狀態先寫入中間位元 %M10%M11

  • Rung 2 (分邏輯)

    • 進位觸發 (CU):當 %M10:P 產生上升沿瞬間(代表秒數剛滿 60 進位),分計數器 %C1.V +1

    • 復位邏輯 (R):滿 60 分(%C1.D 導通)或按下 %M1 時復位歸零。

  • Rung 4 (時邏輯)

    • 進位觸發 (CU):當 %M11:P 產生上升沿瞬間(代表分數剛滿 60 進位),時計數器 %C2.V +1

    • 復位邏輯 (R):滿 24 小時(%C2.D 導通)或按下 %M1 時復位歸零,完成 24 小時循環。

  • Rung 5 ~ Rung 7 (數據傳送)

    • 無條件將 %C0.V(秒)、%C1.V(分)、%C2.V(時)即時複製到 %MW0%MW2%MW4,方便 EasyBuilder Pro 人機介面讀取與顯示。

  • Rung 8 (運轉指示燈)

    • 時鐘運轉中(%M0 為 ON),指示燈 %M100 隨每秒脈衝 %S6 進行同步閃爍。







EasyBuilder Pro 元件 與 Schneider EcoStruxure Machine Expert - Basic PLC ( PLC 100範例 -17 )

EasyBuilder Pro 元件 與 Schneider EcoStruxure Machine Expert - Basic PLC  ( PLC 100範例 -17 ) 





圖片展示了「車輛出庫及入庫數量監控」的加/減雙向計數控制邏輯:

  • 控制要求:監控車庫內的車輛總數,當車輛數達到 40,000 輛時,滿位/報警指示燈 Y0 亮起。車輛入庫使計數加 1,出庫使計數減 1,且提供清零按鈕 X3 重置數量。

  • 控制原理

    • 第一階梯:入庫信號 X0 與出庫信號 X1 並聯觸發脈衝(PLS),作為雙向計數器 C200 的計數觸發來源。

    • 第二階梯:出庫信號 X1 接至 U/D (Up/Down) 控制端。當 X1 導通時切換為減計數模式,無信號時則為預設加計數模式。

    • 第三階梯:清零按鈕 X3 觸發 CLR 端將當前計數值歸零。

    • 輸出端:當當前車輛數達到預設值(PV = 40000)時,CUP 端導通驅動報警指示燈 Y0

Schneider PLC 程式與 EasyBuilder Pro HMI 對應設計

點位規劃

  • 按鈕/開關(%M0 ~ %M99)

    • %M0:車輛入庫感應開關(加計數)

    • %M1:車輛出庫感應開關(減計數)

    • %M3:清零按鈕

  • 指示燈(%M100 ~ %M199)%M100(車庫滿位/報警指示燈)

  • 資料暫存器/計數器

    • %C0:內部計數器(註:EcoStruxure Basic 標準單個 %C 計數器上限為 9999;若要達到 40,000 次,PLC 端改用 32 位雙字組暫存器 %MD0 進行加減運算與比較,最為穩定直接)。

EasyBuilder Pro 元件設定

1. 入庫/出庫/清零按鈕

元件名稱讀寫位址按鈕型態標籤文字
入庫模擬按鈕%M0復歸型 (Momentary)車輛入庫 (+1)
出庫模擬按鈕%M1復歸型 (Momentary)車輛出庫 (-1)
清零按鈕%M3復歸型 (Momentary)車數清零

2. 車庫滿位指示燈(位元燈)

  • 讀取位址%M100

  • 狀態顯示

    • State 0 (OFF):灰色 / 車位正常

    • State 1 (ON):亮紅色(閃爍) / 車庫已滿 (達40,000輛)

3. 當前車庫數量顯示(數值顯示元件)

  • 讀取位址%MD0

  • 資料格式32-bit Unsigned (32位無符號整數)

  • 位元數設定:預設 5 位數以上,可即時呈現 0 ~ 40,000 輛車的動態變化。


PLC 程式碼



階梯圖文字表示 (Ladder Logic View)

Plaintext
(* Rung 0: 每秒更新目標上限值 (%MW4 := %MW0) *)
|--[ %S6 ]-------------------------------------------[ %MW4 := %MW0 ]--|

(* Rung 1: 車輛入庫加計數 (%MW2 := %MW2 + 1) *)
|--[ %M0:P ]-----------------------------------------[ %MW2 := %MW2 + 1 ]--|

(* Rung 2: 車輛出庫減計數 (%MW2 := %MW2 - 1) *)
|--[ %M1:P ]-----------------------------------------[ %MW2 := %MW2 - 1 ]--|

(* Rung 3: 滿位報警比較 (當當前數量 %MW2 >= 上限 %MW4 時點亮 %M100) *)
|--[ %MW2 >= %MW4 ]--------------------------------------------( %M100 )--|

(* Rung 4: 滿位上限限制 (當當前數量 %MW2 >= 上限 %MW4 時,鎖定 %MW2 等於上限值 %MW4) *)
|--[ %MW2 >= %MW4 ]----------------------------------[ %MW2 := %MW4 ]--|

(* Rung 5: 下限防呆限制 (當當前數量 %MW2 < 0 時,歸零 %MW2 := 0) *)
|--[ %MW2 < 0 ]--------------------------------------[ %MW2 := 0 ]--|

(* Rung 6: 手動清零按鈕 (%MW2 := 0) *)
|--[ %M3 ]-------------------------------------------[ %MW2 := 0 ]--|

指令表 (Instruction List / IL)

程式碼片段
BLK Rung0
  LD    %S6
  [%MW4 := %MW0]
END_BLK

BLK Rung1
  LD    %M0:P
  [%MW2 := %MW2 + 1]
END_BLK

BLK Rung2
  LD    %M1:P
  [%MW2 := %MW2 - 1]
END_BLK

BLK Rung3
  LD    [%MW2 >= %MW4]
  ST    %M100
END_BLK

BLK Rung4
  LD    [%MW2 >= %MW4]
  [%MW2 := %MW4]
END_BLK

BLK Rung5
  LD    [%MW2 < 0]
  [%MW2 := 0]
END_BLK

BLK Rung6
  LD    %M3
  [%MW2 := 0]
END_BLK

程式邏輯詳細說明

  • 暫存器規劃

    • %MW0:HMI 設定的上限預設值(例如:10 輛)。

    • %MW4:PLC 內部的滿位上限目標值。

    • %MW2:當前車庫內的車輛累計數量。

  • Rung 0:利用 1 秒脈衝 %S6,將人機設定的預設值 %MW0 即時同步更新至 %MW4

  • Rung 1 & Rung 2:透過入庫按鈕 %M0:P 與出庫按鈕 %M1:P 的上升沿脈衝,對當前車數 %MW2 進行 +1-1 的算術運算。

  • Rung 3:比較當前車數 %MW2 是否達到或超過上限 %MW4,若成立則觸發滿位報警指示燈 %M100

  • Rung 4 & Rung 5 (數值邊界防護/卡位)

    • 上限保護:若車數已經滿了(%MW2 >= %MW4),即便繼續按 %M0 加計數,也會被強制鎖定在上限值 %MW4,防止溢位或數字超標。

    • 下限保護:若車庫已經沒車(%MW2 < 0),即便按 %M1 扣減,也會強制清零(%MW2 := 0),防止出現負數。

  • Rung 6:按下復位按鈕 %M3,將當前車輛計數 %MW2 強制清零歸位。

EasyBuilder Pro 元件 與 Schneider EcoStruxure Machine Expert - Basic PLC ( PLC 100範例 -19 )

EasyBuilder Pro 元件 與 Schneider EcoStruxure Machine Expert - Basic PLC  ( PLC 100範例 -19 )   圖片中標示的就是 Schneider EcoStruxure Machine Expert - B...