可使用“分配參數(shù)并加計(jì)數(shù)”指令遞增計(jì)數(shù)器值。當(dāng) CU 參數(shù)的信號(hào)狀態(tài)從“0”變?yōu)椤?”(信號(hào)上升沿)時(shí),當(dāng)前計(jì)數(shù)器值遞增 1。通過(guò)參數(shù) CV 提供當(dāng)前計(jì)數(shù)器值。計(jì)數(shù)器值達(dá)到上限 999 后,停止增加。如果達(dá)到限值,即使出現(xiàn)信號(hào)上升沿,計(jì)數(shù)器值也不再遞增。
當(dāng)參數(shù) S 的信號(hào)狀態(tài)從“0”變?yōu)椤?”時(shí),計(jì)數(shù)器值將置位為參數(shù) PV 的值。如果置位計(jì)數(shù)器且輸入 CU 處的邏輯運(yùn)算結(jié)果 (RLO) 為“1”,即使沒(méi)有檢測(cè)到信號(hào)邊沿變化,計(jì)數(shù)器也會(huì)在下一周期計(jì)數(shù)一次。
當(dāng) R 參數(shù)的信號(hào)狀態(tài)變?yōu)椤?”時(shí),計(jì)數(shù)器值將設(shè)置為 0。只要 R 參數(shù)的信號(hào)狀態(tài)為“1”,參數(shù) CU 和 S 的信號(hào)狀態(tài)變化就不會(huì)影響計(jì)數(shù)值。
如果計(jì)數(shù)器值大于 0,參數(shù) Q 的信號(hào)狀態(tài)就為“1”。計(jì)數(shù)器值等于 0 時(shí),參數(shù) Q 將返回信號(hào)狀態(tài)“0”。
C_NO |
COUNTER INT |
計(jì)數(shù)器號(hào)(計(jì)數(shù)器標(biāo)識(shí)符);其范圍視CPU而定 |
CD | BOOL | CD輸入:向下計(jì)數(shù) |
CU | BOOL | CU輸入:向上計(jì)數(shù) |
S | BOOL | 預(yù)置計(jì)數(shù)器輸入 |
PV | WORD | 初始化計(jì)數(shù)器的值,在0到999之間(按16#<值>用BCD格式的值鍵入) |
R | BOOL | 復(fù)位輸入 |
Q | BOOL | 輸出:計(jì)數(shù)器狀態(tài) |
CV | WORD | 輸出:二進(jìn)制計(jì)數(shù)值 |
RET_VAL | WORD | BCD格式的結(jié)果 |
·當(dāng)調(diào)用函數(shù)時(shí),必須提供標(biāo)識(shí)符C_NO參數(shù)。代之以絕對(duì)計(jì)數(shù)器號(hào)(如C12),也能夠在調(diào)用中指定一個(gè)INT類(lèi)型的變量或常數(shù),或一個(gè)COUNTER類(lèi)型的輸入?yún)?shù)。
·至少參數(shù)CU(向上計(jì)數(shù))或參數(shù)CD(向下計(jì)數(shù))必須提供。
·參數(shù)PV(初始值)和S(設(shè)定值)能夠成對(duì)省略。
·函數(shù)值總是BCD格式結(jié)果值。
加計(jì)數(shù)例子: 作一個(gè)功能塊,條件FRG滿(mǎn)足后開(kāi)始計(jì)數(shù)IN_Z,rest對(duì)計(jì)數(shù)器復(fù)位,
超過(guò)ZN 個(gè)數(shù)有輸出OUT_FRG
FUNCTION_BLOCK FB1 建立功能塊FB1
VAR_INPUT
FRG:BOOL;允許條件
IN_Z:BOOL;用于計(jì)數(shù)
rest:BOOL;
CurrVal_int:INT; 改變數(shù)量
END_VAR
VAR_OUTPUT
OUT_FRG :BOOL;
CurrVal_int1:INT;
END_VAR
VAR_TEMP
set:BOOL;臨時(shí)變量-中間變量
set1:BOOL;
END_VAR
VAR
CurrVal_int:INT; 靜態(tài)變量-中間變量
CurrVal, binVal: WORD;
END_VAR
set1:=FRG AND IN_Z; 計(jì)數(shù)條件
CurrVal :=S_CU (C_NO:= Z11, CU:= set1,S:=set, PV:=16#0, R:=rest,
CV:=binVal,Q:=actFlag);計(jì)數(shù)器從0開(kāi)始計(jì)數(shù)
CurrVal_int:=WORD_TO_INT(CurrVal); word轉(zhuǎn)INT的轉(zhuǎn)換
CurrVal_int1:=CurrVal_int; 用于顯示
IF (CurrVal_int >= Z_N) THEN 如果大于10就有輸出
OUT_FRG:=true;
ELSE 小于10沒(méi)有輸出
OUT_FRG:=false;
END_IF ;
END_FUNCTION_BLOCK-------功能塊結(jié)束
-
信號(hào)
+關(guān)注
關(guān)注
11文章
2791瀏覽量
76807 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2256瀏覽量
94612 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4332瀏覽量
62666 -
SCL
+關(guān)注
關(guān)注
1文章
239瀏覽量
17094
原文標(biāo)題:SCL 語(yǔ)言之加計(jì)數(shù)-計(jì)數(shù)器函數(shù)S_CU
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論