FOROS PROFESIONALES
WINDEV
,
WEBDEV
y
WINDEV Mobile
Inicio
|
Mensajes recientes
|
Conéctese...
|
Desconectar
|
Español
Inicio
→
WINDEV Mobile 2024
→
Lecture modbus TCP/IP avec un automate
Lecture modbus TCP/IP avec un automate
Iniciado por SamD, 14,ene. 2019 20:27 - No hay respuesta
Conéctese…
SamD
#1
Publicado el 14,enero 2019 - 20:27
Bonjour,
Pour une fois je ne pose pas une question mais je propose une solution
Vous trouverez ci-dessous le code java pour lire un mot en modbus TCP/IP :
import net.wimpi.modbus.Modbus;
import net.wimpi.modbus.ModbusException;
import net.wimpi.modbus.ModbusIOException;
import net.wimpi.modbus.ModbusSlaveException;
import net.wimpi.modbus.io.ModbusTCPTransaction;
import net.wimpi.modbus.msg.ReadInputRegistersRequest;
import net.wimpi.modbus.msg.ReadInputRegistersResponse;
import net.wimpi.modbus.msg.WriteSingleRegisterRequest;
import net.wimpi.modbus.net.TCPMasterConnection;
import net.wimpi.modbus.procimg.SimpleRegister;
import java.net.InetAddress;
import java.net.UnknownHostException;
public static void Lecture_auto ()
{
// Integer samInt = 0;
// String toto = " ";
/* The important instances of the classes mentioned before */
TCPMasterConnection con = null; //la connection
ModbusTCPTransaction trans = null; //la transaction
ReadInputRegistersRequest rrq = null;// requete registre
ReadInputRegistersResponse rrs = null;// reponse registre
//ecriture
WriteSingleRegisterRequest WriteReq = null;
//WriteSingleRegisterResponse WriteRes = null;
SimpleRegister MyReg = new SimpleRegister(1);
// /* Variables param�tres */
InetAddress addr = null; //variable adresse esclave
try {
addr = InetAddress.getByName("192.168.30.90");//passage texte en adresse
} catch (UnknownHostException e) {
// TODO Bloc catch genere automatiquement
e.printStackTrace();
}
//D�finition du port - 502 pour mon automate
int port = Modbus.DEFAULT_PORT;
port = 502;
//Offset d�part pour le registre - 100 pour moi
int ref = 0;
ref = 100;
// Nombre de mot lu
int count = 0;
count = 1;
//Boucle de r�p�tition de la transaction
int repeat = 1;
//2. Ouverture de la connection � l'automate
con = new TCPMasterConnection(addr);
con.setPort(port);
try {
con.connect();
// System.out.println("Connection OK");
} catch (Exception e) {
// TODO Bloc catch g�n�r� automatiquement
e.printStackTrace();
}
//3. D�finition de la requ�te registre
rrq = new ReadInputRegistersRequest(ref, count);
//4. Preparation de la transation
trans = new ModbusTCPTransaction(con);
trans.setRequest(rrq);
// 5. Execution de la lecture
int k = 0;
int val_auto = 0;
String txt_auto = "";
do {
try {
trans.execute();
} catch (ModbusIOException e) {
// TODO Bloc catch g�n�r� automatiquement
e.printStackTrace();
} catch (ModbusSlaveException e) {
// TODO Bloc catch g�n�r� automatiquement
e.printStackTrace();
} catch (ModbusException e) {
// TODO Bloc catch g�n�r� automatiquement
e.printStackTrace();
}
rrs = (ReadInputRegistersResponse) trans.getResponse();
for (int n=0; n < rrs.getWordCount(); n++){
val_auto = rrs.getRegisterValue(n);
txt_auto = String.valueOf(val_auto);
appelProcedureWL("Rec_auto", txt_auto);
}
k++;
} while (k < repeat);
//6. Fermeture de la connection
con.close();
}
Il faudra bien intégrer la bibliothèque jamod.jar
Bonne soirée,
Sam
Informar
0
0
→ Volver a WINDEV Mobile 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (versiones precedentes)
WEBDEV (versiones precedentes)
WINDEV Mobile (versiones precedentes)
Reports & Queries
Irrelevante
Herramientas
Français
English
Español
Portuguesa
Fermer cette fenêtre
Búsqueda Tipo
Sólo temas
Todos los mensajes
Periodo Buscar
Cualquier fecha
Última hora
Última 24 horas
Última semana
Último mes
Último año
Cancelar
Vista previa del mensaje
Añadiendo una imagen
Importar una imagen desde una URL
Enviar una imagen desde un archivo de su disco
Arrastrar un archivo o click en "Examinar..."
o
Cancelar
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Texto