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)
(* 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強制清零歸位。





沒有留言:
張貼留言