Modbus TCP

現在ご覧いただいているのは最新版の内容です(V2.2.1)。異なるバージョンを参照する場合は、画面右上のボタンから切り替えが可能です。

■ ご利用中のバージョンが分からない場合や、サポートが必要な場合はお気軽にサポート窓口までご連絡ください。

Mech-MSR は外部機器とModbus TCP通信を行うことができます。以下の内容を読む前に、Mech-MSR で 通信設定 を完了してください。

概要

Mech-MSR はModbus TCPプロトコルを使用してPLCと通信することをサポートしています。この通信方式では、Mech-MSR がサーバー(スレーブ)、PLC がクライアント(マスター)となります。すべてのリクエストはPLCによって送信され、Mech-MSR が応答します。

Mech-MSR で Modbus TCP 通信サービスを有効にすると、ソフトウェアはポート 502(デフォルト)で1つ以上のModbusクライアントからの接続を待機し始めます。

通信フロー

Modbus TCP通信は、下図のようなフローで行います。

各信号の意味については、入力・出力信号一覧 をご参照ください。
handshake-workflow

入力・出力信号一覧

Mech-MSR は、以下の標準的な Modbus ファンクションコードをサポートしており、保持レジスタ(Holding Registers) へのアクセスに使用されます。

ファンクションコード 説明

0x03

保持レジスタの読み取り

0x06

単一の保持レジスタへの書き込み

0x10

複数の保持レジスタへの書き込み

保持レジスタのアドレスは論理アドレス(表示アドレス)であり、例えば 4000140005 などです。先頭の4 は、レジスタが 4x アドレス空間(保持レジスタ) に属することを示しており、その後の番号がレジスタ番号です。

実際の通信ではベースアドレスとして1が使用されるため(つまり、保持レジスタのアドレスは 40001 から始まる)、次のように換算されます:実アドレス = 表示アドレス - 40001。例えば、表示アドレス 40001 に対応する実アドレスは 0、表示アドレス 40005 に対応する実アドレスは 4 です。

入力(PLC から Mech-MSR へ) 出力(Mech-MSR から PLC へ)

モジュール

名前

バイト数

保持レジスタのアドレス(4x)

モジュール

名前

バイト数

保持レジスタのアドレス(4x)

CONTROL_INPUT

有効化

1 バイト

40001

CONTROL_OUTPUT

ハートビート

1 バイト

40065

コマンドトリガー

コマンドトリガー ACK

データ読み取り完了

データ準備完了

出力データリセット

コマンド実行完了

予約語

予約語

予約語

予約語

予約語

予約語

予約語

エラー

予約語

3 バイト

先頭1バイト:40001、後続2バイト:40002

全体判定結果

1 バイト

40065

予約語

予約語

予約語

予約語

予約語

予約語

予約語

予約語

2 バイト

40066

COMMAND

コマンドコード

2 バイト

40003

STATUS_CODE

ステータスコード

2 バイト

40067

COMMAND_PARAM

コマンドパラメータ1

2 バイト

40004

RESERVED

予約語

2 バイト

40068

コマンドパラメータ2

2 バイト

40005

JUDGE

ID 1の判定結果

ID 2の判定結果

ID 3の判定結果

...

8 バイト

40069~40072

コマンドパラメータ3

2 バイト

40006

コマンドパラメータ4

2 バイト

40007

コマンドパラメータ5

2 バイト

40008

コマンドパラメータ6

2 バイト

40009

VALUE

ID 1の測定結果

ID 2の測定結果

ID 3の測定結果

...

256 バイト

(4 バイト × 64)

40073~40200

コマンドパラメータ7

2 バイト

40010

コマンドパラメータ8

2 バイト

40011

コマンドパラメータ9

2 バイト

40012

コマンドパラメータ10

2 バイト

40013

VAR_INPUT

変数1

4 バイト

40014~40015

変数2

4 バイト

40016~40017

変数3

4 バイト

40018~40019

変数4

4 バイト

40020~40021

変数5

4 バイト

40022~40023

変数6

4 バイト

40024~40025

変数7

4 バイト

40026~40027

変数8

4 バイト

40028~40029

変数9

4 バイト

40030~40031

変数10

4 バイト

40032~40033

RESERVED

予約語

62 バイト

40034~40064

入力(PLC から Mech-MSR へ)

CONTROL_INPUT(入力制御)

アドレス データ 説明

0.0

有効化(ブール値)

「有効化」信号が1に設定されているときのみ、他の入力信号が有効とみなされます。

0.1

コマンドトリガー(ブール値)

コマンドトリガー信号が 0 から 1(立ち上がり)に変わるとき、Mech-MSR はコマンドコードとコマンドパラメータを読み取ります。Mech-MSR が コマンドトリガー ACK 信号を返すと、コマンドトリガー信号を 0 に設定できます。

0.2

データ読み取り完了(ブール値)

PLC がデータの読み取りを完了したら、この信号を 1 に設定します。PLC が データ準備完了 信号が0に変わった後、この信号を 0 に設定できます。

0.3

出力データリセット(ブール値)

この信号が1に設定されると、PLC が受信した判定結果と測定結果(出力)がクリアされます。この時、PLC は新しいコマンドを送信できます。関連するステータスコード信号もリセットされます。

0.4

予約語(ブール値)

予約されたフィールドとなります。

0.5

予約語(ブール値)

予約されたフィールドとなります。

0.6

予約語(ブール値)

予約されたフィールドとなります。

0.7

予約語(ブール値)

予約されたフィールドとなります。

1.0~3.7

予約語(バイト)

予約されたフィールドとなります。

COMMAND & COMMAND_PARAM(コマンドコードとコマンドパラメータ)

現在のプロトコルでサポートされているコマンドと対応するコマンドコード(COMMAND)、コマンドパラメータ(COMMAND_PARAM)、および説明は以下の表の通りです。

コマンド COMMAND COMMAND_PARAM 説明

execute

1

プロジェクト番号、1 回に1つのみ設定可能

プロジェクトの実行をトリガーし、そのプロジェクトの判定結果と測定結果を取得するために使用されます。

trigger

2

プロジェクト番号、1 回に 1〜4 個設定可能

プロジェクトの実行をトリガーするために使用されます。

return

3

プロジェクト番号、1 回に1つのみ設定可能

指定したプロジェクトの判定結果と測定結果を取得するために使用されます。

judge

4

指定したプロジェクトの全体判定結果または個別の測定項目の品質判定結果を取得するために使用されます。

value

5

主に指定されたプロジェクトの測定値を取得するために使用されます。

recipe

6

プロジェクト番号、パラメータレシピ番号

プロジェクトに使用するパラメータレシピを切り替えるために使用されます。

solution

7

ソリューションID

ソリューションを切り替えるために使用されます。

SetNumVar

8

グローバル変数番号、1 回に1つのみ設定可能

数値型のグローバル変数に値を設定するために使用され、変数値は VAR_INPUT を通じて入力されます。

GetNumVar

9

グローバル変数番号、1 回に1つのみ設定可能

数値型のグローバル変数の値を読み取るために使用され、読み取り結果は VALUE を通じて返されます。

VAR_INPUT(変数入力)

SetNumVar コマンドを実行する際、設定する値は VAR_INPUT に書き込まれます。

保持レジスタのアドレス(4x) データ 説明

40014~40015

変数1(浮動小数点数)

数値型入力パラメータ1

40016~40017

変数2(浮動小数点数)

数値型入力パラメータ2

40018~40019

変数3(浮動小数点数)

数値型入力パラメータ3

40020~40021

変数4(浮動小数点数)

数値型入力パラメータ4

40022~40023

変数5(浮動小数点数)

数値型入力パラメータ5

40024~40025

変数6(浮動小数点数)

数値型入力パラメータ6

40026~40027

変数7(浮動小数点数)

数値型入力パラメータ7

40028~40029

変数8(浮動小数点数)

数値型入力パラメータ8

40030~40031

変数9(浮動小数点数)

数値型入力パラメータ9

40032~40033

変数10(浮動小数点数)

数値型入力パラメータ10

出力(Mech-MSR から PLC へ)

CONTROL_OUTPUT(出力制御)

アドレス データ 説明

0.0

ハートビート信号(ブール値)

システムのハートビート、1秒ごとに反転します。これにより、PLC と Mech-MSR 間の通信接続が正常か中断されているかを判定できます。

0.1

コマンドトリガー ACK(ブール値)

Mech-MSR が コマンドトリガー 信号の立ち上がりを受信すると、この信号が 1 に設定されます。コマンドトリガー信号の立ち下がり時に、この信号が 0 に設定されます。

0.2

データ準備完了(ブール値)

Mech-MSR が出力ポートにデータを書き込み、PLC が読み取るのを待ちます。データ読み取り完了 信号が 1 のとき、この信号は 0 に設定されます。

0.3

コマンド実行完了(ブール値)

コマンドの実行が完了すると、この信号が 1 に設定され、コマンドが処理されたことを示します。

0.4

予約語(ブール値)

予約されたフィールドとなります。

0.5

予約語(ブール値)

予約されたフィールドとなります。

0.6

予約語(ブール値)

予約されたフィールドとなります。

0.7

エラー(ブール値)

Mech-MSR が返すステータスコードが 1 以外の場合、エラーが発生したことを示し、この信号は 1 に設定されます。

1.0

全体判定結果(ブール値)

プロジェクトの総合判定結果で、1 は合格(OK)、0 は不合格(NG)となります。

1.1~1.7

予約語(ブール値)

予約されたフィールドとなります。

2.0~3.7

予約語(バイト)

予約されたフィールドとなります。

STATUS_CODE(ステータスコード)

Mech-MSR が返す可能性のあるステータスコードは以下の通りです。

  • 正常ステータスコード:1、コマンドが正常に実行されたことを示します。

  • エラーステータスコード:-1、-2、-3、-4、-5。詳細については、エラーコードの説明 をご参照ください。

JUDGE(判定結果)

出力管理 画面の「通信出力」タブに追加された測定項目の品質判定結果で、1 は合格(OK)、0 は不合格(NG)を示します。

単一のプロジェクトに対して、最大 64 個の判定結果を一度に出力することがサポートされています。

VALUE(測定結果)

VALUE モジュールは、以下のデータを返すことができます。

  • 出力管理 画面の「通信出力」タブに追加された測定項目の測定結果。

  • GetNumVar コマンドを実行する際、読み取られた数値型グローバル変数の値。

単一のプロジェクトに対して、最大 64 個の測定値を一度に出力することがサポートされています。

この情報は役に立ちましたか?

ご意見・ご要望がございましたら、以下よりお寄せください:

Mech-Mindは、お客様のプライバシーを重視しています

このサイトでは最高の体験を提供するために Cookie を使用しています。サイトの閲覧を続ける場合、Cookie の使用に同意したことになります。「拒否する」を選択すると、このサイトを訪れた際に追跡や記憶が行われないように単独の Cookie が使用されます。