Modbusプロトコルとのシリアル通信

Nov 22, 2024 伝言を残す

1。基本的な通信方法

 

並列通信とシリアル通信の2つの基本的な通信方法があります。

並列通信:これは、データの各ビットが同時に送信される通信方法です。

シリアル通信:これは、データが連続的に1つずつ送信される通信方法です。

 

2。2種類のシリアル通信

 

シリアル通信の2つの基本的な形式:同期通信と非同期通信。

非同期通信は、開始ビット、1〜9のデータビット、1〜2ストップビットで構成されるデータフレーム形式を送信し、スタートビットとストップビットに依存して同期し続けます。

同期通信データフレーム形式は、フレームの複数のバイトで構成され、各フレームにはスタートビットとして2つの(または1つの)同期文字があり、同期クロックをトリガーしてデータの送信または受信を開始します。

 

3。送信方向に従って分類

 

シリアル通信は、情報送信の方向に応じて、シンプレックス、半分二重、および全二重にさらに分類できます。通信プロセスの瞬間に、情報を一方の当事者Aから他方のパーティBにのみ送信できる場合、それは単純なものと呼ばれます。いつでも、AからBからBからAの両方に送信できる場合、一方向への伝送の存在によってのみ、Half-Duplex透過と呼ばれます。任意の瞬間に、AからBからBからAまでの線に双方向のシグナル伝達が存在する場合、それは完全な二重と呼ばれます。

 

4。シリアル通信インターフェイス

 

Rs {-232、rs -422、RS485などを含む電気標準とプロトコルに従ってシリアル通信物理インターフェイス。ここでは、主に最も一般的に使用されるRS485インターフェイスの一部について。

 

5。RS485インターフェイス回路

info-1-1

デモ回路として、SP485Rチップがよく使用され、実際のRS -485アプリケーション回路に直接埋め込むことができます。マイクロプロセッサの標準シリアルポートは、RXDを介してSP485RチップのROピンと、TXDを介してSP485RチップのDIピンに直接接続されています。

 

マイクロプロセッサからのR/D信号出力SP485Rチップトランスミッター/レシーバーを直接制御する「1」のR/D信号、SP485Rチップトランスミッターは有効です、レシーバーは禁止されています。 -485データバイトを送信するバス。 R / D信号のR / D信号は「{0}」であり、SP485Rチップ送信機が無効になり、受信機は有効です。 。この回路では、SP485Rチップ「受信機」と「送信機」の任意の瞬間は、作業状態のみを持つことができます。

 

ピンAに接続されたプルアップ抵抗R7およびピンBに接続されたプルダウン抵抗R8は、接続されていないSP485Rチップがアイドル状態にあることを確認するために使用され、RS -485の信頼性を改善するためのネットワーク障害保護を提供しますノードとネットワーク。

 

SP485Rがマイクロプロセッサ80C51チップのUARTシリアルポートに接続されている場合、SP485RチップのROピンを引き上げる必要はありません。それ以外の場合は、実際の状況に応じてROピンに約10kのプルアップ抵抗器を追加するかどうかを検討する必要があります。

6。シリアルModbus通信

 

産業通信回路におけるデータ交換のルールとしてのModbusは、さまざまな分野で広く使用されており、PLC、インバーター、フローメーター、温度、湿度などのModbus通信プロトコルを使用してデバイスと通信するのに便利です。さまざまなセンサーと楽器。

 

Modbus通信プロトコルは、ASCIIとRTU通信モードの2つのシリアル通信モードに分割されています。使用中は、通信モードとシリアルポートRS232、RS485通信パラメーター(ボーレート、パリティ、スレーブアドレス、データビット、停止ビット、バイトオーダー)を設定する必要があります。シリアル通信パラメーター。

 

modbusメッセージフレーム構造

 

住所 関数コード データアドレス データ1 データ... データn

CRC16

 

7。ModBusコマンドメッセージ
データを読む
マスターは送信します

住所 関数コード データはアドレスを高く開始します データはアドレスを低く開始します データの数が高い データの数が少ない CRC16ハイ CRC16低ビット

 

戻る:

住所 関数コード バイトの長さ データ1ハイ データ1低い データ2ハイ データ2低い

CRC16ハイ CRC16 LOW

 

8。Modbusキーの概念

 

(1)上部コンピューターは、通常、間隔が100ms以上になるたびにデータを読み取ります

(2)デバイスアドレス:modbusスレーブ通信アドレス、ネットワーク内に2つの同一のアドレスはありません。 (3)関数コード:modbusプロトコルによって指定された関数コード。

(4)住所とレジスタの数を登録します

マスターコマンドのパラメーターは、レジスタアドレスからのレジスタ、nレジスタのレジスタ長を読み取ります。 (5)奴隷応答データ

スレーブ応答データは次のとおりです。バイト数とn数値データ。

 

9。Modbusマスター共通操作

 

(1)最適化を読む:不連続アドレスのデータ読み取りでは、パッケージ化された読み取りかどうかにかかわらず、システムはパッケージ化された読み取りコマンドを使用して、一度に複数のアドレスの読み取りを完了します。

(2)最適化間隔を読む:最適化を読むとき、アドレス間の間隔がこの間隔よりも少ない場合、それらは一緒に詰め込まれ、複数の読み取りコマンドを使用して一度に読み取ります。

(3)最大パケット長:1つの通信に許可された最大データ長。

(4)バイト順序:{32-ビットのダブルワードのデコード順序を調整します。

32-ビット整数を例として、バイト順序の意味を説明する例として取得します。

1234:ダブルワードコンポーネントが直接デコードされていないことを示します。

たとえば、シリアルポートから読み取られたデータは0000 00 01は1です。

2143:高い単語と低い単語のダブルワードコンポーネントが逆になっていないことを示しますが、高および低バイト内の単語が逆になっていることを示します。

たとえば、シリアルポートから読み取られたデータは{{0}}は0x00000100(すなわち256)を意味します。

3412:ダブルワードコンポーネントの高い単語と低い単語が逆になっていることを示しますが、単語の高いバイトと低いバイトが逆になっていないことを示します。

たとえば、シリアルポートから読み取られたデータは{{0}}です。これは0x00010000(つまり65536)を意味します。

4321: ダブルワード要素の4バイトすべてが逆になっていることを示します。

たとえば、シリアルポートから読み取られたデータは{{0}}}は0x 0100 0000(ie 1677 721)を意味します。

 

10。ModbusCommissioning Software Modbus Pull

スレーブアドレスを1、ボーレート9600、すべてのリアルタイムデータを例として読み取ります。設定方法は次のとおりです。
表2によると:登録アドレスを開始4113レジスタの数は22です
1.セットアップ取得コマンドには、デバイスアドレス(1)、modbus関数コード(04)、登録アドレス(4113)、レジスタ長(2)、および取得間隔(1000)が含まれます。
info-1-1

2.シリアルポートデータを設定します
スレーブシリアルポート形式(1ビット開始ビット、8ビットデータビット、1ビット停止ビット、パリティなし)によると、次の図を設定します。
info-1-1

3.データ表示形式の設定
info-1-1

4。コミュニケーションの成功画面
info-1-1

お問い合わせを送る

whatsapp

電話

電子メール

引き合い