s
top_logoL   top_logoR
ホーム | 製品情報 | ソリューション | ニュース | サポート | お問い合わせ | サイトマップ
製品情報
検索
カタログ請求
catalog
特集記事
ポリシー
運営元
IBSlogo
本サイトはアイ・ビー・エス・ジャパン株式会社によって、運営されております。
 
テクニカル・チュートリアル  -  MGate
 
Modbusについて
Modbusは、工業デバイス間のコミュニケーション手段として世界で最もポピュラなプロトコルです。
PLCと上位コンピュータとのデジタル通信規格としてMODICON社が1978年に公開した通信プロトコルです。元々、シリアルインタフェースのために設計されたModbusは、イーサネット技術に適合され、より高度なシステムとアーキテクチャで大きな役割を果たしています
 
Modbusネットワーク上のルーティングおよびシフティングスレーブID
Modbusネットワークは、IDベースのコントロールネットワークです。この意味は、ネットワークを介して送られるすべてのメッセージは、目標スレーブにIDタグが付けられます。ModbusネットワークIDは、0〜255をアレンジすることができます。0は、ブロードキャストメッセージ・アドレスとして使用され248〜255は、将来使われるために予約がされています。従って、実際のリーガルIDのレンジは、1〜247が使われることになります。
 
一方、スレーブは、IDと一体化されますがネットワークでのマスタは、IDを必要としません。事実、Modbusは、マスタからスレーブ(または、クライアントからサーバ)のコミュニケーションを実行します。その場合ネットワークのマスタは、スレーブにリクエストを送ります。マスタは、お互いにコミュニケーションをしません。そして、同じルールをスレーブにも適用します。
 
昔の技術ではModbusプロトコルは、デバイスがマスタとスレーブのペアでインストールされる必要がありました。
 
マルチドロップのRS-485ネットワークでは、最大31台のスレーブ・デバイスをシリアルにチェーン接続がされます。しかし、この場合、同時に1台のマスタしかネットワークに接続することができません。そこでイーサネットマスタにスレーブを接続する最も論理的なやり方として以下の図のように1ポートのゲートウェイを使用する方法があります。
 
ゲートウェイは、メッセージリレー装置のように動作します。イーサネットからのすべてのリクエストは、ゲートウェイの1つのシリアルポートを通して送られます。しかし、セットアップに制限がありRS-485シリアルネットワークへの接続は、最大31台あるいは、より少ないスレーブ接続しかできません。一方、多くのノードをコントロールしたいシステムの場合は、下図のようにマルチポートゲートウェイを使用することができます。
 
マルチポートModbusゲートウェイを使用する場合、ゲートウェイがどのように正しくリクエストをシリアルポートに対してディスパッチするかが問題です。上図においてModbusゲートウェイ上のポート1を通してID=2へのリクエストを送ります(提供されたポート1は、ID=2のラベルのスレーブに接続するポートです)。
 
ソリューション1:
各シリアルポートに1つのTCPソケットを割り当てることにより達成する方法です。この場合、異なる接続と区別するべく異なったTCPポートナンバを使用するためにTCPマスタのプログラムを変更する必要があります。例えば、TCPポート502にシリアルポート1、TCPポート503にシリアルポート2を割り当てることができます。
 
しかし上記ソリューションは、決して理想的とはいえません。何故ならTCPマスタがエンベデッドコンピュータの場合にはソフトウェアの変更は難しいか不可能かもしれません。
 
ソリューション2:
ソリューション2は、Modbusゲートウェイがオペレーション実行中にスレーブの位置を“学習する”ものです。この場合、ゲートウェイは、メッセージをすべてのシリアルポートにブロードキャストします。そして、もしシリアルポートの1つから応答があった場合、ゲートウェイはその結果を記録します。 “学習”の段階後、すべてのリクエストは、正しいシリアルポートの管理ができます。
 
この見かけ上のソリューションの欠点は、Modbusネットワークの変更を行う場合に生じます。例えば、別のスレーブをゲートウェイのシリアルポートの1つに接続した場合、自動的に学習ができているでしょうか?
多分、ご存知と思いますが、レガシーデバイスのいくつかのメーカは、1つの固定されたIDを製品に付ける設計をしています。これは初期の段階では完全にリーズナブルな設計とされていました。その後1979年にModbusがModiconにより開発されましたが、これは単にシリアルネットワークのために設計されたものです。もし1台のスレーブが1つのマスタに接続されるなら何故、異なるスレーブが異なったIDをもっている必要があるのでしょうか?
 
確かに現代では、ユニークなIDを夫々もつModbusデバイスを使用することによりシステムの展開がより便利となっています。事実、4ポートModbusゲートウェイにおいてIDが付加されたRS-485デバイスは、4個のディップスイッチを使用して設定できます。 指摘したいポイントは、もしゲートウェイがオペレーション走行中にスレーブIDを学習すると下図で示したアーキテクチャのように夫々のIDが重複して使用されるので接続問題を解決することができません。
 
TCPマスタは、異なったバーチャルIDを使用することで異なったスレーブを特定します、そして、スレーブは、オリジナルのIDを使用することで通信します。 ゲートウェイは、マスタスレーブとマスタの間のブリッジとして作動動作します。
 
IDマッピングとシフト機能により既存のデバイスまたはソフトウェアは、変更なしに異なったModbusネットワークを統合することができます。
 

 
Modbusレスポンスタイムについて
Modbusは、工業デバイス間のコミュニケーション手段として世界で最もポピュラなプロトコルです。 PLCと上位コンピュータとのデジタル通信規格としてMODICON社が1978年に公開した通信プロトコルです。元々、シリアルインタフェースのために設計されたModbusは、イーサネット技術に適合され、より高度なシステムとアーキテクチャで大きな役割を果たしています。しかしModbusのインテグレータは、レガシーシステムのアップグレードまたは最新のネットワークに統合する際に起きるレスポンスタイムの問題に頭を悩ましています。特に適切なレスポンスのタイムアウトセッティングを決定するのは、しばしば誤解され、または見落とされるほど難しいタスクです。
 
Modbusプロトコルによると、すべてのデバイスは、マスタあるいはスレーブのどちらかとして分類されます。マスタは、すべてのコミュニケーションを開始してスレーブに対して単にリクエストを送ることによって交信します。スレーブは、パッシブでありマスタのリクエストだけに応じます。マスタは、ブロードキャストを除きスレーブに送信する全てのリクエストに対してスレーブからはマスタに対してレスポンスを返します。マスタは、ブロードキャストのリクエストをすべてのスレーブに送ることができます。その場合、各スレーブは単に従うだけでレスポンスは返しません。
 
ノーマルの場合
マスタは、スレーブにリクエストを送ります。スレーブは、リクエストされたインフォメーションによりレスポンスを返します。
 
異常の場合
マスタは、スレーブにリクエストを送ります。スレーブは、コマンドをサポートせずあるいはエラーを検出し、そして異常をマスタに送ります。
 
ブロードキャスト
マスタは、リセットコマンドなどのブロードキャストコマンドを送ります。ネットワークのすべてのスレーブは、コマンドに従いレスポンスをマスタに返しません。
 
オリジナルのModbusプロトコルは、同時のリクエストあるいは同時マスタに対応する設計がされていないので一度にネットワーク上で1つのリクエストしか扱うことができません。マスタがリクエストをスレーブに送るときスレーブがレスポンスを返した後でなければ他のコミュニケーションを開始しません。Modbusプロトコルは、スレーブがデバイスあるいはラインの故障によりレスポンスを返せない時に特定されます。この機能は、若しレスポンスをある時間以内に受信できない時、マスタはリクエストに見切りをつけます。ワイドレンジのデバイス、ボーレート、ライン状態を勘案して実際のレスポンスタイムアウト値は、決定する製造メーカのために開放されています。
 
レスポンスタイムアウト
マスタは、リクエストを送ります。 スレーブは、レスポンスタイムアウト機能によって指定された時間内にレスポンスを返せない場合、マスタは、別のリクエストを開始するためにレスポンスに見切りをつけて操作を再開します。
 
レスポンスタイムアウトのための基準を指定しないことによってModbusプロトコルは、広範囲にわたるデバイスおよびシステムに適応することができますがタイムアウト基準については、レガシあるいは専用のデバイスシステムをオペレーションするインテグレータにとっては、更なるチャレンジとなります。
 
いかに1つの値が大きな頭痛に繋がるか
最適のレスポンスタイムアウト値を決定するのは、システムの操作効率を考えるとき不可欠なことです。タイムアウトをあまりに低く設定するとスレーブにレスポンスを返す時間を与えないのでマスタは、直ぐにレスポンスに見切りをつけてしまいます。レスポンスを終了しないで、このまま繰り返されることによりシステムは使用不可能になります。マスタが既に別のリクエストを開始した後に予期せぬ問題を引き起したスレーブからレスポンスを返す事になるかも知れません。同様に、タイムアウト値をあまり高く設定すると逆にマスタは、ディスコネクト、ラインの不具合など故障しているスレーブからのレスポンスを長い間待つことになり貴重なシステム資源を無駄にします。また、ネットワークトラフィックの固有の遅れの問題によりModbusのシリアルデバイスは、適切にイーサネットデバイスとインタラクトすることができるように効果的タイムアウト値をセットすることは更により重要です。
 
各スレーブ・デバイスはマスタからのリクエストを処理するためにデバイスがどのように設計されたかによって異なった時間を必要とします。例えば、シンプルなRTUが単にセンサの現在の読み取り値だけをリポートするだけの場合は、即座にレスポンスを提供できます。しかし、より高性能のRTUが若し数個の要素をコーディネートあるいはデータの処理を必要とするなら長い時間を費やします。この理由で、通常、デバイスがリコメンドするレスポンスタイムは、処理の要求および速度に基づいて製造メーカによって提供されます。マスタの適切なタイムアウト設定を決定するためにシステムインテグレータは、それぞれのスレーブのリコメンドするレスポンスタイムに基づきボーレートおよびアプリケーション要求に基づく更なる計算を適用します。シリアル・ライン上で最大31台のスレーブの場合、マスターデバイスのための正しいタイムアウトのセッティングを見つけることは、大変苦労する作業となる可能性があります。
 
個々に設計がされているデバイスに対応するときインテグレータは、更なる面倒な問題に直面します。デバイスがクローズドシステムのために設計されている場合、製造メーカの最適のタイムアウト設定は、既にデバイスにコード化してセッティングされています。リコメンドするタイムアウト値を提供されていない場合、若しシステムのメンテナンス、拡張、アップグレードを必要とするときインテグレータは、タイムアウト値について計算する方法がありません。
 
個々の設計に基づいていないシステムにおいてインテグレータは、貧弱なしかも入手困難な技術資料のため問題に直面する場合があります。長年使用されているModbusネットワークをアップグレードしようとする場合、技術資料は既に廃棄され、あるいは誰も知らない場所に放置されていることにより見つけだすことは困難かもしれません。長い時間を費やして資料を見つけだす作業あるいは、それ自体が存在するかどうかを確認する必要があります。例え資料が見つかったとしてもリコメンドされたタイムアウト値を厳密に調べることは、非常に難しいかもしれません。
 
インテグレータは、どのようにレスポンスタイムアウトの問題を処理するか
インテグレータがModbusのインストール時やトラブルシューティングを必要とする場合、レスポンスタイムアウトは、しばしば無視されます。そして多くのインテグレータは、レスポンスタイムアウトそのもの自体が何であるかを知らないことが多くあります。代わりにシステムのボーレートは、システムが最終的なオペレーションがされるまで低く設定されるか、他にセットされるかもしれません。しかし、レスポンスタイムアウトが正しく設定されるなら、この種類の問題によるシステムのパフォーマンス低下に通じることを避けることができるでしょう。
 
技術資料がないままにインテグレータが最適のレスポンスタイムアウト設定を決定する必要があるとしたら、試行錯誤を必要とします。多くの場合、Modbusインテグレータの経験から一般的に使用された設定に基づく知的な推測とタイムアウトエラーのありそうな原因の知識力に依存することになります。しかし、最適値を見つけるためには、繰り返しのテストおよび調整が必要とされます。
 
レスポンスタイムアウト値に対する別なアプローチは、Modbus TCPネットワークのModbus RTU/ASCIIネットワークへ接続するModbusゲートウェイ機能が提案されています。典型的なアプリケーションとしてModbusゲートウェイは、2つのネットワークの間に置かれTCPマスタがリクエストをRTUスレーブに送ります。インテグレータは、レスポンスタイムアウト値を算出する代わりにゲートウェイは、TCPマスタからRTUドライバにリクエストを転送するために自動的にレスポンスタイムを追跡して、それ自体のレスポンスタイムアウトの設定としてRTUスレーブからのレスポンスを受信してダイナミックにアップデートします。
一方、この方法は、インテグレータとしてタイムアウト値がModbusゲートウェイによって自動的に設定されるので簡単ですが、いくつかの欠点があります。レスポンスタイムは、受信されたリクエストのために追跡されるだけであり、いくつかのスレーブは算出されたレスポンスタイムアウト値を代表していません。レスポンスタイムは送られるリクエストの種類に大きく依存し変動するのでタイムアウト設定は楽観的なものになるかもしれません。更に、常にModbusゲートウェイはパワーアップされます。初めは、レスポンスタイムアウト値を設定するためのデータがなくてもレスポンスタイムを追跡する必要が再度でてくるでしょう。
 
有望な新しいアプローチ
現在まで、Modbusシステムのために適切なレスポンスタイム値を決定するタスクは、腹立たしいぐらい難しいものです。Modbusのエキスパートは、タイムアウト値を算出するには3つの選択肢があると考えます:
  1. 多くの変数がある複雑な計算を行うこと。古い技術資料を隅々まで捜すこと
  2. 手間がかかっても試行錯誤の繰り返すこと
  3. 諦めてシステムのパフォーマンスを低下覚悟で受け入れること
一方、これらの課題を克服できるのはMoxaのブランドニュー製品“Modbusゲートウェイ”であり新しい有効的なソリューションを提供することができます。
 
この新しいアプローチは、一度にすべてのレスポンスを追跡して、リコメンドできるレスポンスタイム値を引き出すためにMOXA R&Dエンジニアにより開発された独自の公式(現在、パテント出願中)を使用することにより実現できます。
 
インテグレータは、ボタンをクリックします。するとModbusゲートウェイは、システムの各スレーブ・デバイスに対して認識されたModbusコマンドを送ります。各スレーブのレスポンスタイムは追跡され、次に慎重にチューンされた公式によりModbusゲートウェイのレスポンスタイムアウト値が設定されます。この方法は完全とするまで若干時間を要しますが、初度のインスタレーションの間、あるいは新しくスレーブ・デバイスをシステムに増設する間に必要とするだけです。ゲートウェイは、電源のOff時、Onにターンバック後の再度レスポンスタイムの追跡を必要としないとき設定を保持します。しかし、最も重要なことは、この新しいアプローチによりインテグレータがどんなModbusシステムのためにかかる多くの時間の削減と困難を乗り越え完全なレスポンスタイムアウトの設定を見つけ出しことが簡単になりました。
 
レスポンスタイムアウトの設定は、Modbusインテグレータには見かけと違って難しい問題でした。それを理解することなく多くのインテグレータは、不適当なタイムアウトセッティングによりシステム効率を損なわせていました。必要な技術資料が直ぐにでも利用できるときでも適切な値を見つけ出すことは難しくて時間のかかるプロセスでした。しかし、最大の理解とMoxaの新しいアプローチによりインテグレータは最終的に最も効果的にこの問題に対して取り組むことができるようになりました。
 

 
 
MOXA MGate MB3000は、IDマッピングとシフト機能の両方をサポートします。MOXA MGate製品に関する詳細な情報は以下アドレスをご参照ください。
 
MGate MB3000
MGate MB3000は、Modbus TCPをModbus RTUあるいはASCIIに接続するブランドニューのゲートウェイデバイスです。MB3000は、他のModbusゲートウェイに比べ簡単に使用ができ更に、オペレーションを簡素化する多くの高度な機能を備えています。
 
●自動レスポンスタイムアウト・キャリブレーション
多くのModbusスレーブ・デバイスは、デバイス製造者によって指定された必要な計算時間に基づいてリコメンドされたレスポンスタイムアウト値をもっています。しかし、手動であらゆるデバイスにこれらの値を設定するのは、難しくて、手間がかかります。 MGate MB3000は、自動的に各デバイスのレスポンスタイムアウト値を測定して設定することのできる特許申請中の機能によりこの困難を克服しました。
 
 
●異なるModbusネットワークを介しての複数台のマスタ
MGate MB3000は、各マスタあたり最大32の同時のリクエストが出されても同時に16のTCPマスタがサポートします。ASCIIおよびRTUマスタに関してMGateは、最大32の異なるIPアドレスをスレーブとして定義することができます。
 
 
スマートなルーティング
他のModbusゲートウェイは、1つの接続しかオープンすることができない役に立たないTCPマスタであるため各シリアルポートのために別々のソケット接続を必要とします。MGate MB3000は、スマートにルーティングをサポートするので1つのソケット接続がすべてのシリアルポート上のスレーブを制御するのに使用することができます。
 
 
マルチ言語サポート
MGateマネージャは、MB3000ゲートウェイのコンフィギュレーションおよびモニターリングを行うために設計されています。ユーティリティは、選択できる各国の言語を使って容易にカスタマイズすることができます。
 
 
● 利用できる製品
MGate MB3180/3480
スタンダード1/4ポートModbusシリアル⇒イーサネットゲートウェイ
 
 
Copyright © 2002- IBS Japan Co., Ltd. All Rights Reserved. Powered by XOOPS 2.0.7.3
s