ＭｄｏｂｕｓＲＴＵログ支援ソフトのＭｄｏｂｕｓＲＴＵログ支援ソフトの使い方－－スクリプトの自動生成とログファイル変換ソフト－－スクリプトの自動生成とログファイル変換ソフト－－
スクリプトの自動生成とログファイル変換ソフト－－〔LogFriendForModbusRTU〕〕

２０２０年９月１５日 （株）データ･テクノ■■概要
ＳＤロガー４とラインコンバータで、Ｍｏｄｂｕｓからデータを取得し、記録することを支援する、パソコン上のプログラムです。
設定された条件で、ＳＤロガー４のスクリプトを自動生成する機能と、ＳＤロガー４で記録されたファイルをＣＳＶに変換する機能があります。
生成と変換は、ドラッグアンドドロップの、簡単な操作で行うことが出来ます。
何れも画面上で条件を設定します。設定した条件はプログラムが終了しても保存されます。また、個別のファイルに保存することもできます。
■■インストール
インストール作業は特に必要ありません、ダウンロードしたファイルを適当なフォルダに展開し、「LogFriendFotModbusRTU.exe」をダブルクリックなどで起動してください。
実行には、「.NTE Framework 3.5」以降を必要とします。
ＭｄｏｂｕｓＲＴＵログ支援ソフト

LogFriendForModbusRTU.exe■■操作

ＭｄｏｂｕｓＲＴＵログ支援ソフトの使い方〔LogFriendForModbusRTU(X5020031)〕

1/6

●フレーム（配列要素）の追加削除※その他の配列要素（値）も同様にして追加、削除が行なえます。

ＭｄｏｂｕｓＲＴＵログ支援ソフトの使い方〔LogFriendForModbusRTU(X5020031)〕

2/6

■■設定
●スクリプトの自動生成、ログファイルの変換は、この設定をもとに行なわれます。
Frame...

複数のフレームを設定できます。
Modbus 上のクエリー、レスポンスの１回のやり取りを、フレームという単位で扱います。同じノードの連続するレジスタがひとつのフレームで取得できます。

Node

1～247

Function

Coil, Status, Input, Holding
取得する、Modbus 上のデータの種類を指定します。

NodeView

Y/N

ノードアドレスを出力項目に含めるかどうか。

FunctionView

Y/Nファンクションコードを出力項目に含めるかどうか。

Register

1～9999取得する、Modbus 上のレジスタの開始アドレスを1 から始まるオフセット値で指定してください。

Value...

複数の値を設定できます。値の変換方法などを設定します。

ノードアドレス（スレーブアドレス、デバイスアドレス）

タイトル行に表示する文字列。
ひとつも指定が無ければ、タイトル行は出力されません。

Title

<文字列>

Type

Int16, UInt16, Float, Double, Int32, UInt32, Bit
Coil, Status は Bit を指定してください。
Input, Holding は Bit 以外を指定してください。

EndianBig, Little

エンディアン（Bit では無視されます）

1 ミリ秒～999 分

クエリーを送信するまでの待ち時間
この時間内に前のレスポンスの受信が完了している必要があります。

WaitTime…

Value

1～60000

Unit

MS, S, M

値の種類●サポートしているデータの種類と Register に記述する値
Function symbol

データの種類CoilStatus
Input
Holding

コイル
入力ステータス
入力レジスタ保持レジスタModbus 上のアドレス範囲
1～999910001～19999
30001～39999
40001～49999

Register に記述する値
1～99991～99991～99991～9999●エンディアンの説明（リトルエンディアン）

ＭｄｏｂｕｓＲＴＵログ支援ソフトの使い方〔LogFriendForModbusRTU(X5020031)〕

3/6

（ビッグエンディアン）■■生成されるスクリプト●生成されるスクリプト例#f:ENCODE *#LOOP

受信データに「*」が含まれた場合、ログデータは「**」に置き換えて記録する（エンコード機能を設定）。
#END までを繰り返し。

#WAIT TIME 1S#LOG *_:010400000008F1CC設定された時間待つ。
「_」はフレーム番号に置き換える。
設定されたクエリーを送信する。

・・・

フレームの数だけ続く。

#END＃LOOP の終了。

●フレームの分離について
クエリーの送信に先立って、開始マーク「*_」が記録されます（「_」はフレーム番号）。
レスポンス中に「*」が含まれた場合は「**」に置き換えられます（エンコード機能）。
Modbus RTU では一定時間受信が無いことで、フレームの区切りを判断しなければなりません。
しかしＳＤロガーで記録されたデータには、時間経過は失われているので、フレームの開始の判断が難しくなります。
ロギングの開始から全く冗長な受信が無い場合は、受信バイト数で判断できないこともありませんが、ひとたび狂うと後を続けるのが難しくなります。
そこでクエリーの送信前に開始マーク「*_」をログデータに記録します。
データを解析する側は、「*_」を見つけることでフレームの開始を知ることが出来ます。
しかしそれをすると、Modbus 機器が返すレスポンス自身に「*_」が含まれると区別がつかなくなります。
そのためエンコード機能を使います。エンコード機能を使い、本来のデータに「*」が含まれる場合はふたつの「**」に置き換えて記録します。
データを解析する側は、「*_」は開始マークとして認識ますが、「**_」は本来のデータ（「*_」）だと認識します。

ＭｄｏｂｕｓＲＴＵログ支援ソフトの使い方〔LogFriendForModbusRTU(X5020031)〕

4/6

■■設定例(入力レジスタ)※つぎのように定義された入力レジスタ値を取得する例を示します。
※ノードアドレス=1、待ち時間＝1 秒の場合。
●入力レジスタの定義
アドレス

説明

30001
30002
30003
30004
30005
30006
30007
30008
30009
30010
30011
30012

値Ａ： 符号あり整数値（16 ビット）
値Ｂ： 符号なし整数値（16 ビット）
値Ｃ： 浮動小数点値（単精度）
値Ｄ： 浮動小数点値（倍精度）

値Ｅ： 符号あり整数値（32 ビット）
値Ｆ： 符号なし整数値（32 ビット）

●設定例
Frame[0]Node1Function

Input

NodeView

Y

FunctionView

Y

Register1

Value[0]
Title

値Ａ

Type

Int16

EndianBig

Value[1]
Title

値Ｂ

Type

UInt16

EndianBig

Value[2]Title値ＣType

Float

EndianBig

Value[3]
Title

値Ｄ

Type

DoubleEndianBig

Value[4]
Title

値Ｅ

Type

Int32

EndianBig

Value[5]
Title

値Ｆ

Type

UInt32EndianBig

WaitTime…
Value

1

UnitS

ＭｄｏｂｕｓＲＴＵログ支援ソフトの使い方〔LogFriendForModbusRTU(X5020031)〕

5/6

■■設定例２(コイル)※つぎのように定義されたコイルの値を取得する例を示します。
※ノードアドレス=1、待ち時間＝1 秒の場合。
●コイルの定義

アドレス

説明1234

コイルＡ
コイルＢ
コイルＣ
コイルＤ

●設定例
Frame[0]Node1Function

Coil

NodeView

Y

FunctionView

Y

Register1

Value[0]
Title

コイルＡ

Type

Bit

EndianBig

Value[1]
Title

コイルＢ

Type

Bit

EndianBig

Value[2]Title

コイルＣType

Bit

EndianBig

Value[3]Title

コイルＤType

Bit

EndianBig

WaitTime…
Value1

UnitS※Endian の設定は無視される。
■■その他
ModbusRTU ログ支援ソフト（LogFriendForModbusRTU）は、弊社製品でデータ収集を行なう目的でのみ、無償でご使用いただけます。
その他の目的には、ご使用にならないようにお願いいたします。

株式会社データ・テクノ
京都市下京区西七条東御前田町４８番地〒600-8898 TEL:(075)313-3275 FAX:(075)314-0576
http://www.datatecno.co.jp/
・本取扱説明書の内容は、改良のため予告なく変更することがあります。

ＭｄｏｂｕｓＲＴＵログ支援ソフトの使い方〔LogFriendForModbusRTU(X5020031)〕

6/6