Java J2Mod基本主从问题
我正在尝试使用Java J2Mod基本主从问题,java,modbus,Java,Modbus,我正在尝试使用j2mod制作一个Modbus从站和主站(它的版本是1.0.6 tho,因此与另一个程序兼容) 我确实有一些关于我在网上找到的代码的一般性问题 我几乎没有找到任何有用的文档,所以我有点不知所措 TcpMaster this.addr = InetAddress.getByName("127.0.0.1"); conn = new TCPMasterConnection(addr); conn.setPort(port); con
j2mod
制作一个Modbus从站和主站(它的版本是1.0.6 tho,因此与另一个程序兼容)
我确实有一些关于我在网上找到的代码的一般性问题
我几乎没有找到任何有用的文档,所以我有点不知所措
TcpMaster
this.addr = InetAddress.getByName("127.0.0.1");
conn = new TCPMasterConnection(addr);
conn.setPort(port);
conn.connect();
req = new ReadInputDiscretesRequest(ref, count);
trans = new ModbusTCPTransaction(conn);
trans.setRequest(req);
trans.execute();
res = (ReadInputDiscretesResponse) trans.getResponse();
TcpSlave
spi = new SimpleProcessImage();
spi.addDigitalOut(bitOut);
ModbusCoupler.getReference().setProcessImage(spi);
ModbusCoupler.getReference().setMaster(false);
ModbusCoupler.getReference().setUnitID(1);
addr = InetAddress.getByName("127.0.0.1");
listener = new ModbusTCPListener(3);
listener.setPort(port);
listener.setAddress(addr);
listener.setUnit(1);
listener.setListening(true);
listener.run();
所以现在我在trans.execute()上得到一个非法的数据地址错误我的问题是: 请求上的两个参数究竟是什么
req = new ReadInputDiscretesRequest(ref, count);
我应该在哪里定义Master必须访问的
UnitId
(在Master类中)。我希望我现在就来分享我的想法不会太晚。我有时也会感到困惑
对于您的第一个问题——“请求中的两个参数究竟是什么?”:
在标准Modbus设备上,数据存储在4个表中,每个表具有9999个值:
- 事务ID-2字节
- 协议ID-2字节(对于Modbus为0000)
- 长度-2字节-显示后面的字节数(包括单元ID)
- 单元ID-1字节
希望你正在进步 首先谢谢你的支持,我自己解决了一些问题。我现在至少能读写线圈了。您关于数据存储方式的解释对我很有用,不过,谢谢:)