pp_Run()

説明

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_ABSOLUTE0position is an absolute value.
CIA402_PP_RELATIVE1position 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使用法参照

上部へスクロール