サイト内検索

検索

Shares

Table of Content

EthercatDevice.getObjectDescription()

[Ethercat Device]

説明

該当するEtherCATスレーブデバイスのインデックスで指定された特定のオブジェクトのオブジェクト記述を読み取ります。

構文

int getObjectDescription( uint16_t od_index, uint16_t * datatype, uint8_t * max_od_subindex, uint8_t * objcode, char * objname, size_t objname_size, uint32_t * abortcode = NULL, uint32_t  timeout_us = 100000);

int getObjectDescription( uint16_t od_index, uint16_t & datatype, uint8_t & max_od_subindex, uint8_t & objcode, char * objname, size_t objname_size, uint32_t * abortcode = NULL, uint32_t timeout_us = 100000);

媒介変数

  • [in] uint16_t od_index
    オブジェクトのインデックス。
  • [out] uint16_t *datatype
    データ型を格納するために使用される変数で、 Data Typeを参照ください.
  • [out] uint8_t *max_od_subindex
    オブジェクトのサブインデックスの最大数。
  • [out] uint8_t *objcode
    オブジェクト・コード:
    • 7: 変数
    • 8: 配列
    • 9: 記録
  • [out] char objname
    オブジェクトの名前。オブジェクト名を格納するために使用されるバッファ。
  • [in] size_t objname_size
    オブジェクト名のためのバッファのサイズ。
  • [out] uint32_t *abortcode
    SDOアボート・コードを保存するために使用される変数のポインタ。
  • [in] uint32_t timeout_us
    タイムアウト値でマイクロ秒単位。

戻り値

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

備考

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

#include "Ethercat.h"

EthercatMaster master;
EthercatDevice_Generic slave;

uint16_t DataType;
uint8_t MaxSubindex, ObjectCode;
char ObjectName[64];

void setup() {
  Serial.begin(115200);

  master.begin();
  slave.attach(0, master);
  slave.getObjectDescription(0x1C12, DataType, MaxSubindex, ObjectCode, ObjectName, sizeof(ObjectName));
  Serial.print("Data Type: ");
  Serial.println(DataType);
  Serial.print("Object Code: ");
  Serial.println(ObjectCode);
  Serial.print("Max Subindex: ");
  Serial.println(MaxSubindex);
  Serial.print("Object Name: ");
  Serial.println(ObjectName);
}

void loop() {
  // ...
}

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

上部へスクロール