サイト内検索

検索

Shares

Table of Content

EthercatDevice.getEntryDescription()

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

上部へスクロール