サイト内検索

検索

Shares

Table of Content

EthercatDevice.setDc()

[Ethercat Device]

説明

EtherCATスレーブデバイスの分散クロック (DC) パラメータを設定します。この関数には、設定する3つのDCパラメータがあります:

  • DCサイクル時間 0 は、SYNC0信号のサイクル時間を設定するために使用され、通常は EtherCAT通信サイクル時間と一致します。
  • DCサイクル時間1 は、SYNC1信号のサイクル時間を設定するために使用され、SYNC0パルス後に定義される遅延時間を指します。このパラメータはオプションです。
  • DCシフト時間 は、DCベースに対するSYNC0信号のオフセットを設定するために使用されます。
dc_structure

構文

int setDc(uint32_t cycletime0_ns, int32_t shifttime_ns = 0, uint32_t cycletime1_ns = 0);

媒介変数

  • [in] uint32_t cycletime0_ns
    ナノ秒で、DC SYNC0サイクル時間
  • [in] int32_t shifttime_ns
    ナノ秒で、DC SYNC0シフト時間
  • [in] uint32_t cycletime1_ns
    ナノ秒で、DC SYNC1サイクル時間

戻り値

error codeを返します。返された値が 0の場合、この関数が正常に完了したことを示します。

備考

この関数は、 EthercatMaster::begin() が正常に実行された後で、 EthercatMaster::start()が正常に実行された後で呼び出す必要があります。この関数はブロッキングされているため、循環コールバック関数内で呼び出すことができません。

#include "Ethercat.h"

EthercatMaster master;
EthercatDevice_Generic slave;

void setup() {
  master.begin();
  slave.attach(0, master);
  slave.setDc(1000000);
  master.start(1000000);
}

void loop() {
  // put your main code here, to run repeatedly:

}

詳細は EtherCAT Library User Manual QEC EtherCAT命令とAPI使用法参照

上部へスクロール