- 1. Modbus Poll简介
- 2. Modbus PollOperationenDas System要求
- 3. 终止用户许可Vereinbarung
- 4. Modbus PollFunktion
- 5. Verbindung
- 6. 支持的 Modbus Funktion
- 7. Daten aufzeichnen
- 8. Format zeigen
- 9. 其他Funktion
- 10. 概述
- 11. Benutzungsanweisungen
- 12. 命名单元格
- 13. 值单元格
- 14. 更改字体
- 15. 有条件的颜色
- 16. 缩放
- 17. 实时图表
- 18. Öffnen.一个新窗口
- 19. Verbindung对话框
- 20. 联系
- 21. 串行设置
- 22. Fern entferntDer Server
- 23. 高级设置
- 24. 读/写定义
- 25. Von der Station ID
- 26. Funktionscode
- 27. Adresse
- 28. 扫描率
- 29. 读/写禁用
- 30. 隐藏Name列
- 31. 单元格中的Adresse
- 32. PLC Adresse(基数 1)
- 33. 安然/丹尼尔模式
- 34. 行
- 35. 实时图表
- 36. 设置
- 37. 缩放Funktion
- 38. 平移Funktion
- 39. 将Daten链接zu图表系列
- 40. Kopieren.系列
- 41. Format zeigen
- 42. 原生 Modbus Register.
- 43. 32 位有符Nr.整数
- 44. 32 位无符Nr.整数
- 45. 64 位有符Nr.整数
- 46. 64 位无符Nr.整数
- 47. 32 位浮动
- 48. 64 位双精度
- 49. 保存/Öffnen.工作区
- 50. Exportieren为csv
- 51. 测试中心
- 52. ASCII Beispiel
- 53. TCP/IP Beispiel
- 54. 测试中心Charaktere串文件
- 55. Kopieren.
- 56. Modbus Daten aufzeichnen
- 57. Text文件
- 58. 微软Excel
- 59. Kommunikation流Quantität
- 60. OLE/自动化
- 61. Excel Beispiel
- 62. Python Beispiel
- 63. VerbindungFunktion/属性
- 64. Lesen函数
- 65. 自动化写入函数
- 66. 各种Funktion
- 67. 自动化Daten属性
- 68. 编写函数(创建Daten窗口)
- 69. 异常和Fehler.信息
- 70. Modbus 异常代码
- 71. Modbus 轮询Fehler.消息
- 72. 软件版本为Modbus Poll 9.9.2.1690中文版,请大家Kommentare后Download!!!
ModbusRelated产品推荐:peidianxiang.taobao.com
Modbus Poll简介
Modbus poll是一款非常受欢迎的ModbusHauptstationAusrüstung仿真器,支持Modbus RTU、ASCII、TCP/IP等Vereinbarung模式,能够让ModbusKommunikationAusrüstung人员测试和模拟使用KommunikationVereinbarung,从而更好的对Ausrüstung进行监控、测试和Tests,也便于观察Modbus通讯过程中的各种MeldungDaten,不仅节省大Quantität的Zeit,还大大的提高了工作效率。
它支持多DokumentationSchnittstelle,可以同时监视多个从机Ausrüstung/Daten Domäne。每个窗口简单地设定从AusrüstungID,Funktion,Adresse,大小和轮询间隔。你可以从任意一个窗口读写Register.和线圈。如果你想改变一个单独的Register.,简单地双击这个值即可。或者你可以改变多ein Register./线圈值。提供Daten的多种Das Format方式,比如浮点、双精度、长整型(可以Befehlseite列交换)。
Modbus PollOperationenDas System要求
硬件要求
处理器:推荐 1 GHz 或更快
内存:1 GB RAM
硬盘:5 MB 可用硬盘空间
Unterteilung辨率:1024 x 768 及以上
Das System:支持从 Windows 7 zu Windows 11 的所有 Windows 版本。
Modbus Poll 7 支持在 Windows XP 上Betrieb。
终止用户许可Vereinbarung
在使用 Modbus Poll 之前,您应该仔细阅读以下条款和条件。除非您有 Witte Software 签署的不同许可Vereinbarung,否则您使用本软件即表示您接受本许可Vereinbarung和Garantie。如果您不接受这些条款,您必须立即Stopp!使用本软件。
版权。
Modbus Poll(“软件”)版权所有 2002-2022 归 Witte Software,Alle Rechte vorbehalten。
评估和Registrierung。
这不是kostenlos软件。特此授权您在 30 天内kostenlos使用本软件进行评估。
如果您在 30 天评估期后使用该软件,则需要支付Registrierung费。
在 30 天评估期后Nicht registriert使用该软件违反了美国和国际版权法。
本软件的一份Registrierung副本可以由个人在一台或多台Berechnung机上使用该软件的个人使用,也可以安装在多人使用的单台Berechnung机上,但不能同时使用。
有关订单和定价的信息,请访问https://www.modbustools.com/order.html
Modbus Poll Lizenz是永久的。一旦您购买了特定版本的Lizenz,并且只要您遵守许可Vereinbarung,您就可以永久使用该版本,无需额外费用。
Unterteilung配。
如果您不包含您的许可密钥,您特此获得许可Kopieren.该软件;将原件的准确副本提供给任何人;并通过电子方式以未经修改的形式Unterteilung发软件。明确禁止您对任何此类副本收费。
有限保修。
本软件按原样提供,WITTE 软件不提供与本软件有关的所有明示或默示Garantie,包括但不限于对适销性和特定用途适用性的任何默示Garantie。
损害赔偿限制。
WITTE 软件或参与本软件的创建、生产或交付的任何人均不对因使用或无法使用此类软件而引起的任何间接、后果性或附带损害负责,即使 WITTE 软件已被告知其可能性此类损害或索赔。在任何情况下,无论索赔的形式如何,WITTE SOFTWARE 对任何损害的责任均不超过为获得使用该软件的许可所支付的价格。使用该软件的人将承担该软件的质Quantität和性能的所有风险。
Modbus PollFunktion
Verbindung
Modbus 从Ausrüstung轮询读/Schreiben von Daten,使用:
- RS232 或 RS485 网络上的 Modbus RTU 或 ASCII。(USB/RS232/485Konverter.)
- Modbus TCP/IP
- 基于 TCP/IP 的 Modbus。(Modbus RTU/ASCII 封装在 TCP Daten包中)
- Modbus UDP/IP
- 基于 UDP/IP 的 Modbus。(Modbus RTU/ASCII 封装在 UDP Daten包中)
支持的 Modbus Funktion
- 01:Lesen线圈
- 02:Lesen von diskreten Eingaben
- 03:Lesen und halten Register
- 04:Eingangsregister lesen
- 05:写单线圈
- 06:Schreiben eines einzelnen Registers
- 15:Schreiben Sie mehrere Schleife.
- 16:Schreiben mehrerer Register
- 17:报告Der ServerID
- 22:屏蔽写Register.
- 23:读/写Register.
- 43/14:LesenAusrüstung标识
Daten aufzeichnen
- 将Daten aufzeichnenzuText文件
- 将Daten直接记录zu Excel 中
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 位双浮点数
其他Funktion
- 用于与 Excel VBA、Python 等Schnittstelle的 OLE/自动化。
- 监控Daten流Quantität
- 打印和打印预览
- 字体Auswahl
- 有条件的颜色
- 缩放
- 实时图表
概述
Modbus Poll 支持多窗口界面,可以同时监控多个ModbusVon der Station和Datenzone。对于每个窗口,只需指定ModbusVon der Station的ID、Funktionscode、Adresse、Länge和轮询Zeit,即可从任何窗口Lesen和写入Register.和线圈。。

Benutzungsanweisungen
按 F1可以获取与gegenwärtig选定项目Related的帮助Dokumentation。
SHIFT + F1调用特殊的“帮助模式”,Von denen光标变为帮助光标(箭头+问Nr.)。然后,用户可以Auswahl用户界面中的可见对象,例如菜单项、Werkzeuge栏Knopf或窗口。这将Öffnen.有关描述所选项目的主题的帮助。
命名单元格
您可以在此处键入任何Text以指定值单元格。您还可以从 Excel 单元格中Kopieren./粘贴Text。
值单元格
显示 Modbus Register.的Daten值。如果您双击一个值单元格,一个对话框允许您将一个新值写入从Ausrüstung。在值单元格中键入数字也会显示对话框。可以Auswahl用于Schreiben Sie Wert的 Modbus Funktion。
复选框“Close dialog on Response ok”用于在成功Senden Sie值时自动Schließen对话框。当要更改大Quantität值时,这很方便。这样可以Schnelle Auswahl一个新单元格,然后再次键入一个新值。

更改字体
要更改字体,您有 2 个选项
- Auswahl要更改的单元格,然后单击鼠标右键。
- Auswahl要更改的单元格,然后Auswahl菜单 → 显示 → 字体。

有条件的颜色
条件颜色可帮助您直观地显示特定范围内的值。3种颜色Auswahl
- 默认颜色:如果没有条件颜色评估为真,则使用此颜色。
- Regeln 1:如果表达式Berechnungsergebnisse为真,则使用此颜色Auswahl。
- Regeln 2:如果表达式Berechnungsergebnisse为真,则使用此颜色Auswahl。Regeln 2 优先于Regeln 1。
7种比较运算符
- 未使用
- gleich ist
- 比…更棒
- 少于
- größer als或gleich ist
- kleiner als或gleich ist
- 和
当Datentyp为浮点型或 32 位长型时,不能使用“与”运算符。如果Auswahl“and”,则条件值以16. System数字形式输入。如果单元格和条件值中的任何位为 1,则Berechnungsergebnisse为真。
颜色Beispiel
如果单元格值介于 398 和 402 之间,则为绿色
缩放
缩放可帮助您将原始值缩放为人类可读的值。缩放仅适用于有符Nr.和无符Nr. 16/32 位整数。
(X1,Y1) 和 (X2,Y2)
通过 (X1,Y1) 和 (X2,Y2) 两点的线
小Nr.l o p e = m =是2 -是1X2 – X1小Nr.l○pe=米=是2-是1X2-X1线方程
是=米⋅ ( X- X1 ) + Y1是=米⋅(X-X1)+是1精确
小数点后的位数。使能够
必须aktiviert.以缩放来自 Modbus Der Server/Von der Station的值。如果Auswahl的不是 16/32 位整数Format zeigen,则会自动禁用缩放。
实时图表
该图表可以实时绘制 12 个系列,每个系列最多 100000 个点。
Öffnen.一个新窗口
要Öffnen.另一个窗口,您有 3 个选项:
Verbindung对话框
要Öffnen.Verbindung对话框,您有 2 个选项:
- 按 F3
- 从Verbindung菜单中AuswahlVerbindung
联系
有 5 种不同的VerbindungTypus:
- 串行:
通过串行线路的 Modbus。RS232 或 RS485。可以使用 USB 串行Konverter.。 - 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 Ausrüstung。如果 ping Befehl失败,则 Modbus Poll 也会失败。 - Modbus UDP/IP:
如果要与 MODBUS UDP/IP 网络Kommunikation,Bitte wählen UDP/IP。这与 Modbus TCP/IP 相同,但使用了无Verbindung的 UDP Vereinbarung。 - TCP/IP 上的Modbus RTU/ASCII:
这是通过 TCP/IP 网络而不是串行线路Senden Sie的 RTU 或 ASCII 消息。 - Modbus RTU/ASCII over UDP/IP:
这是通过 UDP/IP 网络而不是串行线路Senden Sie的 RTU 或 ASCII 消息。
| VerbindungTypus 3-5 不是 www.modbus.org指定的标准 Modbus,但为方便起见添加了它们。 |
根据您的Auswahl,其他一些设置将变灰。
串行设置
使用这些Parameter设置串行端口设置。它们仅在VerbindungTypus为“串行端口”时可用。模式
使用此选项可AuswahlRTU或ASCII模式。默认 RTU。Antwort超时
指定 Modbus Poll 在放弃之前应等待从AusrüstungAntwort的ZeitLänge。默认值为 1000 毫秒。轮询之间的最小延迟
无论扫描速率如何,此设置都可确保在传输下一个Bitte之前的最小延迟。此设置的Unterteilung辨率约为 15ms。在某些Berechnung机上可以获得更好的Unterteilung辨率,但不是Alles。
| 如果将此值设置为低于 20 毫秒,则无法GarantieAntwort和新Bitte之间的 3.5 个Charaktere的Zeit间隔。这是因为 Windows 调度程序每 10 zu 20 毫秒Wechseln一次任务。如果您在串行 RS485 网络中轮询多个Von der Station,则不应将该值设置为低于 20 毫秒。这是为了确保 3.5 个Charaktere的Zeit间隔。在 TCP/IP 网络中,少于 20 毫秒是可以的。仅与一台从Ausrüstung的串行Verbindungkleiner als 20 毫秒是可以的。 |
Fern entferntDer Server
Fern entferntDer Server设置仅在使用EthernetVerbindung时可用。IPAdresse
Der Server IP Adresse。默认为 localhost 127.0.0.1港口
Der Server端口Nr.。默认 502Verbindung超时
用于建立Verbindung的最长Zeit。默认 1000
高级设置
RTS Wechseln
RTS Toggle 指定如果Bytes可用于传输,RTS 线将处于高电平。Senden Sie完所有缓冲Bytes后,RTS 线将为低电平。
如果您有一个没有自动方向Schalter!的 232/485 Konverter.,您可以使用它来Wechseln方向。
| 如果可能,应避免使用 RTS 控制的 RS232/RS485 Konverter.。对于 Windows 和 Linux 等非实时OperationenDas System,很难确定Schließen发射机的确切Zeit。如果过早Schließen,Charaktere可能仍位于 FIFO 或 UART 的Senden SieRegister.中,这些Charaktere将丢失。因此Von der Station将无法识别该消息。另一方面,如果Schließen得太晚,则Von der Station的消息被破坏,Hauptstation将无法识别该消息。 |
DSR
DSR 指定是否监视 DSR(Daten集就绪)信Nr.以进行输出流控制。如果此成员为 TRUE 且 DSR 已Schließen,则输出将暂停,直zu再次Senden Sie DSR。中旅
CTS 指定是否监视 CTS(BeseitigungSenden Sie)信Nr.以进行输出流控制。如果aktiviert.此复选框并Schließen CTS,则输出将暂停,直zu再次Senden Sie CTS。DTR
DTR 指定在Öffnen.端口时是否aktiviert.或禁用 DTR。Entfernen回声
如果您Die Ausrüstung或 RS232/RS485 Konverter.回显刚刚Senden Sie的Charaktere。
读/写定义
使用此Befehl定义活动窗口要监视的Daten。
要Öffnen.读/写定义对话框,您有 3 个选项:
Von der Station ID
范围 1 zu 255。(MODBUS Vereinbarung规范说 247)。值 0 也被接受以直接与 MODBUS/TCP 或 MODBUS/UDP AusrüstungKommunikation。
Funktionscode
您可以Auswahl 8 个Funktion代码中的 1 个。
5.2.1。Lesen函数
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)
Adresse
Das Modbus-Protokoll中的Adresse令人困惑!一些Vereinbarung规范使用Vereinbarung/消息Adresse,而另一些则使用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 Poll 的问题。410001 变为 10000。“4”被丢弃,其余的 10001 减 1,因为我们从 0 而不是 1 计数。
5.3.4. AdresseBeispiel
这些Beispiel显示了如果规范使用Geräte Adresse,如何设置 Modbus 轮询。
Lesen und halten Register
您希望每 1000 毫秒从从 ID 2 的Geräte Adresse 40011 Lesen 20 ein Register.。从“4”我们知道这是Funktion03“Lesen und halten Register”。
- Von der Station ID = 2
- Funktion =“03 Lesen und halten Register (4x)”
- Adresse = 10(11 减 1)
- Anzahl = 20
- 扫描率 = 1000
Lesen von diskreten Eingaben
您想每 500 毫秒从Von der Station ID 5 的Adresse 110201 Lesen 1000 个线圈。从“1”我们知道这是Funktion02“Lesen von diskreten Eingaben”
- Von der Station ID = 5
- Funktion =“02 Lesen von diskreten Eingaben (1x)”
- Adresse = 10200 (10201 – 1)
- Anzahl = 1000
- 扫描率 = 500
扫描率
扫描速率可以设置为 0 zu 3600000ms。请注意,将扫描速率设置为低于事务Zeit是没有意义的。如果使用 9600 波特的串行Verbindung并Bitte 125 ein Register.,则事务Zeit大约为 8 + 2 + 250 + 2 = 262ms + Bitte和Antwort之间的间隙(>3.5 个CharaktereZeit)。在这种情况下,将扫描速率设置为例如 100 毫秒是没有意义的,因为事务Zeit至少为 262 毫秒 + Von der Station中的延迟(间隙)+ 轮询之间的最小Zeit。(在Verbindung对话框 F3 中设置)。
读/写禁用
“Read/Write Disabled”复选框可用于临时aktiviert.或禁用此窗口的Kommunikation。然后显示Text(禁用)以及 Tx 和Fehler zählen器。
5.5.1。出错时禁用
出现Fehler.时禁用读/写。
隐藏Name列
隐藏所有Name列。如果不使用它们,这样可以方便地腾出mehr.空间。
单元格中的Adresse
如果aktiviert.,Adresse也会显示在值单元格中,例如:2000 = 00000
PLC Adresse(基数 1)
此选项将Adresse显示为Geräte Adresse。
安然/丹尼尔模式
Enron 或 Enron/Daniels Modbus 是带有一些“供应商扩展”的标准 Modbus。这些扩展的确切影响取决于上下文,但最Häufig的 Modbus Befehl按预期工作。有一些Custom definiert的供应商定义的Funktion可用 – 但很少有用户期望或使用它们。最大的影响与 32 位Daten值的Lesen/写入方式有关。
Enron-Modbus 定义了两个特殊的 4x 保持Register.范围:
- 4×5001 zu 4×5999 假定为 32 位长整数(每ein Register. 4 Byte)。
- 4×7001 zu 4×7999 假定为 32 位浮点数(每ein Register. 4 Byte)。
在 Modbus 中处理 32 位值并不是 Enron-MB 独有的。然而,Enron-MB 采取了有争议的步骤,即每ein Register.返回 4 个Bytes,而不是 Modbus 规范中术语“保持Register.”所暗示的 2 个Bytes。这意味着在 Enron-Modbus 中对Register. 4×5001 和 4×5002 的轮询返回 8 个Bytes或两个 32 位整数,而标准 Modbus 将仅返回 4 个Bytes或一个被视为两个 16 位整数的 32 位整数。此外,在 Enron-MB 中轮询Register. 4×5010 返回Die十个 32 位长整数,而标准 Modbus 将考虑此范围内Die五个 32 位长整数的 1/2。
行
指定您喜欢的网格中的行数。
实时图表
使用此Befehl可在图表中实时绘制多达 12 个Daten系列。
实时图表是高速的,并且能够在Empfangzu新Daten时尽快绘制新线。
| 所有图表设置都存储在工作区中。保存/Öffnen.工作区 |
要Öffnen.实时图表对话框,您有 2 个选项:
- 按 Alt + R
- 从显示菜单中Auswahl“实时图表”
X 轴显示自图表启动以来的秒数。
当点zu达图表的末尾时,有 3 个选项:
- Ende时Stopp!:图表Stopp!。
- Ende时neu anfangen.:图表neu anfangen.。
- 继续:它一直持续zu达zu最大点数或按下Stopp!。
设置
默认情况下,所有 12 个系列都链接zu左侧 Y 轴。如果要将系列链接zu右 Y 轴,请选中“右 Y 轴”复选框。指定
- 颜色
- 右 Y 轴
- 标题
- 抵消
显示
- 文件名
- Adresse
偏移对于在同一 Y 轴上对齐Daten点很有用。例如,可以偏移 0 或 1 的Daten点,这样它们就不会被绘制在彼此之上。
缩放Funktion
如果您想Überprüfen Sie mehr详细信息,放大图表会很有用。缩放由鼠标左键控制。要缩放图表的特定部Unterteilung,只需左键单击图表(这将是缩放矩形的左上角)并拖动zu右下角。将出现一个矩形。松开鼠标Knopf后,轴将自动调整zu您Auswahl的区域。
如果您左键单击图表(例如开始缩放),但如果您移动zu左上角,则使用缩放和平移Funktion所做的所有修改都将被Absage(图表将处于原来的Status)在使用平移和缩放进行Operationen之前)。
平移Funktion
要平移Kontrollen,请右键单击Kontrollen上的某处并移动鼠标。鼠标下方的点将跟随鼠标的移动。
将Daten链接zu图表系列
除非您将 Modbus Daten单元链接zu 12 个系列之一,否则该图表不知道要使用哪些Daten。为此,Bitte wählen一个值单元格,然后从菜单→显示中Auswahl“链接zu图表”。
Kopieren.系列
将系列Daten保存zu磁盘或Kopieren.zu剪贴板。将Daten直接粘贴zu Excel 中以进行进一步处理。
尽管使用了非逗Nr.FeldUnterteilung隔符,但该文件仍具有 .csv 扩展名。
Unterteilung隔符:Auswahl在Text文件中Unterteilung隔值的Charaktere。使用 Excel 选项卡。此外,还给出了一些附加信息。
- 点数
- 最大点值
- 最小点值
- 平均Unterteilung值
Format zeigen
标记要Das Format化的单元格。从显示菜单中Auswahl 28 种Format zeigen之一。
原生 Modbus Register.
16 位 Modbus Register.可以以 4 种不同的模式显示。
- 签
- 未签名
- 16. System
- Binärsystem
32 位有符Nr.整数
这结合了 2 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。
- 有符Nr.整数 Big-endian
- 有符Nr.整数 Little-endian
- 有符Nr.整数大端Bytes交换
- 有符Nr.整数小端Bytes交换例子Die Reihenfolge:AB CD (Big-endian)
Das Dekimalsystem数 123456789 或16. System07 5B CD 15
它们在 Modbus 消息中通过线路的顺序:07 5B CD 15
32 位无符Nr.整数
这结合了 2 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。
- 无符Nr.整数 Big-endian
- 无符Nr.整数小端序
- 无符Nr.整数大端Bytes交换
- 无符Nr.整数小端Bytes交换例子Die Reihenfolge:AB CD (Big-endian)
Das Dekimalsystem数 123456789 或16. System07 5B CD 15
它们在 Modbus 消息中通过线路的顺序:07 5B CD 15
64 位有符Nr.整数
这结合了 4 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。
- 有符Nr.整数 Big-endian
- 有符Nr.整数 Little-endian
- 有符Nr.整数大端Bytes交换
- 有符Nr.整数小端Bytes交换例子Die Reihenfolge:AB CD EF GH(大端)
Das Dekimalsystem数 -1,234,567,890,123,456,789 或16. SystemEE DD EF 0B 82 16 7E EB
在 Modbus 消息中通过线路的顺序:EE DD EF 0B 82 16 7E EB
64 位无符Nr.整数
这结合了 4 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。
- 无符Nr.整数 Big-endian
- 无符Nr.整数小端序
- 无符Nr.整数大端Bytes交换
- 无符Nr.整数小端Bytes交换例子Die Reihenfolge:AB CD EF GH(大端)
Das Dekimalsystem数 1,234,567,890,123,456,789 或16. System11 22 10 F4 7D E9 81 15
它们在 Modbus 消息中通过线路的顺序:11 22 10 F4 7D E9 81 15
32 位浮动
这结合了 2 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。
- 浮点大端
- 浮点小端序
- 浮点大端Bytes交换
- 浮点小端Bytes交换例子Die Reihenfolge:AB CD (Big-endian)
浮点数 123456.00 或16. System47 F1 20 00
它们在 Modbus 消息中通过线路的顺序:47 F1 20 00
64 位双精度
这结合了 4 个 16 位 Modbus Register.。它可以以 4 种不同的字/Die Reihenfolge显示。
- 双大端
- 双小端序
- 双大端Bytes交换
- 双小端Bytes交换例子Die Reihenfolge:AB CD EF GH (Big-endian)
浮点数 123456789.00 或16. System41 9D 6F 34 54 00 00 00
它们在 Modbus 消息中通过线路的顺序:41 9D 6F 34 54 00 00 00
保存/Öffnen.工作区
如果您Öffnen.许多Related的 Modbus 窗口,将所有Öffnen.和排列的 Modbus 窗口的gegenwärtig布局的快照保Existenz一个工作区中会很方便。
工作区 (*mbw) 是一个文件,Von denen包含所有Öffnen.窗口的显示信息和文件名。不是实际内容。为此,请转zu文件→保存工作区。
当您Öffnen.工作区文件时,Modbus Poll 会Öffnen.所有 Modbus 窗口并将它们显示在您保存的布局中。
Exportieren为csv
将Name和值Exportierenzu逗Nr.、UnterteilungNr.或制表符Unterteilung隔值文件。从文件对话框中Auswahl
- 逗Nr.Unterteilung隔值文件 (*.csv)
“Temperatur”、“19.7” - UnterteilungNr.Unterteilung隔值文件 (*.csv)
“Temperature”;”19.7″ - 制表符Unterteilung隔值文件 (*.txt)
Temperatur 19.7
根据您的Das System,逗Nr.或句点用于Unterteilung隔小数。
测试中心
此测试对话框的目的是帮助 MODBUS 从Ausrü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列表中。添加检查
在输入Charaktere串的末尾添加 CRC 或 LRC。
使用考试中心时,您可能希望禁用来自其他窗口的Kommunikation。选中“读/写定义”对话框中的“读/写禁用”复选框。设置→读/写定义。
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 对。
TCP/IP Beispiel
Lesen 10 个保持Register.。
00 00 00 00 00 06 01 03 00 00 00 0A
前 6 个Bytes是 TCP/IP 标头。
测试中心Charaktere串文件
使用记事本或类似的TextHerausgeber器,您可以准备要在测试中使用的Charaktere串。
文件中的Die一行必须是Charaktere串“TestCenter”。这就是 Modbus Poll 知道文件Das FormatRichtig.的方式。按“Öffnen.列表”Öffnen.准备好的Text文件。
10.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
Kopieren.
使用 Copy Knopf将选定的 Tx/Rx Charaktere串Kopieren.zu剪贴板。
SHIFT 和 CTRL 键可以与鼠标一起使用来Auswahl和AbsageAuswahlCharaktere串、AuswahlCharaktere串组以及Auswahl不相邻的Charaktere串。
| 在执行其他Befehl时保持此窗口Öffnen.。 |
Modbus Daten aufzeichnen
您可以将Daten aufzeichnenzuText文件或直接记录zu Microsoft Excel。
Text文件
从设置菜单中Auswahl日志或使用快捷键:Alt+L
每个 Modbus 窗口都记录zu其单独的Text文件中。
当您想Stopp!Daten aufzeichnen时,请在设置菜单上Auswahl注销Befehl。
11.1.1. 日志率
每次读
为所有 Modbus Bitte编写日志行。记录频率作为扫描速率。Auswahl
以秒为单位指定日志速率。与扫描速率无关。
| 如果扫描速率是例如 10000 毫秒,那么设置 1 秒的日志速率是没有意义的,因为只有在新Daten准备好时才会记录Daten。 |
11.1.2. Unterteilung隔符
作为Unterteilung隔符,您可以使用以下选项之一:固定宽度
表示值按列组织。逗Nr.
用逗Nr.Unterteilung隔的值。Kennzeichnung
由制表符Unterteilung隔的值。
11.1.3. 仅记录Daten更改
指定仅当自上次日志以来有任何Daten更改时才写入新日志行。
11.1.4. 记录Fehler.
指定记录超时等Fehler.。
11.1.5。记录日期
指定将gegenwärtig日期添加zu日志Zeit。
11.1.6。记录毫秒
指定将毫秒添加zu日志Zeit。
11.1.7。日志Adresse
指定将 Modbus Adresse添加zu日志中。
11.1.8。按下确定时开始记录
指定在按下 ok Knopf时开始记录。否则,日志设置仅在保存 *mbp 文件时存储。
11.1.9。Öffnen. *mbp 时启动日志
指定在Öffnen. *.mbp 文件时自动启动日志记录。
11.1.10。立即Erfrischen归档
这确保了日志行不会在文件Das System中兑现,而是立即物理写入。
11.1.11。附加
指定将日志附加zu所选文件。否则会创建一个新文件。
11.1.12。午夜的新日志文件
Schließengegenwärtig日志文件并在午夜开始一个新文件。Zeit戳会添加zu您的文件名中。
具有固定宽度的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
您可以在 Excel 电子表格中ImportierenDaten。
微软Excel
此Funktion需要安装 Microsoft Excel。Excel 2003 日志限制为 65535 个日志,因为这是 Excel 工作表中的最大行数。Excel 2007 或更高版本限制为 1,048,576 行。每个 Modbus 窗口都记录zu其单独的 Excel 表中。
从设置菜单中Auswahl Excel 日志或使用快捷键:Alt+X
记录时不要触摸 Excel 表,因为这会中断记录。
11.2.1. 日志率
- 每次Lesen:为所有 Modbus Bitte写入日志行。记录频率作为扫描速率。
- Auswahl:以秒为单位指定日志速率。日志与扫描速率无关。
备注:如果扫描速率为例如 10000 毫秒,则设置 1 秒的记录速率是没有意义的,因为只有在新Daten准备好时才会记录Daten。 - Stopp!后:指定日志行数。请注意,Excel 2003 限制为 65,536 行,Excel 2007 限制为 1,048,576 行。
11.2.2. 标头信息
- 插入标题:信息插入zu Excel 工作表的最顶部 3 行。
- 在Die一行命名单元格:在Die 3 行插入Name。
- 轮询定义:在Die 2 行插入 ID、Function 等。
- Name:在Die 1 行插入一个日志Name。
带有标题信息的 Excel 日志。
Kommunikation流Quantität
Auswahl菜单 Display→Communication 以显示串行线路或Ethernet电缆上的流Quantität。使用Stopp!Knopf暂时Stopp!更新以进行检查。
使用Kopieren.Knopf将选定的行Kopieren.zu剪贴板。
| 此窗口仅显示 Modbus Poll Senden Sie和Empfang的Daten。您不能将其用作Daten嗅探器。 |
| 在执行其他Befehl时保持此窗口Öffnen.。 |
OLE/自动化
自动化(以前称为 OLE 自动化)使一个应用程序可以Operationen在另一个应用程序中实现的对象。
自动化客户端是可以Operationen属于另一个应用程序的公开对象的应用程序。这也称为自动化Der Controller。
自动化Der Server是将可编程对象公开给其他应用程序的应用程序。Modbus Poll是一个自动化Der Server。
这意味着您可以使用任何支持 VBA(Visual Basic for Applications)的程序,例如 Visual Basic、Excel 等,根据您的特定要求来解释和显示 modbus Daten。
Excel Beispiel
当您想要编写宏时,您应该显示开发人员选项卡或在开发人员模式下Betrieb。
13.1.1. Excel 2007
- 单击 Microsoft office Knopf,然后单击 Excel 选项。
- 单击流行,然后选中Funktion区复选框中的显示开发人员选项卡。
请注意,Funktion区是 Microsoft fluent 用户界面的一部Unterteilung。
13.1.2. Excel 2010, 2016
- 单击文件选项卡。
- 单击选项。Excel 选项窗口将Öffnen.。
- 在左侧窗格中单击Custom definiertFunktion区。
- 在右侧窗格的主选项卡下,选中开发人员复选框。
- 单击确定。开发人员选项卡现在应显示在Funktion区(最右侧的选项卡)中。
13.1.3. Excel Beispiel代码
此BeispielÖffnen.两个窗口。一个读数Register.和另一个读数线圈。
Modbus Poll 是隐藏的,但您可以通过Absage注释“ShowWindow”行来显示它。这将显示Von denen一个窗口。
Modbus Poll 安装中还包含一个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
Python Beispiel
这个 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()
print (Win1.GetName(1))
_ = input("Press ENTER to quit:")
VerbindungFunktion/属性
以下属性和Funktion与您在Verbindung对话框 (F3) 中的设置相同。
13.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
13.3.2. Porter Rate
仅适用于 Connection = 0
属性BaudRate as LongWirksam值
300
600
1200
2400
4800
9600(默认)
14400
19200
38400
56000
57600
115200
128000
153600
230400
256000
460800
921600例子
BaudRate = 9600
13.3.3. Datenplatz
仅适用于 Connection = 0
属性DataBits为整数Wirksam值
7
8(默认)
例子
DataBits = 8
13.3.4. 平价
仅适用于 Connection = 0
属性奇Zufällige Prüfungen为整数Wirksam值
0 = 无
1 = 奇数
2 = 偶数(默认)
例子
Parity = 2
13.3.5. Stoppen Sie Platz
仅适用于 Connection = 0
属性StopBits为整数Wirksam值
1(默认)
2
例子
StopBits = 1
13.3.6。串行端口
仅适用于 Connection = 0
将SerialPort属性设为整数Wirksam值
1…255
默认值 = 1例子
SerialPort = 1
13.3.7. 模式
仅适用于 Connection = 0
属性模式为整数Wirksam值
0 = RTU 模式
1 = ASCII 模式
例子
Mode = 1
13.3.8. Entfernen回声
仅适用于 Connection = 0
如果您Die Ausrüstung或 RS232/RS485 Konverter.回显刚刚Senden Sie的Charaktere。
属性RemoveEcho为整数Wirksam值
0(默认)
1(去除回声)
例子
RemoveEcho = 1
13.3.9。Antwort超时
ResponseTimeout 指定 Modbus Poll 在放弃之前应等待从AusrüstungAntwort的ZeitLänge(以 ms 为单位)。
属性ResponseTimeout为整数Wirksam值
50…100000
默认值 = 1000例子
ResponseTimeout = 1000
13.3.10。轮询之间的延迟
属性DelayBetweenPolls为整数Wirksam值
0…1000
默认值 = 20例子
DelayBetweenPolls = 20
13.3.11。Der Server端口
仅适用于 Connection = 1…4
属性ServerPort as LongWirksam值
0…65535
默认值 = 502例子
ServerPort = 502
13.3.12。Verbindung超时
ConnectTimeout 指定 Modbus Poll 等待 TCP/IP Verbindung成功的ZeitLänge。
仅适用于 Connection = 1…4
属性ConnectTimeout为整数Wirksam值
100…30000 毫秒
默认值 = 1000 毫秒例子
ConnectTimeout = 1000
13.3.13。IP版本
仅适用于 Connection = 1…4
属性IPVersion为整数Wirksam值
4 = IP 版本 4(默认)
6 = IP 版本 6
例子
IPVersion = 4
13.3.14。开放Verbindung
Öffnen.使用 Connection 属性Auswahl的Verbindung。
函数OpenConnection () 作为整数Parameter
这个函数没有Parameter。返回值
Fehler.3-5:请检查您是否有最新的Die Serie驱动程序。
| Fehler. | 描述 |
|---|---|
| 0 | 成功 |
| 1 | Die Serie不可用 |
| 3 | 串行端口。无法从端口驱动程序获取gegenwärtig设置。 |
| 4 | 串行端口。串行端口驱动程序不接受端口设置。 |
| 5 | 串行端口。串行端口驱动程序不接受超时设置。 |
| 12 | TCP/UDP Verbindung失败。WSA 启动 |
| 13 | TCP/UDP Verbindung失败。VerbindungFehler. |
| 14 | TCP/UDP Verbindung失败。暂停 |
| 15 | TCP/UDP Verbindung失败。IOCTL |
| 17 | TCP/UDP Verbindung失败。套接字Fehler. |
| 21 | TCP/UDP Verbindung失败。Adresse信息 |
| 255 | Verbindung已Öffnen. |
Excel Beispiel如何Öffnen. Modbus TCP/IP Verbindung
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:")
SchließenVerbindung
函数CloseConnection () 作为整数Parameter
这个函数没有Parameter。返回值
成功则为零。如果失败,则为非零值。
ShowCommunicationTraffic
显示Kommunikation流Quantität窗口。
函数ShowCommunicationTraffic ()Parameter
这个函数没有Parameter。返回值
没有
Schließen通讯交通
SchließenKommunikation流Quantität窗口(如果显示)。
函数CloseCommunicationTraffic ()Parameter
这个函数没有Parameter。返回值
没有
Lesen函数
以下Funktion与您在读/写定义对话框 (F8) 中的设置相同。Lesen函数与 Modbus Poll DokumentationRelated联。(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。 |
Lesen线圈
ModbusFunktionscode01
函数ReadCoils (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter
SlaveID:从机Adresse 1 zu 255
Address:DatenAdresse(Base 0)
Quantity:Daten个数。1 zu 2000
扫描速率: 0 zu 3600000 毫秒返回值
如果成功则为真。如果不成功则为假
Lesen von diskreten Eingaben
ModbusFunktionscode02
函数ReadDiscreteInputs (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter
SlaveID:从机Adresse 1 zu 255
Address:DatenAdresse(Base 0)
Quantity:Daten个数。1 zu 2000
扫描速率: 0 zu 3600000 毫秒返回值
如果成功则为真。如果不成功则为假
13.4.3. ReadHoldingRegisters
ModbusFunktionscode03
函数ReadHoldingRegisters (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter
SlaveID:从机Adresse 1 zu 255
Address:DatenAdresse(Base 0)
Quantity:Daten个数。1 zu 125
扫描速率: 0 zu 3600000 毫秒返回值
如果成功则为真。如果不成功则为假
13.4.4. Eingangsregister lesen
ModbusFunktionscode04
函数ReadInputRegisters (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter
SlaveID:从机Adresse 1 zu 255
Address:DatenAdresse(Base 0)
Quantity:Daten个数。1 zu 125
扫描速率: 0 zu 3600000 毫秒返回值
如果成功则为真。如果不成功则为假
自动化写入函数
写入函数写入存储在由属性填充的数组中的值。下面的 Write 函数不创建Daten窗口。要创建Daten窗口,请使用 Win 函数,例如WriteMultipleRegistersWin。
13.5.1. 写单线圈
Modbus Funktion代码 05。
写入存储在写入数组中的Die一个线圈。
函数WriteSingleCoil (SlaveID As Integer, Address As Long) As IntegerParameter
SlaveID:从机Adresse 0 zu 255
Adresse:DatenAdresse(Base 0)返回值
如果写入数组已准备好并且Daten已Senden Sie,则为真。如果数组为空或ParameterFehler.,则为 False。
控制应用程序负责通过读回写入的值来验证写入Operationen。
13.5.2. Schreiben eines einzelnen Registers
Modbus Funktion代码 06。
写入存储在写入数组中的Die一ein Register.。
函数WriteSingleRegister (SlaveID As Integer, Address As Long) As IntegerParameter
SlaveID:从机Adresse 0 zu 255
Adresse:DatenAdresse(Base 0)返回值
如果写入数组已准备好并且Daten已Senden Sie,则为真。如果数组为空或ParameterFehler.,则为 False。
控制应用程序负责通过读回写入的值来验证写入Operationen。
13.5.3. Schreiben Sie mehrere Schleife.
Modbus Funktionscode 15.
写入存储在写入数组中的线圈。
函数WriteMultipleCoils (SlaveID As Integer, Address As Long, Quantity As Integer) As Integer返回值
如果写入数组已准备好并且Daten已Senden Sie,则为真。如果数组为空或ParameterFehler.,则为 False。
控制应用程序负责通过读回写入的值来验证写入Operationen。Parameter
SlaveID:从机Adresse 0 zu 255
Address:DatenAdresse(Base 0)
QuantityDaten的Anzahl。1 bis zu 1968
13.5.4. Schreiben mehrerer Register
Modbus Funktion代码 16.
写入存储在写入数组中的Register.。
函数WriteMultipleRegisters (SlaveID As Integer, Address As Long, Quantity As Integer) As IntegerParameter
SlaveID:从机Adresse 0 zu 255
Address:DatenAdresse(Base 0)
Quantity:Daten个数。1 zu 123返回值
如果写入数组已准备好并且Daten已Senden Sie,则为真。如果数组为空或ParameterFehler.,则为 False。
控制应用程序负责通过读回写入的值来验证写入Operationen。
13.5.5. Python Beispiel
Python Beispiel如何创建一个从Adresse 0 (40001) Lesen 10 ein Register.然后写入 5 ein Register.的窗口。Python Beispiel
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:")
各种Funktion
各种Funktion与 Modbus Poll DokumentationRelated联。(Daten窗口)
13.6.1. 展示窗口
默认 Modbus-Dokumentation窗口是隐藏的。ShowWindow 函数使 Modbus Poll 可见并显示带有Daten内容的Dokumentation。
函数显示窗口()Parameter
这个函数没有Parameter。返回值
没有
13.6.2. 获取TxCount
检索Bitte数。
函数GetTxCount () 只要Parameter
这个函数没有Parameter。返回值
Bitte的Anzahl。
13.6.3. 获取Empfang计数
检索Antwort数。
函数GetRxCount () 只要Parameter
这个函数没有Parameter。返回值
Antwort的Anzahl。
13.6.4. 获取Name
检索值的Name。
函数GetName(索引为整数)为Charaktere串Parameter
索引:索引 0 对应Die一个 Modbus Adresse。返回值
名字。
13.6.5. 集合Name
更改值的Name。函数SetName(索引为整数,Name为Charaktere串)Parameter
索引:索引 0 对应Die一个 Modbus Adresse。
Name:值单元格的Name。返回值
没有
13.6.6。AllesDas Format化
使用所选Das FormatDas Format化所有值单元格。
函数FormatAll(Das Format化为整数)Parameter
Das Format:值单元格的Das Format。返回值
没有
13.6.7. 获取Das Format
检索 Modbus 值的Format zeigen。
函数GetFormat(索引为整数)为整数Parameter
索引:索引 0 对应Die一个 Modbus Adresse。
返回值
| ID | Das Format |
|---|---|
| 0 | 签 |
| 1 | 未签名 |
| 2 | 16. System |
| 3 | Binärsystem |
| 4 | 浮点小端Bytes交换 |
| 5 | 浮点大端 |
| 6 | 双小端Bytes交换 |
| 7 | 双大端序 |
| 8 | 32 位有符Nr.小端Bytes交换 |
| 9 | 32 位有符Nr.大端序 |
| 10 | 浮点小端序 |
| 11 | 浮点大端Bytes交换 |
| 12 | 双小端序 |
| 13 | 双大端Bytes交换 |
| 14 | 32 位有符Nr.小端序 |
| 15 | 32 位有符Nr.大端Bytes交换 |
| 17 | 32 位无符Nr.大端序 |
| 18 | 32 位无符Nr.小端Bytes交换 |
| 19 | 32 位无符Nr.大端Bytes交换 |
| 20 | 32 位无符Nr.小端序 |
| 21 | 64 位有符Nr.大端序 |
| 22 | 64 位有符Nr.小端Bytes交换 |
| 23 | 64 位有符Nr.大端Bytes交换 |
| 24 | 64 位有符Nr.小端序 |
| 25 | 64 位无符Nr.大端 |
| 26 | 64 位无符Nr.小端Bytes交换 |
| 27 | 64 位无符Nr.大端Bytes交换 |
| 28 | 64 位无符Nr.小端序 |
| 此设置仅用于显示。在使用 Get/Set 值函数时,您仍然需要使用 byteOrder 来获得Richtig.的Die Reihenfolge。 |
13.6.8. 设置Das Format
更改 Modbus 值的Format zeigen。请参阅上面的Das Format值。
函数SetFormat(索引为整数,Das Format为整数)Parameter
索引:索引 0 对应Die一个 Modbus Adresse。
Das Format:值单元格的Das Format。返回值
没有
13.6.9。调整窗口大小
调整Öffnen.的窗口大小以适合网格。
函数调整窗口()Parameter
这个函数没有Parameter。返回值
没有
13.6.10。调整所有列大小
调整所有列的大小以适合单元格内的值。
函数ResizeAllColumns ()Parameter
这个函数没有Parameter。返回值
没有
13.6.11。行
指定网格中的行数。
函数行(NumberRows)Parameter
NumberRows:网格中的行数。
| ID | 描述 |
|---|---|
| 0 | 10 行(默认) |
| 1 | 20行 |
| 2 | 50 行 |
| 3 | 100 行 |
| 4 | 适合Anzahl |
返回值
没有
13.6.12。LesenErgebnis
使用此属性检查与 Read 建立的Kommunikation是否Betrieb成功。
属性ReadResult As IntegerParameter
这个函数没有Parameter。返回值
| Fehler. | 描述 |
|---|---|
| 0 | 成功 |
| 1 | 超时Fehler. |
| 2 | CRC Fehler. |
| 3 | RESPONSE ERROR(Antwort不是预期的从属 ID、Funktion或Adresse) |
| 4 | 写Fehler. |
| 5 | LesenFehler. |
| 6 | 端口未Öffnen.Fehler. |
| 10 | Daten未初始化 |
| 11 | 收zu的Bytes不足 |
| 16 | Anzahl der BytesFehler. |
| 19 | 交易 ID Fehler. |
| 81小时 | Illegale Funktionen |
| 82小时 | Illegale Datenadressen |
| 83小时 | Illegale Datenwerte |
| 84小时 | Der ServerAusrüstung故障 |
| 85小时 | 承认 |
| 86小时 | Der ServerAusrüstung忙 |
| 87小时 | NAK-否定Bestätigen |
| 8Ah | Gateway-Pfad nicht verfügbar |
| 8Bh | 网关目标Ausrüstung无法Antwort |
13.6.13。写Ergebnis
使用此函数检查写入是否成功。
该值是 DATA_UNINITIALIZED,直zuVon der Station的Ergebnis可用。有关可能值的列表,请参阅ReadResult 。
属性WriteResult As Integer返回值
以整数形式返回写入Ergebnis。
自动化Daten属性
以下属性用于在 Modbus Poll 的内部写入/Lesen数组中设置或获取值。使用的索引不是 Modbus Adresse。无论使用什么Adresse,索引总是从 0 开始计数。Daten属性与 Modbus Poll DokumentationRelated联。(Daten窗口)
每个Daten属性有 2 个版本:
- 没有后缀的一种,例如SRegisters,用于从内部写入/Lesen数组中设置或获取值。
- 以 Win 作为后缀的一种,例如SRegistersWin,用于直接从Daten窗口设置或获取值。这在Daten窗口用于写入函数时使用,例如WriteMultipleRegistersWin。
Beispiel 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.
带有浮点值的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
13.7.1. 线圈,线圈赢
属性线圈(索引为整数)为整数描述
在写入数组结构中设置一个线圈或从Lesen数组返回一个线圈。句法
线圈(索引)[=newvalue]
13.7.2. SRegisters, SRegistersWin
属性SRegisters (Index As Integer) As Integer描述
在写入数组结构中设置一ein Register.或从Lesen数组返回一ein Register.。句法
SRegisters(索引)[=新值]
13.7.3. URegisters, URegistersWin
属性URegisters(索引为整数)只要描述
在写入数组结构中设置一ein Register.或从Lesen数组返回一ein Register.。句法
URegisters(索引)[=新值]
13.7.4. Ints_32, Ints_32Win
属性Ints_32(索引为整数)为 Double描述
在写入数组结构中设置一个 32 位整数或从Lesen数组返回一个整数。句法
Ints_32(索引)[=新值]
13.7.5。UInts_32, UInts_32Win
属性UInts_32 (Index As Integer) As Double描述
在写入数组结构中设置一个 32 位无符Nr.整数或从Lesen数组返回一个无符Nr.整数。句法
UInts_32(索引)[=新值]
13.7.6。Ints_64, Ints_64Win
属性Ints_64(索引为整数)为 Double描述
在写入数组结构中设置一个 64 位整数或从Lesen数组返回一个整数。句法
Ints_64(索引)[=新值]
13.7.7. UInts_64, UInts_64Win
属性UInts_64 (Index As Integer) As Double描述
在写入数组结构中设置一个 64 位无符Nr.整数或从Lesen数组返回一个无符Nr.整数。句法
UInts_64(索引)[=新值]
13.7.8。花车,花车赢
属性浮点数(索引为整数)为单个描述
在写入数组结构中设置一个浮点数或从Lesen数组返回一个浮点数。句法
浮点数(索引)[=newvalue]
13.7.9。双打,双打赢
属性双精度数(索引为整数)双精度数描述
在写入数组结构中设置双精度或从Lesen数组返回双精度。句法
双打(索引)[=newvalue]
13.7.10。Befehlseite
属性ByteOrder As Integer描述
设置 Ints_32、UInts_32、Ints_64、UInts_64、Floats 和 Doubles 属性使用的Die Reihenfolge。
Win 版本不使用此属性ByteOrder。
| ID | Befehlseite |
|---|---|
| 0 | 大端(默认) |
| 1 | 小端Bytes交换 |
| 2 | 大端Bytes交换 |
| 3 | 小端序 |
Ints_32 Beispiel:
Die Reihenfolge:大端
Das Dekimalsystem数 123456789 或16. System 07 5B CD 15
它们在 Modbus 消息中通过线路的顺序:07 5B CD 15句法
Die Reihenfolge[=新值]
编写函数(创建Daten窗口)
以下Funktion与您在读/写定义对话框 (F8) 中设置的Funktion相同。
这些函数创建一个Daten窗口,Daten窗口中的Daten内容根据扫描速率写入。
13.8.1. 写单线圈赢
Modbus Funktion代码 05。
函数WriteSingleCoilWin (SlaveID As Integer, Address As Long, ScanRate As Long) As IntegerParameter
SlaveID:从机Adresse 1 zu 255
Adresse:DatenAdresse(Base 0)
ScanRate: 0 zu 3600000ms返回值
如果成功则为真。如果不成功则为假
13.8.2. 写单Register.赢
Modbus Funktion代码 06。
函数WriteSingleRegisterWin (SlaveID As Integer, Address As Long, ScanRate As Long) As IntegerParameter
SlaveID:从机Adresse 1 zu 255
Adresse:DatenAdresse(Base 0)
ScanRate: 0 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:")
13.8.3. WriteMultipleCoilsWin
Modbus Funktion代码 15。
函数WriteMultipleCoilsWin (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter
SlaveID:从机Adresse 1 zu 255
Address:DatenAdresse(Base 0)
Quantity:Daten个数。1 zu 1968
扫描速率: 0 zu 3600000 毫秒返回值
如果成功则为真。如果不成功则为假
13.8.4. WriteMultipleRegistersWin
Modbus Funktion代码 16。
函数WriteMultipleRegistersWin (SlaveID As Integer, Address As Long, Quantity As Integer, ScanRate As Long) As IntegerParameter
SlaveID:从机Adresse 1 zu 255
Address:DatenAdresse(Base 0)
Quantity:Daten个数。1 zu 123
扫描速率: 0 zu 3600000 毫秒返回值
如果成功则为真。如果不成功则为假
异常和Fehler.信息
Modbus 异常和Fehler.消息以红色Text显示在每个窗口的Die 2 行。

Modbus 异常代码
Modbus 异常是从Geräte zurück.的Fehler.。
| 代码 | Name | 意义 |
|---|---|---|
| 01 | Illegale Funktionen | 查询中收zu的Funktion代码不是Der Server(或从机)允许的Operationen。这可能是因为该Funktionscode仅适用于较新Die Ausrüstung,并没有在所选单元中实现。它还可能表明Der Server(或从属)处于Fehler.Status来处理这种Typus的Bitte,例如因为它没有配置并且被要求返回Registerwert。 |
| 02 | Illegale Datenadressen | 查询中收zu的DatenAdresse不是Der Server允许的Adresse。更具体地说,参考Nr.和传输Länge的组合是Unwirksam的。对于一个有 100 ein Register.的Der Controller,PDU 寻址Die一ein Register.为 0,最后一ein Register.为 99。如果提交的BitteStart-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,并且没有Adresse为 100 的Register.。 |
| 03 | Illegale Datenwerte | 查询DatenFeld中包含的值不是Der Server(或从属)允许的值。这表明复杂Bitte的其余部Unterteilung的结构ExistenzFehler.,例如隐含Länge不Richtig.。这并不意味着提交存储在Register.中的Daten项具有超出应用程序预期的值,因为 MODBUS Vereinbarung不知道任何特定Register.的任何特定值的重要性。 |
| 04 | Der ServerAusrüstung故障 | Der Server(或从属Der Server)尝试执行Bitte的Operationen时发生不可恢复的Fehler.。 |
| 05 | 承认 | 专门与编程Befehl结合使用。 Der Server(或从属Der Server)已接受Bitte并正在处理它,但这样做需要很长Zeit。返回此Antwort以防止在客户端(或主控)中发生超时Fehler.。客户端(或主控)接下来可以发出轮询程序abgeschlossen.消息以确定处理是否abgeschlossen.。 |
| 06 | Der ServerAusrüstung忙 | 专门与编程Befehl结合使用。 Der Server(或从机)正在处理一个长Zeit的程序Befehl。当Der Server(或从属)空闲时,客户端(或主控)应稍后重新传输消息。 |
| 0A | Gateway-Pfad nicht verfügbar | 与网关结合使用时,表示网关无法Unterteilung配从输入端口zu输出端口的内部Kommunikation路径以处理Bitte。通常意味着网关配置Fehler.或过载。 |
| 0B | Gateway Zielgerät reagiert fehlgeschlagen | 与网关结合使用时,表示未从目标Ausrüstung获得Antwort。通常意味着该Geräte nicht vorhanden于网络上。 |
Modbus 轮询Fehler.消息
| Fehler.信息 | 意义 |
|---|---|
| 超时Fehler. | 未在预期Zeit内收zuAntwort。检查以下内容:串行Verbindung串行设置,如Porter Rate、奇Zufällige Prüfungen、Datenplatz、Stoppen Sie Platz等。Modbus 模式,RTU 或 ASCIIVon der Station IDAntwort超时TCP/IP VerbindungAntwort超时检查Host和Port与从机是否一致 |
| AntwortFehler. | 反应不是预期的。不同的Von der Station ID。 |
| CRC Fehler. | Empfangzu的Antwort的 CRC 值不Richtig.。 |
| 写入Fehler. | 这是串行驱动程序报告的Fehler.。如果使用 USB/RS232/485 Konverter.并且拔下 USB 电缆,则可能会发生这种情况。有4种Typus:中断条件输入输出Fehler.串行VerbindungFehler.输出缓冲区溢出使用 TCP/IP Verbindung的写入Fehler.通常是由于Verbindung丢失引起的。 |
| LesenFehler. | 这是串行驱动程序报告的Fehler.。有6种:构图Fehler.Charaktere缓冲区溢出奇Zufällige PrüfungenFehler.输入缓冲区溢出输入输出Fehler.中断条件使用 TCP/IP VerbindungLesenFehler.通常是由于Verbindung丢失造成的。 |
| 收zu的Anzahl der Bytes不足 | Antwort不是预期的Länge。 |
| Anzahl der BytesFehler. | Antwort中的Anzahl der Bytes不Richtig.。与预期相比。 |
| 交易 ID Fehler. | 它用于事务配对,MODBUS Der Server在Antwort中Kopieren.Bitte的Transaktionsidentifikator。 |
软件版本为Modbus Poll 9.9.2.1690中文版,请大家Kommentare后Download!!!

11
111
Download
1
很好
1111111
222
111111
11111
感谢Teilen
学习
xz
介绍的很详细,非常好用
xiazia
感谢
Download
谢谢
666
感谢
收下
谢谢楼主
最新版吗?给力!
感谢楼主
感谢楼主
感谢楼主
感谢楼主
感谢感谢
感谢楼主
介绍的很详细,非常好用
ceshi