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