com.serotonin.modbus4j.ModbusFactory Java Examples

The following examples show how to use com.serotonin.modbus4j.ModbusFactory. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Test2.java    From modbus4j with GNU General Public License v3.0 5 votes vote down vote up
public static void main(String[] args) throws Exception {
    IpParameters params = new IpParameters();
    params.setHost("localhost");
    params.setPort(502);

    ModbusMaster master = new ModbusFactory().createTcpMaster(params, false);
    master.init();

    System.out.println(master.testSlaveNode(5));

    // Define the point locator.
    BaseLocator<Number> loc = BaseLocator.holdingRegister(1, 0, DataType.TWO_BYTE_INT_UNSIGNED);

    // Set the point value
    master.setValue(loc, 1800);

    // Get the point value
    System.out.println(master.getValue(loc));
}
 
Example #2
Source File: Test3.java    From modbus4j with GNU General Public License v3.0 5 votes vote down vote up
public static void main(String[] args) throws Exception {
  	String commPortId = "COM1";
  	int baudRate = 9600;
  	int flowControlIn = 0;
int flowControlOut = 0; 
int dataBits = 8;
int stopBits = 2;
int parity = 0;
  	
  	TestSerialPortWrapper wrapper = new TestSerialPortWrapper(commPortId, baudRate, flowControlIn, flowControlOut, dataBits, stopBits, parity);

      ModbusMaster master = new ModbusFactory().createRtuMaster(wrapper);
      master.init();

      System.out.println(master.testSlaveNode(5));

      // Define the point locator.
      BaseLocator<Number> loc = BaseLocator.holdingRegister(1, 0, DataType.TWO_BYTE_INT_UNSIGNED);

      // Set the point value
      master.setValue(loc, 1800);

      // Get the point value
      System.out.println(master.getValue(loc));
  }
 
Example #3
Source File: ListenerTest2.java    From modbus4j with GNU General Public License v3.0 4 votes vote down vote up
public static void main(String[] args) throws Exception {
    ModbusFactory modbusFactory = new ModbusFactory();
    final ModbusSlaveSet listener = modbusFactory.createTcpSlave(false);
    listener.addProcessImage(getModscanProcessImage(1));
    listener.addProcessImage(getModscanProcessImage(2));

    // When the "listener" is started it will use the current thread to run. So, if an exception is not thrown
    // (and we hope it won't be), the method call will not return. Therefore, we start the listener in a separate
    // thread so that we can use this thread to modify the values.
    new Thread(new Runnable() {
        public void run() {
            try {
                listener.start();
            }
            catch (ModbusInitException e) {
                e.printStackTrace();
            }
        }
    }).start();

    while (true) {
        updateProcessImage1((BasicProcessImage) listener.getProcessImage(1));
        updateProcessImage2((BasicProcessImage) listener.getProcessImage(2));

        synchronized (listener) {
            listener.wait(5000);
        }
    }
}
 
Example #4
Source File: MasterTest.java    From modbus4j with GNU General Public License v3.0 3 votes vote down vote up
public static void main(String[] args) throws Exception {

    	String commPortId = "COM1";
    	int baudRate = 9600;
    	int flowControlIn = 0;
		int flowControlOut = 0; 
		int dataBits = 8;
		int stopBits = 2;
		int parity = 0;
    	
    	TestSerialPortWrapper wrapper = new TestSerialPortWrapper(commPortId, baudRate, flowControlIn, flowControlOut, dataBits, stopBits, parity);
        
        IpParameters ipParameters = new IpParameters();
        ipParameters.setHost("localhost");

        ModbusFactory modbusFactory = new ModbusFactory();

        // ModbusMaster master = modbusFactory.createRtuMaster(wrapper, false);
        // ModbusMaster master = modbusFactory.createAsciiMaster(wrapper);
        ModbusMaster master = modbusFactory.createTcpMaster(ipParameters, false);
        // ModbusMaster master = modbusFactory.createUdpMaster(ipParameters);

        try {
            master.init();
            int slaveId = 241;

            // readCoilTest(master, slaveId, 98, 200);
            // readCoilTest(master, slaveId, 99, 200);
            // readDiscreteInputTest(master, slaveId, 100, 2);
            // readDiscreteInputTest(master, slaveId, 449, 72);
            // readHoldingRegistersTest(master, slaveId, 9, 125);
            // readHoldingRegistersTest(master, slaveId, 9, 120);
            // readInputRegistersTest(master, slaveId, 0, 1);
            // readInputRegistersTest(master, slaveId, 14, 8);
            // writeCoilTest(master, slaveId, 1, true);
            // writeCoilTest(master, slaveId, 110, true);
            // writeRegisterTest(master, slaveId, 1, 1);
            // writeRegisterTest(master, slaveId, 14, 12345);
            // readExceptionStatusTest(master, slaveId);
            // reportSlaveIdTest(master, slaveId);
            // writeCoilsTest(master, slaveId, 50, new boolean[] {true, false, false, true, false});
            // writeCoilsTest(master, slaveId, 115, new boolean[] {true, false, false, true, false});
            // writeRegistersTest(master, slaveId, 300, new short[] {1, 10, 100, 1000, 10000, (short)65535});
            // writeRegistersTest(master, slaveId, 21, new short[] {1, 10, 100, 1000, 10000, (short)65535});
            // writeMaskRegisterTest(master, slaveId, 26, 0xf2, 0x25);

            // readCoilTest(master, slaveId, 9, 5);
            // readCoilTest(master, slaveId, 10, 5);
            // readDiscreteInputTest(master, slaveId, 10, 6);
            // readDiscreteInputTest(master, slaveId, 10, 5);
            // readHoldingRegistersTest(master, slaveId, 9, 7);
            // readHoldingRegistersTest(master, slaveId, 10, 5);
            // readInputRegistersTest(master, slaveId, 0, 1);
            // readInputRegistersTest(master, slaveId, 10, 5);
            // writeCoilTest(master, slaveId, 8, true);
            // writeCoilTest(master, slaveId, 11, true);
            // writeRegisterTest(master, slaveId, 1, 1);
            // writeRegisterTest(master, slaveId, 14, 12345);
            // readExceptionStatusTest(master, slaveId);
            // reportSlaveIdTest(master, slaveId);
            // writeCoilsTest(master, slaveId, 11, new boolean[] {false, true, false, false, true});
            // writeCoilsTest(master, slaveId, 10, new boolean[] {false, true, false, false, true});
            // writeRegistersTest(master, slaveId, 11, new short[] {(short)65535, 1000, 100, 10, 1});
            // writeRegistersTest(master, slaveId, 10, new short[] {(short)65535, 1000, 100, 10, 1});
            // writeMaskRegisterTest(master, slaveId, 9, 0xf2, 0x25);
            // writeMaskRegisterTest(master, slaveId, 10, 0xf2, 0x25);

            // Automatic WriteMaskRegister failover test
            // ModbusLocator locator = new ModbusLocator(slaveId, RegisterRange.HOLDING_REGISTER, 15, (byte)2);
            // System.out.println(master.getValue(locator));
            // master.setValue(locator, true);
            // System.out.println(master.getValue(locator));
            // master.setValue(locator, false);
            // System.out.println(master.getValue(locator));

            // BatchRead<String> batch = new BatchRead<String>();
            // batch.addLocator("hr1", new ModbusLocator(31, RegisterRange.HOLDING_REGISTER, 80,
            // DataType.TWO_BYTE_BCD));
            // batch.addLocator("hr2", new ModbusLocator(31, RegisterRange.HOLDING_REGISTER, 81,
            // DataType.FOUR_BYTE_BCD));
            // BatchResults<String> results = master.send(batch);
            // System.out.println(results.getValue("hr1"));
            // System.out.println(results.getValue("hr2"));

            BaseLocator<Number> locator = BaseLocator.holdingRegister(slaveId, 50, DataType.EIGHT_BYTE_INT_UNSIGNED);
            master.setValue(locator, 10000000);
            System.out.println(master.getValue(locator));
        }
        finally {
            master.destroy();
        }
    }
 
Example #5
Source File: ReadSerialTest.java    From modbus4j with GNU General Public License v3.0 3 votes vote down vote up
public static void main(String[] args) throws Exception {

    	String commPortId = "COM1";
    	int baudRate = 9600;
    	int flowControlIn = 0;
		int flowControlOut = 0; 
		int dataBits = 8;
		int stopBits = 2;
		int parity = 0;
    	
    	TestSerialPortWrapper wrapper = new TestSerialPortWrapper(commPortId, baudRate, flowControlIn, flowControlOut, dataBits, stopBits, parity);
        ModbusMaster master = new ModbusFactory().createRtuMaster(wrapper);
        master.setTimeout(200);
        master.setRetries(1);
        master.init();

        for (int i = 1; i < 5; i++) {
            long start = System.currentTimeMillis();
            System.out.print("Testing " + i + "... ");
            System.out.println(master.testSlaveNode(i));
            System.out.println("Time: " + (System.currentTimeMillis() - start));
        }

        // try {
        // System.out.println(master.send(new ReadHoldingRegistersRequest(1, 0, 1)));
        // }
        // catch (Exception e) {
        // e.printStackTrace();
        // }

        // try {
        // // ReadCoilsRequest request = new ReadCoilsRequest(2, 65534, 1);
        // ReadHoldingRegistersResponse response = (ReadHoldingRegistersResponse) master
        // .send(new ReadHoldingRegistersRequest(2, 0, 1));
        // System.out.println(response);
        // }
        // catch (Exception e) {
        // e.printStackTrace();
        // }

        // System.out.println(master.scanForSlaveNodes());

        master.destroy();
    }
 
Example #6
Source File: MaxRegisterTest.java    From modbus4j with GNU General Public License v3.0 3 votes vote down vote up
public static void main(String[] args) {
    BatchRead<Integer> batch;
    int index;
    boolean contiguous = true;

    ModbusMaster master = new ModbusFactory().createUdpMaster(null);
    master.setMaxReadBitCount(100);
    master.setMaxReadRegisterCount(11);

    batch = new BatchRead<Integer>();
    index = 0;
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 0, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 50, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 100, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 150, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 200, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 250, DataType.CHAR, 50));
    batch.setContiguousRequests(contiguous);
    batch.getReadFunctionGroups(master);

    batch = new BatchRead<Integer>();
    index = 0;
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 0, DataType.CHAR, 49));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 50, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 100, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 150, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 200, DataType.CHAR, 49));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 250, DataType.CHAR, 50));
    batch.setContiguousRequests(contiguous);
    batch.getReadFunctionGroups(master);

    batch = new BatchRead<Integer>();
    index = 0;
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 0, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 50, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 100, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 100, DataType.CHAR, 25));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 150, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 200, DataType.CHAR, 50));
    batch.addLocator(index++, new StringLocator(1, RegisterRange.HOLDING_REGISTER, 250, DataType.CHAR, 50));
    batch.setContiguousRequests(contiguous);
    batch.getReadFunctionGroups(master);
}
 
Example #7
Source File: MasterTest2.java    From modbus4j with GNU General Public License v3.0 3 votes vote down vote up
public static void main(String[] args) throws Exception {
    IpParameters ipParameters = new IpParameters();
    ipParameters.setHost("localhost");
    // ipParameters.setHost("99.247.60.96");
    // ipParameters.setHost("193.109.41.121");
    //ipParameters.setHost("141.211.194.29");
    ipParameters.setPort(502);

    ModbusFactory modbusFactory = new ModbusFactory();
    // ModbusMaster master = modbusFactory.createTcpMaster(ipParameters, true);
    ModbusMaster master = modbusFactory.createTcpMaster(ipParameters, false);
    master.setTimeout(4000);
    master.setRetries(1);

    BatchRead<Integer> batch = new BatchRead<Integer>();
    //        batch.addLocator(0, new ModbusLocator(1, RegisterRange.COIL_STATUS, 2048, DataType.BINARY));
    //        batch.addLocator(1, new ModbusLocator(1, RegisterRange.COIL_STATUS, 2049, DataType.BINARY));
    //        batch.addLocator(2, new ModbusLocator(1, RegisterRange.COIL_STATUS, 2050, DataType.BINARY));
    //        batch.addLocator(3, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3584, DataType.BINARY));
    //        batch.addLocator(4, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3585, DataType.BINARY));
    //        batch.addLocator(5, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3648, DataType.BINARY));
    //        batch.addLocator(6, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3649, DataType.BINARY));
    //        batch.addLocator(7, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3650, DataType.BINARY));
    //        batch.addLocator(8, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3651, DataType.BINARY));
    //        batch.addLocator(9, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3652, DataType.BINARY));
    //        batch.addLocator(10, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3653, DataType.BINARY));
    //        batch.addLocator(11, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3654, DataType.BINARY));
    //        batch.addLocator(12, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3661, DataType.BINARY));
    //        batch.addLocator(13, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3662, DataType.BINARY));
    //        batch.addLocator(15, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3665, DataType.BINARY));
    //        batch.addLocator(16, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3668, DataType.BINARY));
    //        batch.addLocator(18, new ModbusLocator(1, RegisterRange.COIL_STATUS, 3969, DataType.BINARY));

    batch.addLocator(0, BaseLocator.holdingRegister(5, 80, DataType.TWO_BYTE_INT_SIGNED));
    batch.addLocator(1, BaseLocator.holdingRegister(5, 202, DataType.EIGHT_BYTE_INT_SIGNED));

    try {
        master.init();

        while (true) {
            batch.setContiguousRequests(false);
            BatchResults<Integer> results = master.send(batch);
            System.out.println(results.getValue(0));
            System.out.println(results.getValue(1));

            Thread.sleep(2000);
        }
    }
    catch (ErrorResponseException e) {
        System.out.println(e.getErrorResponse().getExceptionMessage());
    }
    finally {
        master.destroy();
    }
}
 
Example #8
Source File: ReadTest.java    From modbus4j with GNU General Public License v3.0 3 votes vote down vote up
public static void main(String[] args) throws Exception {
    IpParameters ipParameters = new IpParameters();
    // ipParameters.setHost("99.247.60.96");
    // ipParameters.setHost("193.109.41.121");
    //      ipParameters.setHost("10.241.224.195");
    ipParameters.setHost("172.19.40.10");
    ipParameters.setPort(502);
    ipParameters.setEncapsulated(false);

    ModbusFactory modbusFactory = new ModbusFactory();
    // ModbusMaster master = modbusFactory.createTcpMaster(ipParameters, true);
    ModbusMaster master = modbusFactory.createTcpMaster(ipParameters, false);
    master.setTimeout(8000);
    master.setRetries(0);
    master.init();

    //        for (int i = 1; i < 5; i++) {
    //            System.out.print("Testing " + i + "... ");
    //            System.out.println(master.testSlaveNode(i));
    //        }

    NumericLocator el = new NumericLocator(1, RegisterRange.HOLDING_REGISTER, 22, DataType.FOUR_BYTE_FLOAT);
    NumericLocator fjk = new NumericLocator(1, RegisterRange.HOLDING_REGISTER, 36, DataType.FOUR_BYTE_FLOAT);

    for (int i = 0; i < 3; i++) {
        try {
            System.out.println("el: " + master.getValue(el));
            System.out.println("fjk: " + master.getValue(fjk));
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

    // try {
    // // ReadCoilsRequest request = new ReadCoilsRequest(2, 65534, 1);
    // ReadHoldingRegistersResponse response = (ReadHoldingRegistersResponse) master
    // .send(new ReadHoldingRegistersRequest(2, 0, 1));
    // System.out.println(response);
    // }
    // catch (Exception e) {
    // e.printStackTrace();
    // }

    // System.out.println(master.scanForSlaveNodes());

    master.destroy();
}
 
Example #9
Source File: BatchTest.java    From modbus4j with GNU General Public License v3.0 3 votes vote down vote up
public static void main(String[] args) throws Exception {
    IpParameters tcpParameters = new IpParameters();
    tcpParameters.setHost("localhost");

    ModbusFactory modbusFactory = new ModbusFactory();
    ModbusMaster master = modbusFactory.createTcpMaster(tcpParameters, true);

    try {
        BatchRead<String> batchRead = new BatchRead<String>();
        int slaveId = 31;
        batchRead.addLocator("00011 sb true", BaseLocator.coilStatus(slaveId, 10));
        batchRead.addLocator("00012 sb false", BaseLocator.coilStatus(slaveId, 11));
        batchRead.addLocator("00013 sb true", BaseLocator.coilStatus(slaveId, 12));
        batchRead.addLocator("00014 sb true", BaseLocator.coilStatus(slaveId, 13));

        batchRead.addLocator("10011 sb false", BaseLocator.inputStatus(slaveId, 10));
        batchRead.addLocator("10012 sb false", BaseLocator.inputStatus(slaveId, 11));
        batchRead.addLocator("10013 sb true", BaseLocator.inputStatus(slaveId, 12));
        batchRead.addLocator("10014 sb false", BaseLocator.inputStatus(slaveId, 13));

        batchRead.addLocator("40016-0 sb true", BaseLocator.holdingRegisterBit(slaveId, 40016, 0));
        batchRead.addLocator("40016-1 sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 1));
        batchRead.addLocator("40016-2 sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 2));
        batchRead.addLocator("40016-3 sb true", BaseLocator.holdingRegisterBit(slaveId, 40016, 3));
        batchRead.addLocator("40016-4 sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 4));
        batchRead.addLocator("40016-5 sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 5));
        batchRead.addLocator("40016-6 sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 6));
        batchRead.addLocator("40016-7 sb true", BaseLocator.holdingRegisterBit(slaveId, 40016, 7));
        batchRead.addLocator("40016-8 sb true", BaseLocator.holdingRegisterBit(slaveId, 40016, 8));
        batchRead.addLocator("40016-9 sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 9));
        batchRead.addLocator("40016-a sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 10));
        batchRead.addLocator("40016-b sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 11));
        batchRead.addLocator("40016-c sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 12));
        batchRead.addLocator("40016-d sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 13));
        batchRead.addLocator("40016-e sb true", BaseLocator.holdingRegisterBit(slaveId, 40016, 14));
        batchRead.addLocator("40016-f sb false", BaseLocator.holdingRegisterBit(slaveId, 40016, 15));

        batchRead.addLocator("30016-0 sb true", BaseLocator.inputRegisterBit(slaveId, 30016, 0));
        batchRead.addLocator("30016-1 sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 1));
        batchRead.addLocator("30016-2 sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 2));
        batchRead.addLocator("30016-3 sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 3));
        batchRead.addLocator("30016-4 sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 4));
        batchRead.addLocator("30016-5 sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 5));
        batchRead.addLocator("30016-6 sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 6));
        batchRead.addLocator("30016-7 sb true", BaseLocator.inputRegisterBit(slaveId, 30016, 7));
        batchRead.addLocator("30016-8 sb true", BaseLocator.inputRegisterBit(slaveId, 30016, 8));
        batchRead.addLocator("30016-9 sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 9));
        batchRead.addLocator("30016-a sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 10));
        batchRead.addLocator("30016-b sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 11));
        batchRead.addLocator("30016-c sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 12));
        batchRead.addLocator("30016-d sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 13));
        batchRead.addLocator("30016-e sb false", BaseLocator.inputRegisterBit(slaveId, 30016, 14));
        batchRead.addLocator("30016-f sb true", BaseLocator.inputRegisterBit(slaveId, 30016, 15));

        batchRead.addLocator("40017 sb -1968",
                BaseLocator.holdingRegister(slaveId, 40017, DataType.TWO_BYTE_INT_SIGNED));
        batchRead.addLocator("40018 sb -123456789",
                BaseLocator.holdingRegister(slaveId, 40018, DataType.FOUR_BYTE_INT_SIGNED));
        batchRead.addLocator("40020 sb -123456789",
                BaseLocator.holdingRegister(slaveId, 40020, DataType.FOUR_BYTE_INT_SIGNED_SWAPPED));
        batchRead.addLocator("40022 sb 1968.1968",
                BaseLocator.holdingRegister(slaveId, 40022, DataType.FOUR_BYTE_FLOAT));
        batchRead.addLocator("40024 sb -123456789",
                BaseLocator.holdingRegister(slaveId, 40024, DataType.EIGHT_BYTE_INT_SIGNED));
        batchRead.addLocator("40028 sb -123456789",
                BaseLocator.holdingRegister(slaveId, 40028, DataType.EIGHT_BYTE_INT_SIGNED_SWAPPED));
        batchRead.addLocator("40032 sb 1968.1968",
                BaseLocator.holdingRegister(slaveId, 40032, DataType.EIGHT_BYTE_FLOAT));

        batchRead.addLocator("30017 sb -1968 tc",
                BaseLocator.inputRegister(slaveId, 30017, DataType.TWO_BYTE_INT_UNSIGNED));
        batchRead.addLocator("30018 sb -123456789 tc",
                BaseLocator.inputRegister(slaveId, 30018, DataType.FOUR_BYTE_INT_UNSIGNED));
        batchRead.addLocator("30020 sb -123456789 tc",
                BaseLocator.inputRegister(slaveId, 30020, DataType.FOUR_BYTE_INT_UNSIGNED_SWAPPED));
        batchRead.addLocator("30022 sb 1968.1968",
                BaseLocator.inputRegister(slaveId, 30022, DataType.FOUR_BYTE_FLOAT_SWAPPED));
        batchRead.addLocator("30024 sb -123456789 tc",
                BaseLocator.inputRegister(slaveId, 30024, DataType.EIGHT_BYTE_INT_UNSIGNED));
        batchRead.addLocator("30028 sb -123456789 tc",
                BaseLocator.inputRegister(slaveId, 30028, DataType.EIGHT_BYTE_INT_UNSIGNED_SWAPPED));
        batchRead.addLocator("30032 sb 1968.1968",
                BaseLocator.inputRegister(slaveId, 30032, DataType.EIGHT_BYTE_FLOAT_SWAPPED));

        master.init();

        BatchResults<String> results = master.send(batchRead);

        System.out.println(results);
    }
    finally {
        master.destroy();
    }
}
 
Example #10
Source File: ListenerTest.java    From modbus4j with GNU General Public License v3.0 2 votes vote down vote up
public static void main(String[] args) throws Exception {
    // SerialParameters params = new SerialParameters();
    // params.setCommPortId("COM1");
    // params.setPortOwnerName("dufus");
    // params.setBaudRate(9600);

    // IpParameters params = new IpParameters();
    // params.setHost(host)

    ModbusFactory modbusFactory = new ModbusFactory();
    // ModbusListener listener = modbusFactory.createRtuListener(processImage, 31, params, false);
    // ModbusListener listener = modbusFactory.createAsciiListener(processImage, 31, params);
    final ModbusSlaveSet listener = modbusFactory.createTcpSlave(false);
    // ModbusSlave listener = modbusFactory.createUdpSlave(processImage, 31);

    // Add a few slave process images to the listener.
    listener.addProcessImage(getModscanProcessImage(1));
    //        listener.addProcessImage(getModscanProcessImage(2));
    listener.addProcessImage(getModscanProcessImage(3));
    //        listener.addProcessImage(getModscanProcessImage(5));
    listener.addProcessImage(getModscanProcessImage(9));

    // When the "listener" is started it will use the current thread to run. So, if an exception is not thrown
    // (and we hope it won't be), the method call will not return. Therefore, we start the listener in a separate
    // thread so that we can use this thread to modify the values.
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                listener.start();
            }
            catch (ModbusInitException e) {
                e.printStackTrace();
            }
        }
    }).start();

    while (true) {
        synchronized (listener) {
            listener.wait(200);
        }

        for (ProcessImage processImage : listener.getProcessImages())
            updateProcessImage((BasicProcessImage) processImage);
    }
}