← STUDIO2のインストールと開始 · 次へ:HMI画面の作成 → · 選択:LS産電 Cnet →
MPINO STUDIO2でプロトコルをModbus RTU スレーブに設定すると、製品の要求処理コードはアプリが生成します。HMIはModbus RTU マスターとして要求します。HMIが読み書きする内部DワードはHolding Register、MビットはCoilに対応します。STUDIO2の生成コードのアドレスは、Arduino IDE SDKの例とは異なります。
この表は、STUDIO2の生成コードが受け付けるModbus要求内の0始まりのアドレスです。HMIがCoil番号を1始まりで受け付ける場合、M0は1001と表示されることがあります。1始まりや4xxxx表記で入力する番号はHMIドライバの説明書で確認し、HMIのアドレス形式に従ってください。
| HMIの要素 | STUDIO2メモリ | Modbus領域 | 要求内の0始まりのアドレス |
|---|---|---|---|
| 1秒ごとに変わる数値 | D0 | Holding Register | 2000 |
| 数値入力 | D1 | Holding Register | 2001 |
| 入力値を返す数値 | D2 | Holding Register | 2002 |
| スイッチと確認ランプ | M0 | Coil | 1000 |
| ラダーの結果を確認するランプ | M1 | Coil | 1001 |
次はMPINO-8A4R-S・RS-232 Serial1・局番1・9600 bps・8N1で内部メモリのみを使用する簡単な例です。実際の入出力端子は使用しません。チャンネル、配線、インストール、製品選択はHMIの配線とSTUDIO2のインストールと開始を参照してください。
MPINO-8A4R(T)-Sを選択し、HMI_First_Test.mp2として保存してください。64、M・D・C・T・Rをそれぞれ16に設定してください。この数字はアドレスではなく個数です。MとDのみを使用します。通信端子は製品によって異なります。チャンネル表で実際の製品のポートを確認してください。
エクスプローラーでラダー → ladderLoopを開き、1行1列にNO接点(F2)M0、1行2列に出力コイル(F9)M1を配置してください。M1は内部ビットであり、実際のリレー出力ではありません。
コードのmainコードタブを開き、下のコードを入力してください。このコードはSTUDIO2プロジェクトのmainに入力するもので、Arduino IDEで単独のスケッチとして書き込むコードではありません。
#include "mpino_runtime.h" #include "ladder_generated.h" unsigned long lastTick = 0; void setup() { M[0] = false; M[1] = false; D[0] = 0; D[1] = 0; D[2] = 0; lastTick = millis(); } void loop() { ladderLoop(); unsigned long now = millis(); if (now - lastTick >= 1000UL) { lastTick = now; D[0] = (D[0] + 1) % 100; } D[2] = D[1]; }
D0は1秒ごとに0~99を繰り返します。HMIがD1に数値を書き込むと、D2がその値に追従します。M0をONにすると、ラダーがM1をONにします。通信の初期化と要求処理のコードは、STUDIO2が通信設定から生成します。 このコードにImodbusRTUInit()やImodbusRTU()を追加しないでください。
この例で入力する値は下の表のとおりです。 図は項目の位置を示す初期画面で、図のプロトコルなしと通信速度115200はこの例の値ではありません。Modbus RTU スレーブと9600に変更して保存してください。
| 図の番号 | 項目 | 入力値 |
|---|---|---|
| ① | チャンネル | Serial1 — この製品のRS-232 |
| ② | プロトコル | Modbus RTU スレーブ |
| ③ | スレーブ ID | 1 |
| ④ | 通信速度 | 9600 |
| ⑤・⑥・⑦ | データビット・ストップビット・パリティ | 8 ・ 1 ・ なし |
実行 → 通信で上の値を設定し、Ctrl+Sで保存してください。HMI側では、接続したRS-232ポートをModbus RTU マスターにして、同じ局番と通信条件を設定してください。
Ctrl+R)を実行し、ビルド出力に成功メッセージが表示されることを確認してください。Ctrl+U)を実行してください。下部パネルのアップロードログが正常に終了することを確認してください。書き込みポートとHMI用のSerial1は別の接続です。画面と手順はポートを選択して書き込むを参照してください。0~9999に設定してください。この例の実機でのHMI通信は、使用するHMIのモデルとケーブルに応じて別途確認してください。同じSerial1をラダーモニタリングやユーザーのシリアルコードに重複して割り当てないでください。
先にHMI画面の作成でこのページのModbusアドレスを指定し、動作確認とトラブルシューティングに進んでください。Cnetも試す場合は、同じプログラムをLS産電 Cnetに切り替えてください →。