サンプルプログラム > MotionLine > Visual C++
オブジェクト
テキストボックス | ID | メンバ変数 |
ID番号 | IDC_ID | m_wID |
オープン
if( !UpdateData( TRUE ) ) {
return;
}
int nResult;
nResult = PmcmOpen( m_wID, "PMC-M2C-U" );
if( nResult == PMCM_RESULT_SUCCESS ) {
AfxMessageBox( "オープン成功", MB_OK | MB_ICONINFORMATION );
} else {
AfxMessageBox( "オープン失敗", MB_OK | MB_ICONSTOP );
}
各種設定
int nResult;
WORD wAxis;
char szResult[64];
wAxis = PMCM_AXIS_X + PMCM_AXIS_Y;
// センサ設定
// オンで検知するセンサを接続している場合や、リミットスイッチを接続していない場合はモーターが動作しません
// その場合は以下の関数を実行してセンサ設定を"オンで検知"に変更してください
//nResult = PmcmSetSensorConfig( m_wID, wAxis, PMCM_LOGIC, 0x3F );
//if( nResult != PMCM_RESULT_SUCCESS ) {
// wsprintf( szResult, "PmcmSetSensorConfig ERROR : 0x%X", nResult );
// AfxMessageBox( szResult, MB_OK | MB_ICONSTOP );
// return;
//}
// パルス出力モード設定
// 使用しているドライバに合致したパルス出力モードを選択してください
nResult = PmcmSetPulseConfig( m_wID, wAxis, PMCM_PULSE_OUT, 7 );
if( nResult != PMCM_RESULT_SUCCESS ) {
wsprintf( szResult, "PmcmSetPulseConfig ERROR : 0x%X", nResult );
AfxMessageBox( szResult, MB_OK | MB_ICONSTOP );
return;
}
動作パラメータ設定
int nResult;
WORD wAxis;
MOTIONLINEPMCM MotionLine;
char szResult[64];
wAxis = PMCM_AXIS_X + PMCM_AXIS_Y;
MotionLine.wStartMode = PMCM_CONST; // 起動モード
MotionLine.fSpeedRate = 1; // 速度倍率
MotionLine.wAccDecMode = PMCM_ACC_LINEAR; // 加減速モード
MotionLine.fLowSpeed = 1000; // 起動時速度
MotionLine.fSpeed = 1000; // 移動速度
MotionLine.wAccTime = 0; // 加速時間
MotionLine.wDecTime = 0; // 減速時間
MotionLine.fSAccSpeed = 0; // 加速S字区間
MotionLine.fSDecSpeed = 0; // 減速S字区間
MotionLine.lSlowdown = -1; // スローダウンポイント
MotionLine.lStep[0] = 500; // 移動パルス数,移動方向
MotionLine.lStep[1] = 1000; // 移動パルス数,移動方向
MotionLine.bAbsolute[0] = 0; // 絶対座標指定
MotionLine.bAbsolute[1] = 0; // 絶対座標指定
// 動作パラメータ設定
nResult = PmcmSetMotionLine( m_wID, wAxis, &MotionLine );
if( nResult != PMCM_RESULT_SUCCESS ) {
wsprintf( szResult, "PmcmSetMotionLine ERROR : 0x%X", nResult );
AfxMessageBox( szResult, MB_OK | MB_ICONSTOP );
return;
}
動作開始
int nResult;
char szResult[64];
// 動作開始
nResult = PmcmStartMotionLine( m_wID );
if( nResult != PMCM_RESULT_SUCCESS ) {
wsprintf( szResult, "PmcmStartMotionLine ERROR : 0x%X", nResult );
AfxMessageBox( szResult, MB_OK | MB_ICONSTOP );
return;
}
動作停止
int nResult;
WORD wAxis;
WORD wStopMode;
char szResult[64];
// 停止させる軸
wAxis = PMCM_AXIS_X + PMCM_AXIS_Y;
// 停止モード
wStopMode = PMCM_IMMEDIATE_STOP;
// 動作停止
nResult = PmcmStopMotion( m_wID, wAxis, wStopMode );
if( nResult != PMCM_RESULT_SUCCESS ) {
wsprintf( szResult, "PmcmStopMotion ERROR : 0x%X", nResult );
AfxMessageBox( szResult, MB_OK | MB_ICONSTOP );
return;
}
クローズ
BOOL bResult;
bResult = PmcmClose( m_wID );