- 1. Modbus Slave
- 2. Modbus Von der Station的Das System要求
- 3. ModbusVon der StationEigenschaften
- 4. Verbindung
- 5. 支持的 Modbus Funktion
- 6. Format zeigen
- 7. 其他Funktion
- 8. 概述
- 9. 随时随地提供帮助
- 10. 命名单元格
- 11. 值单元格
- 12. 更改字体
- 13. 条件颜色
- 14. 缩放
- 15. 实时图表
- 16. Öffnen.一个新窗口
- 17. Verbindung对话框
- 18. Verbindung(Connection)
- 19. Die Serie设置(Serial Settings)
- 20. TCP/IPDer Server(TCP/IP Server)
- 21. 从机定义(Slave definition)
- 22. 从机ID(Slave ID)
- 23. Funktionscode(Function)
- 24. Adresse(Address)
- 25. 隐藏Name列(Hide name columns)
- 26. 单元格中的Adresse(Address in cell)
- 27. PLC Adresse(基Adresse 1)PLC Addresses (Base 1)
- 28. 行数(Rows)
- 29. 实时图表(Real time Charting)
- 30. 设置(Settings)
- 31. 变焦Funktion
- 32. 平移Funktion
- 33. 将Daten链接zu图表系列
- 34. 出口系列
- 35. Format zeigen
- 36. 本机 Modbus Register.
- 37. 32 位有符Nr.整数(32-bit signed integer)
- 38. 32 位无符Nr.整数(32-bit unsigned integer)
- 39. 64 位有符Nr.整数(64-bit signed integer)
- 40. 64 位无符Nr.整数(64-bit unsigned integer)
- 41. 32位浮点数(32-bit floating)
- 42. 64位双精度浮点数(64-bit double)
- 43. 保存/Öffnen.工作区
- 44. 通讯流Quantität
- 45. OLE/自动化
- 46. Excel Beispiel
- 47. PythonBeispiel
- 48. VerbindungFunktion/属性
- 49. 自动化设置Funktion
- 50. 自动化Daten属性
- 51. Modbus Slave 中文版用户手册及软件Download

Kleine Prozessversion,kostenlos使用!!!
Modbus Slave
Modbus Slave 用于在 100 个窗口中模拟多达 100 个从机Ausrüstung!使用此模拟Werkzeuge加快您的 PLC 编程速度。在从供应商处收zu从属Ausrüstung之前,请开始编程和测试。主应用程序可以访问任何Öffnen.Dokumentation中包含的Daten。与 Modbus 轮询相同的用户界面。
监控串行流Quantität。用于与 Visual Basic、Excel 等Verbindung的 OLE 自动化。根据您的具体要求解释和显示 Modbus Daten。例如,在 Excel 中Herausgeber从属Daten。尝试该程序附带的 Excel example.xls。
Modbus Von der Station中Öffnen.的每个窗口都可以配置为表示来自相同或不同Von der Station节点的Daten。
Modbus Von der Station的Das System要求
硬件要求
处理器; 建议 1 GHz 或更快
1 GB RAM
5 MB 可用硬盘空间
1024 x 768 显示Unterteilung辨率OperationenDas System要求
支持从 Windows 7 zu Windows 11 的所有 Windows 版本。
Modbus Slave 版本 8 在 Windows XP 上Betrieb。
1.1.1. 静默安装
静默安装不需要用户干预,并且没有用户界面。用户看不zu任何对话框,也不会被问zu任何问题。
使用Befehl行 /S Schalter!。
ModbusVon der StationEigenschaften
Verbindung
Modbus Slave 使用以下方式从AusrüstungLesen/写入Daten:
- RS232 或 RS485 网络上的 Modbus RTU 或 ASCII。(USB/RS232/485Konverter.)
- Modbus TCP/IP
- TCP/IP 上的 Modbus。(Modbus RTU封装在TCPDaten包中)
- VereinbarungUDP/IP
- 基于 UDP/IP 的 Modbus。(Modbus RTU封装在UDPDaten包中)
支持的 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标识
Format zeigen
每个单元格都可以单独Das Format化。
- 16位有符Nr.Register.(Signed 16-bit register)
- 16位无符Nr.Register.(Unsigned 16-bit register)
- 16. System(Hex)
- Binärsystem(Binary)
- 具有任意字/Die Reihenfolge的 32 位有符Nr.整数(32-bit signed integer with any word/byte order)
- 具有任意字/Die Reihenfolge的 32 位无符Nr.整数(32-bit unsigned integer with any word/byte order)
- 具有任意字/Die Reihenfolge的 64 位有符Nr.整数(64-bit signed integer with any word/byte order)
- 具有任意字/Die Reihenfolge的 64 位无符Nr.整数(64-bit unsigned integer with any word/byte order)
- 具有任意字/Die Reihenfolge的 32 位浮点数(32-bit float with any word/byte order)
- 具有任意字/Die Reihenfolge的 64位双精度浮点数(64-bit double float with any word/byte order)
其他Funktion
- 用于与 Excel VBA、Python 等Verbindung的 OLE/自动化。
- Daten流Quantität监控
- 打印和打印预览
- 字体Auswahl
- 条件颜色
- 缩放
- 实时图表
- 保存/Öffnen.工作区
概述
Modbus Slave 使用多Dokumentation界面。这意味着可以Öffnen.多个窗口。每一个具有不同的Daten内容,用于同时模拟不同的从机Ausrüstung。

这张照片显示了两个Öffnen.的窗口。一个模拟来自Adresse 0 (40001) 从机 id 1 的 10 个保持Register.,另一个模拟来自Adresse 0 (40001) 从机 id 2 的 10 个保持Register.。
随时随地提供帮助
按 F1即可获取与gegenwärtig所选项目Related的主题的上下文Related帮助。
SHIFT + F1调用特殊的“帮助模式”,Von denen光标变成帮助光标(箭头+问Nr.)。然后,用户可以Auswahl用户界面中的可见对象,例如菜单项、Werkzeuge栏Knopf或窗口。这将Öffnen.有关描述所选项目的主题的帮助。
命名单元格
您可以在此处键入任何Text来指定值单元格。您还可以从 Excel 单元格Kopieren./粘贴Text。
值单元格
显示 Modbus Register.的Daten值。如果双击值单元格,将出现一个对话框,您可以在该值单元格中输入新值。在值单元格中键入数字也会显示输入对话框。

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

条件颜色
条件颜色可帮助您直观地显示特定范围内的值。3 种颜色Auswahl
- 默认颜色:如果没有任何条件颜色Berechnungsergebnisse为 true,则使用此颜色。
- Regeln 1:如果表达式的Berechnungsergebnisse为 true,则使用此颜色Auswahl。Regeln 1 优先于Regeln 2。
- Regeln 2:如果表达式的Berechnungsergebnisse为 true,则使用此颜色Auswahl。
7 种比较运算符
- not used: 未使用
- equal to: gleich ist
- greater than: größer als
- less than: kleiner als
- greater than or equal to: größer als gleich
- less than or equal to: kleiner als gleich
- and: 与
当Datentyp为 float 或 32 位 long Typus时,不能使用“and”运算符。如果Auswahl“and”,则条件值将以16. System数字形式输入。如果单元格和条件值中的任何位均为 1,则其Berechnungsergebnisse为 true。
颜色Beispiel
如果单元格值größer als 0,则为绿色;如果kleiner als 0,则为红色。

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

(X1,Y1) 和 (X2,Y2)
一条通过两点 (X1,Y1) 和 (X2,Y2) 的直线
Slope=m=Y2−Y1/X2−X1
直线方程
Y=m⋅(X−X1)+Y1
精确
小数点后的位数。
aktiviert.
必须aktiviert.此Funktion,以从ModbusDer Server/Von der Station缩放值。如果Auswahl了非16/32位整数Format zeigen,缩放会自动禁用
实时图表
该图表可以实时绘制 12 个系列,每个系列最多 100000 个点。
Öffnen.一个新窗口
要Öffnen.另一个窗口,您有 3 个选项:
- 按 CTRL+N
- 在文件菜单中Auswahl新建
- 按
Werkzeuge栏上的
Verbindung对话框
要Öffnen.Verbindung对话框,您有 2 个选项:
- 按F3
- 从Verbindung菜单中AuswahlVerbindung

Verbindung(Connection)
有 5 种不同的VerbindungTypus:
- Die Serie:
通过串行线路的 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。 - Modbus UDP/IP:
如果要与 MODBUS UDP/IP 网络Kommunikation,Bitte wählen UDP/IP。这与 Modbus TCP/IP 相同,但使用无Verbindung UDP Vereinbarung。 - TCP/IP 上的 Modbus RTU:
这是通过 TCP/IP 网络而不是串行线路Senden Sie的 RTU 消息。 - Modbus RTU Over UDP/IP:
这是通过 UDP/IP 网络而不是串行线路Senden Sie的 RTU 消息。
根据您的Auswahl,一些其他设置将呈灰色。
Die Serie设置(Serial Settings)
使用这些Parameter来设置串行端口设置。仅当VerbindungTypus为“串行端口”时它们才可用。模式
使用此选项AuswahlRTU或ASCII模式。默认 RTU。数字SR
指定是否监视 DSR(Daten集就绪)信Nr.以进行输出流控制。如果该成员为 TRUE 并且 DSR Schließen,则输出将暂停,直zu再次Senden Sie DSR。CTS
指定是否监视 CTS(BeseitigungSenden Sie)信Nr.以进行输出流Quantität控制。如果aktiviert.此复选框并且Schließen CTS,则输出将暂停,直zu再次Senden Sie CTS。即时战略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将无法识别该消息。 |
TCP/IPDer Server(TCP/IP Server)
TCP/IP Der Server设置仅在使用EthernetVerbindung时可用。IPAdresse
指定要侦听的 IP Adresse。如果您的 PC 上有多个网络Verbindung,这非常有用。Modbus Slave 的每个实例都可以侦听特定网络。默认为本地主机 127.0.0.1任何Adresse
如果您希望 Modbus Slave 侦听所有网络,请选中此项。忽略单元 ID
许多PLCAusrüstung会忽略该Feld,并且大多数客户端默认值为零。然而,网关或专用程序可以使用单元Nr.来指示需要什么Typus的处理。港口
Der Server端口Nr.。默认502
从机定义(Slave definition)
使用此Befehl可以定义要为活动窗口定义的Daten数组。
要Öffnen. Slave Definition 对话框,您有 3 个选项:
- 按 F8
- 从设置菜单中Auswahl“Von der Station定义”
- 按
Werkzeuge栏上的

从机ID(Slave ID)
范围 1 zu 255。(MODBUS Vereinbarung规范规定为 247)。值 0 也可以直接与 MODBUS/TCP 或 MODBUS/UDP AusrüstungKommunikation。
Funktionscode(Function)
您可以Auswahl 4 个Funktion代码中的 1 个。
- 01:Lesen线圈(0x)。接受写入Funktion 05 和 15
- 02:Lesen von diskreten Eingaben (1x)
- 03:Lesen und halten Register(4x)。接受写入Funktion 06、16、22 和 23
- 04:Eingangsregister lesen(3x)
Adresse(Address)
ModbusVereinbarung中的Adresse很混乱!一些Vereinbarung规范使用Vereinbarung/消息Adresse,而其他Vereinbarung规范使用Ausrüstung寻址。
Vereinbarung/消息Adresse
某些Vereinbarung规范使用从 0 zu 65535 计数的Vereinbarung/消息Adresse以及Funktion代码。这也是新的 Modbus 规范所使用的内容。这是通过线路Senden Sie的消息中的Adresse。
Modbus Slave 使用Vereinbarung/消息Adresse从 0 zu 65535 计数。
Geräte Adresse
一些Vereinbarung规范使用Geräte Adresse/Register.。Register.从 1 开始计数。Die一个数字描述要使用的Funktion。这意味着Geräte Adresse 40101 由Adresse 100 标识。“4”表示保持Register.和 4x Register.从 1 开始计数。因此“4XXXX”引用是隐式的。更令人困惑的是:4x 表示Funktion代码 03,3x 表示Funktion代码 04!
5 位与 6 位寻址
AdresseDas Format 4x 从 40001 计数zu 49999。下一个Adresse不是50000。在过去,9999 个Adresse就足够了。有些情况下9999还不够。然后添加一个零。40101 变为 400101,依此类推。这称为 6 位寻址或扩展寻址。
这对于 Modbus Slave 来说不是问题。410001 变成 10000。“4”被丢弃,剩下的 10001 减 1,因为我们从 0 而不是 1 开始计数。
AdresseBeispiel
这些Beispiel展示了在规范使用Geräte Adresse的情况下如何设置 Modbus Von der Station。
定义保持Register.
您想要从Ausrüstung ID 2 的Geräte Adresse 40011 定义 20 ein Register.。从“4”我们知道这是Funktion 03“Lesen und halten Register”。
- 从机 ID = 2
- Funktion =“03 Lesen und halten Register (4x)”
- Adresse = 10(11 减 1)
- Anzahl = 20
定义离散输入
您想要从Von der Station ID 5 的Adresse 110201 定义 1000 个线圈。从“1”我们知道这是Funktion 02“Lesen von diskreten Eingaben”
- 从机 ID = 5
- Funktion =“02 Lesen von diskreten Eingaben (1x)”
- Adresse = 10200 (10201 – 1)
- Anzahl = 1000
隐藏Name列(Hide name columns)
隐藏所有Name列。如果不使用它们,这可以方便地腾出mehr.空间。
单元格中的Adresse(Address in cell)
如果aktiviert.,Adresse也会显示在值单元格中,例如:2000 = 00000

PLC Adresse(基Adresse 1)PLC Addresses (Base 1)
此选项会将Adresse显示为Geräte Adresse。

行数(Rows)
指定您喜欢的网格中的行数。
实时图表(Real time Charting)
使用此Befehl可在图表中实时绘制最多 12 个Daten系列。
实时图表速度很快,能够在收zu新Daten后尽快绘制新线。
| 所有图表设置都保Existenz工作区文件中。保存/Öffnen.工作区 |
要Öffnen.实时图表对话框,您有 2 个选项:
- 按 Alt + R
- 从显示菜单中Auswahl“实时图表”

X 轴显示自图表启动以来的秒数。
当点zu达图表末尾时,有 3 个选项:
- Ende时Stopp!:图表Stopp!。
- Ende时重新启动:图表neu anfangen.。
- 继续:继续,直zu达zu最大点数或按下Stopp!Knopf。
设置(Settings)
默认情况下,所有 12 个系列都链接zu左侧 Y 轴。如果要将系列链接zu右 Y 轴,请选中“右 Y 轴”复选框。指定
- 颜色
- 右 Y 轴
- 标题。如果标题为空,则使用阅读窗口中的Name进行初始化
- 抵消
展示
- 文件名
- Adresse
偏移对于在同一 Y 轴上对齐Daten点很有用。例如,0 或 1 的Daten点可以偏移,这样它们就不会绘制在彼此之上。

变焦Funktion
如果您想Überprüfen Sie mehr详细信息,放大图表会很有用。缩放由鼠标左键控制。要缩放图表的特定部Unterteilung,只需左键单击图表(这将是缩放矩形的左上角)并拖动zu右下角。将出现一个矩形。一旦释放鼠标Knopf,轴就会自动调整zu您Auswahl的区域。
如果您左键单击图表(例如开始缩放),但如果您移动zu左上角,则使用缩放和平移Funktionabgeschlossen.的所有修改都将被Absage(图表将处于原来的Status)在进行平移和缩放Operationen之前)。
平移Funktion
要平移Kontrollen,请右键单击Kontrollen上的某处并移动鼠标。鼠标下方的点将跟随鼠标的移动。
将Daten链接zu图表系列
除非将 Modbus Daten单元链接zu 12 个系列之一,否则图表不知道要使用哪些Daten。为此,Bitte wählen一个值单元格,然后从菜单→显示中Auswahl“链接zu图表”。

出口系列
将系列Daten保存zu磁盘或Kopieren.zu剪贴板。将Daten直接粘贴zu Excel 中以进行进一步处理。
尽管使用非逗Nr.FeldUnterteilung隔符,但该文件仍具有 .csv 扩展名。
Unterteilung隔符:AuswahlUnterteilung隔Text文件中的值的Charaktere。Kopieren./粘贴zu Excel 时使用制表符Unterteilung隔符。此外还给出了一些附加信息。
- 点数
- 最大Unterteilung值
- 最小Unterteilung值
- 平均Unterteilung值

Format zeigen
标记要Das Format化的单元格。从显示菜单中Auswahl 28 种Format zeigen之一。
本机 Modbus Register.
16 位 Modbus Register.可以以 4 种不同的模式显示。
- 签
- 未签名
- 16. System
- ASCII – 16. System
- Binärsystem
32 位有符Nr.整数(32-bit signed integer)
它结合了 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
32 位无符Nr.整数(32-bit unsigned integer)
它结合了 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
64 位有符Nr.整数(64-bit signed integer)
它结合了 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
64 位无符Nr.整数(64-bit unsigned integer)
它结合了 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
32位浮点数(32-bit floating)
它结合了 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
64位双精度浮点数(64-bit double)
它结合了 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
保存/Öffnen.工作区
如果您Öffnen.许多Related的 Modbus 窗口,可以方便地在一个工作区中保存所有Öffnen.和排列的 Modbus 窗口的gegenwärtig布局的快照。
工作区 (*msw) 是一个包含所有Öffnen.窗口的显示信息和文件名的文件。不是实际内容。为此,请转zu文件→保存工作区。
Verbindung和图表设置存储在工作区文件中。
当您Öffnen.工作区文件时,Modbus Slave 将Öffnen.所有 Modbus 窗口并以您保存的布局显示它们。
通讯流Quantität
Auswahl菜单“显示”→“通讯”以显示串行线路或Ethernet电缆上的流Quantität。使用Stopp!Knopf暂时Stopp!更新以进行检查。
使用Kopieren.Knopf将所选行Kopieren.zu剪贴板。

| 该窗口仅显示 Modbus Von der StationSenden Sie和Empfang的Daten。您不能将其用作Daten嗅探器。 |
| 在执行其他Befehl时保持此窗口Öffnen.。 |
OLE/自动化
自动化(以前称为 OLE 自动化)使一个应用程序可以Operationen另一应用程序中实现的对象。
自动化客户端是一个可以Operationen属于另一个应用程序的公开对象的应用程序。这也称为自动化Der Controller。
自动化Der Server是向其他应用程序公开可编程对象的应用程序。Modbus Slave是一个自动化Der Server。
这意味着您可以使用任何支持VBA(Visual Basic for Applications)的程序(例如Visual Basic、Excel等)根据您的具体要求解释和显示modbusDaten。
Excel Beispiel
当您想要编写宏时,您应该显示“开发人员”选项卡或在开发人员模式下Betrieb。
Excel 2007

- 单击 Microsoft Office Knopf,然后单击 Excel 选项。
- 单击“流行”,然后选中“在Funktion区中显示开发人员选项卡”复选框。
请注意,Funktion区是 Microsoft Fluent 用户界面的一部Unterteilung。
Excel 2010、2016
- 单击文件选项卡。
- 单击选项。Excel 选项窗口将Öffnen.。
- 在左侧窗格中单击“Custom definiertFunktion区”。
- 在右侧窗格的“主选项卡”下,选中“开发人员”复选框。
- 单击“确定”。“开发人员”选项卡现在应该显示在Funktion区中(最右侧的选项卡)。
Excel Beispiel代码
此BeispielÖffnen.一个模拟保持Register.的窗口。
Modbus Slave 是隐藏的,但您可以通过Absage注释“ShowWindow”行来显示它。这将显示Von denen一个窗口。
Modbus Slave 安装中还包含一个Beispiel。
开始 → 所有程序 → Modbus Slave → Excel BeispielExcel VBA Beispiel
Public doc As Object
Public app As Object
Dim status As Integer
Dim n As Integer
Private Sub StartSlave_Click()
' Create an application object. You can only create 1 application object
Set app = CreateObject("Mbslave.Application")
' Create a new Modbus Slave document (Data Window)
' This is the same as open a new data window in Modbus Slave
' You can create up to 50 Modbus Slave documents (Data Window)
Set doc = CreateObject("Mbslave.Document")
' Show Modbus Slave
' res = doc.ShowWindow()
' Create doc2 if needed.
' Set doc2 = CreateObject("Mbslave.Document")
' Set one of 5 connection types.
app.Connection = 1 ' Modbus TCP/IP
' TCP/IP settings.
' No need to set IP address. We listen to any address. (Default).
app.ServerPort = 502
app.IPVersion = 4
' Open the connection.
res = app.OpenConnection()
Range("D5").Value = res
res = doc.SetupHoldingRegisters(1, 100, 8)
doc.SRegisters(0) = 1 ' Modbus address 100
doc.SRegisters(1) = -10 ' Note that the Index used counts from 0
doc.URegisters(2) = 50000 ' no matter the Modbus address used.
doc.URegisters(3) = 60000
doc.Longs(4) = 10000 ' A long takes 2 registers
doc.Floats(6) = 123.45 ' A float takes 2 registers
' Now a master can read 8 Holding registers with a mix of 3 data types
End SubPythonBeispiel
此 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('Mbslave.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("Mbslave.Document")
# Setup 100 holding registers with slave ID 1, address 0 (40001)
Win1.SetupHoldingRegisters(1, 0, 100)
# 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
# Use ByteOrder to set the actual endianness
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")
# Set different values
Win1.SRegisters(0, -100)
Win1.SRegisters(1, 100)
Win1.URegisters(2, 43690)
Win1.URegisters(3, 65535)
Win1.ByteOrder = BE
Win1.Ints_32(4, -123456)
Win1.ByteOrder = LE
Win1.Ints_32(6, -123456)
Win1.ByteOrder = BE_BS
Win1.Ints_32(8, -123456)
Win1.ByteOrder = LE_BS
Win1.Ints_32(10, -123456)
Win1.ByteOrder = BE
Win1.UInts_32(12, 123456)
Win1.ByteOrder = LE
Win1.UInts_32(14, 123456)
Win1.ByteOrder = BE_BS
Win1.UInts_32(16, 123456)
Win1.ByteOrder = LE_BS
Win1.UInts_32(18, 123456)
Win1.ByteOrder = BE
Win1.Ints_64(20, -123456)
Win1.ByteOrder = LE
Win1.Ints_64(24, -123456)
Win1.ByteOrder = BE_BS
Win1.Ints_64(28, -123456)
Win1.ByteOrder = LE_BS
Win1.Ints_64(32, -123456)
Win1.ByteOrder = BE
Win1.UInts_64(40, 123456)
Win1.ByteOrder = LE
Win1.UInts_64(44, 123456)
Win1.ByteOrder = BE_BS
Win1.UInts_64(48, 123456)
Win1.ByteOrder = LE_BS
Win1.UInts_64(52, 123456)
Win1.ByteOrder = BE
Win1.Floats (60, 123.456)
Win1.ByteOrder = LE
Win1.Floats (62, 123.456)
Win1.ByteOrder = BE_BS
Win1.Floats(64, 123.456)
Win1.ByteOrder = LE_BS
Win1.Floats(66, 123.456)
Win1.ByteOrder = BE
Win1.Doubles(80, 123.456)
Win1.ByteOrder = LE
Win1.Doubles(84, 123.456)
Win1.ByteOrder = BE_BS
Win1.Doubles(88, 123.456)
Win1.ByteOrder = LE_BS
Win1.Doubles(92, 123.456)
# Refresh
Win1.EnableRefresh = True
Win1.ResizeAllColumns ()
Win1.ResizeWindow()
print (Win1.GetName(1))
_ = input("Press ENTER to quit:")VerbindungFunktion/属性
以下属性和Funktion与您在Verbindung对话框 (F3) 中的设置相同。
Verbindung
VerbindungAuswahl所需的Verbindung。可以Auswahl串行端口或EthernetVerbindung之一。
属性Verbindung为整数Wirksam值
0 = 串行端口
1 = Modbus TCP/IP
2 = Modbus UDP/IP
3 = Modbus RTU over TCP/IP
4 = Modbus RTU over UDP/IP
例子
Connection = 0
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
Datenplatz
仅适用于Verbindung = 0
属性DataBits作为整数Wirksam值
7
8(默认)
例子
DataBits = 8
Prüfstand.
仅适用于Verbindung = 0
财产平价作为整数Wirksam值
0 = 无
1 = 奇数
2 = 偶数(默认)
例子
Parity = 2
Stoppen Sie Platz
仅适用于Verbindung = 0
属性StopBits作为整数Wirksam值
1(默认)
2
例子
StopBits = 1
串行端口
仅适用于Verbindung = 0
属性SerialPort作为整数Wirksam值
1…255
默认值 = 1例子
SerialPort = 1
Der Server端口
仅适用于Verbindung = 1…4
属性ServerPort为 LongWirksam值
0…65535
默认值 = 502例子
ServerPort = 502
IP版本
仅适用于Verbindung = 1…4
属性IPVersion作为整数Wirksam值
4 = IP 版本 4(默认)
6 = IP 版本 6
例子
IPVersion = 4
任意Adresse
仅适用于Verbindung = 1…4
属性AnyAddress作为整数Wirksam值
0 = 任何Adresse = false
1 = 任何Adresse = true(默认)
例子
AnyAddress = 1
忽略单位ID
仅适用于Verbindung = 1…4
属性IgnoreUnitID作为 IntegerWirksam值
0 = 忽略单元 ID = false
1 = 忽略单元 ID = true(默认)
例子
IgnoreUnitID = 1
开放Verbindung
Öffnen.使用“Verbindung”属性Auswahl的Verbindung。
函数OpenConnection () 作为整数
返回值:
如果成功则为零。如果失败则非零值。如何Öffnen. Modbus TCP/IP Verbindung的Beispiel
Public app As Object
Dim res As Integer
' Create an object to Modbus Slave
Set app = CreateObject("Mbslave.Application")
app.Connection = 1 ' Select Modbus TCP/IP
app.IPVersion = 4
' app.IPAddress = "192.168.1.27" ' No need to setup if AnyAddress = 1. Modbus Slave listen on all.
app.ServerPort = 502
res = OpenConnection()如何设置串行Verbindung的Beispiel
Public app As Object
Dim status As Integer
' Create an object to Modbus Slave
Set app = CreateObject("Mbslave.Application")
app.Connection = 0 ' Mode is serial port
app.SerialPort = 1 ' Com port 1
app.BaudRate = 9600 ' 9600 baud
app.Parity = 0 ' None parity
app.Mode = 0 ' RTU mode
status = app.OpenConnection()SchließenVerbindung
函数CloseConnection () As Integer返回值
如果成功则为零。如果失败则非零值。
显示通讯交通
函数ShowCommunicationTraffic ()
显示Kommunikation流Quantität窗口。
Schließen通讯交通
函数CloseCommunicationTraffic ()
SchließenKommunikation流Quantität窗口(如果显示)。
自动化设置Funktion
以下Funktion与您在读/写定义对话框 (F8) 中设置的Funktion相同。LesenFunktion与 Modbus Von der StationDokumentationRelated联。(带有Daten的窗口)
.Beispiel
Res = doc.SetupDiscreteInputs (1, 100, 5) Coils (0) = 1 ' Address 100 = 1 Coils (1) = 0 ' Note that the index used in Coils starts from 0 Coils (2) = 1 ' no matter the address used. Coils (3) = 0 Coils (4) = 1 ' Now the Master reads 1, 0, 1, 0, 1 when read 5 discrete inputs starting from address 100
设置线圈
Function SetupCoils (SlaveID As Integer, Address As Long, Quantity As Integer) As Integer返回值
如果成功则为真。如果没有成功则为假Parameter
SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 10000
设置离散输入
函数设置离散输入(SlaveID 作为整数,Adresse作为整数,Anzahl作为整数)作为整数返回值
如果成功则为真。如果没有成功则为假Parameter
SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 10000
设置保持Register.
函数SetupHoldingRegisters (SlaveID As Integer, Address As Long, Quantity As Integer) As Integer返回值
如果成功则为真。如果没有成功则为假Parameter
SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 10000
设置输入Register.
函数SetupInputRegisters (SlaveID As Integer, Address As Long, Quantity As Integer) As Integer返回值
如果成功则为真。如果没有成功则为假Parameter
SlaveID:从机Adresse 1 bis zu 255
Adresse:DatenAdresse(基址 0)
Anzahl:DatenAnzahl。1 bis zu 10000
橱窗展示
函数ShowWindow ()
默认情况下,Modbus-Dokumentation窗口是隐藏的。ShowWindow Funktion使 Modbus Poll 可见并显示带有Daten内容的Dokumentation。
获取Name
函数GetName(索引为整数)为Charaktere串描述
获取值的Name。
索引 0 对应于Die一个 Modbus Adresse。
设置Name
函数SetName(索引为整数,Name为Charaktere串)描述
设置值的Name。
索引 0 对应于Die一个 Modbus Adresse。
自动递增
属性AutoIncrement(索引为整数)为布尔值描述
设置值的自动增Quantität。
索引 0 对应于Die一个 Modbus Adresse。
句法
自动增Quantität(索引)[=新值]
AllesDas Format化
函数FormatAll(Das Format化为整数)
使用所选Das Format设置所有值单元格的Das Format。Parameter
Das Format:值单元格的Das Format。
获取Das Format
函数GetFormat(索引为整数)作为整数描述
获取Modbus值的Format zeigen。
| 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.小端Befehlseite |
| 15 | 32 位有符Nr.大端Bytes交换 |
| 17 | 32 位无符Nr.大端Befehlseite |
| 18 | 32 位无符Nr.小端Bytes交换 |
| 19 | 32 位无符Nr.大端Bytes交换 |
| 20 | 32 位无符Nr.小端Befehlseite |
| 21 | 64 位有符Nr.大尾数 |
| 22 | 64 位有符Nr.小端Bytes交换 |
| 23 | 64 位有符Nr.大端Bytes交换 |
| 24 | 64 位有符Nr.小端Befehlseite |
| 25 | 64 位无符Nr.大端Befehlseite |
| 26 | 64 位无符Nr.小端Bytes交换 |
| 27 | 64 位无符Nr.大端Bytes交换 |
| 28 | 64 位无符Nr.小端Befehlseite |
| 此设置仅用于显示。使用 Get/Set 值函数时,您仍然需要使用 byteOrder 来获取Richtig.的Die Reihenfolge。 |
设置Das Format
函数SetFormat(索引为整数,Das Format为整数)描述
设置 Modbus 值的Format zeigen。请参阅上面的Das Format值。
调整窗口大小
函数ResizeWindow ()
调整Öffnen.的窗口的大小以适合网格。
行数
函数Rows (NumberRows)
指定网格中的行数。Parameter
NumberRows:网格中的行数。
| ID | 描述 |
|---|---|
| 0 | 10 行(默认) |
| 1 | 20 行 |
| 2 | 50 行 |
| 3 | 适合Anzahl |
自动化Daten属性
以下属性用于设置或获取 Modbus Von der Station内部写入/Lesen数组中的值。使用的索引不是 Modbus Adresse。无论使用什么Adresse,索引始终从 0 开始计数。Daten属性与 Modbus Von der StationDokumentation关联。(有Daten的窗口)
Beispiel1:
' doc is assumed created first. See Excel example. doc.SRegisters(0) = 1 doc.SRegisters(1) = 10 doc.SRegisters(2) = 1234
使用浮点值的Beispiel 2:
doc.Floats(0) = 1.3 doc.Floats(2) = 10.5 doc.Floats(4) = 1234.12
线圈(Coils)
属性 线圈(索引 As Integer) As Integer
描述
在写入数组结构中设置一个线圈或从Lesen数组中返回一个线圈。
语法
Coils(Index) [=newvalue]
短整型Register.(SRegisters)
属性 短整型Register.(索引 As Integer) As Integer
描述
在写入数组结构中设置一ein Register.或从Lesen数组中返回一ein Register.。
语法
SRegisters(Index) [=newvalue]
无符Nr.Register.(URegisters)
属性 无符Nr.Register.(索引 As Integer) As Long
描述
在写入数组结构中设置一ein Register.或从Lesen数组中返回一ein Register.。
语法
URegisters(索引)[=新值]
32位整型(Ints_32)
属性 32位整型(索引 As Integer) As Double
描述
在写入数组结构中设置一个32位整数或从Lesen数组中返回一个整数。
语法
URegisters(Index) [=newvalue]
无符Nr.32位整型(UInts_32)
属性 无符Nr.32位整型(索引 As Integer) As Double
描述
在写入数组结构中设置一个32位无符Nr.整数或从Lesen数组中返回一个无符Nr.整数。
语法
UInts_32(Index) [=newvalue]
64位整型(Ints_64)
属性 64位整型(索引 As Integer) As Double
描述
在写入数组结构中设置一个64位整数或从Lesen数组中返回一个整数。
语法
Ints_64(Index) [=newvalue]
无符Nr.64位整型(UInts_64)
属性 无符Nr.64位整型(索引 As Integer) As Double
描述
在写入数组结构中设置一个64位无符Nr.整数或从Lesen数组中返回一个无符Nr.整数。
语法
UInts_64(Index) [=newvalue]
浮点数(Floats)
属性 浮点数(索引 As Integer) As Single
描述
在写入数组结构中设置一个浮点数或从Lesen数组中返回一个浮点数。
语法
Floats(Index) [=newvalue]
双精度浮点数(Doubles)
属性 双精度浮点数(索引 As Integer) As Double
描述
在写入数组结构中设置一个双精度浮点数或从Lesen数组中返回一个双精度浮点数。
语法
Doubles(Index) [=newvalue]
Die Reihenfolge(ByteOrder)
属性ByteOrder作为整数描述
设置 Ints_32、UInts_32、Ints_64、UInts_64、浮点数 和 双精度浮点数 属性使用的Die Reihenfolge。
| ID | Die Reihenfolge |
|---|---|
| 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 [=新值]

Kleine Prozessversion,kostenlos使用!!!

非常需要找个软件
试试看
求软件
good
good
支持
学习求教
adada
求软件
一直在找这个软件,终于找zu ,非常好用
*这软件不错*
OK
网络上还没看zu这么详尽的Unterricht太棒了!
Unterricht挺详细的,我还需要软件
求编程
666
woxuyao
很全很赞
Unterricht挺详细的,我还需要软件
贼好用
需要需要,Download测试
66
666
v
666
很棒,太需要了
太棒了,正需要
好好好666
好好好
Unterricht详细!太棒了!
666