[Ethercat Device]
説明
該当するEtherCATスレーブデバイスのインデックスとサブインデックスで指定された特定のオブジェクトのエントリ記述を読み取ります。
構文
int getEntryDescription(uint16_t od_index, uint8_t od_subindex, uint8_t * valueinfo, uint16_t * datatype, uint16_t * bitlength, uint16_t * objaccess, char * entryname, size_t entryname_size, uint32_t * abortcode = NULL, uint32_t timeout_us = 100000);
int getEntryDescription(uint16_t od_index, uint8_t od_subindex, uint8_t & valueinfo, uint16_t & datatype, uint16_t & bitlength, uint16_t & objaccess, char * entryname, size_t entryname_size, uint32_t * abortcode = NULL, uint32_t timeout_us = 100000);
媒介変数
[in] uint16_t od_index
オブジェクトのインデックス。[in] uint8_t od_subindex
オブジェクトのサブインデックス。[in] uint8_t valueinfo
注: 変数は現バージョンでは無効です。値の情報には、返される要素が含まれます:
The value info includes which elements shall be returned:- Bit 0: 予約済み
- Bit 1: 予約済み
- Bit 2: 予約済み
- Bit 3: 単位型
- Bit 4: デフォルト値
- Bit 5: 最小値
- Bit 6: 最大値
[out] uint16_t datatype
データ型を格納するために使用される変数で、 Data Typeを参照ください.[out] uint16_t bitlength
オブジェクトのビット長。[out] uint16_t objaccess
アクセスの属性:- Bit 0: プリ・オペレーション状態での読み取りアクセス
- Bit 1: セーフ・オペレーション状態での読み取りアクセス
- Bit 2: オペレーション状態での読み取りアクセス
- Bit 3: プリ・オペレーション状態での書き込みアクセス
- Bit 4: セーフ・オペレーション状態での書き込みアクセス
- Bit 5: オペレーション状態での書込みアクセス
- Bit 6: RxPDO でオブジェクトはマップ可能
- Bit 7: TxPDO でオブジェクトはマップ可能
- Bit 8: オブジェクトはバックアップに使用可能
- Bit 9: オブジェクトは設定に使用可能
- Bit 10-15: 予約済み
[out] char entryname
オブジェクト・エントリの名前。エントリ名を格納するために使用されるバッファ。[in] size_t entryname_size
エントリ名のためのバッファのサイズ。[out] uint32_t abortcode
SDOアボート・コードを保存するために使用される変数のポインタ。[in] uint32_t timeout_us
タイムアウト値でマイクロ秒単位。
戻り値
error codeを返します。返された値が 0の場合、この関数が正常に完了したことを示します。
備考
この関数は、 EthercatMaster::begin()
が正常に実行された後で呼び出す必要があります。この関数はブロッキングされているため、循環コールバック関数内で呼び出すことができません。
例
#include "Ethercat.h" EthercatMaster master; EthercatDevice_Generic slave; void setup() { uint16_t DataType, BitLength, ObjectAccess; uint8_t ValueInfo = 0; char EntryName[64]; Serial.begin(115200); master.begin(); slave.attach(0, master); slave.getEntryDescription(0x1C12, 0x01, ValueInfo, DataType, BitLength, ObjectAccess, EntryName, sizeof(EntryName)); Serial.print("Data Type : "); Serial.print(DataType, HEX); Serial.println("h"); Serial.print("Bit Length : "); Serial.print(BitLength, HEX); Serial.println("h"); Serial.print("Object Access : "); Serial.print(ObjectAccess, HEX); Serial.println("h"); Serial.print("Entry Name : "); Serial.println(EntryName); } void loop() { // Do nothing here }
詳細は EtherCAT Library User Manual QEC EtherCAT命令とAPI使用法参照