====== ICnet() ====== ''ICnet()''は受信要求を確認し、Cnet Slave応答を処理します。 {{:ja-jp_commands:reference:icnet.svg?900|ICnet コマンドの動作フロー}} ''void ICnet()'' ===== コマンド ===== ^ コマンド ^ 引数 ^ 戻り値 ^ 動作 ^ | ''ICnet()'' | なし | ''void'' | 受信要求を確認し、Cnet Slave応答を処理します。 | ===== 使用例 ===== この例では、MPINO-16A8R8TのRS-485ポート''Serial2''、入力''D22''、トランジスタ出力''D39''を使用します。 void setup() { ICnetMem(64, 64, 16); // Cnet Slaveが使用するM・D・Rメモリサイズを設定します。 ICnetAdr(0, 0, 0); // M・D・Rメモリの開始アドレスを設定します。 ICnetInit(Serial2, 1, 9600); // 通信ポート、局番、ボーレートを設定します。 if (M != nullptr) M[0] = false; } void loop() { ICnet(); // 受信要求を確認し、Cnet Slave応答を処理します。 if (M != nullptr) M[0] = digitalRead(22) == HIGH; if (D != nullptr) digitalWrite(39, D[0] ? HIGH : LOW); } ===== 注意事項 ===== * ''loop()''で''ICnet()''を継続的に呼び出します。 * M/D/RサイズはSRAMの範囲内で設定します。 * Modbusとメモリを共有するときは重複割り当てとアドレス基準を確認します。''ICnetMem()''と''ImodbusRTUMem()''はいずれも共有''M''/''D''を再割り当てするため、最終サイズの管理はどちらか一方に統一し、最後の再割り当て後に両プロトコルを初期化します。 * 割り当て関数は成功状態を返さないため、''M''、''D''、''R''が''nullptr''か確認してからユーザーコードでアクセスします。 ===== 同じカテゴリの内蔵コマンド ===== * [[:ja-jp_commands:reference:icnetmem|ICnetMem() 詳細説明を見る]] * [[:ja-jp_commands:reference:icnetadr|ICnetAdr() 詳細説明を見る]] * [[:ja-jp_commands:reference:icnetinit|ICnetInit() 詳細説明を見る]] [[:ja-jp_commands:builtin|← 内蔵コマンド一覧]]