[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使用法参照