Server ModbusTCP:无任何客户(主)文件的逆向工程

Server ModbusTCP:无任何客户(主)文件的逆向工程,server,reverse-engineering,simulator,modbus,pymodbus3,Server,Reverse Engineering,Simulator,Modbus,Pymodbus3,概念 我们有一个船舶模拟器(客户端)和Modbus控制器(服务器)我们的目标是在我的电脑上开发一个仿真器(如控制器)。但是我们没有关于客户端(仿真器)的信息 进步 首先,我们检查控制器(服务器)的实际输出。有7个不同的变量,如发动机电报、舵角等 其次,我检查了存储命令值的控制器的寄存器号从0到7。 已安装Modpoll软件的轮询服务器服务器: 我检查了注册表类型。那是一本登记簿 我编写了一个脚本,用pymodbus服务器开发一个类似控制器的服务器。我不仅可以在保持寄存器上写入从0到7的特

概念

我们有一个船舶模拟器(客户端)和Modbus控制器(服务器)我们的目标是在我的电脑上开发一个仿真器(如控制器)。但是我们没有关于客户端(仿真器)的信息

进步

  • 首先,我们检查控制器(服务器)的实际输出。有7个不同的变量,如发动机电报、舵角等
  • 其次,我检查了存储命令值的控制器的寄存器号从0到7。
已安装Modpoll软件的轮询服务器服务器:

  • 我检查了注册表类型。那是一本登记簿

  • 我编写了一个脚本,用pymodbus服务器开发一个类似控制器的服务器。我不仅可以在保持寄存器上写入从0到7的特定值,还可以进行适当的握手和对模拟器(客户端)的响应

问题

  • 客户端发送一个读取请求,请求的寄存器号为256这意味着我的服务器以零值响应,而不是从0到7写入寄存器的命令值。但问题是模拟器(客户端)在其图形用户界面上显示参数的变化
wireshark的屏幕截图-显示clinet(模拟器)从246发送带有寄存器编号的请求:

  • 客户端不仅发送读取请求,还发送写入请求,写入请求覆盖服务器(PC)写入的值
问题

  • 模拟器如何通过请求不同的寄存器号来接收命令信号?客户端必须从0发送带有寄存器号的请求才能接收命令信号。

  • 我无法理解为什么客户端在从服务器读取值之前先写入。此读取请求将覆盖服务器(pc)写入的值。服务器(控制器或pc)向模拟器发送命令信号。我不知道为什么模拟器首先在服务器上写一些值并读取它

  • 请就这个问题提出建议

    致意 Byeon seongsu