CTUD、CTUDP命令で使用するカウンタ変数は構造体変数となっています。内部の構造については、下記の表となります。
カウンタ変数
カウンタ変数 |
変数設定 |
内容 |
---|---|---|
変数名.R |
ビット変数 |
現在値リセット。0 クリア。
現在値リセット。PV値(設定値)になる。 |
変数名.Q |
ビット変数 |
現在値が設定値に達した時ON。 |
変数名.UP |
ビット変数 |
ON時にアップカウント有効。 |
変数名.QU |
ビット変数 |
アップダウンカウンタ使用時、現在値が設定値に達した時ON。 |
変数名.QD |
ビット変数 |
アップダウンカウンタ使用時、現在値が0以下に達した時ON。 |
変数名.PV |
整数変数 |
カウンタの設定値。 |
変数名.CV |
整数変数 |
カウンタの現在値。 |
CTUD、CTUDP命令は、カウントアップ有効の.UP(ON時にアップカウント有効)がONの場合、CTU命令の実行と同じになります。.UP(ON時にアップカウント有効)がOFFの場合、CTD命令の実行と同じになります。
.UP(ON時にアップカウント有効)がONの場合は、.CV(現在値)が.PV(設定値)以上になれば、.Q(現在値が設定値に達した時ON)と、.QUがONになります。
.UP(ON時にアップカウント有効)がOFFの場合は、.CV(現在値)が0以下になれば、.Q(現在値が設定値に達した時ON)と、.QDがONになります。
プログラム例
CTUD
以下の例では、1 分間に動作異常を5 つカウントすると、エラーを知らせます。
プログラム例は、タイマ命令を記載していません。タイマ開始の1分間タイマスタートのトリガのみ記載しています。
動作異常のカウントトリガ入力についても異常発生入力トリガを別途作成してください。
1分間タイマスタートのa接点命令がONすることによって、動作異常カウンタ.R(リセット)のOUT命令がONします。動作異常カウンタ.R(リセット)がONすることによって、.UP(ON時にアップカウント有効)がONの場合、CTU命令を実行となり、.CV(現在値)が0クリアされます。.UP(ON時にアップカウント有効)がOFFの場合、CTD命令を実行となり.PV(設定値)の値を.CV(現在値)に格納します。
動作異常発生の立ち上がり検出a接点命令がONすることによって、.UP(ON時にアップカウント有効)がONの場合は、動作異常カウンタ.CV値(現在値)が1加算されます。.UP(ON時にアップカウント有効)がOFFの場合は、動作異常カウンタ.CV値(現在値)が1減算されます。
動作異常カウンタ.CV値(現在値)が、.UP(ON時にアップカウント有効)がONの場合は、.PV(設定値)の値と.CV(現在値)の値が、同じ値になると、.Q(現在値が設定値に達した時ON)と.QU(アップダウンカウンタ使用時、現在値が設定値に達した時ON)がONになります。.UP(ON時にアップカウント有効)がOFFの場合は、.CV(現在値)の値が、0以下になると、.Q(現在値が設定値に達した時ON)と.QD(アップダウンカウンタ使用時、現在値が0以下に達した時ON)がONになります。
CTUD命令の動作異常カウンタ.Q(現在値が設定値に達した時ON)がONし、OUT命令のエラー検出がONします。
CTUDP
CTUD命令とCTUDP命令の違いは、カウンタ命令として、レベルで.CV値を加減算するのか、立ち上がり検出で.CV値を加減算するのかの違いがあります。プログラム作成の違いについては、3行目の動作異常発生の立ち上がり検出a接点命令がa接点となります。入力の判断以外に動作上違いはありません。