可使用“分配參數并加計數”指令遞增計數器值。當 CU 參數的信號狀態從“0”變為“1”(信號上升沿)時,當前計數器值遞增 1。通過參數 CV 提供當前計數器值。計數器值達到上限 999 后,停止增加。如果達到限值,即使出現信號上升沿,計數器值也不再遞增。
當參數 S 的信號狀態從“0”變為“1”時,計數器值將置位為參數 PV 的值。如果置位計數器且輸入 CU 處的邏輯運算結果 (RLO) 為“1”,即使沒有檢測到信號邊沿變化,計數器也會在下一周期計數一次。
當 R 參數的信號狀態變為“1”時,計數器值將設置為 0。只要 R 參數的信號狀態為“1”,參數 CU 和 S 的信號狀態變化就不會影響計數值。
如果計數器值大于 0,參數 Q 的信號狀態就為“1”。計數器值等于 0 時,參數 Q 將返回信號狀態“0”。
當調用函數時,必須提供標識符C_NO參數。代之以絕對計數器號(如C12),也能夠在調用中指定一個INT類型的變量或常數,或一個COUNTER類型的輸入參數。
至少參數CU(向上計數)或參數CD(向下計數)必須提供。
參數PV(初始值)和S(設定值)能夠成對省略。
函數值總是BCD格式結果值。
加計數例子: 作一個功能塊,條件FRG滿足后開始計數IN_Z,rest對計數器復位,
超過ZN 個數有輸出OUT_FRG
FUNCTION_BLOCK FB1 建立功能塊FB1
VAR_INPUT
FRG:BOOL;允許條件
IN_Z:BOOL;用于計數
rest:BOOL;
CurrVal_int:INT; 改變數量
END_VAR
VAR_OUTPUT
OUT_FRG :BOOL;
CurrVal_int1:INT;
END_VAR
VAR_TEMP
set:BOOL;臨時變量-中間變量
set1:BOOL;
END_VAR
VAR
CurrVal_int:INT; 靜態變量-中間變量
CurrVal, binVal: WORD;
END_VAR
set1:=FRG AND IN_Z; 計數條件
CurrVal :=S_CU (C_NO:= Z11, CU:= set1,S:=set, PV:=16#0, R:=rest,
CV:=binVal,Q:=actFlag);計數器從0開始計數
CurrVal_int:=WORD_TO_INT(CurrVal); word轉INT的轉換
CurrVal_int1:=CurrVal_int; 用于顯示
IF (CurrVal_int >= Z_N) THEN 如果大于10就有輸出
OUT_FRG:=true;
ELSE 小于10沒有輸出
OUT_FRG:=false;
END_IF ;
END_FUNCTION_BLOCK-------功能塊結束
-
計數器
+關注
關注
32文章
2256瀏覽量
94562 -
SCL
+關注
關注
1文章
239瀏覽量
17079
原文標題:SCL 語言之加計數-計數器函數S_CU
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
具有函數信號發生器和計數器的功能儀器的設計與實現
![具有<b class='flag-5'>函數</b>信號發生<b class='flag-5'>器</b>和<b class='flag-5'>計數器</b>的功能儀器的設計與實現](https://file.elecfans.com/web1/M00/C5/07/pIYBAF8_I2uAdBLkAACRCVq7foM732.png)
SCL語言之加計數-計數器函數S_CU
![SCL語言之加<b class='flag-5'>計數</b>-<b class='flag-5'>計數器</b><b class='flag-5'>函數</b><b class='flag-5'>S_CU</b>](https://file.elecfans.com/web1/M00/C5/B2/o4YBAF9SAyGAJxt9AAAYwd2AQYk446.png)
PLC編程中計數器的存儲區介紹
SCL語言之加計數-計數器函數S_CU
同步計數器和異步計數器是什么 同步計數器和異步計數器的主要區別?
![同步<b class='flag-5'>計數器</b>和異步<b class='flag-5'>計數器</b>是什么 同步<b class='flag-5'>計數器</b>和異步<b class='flag-5'>計數器</b>的主要區別?](https://file.elecfans.com//web2/M00/9A/98/poYBAGQevHSAAJNiAAAbyqqassE241.png)
評論