ja-jp_commands:reference:icnet
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/icnet.txt · 最終更新: by 127.0.0.1
