[Ethercat Device]
説明
該当のEtherCATスレーブデバイスのオブジェクトディクショナリにあるオブジェクトのリストを取得します。
構文
int getODlist(uint16_t * list, uint32_t list_size, uint32_t * abortcode = NULL, uint32_t timeout_us = 100000);
媒介変数
[out] uint16_t *list
オブジェクトのリストを読み取るために使用されるデータ・バッファ。[in] uint32_t list_size
データ・バッファに保存可能なオブジェクトの数。[out] uint32_t *abortcode
SDOアボート・コードを保存するために使用される変数のポインタ。[in] uint32_t timeout_us
タイムアウト値でマイクロ秒単位。
戻り値
オブジェクト・リスト内のオブジェクト数を返します。戻り値が0未満の場合は、 error codeを示します。.
備考
この関数は、 EthercatMaster::begin()が正常に実行された後で呼び出す必要があります。この関数はブロッキングされているため、循環コールバック関数内で呼び出すことができません。
例
#include "Ethercat.h"
EthercatMaster master;
EthercatDevice_Generic slave;
uint16_t ODlist[1024];
int rc;
void setup() {
Serial.begin(115200);
master.begin();
slave.attach(0, master);
master.start(1000000);
}
void loop() {
rc = sizeof(ODlist) / sizeof(ODlist[0]);
rc = slave.getODlist(ODlist, rc);
for (int i = 0; i < rc; i++) {
Serial.print("Index ");
Serial.println(ODlist[i]);
}
}詳細は EtherCAT Library User Manual QEC EtherCAT命令とAPI使用法参照