我正在将JAMOD与android一起使用,以从modbus读取数据。
我有一个从属和一个主类。(从属在netbeans中运行)
尝试连接android apk并获得标题中的错误消息。
您能帮我为什么或如何纠正我的应用程序吗?
import net.wimpi.modbus.Modbus;
import net.wimpi.modbus.ModbusCoupler;
import net.wimpi.modbus.net.ModbusTCPListener;
import net.wimpi.modbus.procimg.*;
public class Modbus_slave_server {
public static void main(String[] args) {
ModbusTCPListener listener = null;
SimpleProcessImage spi = new SimpleProcessImage();
int port = Modbus.DEFAULT_PORT;
if (Modbus.debug) {
System.out.println("jModbus Modbus TCP Slave");
}
if (args != null && args.length >= 1) {
port = Integer.parseInt(args[0]);
}
try {
//2. Prepare a process image
spi = new SimpleProcessImage();
spi.addInputRegister(new SimpleInputRegister(635)); //érték beállítás
//3. Set the image on the coupler
ModbusCoupler.getReference().setProcessImage(spi);
ModbusCoupler.getReference().setMaster(false);
ModbusCoupler.getReference().setUnitID(1);
//3. create a listener with 3 threads in pool
if (Modbus.debug) {
System.out.println("Listening...");
}
listener = new ModbusTCPListener(1);
listener.setPort(port);
listener.start();
} catch (Exception ex) {
ex.printStackTrace();
}
}//main
}
最佳答案
我在C#(NModbus)中将liblary用于modbus,并且SlaveException表示您的从属设备返回错误:http://www.simplymodbus.ca/exceptions.htm
错误代码2表示:
查询中收到的数据地址不是允许的地址
奴隶。更具体地说,参考编号和
传输长度无效。对于具有100个寄存器的控制器,
偏移量为96,长度为4的请求将成功执行,
偏移量96和长度5将产生异常02。
http://www.kepware.com/Support_Center/SupportDocuments/KTAN90006_Modbus_Exception_Codes.pdf