Modbus Poll中文用户手册(2023/08/01)版

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

Modbus Poll中文用户手册(2023/08/01)版缩略图
🌐 Diese Seite ist noch nicht auf Deutsch verfügbar. Die chinesische Version wird angezeigt. Zurück zur chinesischen Seite.
本文目录
  1. 1. 1.Modbus Poll
  2. 2. 1.1. Modbus 轮询的Das System要求
  3. 3. 1.2. 终止用户许可Vereinbarung
  4. 4. 2. Modbus 轮询Funktion
  5. 5. 2.1. Verbindung
  6. 6. 2.2. 支持的 Modbus Funktion
  7. 7. 2.3. Daten aufzeichnen
  8. 8. 2.4. Format zeigen
  9. 9. 2.5. 其他Funktion
  10. 10. 3. 概述
  11. 11. 3.1. 随时随地提供帮助
  12. 12. 3.2. 命名单元格
  13. 13. 3.3. 值单元格
  14. 14. 3.4. 更改字体
  15. 15. 3.5. 条件颜色
  16. 16. 3.6. 缩放
  17. 17. 3.7. 实时图表
  18. 18. 3.8. Adresse扫描
  19. 19. 3.9. Öffnen.一个新窗口
  20. 20. 4. Verbindung对话框
  21. 21. 4.1. 联系
  22. 22. 4.2. Die Serie设置
  23. 23. 4.3. Fern entferntDer Server
  24. 24. 4.4. 高级设置
  25. 25. 5. 读/写定义
  26. 26. 5.1. 从机ID
  27. 27. 5.2. Funktionscode
  28. 28. 5.3. Adresse
  29. 29. 5.4. 扫描率
  30. 30. 5.5. 读/写禁用
  31. 31. 5.6. 隐藏Name列
  32. 32. 5.7. 单元格中的Adresse
  33. 33. 5.8. PLC Adresse(基Adresse 1)
  34. 34. 5.9. 安然/丹尼尔·莫德
  35. 35. 5.10. 行数
  36. 36. 6. 实时图表
  37. 37. 6.1. 设置
  38. 38. 6.2. 变焦Funktion
  39. 39. 6.3. 平移Funktion
  40. 40. 6.4. 将Daten链接zu图表系列
  41. 41. 6.5. 出口系列
  42. 42. 7. Adresse扫描
  43. 43. 7.1. ExportierenAdresse扫描
  44. 44. 8. Format zeigen
  45. 45. 8.1. 本机 Modbus Register.
  46. 46. 8.2. 32 位有符Nr.整数
  47. 47. 8.3. 32 位无符Nr.整数
  48. 48. 8.4. 64 位有符Nr.整数
  49. 49. 8.5。64 位无符Nr.整数
  50. 50. 8.6。32位浮点
  51. 51. 8.7. 64位双
  52. 52. 9. 保存/Öffnen.工作区
  53. 53. 10.Exportieren为csv
  54. 54. 11. ExportierenzuModbus Slave
  55. 55. 12. 测试中心
  56. 56. 12.1。ASCII Beispiel
  57. 57. 12.2. TCP/IP Beispiel
  58. 58. 12.3。测试中心Charaktere串文件
  59. 59. 12.4。Kopieren.
  60. 60. 13.ModbusDaten aufzeichnen
  61. 61. 13.1. Text文件
  62. 62. 13.2. 微软Excel
  63. 63. 14.通讯流Quantität
  64. 64. 15.OLE/自动化
  65. 65. 15.1. Excel Beispiel
  66. 66. 15.2. PythonBeispiel
  67. 67. 15.3。VerbindungFunktion/属性
  68. 68. 15.4。Lesen函数
  69. 69. 15.5。自动写入Funktion
  70. 70. 15.6。多种Funktion
  71. 71. 15.7。自动化Daten属性
  72. 72. 15.8。编写函数(创建Daten窗口)
  73. 73. 16. 异常和Fehler.消息
  74. 74. 16.1. Modbus 异常代码
  75. 75. 16.2. Modbus 轮询Fehler.消息

Witte Software® https://www.modbustools.com

2023-08-01

1.Modbus Poll

Modbus Poll 是一款Leicht zu verwenden的 Modbus Hauptstation模拟器,专为多种用途而开发。Von denen:

  • Modbus 从Ausrüstung设计者可快速轻松地测试VereinbarungSchnittstelle
  • 需要现场测试ModbusAusrüstung或网络的自动化工程师
  • 想要从AusrüstungLesen和/或更改特定服务Daten的服务工程师
  • 更改从Ausrüstung中的 Modbus Register.
  • 来自 Modbus Ausrüstung的日志Daten
  • 故障排除和合规性测试

1.1. Modbus 轮询的Das System要求

硬件要求

处理器; 建议 1 GHz 或更快
1 GB RAM
5 MB 可用硬盘空间
1024 x 768 显示Unterteilung辨率OperationenDas System要求

支持从 Windows 7 zu Windows 11 的所有 Windows 版本。
Modbus Poll 版本 7 在 Windows XP 上Betrieb。

1.1.1. 静默安装

静默安装不需要用户干预,并且没有用户界面。用户看不zu任何对话框,也不会被问zu任何问题。
使用Befehl行 /S Schalter!。

1.2. 终止用户许可Vereinbarung

在使用 Modbus Poll 之前,您应仔细阅读以下条款和条件。除非您有 Witte Software 签署的不同许可Vereinbarung,否则您使用本软件即表示您接受本许可Vereinbarung和Garantie。如果您不接受这些条款,您必须立即Stopp!使用该软件。

版权。
Modbus Poll(“软件”)版权所有 2002-2023,归 Witte Software 所有,Alle Rechte vorbehalten。

评估和Registrierung。
这不是kostenlos软件。您特此被许可在 30 天内kostenlos使用本软件进行评估。

如果您在 30 天评估期后使用本软件,则需要支付Registrierung费。

30 天评估期后未经Registrierung使用本软件将违反美国和国际版权法。

本软件的一份Registrierung副本可以由在一台或多台Berechnung机上个人使用该软件的一个人使用,也可以安装在由多人使用的一台Berechnung机上,但不能同时安装在这两种Berechnung机上。

有关订单和定价的信息,请访问https://www.modbustools.com/order.html

Modbus Poll Lizenz是永久的。一旦您购买了特定主要版本的Lizenz,并且只要遵守许可Vereinbarung,您就可以永久使用该版本,无需额外费用。

Unterteilung配。
如果您不包含您的Lizenz密钥,您将被授权Kopieren.本软件;向任何人提供原件的精确副本;并通过电子方式Unterteilung发未经修改的软件。特别禁止您对任何此类副本收费。

有限保修。
本软件按原样提供,WITTE SOFTWARE 不承担与本软件Related的所有明示或默示Garantie,包括但不限于适销性和特定用途适用性的任何默示Garantie。

损害赔偿限制。
对于因使用或无法使用该软件而造成的任何间接、后果性或附带损害,WITTE SOFTWARE 或参与该软件的创建、生产或交付的任何人均不承担责任,即使 WITTE SOFTWARE 已被告知这种可能性此类损害或索赔。在任何情况下,无论索赔形式如何,WITTE SOFTWARE 对任何损害的责任均不超过为使用本软件的许可所支付的价格。使用该软件的人承担与该软件的质Quantität和性能Related的所有风险。

2. Modbus 轮询Funktion

2.1. Verbindung

Modbus Poll 使用以下方式从AusrüstungLesen/写入Daten:

  • RS232 或 RS485 网络上的 Modbus RTU 或 ASCII。(USB/RS232/485Konverter.)
  • Modbus TCP/IP
  • TCP/IP 上的 Modbus。(Modbus RTU/ASCII封装在TCPDaten包中)
  • VereinbarungUDP/IP
  • 基于 UDP/IP 的 Modbus。(Modbus RTU/ASCII封装在UDPDaten包中)

2.2. 支持的 Modbus Funktion

  • 01 (0x01) Lesen线圈
  • 02 (0x02) Lesen von diskreten Eingaben
  • 03 (0x03) Lesen und halten Register
  • 04 (0x04) Eingangsregister lesen
  • 05 (0x05) Schreiben Sie eine einzelne Schleife.
  • 06 (0x06) Schreiben eines einzelnen Registers
  • 08 (0x08) 诊断(仅限串行线)
  • 11 (0x0B) 获取通讯Ereignisse计数器(仅限串行线)
  • 15 (0x0F) Schreiben Sie mehrere Schleife
  • 16 (0x10) Schreiben in mehrere Register
  • 17 (0x11) 报告Der Server ID(仅限串行线路)
  • 22 (0x16) 掩码写Register.
  • 23 (0x17) 读/Schreiben mehrerer Register
  • 43 / 14 (0x2B / 0x0E) LesenAusrüstung标识

2.3. Daten aufzeichnen

  • 将Daten aufzeichnenzuText文件
  • 将Daten直接记录zu Excel 中

2.4. Format zeigen

每个单元格都可以单独Das Format化。

  • 有符Nr. 16 位Register.
  • 无符Nr. 16 位Register.
  • 16. System
  • Binärsystem
  • 具有任意字/Die Reihenfolge的 32 位有符Nr.整数
  • 具有任意字/Die Reihenfolge的 32 位无符Nr.整数
  • 具有任意字/Die Reihenfolge的 64 位有符Nr.整数
  • 具有任意字/Die Reihenfolge的 64 位无符Nr.整数
  • 具有任意字/Die Reihenfolge的 32 位浮点数
  • 具有任意字/Die Reihenfolge的 64 位双浮点

2.5. 其他Funktion

  • 用于与 Excel VBA、Python 等Verbindung的 OLE/自动化。
  • Daten流Quantität监控
  • 打印和打印预览
  • 字体Auswahl
  • 条件颜色
  • 缩放
  • 实时图表
  • 保存/Öffnen.工作区
  • Adresse扫描

3. 概述

Modbus Poll 使用多DokumentationSchnittstelle。这意味着可以Öffnen.多个窗口。每一个同时具有来自不同从Ausrüstung的不同Daten内容。

Modbus Poll中文用户手册(2023/08/01)版插图

这张照片显示了两个Öffnen.的窗户。一次Lesen来自从机 id 1 的 10 个保持Register.,另一次Lesen来自从机 id 2 的 10 个保持Register.。

3.1. 随时随地提供帮助

按 F1即可获取与gegenwärtig所选项目Related的主题的上下文Related帮助。

SHIFT + F1调用特殊的“帮助模式”,Von denen光标变成帮助光标(箭头+问Nr.)。然后,用户可以Auswahl用户界面中的可见对象,例如菜单项、Werkzeuge栏Knopf或窗口。这将Öffnen.有关描述所选项目的主题的帮助。

3.2. 命名单元格

您可以在此处键入任何Text来指定值单元格。您还可以从 Excel 单元格Kopieren./粘贴Text。

3.3. 值单元格

显示 Modbus Register.的Daten值。如果双击值单元格,将出现一个对话框,您可以将新值写入从Ausrüstung。在值单元格中键入数字也会显示该对话框。可以Auswahl用于Schreiben Sie Wert的 Modbus Funktion。

“Antwort成功时Schließen对话框”复选框用于在成功Senden Sie值时自动Schließen对话框。当要更改大Quantität值时,这很方便。这样,可以Schnelle Auswahl新单元格,然后再次键入新值。

Modbus Poll中文用户手册(2023/08/01)版插图1

3.4. 更改字体

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

  • Auswahl要更改的单元格,然后右键单击。
  • Auswahl要更改的单元格,然后菜单→显示→字体。
Modbus Poll中文用户手册(2023/08/01)版插图2

3.5. 条件颜色

条件颜色可帮助您直观地显示特定范围内的值。3 种颜色Auswahl

  • 默认颜色:如果没有任何条件颜色Berechnungsergebnisse为 true,则使用此颜色。
  • Regeln 1:如果表达式的Berechnungsergebnisse为 true,则使用此颜色Auswahl。Regeln 1 优先于Regeln 2。
  • Regeln 2:如果表达式的Berechnungsergebnisse为 true,则使用此颜色Auswahl。

7 比较运算符

  • 不曾用过
  • gleich ist
  • 比…更棒
  • 少于
  • größer als或gleich ist
  • kleiner als或gleich ist

当Datentyp为 float 或 32 位 long Typus时,不能使用“and”运算符。如果Auswahl“and”,则条件值将以16. System数字形式输入。如果单元格和条件值中的任何位均为 1,则其Berechnungsergebnisse为 true。

3.5.1. 颜色Beispiel

如果单元格值介于 398 和 402 之间,则为绿色

Modbus Poll中文用户手册(2023/08/01)版插图3

3.6. 缩放

缩放可帮助您将原始值缩放为人类可读的值。缩放仅适用于有符Nr.和无符Nr. 16/32 位整数。

Modbus Poll中文用户手册(2023/08/01)版插图4

(X1,Y1) 和 (X2,Y2)

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

Slope=m=Y2−Y1X2−X1

直线方程

Y=m⋅(X−X1)+Y1

精确小数点后的位数。使能够

必须aktiviert.才能缩放来自 Modbus Der Server/Von der Station的值。如果Auswahl 16/32 位整数Format zeigen以外的Das Format,则自动禁用缩放。

3.7. 实时图表

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

3.8. Adresse扫描

扫描Adresse范围以获取Ausrüstung中所有WirksamAdresse的列表。

3.9. Öffnen.一个新窗口

要Öffnen.另一个窗口,您有 3 个选项:

  • 按 CTRL+N
  • 在文件菜单中Auswahl新建
  • Modbus Poll中文用户手册(2023/08/01)版插图5Werkzeuge栏上的

4. Verbindung对话框

要Öffnen.Verbindung对话框,您有 2 个选项:

  • 按F3
  • 从Verbindung菜单中AuswahlVerbindung
Modbus Poll中文用户手册(2023/08/01)版插图6

4.1. 联系

有 5 种不同的VerbindungTypus:

  1. 串行:
    通过串行线路的 Modbus。RS232 或 RS485。可以使用USB串行Konverter.。
  2. Modbus TCP/IP:
    如果要与 MODBUS TCP/IP 网络Kommunikation,Bitte wählen TCP/IP。在这种情况下,Von der Station ID 与 MODBUS TCP/IP 中使用的单元 ID 相同。
    端口Nr.默认为 502。
    如果Verbindung失败,请尝试在Befehl提示符下是否可以 ping 通您Die Ausrüstung。如果 ping Befehl失败,则 Modbus 轮询也会失败。
  3. Modbus UDP/IP:
    如果要与 MODBUS UDP/IP 网络Kommunikation,Bitte wählen UDP/IP。这与 Modbus TCP/IP 相同,但使用无Verbindung UDP Vereinbarung。
  4. TCP/IP 上的 Modbus RTU/ASCII:
    这是通过 TCP/IP 网络而不是串行线路Senden Sie的 RTU 或 ASCII 消息。
  5. Modbus RTU/ASCII over UDP/IP:
    这是通过 UDP/IP 网络而不是串行线路Senden Sie的 RTU 或 ASCII 消息。
VerbindungTypus 3-5 不是www.modbus.org指定的标准 Modbus ,但添加它们是为了方便。

根据您的Auswahl,一些其他设置将呈灰色。

4.2. Die Serie设置

使用这些Parameter来设置串行端口设置。仅当VerbindungTypus为“串行端口”时它们才可用。模式

使用此选项AuswahlRTUASCII模式。默认 RTU。Antwort超时

指定 Modbus 轮询在放弃之前应等待从属AusrüstungAntwort的ZeitLänge。默认值为 1000 毫秒。轮询之间的最小延迟

无论扫描速率如何,此设置都可确保传输下一个Bitte之前的最小延迟。该设置的Unterteilung辨率约为15ms。在某些Berechnung机上可以获得更好的Unterteilung辨率,但并非Alles。

如果将此值设置为低于 20 毫秒,则无法GarantieAntwort与新Bitte之间的Zeit间隔为 3.5 个Charaktere。这是因为 Windows 调度程序每 10 – 20 毫秒Wechseln一次任务。如果您在串行 RS485 网络中轮询多个Von der Station,则不应将该值设置为低于 20ms。这是为了确保 3.5 个Charaktere的Zeit间隙。在 TCP/IP 网络中,kleiner als 20 毫秒就可以了。仅与一台从Ausrüstung的串行VerbindungZeitkleiner als 20ms 即可。

用户Porter Rate

如果默认Porter Rate均无用,请指定Custom definiertPorter Rate。

4.3. Fern entferntDer Server

Fern entferntDer Server设置仅在使用EthernetVerbindung时可用。IPAdresse

Der Server IP Adresse。默认为本地主机 127.0.0.1港口

Der Server端口Nr.。默认502Verbindung超时

用于建立Verbindung的最长Zeit。默认 1000

4.4. 高级设置

即时战略Wechseln

RTS Wechseln指定如果Bytes可用于传输,则 RTS 线将为高电平。Senden Sie所有缓冲Bytes后,RTS 线将为低电平。
如果您的 232/485 Konverter.没有自动方向Schalter!,则可以使用它来Wechseln方向。

如果可能,应避免使用 RTS 控制的 RS232/RS485 Konverter.。对于Windows、Linux等非实时OperationenDas System,很难确定发射机Schließen的具体Zeit。如果过早Schließen,Charaktere可能仍位于 FIFO 或 UART 的Senden SieRegister.中,并且这些Charaktere将会丢失。因此从机将无法识别该消息。另一方面,如果Schließen得太晚,则从Ausrüstung的消息会被损坏,并且主Ausrüstung将无法识别该消息。

数字SR

DSR 指定是否监视 DSR(Daten集就绪)信Nr.以进行输出流控制。如果该成员为 TRUE 并且 DSR Schließen,则输出将暂停,直zu再次Senden Sie DSR。CTS

CTS 指定是否监视 CTS(BeseitigungSenden Sie)信Nr.以进行输出流Quantität控制。如果aktiviert.此复选框并且Schließen CTS,则输出将暂停,直zu再次Senden Sie CTS。数字TR

DTR 指定每当端口Öffnen.时是否aktiviert.或禁用 DTR。消除回声

如果您Die Ausrüstung或 RS232/RS485 Konverter.回显刚刚Senden Sie的Charaktere。

5. 读/写定义

使用此Befehl定义活动窗口要监视的Daten。

要Öffnen.读/写定义对话框,您有 3 个选项:

  • 按 F8
  • 从设置菜单中Auswahl“读/写定义”
  • Modbus Poll中文用户手册(2023/08/01)版插图7Werkzeuge栏上的
Modbus Poll中文用户手册(2023/08/01)版插图8

5.1. 从机ID

范围 1 zu 255。(MODBUS Vereinbarung规范规定为 247)。值 0 也可以直接与 MODBUS/TCP 或 MODBUS/UDP AusrüstungKommunikation。

5.2. Funktionscode

您可以Auswahl 8 个Funktion代码中的 1 个。

5.2.1. LesenFunktion

Lesen函数返回的Daten显示在网格窗口上。

  • 01:Lesen线圈(0x)
  • 02:Lesen von diskreten Eingaben (1x)
  • 03:Lesen und halten Register(4x)
  • 04:Eingangsregister lesen(3x)

5.2.2. 编写函数

写入函数写入网格窗口上显示的Daten。

  • 05:Schreiben Sie in eine einzelne Schleife(写入Zustand der Coil)
  • 06:Schreiben in ein einzelnes Register(写入保持Register.)
  • 15:Schreiben Sie mehrere Schleife(Writes to Coils)
  • 16:Schreiben in mehrere Register(Writes to Holding registers)

5.3. Adresse

ModbusVereinbarung中的Adresse很混乱!一些Vereinbarung规范使用Vereinbarung/消息Adresse,而其他Vereinbarung规范则使用Ausrüstung寻址。

5.3.1. Vereinbarung/消息Adresse

某些Vereinbarung规范使用从 0 zu 65535 计数的Vereinbarung/消息Adresse以及Funktion代码。这也是新的 Modbus 规范所使用的内容。这是通过线路Senden Sie的消息中的Adresse。

Modbus Poll 使用从 0 zu 65535 计数的Vereinbarung/消息Adresse。

5.3.2. Geräte Adresse

一些Vereinbarung规范使用Geräte Adresse/Register.。Register.从 1 开始计数。Die一个数字描述要使用的Funktion。这意味着Geräte Adresse 40101 由Adresse 100 标识。“4”表示保持Register.和 4x Register.从 1 开始计数。更令人困惑的是:4x 表示Funktion代码 03,3x 表示Funktion代码 04!

5.3.3. 5 位与 6 位寻址

AdresseDas Format 4x 从 40001 计数zu 49999。下一个Adresse不是50000。在过去,9999 个Adresse就足够了。有些情况下9999还不够。然后添加一个零。40101 变为 400101,依此类推。这称为 6 位寻址或扩展寻址。

这不是 Modbus 轮询的问题。410001 变成 10000。“4”被丢弃,剩下的 10001 减 1,因为我们从 0 而不是 1 开始计数。

5.3.4. AdresseBeispiel

这些Beispiel展示了如果规范使用Geräte Adresse,如何设置 Modbus 轮询。

Lesen und halten Register

您希望每 1000ms 从从机 ID 2 LesenGeräte Adresse 40011 中的 20 ein Register.。从“4”我们知道这是Funktion03“Lesen und halten Register”。

  • 从机 ID = 2
  • Funktion =“03 Lesen und halten Register (4x)”
  • Adresse = 10(11 减 1)
  • Anzahl = 20
  • 扫描率 = 1000
Lesen von diskreten Eingaben

您希望每 500ms 从Von der Station ID 5 LesenAdresse 110201 的 1000 个线圈。从“1”我们知道这是Funktion02“Lesen von diskreten Eingaben”

  • 从机 ID = 5
  • Funktion =“02 Lesen von diskreten Eingaben (1x)”
  • Adresse = 10200 (10201 – 1)
  • Anzahl = 1000
  • 扫描率 = 500

5.4. 扫描率

扫描速率可设置为 0 bis zu 3600000ms。请注意,将扫描速率设置为低于事务Zeit是没有意义的。如果使用 9600 Porter Rate的串行Verbindung并Bitte 125 ein Register.,则事务Zeit大约为 8 + 2 + 250 + 2 = 262ms + Bitte和Antwort之间的间隙(>3.5 个CharaktereZeit)。在这种情况下,将扫描速率设置为 100ms 是没有意义的,因为事务Zeit至少为 262ms + Von der Station延迟(间隙)+ 轮询之间的最短Zeit。(在Verbindung对话框 F3 中设置)。

5.5. 读/写禁用

“读/写禁用”复选框可用于临时aktiviert.或禁用该窗口的Kommunikation。然后会显示Text(已禁用)以及 Tx 和Fehler zählen器。

Modbus Poll中文用户手册(2023/08/01)版插图9
如果“读/写”被禁用,您可以使用“读/写一次”Knopf或按 F6 发出单个Bitte。

Modbus Poll中文用户手册(2023/08/01)版插图10
“读/写一次”Knopf

5.5.1. 出错时禁用

发生Fehler.时禁用读/写。

5.6. 隐藏Name列

隐藏所有Name列。如果不使用它们,这可以方便地腾出mehr.空间。

5.7. 单元格中的Adresse

如果aktiviert.,Adresse也会显示在值单元格中,例如:2000 = 00000

Modbus Poll中文用户手册(2023/08/01)版插图11

5.8. PLC Adresse(基Adresse 1)

此选项会将Adresse显示为Geräte Adresse。

Modbus Poll中文用户手册(2023/08/01)版插图12

5.9. 安然/丹尼尔·莫德

Enron 或 Enron/Daniels Modbus 是带有一些“供应商扩​​展”的标准 Modbus。这些扩展的确切影响取决于上下文,但最Häufig的 Modbus Befehl按预期工作。有一些供应商定义的Custom definiert函数可用 – 但很少有用户期望或使用它们。最大的影响与 32 位Daten值的读/写方式有关。

Enron-Modbus 定义了两个特殊的 4x 保持Register.范围:

  • 假设 4×5001 zu 4×5999 是 32 位长整数(每ein Register. 4 个Bytes)。
  • 假设 4×7001 zu 4×7999 是 32 位浮点(每ein Register. 4 个Bytes)。

在 Modbus 中处理 32 位值并不是 Enron-MB 所独有的。然而,Enron-MB 采取了有争议的步骤,即每ein Register.返回 4 Byte,而不是 Modbus 规范中术语“保持Register.”所暗示的 2 Bytes。这意味着 Enron-Modbus 中的Register. 4×5001 和 4×5002 轮询会返回 8 Bytes或两个 32 位整数,而标准 Modbus 只会返回 4 Byte或一个 32 位整数(被视为两个 16 位整数)。此外,Enron-MB 中的轮询Register. 4×5010 返回Die十个 32 位长整数,而标准 Modbus 会考虑此范围内Die五个 32 位长整数的 1/2。

5.10. 行数

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

6. 实时图表

使用此Befehl可在图表中实时绘制最多 12 个Daten系列。
实时图表速度很快,能够在收zu新Daten后尽快绘制新线。

所有图表设置都与工作区一起存储。保存/Öffnen.工作区

要Öffnen.实时图表对话框,您有 2 个选项:

  • 按 Alt + R
  • 从显示菜单中Auswahl“实时图表”
Modbus Poll中文用户手册(2023/08/01)版插图13

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

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

  • Ende时Stopp!:图表Stopp!。
  • Ende时重新启动:图表neu anfangen.。
  • 继续:继续,直zu达zu最大点数或按下Stopp!Knopf。

6.1. 设置

默认情况下,所有 12 个系列都链接zu左侧 Y 轴。如果要将系列链接zu右 Y 轴,请选中“右 Y 轴”复选框。指定

  • 颜色
  • 右 Y 轴
  • 标题。如果标题为空,则使用阅读窗口中的Name进行初始化
  • 抵消

展示

  • 文件名
  • Adresse

偏移对于在同一 Y 轴上对齐Daten点很有用。例如,0 或 1 的Daten点可以偏移,这样它们就不会绘制在彼此之上。

Modbus Poll中文用户手册(2023/08/01)版插图14

6.2. 变焦Funktion

如果您想Überprüfen Sie mehr详细信息,放大图表会很有用。缩放由鼠标左键控制。要缩放图表的特定部Unterteilung,只需左键单击图表(这将是缩放矩形的左上角)并拖动zu右下角。将出现一个矩形。一旦释放鼠标Knopf,轴就会自动调整zu您Auswahl的区域。

如果您左键单击图表(例如开始缩放),但如果您移动zu左上角,则使用缩放和平移Funktionabgeschlossen.的所有修改都将被Absage(图表将处于原来的Status)在进行平移和缩放Operationen之前)。

6.3. 平移Funktion

要平移Kontrollen,请右键单击Kontrollen上的某处并移动鼠标。鼠标下方的点将跟随鼠标的移动。

除非将 Modbus Daten单元链接zu 12 个系列之一,否则图表不知道要使用哪些Daten。为此,Auswahl一个值单元格,然后从菜单→显示中Auswahl“链接zu图表”。

Modbus Poll中文用户手册(2023/08/01)版插图15

6.5. 出口系列

将系列Daten保存zu磁盘或Kopieren.zu剪贴板。将Daten直接粘贴zu Excel 中以进行进一步处理。
尽管使用非逗Nr.FeldUnterteilung隔符,但该文件仍具有 .csv 扩展名。

Unterteilung隔符:AuswahlUnterteilung隔Text文件中的值的Charaktere。Kopieren./粘贴zu Excel 时使用制表符Unterteilung隔符。此外还给出了一些附加信息。

  • 点数
  • 最大Unterteilung值
  • 最小Unterteilung值
  • 平均Unterteilung值
Modbus Poll中文用户手册(2023/08/01)版插图16

7. Adresse扫描

扫描Adresse范围以获取Ausrüstung中所有WirksamAdresse的列表。Adresse被逐一Lesen,LesenErgebnis以列表形式显示。

扫描所有 65535 个Adresse需要一些Zeit,具体取决于VerbindungTypus、Der ServerAusrüstung等。

7.1. ExportierenAdresse扫描

保存Adresse扫描Datenzu磁盘或Kopieren.zu剪贴板。将Daten直接粘贴zu Excel 中以进行进一步处理。
尽管使用非逗Nr.FeldUnterteilung隔符,但该文件仍具有 .csv 扩展名。

Unterteilung隔符:AuswahlUnterteilung隔Text文件中的值的Charaktere。Kopieren./粘贴zu Excel 时使用制表符Unterteilung隔符。

8. Format zeigen

标记要Das Format化的单元格。从显示菜单中Auswahl 28 种Format zeigen之一。

8.1. 本机 Modbus Register.

16 位 Modbus Register.可以以 4 种不同的模式显示。

  • 未签名
  • 16. System
  • ASCII – 16. System
  • Binärsystem

8.2. 32 位有符Nr.整数

它结合了 2 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。

  • 有符Nr.整数 大尾数
  • 有符Nr.整数 小尾数
  • 有符Nr.整数大端Bytes交换
  • 有符Nr.整数小端Bytes交换例子Die Reihenfolge:AB CD(大端)
    Das Dekimalsystem数 123456789 或16. System数07 5B CD 15
    Modbus 消息中通过线路传输的顺序:07 5B CD 15

8.3. 32 位无符Nr.整数

它结合了 2 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。

  • 无符Nr.整数 大尾数
  • 无符Nr.整数 小尾数
  • 无符Nr.整数 Big-endian Bytes交换
  • 无符Nr.整数小端Bytes交换例子Die Reihenfolge:AB CD(大端)
    Das Dekimalsystem数 123456789 或16. System数07 5B CD 15
    Modbus 消息中通过线路传输的顺序:07 5B CD 15

8.4. 64 位有符Nr.整数

它结合了 4 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。

  • 有符Nr.整数 大尾数
  • 有符Nr.整数 小尾数
  • 有符Nr.整数大端Bytes交换
  • 有符Nr.整数小端Bytes交换例子Die Reihenfolge:AB CD EF GH(大端)
    Das Dekimalsystem数 -1,234,567,890,123,456,789 或16. System数EE DD EF 0B 82 16 7E EB
    Modbus 消息中的线路顺序:EE DD EF 0B 82 16 7E EB

8.5。64 位无符Nr.整数

它结合了 4 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。

  • 无符Nr.整数 大尾数
  • 无符Nr.整数 小尾数
  • 无符Nr.整数 Big-endian Bytes交换
  • 无符Nr.整数小端Bytes交换例子Die Reihenfolge:AB CD EF GH(大端)
    Das Dekimalsystem数 1,234,567,890,123,456,789 或16. System数11 22 10 F4
    7D E9 81 15 Modbus 消息中的线路顺序:11 22 10 F4 7D E9 81 15

8.6。32位浮点

它结合了 2 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。

  • 浮点大尾数
  • 浮点数小尾数
  • 浮点大端Bytes交换
  • 浮点小端Bytes交换例子Die Reihenfolge:AB CD(大端)
    浮点数 123456.00 或16. System47 F1 20 00
    Modbus 消息中的线路顺序:47 F1 20 00

8.7. 64位双

它结合了 4 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。

  • 双大尾数
  • 双小端
  • 双大端Bytes交换
  • 双小端Bytes交换例子Die Reihenfolge:AB CD EF GH(大端)
    浮点数 123456789.00 或16. System41 9D 6F 34 54 00 00 00
    Modbus 消息中的线路顺序:41 9D 6F 34 54 00 00 00

9. 保存/Öffnen.工作区

如果您Öffnen.许多Related的 Modbus 窗口,可以方便地在一个工作区中保存所有Öffnen.和排列的 Modbus 窗口的gegenwärtig布局的快照。

工作区 (*mbw) 是一个包含所有Öffnen.窗口的显示信息和文件名的文件。不是实际内容。为此,请转zu“文件”→“保存工作区”。

Verbindung和图表设置存储在工作区文件中。

当您Öffnen.工作区文件时,Modbus 轮询会Öffnen.所有 Modbus 窗口并以您保存的布局显示它们。

10.Exportieren为csv

将Name和值Exportierenzu逗Nr.、UnterteilungNr.或制表符Unterteilung隔值文件。从文件对话框中Auswahl

  • 逗Nr.Unterteilung隔值文件 (*.csv)
    “Temperature”,”19.7″
  • UnterteilungNr.Unterteilung隔值文件 (*.csv)
    “Temperature”;”19.7″
  • 制表符Unterteilung隔值文件 (*.txt)
    Temperatur 19.7

根据您的Das System,使用逗Nr.或句点来Unterteilung隔小数。

11. ExportierenzuModbus Slave

将Name、值和Das FormatExportierenzu Modbus Von der Station文件。*.mbs

需要 Modbus Slave 版本 7.4.0 或更高版本才能Öffnen.该文件。

12. 测试中心

此测试对话框的目的是帮助 MODBUS Von der StationAusrüstung开发人员使用自己组成的任何Charaktere串来测试Ausrüstung。
列表框显示Senden Sie的Daten以及Empfang的Daten。
下拉列表框中可以有多个测试Charaktere串。输入Charaktere串后,按“添加zu列表”Knopf,该Charaktere串就会添加zu列表中。
当按下“Senden Sie”Knopf时,将Senden Sie所选Charaktere串。Öffnen.列表

从文件中恢复测试Charaktere串。保存列表

将测试Charaktere串存储zu文件中。Beseitigung

Beseitigung测试列表。添加zu列表

将gegenwärtig测试Charaktere串添加zu列表中。添加支票

将 CRC 或 LRC 添加zu输入Charaktere串的末尾。

使用测试中心时,您可能希望禁用其他窗口的Kommunikation。选中“读/写定义”对话框中的“读/写禁用”复选框。设置→读/写定义。

12.1。ASCII Beispiel

组合框中的Charaktere串:3A 30 31 30 33 30 30 30 30 30 30 30 41

添加LRC时传输的Charaktere串3A 30 31 30 33 30 30 30 30 30 30 30 41 46 32 0D 0A

还添加了 CR LF 对。

12.2. TCP/IP Beispiel

Lesen 10 个保持Register.。00 00 00 00 00 06 01 03 00 00 00 0A

前 6 个Bytes是 TCP/IP 标头。

12.3。测试中心Charaktere串文件

使用记事本或类似的TextHerausgeber器,您可以准备要在测试中使用的Charaktere串。
文件中的Die一行必须是Charaktere串“TestCenter”。这就是 Modbus Poll 知道文件Das FormatRichtig.的方式。按“Öffnen.列表”Öffnen.准备好的Text文件。

12.3.1. Charaktere串列表的内容

测试中心 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

12.4。Kopieren.

使用Kopieren.Knopf将选定的 Tx/Rx Charaktere串Kopieren.zu剪贴板。
SHIFT 和 CTRL 键可与鼠标一起使用来Auswahl和AbsageAuswahlCharaktere串、AuswahlCharaktere串组以及Auswahl不相邻的Charaktere串。

在执行其他Befehl时保持此窗口Öffnen.。

13.ModbusDaten aufzeichnen

您可以将Daten aufzeichnenzuText文件或直接记录zu Microsoft Excel。

13.1. Text文件

从设置菜单中Auswahl“日志”或使用快捷键:Alt+L

每个 Modbus 窗口都会记录zu其单独的Text文件中。

当您想要Stopp!Daten aufzeichnen时,请在设置菜单上Auswahl注销Befehl。

Modbus Poll中文用户手册(2023/08/01)版插图17

13.1.1. 记录率

每读

为所有 Modbus Bitte编写日志行。将频率记录为扫描速率。Auswahl

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

例如,如果扫描速率为 10000 毫秒,则设置 1 秒的记录速率是没有意义的,因为仅当新Daten准备就绪时才会记录Daten。

13.1.2. Unterteilung隔符

作为Unterteilung隔符,您可以使用以下选项之一:固定宽度

意味着值按列组织。逗Nr.

值以逗Nr.Unterteilung隔。Kennzeichnung

值由制表符Unterteilung隔。

13.1.3。仅当Daten发生更改时才记录

指定仅当自上次日志以来有任何Daten更改时才写入新的日志行。

13.1.4。记录Fehler.

指定记录超时等Fehler.。

13.1.5。记录日期

指定将gegenwärtig日期添加zu日志Zeit中。

13.1.6。使用“T”作为Unterteilung隔符

指定Zeit和日期由 ISO 8601 中指定的字母“T”Unterteilung隔。

13.1.7。记录毫秒

指定将毫秒添加zu日志Zeit中。

13.1.8。日志Adresse

指定将 Modbus Adresse添加zu日志中。

13.1.9。按下“确定”后开始记录

指定按下确定Knopf时开始记录。否则,日志设置仅在保存 *mbp 文件时存储。

13.1.10。*mbp Öffnen.时启动日志

指定Öffnen. *.mbp 文件时自动启动日志记录。

13.1.11。立即冲入档案

这确保日志行不会被缓存zu文件Das System中,而是立即以物理方式写入。

13.1.12。附加

指定将日志附加zu所选文件。否则会创建一个新文件。

13.1.13。午夜新日志文件

Schließengegenwärtig日志文件并在午夜启动新文件。Zeit戳会添加zu您的文件名中。

13.1.14。标头信息

  • 插入标题:信息插入zu日志文件的顶部。
    • 顶行中的Name单元格:插入Name。
    • 投票定义:插入 ID、Funktion等。
    • Name:插入日志的Name。

固定宽度的Text文件Beispiel: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

您可以Importieren Excel 电子表格中的Daten。

13.2. 微软Excel

此Funktion需要安装 Microsoft Excel。Excel 2003 日志限制为 65535 条日志,因为这是 Excel 工作表中的最大行数。Excel 2007 或更高版本仅限于 1,048,576 行。每个 Modbus 窗口都会记录zu其单独的 Excel 工作表中。

从设置菜单中Auswahl Excel Log 或使用快捷键:Alt+X

记录时请勿触摸 Excel 工作表,因为这会中断记录。

Modbus Poll中文用户手册(2023/08/01)版插图18

13.2.1. 记录率

  • 每次Lesen:为所有 Modbus Bitte写入日志行。将频率记录为扫描速率。
  • Auswahl:指定日志速率(以秒为单位)。日志与扫描速率无关。
    备注:如果扫描速率为 10000ms,则设置 1 秒的记录速率是没有意义的,因为仅当新Daten准备好时才会记录Daten。
  • Stopp!Zeit:指定日志行数。请注意,Excel 2003 限制为 65,536 行,Excel 2007 限制为 1,048,576 行。

13.2.2. 标头信息

  • 插入标题:信息插入zu Excel 工作表的最上面 3 行。
    • 顶行中的单元格Name:在Die 3 行中插入Name。
    • 投票定义:在Die 2 行插入 ID、Funktion等。
    • Name:在Die 1 行插入日志Name。
Modbus Poll中文用户手册(2023/08/01)版插图19

带有标题信息的 Excel 日志。

14.通讯流Quantität

Auswahl菜单“显示”→“通讯”以显示串行线路或Ethernet电缆上的流Quantität。使用Stopp!Knopf暂时Stopp!更新以进行检查。

使用Kopieren.Knopf将所选行Kopieren.zu剪贴板。

该窗口仅显示通过 Modbus Poll Senden Sie和Empfang的Daten。您不能将其用作Daten嗅探器。
在执行其他Befehl时保持此窗口Öffnen.。

15.OLE/自动化

自动化(以前称为 OLE 自动化)使一个应用程序可以Operationen另一应用程序中实现的对象。

自动化客户端是一个可以Operationen属于另一个应用程序的公开对象的应用程序。这也称为自动化Der Controller。

自动化Der Server是向其他应用程序公开可编程对象的应用程序。Modbus Poll是一个自动化Der Server。

这意味着您可以使用任何支持VBA(Visual Basic for Applications)的程序(例如Visual Basic、Excel等)根据您的具体要求解释和显示modbusDaten。

15.1. Excel Beispiel

当您想要编写宏时,您应该显示“开发人员”选项卡或在开发人员模式下Betrieb。

15.1.1. Excel 2007

Modbus Poll中文用户手册(2023/08/01)版插图20
  1. 单击 Microsoft Office Knopf,然后单击 Excel 选项。
  2. 单击“流行”,然后选中“在Funktion区中显示开发人员选项卡”复选框。
    请注意,Funktion区是 Microsoft Fluent 用户界面的一部Unterteilung。

15.1.2. Excel 2010、2016

  1. 单击文件选项卡。
  2. 单击选项。Excel 选项窗口将Öffnen.。
  3. 在左侧窗格中单击“Custom definiertFunktion区”。
  4. 在右侧窗格的“主选项卡”下,选中“开发人员”复选框。
  5. 单击“确定”。“开发人员”选项卡现在应该显示在Funktion区中(最右侧的选项卡)。

15.1.3。Excel Beispiel代码

此BeispielÖffnen.两个窗口。一个LesenRegister.,另一个Lesen线圈。
Modbus 轮询是隐藏的,但您可以通过Absage注释“ShowWindow”行来显示它。这将显示Von denen一个窗口。

Modbus 轮询安装中还包含一个Beispiel。
开始 → 所有程序 → Modbus 轮询 → Excel BeispielExcel VBA Beispiel

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 Sub

15.2. PythonBeispiel

此 Python BeispielÖffnen.一个窗口并设置所有可能的Datenformate。Python Beispiel

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。VerbindungFunktion/属性

以下属性和Funktion与您在Verbindung对话框 (F3) 中的设置相同。

15.3.1。联系

VerbindungAuswahl所需的Verbindung。可以Auswahl串行端口或EthernetVerbindung之一。

属性Verbindung为整数Wirksam值

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.3.2. Porter Rate

仅适用于Verbindung = 0

属性BaudRate as LongWirksam值

300
600
1200
2400
4800
9600(默认)
14400
19200
38400
56000
57600
115200
128000
153600
230400
256000
460800
921600例子

BaudRate = 9600

15.3.3。Datenplatz

仅适用于Verbindung = 0

属性DataBits作为整数Wirksam值

7
8(默认)
例子

DataBits = 8

15.3.4。平价

仅适用于Verbindung = 0

财产平价作为整数Wirksam值

0 = 无
1 = 奇数
2 = 偶数(默认)
例子

Parity = 2

15.3.5。Stoppen Sie Platz

仅适用于Verbindung = 0

属性StopBits作为整数Wirksam值

1(默认)
2
例子

StopBits = 1

15.3.6。串行端口

仅适用于Verbindung = 0

属性SerialPort作为整数Wirksam值

1…255

默认值 = 1例子

SerialPort = 1

15.3.7。模式

仅适用于Verbindung = 0

属性模式为整数Wirksam值

0 = RTU 模式
1 = ASCII 模式
例子

Mode = 1

15.3.8。Löschen回声

仅适用于 Connection = 0
如果您Die Ausrüstung或 RS232/RS485 Konverter.回显刚刚Senden Sie的Charaktere。

属性RemoveEcho as IntegerWirksam值

0(默认)
1(消除回声)
例子

RemoveEcho = 1

15.3.9。Antwort超时

ResponseTimeout 指定 Modbus 轮询在放弃之前应等待从属AusrüstungAntwort的ZeitLänge(以毫秒为单位)。

属性ResponseTimeout作为整数Wirksam值

50…100000

默认值 = 1000例子

ResponseTimeout = 1000

15.3.10。轮询之间的延迟

属性DelayBetweenPolls作为 IntegerWirksam值

0…1000

默认值 = 20例子

DelayBetweenPolls = 20

15.3.11. Der Server端口

仅适用于Verbindung = 1…4

属性ServerPort为 LongWirksam值

0…65535

默认值 = 502例子

ServerPort = 502

15.3.12. Verbindung超时

ConnectTimeout 指定 Modbus 轮询应等待 TCP/IP Verbindung成功的ZeitLänge。

仅适用于Verbindung = 1…4

属性ConnectTimeout作为 IntegerWirksam值

100…30000 毫秒

默认值 = 1000 毫秒例子

ConnectTimeout = 1000

15.3.13。IP版本

仅适用于Verbindung = 1…4

属性IPVersion作为整数Wirksam值

4 = IP 版本 4(默认)
6 = IP 版本 6
例子

IPVersion = 4

15.3.14。开放Verbindung

Öffnen.使用“Verbindung”属性Auswahl的Verbindung。

函数OpenConnection () 作为整数Parameter

该函数没有Parameter。返回值

对于Fehler.3-5:请检查您是否安装了最新的Die Serie驱动。

Fehler.描述
0成功
1Die Serie不可用
3串行端口。无法从端口驱动程序获取gegenwärtig设置。
4串行端口。串行端口驱动程序不接受端口设置。
5串行端口。串行端口驱动程序不接受超时设置。
12TCP/UDP Verbindung失败。WSA启动
13TCP/UDP Verbindung失败。VerbindungFehler.
14TCP/UDP Verbindung失败。暂停
15TCP/UDP Verbindung失败。IOCTL
17 Nr.TCP/UDP Verbindung失败。套接字Fehler.
21TCP/UDP Verbindung失败。Adresse信息
255Verbindung已Öffnen.

如何Öffnen. Modbus TCP/IP Verbindung的 Excel Beispiel

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 Beispiel如何设置串行Verbindung

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。SchließenVerbindung

函数CloseConnection () As IntegerParameter

该函数没有Parameter。返回值

如果成功则为零。如果失败则非零值。

15.3.16。显示通讯交通

显示Kommunikation流Quantität窗口。

函数ShowCommunicationTraffic ()Parameter

该函数没有Parameter。返回值

没有任何

15.3.17。Schließen通讯交通

SchließenKommunikation流Quantität窗口(如果显示)。

函数CloseCommunicationTraffic ()Parameter

该函数没有Parameter。返回值

没有任何

15.4。Lesen函数

以下Funktion与您在读/写定义对话框 (F8) 中设置的Funktion相同。LesenFunktion与 Modbus 轮询Dokumentation关联。(有Daten的窗口)例子

' 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
您必须先创建Lesen,然后才能使用属性获取Daten。

15.4.1. Lesen线圈

ModbusFunktionscode01

Function ReadCoils (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter

SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 2000
扫描速率: 0 bis zu 3600000ms返回值

如果成功则为真。如果没有成功则为假

15.4.2. Lesen von diskreten Eingaben

ModbusFunktion代码02

Function ReadDiscreteInputs (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter

SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 2000
扫描速率: 0 bis zu 3600000ms返回值

如果成功则为真。如果没有成功则为假

15.4.3。Lesen持有Register.

ModbusFunktion代码03

Function ReadHoldingRegisters (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter

SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 125
扫描速率: 0 bis zu 3600000ms返回值

如果成功则为真。如果没有成功则为假

15.4.4。Eingangsregister lesen

Modbus Funktion代码 04

Function ReadInputRegisters (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter

SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 125
扫描速率: 0 bis zu 3600000ms返回值

如果成功则为真。如果没有成功则为假

15.5。自动写入Funktion

写入函数将存储在由属性填充的数组中的值写入。下面的 Write 函数不创建Daten窗口。要创建Daten窗口,请使用 Win 函数,例如WriteMultipleRegistersWin

15.5.1。写单线圈

Modbus Funktion代码 05。
写入存储在写入数组中的Die一个线圈。

Function WriteSingleCoil (SlaveID As Integer, Address As Long) As IntegerParameter

SlaveID:从机Adresse 0 zu 255
Adresse:DatenAdresse(基址 0)返回值

如果写入数组已准备好并且Daten已Senden Sie,则为 True。如果数组为空或ParameterFehler.,则返回 False。
控制应用程序负责通过读回写入的值来验证写入Operationen。

15.5.2。Schreiben eines einzelnen Registers

Modbus Funktion代码 06。
写入写入数组中存储的Die一ein Register.。

Function WriteSingleRegister (SlaveID As Integer, Address As Long) As IntegerParameter

SlaveID:从机Adresse 0 zu 255
Adresse:DatenAdresse(基址 0)返回值

如果写入数组已准备好并且Daten已Senden Sie,则为 True。如果数组为空或ParameterFehler.,则返回 False。
控制应用程序负责通过读回写入的值来验证写入Operationen。

15.5.3。Schreiben Sie mehrere Schleife

Modbus Funktion代码 15.
写入存储在写入数组中的线圈。

Function WriteMultipleCoils (SlaveID As Integer, Address As Long, Quantity As Integer) As Integer返回值

如果写入数组已准备好并且Daten已Senden Sie,则为 True。如果数组为空或ParameterFehler.,则返回 False。
控制应用程序负责通过读回写入的值来验证写入Operationen。Parameter

SlaveID:从机Adresse 0 zu 255
Adresse:DatenAdresse(基址 0)AnzahlDaten的Anzahl
1 bis zu 1968 Jahr

15.5.4。Schreiben in mehrere Register

Modbus Funktion代码 16.
写入写入数组中存储的Register.。

Function WriteMultipleRegisters (SlaveID As Integer, Address As Long, Quantity As Integer) As IntegerParameter

SlaveID:从机Adresse 0 zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 123返回值

如果写入数组已准备好并且Daten已Senden Sie,则为 True。如果数组为空或ParameterFehler.,则返回 False。
控制应用程序负责通过读回写入的值来验证写入Operationen。

15.5.5。PythonBeispiel

Python Beispiel如何创建一个从Adresse 0 (40001) Lesen 10 ein Register.,然后写入 5 ein Register.的窗口。PythonBeispiel

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。多种Funktion

各种Funktion与 Modbus 轮询DokumentationRelated联。(有Daten的窗口)

15.6.1。橱窗展示

默认情况下,Modbus-Dokumentation窗口是隐藏的。ShowWindow Funktion使 Modbus Poll 可见并显示带有Daten内容的Dokumentation。

函数显示窗口()Parameter

该函数没有Parameter。返回值

没有任何

15.6.2。获取Senden Sie计数

获取Bitte数。

函数GetTxCount () 只要Parameter

该函数没有Parameter。返回值

Bitte的Anzahl。

15.6.3。获取Empfang计数

获取Antwort数。

函数GetRxCount () 只要Parameter

该函数没有Parameter。返回值

Antwort数。

15.6.4。获取Name

获取值的Name。

函数GetName(索引为整数)作为Charaktere串Parameter

索引:索引0对应Die一个ModbusAdresse。返回值

名字。

15.6.5。设置Name

更改值的Name。函数SetName(索引为整数,Name为Charaktere串)Parameter

索引:索引0对应Die一个ModbusAdresse。
Name:值单元格的Name。返回值

没有任何

15.6.6。AllesDas Format化

使用所选Das Format设置所有值单元格的Das Format。

函数FormatAll(Das Format化为整数)Parameter

Das Format:值单元格的Das Format。返回值

没有任何

15.6.7。获取Das Format

获取Modbus值的Format zeigen。

函数GetFormat(索引为整数)作为整数Parameter

索引:索引0对应Die一个ModbusAdresse。
返回值

IDDas Format
0
1未签名
216. System
3Binärsystem
4浮点小端Bytes交换
5浮点大尾数
6双小端Bytes交换
7双大端
832 位有符Nr.小端Bytes交换
932 位有符Nr.大尾数
10浮点数小尾数
11浮点大端Bytes交换
12双小尾数
13双大端Bytes交换
1432 位有符Nr.小端Befehlseite
1532 位有符Nr.大端Bytes交换
17 Nr.32 位无符Nr.大端Befehlseite
1832 位无符Nr.小端Bytes交换
1932 位无符Nr.大端Bytes交换
2032 位无符Nr.小端Befehlseite
2164 位有符Nr.大尾数
2264 位有符Nr.小端Bytes交换
2364 位有符Nr.大端Bytes交换
2464 位有符Nr.小端Befehlseite
2564 位无符Nr.大端Befehlseite
2664 位无符Nr.小端Bytes交换
2764 位无符Nr.大端Bytes交换
2864 位无符Nr.小端Befehlseite
此设置仅用于显示。使用 Get/Set 值函数时,您仍然需要使用 byteOrder 来获取Richtig.的Die Reihenfolge。

15.6.8。设置Das Format

更改 Modbus 值的Format zeigen。请参阅上面的Das Format值。

函数SetFormat(索引为整数,Das Format为整数)Parameter

索引:索引0对应Die一个ModbusAdresse。
Das Format:值单元格的Das Format。返回值

没有任何

15.6.9。调整窗口大小

调整Öffnen.的窗口的大小以适合网格。

函数调整窗口大小()Parameter

该函数没有Parameter。返回值

没有任何

15.6.10。调整所有列的大小

调整所有列的大小以适合单元格内的值。

函数调整所有列的大小()Parameter

该函数没有Parameter。返回值

没有任何

15.6.11。行数

指定网格中的行数。

函数(NumberRows)Parameter

NumberRows:网格中的行数。

ID描述
010 行(默认)
120 行
250 行
3100 行
4适合Anzahl

返回值

没有任何

15.6.12。LesenErgebnis

使用此属性可检查通过 Read 建立的Kommunikation是否Betrieb成功。

属性将ErgebnisLesen为整数Parameter

该函数没有Parameter。返回值

Fehler.描述
0成功
1超时Fehler.
2CRCFehler.
3AntwortFehler.(Antwort不是预期的Von der Station ID、Funktion或Adresse)
4写入Fehler.
5LesenFehler.
6端口未Öffnen.Fehler.
10Daten未初始化
11收zu的Anzahl der Bytes不足
16Bytes计数Fehler.
19交易IDFehler.
81小时非法职能
82小时Illegale Datenadressen
83小时Illegale Datenwerte
84小时Der ServerAusrüstung故障
85小时承认
86小时Der ServerAusrüstung繁忙
87小时NAK-否定Bestätigen
8安时Gateway-Pfad nicht verfügbar
8Bh网关目标Ausrüstung无法Antwort

15.6.13。写入Ergebnis

使用此函数检查写入是否成功。
该值一直为 DATA_UNINITIALIZED,直zuVon der Station的Ergebnis可用为止。请参阅ReadResult以获取可能值的列表。

属性WriteResult As Integer返回值

以整数形式返回写入Ergebnis。

15.6.14。节省

保存gegenwärtig窗口。函数Save (PathName As String) As BooleanParameter

PathName:文件应保存zu的完全限定路径。返回值

布尔值例子

' 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。自动化Daten属性

以下属性用于在 Modbus Poll 中设置或获取内部写入/Lesen数组中的值。使用的索引不是 Modbus Adresse。无论使用什么Adresse,索引始终从 0 开始计数。Daten属性与 Modbus 轮询Dokumentation关联。(有Daten的窗口)

每个Daten属性有 2 个版本:

  • 没有后缀的一种,例如SRegisters,用于从内部写/读数组设置或获取值。
  • 一种以 Win 作为后缀,例如SRegistersWin,用于直接从Daten窗口设置或获取值。当Daten窗口用于写入函数(例如WriteMultipleRegistersWin )时,将使用此Funktion。

Beispiel1:

' 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.

使用浮点值的Beispiel 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.

Beispiel 3:
创建一个写入 3 ein Register.的窗口。

' 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

属性线圈(索引为整数)为整数描述

在写入数组结构中设置一个线圈或从Lesen数组中返回一个线圈。句法

线圈(索引)[=新值]

15.7.2。SRegisters、SRegistersWin

属性SRegisters(索引为整数)为整数描述

在写入数组结构中设置Register.或从Lesen数组中返回Register.。句法

SRegisters(索引)[=新值]

15.7.3。URegisters、URegistersWin

属性URegisters(索引为整数)只要描述

在写入数组结构中设置Register.或从Lesen数组中返回Register.。句法

URegisters(索引)[=新值]

15.7.4。Ints_32、Ints_32Win

属性Ints_32(索引为整数)为 Double描述

在写入数组结构中设置一个 32 位整数,或从Lesen数组中返回一个整数。句法

Ints_32(索引)[=新值]

15.7.5。UInts_32、UInts_32Win

属性UInts_32(索引为整数)为 Double描述

在写入数组结构中设置一个 32 位无符Nr.整数,或从Lesen数组中返回一个无符Nr.整数。句法

UInts_32(索引)[=新值]

15.7.6。Ints_64、Ints_64Win

属性Ints_64(索引为整数)为 Double描述

在写入数组结构中设置一个 64 位整数,或从Lesen数组中返回一个整数。句法

Ints_64(索引)[=新值]

15.7.7。UInts_64、UInts_64Win

属性UInts_64(索引为整数)为 Double描述

在写入数组结构中设置一个 64 位无符Nr.整数,或从Lesen数组中返回一个无符Nr.整数。句法

UInts_64(索引)[=新值]

15.7.8。花车,花车赢

属性浮动(索引为整数)为单个描述

在写入数组结构中设置一个浮点数或从Lesen数组中返回一个浮点数。句法

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

15.7.9。双打、双打获胜

属性双精度(索引为整数)为双精度描述

在写入数组结构中设置双精度值或从Lesen数组中返回双精度值。句法

双打(索引)[=新值]

15.7.10。Die Reihenfolge

属性ByteOrder作为整数描述

设置 Ints_32、UInts_32、Ints_64、UInts_64、Floats 和 Doubles 属性使用的Die Reihenfolge。
Win 版本不使用此属性ByteOrder

IDDie Reihenfolge
0大尾数(默认)
1小端Bytes交换
2大端Bytes交换
3小尾数法

Ints_32 Beispiel:
Die Reihenfolge:Big-endian
Das Dekimalsystem数 123456789 或16. System数 07 5B CD 15
Modbus 消息中通过线路传输的顺序:07 5B CD 15句法

Die Reihenfolge[=新值]

15.8。编写函数(创建Daten窗口)

以下Funktion与您在读/写定义对话框 (F8) 中设置的Funktion相同。
该函数创建一个Daten窗口,并根据扫描速率写入Daten窗口中的Daten内容。

15.8.1。写单线圈赢

Modbus Funktion代码 05。

Function WriteSingleCoilWin (SlaveID As Integer, Address As Long, ScanRate As Long) As IntegerParameter

SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(Base 0)
扫描速率: 0 bis zu 3600000ms返回值

如果成功则为真。如果没有成功则为假

15.8.2。写单Register.Win

Modbus Funktion代码 06。

Function WriteSingleRegisterWin (SlaveID As Integer, Address As Long, ScanRate As Long) As IntegerParameter

SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(Base 0)
扫描速率: 0 bis zu 3600000ms返回值

如果成功则为真。如果没有成功则为假Python Beispiel如何Öffnen.一个窗口并每 1000 毫秒写入一ein Register.

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。Schreiben Sie mehrere SchleifeWin

Modbus Funktion代码 15。

Function WriteMultipleCoilsWin (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter

SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 1968
扫描速率: 0 bis zu 3600000ms返回值

如果成功则为真。如果没有成功则为假

15.8.4。Schreiben in mehrere RegisterWin

Modbus Funktion代码 16。

Function WriteMultipleRegistersWin (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter

SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 123
扫描速率: 0 bis zu 3600000ms返回值

如果成功则为真。如果没有成功则为假

16. 异常和Fehler.消息

Modbus 异常和Fehler.消息以红色Text显示在每个窗口的Die二行

Modbus Poll中文用户手册(2023/08/01)版插图21

16.1. Modbus 异常代码

Modbus 异常是从从Geräte zurück.的Fehler.。

代码Name意义
01Illegale Funktionen查询中收zu的Funktion代码不是Der Server(或Von der Station)允许的Operationen。这可能是因为该Funktion代码仅适用于较新Die Ausrüstung,并且未在所选Ausrüstung中实现。它还可能表明Der Server(或从属Ausrüstung)处于处理此类Bitte的Fehler.Status,例如因为它未配置并且被要求返回Registerwert。
02Illegale Datenadressen查询中收zu的DatenAdresse不是Der Server允许的Adresse。更具体地,参考编Nr.和传输Länge的组合是Unwirksam的。对于有 100 ein Register.的Der Controller,PDU 将Die一ein Register.寻址为 0,最后一ein Register.寻址为 99。如果提交的Bitte的Start-Register - Adresse为 96,Anzahl der Register为 4,则该Bitte将成功Betrieb(至少按Adresse)在Register. 96、97、98、99 上。如果提交的Bitte的Start-Register - Adresse为 96,Anzahl der Register为 5,则该Bitte将失败,并出现异常代码 0x02“Illegale Datenadressen”因为它尝试对Register. 96、97、98、99 和 100 进行Operationen,但nicht existiert.Adresse为 100 的Register.。
03非法Daten价值查询DatenFeld中包含的值不是Der Server(或Von der Station)允许的值。这表明复杂Bitte的其余部Unterteilung的结构ExistenzFehler.,例如隐含的Länge不Richtig.。具体来说,这并不意味着提交存储在Register.中的Daten项具有应用程序预期之外的值,因为 MODBUS Vereinbarung不知道任何特定Register.的任何特定值的重要性。
04Der ServerAusrüstung故障Der Server(或从属Der Server)尝试执行Bitte的Operationen时发生不可恢复的Fehler.。
05承认专门与编程Befehl结合使用。
Der Server(或Von der Station)已接受Bitte并正在处理它,但需要很长Zeit才能abgeschlossen.此Operationen。返回此Antwort是为了防止客户端(或主机)发生超时Fehler.。客户端(或主机)接下来可以发出轮询程序abgeschlossen.消息以确定处理是否abgeschlossen.。
06Der ServerAusrüstung忙专门与编程Befehl结合使用。
Der Server(或Von der Station)正在处理长Zeit的程序Befehl。当Der Server(或从机)空闲时,客户端(或主机)应稍后重新传输消息。
0AGateway-Pfad nicht verfügbar专门与网关结合使用,表示网关无法Unterteilung配从输入端口zu输出端口的内部Kommunikation路径来处理Bitte。通常意味着网关配置Fehler.或过载。
0BGateway Zielgerät reagiert fehlgeschlagen专门与网关结合使用,表示未从目标Ausrüstung获得Antwort。通常意味着该Geräte nicht vorhanden于网络上。

16.2. Modbus 轮询Fehler.消息

Fehler.信息意义
超时Fehler.未在预期Zeit内收zu回复。检查以下内容:串行Verbindung串行设置,例如Porter Rate、奇Zufällige Prüfungen、Datenplatz、Stoppen Sie Platz等。Modbus 模式,RTU 或 ASCII从机IDAntwort超时TCP/IP VerbindungAntwort超时检查Host和Port与slave是否一致
AntwortFehler.回应不是预期的。不同的从机 ID。
CRC Fehler.收zu的Antwort的 CRC 值不Richtig.。
写入Fehler.这是串行驱动程序报告的Fehler.。如果使用 USB/RS232/485 Konverter.并且拔掉 USB 电缆,则可能会发生这种情况。有4种Typus:中断条件输入/输出Fehler.串行VerbindungFehler.输出缓冲区溢出使用 TCP/IP Verbindung的写入Fehler.通常是由于Verbindung丢失造成的。
LesenFehler.这是串行驱动程序报告的Fehler.。有6种Typus:成帧Fehler.Charaktere缓冲区溢出奇Zufällige PrüfungenFehler.输入缓冲区溢出输入/输出Fehler.中断条件使用 TCP/IP Verbindung的LesenFehler.通常是由于Verbindung丢失造成的。
收zu的Anzahl der Bytes不足Antwort的Länge不是预期的。
Bytes计数Fehler.Antwort中的Bytes计数不Richtig.。与预期相比。
交易IDFehler.它用于事务配对,MODBUS Der Server在Antwort中Kopieren.Bitte的Transaktionsidentifikator。
Techniken术语(共 13 个)—— Klick auf展开
Modbus RTU基于串行链路的ModbusVereinbarung,使用BinärsystemCodierung和CRC-Test
Modbus TCP基于Ethernet的ModbusVereinbarung变体,使用TCP/IP传输
Modbus ASCII使用ASCIICharaktere传输的ModbusVereinbarung,以冒Nr.开头、CR/LF结尾
RS485工业常用的schlechtUnterteilung串行Kommunikation标准,支持多点Kommunikation
RS232点对点串行Kommunikation标准,常用于短距离AusrüstungKommunikation
FunktionscodeModbusFunktionscode指定读/写OperationenTypus,如01读线圈、03Lesen Sie das Register
Register.Modbus Register.存储Daten单元,Unterteilung线圈/离散输入/保持/输入Register.四类
PLC可编程逻辑Der Controller,Industrielle Automatisierung控制的核心Ausrüstung
Porter Rate串行Kommunikation每秒传输符Nr.数,Modbus RTU常用9600/19200
网关Vereinbarung转换Ausrüstung,如 Modbus RTU ↔ Modbus TCP
Die SerieBerechnung机与外部Ausrüstung进行串行Kommunikation的物理Schnittstelle
线圈Modbus位可读Schreiben von Daten,Adresse从00001开始
保持Register.Modbus 16位可读Schreiben von Daten,Adresse从40001开始
来源/Werkzeuge信息 —— Klick auf展开
来源 Modbus Chinesisches Netzwerk(modbus.cn) —— Inländisch führend.ModbusKommunikationsprotokoll Technologie Gemeinschaft Klassifizierung Debugging Software und Werkzeuge 字数 29972 字 · 阅读约 75 Unterteilung钟 更新 2026-06-30 永久链接 https://www.modbus.cn/25321.html
Empfohlene Werkzeuge: Modbus Debugger-Assistent WeChat-Applet
Modbus Chinesisches Netzwerk官方推出的Modbus Debugging-Tools,支持 Modbus RTU/TCP 实时KommunikationTests、Register.读写、线圈控制、Daten监控和MeldungUnterteilung析。 keine Installation erforderlich,Mikro-Suche「Modbus DebuggingAssistenten.」Benutzt werden kann.。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

《 “Modbus Poll中文用户手册(2023/08/01)版” 》 有 3 条Kommentare

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.