
미니프로그램 버전,무료使用!!!
Modbus Slave
Modbus Slave 用于在 100 个窗口中模拟多达 100 个从机设备!使用此模拟도구加快您的 PLC 编程速度。在从供应商处收到从属设备之前,请开始编程和测试。主적용程序可以访问任何열기문서中包含的데이터。与 Modbus 轮询相同的用户界面。
监控串行流量。用于与 Visual Basic、Excel 等연결的 OLE 自动化。根据您的具体要求解释和显示 Modbus 데이터。例如,在 Excel 中편집从属데이터。尝试该程序附带的 Excel example.xls。
Modbus 슬레이브中열기的每个窗口都可以설정为表示来自相同或不同슬레이브节点的데이터。
Modbus 슬레이브的系统要求
硬件要求
处理器; 建议 1 GHz 或更快
1 GB RAM
5 MB 可用硬盘空间
1024 x 768 显示分辨率操作系统要求
支持从 Windows 7 到 Windows 11 的所有 Windows 버전。
Modbus Slave 버전 8 在 Windows XP 上运行。
1.1.1. 静默安装
静默安装不需要用户干预,并且没有用户界面。用户看不到任何对话框,也不会被问到任何문제。
使用命令行 /S 开关。
Modbus슬레이브特性
연결
Modbus Slave 使用以下방식从设备읽기/쓰기데이터:
- RS232 或 RS485 네트워크上的 Modbus RTU 或 ASCII。(USB/RS232/485컨버터)
- Modbus TCP/IP
- TCP/IP 上的 Modbus。(Modbus RTU封装在TCP데이터包中)
- 프로토콜UDP/IP
- 基于 UDP/IP 的 Modbus。(Modbus RTU封装在UDP데이터包中)
支持的 Modbus 功能
- 01 (0x01) 읽기코일
- 02 (0x02) 이산 입력 읽기 (FC02)
- 03 (0x03) 유지 레지스터 읽기 (FC03)
- 04 (0x04) 입력 레지스터 읽기 (FC04)
- 05 (0x05) 写单个코일
- 06 (0x06) 写单个레지스터
- 08 (0x08) 诊断(仅限串行线)
- 11 (0x0B) 获取通讯事件计数器(仅限串行线)
- 15 (0x0F) 다중 코일 쓰기 (FC15)
- 16 (0x10) 다중 레지스터 쓰기 (FC16)
- 17 (0x11) 보고서服务器 ID(仅限串行线路)
- 22 (0x16) 掩码写레지스터
- 23 (0x17) 读/写多个레지스터
- 43 / 14 (0x2B / 0x0E) 읽기设备标识
표시 형식
每个单元格都可以单独형식化。
- 16位有符号레지스터(Signed 16-bit register)
- 16位无符号레지스터(Unsigned 16-bit register)
- 16진수(Hex)
- 2진수(Binary)
- 具有任意字/바이트顺序的 32 位有符号整数(32-bit signed integer with any word/byte order)
- 具有任意字/바이트顺序的 32 位无符号整数(32-bit unsigned integer with any word/byte order)
- 具有任意字/바이트顺序的 64 位有符号整数(64-bit signed integer with any word/byte order)
- 具有任意字/바이트顺序的 64 位无符号整数(64-bit unsigned integer with any word/byte order)
- 具有任意字/바이트顺序的 32 位浮点数(32-bit float with any word/byte order)
- 具有任意字/바이트顺序的 64位双精度浮点数(64-bit double float with any word/byte order)
其他功能
- 用于与 Excel VBA、Python 等연결的 OLE/自动化。
- 데이터流量监控
- 打印和打印预览
- 字体选择
- 条件颜色
- 缩放
- 实时图表
- 저장/열기工作区
개요
Modbus Slave 使用多문서界面。这意味着可以열기多个窗口。每一个具有不同的데이터콘텐츠,用于同时模拟不同的从机设备。

这张照片显示了两个열기的窗口。一个模拟来自주소 0 (40001) 从机 id 1 的 10 个유지 레지스터,另一个模拟来自주소 0 (40001) 从机 id 2 的 10 个유지 레지스터。
随时随地提供帮助
按 F1即可获取与当前所选项目相关的主题的上下文相关帮助。
SHIFT + F1调用特殊的“帮助모드”,其中光标变成帮助光标(箭头+问号)。然后,用户可以选择用户界面中的可见对象,例如菜单项、도구栏버튼或窗口。这将열기有关설명所选项目的主题的帮助。
命名单元格
您可以在此处键入任何文本来指定值单元格。您还可以从 Excel 单元格복사/粘贴文本。
值单元格
显示 Modbus 레지스터的데이터值。如果双击值单元格,将出现一个对话框,您可以在该值单元格中입력新值。在值单元格中键入数字也会显示입력对话框。

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

条件颜色
条件颜色可帮助您直观地显示特定范围内的值。3 种颜色选择
- 默认颜色:如果没有任何条件颜色계산 결과为 true,则使用此颜色。
- 规则 1:如果表达式的계산 결과为 true,则使用此颜色选择。规则 1 优先于规则 2。
- 规则 2:如果表达式的계산 결과为 true,则使用此颜色选择。
7 种比较运算符
- not used: 未使用
- equal to: 等于
- greater than: 大于
- less than: 小于
- greater than or equal to: 大于等于
- less than or equal to: 小于等于
- and: 与
当데이터유형为 float 或 32 位 long 유형时,不能使用“and”运算符。如果选择“and”,则条件值将以16진수数字形式입력。如果单元格和条件值中的任何位均为 1,则其계산 결과为 true。
颜色예제
如果单元格值大于 0,则为绿色;如果小于 0,则为红色。

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

(X1,Y1) 和 (X2,Y2)
一条通过两点 (X1,Y1) 和 (X2,Y2) 的直线
Slope=m=Y2−Y1/X2−X1
直线方程
Y=m⋅(X−X1)+Y1
精确
小数点后的位数。
활성화
必须활성화此功能,以从Modbus服务器/슬레이브缩放值。如果选择了非16/32位整数표시 형식,缩放会自动禁用
实时图表
该图表可以实时绘制 12 个시리즈,每个시리즈最多 100000 个点。
열기一个新窗口
要열기另一个窗口,您有 3 个选项:
- 按 CTRL+N
- 在文件菜单中选择新建
- 按
도구栏上的
연결对话框
要열기연결对话框,您有 2 个选项:
- 按F3
- 从연결菜单中选择연결

연결(Connection)
有 5 种不同的연결유형:
- 시리얼 포트:
通过串行线路的 Modbus。RS232 或 RS485。可以使用USB串行컨버터。 - Modbus TCP/IP:
如果要与 MODBUS TCP/IP 네트워크통신,请选择 TCP/IP。在这种情况下,슬레이브 ID 与 MODBUS TCP/IP 中使用的单元 ID 相同。
포트号默认为 502。 - Modbus UDP/IP:
如果要与 MODBUS UDP/IP 네트워크통신,请选择 UDP/IP。这与 Modbus TCP/IP 相同,但使用无연결 UDP 프로토콜。 - TCP/IP 上的 Modbus RTU:
这是通过 TCP/IP 네트워크而不是串行线路보내기的 RTU 消息。 - Modbus RTU Over UDP/IP:
这是通过 UDP/IP 네트워크而不是串行线路보내기的 RTU 消息。
根据您的选择,一些其他设置将呈灰色。
시리얼 포트设置(Serial Settings)
使用这些매개변수来设置串行포트设置。仅当연결유형为“串行포트”时它们才可用。모드
使用此选项选择RTU或ASCII모드。默认 RTU。数字SR
指定是否监视 DSR(데이터集就绪)信号以进行출력流控制。如果该成员为 TRUE 并且 DSR 닫기,则출력将暂停,直到再次보내기 DSR。CTS
指定是否监视 CTS(清除보내기)信号以进行출력流量控制。如果활성화此复选框并且닫기 CTS,则출력将暂停,直到再次보내기 CTS。即时战略전환
指定如果바이트可用于传输,则 RTS 线将为高电平。보내기所有缓冲바이트后,RTS 线将为低电平。
如果您的 232/485 컨버터没有自动方向开关,则可以使用它来전환方向。
| 如果可能,应避免使用 RTS 控制的 RS232/RS485 컨버터。对于Windows、Linux等非实时操作系统,很难确定发射机닫기的具体时间。如果过早닫기,문자可能仍位于 FIFO 或 UART 的보내기레지스터中,并且这些문자将会丢失。因此从机将无法识别该消息。另一方面,如果닫기得太晚,则从设备的消息会被损坏,并且主设备将无法识别该消息。 |
TCP/IP服务器(TCP/IP Server)
TCP/IP 服务器设置仅在使用以太网연결时可用。IP주소
指定要侦听的 IP 주소。如果您的 PC 上有多个네트워크연결,这非常有用。Modbus Slave 的每个实例都可以侦听特定네트워크。默认为本地主机 127.0.0.1任何주소
如果您希望 Modbus Slave 侦听所有네트워크,请选中此项。忽略单元 ID
许多PLC设备会忽略该필드,并且大多数클라이언트默认值为零。然而,게이트웨이或专用程序可以使用单元号来指示需要什么유형的处理。港口
服务器포트号。默认502
从机定义(Slave definition)
使用此命令可以定义要为活动窗口定义的데이터数组。
要열기 Slave Definition 对话框,您有 3 个选项:
- 按 F8
- 从设置菜单中选择“슬레이브定义”
- 按
도구栏上的

从机ID(Slave ID)
范围 1 到 255。(MODBUS 프로토콜사양规定为 247)。值 0 也可以直接与 MODBUS/TCP 或 MODBUS/UDP 设备통신。
기능 코드(기능)
您可以选择 4 个功能代码中的 1 个。
- 01:읽기코일(0x)。接受쓰기功能 05 和 15
- 02:이산 입력 읽기 (FC02) (1x)
- 03:유지 레지스터 읽기 (FC03)(4x)。接受쓰기功能 06、16、22 和 23
- 04:입력 레지스터 읽기 (FC04)(3x)
주소(주소)
Modbus프로토콜中的주소很混乱!一些프로토콜사양使用프로토콜/消息주소,而其他프로토콜사양使用设备寻址。
프로토콜/消息주소
某些프로토콜사양使用从 0 到 65535 计数的프로토콜/消息주소以及功能代码。这也是新的 Modbus 사양所使用的콘텐츠。这是通过线路보내기的消息中的주소。
Modbus Slave 使用프로토콜/消息주소从 0 到 65535 计数。
设备주소
一些프로토콜사양使用设备주소/레지스터。레지스터从 1 开始计数。第一个数字설명要使用的功能。这意味着设备주소 40101 由주소 100 标识。“4”表示유지 레지스터和 4x 레지스터从 1 开始计数。因此“4XXXX”引用是隐式的。更令人困惑的是:4x 表示功能代码 03,3x 表示功能代码 04!
5 位与 6 位寻址
주소형식 4x 从 40001 计数到 49999。下一个주소不是50000。在过去,9999 个주소就足够了。有些情况下9999还不够。然后추가一个零。40101 变为 400101,依此类推。这称为 6 位寻址或扩展寻址。
这对于 Modbus Slave 来说不是문제。410001 变成 10000。“4”被丢弃,剩下的 10001 减 1,因为我们从 0 而不是 1 开始计数。
주소예제
这些예제展示了在사양使用设备주소的情况下如何设置 Modbus 슬레이브。
定义유지 레지스터
您想要从设备 ID 2 的设备주소 40011 定义 20 个레지스터。从“4”我们知道这是功能 03“유지 레지스터 읽기 (FC03)”。
- 从机 ID = 2
- 功能 =“03 유지 레지스터 읽기 (FC03) (4x)”
- 주소 = 10(11 减 1)
- 数量 = 20
定义이산 입력
您想要从슬레이브 ID 5 的주소 110201 定义 1000 个코일。从“1”我们知道这是功能 02“이산 입력 읽기 (FC02)”
- 从机 ID = 5
- 功能 =“02 이산 입력 읽기 (FC02) (1x)”
- 주소 = 10200 (10201 - 1)
- 数量 = 1000
隐藏名称列(Hide name columns)
隐藏所有名称列。如果不使用它们,这可以方便地腾出更多空间。
单元格中的주소(주소 in cell)
如果활성화,주소也会显示在值单元格中,例如:2000 = 00000

PLC 주소(基주소 1)PLC 주소es (Base 1)
此选项会将주소显示为设备주소。

行数(Rows)
指定您喜欢的网格中的行数。
实时图表(Real time Charting)
使用此命令可在图表中实时绘制最多 12 个데이터시리즈。
实时图表速度很快,能够在收到新데이터后尽快绘制新线。
| 所有图表设置都저장在工作区文件中。저장/열기工作区 |
要열기实时图表对话框,您有 2 个选项:
- 按 Alt + R
- 从显示菜单中选择“实时图表”

X 轴显示自图表启动以来的秒数。
当点到达图表末尾时,有 3 个选项:
- 종료时정지:图表정지。
- 종료时重新启动:图表重新开始。
- 继续:继续,直到达到最大点数或按下정지버튼。
设置(Settings)
默认情况下,所有 12 个시리즈都链接到左侧 Y 轴。如果要将시리즈链接到右 Y 轴,请选中“右 Y 轴”复选框。指定
- 颜色
- 右 Y 轴
- 标题。如果标题为空,则使用阅读窗口中的名称进行初始化
- 抵消
展示
- 文件名
- 주소
偏移对于在同一 Y 轴上对齐데이터点很有用。例如,0 或 1 的데이터点可以偏移,这样它们就不会绘制在彼此之上。

变焦功能
如果您想보기更多详细信息,放大图表会很有用。缩放由鼠标左键控制。要缩放图表的特定部分,只需左键单击图表(这将是缩放矩形的左上角)并拖动到右下角。将出现一个矩形。一旦释放鼠标버튼,轴就会自动调整到您选择的区域。
如果您左键单击图表(例如开始缩放),但如果您移动到左上角,则使用缩放和平移功能完成的所有修改都将被취소(图表将处于原来的状态)在进行平移和缩放操作之前)。
平移功能
要平移控件,请右键单击控件上的某处并移动鼠标。鼠标下方的点将跟随鼠标的移动。
将데이터链接到图表시리즈
除非将 Modbus 데이터单元链接到 12 个시리즈之一,否则图表不知道要使用哪些데이터。为此,请选择一个值单元格,然后从菜单→显示中选择“链接到图表”。

出口시리즈
将시리즈데이터저장到磁盘或복사到剪贴板。将데이터直接粘贴到 Excel 中以进行进一步处理。
尽管使用非逗号필드分隔符,但该文件仍具有 .csv 扩展名。
分隔符:选择分隔文本文件中的值的문자。복사/粘贴到 Excel 时使用制表符分隔符。此外还给出了一些附加信息。
- 点数
- 最大分值
- 最小分值
- 平均分值

표시 형식
기호要형식化的单元格。从显示菜单中选择 28 种표시 형식之一。
本机 Modbus 레지스터
16 位 Modbus 레지스터可以以 4 种不同的모드显示。
- 签
- 未签名
- 16진수
- ASCII - 16진수
- 2진수
32 位有符号整数(32-bit signed integer)
它结合了 2 个 16 位 Modbus 레지스터。它可以以 4 种不同的字/바이트顺序显示。
- 有符号整数 大尾数
- 有符号整数 小尾数
- 有符号整数大端바이트交换
- 有符号整数小端바이트交换例子바이트顺序:AB CD(大端)
10진수数 123456789 或16진수数07 5B CD 15
Modbus 消息中通过线路传输的顺序:07 5B CD 15
32 位无符号整数(32-bit unsigned integer)
它结合了 2 个 16 位 Modbus 레지스터。它可以以 4 种不同的字/바이트顺序显示。
- 无符号整数 大尾数
- 无符号整数 小尾数
- 无符号整数 Big-endian 바이트交换
- 无符号整数小端바이트交换例子바이트顺序:AB CD(大端)
10진수数 123456789 或16진수数07 5B CD 15
Modbus 消息中通过线路传输的顺序:07 5B CD 15
64 位有符号整数(64-bit signed integer)
它结合了 4 个 16 位 Modbus 레지스터。它可以以 4 种不同的字/바이트顺序显示。
- 有符号整数 大尾数
- 有符号整数 小尾数
- 有符号整数大端바이트交换
- 有符号整数小端바이트交换例子바이트顺序:AB CD EF GH(大端)
10진수数 -1,234,567,890,123,456,789 或16진수数EE DD EF 0B 82 16 7E EB
Modbus 消息中的线路顺序:EE DD EF 0B 82 16 7E EB
64 位无符号整数(64-bit unsigned integer)
它结合了 4 个 16 位 Modbus 레지스터。它可以以 4 种不同的字/바이트顺序显示。
- 无符号整数 大尾数
- 无符号整数 小尾数
- 无符号整数 Big-endian 바이트交换
- 无符号整数小端바이트交换例子바이트顺序:AB CD EF GH(大端)
10진수数 1,234,567,890,123,456,789 或16진수数11 22 10 F4
7D E9 81 15 Modbus 消息中的线路顺序:11 22 10 F4 7D E9 81 15
32位浮点数(32-bit floating)
它结合了 2 个 16 位 Modbus 레지스터。它可以以 4 种不同的字/바이트顺序显示。
- 浮点大尾数
- 浮点数小尾数
- 浮点大端바이트交换
- 浮点小端바이트交换例子바이트顺序:AB CD(大端)
浮点数 123456.00 或16진수47 F1 20 00
Modbus 消息中的线路顺序:47 F1 20 00
64位双精度浮点数(64-bit double)
它结合了 4 个 16 位 Modbus 레지스터。它可以以 4 种不同的字/바이트顺序显示。
- 双大尾数
- 双小端
- 双大端바이트交换
- 双小端바이트交换例子바이트顺序:AB CD EF GH(大端)
浮点数 123456789.00 或16진수41 9D 6F 34 54 00 00 00
Modbus 消息中的线路顺序:41 9D 6F 34 54 00 00 00
저장/열기工作区
如果您열기许多相关的 Modbus 窗口,可以方便地在一个工作区中저장所有열기和排列的 Modbus 窗口的当前布局的快照。
工作区 (*msw) 是一个包含所有열기窗口的显示信息和文件名的文件。不是实际콘텐츠。为此,请转到文件→저장工作区。
연결和图表设置存储在工作区文件中。
当您열기工作区文件时,Modbus Slave 将열기所有 Modbus 窗口并以您저장的布局显示它们。
通讯流量
选择菜单“显示”→“通讯”以显示串行线路或以太网电缆上的流量。使用정지버튼暂时정지更新以进行检查。
使用복사버튼将所选行복사到剪贴板。

| 该窗口仅显示 Modbus 슬레이브보내기和수신的데이터。您不能将其用作데이터嗅探器。 |
| 在执行其他命令时保持此窗口열기。 |
OLE/自动化
自动化(以前称为 OLE 自动化)使一个적용程序可以操作另一적용程序中实现的对象。
自动化클라이언트是一个可以操作属于另一个적용程序的公开对象的적용程序。这也称为自动化제어기。
自动化服务器是向其他적용程序公开可编程对象的적용程序。Modbus Slave是一个自动化服务器。
这意味着您可以使用任何支持VBA(Visual Basic for Applications)的程序(例如Visual Basic、Excel等)根据您的具体要求解释和显示modbus데이터。
Excel 예제
当您想要编写宏时,您应该显示“개발人员”选项卡或在개발人员모드下运行。
Excel 2007

- 单击 Microsoft Office 버튼,然后单击 Excel 选项。
- 单击“流行”,然后选中“在功能区中显示개발人员选项卡”复选框。
请注意,功能区是 Microsoft Fluent 用户界面的一部分。
Excel 2010、2016
- 单击文件选项卡。
- 单击选项。Excel 选项窗口将열기。
- 在左侧窗格中单击“自定义功能区”。
- 在右侧窗格的“主选项卡”下,选中“개발人员”复选框。
- 单击“确定”。“개발人员”选项卡现在应该显示在功能区中(最右侧的选项卡)。
Excel 예제代码
此예제열기一个模拟유지 레지스터的窗口。
Modbus Slave 是隐藏的,但您可以通过취소注释“ShowWindow”行来显示它。这将显示其中一个窗口。
Modbus Slave 安装中还包含一个예제。
开始 → 所有程序 → Modbus Slave → Excel 예제Excel VBA 예제
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 (데이터 Window)
' This is the same as 열기 a new 데이터 window in Modbus Slave
' You can create up to 50 Modbus Slave documents (데이터 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 주소. We listen to any 주소. (Default).
app.ServerPort = 502
app.IPVersion = 4
' Open the connection.
res = app.OpenConnection()
Range("D5").Value = res
res = doc.SetupHolding회원가입s(1, 100, 8)
doc.S회원가입s(0) = 1 ' Modbus 주소 100
doc.S회원가입s(1) = -10 ' Note that the Index used counts from 0
doc.U회원가입s(2) = 50000 ' no matter the Modbus 주소 used.
doc.U회원가입s(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 데이터 types
End SubPython예제
此 Python 예제열기一个窗口并设置所有可能的데이터형식。Python 예제
import win32com.client as win32
SIGNED = 0
UNSIGNED = 1
HEX = 2
BINARY = 3
FLOAT_LE_BS = 4
FLOAT_BE = 5
DOUBLE_LE_BS = 6
DOUBLE_BE = 7
S32_LE_BS = 8
S32_BE = 9
FLOAT_LE = 10
FLOAT_BE_BS = 11
DOUBLE_LE = 12
DOUBLE_BE_BS = 13
S32_LE = 14
S32_BE_BS = 15
U32_BE = 17
U32_LE_BS = 18
U32_BE_BS = 19
U32_LE = 20
S64_BE = 21
S64_LE_BS = 22
S64_BE_BS = 23
S64_LE = 24
U64_BE = 25
U64_LE_BS = 26
U64_BE_BS = 27
U64_LE = 28
#Endianness
BE = 0
LE = 3
BE_BS = 2
LE_BS = 1
App = win32.Dispatch('Mbslave.Application')
App.Connection = 1
App.IP주소 = "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, 주소 0 (40001)
Win1.SetupHolding회원가입s(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 이름s to used format
Win1.Set이름(0, "SIGNED")
Win1.Set이름(1, "UNSIGNED")
Win1.Set이름(2, "HEX")
Win1.Set이름(3, "BINARY")
Win1.Set이름(4, "S32_BE")
Win1.Set이름(6, "S32_LE")
Win1.Set이름(8, "S32_BE_BS")
Win1.Set이름(10, "S32_LE_BS")
Win1.Set이름(12, "U32_BE")
Win1.Set이름(14, "U32_LE")
Win1.Set이름(16, "U32_BE_BS")
Win1.Set이름(18, "U32_LE_BS")
Win1.Set이름(20, "S64_BE")
Win1.Set이름(24, "S64_LE")
Win1.Set이름(28, "S64_BE_BS")
Win1.Set이름(32, "S64_LE_BS")
Win1.Set이름(40, "U64_BE")
Win1.Set이름(44, "U64_LE")
Win1.Set이름(48, "U64_BE_BS")
Win1.Set이름(52, "U64_LE_BS")
Win1.Set이름(60, "FLOAT_BE")
Win1.Set이름(62, "FLOAT_LE")
Win1.Set이름(64, "FLOAT_BE_BS")
Win1.Set이름(66, "FLOAT_LE_BS")
Win1.Set이름(80, "DOUBLE_BE")
Win1.Set이름(84, "DOUBLE_LE")
Win1.Set이름(88, "DOUBLE_BE_BS")
Win1.Set이름(92, "DOUBLE_LE_BS")
# Set different values
Win1.S회원가입s(0, -100)
Win1.S회원가입s(1, 100)
Win1.U회원가입s(2, 43690)
Win1.U회원가입s(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.Get이름(1))
_ = input("Press ENTER to quit:")연결功能/属性
以下属性和功能与您在연결对话框 (F3) 中的设置相同。
연결
연결选择所需的연결。可以选择串行포트或以太网연결之一。
属性연결为整数有效值
0 = 串行포트
1 = Modbus TCP/IP
2 = Modbus UDP/IP
3 = Modbus RTU over TCP/IP
4 = Modbus RTU over UDP/IP
例子
Connection = 0
통신 속도
仅适用于연결 = 0
属性BaudRate as Long有效值
300
600
1200
2400
4800
9600(默认)
14400
19200
38400
56000
57600
115200
128000
153600
230400
256000
460800
921600例子
BaudRate = 9600
데이터 비트
仅适用于연결 = 0
属性데이터Bits作为整数有效值
7
8(默认)
例子
데이터Bits = 8
패리티
仅适用于연결 = 0
财产平价作为整数有效值
0 = 无
1 = 奇数
2 = 偶数(默认)
例子
Parity = 2
정지 비트
仅适用于연결 = 0
属性StopBits作为整数有效值
1(默认)
2
例子
StopBits = 1
串行포트
仅适用于연결 = 0
属性SerialPort作为整数有效值
1…255
默认值 = 1例子
SerialPort = 1
服务器포트
仅适用于연결 = 1…4
属性ServerPort为 Long有效值
0…65535
默认值 = 502例子
ServerPort = 502
IP버전
仅适用于연결 = 1…4
属性IPVersion作为整数有效值
4 = IP 버전 4(默认)
6 = IP 버전 6
例子
IPVersion = 4
任意주소
仅适用于연결 = 1…4
属性Any주소作为整数有效值
0 = 任何주소 = false
1 = 任何주소 = true(默认)
例子
Any주소 = 1
忽略单位ID
仅适用于연결 = 1…4
属性IgnoreUnitID作为 Integer有效值
0 = 忽略单元 ID = false
1 = 忽略单元 ID = true(默认)
例子
IgnoreUnitID = 1
开放연결
열기使用“연결”属性选择的연결。
函数OpenConnection () 作为整数
返回值:
如果成功则为零。如果失败则非零值。如何열기 Modbus TCP/IP 연결的예제
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.IP주소 = "192.168.1.27" ' No need to setup if Any주소 = 1. Modbus Slave listen on all.
app.ServerPort = 502
res = OpenConnection()如何设置串行연결的예제
Public app As Object
Dim status As Integer
' Create an object to Modbus Slave
Set app = CreateObject("Mbslave.Application")
app.Connection = 0 ' Mode is 시리얼 포트
app.SerialPort = 1 ' Com port 1
app.BaudRate = 9600 ' 9600 baud
app.Parity = 0 ' None parity
app.Mode = 0 ' RTU mode
status = app.OpenConnection()닫기연결
函数닫기Connection () As Integer返回值
如果成功则为零。如果失败则非零值。
显示通讯交通
函数ShowCommunicationTraffic ()
显示통신流量窗口。
닫기通讯交通
函数닫기CommunicationTraffic ()
닫기통신流量窗口(如果显示)。
自动化设置功能
以下功能与您在读/写定义对话框 (F8) 中设置的功能相同。읽기功能与 Modbus 슬레이브문서相关联。(带有데이터的窗口)
.예제
Res = doc.SetupDiscreteInputs (1, 100, 5) Coils (0) = 1 ' 주소 100 = 1 Coils (1) = 0 ' Note that the index used in Coils 시작s from 0 Coils (2) = 1 ' no matter the 주소 used. Coils (3) = 0 Coils (4) = 1 ' Now the Master reads 1, 0, 1, 0, 1 when read 5 discrete inputs 시작ing from 주소 100
设置코일
기능 SetupCoils (SlaveID As Integer, 주소 As Long, Quantity As Integer) As Integer返回值
如果成功则为真。如果没有成功则为假매개변수
SlaveID:从机주소 1 至 255
주소:데이터주소(基址 0)
数量:데이터数量。1 至 10000
设置이산 입력
函数设置이산 입력(SlaveID 作为整数,주소作为整数,数量作为整数)作为整数返回值
如果成功则为真。如果没有成功则为假매개변수
SlaveID:从机주소 1 至 255
주소:데이터주소(基址 0)
数量:데이터数量。1 至 10000
设置유지 레지스터
函数SetupHolding회원가입s (SlaveID As Integer, 주소 As Long, Quantity As Integer) As Integer返回值
如果成功则为真。如果没有成功则为假매개변수
SlaveID:从机주소 1 至 255
주소:데이터주소(基址 0)
数量:데이터数量。1 至 10000
设置입력 레지스터
函数SetupInput회원가입s (SlaveID As Integer, 주소 As Long, Quantity As Integer) As Integer返回值
如果成功则为真。如果没有成功则为假매개변수
SlaveID:从机주소 1 至 255
주소:데이터주소(基址 0)
数量:데이터数量。1 至 10000
橱窗展示
函数ShowWindow ()
默认情况下,Modbus 문서窗口是隐藏的。ShowWindow 功能使 Modbus Poll 可见并显示带有데이터콘텐츠的문서。
获取名称
函数Get이름(索引为整数)为문자串설명
获取值的名称。
索引 0 对应于第一个 Modbus 주소。
设置名称
函数Set이름(索引为整数,名称为문자串)설명
设置值的名称。
索引 0 对应于第一个 Modbus 주소。
自动递增
属性AutoIncrement(索引为整数)为布尔值설명
设置值的自动增量。
索引 0 对应于第一个 Modbus 주소。
句法
自动增量(索引)[=新值]
전체형식化
函数FormatAll(형식化为整数)
使用所选형식设置所有值单元格的형식。매개변수
형식:值单元格的형식。
获取형식
函数GetFormat(索引为整数)作为整数설명
获取Modbus值的표시 형식。
| ID | 형식 |
|---|---|
| 0 | 签 |
| 1 | 未签名 |
| 2 | 16진수 |
| 3 | 2진수 |
| 4 | 浮点小端바이트交换 |
| 5 | 浮点大尾数 |
| 6 | 双小端바이트交换 |
| 7 | 双大端 |
| 8 | 32 位有符号小端바이트交换 |
| 9 | 32 位有符号大尾数 |
| 10 | 浮点数小尾数 |
| 11 | 浮点大端바이트交换 |
| 12 | 双小尾数 |
| 13 | 双大端바이트交换 |
| 14 | 32 位有符号小端바이트序 |
| 15 | 32 位有符号大端바이트交换 |
| 17 | 32 位无符号大端바이트序 |
| 18 | 32 位无符号小端바이트交换 |
| 19 | 32 位无符号大端바이트交换 |
| 20 | 32 位无符号小端바이트序 |
| 21 | 64 位有符号大尾数 |
| 22 | 64 位有符号小端바이트交换 |
| 23 | 64 位有符号大端바이트交换 |
| 24 | 64 位有符号小端바이트序 |
| 25 | 64 位无符号大端바이트序 |
| 26 | 64 位无符号小端바이트交换 |
| 27 | 64 位无符号大端바이트交换 |
| 28 | 64 位无符号小端바이트序 |
| 此设置仅用于显示。使用 Get/Set 值函数时,您仍然需要使用 byteOrder 来获取正确的바이트顺序。 |
设置형식
函数SetFormat(索引为整数,형식为整数)설명
设置 Modbus 值的표시 형식。请参阅上面的형식值。
调整窗口大小
函数ResizeWindow ()
调整열기的窗口的大小以适合网格。
行数
函数Rows (NumberRows)
指定网格中的行数。매개변수
NumberRows:网格中的行数。
| ID | 설명 |
|---|---|
| 0 | 10 行(默认) |
| 1 | 20 行 |
| 2 | 50 行 |
| 3 | 适合数量 |
自动化데이터属性
以下属性用于设置或获取 Modbus 슬레이브内部쓰기/읽기数组中的值。使用的索引不是 Modbus 주소。无论使用什么주소,索引始终从 0 开始计数。데이터属性与 Modbus 슬레이브문서关联。(有데이터的窗口)
예제1:
' doc is assumed created first. See Excel example. doc.S회원가입s(0) = 1 doc.S회원가입s(1) = 10 doc.S회원가입s(2) = 1234
使用浮点值的예제 2:
doc.Floats(0) = 1.3 doc.Floats(2) = 10.5 doc.Floats(4) = 1234.12
코일(Coils)
属性 코일(索引 As Integer) As Integer
설명
在쓰기数组结构中设置一个코일或从읽기数组中返回一个코일。
语法
Coils(Index) [=newvalue]
短整型레지스터(S회원가입s)
属性 短整型레지스터(索引 As Integer) As Integer
설명
在쓰기数组结构中设置一个레지스터或从읽기数组中返回一个레지스터。
语法
S회원가입s(Index) [=newvalue]
无符号레지스터(U회원가입s)
属性 无符号레지스터(索引 As Integer) As Long
설명
在쓰기数组结构中设置一个레지스터或从읽기数组中返回一个레지스터。
语法
U회원가입s(索引)[=新值]
32位整型(Ints_32)
属性 32位整型(索引 As Integer) As Double
설명
在쓰기数组结构中设置一个32位整数或从읽기数组中返回一个整数。
语法
U회원가입s(Index) [=newvalue]
无符号32位整型(UInts_32)
属性 无符号32位整型(索引 As Integer) As Double
설명
在쓰기数组结构中设置一个32位无符号整数或从읽기数组中返回一个无符号整数。
语法
UInts_32(Index) [=newvalue]
64位整型(Ints_64)
属性 64位整型(索引 As Integer) As Double
설명
在쓰기数组结构中设置一个64位整数或从읽기数组中返回一个整数。
语法
Ints_64(Index) [=newvalue]
无符号64位整型(UInts_64)
属性 无符号64位整型(索引 As Integer) As Double
설명
在쓰기数组结构中设置一个64位无符号整数或从읽기数组中返回一个无符号整数。
语法
UInts_64(Index) [=newvalue]
浮点数(Floats)
属性 浮点数(索引 As Integer) As Single
설명
在쓰기数组结构中设置一个浮点数或从읽기数组中返回一个浮点数。
语法
Floats(Index) [=newvalue]
双精度浮点数(Doubles)
属性 双精度浮点数(索引 As Integer) As Double
설명
在쓰기数组结构中设置一个双精度浮点数或从읽기数组中返回一个双精度浮点数。
语法
Doubles(Index) [=newvalue]
바이트顺序(ByteOrder)
属性ByteOrder作为整数설명
设置 Ints_32、UInts_32、Ints_64、UInts_64、浮点数 和 双精度浮点数 属性使用的바이트顺序。
| ID | 바이트顺序 |
|---|---|
| 0 | 大端序(默认) |
| 1 | 小端序바이트交换 |
| 2 | 大端序바이트交换 |
| 3 | 小端序 |
Ints_32 예제:
바이트顺序:大端序
10진수数123456789 或 16진수 07 5B CD 15
在Modbus消息中的传输顺序:07 5B CD 15
语法
바이트顺序 [=新值]

미니프로그램 버전,무료使用!!!
非常需要找个软件
试试看
求软件
good
good
支持
학습求教
adada
求软件
一直在找这个软件,终于找到 ,非常好用
*这软件不错*
OK
네트워크上还没看到这么详尽的튜토리얼太棒了!
튜토리얼挺详细的,我还需要软件
求编程
666
woxuyao
很全很좋아요
튜토리얼挺详细的,我还需要软件
贼好用
需要需要,下载测试
66
666
v
666
很棒,太需要了
太棒了,正需要
好好好666
好好好
튜토리얼详细!太棒了!
666