Modbusの基礎を学ぶ:白も理解できる

無料無料技术资料

这篇内容可直接阅读,适合用于基础学习和検索引流。

Modbusの基礎を学ぶ:白も理解できる

Modbusは郵便配達人のようなもので、スマートホームデバイスや産業用制御システムなどの電子機器が情報を運ぶのを助けます。郵便配達人が送信者から受信者に手紙を送るように、Modbusはデバイス同士の通信や情報共有を支援します。

あなたの家にスマート電球があると想像してください。すべての電球は名前を持つ人のようなものであり、すべての名前(私たちはアドレスと呼びます)は一意です。このようにして、電球を制御したいときに、名前(アドレス)で電球を見つけることができます。Modbusでは、すべてのデバイスに固有のアドレスがあり、コマンドを送信したり、情報を取得したりするために使用します。

スマート電球には2つのことができます。現在の状態(明るさ、色など)を伝えることができ、コマンドに従って状態を変更することもできます。Modbusでは、これらの読み書き可能な状態をレジスタと呼びます。レジスタはメールボックスのようなもので、そこから手紙を取り出したり(データを読み取ったり)、中に手紙を入れたり(データを書き込んだり)たりできます。

Modbusでは、読み取りと書き込みの2つの基本的な操作があります。電球の現在の状態を知りたい場合は、“電球1、あなたが今何色になっているか教えてください”というメモを書くような読み取りコマンドを送ることができます。電球がこのコマンドを受信すると、現在の色に戻ります。同様に、電球の色を赤に変更したい場合は、“電球1、色を赤に変更してください”という書き込みコマンドを送ることができます。電球がこのコマンドを受信すると、色を変更し、操作が完了したと返信します。

お使いのデバイスとModbus通信するには、デバイスを接続する“ケーブル”(データケーブルやネットワークケーブルなど)と、Modbusコマンドを送受信できるツール(Modbusソフトウェアなど)が必要です。他の人に電話をかけるために携帯電話と電話番号が必要なのと同じです。これらのツールをセットアップしたら、デバイスとの通信を開始できます。

通信が正しいことを保証するために、ModbusはCRCと呼ばれる技術を使用してコマンドの整合性をチェックします。郵便配達人が手紙に破損や欠落がないかどうかをチェックする方法と考えてください。メッセージが送信されるたびに、手紙の消印のようなチェックコードが付属しており、手紙が完全であることを確認します。

Modbusプロトコルには2種類ある。

ModbusプロトコルにはModbus RTUとModbus TCPの2つの形式がある。Modbus RTUはシリアル通信(電話回線経由の通信など)によく使われ、Modbus TCPはネットワーク通信(インターネット経由で電子メールを送信するなど)によく使われます。選択するフォーマットは、主にデバイスがサポートする通信方法に依存します。

テストや通信にModbusソフトウェアを使用できます。Modbus PollやModScanのように、どちらも電話のようなもので、デバイスとの会話を支援します。このソフトウェアでは、デバイスのアドレス、実行したいアクション(読み取りまたは書き込み)、およびアクションしたいレジスタのアドレスを入力し、電話をかけるように“送信”ボタンをクリックするだけです。

例えば、電球1の色を読み取りたい場合は、電球のアドレス(1)をソフトウェアに入力し、“読み取り”アクションを選択し、色レジスタのアドレスを入力して“送信”をクリックします。ソフトウェアが自動的に対応するModbusコマンドを生成し、電球に送信します。電球はコマンドを受信すると、現在の色に戻ります。電球からの色メッセージが表示された場合は、おめでとう、あなたは電球との会話に成功しました。

同様に、電球1の色を赤に変更したい場合は、電球のアドレス(1)をソフトウェアに入力し、“書き込み”操作を選択し、色レジスタのアドレスを入力し、設定したい色(赤)を入力して“送信”をクリックします。ソフトウェアが自動的に対応するModbusコマンドを生成し、電球に送信します。電球がコマンドを受信すると、色を変更し、操作が完了したことをあなたに返します。電球の応答を見て、電球の色が赤に変わった場合は、電球の色を変えることに成功しました。

一般的に、Modbusは郵便配達人のようなもので、デバイスとの通信を支援します。最初の接触は少し複雑になるかもしれませんが、基本的な概念と操作に精通していれば、デバイスとの会話を開始し、あなたが望むように動作させることができます。携帯電話を介して友人と通信できるように、Modbusはあなたのデバイスと通信するのに役立ち、あなたの生活や仕事をより便利にします。

スマート電球の例に戻りましょう。電球デバイスがあり、明るさをチェックして色を変えたいとします。Modbusでは、0 3(読み取りと保持レジスタ)と0 6(単一レジスタへの書き込み)の2つの関数コードを使用します。

1. ** 関数コード03を使用してホールドレジスタを読み取り **

まず、電球の明るさを読みたいと思います。我々のデバイスでは、輝度情報はアドレス300 01の保持レジスタに格納されています。Modbusソフトウェアには以下の情報が入力されます。

デバイスアドレス:1(電球のアドレスが1であると仮定します)
機能コード:0 3(Read Hold Registerの略)
登録アドレス:300 01
次に、“送信”ボタンをクリックすると、ソフトウェアが自動的に対応するModbusコマンドを生成し、デバイスに送信します。“電球1、今の明るさを教えてください”というメモを書くようなものです。電球はこのコマンドを受信すると、現在の明るさに戻ります。

2. ** 関数コード0 6を使用して単一のレジスタを書き込む **

次に、電球の色を赤に変更します。弊社のデバイスでは、アドレス40001の保持レジスタに書き込むことで色情報を変更できます。Modbusソフトウェアには以下の情報が入力されます。

デバイスアドレス:1(当社の電球のアドレス)
関数コード:0 6(単一レジスタへの書き込み)
登録アドレス:40001
データ:赤(赤のコードが2であると仮定)
次に、“送信”ボタンをクリックすると、ソフトウェアが自動的に対応するModbusコマンドを生成し、デバイスに送信します。このプロセスは、“電球1、色を赤に変えてください”というメモを書くようなものです。電球がこのコマンドを受信すると、色を変更し、操作が完了したと返信します。

これらの関数コードを使用することで、デバイスと対話しているかのように、デバイスの状態を読み取って変更することができます。実際には、デバイスのユーザーマニュアルを参照して、デバイスのアドレスとさまざまなステータス情報に対応するレジスタのアドレスを確認する必要がある場合があります。この情報を知ったら、デバイスと通信して、あなたが望むように動作させることができます。

複数のレジスタを書く。

** 機能コード16でエアコンを制御する **

スマートエアコンがあり、スイッチの状態、動作モード、空気量などのパラメータを同時に調整したいとします。この場合、Modbusの関数コード16(複数のレジスタを書き込む)を使用できます。

設備住所:1(エアコンの住所が1であると仮定)
関数コード:16(複数のレジスタを書き込む)
レジスタアドレス:40001、40002、40003(40001が制御スイッチ、40002が動作モード、40003が風量調整のレジスタアドレスを想定)
データ:1、2、3(仮定1は電源オン、2は冷却モード、3は最大空気量)

それはエアコンに手紙を書くようなものです。“親愛なるエアコン、電源を入れて、冷却モードに調整し、空気の量を最大にしてください。手紙は郵便配達人(Modbusとも呼ばれる)を通じてエアコンに送られた。

“送信”ボタンをクリックすると、Modbusソフトウェアが対応するModbusコマンドを自動的に生成し、エアコンに送信します。エアコンがコマンドを受信すると、スイッチの状態、動作モード、空気量を同時に調整し、操作が完了したことを返信します。

関数コード16を使用することで、エアコンの複数のパラメータを同時に調整することができ、一度に1つのパラメータしか調整できないという問題を回避できます。

複数のレジスタを読む。

** ファンクションコード03を使用してエアコンの複数のステータス情報を読み取る **

ここで、エアコンの開閉器の状態、動作モード、風量などの情報を一度に読み取りたいとします。この場合、Modbusの関数コード0 3(リードホールドレジスタ)を使用できます。

設備住所:1(エアコンの住所が1であると仮定)
機能コード:0 3(Read Hold Registerの略)
開始レジスタアドレス:300 01(スイッチの状態を記録するレジスタアドレスを300 01と仮定)
読み取りレジスタ数:3(スイッチの状態、動作モード、空気量などの情報を読み取りたいので、それぞれ300 01、300 02、300 03の3つのレジスタに格納します)

エアコンにメッセージを送るようなものです。“エアコンの皆さん、現在のスイッチの状態、動作モード、空気量を教えてください。この情報は郵便配達人(Modbus)を通じてエアコンに送られます。

“送信”ボタンをクリックすると、Modbusソフトウェアが対応するModbusコマンドを自動的に生成し、エアコンに送信します。エアコンがコマンドを受信すると、スイッチの状態、動作モード、空気量が表示されます。

ファンクションコード03を使用することで、エアコンの複数のステータス情報を一度に読み取ることができ、一度に1つのステータス情報しか読み取ることができないという手間を省くことができます。実際の操作では、エアコンのユーザーマニュアルを参照して、エアコンのアドレスとスイッチの状態、動作モード、空気量などの情報に対応するレジスタアドレスを理解する必要があります。この情報を知ったら、Modbus経由でエアコンと通信し、エアコンの動作状況を確認することができます。

この資料を実際のプロジェクトに活用しませんか?

ツールセンターで電文解析、CRCチェック、デバイスデバッグを行うか、要件を送信して選定と接続のアドバイスを受けましょう。

エンジニア会員

この記事を実行可能なデバッグ資料に

登録すると、高度な電文解析、資料パックのダウンロード、コード例、エンジニアリングケース、優先技術サポートが利用可能に。実際のプロジェクト納品に最適です。

高度なツール無制限
資料パックとコードパック
完全なエンジニアリングケースライブラリ
優先技術サポート窓口

发表回复

あなたのメールアドレスアドレス不会被公开。 必須項目已用 * 标注