Bonjour,
J'ai pour projet de communiquer par TCP/Ip avec un module électronique. je me suis donc tourné vers TCP/Modbus. J'ai donc joint à mon projet j2mod.jar.
j'arrive dans un premier temp à m'y connecter.
Si je suis sur le même réseaux que mon module ça fonctionne sinon ça affiche une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 byte[] ad = new byte[] {(byte)192, (byte)168, (byte)255, 1}; InetAddress addr = InetAddress.getByAddress(ad); TCPMasterConnection con = new TCPMasterConnection(addr); con.setPort(Modbus.DEFAULT_PORT); try { con.connect(); System.out.println("vous êtes connecté"); } catch (Exception e) { System.out.println(e.getMessage()); } finally { Thread.sleep(1000); con.close(); }
Donc jusque là j'ai saisie je pense le fonctionnement.
Ensuite j'essaye de mettre en place une transaction dont voici le code :
Cela me lève un exception NullPointerException sur la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 ModbusTCPTransaction trans = new ModbusTCPTransaction(); ReadInputDiscretesRequest req = new ReadInputDiscretesRequest(10, 10); req.setTransactionID(1); ReadInputDiscretesResponse resp = new ReadInputDiscretesResponse(); trans.setConnection(con); int fcode =req.getFunctionCode(); try { con.connect(); System.out.println("vous êtes connecté à "+ addr.getHostAddress()+" port : "+Modbus.DEFAULT_PORT); try { trans.setRequest(ModbusRequest.createModbusRequest(fcode)); trans.execute(); resp = (ReadInputDiscretesResponse) trans.getResponse(); System.out.println("Réponse : "+resp.getHexMessage()); } catch(Exception e) { System.out.println("erreur dans la tansaction (I/O) : "+e.getMessage()); } }catch(Exception e) { System.out.println("erreur niveau réseaux : "+e.getMessage()); } finally { System.out.println("Déconnexion ..."); Thread.sleep(500); con.close(); System.out.println("Déconnecté"); }
quelqu'un pourrais m'aiguiller.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 trans.execute();
Partager