サイト内検索

検索

Shares

Table of Content

EthercatMaster.getSlaveNo()

[Ethercat Master]

説明

エイリアスアドレス、製造者ID、製品番号、修正番号、シリアル番号に基づいて指定されたスレーブのシーケンスID番号を取得します。

構文

int getSlaveNo(uint16_t alias_addr);

int getSlaveNo(uint32_t vendor, uint32_t product);

int getSlaveNo(uint32_t vendor, uint32_t product, uint32_t revision, uint32_t serial_num);

int getSlaveNo(uint16_t alias_addr, uint32_t vendor, uint32_t product);

int getSlaveNo(uint16_t alias_addr, uint32_t vendor, uint32_t product, uint32_t revision, uint32_t serial_num);

媒介変数

  • [in] uint16_t alias_addr
    検索したいEtherCATスレーブデバイスのエイリアスアドレス。入力値が 0 の場合、この変数は検索に使用しないことを示します。
  • [in] uint32_t vendor
    検索したい EtherCATスレーブデバイスの製造者ID。入力値が 0 の場合、この変数は検索に使用しないことを示します。
  • [in] uint32_t product
    検索したいEtherCATスレーブデバイスの製品コード。入力値が 0 の場合、このパラメータは検索に使用しないことを示します。
  • [in] uint32_t revision
    検索したいEtherCATスレーブデバイスのレビジョン番号。入力値が 0 の場合、このパラメータは検索に使用しないことを示します。
  • [in] uint32_t serial_num
    検索したいEtherCATスレーブデバイスのシリアル番号。入力値が 0 の場合、このパラメータは検索に使用しないことを示します。

戻り値

ネットワーク上で一致するEtherCATスレーブデバイスのシーケンス番号を返します。返された値が -1 の場合、一致する EtherCATスレーブデバイスが見つからなかったことを示します。0未満の他の値は、 error codeを示します。.

備考

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

#include "Ethercat.h"

EthercatMaster master;

void setup() {
  Serial.begin(115200);
  master.begin();
  
  Serial.print("Search Test 1 => ");
  Serial.println(master.getSlaveNo(1200));

  Serial.print("Search Test 2 => ");
  Serial.println(master.getSlaveNo(0x00000BC3, 0x0086D324));

  Serial.print("Search Test 3 => ");
  Serial.println(master.getSlaveNo(0x00000BC3, 0x0086D304, 0x20220316, 0x00000000));

  Serial.print("Search Test 4 => ");
  Serial.println(master.getSlaveNo(251, 0x00000BC3, 0x0086D302));

  Serial.print("Search Test 5 => ");
  Serial.println(master.getSlaveNo(252, 0x00000BC3, 0x0086D301, 0x20220316, 0x00000000));
}

void loop() {
  // ...
}

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

上部へスクロール