# Modbus Master

### 介绍
Modbus 主站测试软件
这是一个小巧的Modbus Master测试工具，综合了Modbus TCP、Modbus UDP、Modbus RTU、Modbus ASCII 四种工作模式.是现场通讯测试的最佳助手。
Modbus RTU、Modbus ASCII可以基于TCP/IP或UDP/IP方式进行通讯模式。
适合运行在任何Windows平台下。绿色软件，无需任何运行库。

### 软件架构
2.0版本之前基于delphi 7进行开发，用到了delphi7集成的Indy9控件和spcomm改进版控件。
3.0版本之后基于delphi 10.3.3进行开发，采用第三方控件Raize(6.23)和[XZYComm(3.1)](https://gitee.com/blockke/xzycomm)，用到了delphi10.3.3集成的Indy10(10.6.2.5366)控件。
5.2版本之后基于Delphi 11 进行开发，采用第三方控件Raize(KonopkaControls 7.0.8)和[XZYComm(3.3)](https://gitee.com/blockke/xzycomm)，用到了delphi 11集成的Indy10(10.6.2.0)控件。

### 安装教程

1.  软件不需要安装，解压后可直接运行。

### 功能简介

1.  选定连接方式为 以太网TCP、以太网UDP、串口RTU、串口ASCII、Modbus RTU(TCP通讯)、Modbus RTU(UDP通讯)、Modbus ASCII(TCP通讯)、Modbus ASCII(UDP通讯)
2.  如果是串口RTU、ASCII：设定串口客户端串口及参数，点击打开，可选择不同的寄存器进行读写操作。
		如果是TCP、UDP、RTU(TCP|UDP)、ASCII(TCP|UDP)：设定客户端IP和端口（默认502），点击连接，连接成功后，可选择不同的寄存器进行读写操作。
3.  该软件作为Modbus 主站（即Mdobus 客户端）使用,可以读取线圈寄存器(Output Coil)、离散输入寄存器(Input Relay)、保持寄存器(Holding Register)、输入寄存器(Input Register)的数据，同时可以写入线圈寄存器(Output Coil)、保持寄存器(Holding Register)数据；数据可以按格式格式进行显示，为测试工作带来便利。
4.  Modbus指令的组成演示功能，根据选定的TCP、RTU、ASCII模式，自动显示Modbus指令的组成方式，同时也可以通过组成的指令进行操作。


### 最后更新
  v 6.2.20 (Build 2022/08/30)
  - 修改读取串口列表的方式,正确读取有效的串口

  v 6.2.19 (Build 2022/06/2)
  - 修改读取串口列表的方式,只显示有效的串口

  v 6.2.18 (Build 2022/05/11)
  - 修正串口通讯，接收到特定字符断流的bug。
  - 修改地址起始从0开始（原为1开始）

  v 6.2.17.53(Build 2022/04/01)
  - 修正Modbus ASCII 模式下功能码命令发送错误信息
  
  v 6.1.16.52(Build 2022/03/27)
  - 调整功能码页面，更好的理解modbus命令的组成方法
  - 修改功能码数据显示bug
  - 新增软件置顶功能

  v 6.0.15.50(Build 2022/03/25)
  - 调整界面，工作模式采用对话框进行修改
  - TCP、UDP新增IPv4和IPv6的连接方式选择
  - 新增自动连续读取数据
  - 新增TCP、UDP连接下的RTU、ASCII协议解析
  - 选择功能码组成命令功能
  - 新增自动连续发送命令

  - 5.2.13.49(Build 2021/12/18)
    - 修改浮点数显示方式，超出精度用科学计数方式显示
    - 数据列可调整宽度
    
  - v.5.1.12.46(Build 2020/12/11)
    - 双击快速修改线圈寄存器(Output Coil)
    - 线圈寄存器(Output Coil)添加HEX，BIN格式输入
    - 修改内部线程工作模式
    - 修改程序莫名退出的Bug

  - v.5.0.0.42(Build 2020/12/03)
    - 新增Modbus ASCII 工作模式
    - 新增收发时间显示，及时间格式
    - 新增收发数据显示不同颜色
    - 新增数据保存功能

  - v.4.1.2.39(Build 2020/12/02)
    - 新增数据显示类型：
      > 21: String 字符(AB)
    - 加大起始地址范围和Modbus地址范围

  - v.4.0.1.36(Build 2020/11/26)
    - 修改地址超限的bug

  - v.4.0.0.30(Build 2020/09/30)
    - 通过合并 TCP、UDP、RTU通讯方式，修改而来
  
  ### ModbusTCP Master 更新记录
  - v.3.1.0.29(Build 2020/09/24)
    - 修订线圈寄存器、离散输入寄存器数据显示
    - 新增0FH功能码功能
    - 完善各功能码反馈提示信息及异常信息
    - 新增本地端口参数

  - v.3.0.0.26(Build 2020/09/22)
    - 调整界面
    - 升级编译器版本.发布32位和64位程序
    - 修正数据显示的重大Bug  Bug  Bug！！

    - 完善各种数据换位格式,可选择以下显示方式
      - 1: Signed (2 Byte)有符号整数(AB)*
      - 2: Signed (2 Byte)有符号整数(BA)
      - 3: UnSigned(2 Byte)无符号整数(AB)*
      - 4: UnSigned(2 Byte)无符号整数(BA)
      - 5: LongWord (4 Byte)无符号整数(AB CD)*
      - 6: LongWord (4 Byte)无符号整数(CD AB)
      - 7: LongWord (4 Byte)无符号整数(BA DC)
      - 8: LongWord (4 Byte)无符号整数(DC BA)
      - 9: LongInt (4 Byte)有符号整数(AB CD)*
      - 10: LongInt (4 Byte)有符号整数(CD AB)
      - 11: LongInt (4 Byte)有符号整数(BA DC)
      - 12: LongInt (4 Byte)有符号整数(DC BA)
      - 13: Float(4 Byte)单精度浮点(AB CD)*
      - 14: Float(4 Byte)单精度浮点(CD AB)
      - 15: Float(4 Byte)单精度浮点(BA DC)
      - 16: Float(4 Byte)单精度浮点(DC BA)
      - 17: Double(8 byte)双精度浮点(AB CD EF GH)*
      - 18: Double(8 byte)双精度浮点(GH EF CD AB)
      - 19: Double(8 byte)双精度浮点(BA DC FE HG)
      - 20: Double(8 byte)双精度浮点(HG FE DC BA)

  - v.2.2.0.18(Build 2020/06/4)
    - 修正了几个BUG.

  - v.2.0.0.16(Build 2018/08/9)
    - 调整界面,并列显示所有数据格式
    - 新增数据显示格式,加入16位有符号整数,Bin,Double
    - 增加小数点位数设定,
    - 增加Float(Swap),Smalint(Swap),Double(Swap)

  - v.1.0.0.0(Build 2018/07/12)
    - 01H--读取线圈寄存器(Output Coil),位操作,可读单个或者多个
    - 02H--读取离散输入寄存器(Input Relay),位操作,可读单个或多个
    - 03H--读保持寄存器(Holding Register),字节指令操作，可读单个或者多个
    - 04H--读取输入寄存器(Input Register),字节指令操作，可读单个或者多个
    - 05H-写单个线圈寄存器(Output Coil),位操作,只能写一个
    - 06H--写单个保持寄存器(Holding Register),字节指令操作,只能写一个
    - 0FH--写多个线圈寄存器(Output Coil),字节指令操作,可写多个
    - 10H--写多个保持寄存器(Holding Register),字节指令操作,可写多个
    - 输入寄存器和保持寄存器的数据显示格式有：16位无符号整数、HEX、Float


### 参与贡献

  - 薛自影 xueziying@sina.com;
    - 支付宝:xueziying@hotmail.com
    - QQ :22236263
    - QQ群：537396941


