機能
カウンタの動作設定を行います。
書式
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 )
関連項目