SmcWSetCounterMode


機能

カウンタの動作設定を行います。

書式

Ret = SmcWSetCounterMode( Id , AxisNo , ClearCntLtc , LtcMode , ClearCntClr , ClrMode )

引数

Id [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
SmcWInit 関数で取得したデバイスIDを指定します。

AxisNo [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
軸番号を指定します。

ClearCntLtc [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
LTC信号がOFF→ONへ変化した時にクリアするカウンタの種類を設定します。

0

カウンタをクリアしない

1

出力パルスカウンタをクリア

2

エンコーダカウンタをクリア

3

出力パルスカウンタおよびエンコーダカウンタをクリア

LtcMode [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
LTC信号入力時にラッチするカウンタの種類を設定します。

0

ラッチ機能を使用しない

1

出力パルスカウンタをラッチ

2

エンコーダカウンタをラッチ

3

出力パルスカウンタおよびエンコーダカウンタをラッチ

ClearCntClr [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
CLR信号がOFF→ONへ変化した時にクリアするカウンタの種類を設定します。

0

カウンタをクリアしない

1

出力パルスカウンタをクリア

2

エンコーダカウンタをクリア

3

出力パルスカウンタおよびエンコーダカウンタをクリア

ClrMode (予約) [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
0固定です。

戻り値

Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]

0

正常終了

0以外

異常終了

参照:エラーコード詳細

初期値

ClearCntLtc

0H  : クリアしない

LtcMode

0H  : 使用しない

ClearCntClr

0H  : クリアしない

ClrMode

0 (固定)

説明

SmcWSetCtrlTypeIn関数の CtrlIn のビット4(IN4/LTC)をONしていない場合、LTC信号として認識しません。

LTC信号によりカウンタクリアを行うには、カウンタのラッチを行う必要があります。
従って、ClearCntLtc のビットをONとした場合、自動的に LtcMode 側のビットもONとなります。
エンコーダのZ相出力によりカウンタゼロクリアを行うには、外部入力によるカウンタクリアを参照してください。

SMC-4/8DF シリーズ 使用時には、ラッチするカウンタを選択することができません。
従って、LtcModeでラッチON設定とすると、他方のビットもON設定となります。

ラッチした各カウンタ値は各ラッチカウンタ読み出し関数(SmcWGetLatchOutPulse, SmcWGetLatchCountPulse)にて読み出すことができます。

CLR信号は、SMC-4/8DF シリーズ 使用時のみ有効です。従ってSMC-2/4/8DL シリーズ使用時には、ClearCntClrは無効です。

軸が動作中の場合、この関数は実行できません。

初期設定関数実行後は、SmcWSetInitParam関数を実行する必要があります。
初期設定関数について」を参照してください。

使用例

軸番号1のエンコーダカウンタの情報を設定します。
LTC信号がOFF→ONへ変化した時にクリアしない。
LTC信号入力時にラッチ機能を使用しない。
CLR信号がOFF→ONへ変化した時にクリアしない。

VB.NET
Dim Ret As Integer
Dim ClearCntLtc As Short
Dim LtcMode As Short
Dim ClearCntClr As Short
Dim ClrMode As Short
ClearCntLtc = 0
LtcMode = 0
ClearCntClr = 0
ClrMode = 0
Ret = SmcWSetCounterMode( Id , 1, ClearCntLtc , LtcMode , ClearCntClr , ClrMode )

C, C++
long Ret;
short ClearCntLtc ;
short LtcMode ;
short ClearCntClr ;
short ClrMode ;
ClearCntLtc = 0;
LtcMode = 0;
ClearCntClr = 0;
ClrMode = 0;
Ret = SmcWSetCounterMode( Id , 1, ClearCntLtc , LtcMode , ClearCntClr , ClrMode );

C#
int Ret;
short ClearCntLtc ;
short LtcMode ;
short ClearCntClr ;
short ClrMode ;
ClearCntLtc = 0;
LtcMode = 0;
ClearCntClr = 0;
ClrMode = 0;
Ret = Smc.WSetCounterMode( Id , 1, ClearCntLtc , LtcMode , ClearCntClr , ClrMode );

Python
Ret = ctypes.c_long()
ClearCntLtc = ctypes.c_short()
LtcMode = ctypes.c_short()
ClearCntClr = ctypes.c_short()
ClrMode = ctypes.c_short()
ClearCntLtc.value = 0
LtcMode.value = 0
ClearCntClr.value = 0
ClrMode.value = 0
Ret.value = csmc.SmcWSetCounterMode( Id , 1, ClearCntLtc , LtcMode , ClearCntClr , ClrMode )

関連項目

SmcWGetCounterMode