Modbus-RTU通信プロトコルによる富士インバーターとの通信

最近シリアル通信にさわる機会が多くなっています。
昔みたいにPLCのラダーで通信プログラムを書かなくても、マクロやファンクションブロック等で比較的簡単に接続出来るようになりました。
エラーチェックコード等を自動で生成し送信してくれるのは大変ありがたいです。
CRC16なんてラダーで考えるのは頭が。。。。
キーエンスのタッチパネルVT3は直接温調器やインバータに接続出来るとの売りですが。。。
手持ちの富士インバーターFRENC-Miniシリーズとは簡単選択項目がありません。ダメじゃん(Q_Q)↓
調べて見るとインバーター通信プロトコルにModbus-RTUも選択出来ますし、またVT3でも通信選択出来ます。
じゃあこれで通信するしか無いかなと。。。
選択肢にある安川VSminiJ7もプロトコルはModbus-RTUですが、読み書きのファンクション・コード及びデータが違っているのでそのままでは使えません。
しかしModbus-RTU通信プロトコルとは、なんぞや???
キーエンスのマニュアルは詳細説明が無く、全然理解出来ません。(^^ゞ
まずは、FRENC-MiniシリーズRS485通信ユーザーズマニュアルをダウンロード
http://www.fujielectric.co.jp/fcs/jpn/new/frenic-mini/index.htmついでにPCローダソフトウエアFRENIC Loaderもダウンロードします。
取りあえず第3章Modbus RTU プロトコルを読破することから始めます。
しかし、RTUファンクションコード(ファンクション・フィールド)とインフォメーション(データ・フィールド)の関係がどうにも理解出来ない。。。
で色々検索したところ下記の資料と突き合わせでやっと理解出来ました。
富士で言うところのファンクション読出しとは、保持レジスタのデータ読出しの事なのね。。。
つまりFRENC-Miniシリーズではワードデータしか使っていないと。単純じゃん。
エム・システム技研
Modbus プロトコル概説書
http://www.m-system.co.jp/mssjapanese/kaisetsu/nmmodbus.pdfプロトコル検索中に見つけた面白い(超便利)ソフトです。
苦もなくインバータと繋がってしまいました。\(^^@)/
プログラム前にコード・データ内容の確認が出来て、ミスも少なくなるかも?
QuickMod Modbus scanning tool
http://www.azeotech.com/index.php?_m=downloads&_a=viewdownload&downloaditemid=27&nav=0&gclid=CLOxjqmB1I0CFQqgYgodWz52mA
【追記】
以前は簡単にダウンロード出来たのですが現在はユーザー登録して25日間のトライアル版をダウンロードしないと駄目ですね。
このリンク
http://www.azeotech.com/index.php?_m=downloads&_a=viewdownload&downloaditemid=27&nav=0&gclid=CLOxjqmB1I0CFQqgYgodWz52mAl「Download a 25 day tria」をクリックして現れたページ(Download DAQFactory)の「Download Now」をクリック
当然ユーザー登録などしてないでしょうから、
Create a MyDAQFactory account to download DAQFactoryクリックしMy DAQFactory User Profileの各項目を記入します。
My DAQFactory
Login Information(ログイン情報)
Username * ユーザー名
Password * パスワード(5文字以上)
Confirm Password * 確認のためパスワード入力
Personal Details
Email * メールアドレス
Additional Details (追加詳細)
Questions? 質問があれば記入(英語で質問できるはずも無く無記入ですね)
Validation Code * 確認コード→右の画像の文字を記入します。
記入したら「Register」クリック
My DAQFactoryページが表示されるのでProductServiceの「downloads」をクリック
ここでやっとダウンロード出来ます。
DAQFactory Release 5.79a and QuickMod Proクリックすると
前と同じDownload DAQFactoryページが表示されます。
「Download Now」でダウンロード開始です。
DAQFactory Softwareに入っているQuickMod Modbus Scannerが目的のツールです。
ソフトを起動したらModbus RTU serial にチェックが入っている事を確認し、「configure」クリックしてシリアルポートの設定をしてセーブしてから始めます。
使い方を軽く説明します。(ヘルプを見ても英文なので、十分理解出来ていませんから。。。)
PCソフト側通信設定 RS232C-RS485変換器 インバータ通信(RS-485 2線式)設定をそれぞれ統一設定します。
意外に通信出来ない原因はこれにあったりして。。。自戒(^^ゞ
【Quick-MODの設定】
ソフト起動すると通信が開始されます。
初めに[Configure]クリックして通信設定を合わせます。
ID:局番(スレーブアドレス)
RS485の局番です。
Function:FC(ファンクション・コード)Holding Register(保持レジスタ)
FRENC-Miniシリーズでは、機能コード(コード変換表で変換した値=Hi/Lo 2バイト=1ワード)=保持レジスタ(16bit)アドレスに対応しています。
使えるファンクションは、下記の4つです。
コード ファンクション名 機 能
03(0X03) Read Holding Register 保持レジスタの読出し
08(0X08) Diagnostics 診断ファンクション
06(0X06) Preset Single Register 保持レジスタへの書込み
16(0X10) Force Multiple Registers 複数保持レジスタへの一括書込み
Type:データ種類(Unsigned Integer (16))
符号無し16bitかな?データ数値が小さいのでsigned Integer(16)でもOKだった。
選択が間違って?いれば上の(Status:)に通信エラー表示されます。
Tag#:機能コード(10進数入力)
(FOO〜Z64)をコード換算表で換算した値の10進数
読出し先頭アドレスを入力します。
例えば、W01:運転状況の場合は0F01(16進)ですから3841(10進)と入力します。
#pts:読出しデータ数(10進数入力)
機能コードが連続して割当てされていないので、未使用コードを連続読出ししても無駄です?
でもデーターが入っていたりします。隠しコードか?(^_^)
画面ではF00からF15まで連続した16個を指定しています。
Excelの黒く反転した項目の現在値がインバーターより読み出されています。(0:〜15:)
ただタッチパネル等で実際に通信した場合は、お解りのようにデータ値の位取りに注意が必要ですね。
この連続データ表示数は32まで設定出来ます。
[Monitor]をクリックすると、別ウィンドゥ(Monitor:Comm)で通信内容が表示されます。
画面のコマンドデータ(問合せメッセージ Query Message)の説明
Tx : ¥x01¥x03¥x00¥x00¥x00¥x10¥x44¥x06

※ちなみに取説などで、¥x00 0x00 00H $00 とか表記されているのは、いずれも16進数の00の事です。
また、インバーターに書込みする場合は、右上の[Set Output]クリックするとダイアログ表示されるのでそちらでセットします。
面白くて無意味に色々読出して遊んでます。
あらかじめ応答メッセージの値が確認出来るのでプログラムの作成・チェックが楽になりそうです。
富士インバータ等Modbus-RTU通信機器をお持ちの方は是非お試し下さい。
【おまけ】
機能コード表やコメント表など作る際のちょっとしたテクニックです。
Excelで表を作っていますが、手作業でのコード入力は大変ですね。(^^ゞ
今回使ったテクを披露します。
まず富士のPCローダソフトウエアFRENIC Loaderを起動して、使用するインバータの機能コード一覧を表示させます。

次にこの表をPDF化します。
適当なPDFファイル作成ソフトを利用します。今回はAdobe PDFを使用しました。

次に作成されたPDFファイルを開いて、「全て選択」しコピーします。

それをテキストエディタに貼り付けます。自分は秀丸を使っています。

エディタの置換機能で半角スペースを,(カンマ)に置き換えてCSVファイルで保存します。


保存したCSVファイルをExcelで開いて、Excel形式で保存すればOKです。
後はオートフィルやらマクロでお好きなように加工して下さい。

秀丸の便利なところです。
ラダー等のコメントはスペースの関係上半角カタカナを使う場合が多いのですが、カタカナのみ半角変換出来ます。
もちろんWEB公開されている文章整形マクロを使っても良いです。かなり多機能な物が公開されています。

半角変換したあと、不要のFコードを縦にBOX選択(コントロールキーを押しながらドラッグ)しているところです。
選択したらDeleteします。

【さらにおまけ】
10進 16進を簡単に計算変換出来るお勧めの電卓です。
今回もコード変換に活躍しました。
複数表示形式同時表示電卓 mulc
http://www5e.biglobe.ne.jp/~anhr/mulc.html
フリーのPDFファイル作成ソフト
CutePDF Writer 2.7
http://www.altech-ads.com/product/10000305.htmまたメーカーサイトからダウンロードしたPDFファイルにパスワードが掛かっていてコピー出来ない場合はこちらのソフトで。
PDF Password Remover v3.0
http://www.altech-ads.com/product/10001190.htmExcelのアドインも便利です。
14日間試用できますから、気に入ったらベクターで購入しても良いでしょう。

Excelアドイン集「七草」
http://www.techno5.net/download/usages/nanakusa.html