目次
MPINO STUDIO2・LS産電 CnetでHMIを接続する
STUDIO2のLS産電 Cnet スレーブでは、Cnet要求の%DW0が内部のD0、%MX00000が内部のM0に対応します。LS産電・M2I・EasyViewのHMI編集ソフトでは、Cnetドライバを選択し、D000・M000のようにM・Dメモリ名を入力してください。ModbusのCoil 1000・Holding Register 2000はCnetのアドレスではありません。
この切り替えの例は、STUDIO2 Modbus RTUの例でプロジェクト作成、メモリ設定、ラダー作成、mainコードの入力、最初のビルドと製品への書き込みを終えた後に進めてください。ModbusのHMI画面の作成や実機での通信試験まで終える必要はありません。Arduino IDEのCnetの例にはこの前提条件はありません。
1. 通信プロトコルを変更する
- 最初のビルドと書き込みを終えた
HMI_First_Test.mp2を開き、ファイル → 名前を付けて保存でHMI_Cnet_Test.mp2として保存してください。 - 実行 → 通信を開き、
Serial1のプロトコルをLS産電 Cnet スレーブに変更してください。 - スレーブ ID
1、通信速度9600、データビット8、ストップビット1、パリティなしを確認し、Ctrl+Sで保存してください。
下の図は項目の位置を示す初期画面です。 図のプロトコルなしと通信速度115200はこの例の値ではありません。上で指定したLS産電 Cnet スレーブ・9600を設定して保存してください。
HMI側は、プロトコルを選ぶでCnetドライバと接続ポートを確認してください。
2. 内部ラダーとコードを確認する
設定 → メモリ領域設定はPが64、M・D・C・T・Rがそれぞれ16のままです。ラダーピンマップ設定の物理ピンの使用もすべて解除したままです。ラダー → ladderLoopはNO接点M0 → 出力コイルM1の1行です。
mainコードはModbusの例のコード全体と同じままにしてください。通信関数はSTUDIO2が生成するため、ICnetMem()・ICnetInit()・ICnet()を直接追加しないでください。
内部メモリD0は1秒ごとに増加し、HMIがD001に書き込んだ値は内部のD1からD2にコピーされます。HMIがM000を変更すると、内部ラダーの結果M1をHMIのM001で確認できます。Dは符号付き16ビット整数です。
3. CnetのHMIアドレス
| HMIの要素 | STUDIO2内部メモリ | HMIの入力例 | 動作 |
|---|---|---|---|
| 1秒ごとに変わる数値 | D0 | D000 | 読み取り |
| 数値入力 | D1 | D001 | 読み取り・書き込み |
| 入力値を返す数値 | D2 | D002 | 読み取り |
| スイッチと確認ランプ | M0 | M000 | 書き込み・読み取り |
| ラダーの結果を確認するランプ | M1 | M001 | 読み取り |
HMIの入力例はLS産電・M2I・EasyViewのHMIが対象です。その他のHMIでは、選択したCnetドライバのアドレス形式を確認してください。ModbusのCoil 1000・Holding Register 2000はCnetのアドレスではありません。
数値三つは16ビット整数・1ワード・小数点以下0桁・倍率1に設定し、入力範囲を0~9999に制限してください。スイッチはM000をトグルで書き込み、別のランプで読み返すように設定してください。このプログラムは物理出力を制御しません。
4. 再度ビルドして確認する
- 実行 → ビルド(
Ctrl+R)を実行し、エラーがないことを確認してください。 - ステータスバーで製品用ダウンロードケーブルのPC側COMポートを選択し、実行 → アップロード(
Ctrl+U)を実行してください。下部パネルのアップロードログが正常に終了することを確認してください。ポートとログの位置はポートを選択して書き込むを参照してください。 - HMI画面の作成でCnetドライバを選択し、上の表の
D000~D002とM000・M001を指定して、局番1、9600/8N1で保存・転送してください。製品のSerial1はHMI通信にのみ使用してください。
この例は、STUDIO2がインストールしたSDKでコード生成とコンパイルまで確認したものです。特定のHMIドライバとケーブルでの実機動作は別途確認が必要です。
