====== Arduino IDE・Mitsubishi MC 1CでHMIを接続する ====== [[:ja-jp_guide:hmi_connection|HMI接続の全体の流れ]] · [[:ja-jp_guide:hmi_connection:arduino|Arduino IDEの準備]] このSDKのMCスレーブは、**MELSEC A互換 1Cフレーム Format 1 シリアルASCII**の要求を処理します。HMIドライバのフレーム形式をこれに合わせ、**Sum Checkを有効**にしてください。一般的なMC 3E/4EフレームのドライバやMC TCPのドライバでは、この例に接続できません。''M''・''D''は1C要求のデバイス文字と番号で指定します。 このページの例は**MPINO-8A4R-S・RS-232 ''Serial1''・局番1・9600 bps・8N1**を前提とし、Arduino IDE用です。[[:ja-jp_guide:hmi_connection:wiring|チャンネルと配線]]、[[:ja-jp_guide:hmi_connection:arduino|SDKのインストールとボード選択]]を確認してください。MPINO STUDIO2の通信設定にこのプロトコルはありません。 ===== 1. HMI画面に指定するアドレス ===== ^ 画面要素 ^ SDKメモリ ^ 1C要求のデバイスとアドレス ^ 要求コマンド ^ | 通信確認の数値 | ''D0'' | ''D0000'' | ワード読み取り''WR''、0~99を繰り返す | | 数値入力 | ''D1'' | ''D0001'' | ワード書き込み''WW''、0~9999 | | 返された値 | ''D2'' | ''D0002'' | ワード読み取り''WR''、D1と同じ値 | | 試験スイッチ・ランプ | ''M0'' | ''M0000'' | ビット書き込み''BW''、読み取り''BR'' | 表の''D0000''・''M0000''は、**コアが受信する1C要求のデバイスコードと4桁の10進アドレス**です。編集ソフトでの表示形式はドライバによって異なるため、実際の要求がこのアドレスを指していることを確認してください。**Modbusのアドレス変換表はMCに適用しません。** 数値形式、スイッチ、ランプの共通設定は[[:ja-jp_guide:hmi_connection:screen|HMI画面の作成]]で説明します。 ===== 2. 新しいスケッチにコードをすべて入力する ===== 上の1Cアドレスで内部メモリの値をやり取りする簡単な例です。実際の入力ピンとリレー出力ピンは使用しません。 #include unsigned long lastTick = 0; void setup() { IMcMem(0, 0, 16, 16); // X/Yは未使用、M0とD0~D2を含む IMcAdr(0, 0, 0, 0); // 外部アドレスも0から IMcInit(Serial1, 1, 9600); lastTick = millis(); } void loop() { if (M == nullptr || D == nullptr) return; IMcProtocol(); unsigned long now = millis(); if (now - lastTick >= 1000UL) { lastTick = now; D[0] = (D[0] >= 99) ? 0 : D[0] + 1; } if (D[1] > 9999) D[1] = 9999; D[2] = D[1]; } ''IMcMem()''は起動時にメモリを確保し、''IMcProtocol()''はループごとにHMIの要求を処理します。 ===== 3. 検証と書き込みの後、HMI画面を作成する ===== スケッチを書き込んだら、下の画面構成例と上のアドレス表を参考にHMIの要素を配置してください。 {{ :ja-jp_guide:hmi_connection:practice-screen.svg?420 |D0 通信確認の数値、D1 入力、D2 返された値、M0 試験スイッチとランプ }} - スケッチを保存し、Arduino IDEの**検証**を実行してください。 - **ツール → ボード**と書き込み用のCOMポートを確認し、**書き込み**を実行してください。[[:ja-jp_guide:getting_started|Arduino IDEで始める]]も参照してください。 - [[:ja-jp_guide:hmi_connection:screen|HMI画面の作成]]で、上の''D0000~D0002''と''M0000''を外部機器の要素に指定し、HMIプロジェクトを転送してください。 - 製品とHMIの電源を入れ、[[:ja-jp_guide:hmi_connection:check|動作確認とトラブルシューティング]]で読み取り → 書き込み → ビットの順に試験してください。 {{ :ja-jp_guide:hmi_connection:write-read-flow.svg?420 |HMIがD1とM0を書き込み、製品のD2とM0を読み返して結果を確認 }} まずHMIのドライバが**1C Format 1・Sum Check**の要求を送ることを確認してください。正常な結果と症状別の確認箇所は[[:ja-jp_guide:hmi_connection:check|動作確認とトラブルシューティング]]にまとめています。