三菱FX5CPUでRS485通信例[Non-Protocol Communication]

この記事は私が三菱FX5を使ってRS485のインタフェースとコミュニケーションするときで取ったのメモです。なぜこのような記事を書くでしょうか?多分最初にネットでそのような情報探してたけどなかなか見つからなくて、MANUALにもあまり乗らなかったから。

無手順通信

まず、無手順通信はなんですか?簡単だというと、無手順通信は通信方法の1つとしてプリンターとか、バーコードREADERとかとデータ交換してる時使うのものです。

このリング先ではもっと詳しくみます:
Serial Communication by Wiki

システム構成

Screen Shot 2016-07-15 at 11.21.06 pm

FX5Uを使ってるのせいで仕方なくGXWORKS3を使わなければなりません。
正直いうと、あまりいい体験にはなりませんでした…

配線

Screen Shot 2016-07-15 at 11.25.07 pm

RS485にはOne-pair wiringとTwo pair wiringありますが、今回はOne-pair wiringを使えます。配線によって抵抗設定とコミュニケーション設定は違うとなります。これらは後ほど説明します。

最終抵抗

Screen Shot 2016-07-15 at 11.28.53 pm

One-Pair wiringの場、抵抗値は110 ohmを選択してください。
Two-Pair wiringの場、抵抗値は330 ohmを選択してください。

GXWorks3の設定

Navigation Window ->Parameter -> FX5UCPU -> Module Parameter ->485 Serial PortScreen Shot 2016-07-15 at 11.33.05 pm
詳しい設定はしませんので、興味ある方はGOOGLEで検索してくださいねー

プログラム

いまはPLCプログラムについて説明します。

Step1- 命令

RS2という命令はここで使うんです。
Screen Shot 2016-07-15 at 11.39.14 pm Screen Shot 2016-07-15 at 11.39.21 pm

この命令は無手順通信を使ってRS485で他のデバイスと通信することができるんです。

Screen Shot 2016-07-15 at 11.41.13 pm

Step2:重要なデバイス

説明書の中に色々なデバイスが説明され、例えばこのSDだとエラーコートもらえることができる、あのSDはいまの通信設定がもらえる…とか。ですが、ここで重要なデバイスだけを説明したいと思います。

SM8561-

このデバイスはデータを送るとき使うのです。パルス信号でセットさせ、送信完了した後に自動的にオフします。

SM8562-
このデバイスはデータは受信してる時自動的オンになるんです、プログラムでリセットしないといけないのです。

SD8562-
のDMは何個のデータがもらってるのか保存してます。プログラムの中にこのDMを使って確実に欲しいデータ量をもらい、その後データ処理する。

Step3:コーティング

下はSTLを使って簡単なプログラムです。

//RS485 non-protocol communication Example
//SM8561 Send Active Flag
//SM8562 Receive Finish Flag
//SD8561 Data Receive Count
//SM8500 Communication ERROR Flag

//While the PLC Sent 'ID05SET'(ASCII Code) to RS485 Interface devices.
//The Interface will return 'ID05SETOK' in the OK Condition.

D400:D:= H35304449;
D402:D:= H544553;
D450:=K7;
D470:=K9;

OUT(SM8500,M0); //Communication Error Flag

If SM8562 then
If SD8561=k9 Then // All Data Received
 //Do some data operation With D500;
FMOV(TRUE,D500,K10,D600)//Just move all data to other DM
 END_IF;
END_IF;

OUT_T(NOT T2,T2,K2);
SET(T2,SM8561);
RST(SM8562,SM8562);

//Always Exchange Data Between Other Devices.
//DM Start to send from D400
//Send 7 data D400-D404
//Receive 9 data (Byte)
//At Channel 1
//Data Received from devices staring at D500

RS2(TRUE,D400,D450,D470,K1,D500);

最後までみってくださってありがとうございます!もしなにが質問とかあれば遠慮無くコメントしてくださいね。それに僕はこれからMODBUS通信、CCLINKとか色々も書こうと思いますので、よろしくお願いします。

下のリングでもっと詳しく説明されるの取り扱い書でございます。

FX5UManual

では、またね!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする