Я работаю над проектом с использованием контроллера и хочу прочитать состояние входных данных через Java, поэтому я добавил библиотеку jamod, поддерживающую протокол modbusTCP / IP.
Но когда вы запускаете программа оказывается это исключение. Что означает это исключение и как я могу прочитать состояние входов?
Это программа:
public static void main(String[] args) throws IOException {
//JAMOD
TCPMasterConnection con = null; //the connection
ModbusTCPTransaction trans = null; //the transaction
ReadInputDiscretesRequest req = null; //the request
ReadInputDiscretesResponse res = null; //the response
// Variables for storing the parameters
InetAddress addr = null; //the slave's address
int port = Modbus.DEFAULT_PORT;
int ref = 0; //the reference; offset where to start reading from
int count = 10; //the number of DI's to read
int repeat = 1; //a loop for repeating the transaction
try {
addr = InetAddress.getByName("192.168.1.5");
port = 50002;
// (TCP server port from the ChatServer example, run the ChatServer to connect to a random TCP server)
} catch(UnknownHostException e) {
System.out.println(e);
}
try {
con = new TCPMasterConnection(addr);
con.setPort(port);
con.connect();
} catch (Exception e) {
System.out.println(e);
}
//3. Prepare the request
req = new ReadInputDiscretesRequest(ref, count);
//4. Prepare the transaction
trans = new ModbusTCPTransaction(con);
trans.setRequest(req);
//5. Execute the transaction repeat times
int k = 0;
do {
try {
trans.execute();
res = (ReadInputDiscretesResponse) trans.getResponse();
System.out.println("Digital Inputs Status=" + res.getDiscretes().toString());
} catch(Exception e) {
System.out.println(e);
}
k++;
}
while (k < repeat);
//6. Close the connection
con.close();
System.out.println("done");
}
Исключение:
java.io.EOFException
at java.io.DataInputStream.readUnsignedByte(Unknown Source)
at net.wimpi.modbus.io.BytesInputStream.readUnsignedByte(BytesInputStream.java:153)
at net.wimpi.modbus.io.ModbusTCPTransport.readResponse(ModbusTCPTransport.java:182)
at net.wimpi.modbus.io.ModbusTCPTransaction.execute(ModbusTCPTransaction.java:193)
at Port.portscanner.main(portscanner.java:62)
net. wimpi.modbus.ModbusIOException: выполнение транзакции завершилось неудачно (попытка 3 раза) выполнена