我在Java中使用modbus4j.jar拥有以下示例:

public class Modbus {
    public static void main(String[] args) throws Exception {
        ModbusFactory factory = new ModbusFactory();
        IpParameters params = new IpParameters();
        params.setHost("127.0.0.1");
        params.setPort(502);
        params.setEncapsulated(true);



  ModbusMaster主站= factory.createTcpMaster(params,false);


        // master.setRetries(4);
        master.setTimeout(2000);
        master.setRetries(0);

        long start = System.currentTimeMillis();
        try {
            master.init();
            for (int i = 0; i < 3; i++) {
                System.out.println(master.getValue(127, RegisterRange.HOLDING_REGISTER, 1220,
                        DataType.TWO_BYTE_INT_UNSIGNED));
            }
        }
        finally {
            master.destroy();
        }

        System.out.println("Took: " + (System.currentTimeMillis() - start) + "ms");
    }


而且我无法运行它,因为我收到以下错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: com/serotonin/messaging/MessagingExceptionHandler
    at com.serotonin.modbus4j.ModbusFactory.createTcpMaster(ModbusFactory.java:27)
    at modbus.Modbus.main(Modbus.java:20)
Caused by: java.lang.ClassNotFoundException: com.serotonin.messaging.MessagingExceptionHandler
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 2 more
Java Result: 1


这是从sourcfoge下载的样本。
有人可以给我一点帮助或一些建议吗,我做错了什么?
还是可以帮助我选择最适合Java(Android)modbus通信的库?

最佳答案

您应该使用JAMOD
并使用本教程:
example
和这个从属服务器:
server

希望对您有所帮助!

09-12 16:26