使用 j2mod 的 Modbus Slave 存在非法地址问题

问题描述 投票:0回答:1

我正在使用 J2mod 库来满足我的 modbus 通信需求。我基本上想使用java服务创建modbus从站,它将由另一个java服务更新。为了模拟这个,我正在编写 2 个测试类,但是在从 master 读取数据时,我不断遇到非法地址问题。我肯定在从站创建中遗漏了一些东西,因为如果我使用像 ModbusSlaveSlim 这样的工具,它就可以正常工作。

ModbusSlaveApp

SimpleProcessImage spi = new SimpleProcessImage(1);
        spi.addRegister(47, new SimpleRegister(251));
        ModbusSlave slave = ModbusSlaveFactory.createTCPSlave(502, 5);
        slave.addProcessImage(1, spi);
        slave.open();
        ModbusTCPListener listener = new ModbusTCPListener(5, InetAddress.getByName("127.0.0.1"), false);
        listener.setPort(502);
        listener.setListening(true);
        listener.setTimeout(5000);// 5 Seconds

ModbusMasterApp

ModbusTCPMaster tcpMaster = new ModbusTCPMaster("127.0.0.1", 502);
tcpMaster.connect();
// TEST READ FOR PUMP SETTINGS
Register[] data1 = tcpMaster.readMultipleRegisters(1, 47, 2);

我的地址似乎正确,但仍然不断收到非法数据地址异常

java modbus modbus-tcp
1个回答
0
投票

看一下 j2mod 的测试用例,每个传输都有很多示例,即创建一个从站,然后从主站调用它。 如果您需要,很乐意提供帮助https://github.com/steveohara/j2mod

© www.soinside.com 2019 - 2024. All rights reserved.