機能
軸/チップ/ボード間同期動作を設定します。
書式
Ret = SmcWSetSync( Id , SyncAxis , SyncChip , SyncBoard )
引数
Id [ C, C++: short ] [ Python: ctypes.c_short ]
SmcWInit 関数で取得したデバイスIDを指定します。
SyncAxis [ C, C++: short ] [ Python: ctypes.c_short ]
同期制御対象軸を指定します。
[ 軸8 | 軸7 | 軸6 | 軸5 || 軸4 | 軸3 | 軸2 | 軸1 ]
設定範囲 4軸ボード:0~FH
設定範囲 8軸ボード:0~FFH
0 |
同期しない |
1 |
同期する |
[例] 軸1、軸3に対応ビットをON(05H) → 軸1、軸3で同期。
SyncChip [ C, C++: short ] [ Python: ctypes.c_short ]
チップ間同期を設定します。
0 |
同期しない |
1 |
同期する |
SyncBoard [ C, C++: short ] [ Python: ctypes.c_short ]
ボード間同期を設定します
0 |
同期しない |
1 |
自ボードCN2とケーブル接続した他ボードと同期します |
2 |
自ボードCN3とケーブル接続した他ボードと同期します |
3 |
自ボードCN2とケーブル接続した他ボード、CN3とケーブル接続した他ボードを同期します |
戻り値
Ret [ C, C++: long ] [ Python: ctypes.c_long ]
0 |
正常終了 |
0以外 |
異常終了 |
参照:エラーコード詳細
初期値
SyncAxis |
0 : 同期しない |
SyncChip |
1 : 同期する |
SyncBoard |
3 : 自ボードCN2とケーブル接続した他ボード、CN3とケーブル接続した他ボードを同期します |
説明
SMC-8DL/DF シリーズ では、4軸制御チップを2個(1-4軸、5-8軸)使用しています。
SMC-8DF シリーズ はチップ間の同期接続を設定により切り離すことが可能ですが、SMC-8DL シリーズ はチップ間の同期接続を切り離すことができません。
SMC-2/4/8DL シリーズ
SyncChip = 1 : 同期する(デフォルト)
上記設定固定となります。従って、1ボードで1組の同期設定のみ設定可能です。
SyncAxisで選択した軸すべてが同期動作対象軸となります。
SyncBoard = 0 : 同期しない
上記設定固定となります。このボードにはボード間同期機能はありません。
SMC-4DF シリーズ
SyncChip = 1 : 同期する(デフォルト)
上記設定固定となります。1ボードで1組の同期設定のみ設定可能です。
SyncBoard =
1 :この設定の場合、軸1~4と、CN2と接続されている他ボードを同期します。
2 :この設定の場合、軸1~4と、CN3と接続されている他ボードを同期します。
3 :この設定の場合、上記1, 2の両設定で同期します。
軸1~4と、CN2と接続されている他ボード、CN3と接続されている他ボード、の3枚のボード間で同期します。
SMC-8DF シリーズ
SyncChip = 0 : 同期しない
上記設定の場合、軸1~4、軸5~8でそれぞれ1組づつ計2組の同期設定が可能となります。
[例] 軸1、軸3、軸5、軸7 に対応ビットをON ( SyncAxis : 55H ) → 軸1、軸3、軸5、軸7で同期。
各軸に対しSmcWMotionStart関数を実行し、同期スタート待ち状態とした後、同期スタート関数
( SmcWSyncMotionStart
) を軸1を指定して実行すると
・同期しない ( SyncChip : 0) 軸1、軸3が同時動作開始
・同期する ( SyncChip : 1) 軸1、軸3、軸5、軸7が同時動作開始
SyncBoard =
1 :この設定の場合、軸5~8と、CN2と接続されている他ボードを同期します。
SyncChip = 1 と設定した場合、軸1~8と、CN2と接続されている他ボードを同期します。
2 :この設定の場合、軸1~4と、CN3と接続されている他ボードを同期します。
SyncChip = 1 と設定した場合、軸1~8と、CN3と接続されている他ボードを同期します。
3 :この設定の場合、上記1, 2の両設定で同期します。
SyncChip = 1 と設定した場合、軸1~8と、CN2と接続されている他ボード、CN3と接続されている他ボード、の3枚のボード間で同期します。
複数ビット選択時のみ同期設定有効となります。
本関数実行後、SmcWMotionStart関数を実行することにより、同期スタート待ち状態となります。
同期スタート待ち状態はSmcWGetPulseStatus関数にて確認することができます。
本関数は、SyncAxisで指定した軸がSmcWSetInitParam関数実行済みでなければエラーとなります。
関連項目