タッチパネルは怖くない!?メッセージの処理方法
「イタリアのロボットを動かす!」では、ロボットをPLCで制御し、そのHMI(ヒューマンマシンインターフェース)にタッチパネルを使いました。
この様なシステム構成はFAでは一般的です。
従来は押しボタンスイッチと表示灯、そしてメータ類を1個ずつ使ったシーケンス制御を、数段に簡単に出来るように変えたのがタッチパネルです。
今回はタッチパネルで使うネットワーク通信の一つとして、Modbus通信について説明します。
Modbus 通信の物理層としてはRS485、LANがありますが、今回はRS485のModbus RTUについてです。
Modbus はOPEN規格ですから、それなりにメリットとデメリットがあり、その点を理解すればとても使いやすい通信です。
Modbusの模擬回路図を見て下さい。
信号源インピーダンスを常に低く保つ為、回路の左右にLT終端抵抗をつけています。
信号D1、D2は反転信号となりスレーブは差動信号を入力します。
プロトコルは、マスタ/レーブ方式 で、マスタが通信の基点となります。
スレーブはマスタから要求された指令を実行し応答メッセージを返します。
■通信の流れ
Modbusの通信方式は、シングルマスター/マルチスレーブ方式です。
マスタだけがクェーリ(通信の開始)を発行することができます。
スレーブは、このクエリを見て、指定された機能を実行し、応答メッセージを返します。
クエリの伝送フォーマットは、スレーブのアドレス(またはブロードキャスト)、要求内容を定義するファンクションコード、データおよびエラーチェックフィールドから構成されています。
■1バイト構成
スタートビット+データビット+パリティビット+ストップビット=11ビット
ファンクションには大きく分けて、接点(1bit)レジスタ(16bit)、それぞれに読出し/書込み、そして通信診断です。
接点入出力は常に繰り返し通信、レジスタは必要に応じて通信ですが、機器によって異なりますので実機確認することが良いと思います。
具体的には「08H」通信診断では次のような手順となります。
結構分かり辛いようですが、タッチパネル(HMI)を使うと簡単に通信が出来ます。
16ビットレジスタ書込みと1ビット書込みの例です。
タッチパネルはミスミ製GX8を用いています。
■レジスタの書込みを2回連続して行っています。
通信波形から分かる様に繰り返し通信はありません。
■1bit出力の場合はボタンのOFF/ON状態を常に通信しています。
波形はData+信号とData-信号がありますが、ここではData+信号のみ表示しています。
タッチパネルの「画像プロパティ」の
行番号1:JOG+スイッチが押されている間はランプを点灯する。
行番号2:JOG+スイッチが押されている間はModbus第1局のビットアドレス259.04をONする。
こんな感じで簡単にModbus通信が出来ます。