ユーザ用ツール

サイト用ツール


ja-jp_commands:reference:icnetadr

文書の過去の版を表示しています。


ICnetAdr()

ICnetAdr()はM・D・Rメモリの開始アドレスを設定します。

ICnetAdr コマンドの動作フロー

void ICnetAdr(uint16_t m_offset, uint16_t d_offset, uint16_t r_offset = 0)

コマンド

コマンド 引数 戻り値 動作
ICnetAdr(m_offset, d_offset, r_offset) uint16_t m_offset
uint16_t d_offset
uint16_t r_offset = 0
void M・D・Rメモリの開始アドレスを設定します。

使用例

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] = IdigitalRead(0, 5);  // 入力を連続して複数回読み、すべて一致した場合のみ状態を更新します。HIGHとLOWが混在する場合は前の安定状態を保持します。
  if (D != nullptr) digitalWrite(32, D[0] ? HIGH : LOW);
}

注意事項

  • loop()ICnet()を継続的に呼び出します。
  • M/D/RサイズはSRAMの範囲内で設定します。
  • Modbusとメモリを共有するときは重複割り当てとアドレス基準を確認します。ICnetMem()ImodbusRTUMem()はいずれも共有M/Dを再割り当てするため、最終サイズの管理はどちらか一方に統一し、最後の再割り当て後に両プロトコルを初期化します。
  • 割り当て関数は成功状態を返さないため、MDRnullptrか確認してからユーザーコードでアクセスします。

同じカテゴリの内蔵コマンド

ja-jp_commands/reference/icnetadr.1788796398.txt.gz · 最終更新: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki