GOTタッチパネルのModbus通信での取込み方

FA

GOTにオマケで付いているRS485を使えば、ちょっとした数値を取り込むのがとても楽ちん。

メーカーと通信プロトコルを選択するだけで、繋がりますもんね。
その中でも、採用の多い Modbus で行けば、メーカー問わずになりそうです。

少し分かり難い Modbus でやりとりしてみましょう。

どうも!ずぶです。今回は GOTタッチパネルのModbus通信での取込み方

Modbusとは

本格的に通信する訳ではありませんが、さらっと復習してみましょう。

Modbus 『ウィキペディア(Wikipedia)』

簡単にまとめると

PLC向け通信プロトコル
マスター/スレーブ方式
シリアルの場合は、RS485で繋ぐ事が多い

あと、

みんな結構、好き勝手やってる!

です。

更に言い換えると

完全にケツを持ってくれるメーカーはない
って事ですね。

Modbusプロトコルの種類

RS485 に載せてくるのは2種類

Modbus RTU   バイナリで記述、チェックサムはCRC16
Modbus ASCII  ASCIIで記述、チェックサムはLRC

ヘッダやフッタも違っていて、カプセル化した データは別物 になるので、
ライン上の機器は RTU か ASCII かどちらか一方に統一させる 必要があります。

コマンドフレーム

ファンクションコードって何よ?って感じですが

Modbusで決まってる動作コードの事です。

保持レジスタを読む時は「3」とか、コイルを書く時は「5」のように指定します。

以上が、ざっくり一通りの仕様です。

とはいえ、

FA廻りの通信は、ほぼ Modbus RTU
Modbusだけの記述でも、ほぼ Modbus RTU

なので、

取説を追う場合は RTU(バイナリ)の一文を頼りに探って行くと辿りつき易いですよ。

通信させてみよう

では実際に、GOT と 温度調節器 をつないで、温度を取り込んでみましょう。

今回お世話になるのは、これ↓

OMRON制御機器 さんの E5CC シリーズ

白色セグメントが見易くて格好良いですね。

配線をしよう

設定をしよう

温調器の設定

通信プロトコルと号機を決めるだけ。

通信ユニットNo.」がコマンドフレームの「スレーブアドレス」なのですね。

GOTの設定

『接続機器の設定』からCHを設定するだけ。

これで、GOT-オムロン温調器との Modbus通信 の仕込みは完了です。

あとは数値表示を張付けて

デバイスの設定をするだけ!

デバイスは、E5CCの取説の変数一覧を見れば良いのですね。

これらは、温調器のレジスタに格納されています。
それを読出したいので、ファンクションコードは『3』

GOTのModbus通信は2バイトモードです。
なので、現在値の2バイトアドレスは『2000』

局番は、スレーブ何号機か?ってだけなので、番号を放り込むだけです。
今回は、『1』に設定しました。

これで良いんじゃね?

って感じですが、 残念賞 です。

少し分かり難い箇所っていうのは、まさにココ

細かく見て行きましょう。

ファンクションコードとアドレス

GOTの数値表示の『3』を入力している箇所ですが、デバイスと書いてありますよね。

それって、

アドレスを入れる欄であって、ファンクションコード を入れる場所ではない のです。

じゃあ、アドレスは?というと

ファンクションコードごとに、レジスタは決まっている のです。

「なんで?!」って言われても、
「決まっているから」としかお答えできません。

ファンクションコード「3」に対応するレジスタ番号は「40001~」

なので、

デバイス入力の上位側には、レジスタ番号最上位の『4』を入れます

GOTの入力範囲

ならば

これで良いんじゃね?

って感じですが、これまた 残念賞 です。

E5CC の変数一覧には、2バイト と表記がありました。

けれど、GOTのデバイス下位は 5ケタ入力 になっています。

赤括弧に説明分に答えがありました。

10進数での入力だったのですね。

「 h2000 」 を 10進変換すると 「 8192 」

今度こそ、これで良いんじゃね?

って感じですが、残念 ニアピン賞 です!

再度、レジスタの番号を見ると

000001~

400001~

そうなんです。

1から始まっているんです。

変数一覧の記述は、オフセットアドレス なのですね。

なので、

GOTのデバイスの欄には、

保持レジスタの開始アドレス   400001

現在値表示のオフセットアドレス   8192

アドレス指定は、408193 と入れ込まなければなりません。

このように入力して、初めて完了となるのですね。

デバイスデータ転送に入れておこう

動作が確認できたら デバイスデータ転送 に設定しておくことをオススメします。

詳しい説明は省きますが、これで取り込んだ数値を D200 に転送してくれるので、シーケンサで触れるようになりますね。

まとめ

やたらと、あっち調べてこっち調べて ガチャガチャ した記事になってしまいましたが、各メーカーさんは自分の守備範囲だけを仕上げてきているのが何となくお分かり頂けたかと思います。

少し大げさに、ケツを持ってくれるメーカーは無いと書いていたのはこういう事です。
設定が違って通信が通らないからと、メーカーに聞いたとしても答えようがないでしょ?
今回、ちょっとウザったい書き方をしたのは、一通り理屈を理解してしまえば、今後は楽ちんとの認識からです。
もう、勘どころは掴めたのではないでしょうか。

メーカー問わず Modbus 製品が使えるようになるときっと楽しいですね。

合わせて読みたい
シリアル通信の基本
シーケンサでMODBUS RTU通信をしよう(1)