Witte Software® https://www.modbustools.com
2023-08-01
1.Modbus Poll
Modbus Pollは、さまざまな目的のために特別に開発された使いやすいModbusマスターシミュレータです。そのうち:
- Modbusスレーブデバイス設計者がプロトコルインタフェースを迅速かつ簡単にテスト
- Modbusデバイスやネットワークのフィールドテストが必要なオートメーションエンジニア
- デバイスから特定のサービスデータを読み取りおよび/または変更したいサービスエンジニア
- スレーブのModbusレジスタの変更
- Modbusデバイスからのログデータ
- トラブルシューティングとコンプライアンステスト
1.1とnbsp;Modbusポーリングのシステム要件
ハードウェア要件
プロセッサー。1 GHz以上を推奨
1 GB RAM
5 MBのハードディスク空き容量
1,024 x 768ディスプレイ解像度オペレーティングシステム要件
Windows 7からWindows 11までのすべてのバージョンのWindowsをサポートします。
Modbus Pollバージョン7はWindows XP 上で動作する。
1.1.1とnbsp;サイレントインストール
サイレントインストールでは、ユーザーの操作は不要で、ユーザーインタフェースはありません。ユーザーにはダイアログボックスが表示されず、質問もされません。
コマンドライン/Sスイッチを使用します。
1.2とユーザーライセンス契約の終了
Modbus Pollを使用する前に、以下の利用規約を注意深くお読みください。Witte Softwareとの別のライセンス契約がない限り、本ソフトウェアの使用は、本ライセンス契約および保証に同意したものとみなされます。本規約に同意しない場合は、直ちにソフトウェアの使用を中止する必要があります
著作権です。
Modbus Poll(“ソフトウェア”)は、Witte Softwareの著作権2002-2023、All Rights Reserved。
評価と登録。
フリーソフトウェアではない。お客様は、30日間、このソフトウェアを無料で評価することができます。
30日間の評価期間後に本ソフトウェアを使用する場合は、登録料が必要です。
30日間の評価期間後に本ソフトウェアを登録せずに使用することは、米国および国際著作権法に違反します。
本ソフトウェアの登録コピーは、1台以上のコンピュータで本ソフトウェアを個人的に使用する1人の個人が使用することも、複数の人が使用する1台のコンピュータにインストールすることもできますが、両方にインストールすることはできません。
注文と価格については、こちらをご覧ください。https://www.modbustools.com/order.html
Modbus Pollのライセンスは永久です。特定のメジャーバージョンのライセンスを購入し、ライセンス契約に従う限り、追加料金なしでそのバージョンを永久に使用することができます。
分布している。
ライセンスキーを含まない場合は、本ソフトウェアを複製し、オリジナルの正確なコピーを誰にでも提供し、改変されていないソフトウェアを電子的に配布することが許可されます。そのようなコピーの課金は特に禁止されます。
限定保証です。
本ソフトウェアは現状のまま提供されます。WITTE SOFT WAREは、商品性および特定目的への適合性に関する黙示保証を含むがこれらに限定されない、本ソフトウェアに関する明示または黙示のすべての保証を一切負いません。
損害賠償の制限
WITTE SOFT WAREまたは本ソフトウェアの作成、生産、配信に関与した者は、本ソフトウェアの使用または使用不能から生じる間接的、結果的または付随的損害について、たとえWITTE SOFT WAREがかかる損害または請求の可能性を知らされていたとしても責任を負いません。いかなる場合においても、請求の形式にかかわらず、WITTE SOFT WAREの損害に対する責任は、本ソフトウェアを使用するライセンスに対して支払われた価格を超えません。本ソフトウェアを使用する者は、本ソフトウェアの品質と性能に関連するすべてのリスクを負います
2. Modbusポーリング機能
2.1とタグ:接続
Modbus Pollは以下の方法でデバイスからデータを読み書きします。
- RS 232またはRS 485ネットワーク上のModbus RTUまたはASCII。(USB/RS232/485コンバータ
- Modbus TCP/IP
- Modbus over TCP/IP。(Modbus RTU/ASCIIはTCPパケットにカプセル化されている)
- プロトコルUDP/IP
- UDP/IPベースのModbus。(UDPパケットにカプセル化されたModbus RTU/ASCII)
2.2.とサポートされるModbus機能
- 01 0 x 01リードコイル
- 02 0x02離散入力の読み込み
- 03 0x03リードホールドレジスタ
- 04 0x04入力レジスタの読み取り
- 05 0 x 05 1つのコイルの书き込み
- 06 0x06 1つのレジスタに书き込み
- 08 0 x 08 Diagnosticsシリアルのみ
- 11 0x 0B通信イベントカウンタを取得シリアルのみ
- 15 0 x 0F複数のコイルへの書き込み
- 16 0 x 10複数のレジスタに書き込む
- 17 0x11サーバー IDのレポートシリアル回のみ
- 22 0 x 16マスク书込みレジスタ
- 23 0 x 17複数のレジスタの読み取り/書き込み
- 43 / 14 0x2B/0x0EデバイスIDの読み取り
2.3とnbsp;データ記録
- テキストファイルへのデータの記録
- データをExcelに直接記録する
2.4とnbsp;表示フォーマット
各セルは個別にフォーマットできます。
- 符号付き16ビットレジスタ
- 符号なし16ビットレジスタ
- 16進法
- Binaryシングル
- 任意のワード/バイト順序の32ビット符号付き整数
- 任意のワード/バイト順序の32ビット符号なし整数
- 任意のワード/バイト順序の64ビット符号付き整数
- 任意のワード/バイト順序の64ビット符号なし整数
- 任意のワード/バイト順序の32ビット浮動小数点数
- 任意のワード/バイト順序の64ビット倍浮動小数点
2.5とタグ:その他の機能
- Excel VBA、Pythonなどと接続するためのOLE/オートメーション用。
- データフローの監視
- 印刷と印刷プレビュー
- フォントの選択
- 条件付き色
- ズーム/Zoom
- リアルタイムグラフ
- ワークスペースの保存/オープン
- アドレススキャン
3.概要:概要
Modbus Pollはマルチドキュメントインターフェイスを使用する。つまり、複数のウィンドウを開くことができます。それぞれが異なるスレーブデバイスからの異なるデータコンテンツを同時に持っています。

この写真は2つの窓が開いている。1回はスレーブid1からの10 个のホールドレジスタを読み出し、もう1回はスレーブid2からの10 个のホールドレジスタを読み出す。
3.1といつでもどこでも支援
F 1を参照。現在選択されているアイテムに関連するトピックのコンテキスト依存ヘルプを取得できます。
SHIFT + F1カーソルがヘルプカーソル(矢印+疑問符)に変わる特別な“ヘルプモード”を呼び出します。次に、ユーザーは、メニュー項目、ツールバーボタン、またはウィンドウなど、ユーザーインターフェイス内の可視オブジェクトを選択することができます。これにより、選択したアイテムを説明するトピックに関するヘルプが開きます。
3.2とnbsp;セルの名前
ここに任意のテキストを入力して、値セルを指定できます。Excelのセルからテキストをコピー/ペーストすることもできます。
3.3とnbsp;値のセル
Modbusレジスタのデータ値を表示する。値のセルをダブルクリックすると、ダイアログが表示され、スレーブデバイスに新しい値を書き込むことができます。値のセルに数値を入力すると、ダイアログボックスも表示されます。値の書き込みに使用するModbus機能を選択可能。
[応答が成功したときにダイアログを閉じる]チェックボックスを使用すると、値が正常に送信されたときにダイアログを自動的に閉じることができます。これは、多くの値を変更したい場合に便利です。これにより、新しいセルをすばやく选択して、新しい値を再度入力できます。

3.4とnbsp;フォントの変更
フォントを変更するには、2つのオプションがあります。
- 変更するセルを选択し、右クリックします。
- 変更したいセルを選択し、メニュー →表示→フォントを選択します。

3.5と【条件付き色】
条件付きカラーを使用すると、特定の範囲内の値を視覚的に表示できます。3色から選択
- デフォルト色:条件付き色がtrueと評価されない場合に使用されます。
- ルール1:式がtrueと評価された場合、この色選択が使用されます。ルール1はルール2よりも優先される。
- ルール2:式がtrueと評価された場合、この色選択が使用されます。
7比較演算子
- 未使用。
- 等しい。
- より..。より良いです。
- より少ない。
- より大きいか等しい
- 以下または等しい
- そして、
データ型がfloatまたは32ビットlongの場合、“and”演算子は使用できません。“and”を選択すると、条件値は16進数で入力されます。セルと条件値のどちらかのビットが1の、その値はtrueと评価されます。
5.1とnbsp;色の例
セルの値が398 ~ 402の場合は緑色

3.6とタグ:Zoom
スケーリングを使用すると、元の値を人間が読める値にスケーリングできます。スケーリングは、符号付きおよび符号なしの16/32ビット整数にのみ適用されます。

(X1 Y1
2点X1、Y1とX2、Y2を通る
Slope=m=Y2−Y1X2−X1
直線の方程式
Y=m⋅(X−X1)+Y1
小数点以下の桁数。可能にする
Modbusサーバ/スレーブからの値をスケーリングするには、有効にする必要があります。16/32ビット整数表示形式以外を選択すると、スケーリングは自動的に無効になります。
3.7とリアルタイムグラフです。
グラフは、最大100,000点の12系列をリアルタイムで描画できます。
3.8。アドレスのスキャン。
アドレス範囲をスキャンして、デバイス内のすべての有効なアドレスのリストを取得します。
3.9と新しいウィンドウを開きます。
別のウィンドウを開くには、3つのオプションがあります。
- Ctrl+Nキー
- “ファイル”メニューから“新規”を選択
- 押して
toolbarの
4.接続ダイアログ
接続ダイアログを開くには、2つのオプションがあります。
- 略称はF 3。
- 接続メニューから接続を選択します

4.1とタグ:連絡
接続には5種類あります。
- Serialより:
シリアル回線経由のModbus。RS 232またはRS 485 USBシリアルコンバータが使用できる。 - Modbus TCP/IP:
MODBUS TCP/IPネットワークと通信する場合は、“TCP/IP”を選択します。この場合、スレーブIDはMODBUS TCP/IPで使用されるセルIDと同じです。
ポート番号は502です。
接続に失敗した場合は、コマンドプロンプトでデバイスをpingできるかどうかを試してください。pingコマンドが失敗すると、Modbusのポーリングも失敗します。 - Modbus UDP/IP:
MODBUS UDP/IPネットワークと通信する場合は、UDP/IPを選択します。これはModbus TCP/IPと同じですが、コネクションレスUDPプロトコルを使用します。 - Modbus RTU/ASCII over TCP/IP:
これは、シリアル回線ではなくTCP/IPネットワークを介して送信されるRTUまたはASCIIメッセージです。 - Modbus RTU/ASCII over UDP/IP:
これは、シリアル回線ではなくUDP/IPネットワークを介して送信されるRTUまたはASCIIメッセージです。
| 接続タイプ3-5はwww.modbus.ではない標準Modbusを指定するが、便宜上追加された。 |
選択に応じて、その他の設定の一部がグレー表示されます。
4.2と●シリアルポート設定
これらのパラメータを使用して、シリアルポートの設定を行います。接続タイプがある場合のみ。シリアルポート”の時にのみ利用可能となる。モデルは
このオプションで選択RTUまたはASCIIモデルです。略称はRTU。レスポンス·タイムアウト
Modbusポーリングが破棄されるまで、スレーブデバイスからの応答を待つ時間を指定します。デフォルト値は1000ミリ秒です。ポーリング间の最小遅延
この設定により、スキャン·レートに関係なく、次のリクエストが送信されるまでの最小遅延が保証されます。この設定の解像度は約15msです。一部のコンピュータではより良い解像度が得られますが、すべてではありません。
| この値を20ミリ秒未満に設定すると、レスポンスと新しいリクエストの間隔が3.5文字になる保証はありません。これは、Windowsスケジューラがタスクを10 ~ 20ミリ秒ごとに切り替えるためです。シリアルRS 485ネットワークで複数のスレーブをポーリングする場合は、この値を20ms未満に設定しないでください。これは、3.5文字のタイムギャップを確保するためです。TCP/IPネットワークでは、20ミリ秒未満で十分です。1台のスレーブデバイスのみとのシリアル接続時間は20ms未満です。 |
ユーザーボーレート
デフォルトのボーレートが使用できない場合は、カスタムボーレートを指定します。
4.3とnbsp;リモートサーバ
リモート·サーバの設定は、Ethernet接続を使用している場合にのみ使用できます。IPアドレス
サーバーのIPアドレスデフォルトはローカルホスト127.0.0.1ポート
サーバーのポート番号デフォルトの502接続タイムアウト
接続を確立するために使用される最大時間。1,000ドル
4.4とタグ:高度な設定
即時戦略の変更
RTSスイッチは、バイトが転送可能な場合、RTSラインがハイレベルになることを指定します。すべてのバッファバイトが送信されると、RTSラインはローレベルになります。
お使いの232/485コンバータに自動方向スイッチがない場合は、方向を切り替えるために使用できます。
| 可能な限り、RTS制御RS 232/RS 485コンバータの使用は避けてください。WindowsやLinuxなどの非リアルタイムオペレーティングシステムでは、送信機がシャットダウンする正確な時間を決定することは困難です。早期にシャットダウンすると、FIFOまたはUARTの送信レジスタに文字が残り、文字が失われる可能性があります。そのため、スレーブはメッセージを認識しない。一方、シャットダウンが遅すぎると、スレーブからのメッセージが破損し、マスターがメッセージを認識しなくなります。 |
デジタルSR
DSRは、出力フロー制御のためにDSR Data Set Ready信号を監視するかどうかを指定します。このメンバーがTRUEでDSRがオフの場合、DSRが再度送信されるまで出力は一時停止されます。CTSについて
CTSは、出力フロー制御のためにCTS Clear Send信号を監視するかどうかを指定します。このチェックボックスをオンにしてCTSをオフにすると、CTSが再度送信されるまで出力が一時停止されます。デジタルTR。
DTRは、ポートが開かれるたびにDTRを有効または無効にするかを指定します。エコーキャンセル
お使いのデバイスまたはRS 232/RS 485コンバータが送信した文字をエコーする場合。
5. Read/Write Definition
このコマンドを使用して、アクティブなウィンドウで監視するデータを定義します。
読み取り/書き込み定義ダイアログを開くには、次の3つのオプションがあります。
- 略称はF 8。
- 設定メニューから“読み取り/書き込み定義”を選択します。
- 押して
toolbarの

5.1とスレーブID。
1から255までの範囲。(MODBUSプロトコル仕様では247と規定されている。値0は、MODBUS/TCPまたはMODBUS/UDPデバイスと直接通信することもできます。
5.2とタグ:機能コード
8つの機能コードのうち1つを選択できます。
5.2.とタグ:読み取り機能
read関数から返されたデータは、グリッドウィンドウに表示されます。
- 0 1:リードコイル(0 x)
- 02入力の読み込み1x
- 0 3:リードホールドレジスタ(4 x)
- 0 4:入力レジスタの読み取り(3 x)
2.2.と関数を書く。
write関数は、グリッドウィンドウに表示されるデータを書き込みます。
- 05単一コイルへの书き込みコイル书き込み
- 0 6:単一レジスタに書き込む(書き込み保持レジスタ)
- 15のコイルへの书き込みWrites to Coils
- 16複数のレジスタに書き込むWrites to Holding registers
5.3とタグ:住所
Modbusプロトコルのアドレスは混乱しています!プロトコル仕様によってはプロトコル/メッセージアドレスを使用するものもあれば、デバイスアドレス指定を使用するものもある。
5.1.とnbsp;プロトコル/メッセージ·アドレス
一部のプロトコル仕様では、0から655 3 5までのプロトコル/メッセージアドレスと機能コードを使用します。これは新しいModbus仕様でも使用されているものです。これは、回を介して送信されるメッセージのアドレスです。
Modbus Pollは0から655 3 5までのプロトコル/メッセージアドレスを使用します。
3.2.とnbsp;デバイスのアドレス
一部のプロトコル仕様はデバイスアドレス/レジスタを使用する。レジスタは1からカウントを開始します。最初の数字は、使用する機能を記述します。つまり、デバイスアドレス40101はアドレス100で識別されます。“4”はホールドレジスタと4 xレジスタが1からカウントを開始することを意味します。さらに紛らわしいのは、4 xが機能コード03、3 xが機能コード04です。
5.3と。5ビットと6ビットのアドレス
アドレス形式4 xは40001から49999までカウントされます。次の住所はない。50000。以前は9999アドレスで十分でした。9999では不十分です。そしてゼロを追加します。40101は400101になります。これを8ビット·アドレス指定または拡張アドレス指定と呼びます。
Modbusポーリングの問題ではない。410001は10000になります“4”は捨てられ、1ではなく0から数え始めるので、残りの10001は1を引いた。
5.3とnbsp;アドレスの例
これらの例は、仕様がデバイスアドレスを使用する場合のModbusポーリングの設定方法を示します。
リードホールドレジスタ
デバイスアドレス40011の20個のレジスタを、1000msごとにスレーブID 2から読み出す必要があります。“4”から、これが機能03“Read Hold Register”であることがわかります。
- マシンID = 2
- =“03読み込み保持レジスタ
- アドレス:10(11マイナス1)
- サイズ= 20
- スキャン率 = 1000
離散入力の読み取り
アドレス110201の1000個のコイルをスレーブID 5から500msごとに読み出すことを希望します。“1”から、機能0 2“離散入力の読み取り”であることがわかります。
- マシンID = 5
- =“02読み取り
- アドレス= 10200 10201 - 1
- 数量 = 1,000
- スキャン率 = 500
5.4とタグ:スキャン率
スキャンレートは0 ~ 360000msに設定できます。スキャンレートをトランザクション時間よりも低く設定しても意味がありません。9,600ボーレートのシリアル接続を使用し、125個のレジスタを要求する場合、トランザクション時間は約8 + 2 + 250 + 2 = 262ms +リクエストとレスポンスの間のギャップ(3.5文字時間)になります。この場合、トランザクション時間は少なくとも262ms +スレーブ遅延(ギャップ)+ポーリング間の最短時間であるため、スキャンレートを100msに設定することは意味がありません。(接続ダイアログF 3で設定)。
5.5とnbsp;読み取り/書き込み無効
“読み取り/書き込み無効”チェック·ボックスを使用すると、ウィンドウの通信を一時的に有効または無効にできます。その後、テキスト(無効)とTxとエラーカウンタが表示されます。

Read/Writeが無効の場合は、Read/Write Onceボタンを使用するか、F 6キーを押して1つのリクエストを発行できます。

“Read/Write Once”ボタン
5.1.1とnbsp;エラー時に無効
エラー発生時に読み取り/書き込みを無効にします。
5.6とnbsp;名前列の非表示
すべての名前列を非表示にします。それらを使用しない場合は、より多くのスペースを解放することができます。
5.7とnbsp;セル内のアドレス
有効にすると、アドレスは値セルにも表示されます例2000 = 0000

5.8。PLCアドレス(ベースアドレス1)
このオプションを選択すると、アドレスがデバイスアドレスとして表示されます。

5.9と。エンロン/ダニエル·モード
EnronまたはEnron/Daniels Modbusは、いくつかの“ベンダー拡張”を備えた標準Modbusです。これらの拡張の正確な影響はコンテキストに依存しますが、最も一般的なModbusコマンドは期待通りに動作します。ベンダー定義のカスタム関数はいくつかありますが、ユーザーはほとんど期待していません。最大の影響は、32ビットデータ値の読み書き方法に関係しています。
Enron-Modbusは2つの特別な4 x保持レジスタ範囲を定義している。
- 4 x 5001から4 x 5999は32ビットの長整数(レジスタあたり4バイト)であると仮定します。
- 4 x 70 0 1から4 x 7999は32ビット浮動小数点(レジスタあたり4バイト)であると仮定します。
Modbusで32ビット値を扱うのはEnron-MBだけの問題ではない。しかし、Enron-MBはModbus仕様の“レジスタを保持する”という用語が意味する2バイトではなく、各レジスタが4バイトを返すという論争の的となったステップを踏んだ。つまり、Enron-Modbusのレジスタ4 x 5001と4 x 5002ポーリングは8バイトまたは32ビット整数2個を返しますが、標準のModbusは4バイトまたは32ビット整数1個を返します(2個の16ビット整数とみなされます)。さらに、Enron-MBのポーリングレジスタ4 x 5010は10番目の32ビット長整数を返しますが、標準のModbusはこの範囲の5番目の32ビット長整数の1/2を考慮します。
5.10とnbsp;行数
グリッド内の任意の行数を指定します。
6.リアルタイムグラフ
このコマンドを使用して、グラフに最大12個のデータ系列をリアルタイムで描画します。
リアルタイムチャートは高速で、新しいデータを受け取るとすぐに新しい線を描画できます。
| すべてのチャート設定はワークスペースとともに保存されます。ワークスペースの保存/オープン |
ライブ·チャート·ダイアログ·ボックスを開くには、次の2つのオプションがあります。
- Alt + Rキー
- 表示メニューから“ライブ·チャート”を选択

X軸には、グラフの起動からの秒数が表示されます。
ポイントがグラフの最後に到達すると、3つのオプションがあります。
- 終了時に停止:グラフが止まる。
- 終了時の再起動:グラフ再開です。
- 続きを読む:続けて最大ポイントに達するか、停止ボタンを押すまで。
6.1とnbsp;設定する
デフォルトでは、12個の系列すべてが左のY軸にリンクされています。シリーズを右 Y 轴にリンクするは、[右 Y 轴]チェックボックスをオンにします。指定する
- 色は
- 右のY軸
- タイトルは。タイトルが空の場合は、読書ウィンドウの名前で初期化されます
- オフセットオフセット
表示会です。
- ファイル名:File Name
- アドレス:address
オフセットは、同じY軸上でデータポイントを整列させる場合に便利です。例えば、0または1のデータポイントは、互いに描画されないようにオフセットすることができます。

6.2と●ズーム機能
より詳細な情報を表示したい場合は、グラフを拡大すると便利です。ズームはマウスの左ボタンで制御されます。チャートの特定の部分を拡大/縮小するには、チャートを左クリックし(拡大/縮小長方形の左上隅になります)、右下隅までドラッグします。長方形が現れます。マウスボタンを放すと、軸は自動的に選択した領域に調整されます。
グラフを左クリックした場合(ズームを開始するなど)、左上隅に移動すると、ズームおよびパン機能を使用して行ったすべての変更がキャンセルされます(パンおよびズーム操作を行う前に、グラフは元の状態になります)。
6.3とタグ:移動機能
コントロールをパンするには、コントロール上のどこかを右クリックしてマウスを動かします。マウスの下にあるポイントは、マウスの動きに従います。
6.4とnbsp;グラフシリーズへのデータのリンク
Modbusデータユニットが12の系列のいずれかにリンクされていない限り、チャートはどのデータを使用するかを知りません。これを行うには、値のセルを選択し、メニュー →ディスプレイから“チャートにリンク”を選択します。

6.5。【輸出シリーズ】
シリーズ·データをディスクに保存するか、クリップボードにコピーします。データをExcelに直接貼り付けて、さらに処理します。
カンマ以外のフィールド区切り文字を使用していても、ファイルの拡張子は.csvです。
区切り文字:テキストファイル内の値を区切る文字を選択します。Excelにコピー/ペーストするときは、タブ区切り文字を使用します。追加情報も提供されています。
- ポイント数ポイント
- 最大値は
- 最小値は
- 平均得点率は

7.アドレススキャン
アドレス範囲をスキャンして、デバイス内のすべての有効なアドレスのリストを取得します。アドレスは1つずつ読み込まれ、結果はリストとして表示されます。
| 65,535アドレスすべてをスキャンするには、接続の種類、サーバデバイスなどによって時間がかかります。 |
7.1とnbsp;アドレススキャンのエクスポート
アドレススキャンデータをディスクに保存するか、クリップボードにコピーします。データをExcelに直接貼り付けて、さらに処理します。
カンマ以外のフィールド区切り文字を使用していても、ファイルの拡張子は.csvです。
区切り文字:テキストファイル内の値を区切る文字を選択します。Excelにコピー/ペーストするときは、タブ区切り文字を使用します。
8.表示フォーマット
書式設定するセルをマークします。表示メニューから、28種類の表示形式のいずれかを選択します。
8.1とnbsp;ネイティブModbusレジスタ
16ビットModbusレジスタは4つの異なるモードで表示できます。
- 署名済み。
- 署名なし。
- 16進法
- ASCII -16进数
- Binaryシングル
8.2。32ビット符号付き整数
2つの16ビットModbusレジスタを搭載している。4つの異なるワード/バイト順序で表示できます。
- 符号付き整数 大仮数
- 符号付き整数 小仮数
- 符号付き整数ビッグエンディアン·バイト·スワップ
- 符号付き整数リトルエンディアン·バイト交換例バイト順序:AB CD(ビッグサイズ)
10進数 123456789または16進数07 5B CD 15
Modbusメッセージのライン上での転送順序:07 5B CD 15
8.3。32ビット符号なし整数
2つの16ビットModbusレジスタを搭載している。4つの異なるワード/バイト順序で表示できます。
- 符号なし整数 大仮数
- 符号なし整数 小仮数
- 符号なし整数 Big-endianバイト交換{{しんぼるなしちょうBig-endianバイトかいば}}
- 符号なし整数リトルエンディアン·バイト交換例バイト順序:AB CD(ビッグサイズ)
10進数 123456789または16進数07 5B CD 15
Modbusメッセージのライン上での転送順序:07 5B CD 15
8.4。64ビット符号付き整数
4つの16ビットModbusレジスタを搭載している。4つの異なるワード/バイト順序で表示できます。
- 符号付き整数 大仮数
- 符号付き整数 小仮数
- 符号付き整数ビッグエンディアン·バイト·スワップ
- 符号付き整数リトルエンディアン·バイト交換例バイト順序:AB CD EF GH(ビッグエンディアン)
10進数-1,23 4,56 7,890,123,45 6,78 9または16進数EE DD EF 0B 82 16 7E EB
Modbusメッセージでの回線順序:EE DD EF 0B 82 16 7E EB
8.5。64ビット符号なし整数
4つの16ビットModbusレジスタを搭載している。4つの異なるワード/バイト順序で表示できます。
- 符号なし整数 大仮数
- 符号なし整数 小仮数
- 符号なし整数 Big-endianバイト交換{{しんぼるなしちょうBig-endianバイトかいば}}
- 符号なし整数リトルエンディアン·バイト交換例バイト順序:AB CD EF GH(ビッグエンディアン)
10進数1,23 4,56 7,890,123,456,789または16進数11 22 10 F4
7D E 9 81 15 Modbusメッセージでの回線順序:11 22 10 F4 7D E9 81 15
8.6。32ビット浮動小数点
2つの16ビットModbusレジスタを搭載している。4つの異なるワード/バイト順序で表示できます。
- 浮動小数点数
- 浮動小数点数小仮数
- 浮動小数点ビッグエンディアンバイトスワップ
- 浮動小数点リトルエンバイトスワップの例バイト順序:AB CD(ビッグサイズ)
浮動小数点数123456.00または16進数47 F1 20 00
Modbusメッセージでの回線順序:47 F1 20 00
8.7。64ビット·ダブル
4つの16ビットModbusレジスタを搭載している。4つの異なるワード/バイト順序で表示できます。
- ダブル·ビッグ·エンド
- ダブルエンド。
- デュアルビッグエンディアンバイトスワップ
- ダブルリトルエンバイト交換の例バイト順序:AB CD EF GH(ビッグエンディアン)
浮動小数点数123456 7 8 9.0 0または16進数41 9D 6F 34 54 00 00 00
Modbusメッセージでの回線順序:41 9D 6F 34 54 00 00 00
9.ワークスペースの保存/オープン
関連するModbusウィンドウを多数開いている場合、開いて設定されているModbusウィンドウの現在のレイアウトのスナップショットを1つのワークスペースに簡単に保存できます。
ワークスペース *mbwは、开いているすべてのウィンドウの表示とファイル名を含むファイルです。実際の内容じゃないこれを行うには、“ファイル”→“ワークスペースの保存”に移動します。
接続とチャート設定はワークスペース·ファイルに保存されます。
ワークスペースファイルを開くと、ModbusポーリングはすべてのModbusウィンドウを開き、保存したレイアウトで表示します。
10. csvへのエクスポート
名前と値をカンマ、セミコロン、またはタブ区切り値ファイルにエクスポートします。“ファイル”ダイアログから選択
- カンマ区切り値ファイル *.csv
"Temperature","19.7" - セミコロン区切り値ファイル *.csv
"Temperature";"19.7" - タブ区切り値ファイル *.txt
気温は19.7
使用しているシステムによっては、カンマまたはピリオドを使用して小数点を区切ります。
11. Modbus Slaveへのエクスポート
名前、値、フォーマットをModbusスレーブファイルにエクスポートします。*. mbsの
ファイルを開くにはModbus Slaveバージョン7.4.0以上が必要です。
12.テストセンター
このテストダイアログの目的は、MODBUSスレーブデバイス開発者が自分で構成した任意の文字列を使用してデバイスをテストできるようにすることです。
リストボックスには、送信データと受信データが表示されます。
ドロップダウンリストボックスには、複数のテスト文字列を指定できます。文字列を入力した後、“リストに追加”ボタンを押すと、リストに文字列が追加されます。
送信ボタンを押すと、選択した文字列が送信されます。リストを開く
ファイルからテスト文字列を元します。リストの保存
テスト文字列をファイルに保存します。クリアする。
テストリストをクリア。リストに追加。
現在のテスト文字列をリストに追加します。小切手の追加
入力文字列の最後にCRCまたはLRCを追加します。
テストセンターを使用している場合は、他のウィンドウの通信を無効にしたい場合があります。[読み取り/書き込み定義]ダイアログボックスの[読み取り/書き込み無効]チェックボックスをオンにします。Read/Write Definitionを設定する
12.1。ASCIIの例
コンボボックス内の文字列:3 A 30 31 30 33 30 30 30 30 30 30 30 30 41
LRC追加時に転送される文字列3A 30 31 30 33 30 30 30 30 30 30 30 41 46 32 0D 0A
CR LFペアも追加されました。
12.2。nbsp;TCP/IPの例
10個の保持レジスタを読み込む。0 0 0 0 0
最初の6バイトはTCP/IPヘッダです。
12.3。テストセンター文字列ファイル
メモ帳などのテキストエディタを使用すると、テストで使用する文字列を準備できます。
ファイルの最初の行は、文字列“Test Center”でなければなりません。これはModbus Pollが正しいファイル形式を知る方法です。“リストを開く”を押して準備したテキストファイルを開きます。
3.1.1とnbsp;文字列リストの内容
テストセンター 3 A 30 30 30 30 30 30 30 41 3 A 30 30 30 30 30 30 30 41 3 A 30 30 30 30 30 30 30 41
12.4。レプリケーション
[コピー]ボタンを使用して、選択したTx/Rx文字列をクリップボードにコピーします。
SHIFTキーとCTRLキーは、マウスとともに使用して、文字列の選択と選択解除、文字列グループの選択、隣接していない文字列の選択を行います。
| 他のコマンドを実行するときは、このウィンドウを開いたままにします。 |
13. Modbusデータ記録
データをテキストファイルに記録することも、Microsoft Excelに直接記録することもできます。
1.1とnbsp;テキストファイル
設定メニューから“ログ”を選択するか、ショートカットキーを使用しますAlt+L
各Modbusウィンドウは別々のテキストファイルに記録されます。
データロギングを停止する場合は、設定メニューのログアウトコマンドを選択します。

1.1.1とタグ:記録率
すべての読書。
すべてのModbusリクエストのログラインを記述します。周波数をスキャンレートとして記録します。選択する。
ログレートを秒単位で指定します。スキャン速度に関係ない。
| たとえば、スキャンレートが10,000ミリ秒の場合、新しいデータが準備されたときにのみデータが記録されるため、記録レートを1 秒に設定しても意味がありません。 |
1.1.2.と【区切り文字】
区切り文字として、次のいずれかを使用できます。固定幅
つまり、値は列ごとに整理されています。コンマ
値はコンマで区切られます。Labelsラベル
値はタブで区切られます。
13.1.3。データが変更された場合にのみ記録
最後のログ以降にデータが変更された場合にのみ、新しいログ·ローを書き込むように指定します。
13.1.4。エラーの記録
ログのタイムアウトなどのエラーを指定します。
13.1.5。記録の日付
現在の日付をログ時刻に追加するよう指定します。
13.1.6。区切り文字として“T”を使用する
時刻と日付は、ISO 86 0 1で指定された文字“T”で区切られます。
13.1.7。ミリ秒の記録
ログ時間にミリ秒を追加するよう指定します。
13.1.8。ログアドレス:Log Address
Modbusアドレスをログに追加するよう指定します。
13.1.9。“OK”を押したら記録を開始
OKボタンが押されたときに記録を開始するように指定します。それ以外の場合、ログ設定は *mbpファイルを保存するときにのみ保存されます。
13.1.10。* mbpオープン時にログを開始
*.mbpファイルを開いたときに、ロギングが自動的に開始されるように指定します。
13.1.11。すぐにファイルに入る。
これにより、ログラインはファイルシステムにキャッシュされず、物理的に即座に書き込まれます。
13.1.12。その他追加
選択したファイルにログを添付するように指定します。新しいファイルが作成されます。
13.1.13。Midnight New Logファイル
現在のログファイルを閉じ、真夜中に新しいファイルを開始します。タイムスタンプがファイル名に追加されます。
13.1.14。ヘッダー情報。
- タイトルを挿入:情報はログファイルの先頭に挿入されます。
- 一番上の行の名前セル名前を挿入。
- 投票の定義:ID、機能などを挿入します。
- 名前は:ログの名前を挿入します。
固定幅のテキストファイルの例22:28:13 <40001> 17395 0 0 0 0 0 0 0 0 22:28:14 <40001> 17396 1 0 0 0 0 0 0 0 22:28:15 <40001> 17394 1 0 0 2 55 0 0 0 22:28:16 <40001> 13350 1 0 0 4 0 0 0 0
Excelスプレッドシートからデータをインポートできます。
2.2とタグ:Microsoft Excel
この機能にはMicrosoft Excelが必要です。Excel 2003のログは、Excelワークシートの最大行数であるため、65,53 5ログに制限されています。Excel 2007以降は、1,048,576行に制限されています。各Modbusウィンドウは、別々のExcelワークシートに記録されます。
[設定]メニューから[Excelログ]を選択するか、ショートカットキーを使用しますAlt+X
記録中はExcelワークシートに触れないでください。記録が中断されます。

2.1.2。タグ:記録率
- 読むたびに:すべてのModbus要求のログ行を書き込みます。周波数をスキャンレートとして記録します。
- 選択する:ログレートを秒単位で指定します。ログはスキャン·レートに依存しません。
コメント:スキャンレートが10,000 msの場合、新しいデータが準備されたときにのみデータが記録されるため、記録レートを1 秒に設定しても意味がありません。 - 停止時間:ログの行数を指定します。Excel 2003では65,536行、Excel 2007では1,048,576行に制限されていることに注意してください。
2.2.2。nbsp;ヘッダ情報
- タイトルを挿入:情報は、Excelワークシートの一番上の3 行に挿入されます。
- 一番上の行のセル名3 行目に名前を挿入します。
- 投票の定義:2 行目にID,機能などを挿入する.
- 名前は:1 行目にログ名を挿入します。

タイトル情報付きのExcelログ。
14.通信の流れ
メニューの[表示] → [通信]を選択して、シリアルラインまたはイーサネットケーブルのトラフィックを表示します。停止ボタンを使用して、チェックのため更新を一時的に停止します。
“コピー”ボタンを使用して、选択した行をクリップボードにコピーします。
| このウィンドウにはModbus Poll経由で送受信されたデータのみが表示されます。データスニファとしては使用できません。 |
| 他のコマンドを実行するときは、このウィンドウを開いたままにします。 |
OLE/オートメーション
オートメーション(旧OLEオートメーション)は、あるアプリケーションが別のアプリケーションで実装されたオブジェクトを操作できるようにする。
オートメーションクライアントは、他のアプリケーションに属する公開オブジェクトを操作できるアプリケーションです。オートメーションコントローラとも呼ばれます。
オートメーションサーバは、プログラム可能オブジェクトを他のアプリケーションに公開するアプリケーションです。Modbus Poll自動化されたサーバーです。
つまり、VBA(Visual Basic for Applications)をサポートする任意のプログラム(Visual Basic、Excelなど)を使用して、特定の要件に応じてmodbusデータを解釈して表示できます。
5.1とnbsp;Excel例
マクロを記述する場合は、“開発者”タブを表示するか、開発者モードで実行する必要があります。
15.1.1. Excel 2007

- “Microsoft Office”ボタンをクリックし、“Excelオプション”をクリックします。
- [人気]をクリックし、[リボンに開発者タブを表示]チェックボックスをオンにします。
リボンはMicrosoft Fluentユーザーインターフェイスの一部であることに注意してください。
15.1.2. Excel 2010、2016
- ファイルタブをクリックします。
- オプションをクリック。Excelオプションウィンドウが開きます。
- 左側のペインで、[リボンをカスタマイズ]をクリックします。
- 右側のペインの[メインタブ]で、[開発者]チェックボックスをオンにします。
- “OK”をクリック。[开発者]タブがリボン一番右のタブに表示されるはずです。
15.1.3。Excelサンプル·コード
この例では、2つのウィンドウを開きます。1つはレジスタを読み取り、もう1つはコイルを読み取ります。
Modbusポーリングは非表示ですが、“ShowWindow”行のコメントを解除することで表示できます。いずれかのウィンドウが表示されます。
Modbusポーリングの実装には例も含まれている。
スタート→すべてのプログラム→ Modbusポーリング→ ExcelサンプルExcel VBAサンプル
Public doc1 As Object
Public doc2 As Object
Public app As Object
Dim res As Integer
Dim n As Integer
Private Sub StartModbusPoll_Click()
Set app = CreateObject("Mbpoll.Application")
Set doc1 = CreateObject("Mbpoll.Document")
Set doc2 = CreateObject("Mbpoll.Document")
' Read 10 Holding Registers every 1000ms
res = doc1.ReadHoldingRegisters(1, 0, 10, 1000)
' Read 10 Coil Status every 1000ms
res = doc2.ReadCoils(1, 0, 10, 1000)
' doc1.ShowWindow()
app.Connection = 1 ' Modbus TCP/IP
app.IPAddress = "127.0.0.1" ' local host
app.ServerPort = 502
app.ConnectTimeout = 1000
res = app.OpenConnection()
End Sub
Private Sub Read_Click()
Cells(5, 7) = doc1.ReadResult() 'Show results for the requests
Cells(6, 7) = doc2.ReadResult()
For n = 0 To 9
Cells(5 + n, 2) = doc1.SRegisters(n)
Next n
For n = 0 To 9
Cells(18 + n, 2) = doc2.Coils(n)
Next n
End Sub15.2。nbsp;Pythonの例
このPythonの例はウィンドウを開き、可能なすべてのデータフォーマットを設定します。Pythonの例
import win32com.client as win32
SIGNED = 0
UNSIGNED = 1
HEX = 2
BINARY = 3
FLOAT_LE_BS = 4
FLOAT_BE = 5
DOUBLE_LE_BS = 6
DOUBLE_BE = 7
S32_LE_BS = 8
S32_BE = 9
FLOAT_LE = 10
FLOAT_BE_BS = 11
DOUBLE_LE = 12
DOUBLE_BE_BS = 13
S32_LE = 14
S32_BE_BS = 15
U32_BE = 17
U32_LE_BS = 18
U32_BE_BS = 19
U32_LE = 20
S64_BE = 21
S64_LE_BS = 22
S64_BE_BS = 23
S64_LE = 24
U64_BE = 25
U64_LE_BS = 26
U64_BE_BS = 27
U64_LE = 28
#Endianness
BE = 0
LE = 3
BE_BS = 2
LE_BS = 1
App = win32.Dispatch('Mbpoll.Application')
App.Connection = 1
App.IPAddress = "127.0.0.1"
App.ServerPort = 502
App.OpenConnection
#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")
# Read 100 holding registers from slave ID 1, address 0 (40001) every 1000ms
Win1.ReadHoldingRegisters(1, 0, 100, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Show 20 rows
Win1.Rows(1)
# Disable refresh for speed
Win1.EnableRefresh = False
# Set all different formats
# This sets how the value is displayed
Win1.SetFormat(0, SIGNED)
Win1.SetFormat(1, UNSIGNED)
Win1.SetFormat(2, HEX)
Win1.SetFormat(3, BINARY)
Win1.SetFormat(4, S32_BE)
Win1.SetFormat(6, S32_LE)
Win1.SetFormat(8, S32_BE_BS)
Win1.SetFormat(10, S32_LE_BS)
Win1.SetFormat(12, U32_BE)
Win1.SetFormat(14, U32_LE)
Win1.SetFormat(16, U32_BE_BS)
Win1.SetFormat(18, U32_LE_BS)
Win1.SetFormat(20, S64_BE)
Win1.SetFormat(24, S64_LE)
Win1.SetFormat(28, S64_BE_BS)
Win1.SetFormat(32, S64_LE_BS)
Win1.SetFormat(40, U64_BE)
Win1.SetFormat(44, U64_LE)
Win1.SetFormat(48, U64_BE_BS)
Win1.SetFormat(52, U64_LE_BS)
Win1.SetFormat(60, FLOAT_BE)
Win1.SetFormat(62, FLOAT_LE)
Win1.SetFormat(64, FLOAT_BE_BS)
Win1.SetFormat(66, FLOAT_LE_BS)
Win1.SetFormat(80, DOUBLE_BE)
Win1.SetFormat(84, DOUBLE_LE)
Win1.SetFormat(88, DOUBLE_BE_BS)
Win1.SetFormat(92, DOUBLE_LE_BS)
# Set all Names to used format
Win1.SetName(0, "SIGNED")
Win1.SetName(1, "UNSIGNED")
Win1.SetName(2, "HEX")
Win1.SetName(3, "BINARY")
Win1.SetName(4, "S32_BE")
Win1.SetName(6, "S32_LE")
Win1.SetName(8, "S32_BE_BS")
Win1.SetName(10, "S32_LE_BS")
Win1.SetName(12, "U32_BE")
Win1.SetName(14, "U32_LE")
Win1.SetName(16, "U32_BE_BS")
Win1.SetName(18, "U32_LE_BS")
Win1.SetName(20, "S64_BE")
Win1.SetName(24, "S64_LE")
Win1.SetName(28, "S64_BE_BS")
Win1.SetName(32, "S64_LE_BS")
Win1.SetName(40, "U64_BE")
Win1.SetName(44, "U64_LE")
Win1.SetName(48, "U64_BE_BS")
Win1.SetName(52, "U64_LE_BS")
Win1.SetName(60, "FLOAT_BE")
Win1.SetName(62, "FLOAT_LE")
Win1.SetName(64, "FLOAT_BE_BS")
Win1.SetName(66, "FLOAT_LE_BS")
Win1.SetName(80, "DOUBLE_BE")
Win1.SetName(84, "DOUBLE_LE")
Win1.SetName(88, "DOUBLE_BE_BS")
Win1.SetName(92, "DOUBLE_LE_BS")
# Refresh
Win1.EnableRefresh = True
Win1.ResizeAllColumns ()
Win1.ResizeWindow()
result = Win1.Save("C:\Users\UserName\Desktop\testfile.mbp")
print (result)
print (Win1.GetName(1))
_ = input("Press ENTER to quit:")15.3。接続機能/属性
次のプロパティと機能は、接続ダイアログボックスF3で設定したものと同じです。
15.3.1。コンタクト·コネクション
接続目的の接続を選択します。シリアルポートまたはイーサネット接続のいずれかを選択できます。
プロパティ接続する。整数の有効な値
0 =シリアルポート
1 = Modbus TCP/IP
2 = Modbus UDP/IP
3 = Modbus ASCII/RTU over TCP/IP
4 = Modbus ASCII/RTU over UDP/IP
例を挙げる
Connection = 0
15.2と。B:ボーレート
接続のみ= 0
プロパティBaudRate as Long有効な値
300
600
1200
2400
4800
96 0 0(デフォルト)
14400
19200
38400
56000
57600
115200
128000
153600
230400
256000
460800
216 0例
BaudRate = 9600
15.3.3。データ·ビット
接続のみ= 0
プロパティDataBits整数として有効な値
7
8(デフォルト)
例を挙げる
DataBits = 8
15.3.4。パリティパリティ
接続のみ= 0
プロパティ:Propertyパリティパリティ整数として有効な値
0 =なし
1 = 奇数。
2 = 偶数(デフォルト)
例を挙げる
Parity = 2
15.3.5。ストップ·ビット
接続のみ= 0
プロパティStopBits整数として有効な値
1(デフォルト)
2
例を挙げる
StopBits = 1
15.3.6。シリアルポート
接続のみ= 0
プロパティSerialPort整数として有効な値
1…255
デフォルト= 1例
SerialPort = 1
15.3.7。モデルは
接続のみ= 0
プロパティモデルは整数の有効な値
0 = RTUモード
1 = ASCIIモード
例を挙げる
Mode = 1
15.3.8。Echoを削除する
Connection = 0の場合のみ適用
お使いのデバイスまたはRS 232/RS 485コンバータが送信した文字をエコーする場合。
プロパティRemoveEcho as Integer有効な値
0(デフォルト)
1(エコー除去)
例を挙げる
RemoveEcho = 1
15.3.9。レスポンス·タイムアウト
ResponseTimeoutは、Modbusポーリングが破棄されるまでスレーブデバイスからの応答を待つ時間をミリ秒単位で指定します。
プロパティResponseTimeout整数として有効な値
50…100000
デフォルト値= 1000例
ResponseTimeout = 1000
15.3.10。ポーリング間の遅延
プロパティDelayBetweenPollsIntegerとして有効な値
0…1000
デフォルト= 20例
DelayBetweenPolls = 20
3.1 1と。nbsp;サーバーポート
接続のみ= 1 4
プロパティServerPortLongの有効な値
0…65535
50 2例の例
ServerPort = 502
3.12.そしてnbsp;接続タイムアウト
ConnectTimeoutは、ModbusポーリングがTCP/IP接続の成功を待つ時間を指定します。
接続のみ= 1 4
プロパティConnectTimeoutIntegerとして有効な値
100 ~ 30000ミリ秒
デフォルト= 1000ミリ秒例
ConnectTimeout = 1000
15.3.13。IPバージョン
接続のみ= 1 4
プロパティIPVersion整数として有効な値
4 = IPバージョン4(デフォルト)
IPバージョン6
例を挙げる
IPVersion = 4
15.3.14。オープン·コネクション
[接続]プロパティーを使用して選択した接続を開きます。
関数の機能OpenConnection ViewCube ViewCube整数パラメータとして整数パラメータとして
関数にはパラメータがない。戻り値は
エラー 3-5:最新のシリアルドライブがインストールされているかどうかを確認してください。
| エラーです。 | 説明する。 |
|---|---|
| 0成功する。 | |
| 1 | シリアルポートが使えない |
| 3 | Serial Portです。ポートドライバから現在の設定を取得できません。 |
| 4 | Serial Portです。シリアルポートドライバはポート設定を受け付けません。 |
| 5 | Serial Portです。シリアルポートドライバはタイムアウト設定を受け付けません。 |
| 12 | TCP/UDP接続に失敗しました。WSA開始。 |
| 13 | TCP/UDP接続に失敗しました。接続エラー |
| 14 | TCP/UDP接続に失敗しました。サスペンションサスペンション。 |
| 15 | TCP/UDP接続に失敗しました。IOCTL |
| 背番号は17。 | TCP/UDP接続に失敗しました。ソケットエラー |
| 21 | TCP/UDP接続に失敗しました。アドレス情報の提供 |
| 255 | 接続が開いた。 |
Modbus TCP/IP接続を開く方法Excelの例
Public app As Object
Dim res As Integer
' Create an object to Modbus Poll
Set app = CreateObject("Mbpoll.Application")
app.Connection = 1 ' Select Modbus TCP/IP
app.IPVersion = 4
app.IPAddress = "192.168.1.27"
app.ServerPort = 502
app.ConnectTimeout = 1000
app.ResponseTimeout = 1000
res = app.OpenConnection()Pythonサンプルシリアル接続の設定方法
import win32com.client as win32
App = win32.Dispatch('Mbpoll.Application')
App.Connection = 0 # Serial connection
App.SerialPort = 3 # Com port 3
App.BaudRate = 9600 # 9600 baud
App.Parity = 0 # None parity
App.Mode = 0 # RTU mode
App.ResponseTimeout = 1000 # Wait 1000ms until give up
App.DelayBetweenPolls = 20 # Ensure minimum 20 ms gap until next request
App.OpenConnection
#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")
# Read 10 holding registers from slave ID 1, address 0 (40001) every 1000ms
Win1.ReadHoldingRegisters(1, 0, 10, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Show 10 rows
Win1.Rows(0)
# Disable refresh for speed
Win1.EnableRefresh = False
# Set the name of the registers
Win1.SetName(0, "Register 0")
# Set the value to write
Win1.EnableRefresh = True
Win1.ResizeAllColumns ()
Win1.ResizeWindow()
_ = input("Press ENTER to quit:")15.3.15。接続を閉じる
関数の機能CloseConnection ViewCube ViewCube As IntegerパラメータAs Integerぱらめーた
関数にはパラメータがない。戻り値は
成功した場合はゼロ。失敗した場合、ゼロ以外の値。
15.3.16。通信トラフィックの表示
トラフィックウィンドウを表示します。
関数の機能ShowCommunicationTraffic ViewCube ViewCubeパラメータ
関数にはパラメータがない。戻り値は
何もない
15.3.17。通信トラフィックの閉鎖
トラフィックウィンドウが表示されている場合は閉じます。
関数の機能CloseCommunicationTraffic ViewCube ViewCubeパラメータ
関数にはパラメータがない。戻り値は
何もない
15.4。読み込み関数
次の機能は、読み取り/書き込み定義ダイアログボックスF8で設定したものと同じです。読み取り機能はModbusポーリングドキュメントに関連付けられています。(データのあるウィンドウ)例
' First a Modbus Poll document is needed.
Public doc As Object
Set doc = CreateObject("Mbpoll.Document")
res = doc.ReadCoils(1, 0, 100, 1000) ' Read 100 coils every 1000ms| プロパティを使用してデータを取得するには、読み取りを作成する必要があります。 |
4.1.1と●コイルの読み取り
Modbus関数コード0 1
Function ReadCoils SlaveID As Integer
SlaveID:アドレス1から255まで
住所:アドレス:データアドレス(ベース0)
数量:より:データの量。1 〜 2000年
スキャン速度: 0から3600000msの戻り値
成功すれば真です。成功しなければfalse
4.2.と。nbsp;ショップ型入力の読取り
Modbus機能コード0 2
Function ReadDiscreteInputs SlaveID As Integer
SlaveID:アドレス1から255まで
住所:アドレス:データアドレス(ベース0)
数量:より:データの量。1 〜 2000年
スキャン速度: 0から3600000msの戻り値
成功すれば真です。成功しなければfalse
15.4.3。リードホールドレジスタ
Modbus機能コード0 3
Function ReadHoldingRegisters SlaveID As Integer
SlaveID:アドレス1から255まで
住所:アドレス:データアドレス(ベース0)
数量:より:データの量。1から125まで
スキャン速度: 0から3600000msの戻り値
成功すれば真です。成功しなければfalse
15.4.4。読み取り入力レジスタ
Modbus機能コード0 4
Function ReadInputRegisters SlaveID As Integer
SlaveID:アドレス1から255まで
住所:アドレス:データアドレス(ベース0)
数量:より:データの量。1から125まで
スキャン速度: 0から3600000msの戻り値
成功すれば真です。成功しなければfalse
15.5。自動書き込み機能
write関数は、プロパティで埋められた配列に格納されている値を書き込みます。次のWrite関数は、データウィンドウを作成しません。データウィンドウを作成するには、Win関数を使用します。WriteMultipleRegistersWin。
15.5.1。シングルコイルを書く。
Modbus機能コード0 5。
書き込み配列の最初のコイルに格納されます。
Function WriteSingleCoil SlaveID As Integer
SlaveID:アドレス0から255まで
住所:アドレス:データアドレスベース0戻り値
書き込み配列の準備ができており、データが送信されている場合はTrue。配列が空であるか、パラメータが間違っている場合は、Falseを返します。
制御アプリケーションは、書き込まれた値を読み書きして書き込みを検証する責任があります。
15.5.2。単一レジスタの書き込み
Modbus機能コード0 6。
書き込みは配列に格納された最初のレジスタに書き込まれます。
Function WriteSingleRegister SlaveID As Integer
SlaveID:アドレス0から255まで
住所:アドレス:データアドレスベース0戻り値
書き込み配列の準備ができており、データが送信されている場合はTrue。配列が空であるか、パラメータが間違っている場合は、Falseを返します。
制御アプリケーションは、書き込まれた値を読み書きして書き込みを検証する責任があります。
15.5.3。複数のコイルを書く
Modbus機能コード15.
書き込み配列に格納されたコイルを書き込みます。
Function WriteMultipleCoils SlaveID As Integer
書き込み配列の準備ができており、データが送信されている場合はTrue。配列が空であるか、パラメータが間違っている場合は、Falseを返します。
制御アプリケーションは、書き込まれた値を読み書きして書き込みを検証する責任があります。パラメータ
SlaveID:アドレス0から255まで
住所:アドレス:データアドレス(ベースアドレス0)数データの数
。1968 年まで
15.5.4。複数のレジスタに書き込む
Modbus機能コード16.
書き込み配列に格納されているレジスタに書き込む。
Function WriteMultipleRegisters SlaveID As Integer
SlaveID:アドレス0から255まで
住所:アドレス:データアドレス(ベース0)
数量:より:データの量。1から123の戻り値
書き込み配列の準備ができており、データが送信されている場合はTrue。配列が空であるか、パラメータが間違っている場合は、Falseを返します。
制御アプリケーションは、書き込まれた値を読み書きして書き込みを検証する責任があります。
15.5.5。Pythonの例
Pythonの例では、アドレス0 40001から10個のレジスタを読み込み、5個のレジスタを書き込むウィンドウを作成する方法を示します。Pythonの例
import sys
import time
import win32com.client as win32
App = win32.Dispatch('Mbpoll.Application')
App.Connection = 1 # TCP/IP connection
App.IPAddress = "127.0.0.1"
App.ResponseTimeout = 1000 # Wait 1000ms until give up
App.DelayBetweenPolls = 20 # Ensure minimum 20 ms gap until next request
App.ConnectTimeout = 500 # Wait 500ms until give up
App.ServerPort = 502
result = App.OpenConnection
if result != 0:
print("Connection failed. Error: ", result)
sys.exit()
#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")
# Read 10 holding registers from slave ID 1, address 0 (40001) every 1000ms
Win1.ReadHoldingRegisters(1, 0, 10, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Show 10 rows
Win1.Rows(0)
# Resize the window to fit to the grid
Win1.ResizeWindow()
time.sleep(1.0) # Wait until read is done
if Win1.ReadResult == 0: # Check read result
print("Modbus register 0 (40001) = ", Win1.SRegisters(0))
else:
print("Read failed error: = ", Win1.ReadResult)
print ("Tx count = %d, Rx count = %d" % (Win1.GetTxCount, Win1.GetRxCount))
# Prepare the internal array in Modbus Poll with data to write
Win1.SRegisters(0, 1) # Note that parameter 1 is not a
Win1.SRegisters(1, 10) # Modbus address but an index to the array
Win1.SRegisters(2, 100)
Win1.SRegisters(3, 1000)
Win1.SRegisters(4, 10000)
# Write the registers. This function do not create a window in Modbus Poll
# Use the function <<WriteMultipleRegistersWin>> to create a data window
Win1.WriteMultipleRegisters (1, 0, 5)
_ = input("Wait for write Press ENTER:")
if Win1.WriteResult == 0: # Check write result
print("Modbus write success")
else:
print("Write failed error: = ", WriteResult)
_ = input("Press ENTER to quit:")15.6。複数の機能
Modbusポーリングドキュメントに関連する各種機能。(データの窓)
15.6.1。ウィンドウ·ディスプレイ
デフォルトでは、Modbusドキュメントウィンドウは非表示です。ShowWindow機能により、Modbus Pollはデータ内容を含むドキュメントを表示します。
関数の機能ウィンドウの表示ViewCube ViewCubeパラメータ
関数にはパラメータがない。戻り値は
何もない
15.6.2。送信数の取得
リクエスト数を取得。
関数の機能GetTxCount ViewCubeパラメータがある限り
関数にはパラメータがない。戻り値は
リクエストの数。
15.6.3。受信数の取得
応答数を取得する。
関数の機能GetRxCount ViewCubeパラメータがある限り
関数にはパラメータがない。戻り値は
応答の数。
15.6.4。名前の取得
値の名前を取得します。
関数の機能GetNameインデックスは整数
INDEX:インデックス0は最初のModbusアドレスに対応する。戻り値は
名前は。
15.6.5。名前の設定
値の名前を変更します。関数の機能SetNameインデックスは整数、名前は文字列
INDEX:インデックス0は最初のModbusアドレスに対応する。
名前は:値セルの名前。戻り値は
何もない
15.6.6。すべてフォーマット。
選択したフォーマットを使用して、すべての値のセルをフォーマットします。
関数の機能FormatAll[整数としてフォーマット]パラメータ
フォーマット:値のセルのフォーマット。戻り値は
何もない
15.6.7。フォーマットの取得
Modbus値の表示形式を取得します。
関数の機能GetFormatInde x for Integer
INDEX:インデックス0は最初のModbusアドレスに対応する。
戻り値は
| ID | フォーマット形式 |
|---|---|
| 0サイン。 | |
| 1 | 署名なし。 |
| 2 | 16進法 |
| 3 | Binaryシングル |
| 4 | 浮動小数点リトルエンバイトスワップ |
| 5 | 浮動小数点数 |
| 6 | デュアルリトルエンバイトスワップ |
| 7 | ダブルビッグエンド |
| 8 | 32ビット符号付きリトルエンド·バイトスワップ |
| 9 | 32ビット符号付き大仮数 |
| 10 | 浮動小数点数小仮数 |
| 11 | 浮動小数点ビッグエンディアンバイトスワップ |
| 12 | 二重小仮数 |
| 13 | デュアルビッグエンディアンバイトスワップ |
| 14 | 32ビット符号付きリトルエンディアン |
| 15 | 32ビット符号付きビッグエンディアン·バイト·スワップ |
| 背番号は17。 | 32ビット符号なしビッグエンディアン |
| 18 | 32ビット符号なしリトルエンバイトスワップ |
| 19 | 32ビット符号なしビッグエンディアン·バイト·スワップ |
| 20 | 32ビット符号なしリトルエンディアン |
| 21 | 64ビット符号付き大仮数 |
| 22 | 64ビット符号付きリトルエンディアン·バイト·スワップ |
| 23 | 64ビット符号付きビッグエンディアン·バイト交換 |
| 24 | 64ビット符号付きリトルエンディアン |
| 25 | 64ビット符号なしビッグエンディアン |
| 26 | 64ビット符号なしリトルエンバイトスワップ |
| 27 | 64ビット符号なしビッグエンディアン·バイト·スワップ |
| 28 | 64ビット符号なしリトルエンディアン |
| この設定は、表示のみに使用されます。Get/Set値関数を使用する場合、正しいバイト順序を取得するにはbyteOrderを使用する必要があります。 |
15.6.8。フォーマットの設定
Modbus値の表示形式を変更します。上記の書式値を参照してください。
関数の機能SetFormat[インデックスは整数、フォーマットは整数]パラメータ
INDEX:インデックス0は最初のModbusアドレスに対応する。
フォーマット:値のセルのフォーマット。戻り値は
何もない
15.6.9。ウィンドウのサイズ変更
開いているウィンドウのサイズをグリッドに合わせて変更します。
関数の機能ウィンドウのサイズ変更ViewCube ViewCubeパラメータ
関数にはパラメータがない。戻り値は
何もない
15.6.10。すべての列のサイズ変更
すべての列のサイズをセル内の値に合わせて変更します。
関数の機能すべての列のサイズ変更()パラメータ
関数にはパラメータがない。戻り値は
何もない
15.6.11。行の数
グリッド内の行数を指定します。
関数の機能OKです。NumberRows
NumberRows:グリッド内の行数
| ID | 説明する。 |
|---|---|
| 0 10行(デフォルト) | |
| 1 | 20 行。 |
| 2 | 50 行。 |
| 3 | 100 行。 |
| 4 | 適切な量 |
戻り値は
何もない
15.6.12。結果の読み取り
このプロパティを使用して、Readを介して確立された通信が正常に実行されているかどうかをチェックします。
プロパティは結果です。Read ingとは整数パラメータの場合
関数にはパラメータがない。戻り値は
| エラーです。 | 説明する。 |
|---|---|
| 0成功する。 | |
| 1 | タイムアウトエラー |
| 2 | CRCエラー |
| 3 | 応答エラー応答が意図したスレーブID、機能、アドレスではない |
| 4 | 書き込みエラー |
| 5 | 読み取りエラー |
| 6 | ポートが開いていないエラー |
| 10 | データが初期化されない |
| 11 | 受信バイト数が不十分 |
| 16 | バイト数エラー |
| 19 | トランザクションIDエラー |
| 81時間。 | 違法な機能 |
| 82時間。 | 違法なデータアドレス |
| 83時間。 | 不正なデータ値 |
| 84時間。 | サーバーデバイスの障害 |
| 85時間。 | 承認する |
| 86時間。 | サーバー·デバイスがビジー状態 |
| 87時間。 | NAK:否定的な確認 |
| 8時に | ゲートウェイパスが使用できません |
| 8Bh | ゲートウェイターゲットデバイスが応答できません |
15.6.13。結果の書き込み
この関数を使用して、書き込みが成功したかどうかを確認します。
スレーブの結果が利用可能になるまで、値はDATA_UNINITIALIZEDです。ご参照ください。ReadResult可能な値のリストを取得します。
プロパティWriteResult As Integerの戻り値
書き込み結果を整数として返します。
15.6.14。貯蓄は
現在のウィンドウを保存。関数の機能Save PathName As String
PathName:ファイルの保存先の完全パス。戻り値は
ブール値の例
' First a Modbus Poll document is needed.
Public doc As Object
Set doc = CreateObject("Mbpoll.Document")
res = doc.ReadCoils(1, 0, 100, 1000) ' Read 100 coils every 1000ms
res = doc.Save("C:\Users\UserName\Desktop\testfile.mbp")15.7。オートメーションのデータプロパティ
次のプロパティは、Modbus Pollで内部書き込み/読み取り配列の値を設定または取得するために使用されます。使用されるインデックスはModbusアドレスではない。使用するアドレスに関係なく、インデックスは常に0からカウントされます。データ属性はModbusポーリングドキュメントに関連付けられています。(データの窓)
各データプロパティには2つのバージョンがあります。
- 接尾辞のないもの、例えばSRegisters内部の書き込み/読み取り配列から値を設定または取得するために使用します。
- 例えば、勝利の接尾辞として。SRegistersWinデータウィンドウから直接値を設定または取得できます。データウィンドウが関数の書き込みに使用される場合(例:WriteMultipleRegistersWin の际にこの
例1:
' doc is assumed created first. See Excel example. ' Writes 1 to index 0 in the data array used for the Write function later doc.SRegisters(0) = 1 doc.SRegisters(1) = 10 doc.SRegisters(2) = 1234 ' Write 3 registers stored in Modbus Poll internal array ' to Modbus address 100 (40101) ' A window is not created res = doc.WriteMultipleRegisters(1, 100, 3) ' The above example do not create a data window but just make a single Modbus write.
浮動小数点値を使用した例2
3つの浮動小数点値を書く。
' doc is assumed created first. See Excel example. doc.Floats(0) = 1.3 doc.Floats(2) = 10.5 doc.Floats(4) = 1234.12 ' Write the 6 register stored in Modbus Poll res = doc. WriteMultipleRegisters(1, 0, 6) ' 6 Registers are written as a floating point value is 32 bit wide.
例3:
3つのレジスタに書き込むウィンドウを作成します。
' doc is assumed created first. See Excel example. ' A window is created that writes the content every 1000ms res = doc.WriteMultipleRegistersWin(1, 100, 3, 1000) ' Writes 1 to the first cell in the data window doc.SRegistersWin(0) = 1 doc.SRegistersWin(1) = 10 doc.SRegistersWin(2) = 1234 ' Now the 3 registers are written to slave id 1 address 100 every 1000ms
15.7.1。コイル、コイルWin
プロパティコイルコイルコイル(インデックスは整数)は整数記述
write配列構造体にコイルをセットするか、read配列からコイルを返します。シンタックス
コイルコイルコイル(インデックス)[=新しい値]
15.7.2。SRegisters、SRegistersWin
プロパティSRegisters(インデックスは整数)は整数記述
書き込み配列構造体にレジスタをセットするか、読み取り配列からレジスタを返します。シンタックス
SRegisters(インデックス)[=新しい値]
15.7.3。URegisters、URegistersWin
プロパティURegisters(インデックスは整数)記述する限り
書き込み配列構造体にレジスタをセットするか、読み取り配列からレジスタを返します。シンタックス
URegisters(インデックス)[=新しい値]
15.7.4。Ints_32、Ints_32Win
プロパティInts_32(インデックスは整数)はDoubleの記述
write配列構造体に32ビット整数を設定するか、read配列から整数を返します。シンタックス
Ints_32(インデックス)[=新しい値]
15.7.5。UInts_32、UInts_32Win
プロパティUInts_32(インデックスは整数)はDoubleの記述
write配列構造体に32ビットの符号なし整数を設定するか、read配列から符号なし整数を返します。シンタックス
UInts_32(インデックス)[=新しい値]
15.7.6。Ints_64、Ints_64Win
プロパティInts_64(インデックスは整数)はDoubleの記述
write配列構造体に64ビット整数を設定するか、read配列から整数を返します。シンタックス
Ints_64(インデックス)[=新しい値]
15.7.7。UInts_64、UInts_64Win
プロパティUInts_64(インデックスは整数)はDoubleの記述
64ビットの符号なし整数をwrite配列構造体に設定するか、読み出し配列から符号なし整数を返します。シンタックス
UInts_64(インデックス)[=新しい値]
15.7.8。車が勝つ。
プロパティフローティング。(インデックスは整数)単一の記述
write配列構造体に浮動小数点数を設定するか、read配列から浮動小数点数を返します。シンタックス
浮動小数点数(インデックス)[=新しい値]
15.7.9。ダブル&ダブル優勝
プロパティ倍精度は(インデックスは整数)は倍精度記述
write配列構造体にdouble値を設定するか、読み出し配列からdouble値を返します。シンタックス
ダブルダブル。(インデックス)[=新しい値]
15.7.10。バイト順序
プロパティByteOrder整数としての記述
Ints_32、UInts_32、Ints_64、UInts_64、Floats、Doublesの各プロパティで使用されるバイト順序を設定します。
Winバージョンではこのプロパティは使用されませんByteOrder。
| ID | バイト順序 |
|---|---|
| 0主に。(デフォルト) | |
| 1 | リトルエンディングバイトスワップ |
| 2 | ビッグエンディアン·バイト交換 |
| 3 | 小仮数法 |
Ints_32の例:
バイト順序:Big-endian
10進数123456 7 8 9または16進数0 7 5B CD 15
Modbusメッセージにおける回線による転送の順序:07 5B CD 15構文
バイト順序(新しい価値観)
15.8。関数の記述データウィンドウの作成
次の機能は、読み取り/書き込み定義ダイアログボックスF8で設定したものと同じです。
この関数はデータウィンドウを作成し、スキャンレートに応じてデータウィンドウ内のデータ内容を書き込みます。
15.8.1。シングル·コイルの勝利
Modbus機能コード0 5。
Function WriteSingleCoilWin SlaveID As Integer
SlaveID:アドレス1から255まで
住所:アドレス:データアドレスBase 0
スキャン速度: 0から3600000msの戻り値
成功すれば真です。成功しなければfalse
15.8.2。書き込みシングルレジスタWin
Modbus機能コード0 6。
Function WriteSingleRegisterWin SlaveID As Integer
SlaveID:アドレス1から255まで
住所:アドレス:データアドレスBase 0
スキャン速度: 0から3600000msの戻り値
成功すれば真です。成功しなかった場合の偽のPythonサンプルウィンドウを開き、1000ミリ秒ごとにレジスタに書き込む方法
import win32com.client as win32
SIGNED = 0
App = win32.Dispatch('Mbpoll.Application')
App.Connection = 1
App.IPAddress = "127.0.0.1"
App.ServerPort = 502
App.OpenConnection
#Create a Modbus display window called Win1
Win1 = win32.Dispatch("Mbpoll.Document")
# Write 1 holding registers to slave ID 1, address 0 (40001) every 1000 ms
Win1.WriteSingleRegisterWin(1, 0, 1000)
# Show the Modbus window
Win1.ShowWindow()
# Fit rows to quantity
Win1.Rows(4)
# Disable refresh for speed
Win1.EnableRefresh = False
# This sets how the value is displayed
Win1.SetFormat(0, SIGNED)
# Set the Name of the register
Win1.SetName(0, "Setting")
# Set the value to write
Win1.SRegistersWin(0, 100)
Win1.EnableRefresh = True
Win1.ResizeAllColumns ()
Win1.ResizeWindow()
_ = input("Press ENTER to quit:")15.8.3。複数のコイルの書き込みWin
Modbus機能コード15。
Function WriteMultipleCoilsWin SlaveID As Integer
SlaveID:アドレス1から255まで
住所:アドレス:データアドレス(ベース0)
数量:より:データの量。1968年まで
スキャン速度: 0から3600000msの戻り値
成功すれば真です。成功しなければfalse
15.8.4。複数のレジスタに書き込むWin
Modbus機能コード16。
Function WriteMultipleRegistersWin SlaveID As Integer
SlaveID:アドレス1から255まで
住所:アドレス:データアドレス(ベース0)
数量:より:データの量。1から12 3
スキャン速度: 0から3600000msの戻り値
成功すれば真です。成功しなければfalse
16.例外とエラーメッセージ
Modbusの例外とエラーメッセージは、各ウィンドウの2行目に赤いテキストで表示されます。。

16.1とModbus例外コード
Modbus例外は、スレーブデバイスから返されるエラーです。
| コードコード。 | 名前は | 意味がある。 |
|---|---|---|
| 01 | 違法な機能 | クエリで受信した機能コードは、サーバ(またはスレーブ)が許可する操作ではありません。これは、機能コードが新しいデバイスにのみ適用され、選択したデバイスには実装されていないためです。また、サーバ(またはスレーブデバイス)がそのような要求を処理するためにエラー状態にあることを示すこともあります。例えば、設定されておらず、レジスタ値を返すよう求められているためです。 |
| 02 | 違法なデータアドレス | クエリで受信したデータアドレスは、サーバが許可しているアドレスではありません。より具体的には、参照番号と伝送长の组み合わせは无効である。レジスタが100個あるコントローラの場合、PDUは最初のレジスタを0に、最後のレジスタを99にアドレス指定します。開始レジスタアドレスが96で、レジスタ数が4であるリクエストが送信された場合、リクエストは(少なくともアドレスによって)レジスタ96、9 7、9 8、99で正常に実行される。開始レジスタアドレスが96で、レジスタ数が5のリクエストを送信すると、レジスタ96、9 7、9 8、9 9、および100に対して操作を試みたが、アドレス100のレジスタが存在しなかったため、リクエストは例外コード0 x 0 2“不正なデータアドレス”で失敗します。 |
| 03 | 違法データの価値 | クエリデータフィールドに含まれる値は、サーバまたはスレーブが許可する値ではありません。これは、暗黙の長さが間違っているなど、複雑なリクエストの残りの部分の構造に誤りがあることを示します。特に、MODBUSプロトコルは特定のレジスタの特定の値の重要性を認識しないため、レジスタに格納されたデータ項目がアプリケーションが期待しない値を持つことを意味するものではない。 |
| 04 | サーバーデバイスの障害 | サーバ(またはセカンダリ·サーバ)が要求された操作を実行しようとしたときに、回復不可能なエラーが発生しました。 |
| 05 | 承認する | 特にプログラミングコマンドと組み合わせて使用されます。 サーバー(またはスレーブ)はリクエストを受け入れ、処理していますが、完了するまでに長い時間がかかります。このレスポンスは、クライアント(またはホスト)のタイムアウトエラーを防ぐために返されます。クライアントまたはホストは、次に、処理が完了したかどうかを判断するために、ポーリングプログラム完了メッセージを発行することができる。 |
| 06 | サーバー機器がビジー | 特にプログラミングコマンドと組み合わせて使用されます。 サーバ(またはスレーブ)が長時間のプログラムコマンドを処理している。サーバ(またはスレーブ)がアイドル状態の場合、クライアント(またはホスト)は後でメッセージを再送信する必要があります。 |
| 0A | ゲートウェイパスが使用できません | ゲートウェイと組み合わせて使用される場合は、ゲートウェイが要求を処理するために入力ポートから出力ポートへの内部通信パスを割り当てることができないことを示します。通常、ゲートウェイの設定ミスや過負荷を意味します。 |
| 0B | ゲートウェイ·ターゲット·デバイスの応答に失敗しました | ターゲット·デバイスから応答が得られなかったことを示すゲートウェイと組み合わせて使用されます。これは通常、デバイスがネットワーク上に存在しないことを意味します。 |
16.2。nbsp;Modbusポーリングエラーメッセージ
| エラーメッセージの表示 | 意味がある。 |
|---|---|
| タイムアウトエラー | 予想された時間内に応答がなかった。次の項目を確認します。シリアル接続シリアル設定ボーレート、パリティ、データビット、ストップビットなど。Modbusモード、RTUまたはASCIIスレーブID応答タイムアウトTCP/IP接続応答タイムアウトホストとポートがスレーブと一致しているかどうかを確認する |
| 応答エラー | 応答は予想外です。異なるスレーブID。 |
| CRCエラー | 受信した応答のCRC値が正しくありません。 |
| 書き込みエラー | これはシリアルドライバからされるエラーです。USB/RS 232/485ドングルを使用していて、USBケーブルを抜いている場合に発生することがあります。割り込み条件入出力エラーシリアル接続エラー出力バッファオーバーフロー TCP/IP接続を使用した書き込みエラーは、通常、接続の喪失が原因です。 |
| 読み取りエラー | これはシリアルドライバからされるエラーです。フレーミングエラー文字バッファオーバーフローパリティエラー入力バッファオーバーフロー入出力エラー割り込み条件TCP/IP接続を使用した読み取りエラーは、通常、接続の喪失が原因です。 |
| 受信バイト数が不十分 | 応答の長さは予想外でした。 |
| バイト数エラー | 応答のバイト数が正しくありません。予想と比べると。 |
| トランザクションIDエラー | これは、MODBUSサーバがリクエストのトランザクション識別子をレスポンスでコピーするトランザクションペアリングに使用されます。 |
好
11
1