説明
Move to the target position in Profile Position mode (pp).
Relevant Objects
- Object 6040h: 制御ワード
- Object 6041h: ステータスワード
- Object 607Ah: 目標位置
構文
int pp_Run(int32_t position, int relative = CIA402_PP_ABSOLUTE, bool change_immediately = false);
媒介変数
[in] position
The target position to be set.
[in] relative
A value indicating whether the position parameter is relative or absolute:
| 定義 | コード | 説明 |
| CIA402_PP_ABSOLUTE | 0 | position is an absolute value. |
| CIA402_PP_RELATIVE | 1 | position is a relative value. |
[in] change_immediately- true: Interrupt the actual positioning and start the next positioning.
- false: Finish the actual positioning and then start the next positioning.
A Boolean to determine if the target position change should be executed instantly.
戻り値
error codeを返します。返された値が 0の場合、この関数が正常に完了したことを示します。
備考
この関数は、 EthercatMaster::start(). This function is blocking and cannot be called in callback functions.
例
#include "Ethercat.h"
EthercatMaster master;
EthercatDevice_CiA402 motor;
void setup() {
master.begin();
motor.attach(0, master);
motor.setCiA402Mode(CIA402_PP_MODE);
master.start();
motor.enable();
}
void loop() {
motor.pp_SetMotionProfileType(0);
motor.pp_SetVelocity(100000);
motor.pp_SetAcceleration(5000);
motor.pp_SetDeceleration(5000);
motor.pp_Run(100000, CIA402_PP_RELATIVE, true);
while (motor.pp_IsTargetReached() == 0);
motor.pp_SetMotionProfileType(0);
motor.pp_SetVelocity(30000);
motor.pp_SetAcceleration(5000);
motor.pp_SetDeceleration(5000);
motor.pp_Run(-100000, CIA402_PP_RELATIVE, true);
while (motor.pp_IsTargetReached() == 0);
}詳細は EtherCAT CiA 402 User Manual QEC EtherCAT命令とAPI使用法参照