Modbusはシリアル通信プロトコルであり、Modicon社(現在のシュナイダーエレクトリック)が1979年にプログラマブルロジックコントローラ(PLC)を用いた通信のために発表した。現在、Modbusプロトコルは産業分野における通信プロトコルの業界標準となっており、産業用電子機器間の一般的な接続方法となっている。
Modbusプロトコルは産業界で最も広く使用されているプロトコルであり、以下の特徴が必要です。
1、無料:これは最大の前提であり、任意の製品は同じですが、最初の使用量を得るために無料を通じてのみです。
シンプル:Modbusプロトコルフレームフォーマットはシンプルでコンパクトで、ユーザーが理解しやすく、メーカーが統合しやすい。
3、インターフェイス:Modbusプロトコルは単なるプロトコルであり、アプリケーション層プロトコルに属するため、シリアルポート(485/232/422)だけでなく、イーサネット、光ファイバー、Bluetooth、ワイヤレス伝送でも使用できます。
ストアの分類
Modbusプロトコルを一般的に紹介するとき、私はModbusプロトコルの作成者の立場に立ち、多くの人にとってより理解しやすいものといくつかのものを組み合わせて説明するのが好きです。
Modbusプロトコルがないと仮定すると、プロトコルを作りたいと思います。まず、プロトコルの目的がデータ転送であることを明確にします。したがって、異なるデータ型をより良く格納するために、ブール型と非ブール型のデータを別々に格納します。
コイルとレジスタ、これはしばしば多くの人によって批判され、翻訳すべきではなく、理解しにくいと感じます。電気的な観点から、電気制御ループでは、一般的に制御を達成するためにコンタクタまたは中間リレーに依存しており、コンタクタまたはリレーは最終的にコイルの電力と損失に依存して接点の開閉を制御するので、コイルはブール値を表します。コンピュータ内のレジスタはデータを格納するために使用されるので、非ブール値はレジスタに置かれます。
これは、シーメンスI/Q/Mがコイル、V/T/C/DBがレジスタ、三菱X/Yがコイル、D/W/Hがレジスタ、オムロンCIOがコイル、D/W/Hがレジスタ、オムロンCIOがコイル、D/W/Hがレジスタと比較することができる。
シーメンスを例にとると、IとQはどちらもコイルを表しますが、分業は異なります。Iは入力、Qは出力を表し、入力はメモリ領域の値が外部デバイスによってアクセスされなければならないことを意味し、読み取り専用であり、出力は外部デバイスへの出力結果を表し、読み取り可能です。
したがって、Modbusのコイルとレジスタは読み取り専用と読み取り専用でさらに細分化される必要があり、以下の表に示すようにModbusのメモリ領域が形成されます。
ストレージエリアコード
しかし、上記の表のストレージエリア名はフルネームであり、フルネームの開発と使用はより面倒になりますので、シーメンスI/Q/Mのように、エイリアスを与える必要があります。これらはストレージエリアにシーメンスのコードですので、Modbusはこれらのストレージエリアにコードを与える必要があります。
実際には、私たちの名前と小さな名前と同じで、名前は正式な機会に使用され、日常的な機会に、我々は一般的に小さな名前を使用することができます。
ストアの範囲
どのようなストレージエリアにも範囲制限があります。シーメンスのMゾーンは8192まで、三菱のXゾーンは2048まで、Modbusの各ストレージエリアにも制限なく使用できない範囲を指定する必要があります。
Modbusはこのように規定されており、各ストレージの最大範囲は65,53 6であり、これは非常に大きな範囲です。
三菱のXゾーンを例にとると、最大範囲が20 48の場合、X 0-X 2 0 4 7これらのアドレスにしかアクセスできないことを意味します。X0、X 2 0 4 7は、しばしばPLCアドレスと呼ばれるものですが、このアドレスはどのように構成されますか?これは、ストレージ番号とアドレスインデックスで構成されており、そのようなPLCアドレスを絶対アドレスとして理解し、アドレスインデックスを相対アドレスとして理解します。
いわゆる絶対アドレスは、アドレス名だけで、ストレージの数番目のデータが何であるかを知ることができ、この数番目は相対アドレスであるため、絶対アドレスは一意であり、相対アドレスは各ストレージにあります。
Modbusの絶対アドレスと相対アドレスはどうでしょうか?
絶対アドレス=市外局番+相対アドレスの公式に従います。
しかし、いくつかの異なる点があります。例えば、ホールドレジスタの場合、最初の絶対アドレスは400001ですが、この場所は400000ではありません。これはModbusプロトコルによって決定され、他のストレージ領域も同様です。
Modbusストレージの範囲は次の図のようになります。

上記のように、655 3 6の範囲は非常に大きいですが、実際の使用では、一般的にはそれほど多くのアドレスを使用することはできません。一般的に、10,000以内で十分です。したがって、便宜上、以下の図に示すように、短いアドレスモデルがあります。

関数コードの特徴
関数コードの概念は、理解することができます、最初に私たちの意図に戻ると、プロトコルの目的は、データを読み取り、データを書き込むことです、我々は4つのストレージ領域を決定し、異なるデータタイプを格納し、次に、これらのストレージ領域を読み書きする必要があります、入力コイルストレージ領域を読み取り、出力コイルストレージ領域を読み取るなど、多くの異なる動作を生成する可能性があります。これは2つの異なる動作です。同様に、入力コイルメモリ領域を読み取り、出力コイルメモリ領域を読み取ると、より面倒になりますので、各形成にコードを割り当てるだけで、このコードが機能コードになります。
もう一度見てみましょう何種類の行動があるのでしょうか?
読み取りと書き込みは2つの動作で、メモリ領域は4つありますが、入力コイルと入力レジスタは読み取り専用であるため、書き込みができないことがわかっています。これらの2つを除くと、次の図に示すように、6つの異なる動作が発生するはずです。
しかし、Modbusプロトコルでは、出力コイルへの書き込みと保持レジスタへの書き込みの2つの動作をさらに細分化しており、単一の書き込みと複数の書き込みを含むため、元の6つの動作は8つの動作になり、各動作にはコードが割り当てられ、次の図に示すように機能コードのリストが形成されます。
Modbus仕様の機能コードは、実際には8つ以上であり、診断や例外コードに使用される機能コードもありますが、一般的にはめったに使用されず、これらの8つの機能コードが最も重要なコア機能コードです。
契約の分類
Modbusは厳密には標準化されたプロトコルであり、特定のプロトコルではない。デバイスAとデバイスBはModbusプロトコルを介して通信するとよく言われますが、これは厳密ではありません。
Modbusプロトコルには、ModbusRtu、ModbusAscii、ModbusTcpの3つのプロトコルがあります。
一般的に、ModbusRtuとModbusAsciiはシリアルポート上で動作するプロトコルであり、ModbusTcpはイーサネット上で動作するプロトコルですが、これは絶対的ではありません。ModbusRtuとModbusAsciiはイーサネットまたはファイバー上で動作することができます。同様に、シリアルポートネットワークでは、プロトコルは単なる仕様であり、通信媒体を制限しないため、ModbusTcpのプロトコルを使用することができます。
メッセージ形式
前にModbusにはModbusRtu、ModbusAscii、ModbusTcpの3つの異なるプロトコルがあると述べましたが、これら3つのプロトコルのメッセージフォーマットも異なります。
ModbusRtuのメッセージ形式は以下の通り。
パート1:スレーブアドレス、1バイト
第2部:機能コード、1バイト
第3部:Nバイトのデータ部分
パート4:チェック部分、CRCチェック、2バイト
2. ModbusAsciiのメッセージ形式は以下の通りです。
第1部開始文字
第2部:スレーブアドレス、2バイト
第3部:機能コード、2バイト
第4部:Nバイトのデータ部分
第5部:検証部、LRC検証、2バイト
第6部终了文字CR LF
3. ModbusTcpのメッセージ形式は以下の通りです。
第1部トランザクション識別子、2バイト
第2部:プロトコル識別子、2バイト
第3部:長さ、2バイト
第4部:ユニット識別子、1バイト
第5部:機能コード、1バイト
第6部:Nバイトのデータ部分
ソフトウェアのデバッグ
Modbusの学習コストは低く、プロトコルは無料で公開されており、Modbus中国語プロトコルドキュメントに直接アクセスできます。
同時に、シミュレーションを実行できるデバッグソフトウェアもたくさんあるので、ハードウェアを購入せずにModbusプロトコルを学ぶことができます。
【プロトコル文書とデバッグソフトウェア】はアシスタント教員にお問い合わせください。。
Modbus学習は関連するデバッグソフトウェアと組み合わせる必要があり、乗数効果を達成できます。
ModbusPoll、ModbusSlave、VSPDを学ぶために必要な3つのアーティファクトは、ModbusPollソフトウェアは主にModbusマスターまたはModbusクライアントのエミュレーションに使用され、ModbusSlaveソフトウェアは主にModbusスレーブまたはModbusサーバーのエミュレーションに使用され、VSPDフルネームConfigure Virtual Serial Port Driverは、コンピュータの仮想シリアルポートドライバを作成するために使用されます。
ハードウェアを組み合わせたい場合でも、Modbusプロトコルをサポートするデバイスはたくさんあります。PLCの様々なブランド、メーターの様々なブランド、温度と湿度センサ、トラフィック計などは、Modbusプロトコルをうまくサポートできます。
发表回复