Modbus Poll 中文版用户手册及ソフトウェアのダウンロード

Paid ¥4.99Paid ¥4.99

该内容已接入现有会員/有料系统,解锁后可完全な情報を見る或添付ファイルのダウンロード。

表示解锁方式
Modbus Poll 中文版用户手册及ソフトウェアのダウンロード
Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト

Mini Program Version,無料使用!!!

Modbus Poll简介

Modbus Poll 是一款易于使用的 Modbus マスターSimulator(シミュレータ),専用に多种用途而开发。

其中包括:

  • Modbus スレーブデバイス设计人员,用于快速轻松地测试协议接口
  • 需要在现场测试Modbusデバイス或网络的自動化エンジニア
  • 想要从デバイス中読み取り和/或更改特定服务データ的服务エンジニア
  • 更改从デバイス中的 Modbus register
  • 记录来自 Modbus デバイス的データ
  • トラブルシューティング和合规性测试

Modbus Poll 的系统要求

硬件要求

処理器;建议使用 1 GHz 或更快 1 GB RAM
5 MB 可用硬盘空间
1024 x 768 表示分辨率オペレーティングシステム要求

サポート从 Windows 7 to Windows 11 的すべての Windows 版本。

Modbus PollFunction

connect

Modbus Poll使用以下方式对从デバイス読み取り/写入データ:

  • RS232 或 RS485 网络上的 Modbus RTU 或 ASCII。(USB/RS232/485変換器です。)
  • 基于 TCP/IP 的 Modbus。(封装在TCPデータパケットは中的Modbus RTU/ASCII)
  • 基于 UDP/IP 的 Modbus。(封装在 UDP データパケットは中的 Modbus RTU/ASCII)

サポート的ModbusFunction

  • 01 (0x01) リードコイル
  • 02 (0x02) Read discrete inputs
  • 03 (0x03) Read and hold register
  • 04 (0x04) Read input register
  • 05 (0x05) 写入单コイル
  • 06 (0x06) Write to a single register
  • 08 (0x08) 诊断(仅限串行线路)
  • 11 (0x0B) 取得通信イベント数器(仅限串行线路)
  • 15 (0x0F) Write multiple coils
  • 16 (0x10) Write multiple registers
  • 17 (0x11) 报表サーバー·サーバー ID(仅限串行行)
  • 22 (0x16) 掩码写入レジスタ
  • 23 (0x17) 读/write multiple registers
  • 43 / 14 (0x2B / 0x0E) 読み取りデバイス标识

Data recording

  • 将データ記録到文本記事件
  • 将データ直接记录到 Excel 中

Display format

每个ユニット格都可以单独設定格式。

中文説明英文説明
16位記号付き。レジスタSigned 16-bit register
16ビット符号なしレジスタUnsigned 16-bit register
hexadecimalHex
binaryBinary
具有任意字/バイト顺序的 32 ビット符号付き整数32-bit signed integer with any word/byte order
具有任意字/バイト顺序的 32 ビット符号なし整数32-bit unsigned integer with any word/byte order
具有任意字/バイト顺序的 64 ビット符号付き整数64-bit signed integer with any word/byte order
具有任意字/バイト顺序的 64 ビット符号なし整数64-bit unsigned integer with any word/byte order
具有任意字/バイト顺序的 32 ビット浮動小数点数32-bit float with any word/byte order
具有任意字/バイト顺序的 64位倍精度浮動小数点数64-bit double float with any word/byte order

其他功能

  • 用于与 Excel、VBA、Python 等接口的 OLE/Automation。
  • モニタリングデータトラフィック
  • 打印和打印预览
  • 字体選択
  • 条件颜色
  • Zoom
  • 实时图表
  • 保存/打开工作区
  • アドレス扫描

Modbus Poll概述

Modbus Poll 使用多窗口界面。这意味着可以打开几个窗口。 每个都同时具有来自不同スレーブデバイス的不同データ内容。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト1

随时随地提供帮助

按 F1 并取得与当前所选项目关联的主题的Contextより相关帮助。

SHIFT + F1 调用一种特殊的“帮助モード”,在这种モード下,光标会变成帮助光标(箭头 + 问号)。 然后,用户可以在用户界面中選択可见对象,例如菜单项、工具栏按钮或窗口。 这将打开有关説明所选项目的主题的帮助。

命名ユニット格

ここで,您可以键入任何文本来指定值ユニット格。您还可以从 Excel ユニット格コピー/貼り付け文本。

值ユニット格

表示Modbusレジスタ的データ值。もし双击值ユニット格,则会出现一个对话框 将新值写入从デバイス。在值ユニット格中键入数字也会表示对话框。 可以選択用于値の書き込み的 Modbus 函数。

“在レスポンス正常时关闭对话框”复选框用于在成功送信值时自动关闭对话框。 当要更改大量值时,这很方便。这样,可以快速選択新ユニット格,然后再次键入新值。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト2

更改字体

要更改字体,您有 2 个选项

  • 選択要更改的ユニット格,然后单击鼠标右クリック。
  • 選択要更改的ユニット格,然后選択 Menu→Display→Font。
Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト3

条件颜色

条件颜色可帮助您直观地表示特定範囲内的值。3种颜色選択

  • デフォルト颜色:もしない任何条件颜色的計算结果为 true,则使用此颜色。
  • Rules 1:もし表达式的計算结果为 true,则使用此颜色選択。Rules 1 优先于ルール 2。
  • Rules 2:もし表达式的計算结果为 true,则使用此颜色選択。

7种比较运算符

中文説明英文説明
未使用not used
equal toequal to
greater thangreater than
less thanless than
greater than or equal togreater than or equal to
less than or equal toless than or equal to
and

当データ型为浮点型或 32 位长タイプ时,不能使用“and”运算符。 もし選択“and”,则条件值将作为十六进制数字入力。 もしユニット格和条件值中的任何位均为 1,则計算结果为 true。

颜色サンプル

もしユニット格值大于 0,则为绿色,もし小于 0,则为红色。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト4

Zoom

缩放可帮助您将元の值缩放为人类可读的值。缩放仅適用される記号付き。和符号なし。的 16/32 ビット整数型。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト5

(X1,Y1) 和 (X2,Y2)

穿过两点 (X1,Y1) 和 (X2,Y2) 的线

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト6

线方程

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト7

精度

小数点后的位数。

使

必须有効才能从 Modbus Server/スレーブ缩放值。もし出现其他情况,则自动無効缩放 Choice 16/32 ビット整数型表示格式。

实时图表

该图表可以实时绘制 12 个系列,每个系列最多 100000 个点。

アドレス扫描

扫描アドレス範囲以取得デバイス中すべての有效アドレス的リスト。

打开一个新窗口

要打开另一个窗口,您有 3 个选项:

  • 按 CTRL+N
  • 在文件菜单中選択新建
  • Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト8在工具栏上

连接对话框

要打开连接对话框,您有 2 个选项:

  • 按 F3
  • 从连接菜单中選択连接
Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト9

connect(Connection)

有 5 种不同的连接タイプ:

  1. 串行:
    串行线路上的Modbus。RS232 或 RS485。可以使用USB串行変換器です。。
  2. Modbus TCP/IP:
    もし要与 MODBUS TCP/IP 网络通信,Please select TCP/IP。在本例中,从属 ID 是 与 MODBUS TCP/IP で使用する。的デバイス ID 相同。
    ポート番号デフォルト为 502。
    もし接続の失敗,请尝试在命令提示符下对デバイス执行 ping Operation。もし ping 命令失敗,则 Modbus ポーリング也会失敗。
  3. Modbus UDP/IP:
    もし要与 MODBUS UDP/IP 网络通信,Please select UDP/IP。这与Modbus相同 TCP/IP,但改用连接较少的 UDP Protocol。
  4. Modbus RTU/ASCII over TCP/IP:
    这是経由 TCP/IP 网络而ではない串行线路送信的 RTU 或 ASCII メッセージ。
  5. Modbus RTU/ASCII over UDP/IP:
    这是経由 UDP/IP 网络而ではない串行线路送信的 RTU 或 ASCII メッセージ。

注意:连接タイプ 3-5 ではない www.modbus.org 指定的標準 Modbus,但为了方便起见,追加了它们。

根据あなたの選択,其他一些設定将表示为灰色。

シリアルポート設定(Serial Settings)

使用这些参数可以設定串行ポートの設定。仅当连接タイプ为“串行ポート”时,它们才可用。

モード

使用此选项可選択 RTU 或 ASCII モード。デフォルト RTU。

レスポンス·タイムアウト

指定 Modbus ポーリング在放弃之前应待機中スレーブデバイスレスポンス的时间長さ。デフォルト値为 1000ms。

ポーリング之间的最小延迟

无论扫描速率如何,此設定都可确保在传输下一个リクエスト之前将延迟降至最低。 此設定的分辨率约为 15 毫秒。在某些計算机上可以获得更好的分辨率,但ではないすべて。

注意:

1.もし将此值設定为低于 20 毫秒,则无法保证レスポンス和新リクエスト之间的 3.5 个文字的時間の間隔。 这是因为 Windows 计划程序每 10 - 20 毫秒切换一次任务。

2.もしポーリング串行 RS485 网络中的多个スレーブ,则不应将该值設定为低于 20 毫秒。这是为了确保 3.5 个文字的時間の間隔。

3.在 TCP/IP 网络中,less than 20 毫秒是可以的。

4.仅与一个从デバイス的串行连接小于 20 毫秒即可。

用户ボーレート

もしデフォルトボーレート均无用,请指定自定义ボーレート。

远程サーバー·サーバー

远程サーバー·サーバー設定仅在使用イーサネット(イーサネット)连接时可用。

IPaddress

Server IP address。デフォルト値为 localhost 127.0.0.1

ポート

サーバー側。口号。デフォルト値 502

接続タイムアウト

用于建立连接的最长时间。デフォルト値 1000

エキスパート設定

RTS Switch

RTS Toggle 指定もしバイト可用于传输,则 RTS 行将为高电平。送信完すべての缓冲バイト后,RTS 行将变为低电平。
もし您有一个ない自动方向切换的 232/485 Converters,您可以使用它来切换方向。

注意:

もし可能,应避免使用 RTS 控制的 RS232/RS485 Converters。 很难确定以非实时方式关闭发射器的确切时间 Windows 和 Linux 等オペレーティングシステム。もし过早关闭,文字可能仍会坐着 在FIFO或UART的发射レジスタ中,这些文字将丢失。因此奴隶 認識できない该メッセージ。另一方面,もし它关闭得太晚,那么スレーブ的メッセージ 已损坏,主サーバー·サーバー将認識できない该メッセージ。

DSRformat

DSR 指定是否监视 DSR(データ集就绪)信号以进行出力トラフィック控制。もし此成员为 TRUE 且 DSR 处于关闭ステータス,则出力将挂起,直到再次送信 DSR。

CTS服务

CTS 指定是否モニタリング CTS(clear-to-send)信号以进行出力トラフィック控制。もし有効此复选框并关闭 CTS,则出力将暂停,直到再次送信 CTS。

DTRcompany

DTR 指定在打开ポート时是有効まだ無効 DTR。

Delete Echo

もしあなたのデバイス或 RS232/RS485 変換器です。回显刚刚送信的文字。

读/写定义

使用此命令可以定义要监视的活动窗口的データ。

若要打开“读/写定义”对话框,有 3 个选项:

  • 按 F8
  • 从“設定”菜单中選択“读/写定义”
  • Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト10在工具栏上
Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト11

slaveID

範囲 1 to 255。(MODBUSプロトコルの仕様是247)。值 0 利用可能です。于直接与 MODBUS/TCP 或 MODBUS/UDP デバイス通信。

函数代码

您可以从 8 个功能代码中選択 1 个。

読み取り函数

読み取り函数戻る的データ将表示在网格窗口中。

  • 01:リードコイル (0x)
  • 02: Read discrete inputs (1x)
  • 03: Read and hold register (4x)
  • 04: Read input register (3x)

编写函数

写入函数写入表示在网格窗口上的データ。

  • 05: 写入单コイル(写入コイルの状態)
  • 06: Write to a single register(書き込み保持レジスタ)
  • 15:Write multiple coils(写入コイル)
  • 16:Write multiple registers(書き込み保持レジスタ)

address

Modbus protocol中的アドレス令人困惑!某些プロトコルの仕様使用协议/メッセージ address,其他人使用デバイス寻址。

Protocol/メッセージアドレス

某些プロトコルの仕様使用从 0 to 65535 计数的协议/メッセージアドレス以及 函数代码。这也是新的Modbus规范所使用的。这是里面的アドレス 経由网络送信的メッセージ。

Modbus Poll 使用协议/メッセージアドレス计数从 0 to 65535。

Device address

某些プロトコルの仕様使用デバイスアドレス/register。レジスタ计数从 1 开始。 第一位数字説明要使用的函数。这意味着デバイスアドレス 40101 由アドレス 100 标识。“4”表示レジスタを保持する。,4x レジスタ从 1 开始计数。 因此,“4XXXX”引用是隐式的。 更令人困惑的是:4x 表示功能代码 03,3x 表示功能代码 04!

5 位数字与 6 位寻址

アドレス格式 4x 从 40001 计数到 49999。下一アドレスはこちら。ではない 50000。 在过去,9999アドレスはこちら。就足够了。在某些情况下,9999 是不够的。 然后追加一个零。40101 变为 400101,依此类推。这称为 6 位寻址或扩展寻址。

这ではない Modbus Poll 的問題。410001变成 10000。“4”被扔掉,其余的 10001 当我们从 0 而ではない 1 开始计数时,会减少 1。

アドレスサンプル

这些サンプル表示了在规范使用デバイスアドレス时如何設定 Modbus Poll。

Read and hold register

您希望每 1000 毫秒从从属 ID 2 読み取りデバイスアドレス 40011 的 20 Registers。从“4”中我们知道这是函数 03“Read and hold register”。

  • slave ID = 2
  • 函数 = “03 Read and hold register (4x)”
  • address = 10(11 减去 1)
  • Quantity = 20
  • 扫描速率 = 1000
Read discrete inputs

您希望每 500 毫秒住所から。 110201 从 ID 5 read 1000 1つのコイル。从“1”中我们知道这是函数 02“Read discrete inputs”

  • slave ID = 5
  • 函数 = “02 Read discrete inputs (1x)”
  • address = 10200 (10201 - 1)
  • Quantity = 1000
  • 扫描率 = 500

扫描速率

扫描速率可以从0到3600000ms設定。请注意,将扫描速率設定为低于トランザクション 时间ない意义。もし使用 9600 波特的串行连接并リクエスト 125 Registers トランザクション时间大约是 8 + 2 + 250 + 2 = 262ms + リクエスト之间的間隔(>3.5 个文字の時間) 和回应。在这种情况下,将扫描速率設定为100ms是ない意义的,因为トランザクション时间 至少 262 毫秒 + スレーブ延迟(间隙)+ ポーリング之间的最短时间。(在连接对话框 F3 中に設置。)。

無効读/写

“無効读/写”复选框可用于临时有効或無効通信 此窗口。然后表示文本 (Disabled) 以及 Tx 和 Error カウンター·カウンター。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト12
もし無効了“读/写”,您可以使用“读/写一次”按钮或按 F6 发出单个リクエスト。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト13
“读/写一次”button

出错时無効

もし出现エラー,请無効读/写。

非表示名称列

非表示すべての名称列。もし不使用它们,这可以方便地腾出もっと見る空间。

ユニット格中的アドレス

もし有効,则アドレス也会表示在值ユニット格中,例如:2000 = 00000

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト14

PLCaddress(基数1)

此选项会将アドレス表示为デバイスアドレス。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト15

Enron/Danielモード

Enron 或 Enron/Daniels Modbus 是带有一些“供应商扩展”的標準 Modbus。 这些扩展的确切影响取决于Contextより,但大多数常见的 Modbus 命令按预期工作。 有一些自定义的供应商定义的函数可用 - 但很少有用户期望または使用它们。 最大的影响与 32 ビット·データ值的読み書き方式有关。

Enron-Modbus 定义了2つ特殊的 4x レジスタを保持する。範囲:

  • 4x5001 to 4x5999 假定为 32 位长整数(すべてのレジスタ。 4 バイト単位。)。
  • 4x7001 to 4x7999 假定为 32 位浮点(すべてのレジスタ。 4 バイト単位。)。

在 Modbus 処理中です 32 位值并非 Enron-MB 所独有。但是,Enron-MB 需要 すべてのレジスタ。戻る 4 バイト単位。而ではない 2 バイト単位。的有争议的步骤 Modbus 规范中的术语“レジスタを保持する。”。这意味着对レジスタ进行ポーリング Enron-Modbus 中的 4x5001 和 4x5002 戻る 8 バイト単位。或2つ 32 ビット整数型,而 Standard Modbus 只会戻る 4 バイト単位。或一个 32 ビット整数型,被视为2つ 16 ビット整数型。 此外,Enron-MB 中的ポーリングレジスタ 4x5010 戻る第十个 32 位长整数, 而標準 Modbus 会考虑此範囲内第五个 32 位长整数的 1/2。

指定您喜欢的网格中的行数。

实时图表

使用此命令可在图表中实时绘制多达 12 个データ系列。
实时图表速度快,能够在收到新データ时快速绘制新线。

注意:

すべての图表設定都保存在工作区文件中。保存/打开工作区

要打开“实时图表”对话框,您有 2 个选项:

  • 按 Alt + R
  • 从表示菜单中選択“实时图表”
Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト16

X 轴表示自图表启动以来的秒数。

当点到达图表的末尾时,有 3 个选项:

  • 最后停下来:图表停止。
  • 最后重新启动:图表再スタート。。
  • 继续:它一直持续到达到最大点数或按下停止键。

設定

デフォルト情况下,すべての 12 个系列都链接到左侧 Y 轴。チェック “右 Y 轴”复选框(もし要将序列链接到右 Y 轴)。

指定

  • 颜色
  • 右 Y 轴
  • 标题。もし标题为空,则使用阅读窗口中的名称进行初期化
  • 抵消

表示

  • 文件名
  • address

オフセットの量可用于在同一 Y 轴上对齐データ点。例如,データ点为 0 或 1 可以偏移,这样它们就不会相互重叠绘制。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト17

缩放功能

もし您想もっと見る>>詳細はこちら,放大图表会很有用。 缩放由鼠标左键控制。要缩放图表的特定部分,只需单击鼠标左键即可 在图表上(这将是缩放矩形的左上角),然后拖动到右下角。 将出现一个矩形。松开鼠标按钮后,轴将自动 根据您選択的エリア进行调整。

もし您左键单击图表(例如开始缩放),但もし您移動到左上角, 使用缩放和平移功能完成的すべての修改都将被キャンセル (图表将处于使用平移和缩放操作之前的ステータス)。

平移功能

若要平移控件,请右クリック单击控件上的某个位置并移動鼠标。鼠标下方的点 将跟随鼠标的移動。

除非您将 Modbus データユニット链接到 12 系列之一,否则图表不知道要使用哪些データ。 为此,選択してください。一个值ユニット格,然后从菜单→表示中選択“链接到图表”。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト18

导出系列

将系列データ保存する。磁盘或コピー到剪贴板。将データ直接貼り付け到 Excel 中以供进一步処理。
尽管使用了非逗号字段分隔符,但该文件仍具有.csv扩展名。

分隔符:選択用于分隔文本記事件中值的文字。Copy/貼り付け到 Excel 使用するとき制表符分隔符。此外,还提供了一些附加信息。

  • 点数
  • 最大点值
  • 最小点值
  • 平均分值
Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト19

アドレス扫描

扫描アドレス範囲以取得デバイス中すべての有效アドレス的リスト。逐个読み取りアドレス,読み取り结果表示在リスト中。

注意:

扫描すべての 65535 アドレスはこちら。需要一些时间,具体取决于连接タイプ、サーバー·サーバーデバイス等。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト20

导出アドレス扫描

将アドレス扫描データ保存する。磁盘或コピー到剪贴板。将データ直接貼り付け到 Excel 中以供进一步処理。
尽管使用了非逗号字段分隔符,但该文件仍具有.csv扩展名。

分隔符:選択用于分隔文本記事件中值的文字。Copy/貼り付け到 Excel 使用するとき制表符分隔符。

Display format

标记要格式化的ユニット格。从表示菜单中選択 28 种表示格式之一。

Native Modbus register

16 位 Modbus レジスタ可以以 4 种不同的モード表示。

  • 签署
  • 符号なし。
  • hexadecimal
  • ASCII - hexadecimal
  • 二元的

32ビット符号付き整数

它结合了 2 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 記号付き。整数 Big-endian
  • 記号付き。整数 Little-endian
  • 記号付き。整数ビッグエンディアンバイトスワップ
  • 記号付き。整数 Little-endian バイトスワップ例バイト顺序:AB CD(ビッグエンディアン)
    十进制数 123456789 或十六进制 07 5B CD 15 在 Modbus メッセージ中経由线路
    配列时的顺序:07 5B CD 15

32ビット符号なし整数

它结合了 2 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 符号なし。整数 Big-endian
  • 符号なし。整数 Little-endian
  • 符号なし。整数ビッグエンディアンバイトスワップ
  • 符号なし。整数 Little-endian バイトスワップ例バイト顺序:AB CD(ビッグエンディアン)
    十进制数 123456789 或十六进制 07 5B CD 15 在 Modbus メッセージ中経由线路
    配列时的顺序:07 5B CD 15

64ビット符号付き整数

它结合了 4 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 記号付き。整数 Big-endian
  • 記号付き。整数 Little-endian
  • 記号付き。整数ビッグエンディアンバイトスワップ
  • 記号付き。整数 Little-endian バイトスワップ例バイト顺序:AB CD EF GH (Big-endian)
    十进制数 -1,234,567,890,123,456,789 或十六进制 EE DD EF 0B 82 16 7E EB
    顺序,因为它们在 Modbus メッセージ中経由网络出现:EE DD EF 0B 82 16 7E EB

64ビット符号なし整数

它结合了 4 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 符号なし。整数 Big-endian
  • 符号なし。整数 Little-endian
  • 符号なし。整数ビッグエンディアンバイトスワップ
  • 符号なし。整数 Little-endian バイトスワップ例バイト顺序:AB CD EF GH(Big-endian)
    十进制数 1,234,567,890,123,456,789 或十六进制 11 22 10 F4 7D E9 81 15 在 Modbus メッセージ中経由网络
    排序:11 22 10 F4 7D E9 81 15

32ビット浮動小数点数

它结合了 2 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 浮点 Big-endian
  • 浮点 Little-endian
  • 浮点ビッグエンディアンバイトスワップ
  • Float Little-endian バイトスワップ例バイト顺序:AB CD(ビッグエンディアン)
    浮動小数点数 123456.00 或十六进制 47 F1 20 00 在 Modbus メッセージ中経由线路
    配列的顺序:47 F1 20 00

64位倍精度浮動小数点数

它结合了 4 个 16 位 Modbus register。它可以以 4 种不同的字/バイト顺序表示。

  • 双ビッグエンディアン
  • 双 Little-endian
  • 双ビッグエンディアンバイトスワップ
  • 双 Little-endian バイトスワップ例バイト顺序:AB CD EF GH(ビッグエンディアン序)
    浮動小数点数 123456789.00 或十六进制 41 9D 6F 34 54 00 00 00 在 Modbus メッセージ中経由线路
    排序:41 9D 6F 34 54 00 00 00

保存/打开工作区

もし打开许多相关的 Modbus 窗口,则可以方便地将すべての打开和配列的 Modbus 窗口的当前布局快照保存在一个工作区中。

工作区 (*mbw) 是包含すべての打开窗口的表示信息和文件名的文件。 ではない实际内容。为此,请转到“文件→保存工作区”。

“connect”和“图表”設定存储在工作区文件中。

当您打开工作区文件时,Modbus Poll 会打开すべての Modbus 窗口,并在您保存的布局中表示它们。

导出到 csv

将名称和值导出到逗号、分号或制表符分隔值文件。从文件对话框中選択

  • 逗号分隔值文件 (*.csv)
    “temperature”,“19.7”
  • 分号分隔值文件 (*.csv)
    “temperature”;”19.7"
  • 制表符分隔值文件 (*.txt)
    temperature 19.7

根据あなたの系统,逗号或句点用于分隔小数。

导出到 Modbus Slave

将名称、值和格式导出到 Modbus Slave 文件。*.mbs

打开文件需要 Modbus Slave 版本 7.4.0 或更高版本。

考试中心

此测试对话框的目的是帮助 MODBUS スレーブデバイス开发人员使用任何 他们自己作曲的ストリング·ストリング。
リスト框表示传输的データと受信的データ。
您可以在下拉リスト框中包含多个测试ストリング·ストリング。入力ストリング·ストリング后,按 “追加到リスト”button,然后文字列を作る追加到リスト中。
按下“send”按钮时送信所选ストリング·ストリング。

打开リスト

从文件中保留测试ストリング·ストリング。

保存リスト

将测试ストリング·ストリング存储到文件中。

Clear

クリア测试リスト。

追加到リスト

将当前测试ストリング·ストリング追加到リスト中。

追加チェック

将 CRC 或 LRC 追加到入力ストリング·ストリング的末尾。

使用考试中心时,您可能需要無効来自其他窗口的通信。 选中“读/写定义”对话框中的“读/写無効”复选框。設定→读/写定义。

ASCII example

组合框中的ストリング·ストリング:3A 30 31 30 33 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 对。

TCP/IP example

read 10 个保留レジスタ。00 00 00 00 00 06 01 03 00 00 00 0A

前 6 个byteは TCP/IP 标头。

测试中心ストリング·ストリング文件

使用文本編集器(如记事本或类似工具),您可以准备要在测试で使用する。的ストリング·ストリング。
文件中的最初の行必须是ストリング·ストリング“TestCenter”。这就是 Modbus Poll 知道文件格式正确的方式。按“打开リスト”打开準備して的文本記事件。

ストリング·ストリングリスト的内容

TestCenter 3A 30 31 30 33 30 30 30 30 30 30 30 41 3A 30 32 30 33 30 30 30 30 30 30 30 41 3A 30 33 30 33 30 30 30 30 30 30 30 41

Copy

使用“Copy”按钮将选定的 Tx/Rx ストリング·ストリングコピー到剪贴板。
SHIFT 和 CTRL 键可以与鼠标一起使用,以選択和キャンセル選択ストリング·ストリング、選択ストリング·ストリング组以及選択不相邻的ストリング·ストリング。

注意:

在执行其他命令时使此窗口保持打开ステータス。

Modbus Data recording

您可以将データ記録到文本記事件或直接记录到 Microsoft Excel。

文本記事件

从設定菜单中選択“日志”または使用快捷键:Alt+L

每个 Modbus 窗口都记录到其单独的文本記事件中。

当您要停止データ記録时,選択してください。設定菜单上的注销命令。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト21

日志速率

每次読み取り

为すべての Modbus リクエスト编写日志。将频率记录为扫描速率。

Choice

指定日志速率(以秒为単位)。与扫描速率无关。

注意:

もし扫描速率为 10000 毫秒,则設定 1 秒日志速率是ない意义的,因为只有在新データ准备就绪时才会记录データ。

分隔符

作为分隔符,您可以使用以下选项之一:

固定宽度

表示值按列进行组织。

逗点

用逗号分隔的值。

Tags

用制表符分隔的值。

仅更改データ时记录日志

指定仅当自上次日志以来更改任何データ时,才会写入新的日志行。

日志エラー

指定记录タイムアウト等エラー。

日志日期

指定将当前日期追加到日志时间中。

使用“T”作为分隔符

指定时间和日期以 ISO 8601 中指定的字母“T”分隔。

日志毫秒

指定将毫秒追加到日志时间中。

日志アドレス

指定将 Modbus アドレス追加到日志中。

按 ok 时开始记录

指定在按下 ok 按钮时开始ジャーナル·レコード。否则,日志設定仅在保存 *mbp 文件时存储。

open *mbp 时开始记录

指定在打开 *.mbp 文件时自动启动ジャーナル·レコード。

立即リフレッシュ到文件

这确保了日志行不会在文件系统中兑现,而是立即以物理方式写入。

追加

指定将日志追加到所选文件。否则,将作成一个新文件。

午夜新建日志文件

关闭当前日志文件,并在午夜启动一个新文件。时间戳将追加到あなたの文件名中。

头文件信息

  • 插入标题:信息将插入到日志文件的顶部。
    • 命名顶行中的ユニット格:插入名称。
    • 投票定义:插入 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 電子表格中导入データ。

Microsoft Excel

此功能要求インストール Microsoft Excel。Excel 2003 日志限制为 65535 条日志,因为这是 Excel 工作表中的最大行数。Excel 2007 或更高版本限制为 1,048,576 行。每个 Modbus 窗口都记录到其单独的 Excel 工作表中。

从設定菜单中選択“Excel 日志”または使用快捷键:Alt+X

记录时请勿触摸 Excel 工作表,因为这会中断ジャーナル·レコード。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト22

日志速率

  • 每个内容都写着:为すべての Modbus リクエスト编写日志。将频率记录为扫描速率。
  • Choice:指定日志速率(以秒为単位)。日志与扫描速率无关。
    備考:もし扫描速率为 10000 毫秒,则設定 1 秒日志速率是ない意义的,因为只有在新データ准备就绪时才会记录データ。
  • 以下时间停止:指定日志行数。请注意,Excel 2003 限制为 65,536 行,Excel 2007 限制为 1,048,576 行。

头文件信息

  • 插入标题:信息插入到 Excel 工作表最上面的 3 行中。
    • 命名顶行中的ユニット格:在第 3 行中插入名称。
    • 投票定义:在第 2 行中插入 ID、功能等。
    • 名字:在第 1 行中插入日志名称。
Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト23

带有标头信息的 Excel 日志。

通信トラフィック

選択菜单“表示→Communication”以表示串行线路或イーサネット(イーサネット)电缆上的トラフィック。使用停止按钮暂时停止更新以进行チェック。

使用“Copy”按钮将所选行コピー到剪贴板。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト24

注意:

此窗口仅表示 Modbus Poll 送信和受信的データ。您不能将其用作データ嗅探器。

在执行其他命令时使此窗口保持打开ステータス。

OLE/自動化

自動化(以前称为 OLE 自動化)使一个应用程序可以操作在另一个应用程序実現しました的对象。

自動化クライアント側は是可以操作属于另一个应用程序的公开对象的应用程序。这也称为自動化コントローラーは。

自動化サーバーは、向其他应用程序公开可プログラミング对象的应用程序。Modbus Poll 是一个自動化サーバー·サーバー。

这意味着您可以使用任何サポートVBA(Visual Basic for Applications)的程序,如Visual Basic,Excel等,根据あなたの特定要求来解释和表示modbusdata。

Excel example

当您要编写宏时,应表示“开发人员”タブ或在开发人员モード下运行。

Excel 2007的

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト25
  1. 单击 Microsoft Office button,然后单击 Excel 选项。
  2. 单击“流行”,然后选中功能区中的“表示开发人员”タブ复选框。
    请注意,功能区是 Microsoft Fluent 用户界面的一部分。

Excel 2010、2016

  1. 单击“文件”タブ。
  2. 单击选项。将打开“Excel 选项”窗口。
  3. 在左窗格中,单击“自定义功能区”。
  4. 在右窗格中的“主タブ”下,选中“开发人员”复选框。
  5. 单击“确定”。“开发人员”タブ现在应表示在功能区(最右侧タブ)中。

Excel サンプルコード

本サンプル打开2つ窗口。一个読み取りレジスタ,另一个リードコイル。
Modbus Poll 是非表示的,但您可以経由キャンセル注释“ShowWindow”行来表示它。这将表示其中一个窗口。

Modbus Poll インストール中还包括一个サンプル。
开始→すべての程序→Modbus Poll → Excel example

Excel VBAexample

Public doc1 As Object
Public doc2 As Object
Public app As Object
Dim res As Integer
Dim n As Integer
Private Sub StartModbusPoll_Click()
   ' 作成 Modbus Poll 应用程序对象和2つドキュメント对象
   Set app = CreateObject("Mbpoll.Application")
   Set doc1 = CreateObject("Mbpoll.Document")
   Set doc2 = CreateObject("Mbpoll.Document")
   ' read10レジスタを保持する。,每1000ms読み取り一次
   res = doc1.ReadHoldingRegisters(1, 0, 10, 1000)
   ' read10个コイルの状態,每1000ms読み取り一次
   res = doc2.ReadCoils(1, 0, 10, 1000)
   ' 表示ドキュメント窗口(此行被注释,如需使用请キャンセル注释)
   ' doc1.ShowWindow()
   ' 設定连接为 Modbus TCP/IP
   app.Connection = 1 
   ' 設定IPアドレス为本地マスター
   app.IPAddress = "127.0.0.1" 
   ' 設定サーバー側。口为 502
   app.ServerPort = 502
   ' 設定接続タイムアウト时间为 1000ms
   app.ConnectTimeout = 1000
   ' 打开连接
   res = app.OpenConnection()
End Sub
Private Sub Read_Click()
   ' 表示リクエスト的结果
   Cells(5, 7) = doc1.ReadResult() ' 表示レジスタを保持する。的読み取り结果
   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 Sub

Python example

此 Python サンプル将打开一个窗口并設定すべての可能的データ格式。

Python example

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
# バイトオーダー定义
BE = 0
LE = 3
BE_BS = 2
LE_BS = 1
# 作成 Modbus Poll 应用实例
App = win32.Dispatch('Mbpoll.Application')
# 設定接続パラメータ
App.Connection = 1  # 使用 Modbus TCP/IP
App.IPAddress = "127.0.0.1"  # 本地アドレス
App.ServerPort = 502  # Modbus ポート
App.OpenConnection()  # 打开连接
# 作成 Modbus 表示窗口实例
Win1 = win32.Dispatch("Mbpoll.Document")
# 从スレーブID为1的デバイス読み取り100レジスタを保持する。,アドレス从0 (40001) 开始,每1000ms読み取り一次
Win1.ReadHoldingRegisters(1, 0, 100, 1000)
# 表示 Modbus 窗口
Win1.ShowWindow()
# 設定表示的行数
Win1.Rows(1)
# 無効リフレッシュ以提高速度
Win1.EnableRefresh = False
# 設定不同的データ格式表示方式
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)
# 为不同格式的データ設定表示名称
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")
# 重新有効リフレッシュ
Win1.EnableRefresh = True
# 调整すべての列的大小以适应内容
Win1.ResizeAllColumns()
# 调整窗口大小以适应内容
Win1.ResizeWindow()
# 保存設定到文件,指定文件路径
result = Win1.Save("C:\\Users\\UserName\\Desktop\\testfile.mbp")
# 打印保存结果
print(result)
# 打印第二个格式名称,作为サンプル
print(Win1.GetName(1))
# 待機中用户按 Enter 键退出,避免窗口直接关闭
_ = input("Press ENTER to quit:")

连接函数/属性

The following properties and functions do the same as you setup in the connection dialog (F3).

connect

“connect”(Connection) 選択所需的连接。可以選択串行ポート或其中一个イーサネット(イーサネット)连接。

属性connect为整数

取值範囲

0 = Serial port
1 = Modbus TCP/IP
2 = Modbus UDP/IP
3 = Modbus ASCII/RTU over TCP/IP
4 = Modbus ASCII/RTU over UDP/IP

例如

Connection = 0

Baud rate

仅適用される连接 = 0

属性Baud rate与长

300
600
1200
2400
4800
9600 (デフォルト)
14400
19200
38400
56000
57600
115200
128000
153600
230400
256000
460800
921600

例如

BaudRate = 9600

data bit

仅適用される连接 = 0

属性 DataBits 作为整数

取值範囲

7
8 (デフォルト)

例如:

DataBits = 8

check digit

仅適用される连接 = 0

作为整数的属性奇偶校

取值範囲

0 = 无
1 = 奇数
2 = 偶数(デフォルト)

例如:

Parity = 2

stop bit

仅適用される连接 = 0

属性 StopBits as Integer取值範囲

1 (デフォルト)
2

例如:

StopBits = 1

串行ポート

仅適用される连接 = 0

属性 SerialPort as Integer取值範囲

1...255

デフォルト値 = 1

例如:

SerialPort = 1

モード

仅適用される连接 = 0

属性モード为整数

取值範囲

0 = RTU モード
1 = ASCII モード

例如:

Mode = 1

DeleteEcho

仅適用される connect = 0
もしあなたのデバイス或 RS232/RS485 変換器です。回显刚刚送信的文字。

属性 RemoveEcho as Integer

取值範囲

0(デフォルト)
1(削除回声)

例如:

RemoveEcho = 1

レスポンス·タイムアウト

ResponseTimeout 指定 Modbus Poll 在放弃之前应待機中来自从デバイスレスポンス的时间長さ(以毫秒为単位)。

属性 ResponseTimeout 作为整数取值範囲

50...100000

デフォルト値 = 1000

例如:

ResponseTimeout = 1000

DelayBetweenPolls

属性 DelayBetweenPolls 作为整数取值範囲

0...1000

デフォルト値 = 20

例如:

DelayBetweenPolls = 20

サーバー側。口

仅適用される Connection = 1...4

属性 ServerPort as Long取值範囲

0...65535

デフォルト値 = 502

例如:

ServerPort = 502

15.3.12. ConnectTimeout

ConnectTimeout 指定 Modbus Poll 待機中 TCP/IP 接続成功です。的时间長さ。

仅適用される Connection = 1...4

属性 ConnectTimeout as Integer

取值範囲

100...30000毫秒

デフォルト値 = 1000ms

例如:

ConnectTimeout = 1000

IP版本

仅適用される Connection = 1...4

属性 IPVersion as Integer

取值範囲

4 = IP 版本 4(デフォルト)
6 = IP 版本 6

IPVersion = 4

开放连接

打开使用 Connection 属性選択的连接。

函数 OpenConnection() 为整数

parameter

此函数ない参数。

戻り値は

对于エラー 3-5:请チェック您是否拥有最新的シリアルポート驱动程序。

ErrorDescription
0成功
1串行ポート不可用
3串行ポート。无法从ポート驱动程序取得当前設定。
4串行ポート。串行ポート驱动程序不接受ポートの設定。
5串行ポート。串行ポート驱动程序不接受タイムアウトの設定。
12TCP/UDP 接続の失敗。WSA 启动
13TCP/UDP 接続の失敗。连接エラー
14TCP/UDP 接続の失敗。タイムアウト
15TCP/UDP 接続の失敗。IOCTL
17TCP/UDP 接続の失敗。套接字エラー
21TCP/UDP 接続の失敗。アドレス信息
255连接オープンしました

Excel サンプル如何打开 Modbus TCP/IP connect

Public app As Object
Dim res As Integer
' 作成一个指向 Modbus Poll 的对象
Set app = CreateObject("Mbpoll.Application")
' Choice Modbus TCP/IP Protocol
app.Connection = 1
' 設定 IP 协议版本为 IPv4
app.IPVersion = 4
' 設定目标デバイス的 IP address
app.IPAddress = "192.168.1.27"
' 設定サーバー側。口,デフォルト为 502
app.ServerPort = 502
' 設定接続タイムアウト时间为 1000 毫秒
app.ConnectTimeout = 1000
' 設定レスポンス·タイムアウト时间为 1000 毫秒
app.ResponseTimeout = 1000
' 尝试打开连接,并将结果存储在变量 res 中
res = app.OpenConnection()

Python example:如何設定串行连接

import win32com.client as win32
# 作成 Modbus Poll 应用程序对象
App = win32.Dispatch('Mbpoll.Application')
# 設定为串行连接
App.Connection = 0            
# Choice COM ポート 3
App.SerialPort = 3            
# 設定ボーレート为 9600
App.BaudRate = 9600           
# 設定パリティ検査为无
App.Parity = 0                
# 設定モード为 RTU
App.Mode = 0                  
# 設定レスポンス·タイムアウト时间为 1000ms
App.ResponseTimeout = 1000    
# 設定两次リクエスト之间的最小間隔时间为 20ms
App.DelayBetweenPolls = 20    
# 打开连接
App.OpenConnection
# 作成一个 Modbus 表示窗口对象 Win1
Win1 = win32.Dispatch("Mbpoll.Document")
# 从スレーブID为1的デバイス読み取り10レジスタを保持する。,アドレス从0 (40001) 开始,每1000ms読み取り一次
Win1.ReadHoldingRegisters(1, 0, 10, 1000)
# 表示 Modbus 窗口
Win1.ShowWindow()
# 設定表示的行数为10
Win1.Rows(0)
# 無効リフレッシュ以提高速度
Win1.EnableRefresh = False
# 为レジスタの設定名称
Win1.SetName(0, "Register 0")
# 重新有効リフレッシュ
Win1.EnableRefresh = True
# 调整すべての列的大小以适应内容
Win1.ResizeAllColumns ()
# 调整窗口大小以适应内容
Win1.ResizeWindow()
# 待機中用户按 Enter 键退出
_ = input("Press ENTER to quit:")  

紧密连接

函数 CloseConnection() 为整数

parameter

此函数ない参数。

戻り値は

もし成功,则为零。もし失敗,则值为非零。

ShowCommunicationTraffic

表示通信トラフィック窗口。

函数 ShowCommunicationTraffic()

parameter

此函数ない参数。

戻り値は

ない

CloseCommunicationTraffic

もし表示,则关闭通信トラフィック窗口。

函数 CloseCommunicationTraffic()

parameter

此函数ない参数。

戻り値は

ない

読み取り函数

以下函数的操作与您在读/写定义对话框 (F8) 中に設置。的相同。 読み取り函数与 Modbus Poll ドキュメント相关联。(包含データ的窗口)

例如:

' 首先需要作成一个 Modbus Poll ドキュメント对象
Public doc As Object
' 作成 Modbus Poll ドキュメント对象实例
Set doc = CreateObject("Mbpoll.Document")
' 从スレーブ ID 为 1 的デバイス読み取り 100 个コイルの状態,アドレス从 0 开始,每 1000 毫秒読み取り一次
res = doc.ReadCoils(1, 0, 100, 1000) ' read 100 1つのコイル每 1000ms

注意:まず必要です。作成 Read,然后才能使用属性取得データ。

リードコイル ReadCoils

Modbus 功能代码 01

函数 ReadCoils(SlaveID 为整数,アドレス为长,数量为整数,ScanRate 为长)为整数

parameter

奴隶ID:住所から。 1 to 255
address:データアドレス(以 0 为基数)
Quantity:データ数量。1 to 2000
扫描速率:0 to 3600000msReturn value

True if success. False if not success

read discrete inputs ReadDiscreteInputs

Modbus function code 02

函数 read discrete inputs(slaveID As 整型, address As 长整型, Quantity As 整型, 扫描率 As 长整型) As 整型

parameter

  • slaveID: slave address 1 to 255
  • address: データアドレス(基数 0)
  • Quantity: データ数量。1 to 2000
  • 扫描率: 0 to 3600000ms

戻り値は

  • 成功戻る True。失敗戻る False。

read holding registers ReadHoldingRegisters

Modbus function code 03

函数 read holding registers(slaveID As 整型, address As 长整型, Quantity As 整型, 扫描率 As 长整型) As 整型

parameter

  • slaveID: slave address 1 to 255
  • address: データアドレス(基数 0)
  • Quantity: データ数量。1 to 125
  • 扫描率: 0 to 3600000ms

戻り値は

  • 成功戻る True。失敗戻る False。

read input registers ReadInputRegisters

Modbus function code 04

函数 read input registers(slaveID As 整型, address As 长整型, Quantity As 整型, 扫描率 As 长整型) As 整型

parameter

  • slaveID: slave address 1 to 255
  • address: データアドレス(基数 0)
  • Quantity: データ数量。1 to 125
  • 扫描率: 0 to 3600000ms

戻り値は

  • 成功戻る True。失敗戻る False。

自動化写入函数

写入函数将存储在由属性填充的配列中的值写入。下面的写入函数不作成データ窗口。要作成データ窗口,请使用 Win 函数,例如 WriteMultipleRegistersWin。

write single coil WriteSingleCoil

Modbus function code 05。
写入写配列中的第一1つのコイル。

函数 write single coil(slaveID As 整型, address As 长整型) As 整型

parameter

  • slaveID: slave address 0 to 255
  • address: データアドレス(基数 0)

戻り値は

  • もし写配列準備して且データ已送信,则戻る True。もし配列为空或参数エラー,则戻る False。
  • 控制应用程序负责経由回読み書き入的值来验证書き込み操作。。

write single register WriteSingleRegister

Modbus function code 06。
写入写配列中的第一1つのレジスタ。

函数 write single register (slaveID As 整型, address As 长整型) As 整型

parameter

  • slaveID: slave address 0 to 255
  • address: データアドレス(基数 0)

戻り値は

  • もし写配列準備して且データ已送信,则戻る True。もし配列为空或参数エラー,则戻る False。
  • 控制应用程序负责経由回読み書き入的值来验证書き込み操作。。

write multiple coils WriteMultipleCoils

Modbus function code 15。
写入写配列中存储的コイル。

函数 write multiple coils(slaveID As 整型, address As 长整型, Quantity As 整型) As 整型

parameter

  • slaveID: slave address 0 to 255
  • address: データアドレス(基数 0)
  • Quantity: データ数量。1 to 1968

戻り値は

  • もし写配列準備して且データ已送信,则戻る True。もし配列为空或参数エラー,则戻る False。
  • 控制应用程序负责経由回読み書き入的值来验证書き込み操作。。

write multiple registers WriteMultipleRegisters

Modbus function code 16。
写入

写配列中存储的レジスタ。

函数 write multiple registers(slaveID As 整型, address As 长整型, Quantity As 整型) As 整型

parameter

  • slaveID: slave address 0 to 255
  • address: データアドレス(基数 0)
  • Quantity: データ数量。1 to 123

戻り値は

  • もし写配列準備して且データ已送信,则戻る True。もし配列为空或参数エラー,则戻る False。
  • 控制应用程序负责経由回読み書き入的值来验证書き込み操作。。

Python example

表示如何作成一个窗口,住所から。 0(40001)read101つのレジスタ,然后写入51つのレジスタ的Pythonexample。

import sys
import time
import win32com.client as win32
# 作成Modbus Poll应用程序实例
App = win32.Dispatch('Mbpoll.Application')
# 設定连接タイプ为TCP/IP
App.Connection = 1            
App.IPAddress = "127.0.0.1"  # 設定IPaddress
App.ResponseTimeout = 1000    # 設定レスポンス·タイムアウト时间为1000毫秒
App.DelayBetweenPolls = 20    # 設定リクエスト间最小間隔为20毫秒
App.ConnectTimeout = 500      # 設定接続タイムアウト时间为500毫秒
App.ServerPort = 502  # 設定サーバー側。口为502
result = App.OpenConnection  # 尝试打开连接
if result != 0:
   print("Connection failed. Error: ", result)  # 接続の失敗时出力エラー信息
   sys.exit()  # 退出程序
# 作成一个名为Win1的Modbus表示窗口
Win1 = win32.Dispatch("Mbpoll.Document")
# 从スレーブID 1的アドレス0 (40001)开始,每1000msread10レジスタを保持する。
Win1.ReadHoldingRegisters(1, 0, 10, 1000)
# 表示Modbus窗口
Win1.ShowWindow()
# 表示10行
Win1.Rows(0)
# 调整窗口大小以适应网格
Win1.ResizeWindow()
time.sleep(1.0) # 待機中読み取り完成
if Win1.ReadResult == 0:    # チェック読み取り结果
   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))
# 在Modbus Poll的内部配列中准备要写入的データ
Win1.SRegisters(0, 1)   # 注意,这里的1ではないModbusaddress,而是配列的索引
Win1.SRegisters(1, 10)
Win1.SRegisters(2, 100)
Win1.SRegisters(3, 1000)
Win1.SRegisters(4, 10000)
# 写入レジスタ。这个函数不会在Modbus Poll中作成窗口
# 使用函数 <<WriteMultipleRegistersWin>> 来作成データ窗口
Win1.WriteMultipleRegisters(1, 0, 5)
_ = input("Wait for write Press ENTER:")  # 待機中写入,按回车继续
if Win1.WriteResult == 0:    # チェック写入结果
   print("Modbus write success")
else:
   print("Write failed error: = ", Win1.WriteResult)
_ = input("Press ENTER to quit:")  # 按回车退出

15.6. 各种功能

各种功能与 Modbus Poll ドキュメント相关联。(包含データ的窗口)

15.6.1. ShowWindow

デフォルト情况下,Modbus documentation窗口处于非表示ステータス。ShowWindow 函数使 Modbus Poll 可见,并表示包含データ内容的ドキュメント。

函数 ShowWindow()parameter

此函数ない参数。戻り値は

ない

15.6.2. GetTx计数

取得リクエスト数。

函数 GetTxCount() 只要参数

此函数ない参数。戻り値は

リクエスト数。

取得受信计数

取得レスポンス数量。

函数 取得受信计数() As 长整型

parameter

此函数ない参数。

戻り値は

レスポンス数量。

取得名称

取得值的名称。

函数 取得名称(索引 As 整型) As ストリング·ストリング

parameter

索引:索引0对应于第一个Modbusaddress。

戻り値は

Name。

設定名称

更改值的名称。函数 設定名称(索引 As 整型, Name As ストリング·ストリング)

parameter

索引:索引0对应于第一个Modbusaddress。
Name:值ユニット格的名称。

戻り値は

格式化すべて

使用选定的格式格式化すべての值ユニット格。

函数 格式化すべて(format As 整型)

parameter

format:值ユニット格的格式。

戻り値は

取得格式

取得Modbus值的表示格式。

函数 取得格式(索引 As 整型) As 整型

parameter
索引:索引0对应于第一个Modbusaddress。

戻り値は

IDformat (Format)中文解释
0Signed記号付き。
1Unsigned符号なし。
2Hexhexadecimal
3Binarybinary
4Float little-endian byte swap浮動小数点数リトルエンディアンバイトスワップ
5Float big-endian浮動小数点数ビッグエンディアン
6Double little-endian byte swap双精度リトルエンディアンバイトスワップ
7Double big-endian双精度ビッグエンディアン
832-bit Signed little-endian byte swap32位記号付き。リトルエンディアンバイトスワップ
932-bit Signed big-endian32位記号付き。ビッグエンディアン
10Float little-endian浮動小数点数リトルエンディアン
11Float big-endian byte swap浮動小数点数ビッグエンディアンバイトスワップ
12Double little-endian双精度リトルエンディアン
13Double big-endian byte swap双精度ビッグエンディアンバイトスワップ
1432-bit Signed little-endian32位記号付き。リトルエンディアン
1532-bit Signed big-endian byte swap32位記号付き。ビッグエンディアンバイトスワップ
1732-bit Unsigned big-endian32ビット符号なしビッグエンディアン
1832-bit Unsigned little-endian byte swap32ビット符号なしリトルエンディアンバイトスワップ
1932-bit Unsigned big-endian byte swap32ビット符号なしビッグエンディアンバイトスワップ
2032-bit Unsigned little-endian32ビット符号なしリトルエンディアン
2164-bit Signed big-endian64位記号付き。ビッグエンディアン
2264-bit Signed little-endian byte swap64位記号付き。リトルエンディアンバイトスワップ
2364-bit Signed big-endian byte swap64位記号付き。ビッグエンディアンバイトスワップ
2464-bit Signed little-endian64位記号付き。リトルエンディアン
2564-bit Unsigned big-endian64ビット符号なしビッグエンディアン
2664-bit Unsigned little-endian byte swap64ビット符号なしリトルエンディアンバイトスワップ
2764-bit Unsigned big-endian byte swap64ビット符号なしビッグエンディアンバイトスワップ
2864-bit Unsigned little-endian64ビット符号なしリトルエンディアン

注意:

此設定仅用于表示。使用 Get/Set 值函数时,仍需要使用 byteOrder 来取得正确的バイトオーダー。

15.6.8. SetFormat

更改 Modbus 值的表示格式。请参阅上面的格式值。

函数 SetFormat(索引为整数,格式为整数)parameter

指数:索引 0 对应于第一个 Modbus address。
format:值ユニット格的格式。戻り値は

ない

15.6.9. ResizeWindow

调整打开的窗口大小以适合网格。

函数 ResizeWindow()parameter

此函数ない参数。戻り値は

ない

15.6.10. ResizeAllColumns

调整すべての列的大小以适合ユニット格内的值。

函数 ResizeAllColumns()parameter

此函数ない参数。戻り値は

ない

15.6.11. 行

指定网格中的行数。

函数 (NumberRows)parameter

数字行:网格中的行数。

编号Description
010 行(デフォルト)
120 行
250 行
3100 行
4适合数量

戻り値は

ない

読み取り结果

使用此属性来チェック是否成功建立了与読み取り操作的通信。

属性 読み取り结果 As 整型

parameter

此函数ない参数。

戻り値は

ErrorDescription
0成功 SUCCESS
1タイムアウトエラー TIMEOUT ERROR
2CRCError CRC ERROR
3レスポンスエラー(レスポンスではない预期的スレーブID、機能コード或アドレス)RESPONSE ERROR (The response was not the expected slave id, function or address)
4写入エラー WRITE ERROR
5読み取りエラー READ ERROR
6ポート未打开エラー PORT NOT OPEN ERROR
10データ未初期化 DATA UNINITIALIZED
11受信到的バイト不足 INSUFFICIENT BYTES RECEIVED
16Bytesの数エラー BYTE COUNT ERROR
19トランザクションIDError TRANSACTION ID ERROR
81hIllegal function ILLEGAL FUNCTION
82hIllegal data address ILLEGAL DATA ADDRESS
83hIllegal data value ILLEGAL DATA VALUE
84hサーバー·サーバーデバイス失敗 SERVER DEVICE FAILURE
85hConfirm ACKNOWLEDGE
86hサーバー·サーバーデバイスビジー SERVER DEVICE BUSY
87hNAK-负確認 NAK-NEGATIVE ACKNOWLEDGMENT
8AhGateway path unavailable GATEWAY PATH UNAVAILABLE
8Bhゲートウェイ目标デバイス未レスポンス GATEWAY TARGET DEVICE FAILED TO RESPOND
这个表格列出了Modbus通讯中可能遇到的エラー代码及其説明,用于トラブルシューティングトラブルシューティング和ステータス反馈。

写入结果

使用此函数来チェック写入操作是否成功。
在从スレーブ获得结果之前,值为データ未初期化。参见読み取り结果以取得可能的值リスト。

属性

写入结果 As 整型

戻り値は
以整型戻る写入结果。

保存

保存当前窗口。函数 保存(路径名 As ストリング·ストリング) As 布尔型

parameter
路径名:应保存文件的完全限定路径。

戻り値は
Boolean 布尔型

example

# 首先需要一个Modbus PollDocument。
Public doc As Object
Set doc = CreateObject("Mbpoll.Document")
res = doc.ReadCoils(1, 0, 100, 1000) # 每1000毫秒読み取り1001つのコイル
res = doc.Save("C:\\Users\\UserName\\Desktop\\testfile.mbp")    # 将ドキュメント保存する。桌面的testfile.mbp文件

自動化データ属性

以下属性用于在Modbus Poll中的内部写/读配列中に設置。或取得值。使用的索引ではないModbusaddress。无论使用的アドレス如何,索引总是Start from 0计数。データ属性与Modbus Pollドキュメント相关联。(带有データ的窗口)

每个データ属性有2つ版本:

一个ない后缀,例如SRegisters,用于从内部写/读配列中に設置。或取得值。

一个带有Win后缀,例如SRegistersWin,用于直接从データ窗口設定或取得值。这在使用データ窗口进行書き込み操作。(例如WriteMultipleRegistersWin)使用するとき。

example 1:

# 假设首先作成了doc。参见Excelexample。
# 在用于稍后書き込み操作。的データ配列中,向索引0写入1
doc.SRegisters(0) = 1
doc.SRegisters(1) = 10
doc.SRegisters(2) = 1234
# 将存储在Modbus Poll内部配列的31つのレジスタ
# 写入Modbusaddress100(40101)
# 不作成窗口
res = doc.WriteMultipleRegisters(1, 100, 3)
# 上述サンプル不作成データ窗口,只是执行单次Modbus書き込み操作。。

example 2,浮動小数点数值:
写入3个浮動小数点数值。

# 假设首先作成了doc。参见Excelexample。
doc.Floats(0) = 1.3
doc.Floats(2) = 10.5
doc.Floats(4) = 1234.12
# 将61つのレジスタ写入Modbus Poll
res = doc.WriteMultipleRegisters(1, 0, 6)
# 写入61つのレジスタ,因为浮動小数点数值是32位宽。

example 3:
作成一个每1000ms写入31つのレジスタ的窗口。

# 假设首先作成了doc。参见Excelexample。
# 作成一个窗口,该窗口每1000ms写入内容
res = doc.WriteMultipleRegistersWin(1, 100, 3, 1000)
# 向データ窗口的第一个ユニット格写入1
doc.SRegistersWin(0) = 1
doc.SRegistersWin(1) = 10
doc.SRegistersWin(2) = 1234
# 现在每1000ms就将31つのレジスタ写入スレーブid 1アドレス100

在这些コード例中,doc是Modbus Pollドキュメント的一个实例,用于执行各种ModbusOperation,如写入レジスタ。サンプル表示了使い方は?不带Win后缀的属性直接操作内部配列,以及使い方は?带Win后缀的属性操作与データ窗口关联的值。

コイル, CoilsWin

Property Coils(Index As Integer) As IntegerDescription

Sets a coil in the write array structure or return a coil from the read array.Syntax

Coils(Index) [=newvalue]

短整型レジスタ, SRegistersWin

Property SRegisters(Index As Integer) As IntegerDescription

Sets a register in the write array structure or return a register from the read array.Syntax

SRegisters(Index) [=newvalue]

长整型レジスタ, URegistersWin

属性 URegisters(Index As Integer) As LongDescription

在写配列構造中に設置。レジスタ或从読み取り配列戻るレジスタ。语法

URegisters(索引) [=newvalue]

32位整型、Ints_32Win

属性 Ints_32(Index As Integer) As DoubleDescription

在写入配列構造中に設置。一个 32 ビット整数型,或从読み取り配列中戻る一个整数。语法

Ints_32(索引) [=newvalue]

32ビット符号なし整型、UInts_32Win

属性 UInts_32(index as integer) as doubleDescription

在写入配列構造中に設置。一个 32 ビット符号なし整数,或从読み取り配列戻る一个符号なし。整数。语法

UInts_32(索引) [=新值]

64位整型、Ints_64Win

属性 Ints_64(Index As Integer) As DoubleDescription

在写入配列構造中に設置。一个 64 ビット整数型,或从読み取り配列戻る一个整数。语法

Ints_64(索引) [=新值]

64ビット符号なし整型、UInts_64Win

属性 UInts_64(Index As Integer) As DoubleDescription

在写入配列構造中に設置。一个 64 ビット符号なし整数,或从読み取り配列戻る一个符号なし。整数。语法

UInts_64(索引) [=新值]

浮動小数点数,FloatsWin

属性 floats(index as integer) as singleDescription

在写入配列構造中に設置。浮動小数点数或从読み取り配列戻る浮動小数点数。语法

浮点数(索引) [=新值]

倍精度浮動小数点数,DoublesWin

属性 doubles(index as integer) as doubleDescription

在写入配列構造中に設置。双精度值,或从読み取り配列戻る双精度值。语法

双打(索引) [=newvalue]

byte order

属性 ByteOrder As IntegerDescription

設定 Ints_32、UInts_32、Ints_64、UInts_64、Floats 和 Doubles 属性使用的バイト顺序。
Win 版本不使用此属性 ByteOrder

编号endianness
0ビッグエンディアン(デフォルト) Big-endian (Default)
1リトルエンディアンバイトスワップ Little-endian byte swap
2ビッグエンディアンバイトスワップ Big-endian byte swap
3リトルエンディアン Little-endian

Ints_32サンプル:
byte order:Big-endian
十进制数 123456789 或十六进制 07 5B CD 15 在 Modbus メッセージ中経由线路
排序:07 5B CD 15语法

ByteOrder [=新值]

15.8. 写入函数(作成データ窗口)

以下函数的操作与您在读/写定义对话框 (F8) 中に設置。的相同。
这些函数作成一个データ窗口,并根据扫描速率写入データ窗口中的データ内容。

15.8.1. WriteSingleCoilWin

Modbus 功能代码 05。

函数 WriteSingleCoilWin(SlaveID As Integer, Address As Long, ScanRate As Long) As Integerparameter

奴隶ID:住所から。 1 to 255
address:データアドレス(基数 0)
扫描速率:0 to 3600000ms戻り値は

もし成功,则为真。もしではない成功,则为假

15.8.2. WriteSingleRegisterWin

Modbus 功能代码 06。

函数 WriteSingleRegisterWin(SlaveID As Integer, Address As Long, ScanRate As Long) As Integerparameter

奴隶ID:住所から。 1 to 255
address:データアドレス(基数 0)
扫描速率:0 to 3600000msReturn value

True if success. False if not success

Python Example how to open a window and write a single register every 1000 ms

15.8.3. WriteMultipleCoilsWin

Modbus 功能代码 15.

函数 WriteMultipleCoilsWin(SlaveID 为整数,アドレス为长,数量为整数,ScanRate 为长)为整数参数

奴隶ID:住所から。 1 to 255
address:データアドレス(以 0 为基数)
Quantity:データ数量。1 to 1968
扫描速率:0 to 3600000ms戻り値は

もし成功,则为真。もしではない成功,则为假

15.8.4. WriteMultipleRegistersWin

Modbus 功能代码 16.

函数 WriteMultipleRegistersWin(SlaveID 为整数,アドレス为长,数量为整数,ScanRate 为长)为整数参数

奴隶ID:住所から。 1 to 255
address:データアドレス(以 0 为基数)
Quantity:データ数量。1 to 123
扫描速率:0 to 3600000ms戻り値は

もし成功,则为真。もしではない成功,则为假

16. 異常和エラーメッセージ

Modbus 異常和エラーメッセージ在 2 中以红色文本表示行。

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト26

16.1. Modbus異常代码

Modbus 異常是从デバイス戻る的エラー。

法典名字意义
01Illegal function查询中收到的函数代码ではないサーバー·サーバー(或スレーブ)允许的操作。这可能是因为函数代码仅適用される较新的デバイス,并且未在所选ユニット実現しました。它还可能指示サーバー·サーバー(或从属サーバー·サーバー)处于処理此类リクエスト的エラーステータス,例如,因为它未設定并且被要求戻るレジスタの値。
02Illegal data address查询中收到的データアドレスではない サーバー·サーバー的允许アドレス。更具体地说,参照编号和传損失の長さ的组合是 Invalid。对于具有 100 1つのレジスタ的コントローラーは,PDU 将第一1つのレジスタ寻址为 0,最后一1つのレジスタ寻址为 99。もし送信的リクエスト起始レジスター·アドレス为 96,レジスタの数为 4,则此リクエスト将在レジスタ 96、97、98、99 上成功运行(至少在アドレス方面)。もし送信的リクエスト起始レジスター·アドレス为 96,レジスタの数为 5,则此リクエスト将失敗,異常代码0x02“Illegal data address”,因为它尝试在レジスタ 96、97、98、99 和 100 上运行,并且ないアドレス为 100 的レジスタ。
03違法なデータ价值查询データ字段中包含的值ではないサーバー·サーバー(或スレーブ)的允许值。这表示复杂リクエスト的其余部分的構造存在エラー,例如隐含長さ不正确。具体而言,这并不意味着送信存储在レジスタ中的データ项具有超出应用程序预期的值,因为MODBUS协议不知道任何特定レジスタ的任何特定值的重要性。
04サーバー·サーバー機器の故障Server(或从属デバイス)尝试执行リクエスト的操作时发生不可恢复的エラー。
05承认专门与プログラミング命令结合使用。
Server(或从属サーバー·サーバー)已接受リクエスト并処理中です。它,但这样做需要很长时间。戻る此レスポンス是为了防止クライアント側は(或マスター)中发生タイムアウトエラー。クライアント側は(或主クライアント側は)接下来可以发出“ポーリング程序完成”メッセージ,以确定処理是否完成。
06サーバー·サーバーデバイス繁忙专门与プログラミング命令结合使用。
Server(或从属サーバー·サーバー)処理中です。长时间的程序命令。クライアント側は(或主サーバー·サーバー)应稍后在サーバー·サーバー(或スレーブ)暇なとき重新传输メッセージ。
0安培Gateway path unavailable与ゲートウェイ结合使用,表示ゲートウェイ无法分配从入力ポート到出力ポート的内部通信路径来処理リクエスト。通常表示ゲートウェイの構成エラー或过载。
0乙ゲートウェイ目标デバイス无法レスポンス与ゲートウェイ结合使用,表示未从目标デバイス获得レスポンス。通常表示デバイス不在网络上。

16.2. Modbus Poll エラーメッセージ

エラー信息意义
タイムアウトエラー未在预期时间内收到レスポンス。 チェック以下内容:串行连接串行設定,如ボーレート、パリティ検査、data bit、ストップ·ビット等。Modbus モード、RTU 或 ASCIIslave IDレスポンス·タイムアウトTCP/IP 连接レスポンス·タイムアウトチェックマスターポートと港。是否与スレーブ一致
レスポンスエラーレスポンスではない预期的レスポンス。不同的从属 ID。
CRCError受信到的レスポンス的 CRC 值不正确。
写入エラー这是串行驱动程序报告的エラー。もし使用 USB/RS232/485 変換器です。并拔下 USB 电缆,则可能会发生这种情况。有 4 种タイプ:断裂条件I/O エラー串行连接エラー出力バッファオーバーフロー使用 TCP/IP 连接的写入エラー通常是由连接丢失引起的。
読み取りエラー这是串行驱动程序报告的エラー。有 6 种タイプ:取景误差文字バッファオーバーフローパリティ検査误差入力バッファオーバーフローI/O エラー断裂条件使用 TCP/IP 连接的読み取りエラー通常是由连接丢失引起的。
受信的Bytesの数不足レスポンスではない预期の長ささ。
バイト计数エラーレスポンス中的バイト计数不正确。与预期相比。
トランザクション ID Error它用于トランザクション配对,MODBUSサーバー·サーバー在レスポンス中コピーリクエスト的トランザクション識別子。

Mini Program Version,無料使用!!!

Modbus Poll 中文版用户手册及ソフトウェアのダウンロードイラスト
Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

《 “Modbus Poll 中文版用户手册及ソフトウェアのダウンロード” 》 有 141 条コメント

Leave a Reply

Your email address will not be published. Required fields are marked *.