我正在将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

10-04 17:50