サイト内検索

検索

Shares

Table of Content

EthercatDevice.sdoUpload()

[Ethercat Device]

説明

該当するEtherCATスレーブデバイスの指定されたオブジェクトにCoE SDOアップロードを実行します。

構文

int sdoUpload(uint16_t od_index, uint8_t od_subindex, void * data, uint32_t size, uint32_t * abortcode = NULL, bool complete_access = false, uint32_t timeout_us = 100000);

媒介変数

  • [in] uint16_t od_index
    オブジェクトのインデックス。
  • [in] uint8_t od_subindex
    オブジェクトのサブインデックスで、0 または、アクセス完了の場合は1。
  • [out] void *data
    読み取り用のデータ・バッファ。
  • [in] uint32_t size
    読み取り用のデータ・バッファのサイズ。
  • [out] uint32_t *abortcode
    格納するために使用される変数のポインタ SDO Abort Code.
  • [in] bool complete_access
    アクセス完了を使用するか、しないかです。デフォルト値はFalseです。
  • [in] uint32_t timeout_us
    タイムアウト値でマイクロ秒単位。

戻り値

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

備考

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

#include "Ethercat.h"

EthercatMaster master;
EthercatDevice_Generic slave;

uint16_t value;

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

void loop() {
  slave.sdoUpload(0x6040, 0x00, &value, sizeof(value));
  Serial.print("Value: ");
  Serial.println(value);
  delay(1000);
}

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

上部へスクロール