Twincat ADS, codigo java
Publicado por Adriano (1 intervención) el 25/05/2012 13:02:56
Hola a todos,
Estoy trabajando con la libreria TwinCAT ADS de beckhoff. Esta libreria funciona de manera que puedes comunicarte con las variables de un plc en java, para leerlas, escribirlas etc. En mi caso necesito leer una variable de un plc por medio de java y con Netbeans. Con el siguiente código se supone que puede hacerse pero no me aclaro bien, lo tengo adaptado ha mi caso pero me da el siguiente fallo.
may 25, 2012 12:41:37 PM ADS_communication.AdSWebServiceSample main
Grave: null
java.lang.NullPointerException
at ADS_communication.TcAdsSOAP.SOAPCall(TcAdsSOAP.java:264)
at ADS_communication.TcAdsSOAP.SOAPCall(TcAdsSOAP.java:199)
at ADS_communication.TcAdsSOAP.ReadBool(TcAdsSOAP.java:43)
at ADS_communication.AdSWebServiceSample.main(AdSWebServiceSample.java:20)
. Este es un código ejemplo que proporcionan ellos. Os lo dejo aquí por si alguien lo ha utilizado o sabe de el. A parte lo he copiado abajo. Su link es el siguiente:
http://infosys.beckhoff.com/espanol.php content=../content/1034/tcsample_webservice/html/webservice_sample_java.htm&id=11607
public class AdSWebServiceSample
{
public static void main(String args[])
{
TcAdsSOAP tcSoap = new TcAdsSOAP("http://192.168.0.2/TcAdsWebService/TcAdsWebService.dll");
try
{
String netId = "192.168.0.2.1.1";
int port = 801;
int offset = 16416;
/* write bool */
boolean testBool = true;
if (tcSoap.WriteBool(netId,port,offset,0,testBool))
System.out.println("Boolean "+testBool+" Written");
/* write int */
int testInt = 1234;
if (tcSoap.WriteInt(netId,port,offset,1,testInt))
System.out.println("Integer "+testInt+" Written");
/* write string */
String testString = "Hello Automation";
if (tcSoap.WriteString(netId,port,offset,3,testString ))
System.out.println("String "+testString+" Written");
/* read bool */
System.out.println(String.valueOf(tcSoap.ReadBool( netId,port,offset,0) ));
/* read int */
System.out.println(String.valueOf(tcSoap.ReadInt(n etId,port,offset,1) ));
/* read string */
System.out.println(tcSoap.ReadString(netId,port,of fset,3,81));
}
catch(Exception ex)
{
System.out.println(String.valueOf(ex));
}
}
}
Gracias y cualquier aportación es bienvenida
Un saludo
Estoy trabajando con la libreria TwinCAT ADS de beckhoff. Esta libreria funciona de manera que puedes comunicarte con las variables de un plc en java, para leerlas, escribirlas etc. En mi caso necesito leer una variable de un plc por medio de java y con Netbeans. Con el siguiente código se supone que puede hacerse pero no me aclaro bien, lo tengo adaptado ha mi caso pero me da el siguiente fallo.
may 25, 2012 12:41:37 PM ADS_communication.AdSWebServiceSample main
Grave: null
java.lang.NullPointerException
at ADS_communication.TcAdsSOAP.SOAPCall(TcAdsSOAP.java:264)
at ADS_communication.TcAdsSOAP.SOAPCall(TcAdsSOAP.java:199)
at ADS_communication.TcAdsSOAP.ReadBool(TcAdsSOAP.java:43)
at ADS_communication.AdSWebServiceSample.main(AdSWebServiceSample.java:20)
. Este es un código ejemplo que proporcionan ellos. Os lo dejo aquí por si alguien lo ha utilizado o sabe de el. A parte lo he copiado abajo. Su link es el siguiente:
http://infosys.beckhoff.com/espanol.php content=../content/1034/tcsample_webservice/html/webservice_sample_java.htm&id=11607
public class AdSWebServiceSample
{
public static void main(String args[])
{
TcAdsSOAP tcSoap = new TcAdsSOAP("http://192.168.0.2/TcAdsWebService/TcAdsWebService.dll");
try
{
String netId = "192.168.0.2.1.1";
int port = 801;
int offset = 16416;
/* write bool */
boolean testBool = true;
if (tcSoap.WriteBool(netId,port,offset,0,testBool))
System.out.println("Boolean "+testBool+" Written");
/* write int */
int testInt = 1234;
if (tcSoap.WriteInt(netId,port,offset,1,testInt))
System.out.println("Integer "+testInt+" Written");
/* write string */
String testString = "Hello Automation";
if (tcSoap.WriteString(netId,port,offset,3,testString ))
System.out.println("String "+testString+" Written");
/* read bool */
System.out.println(String.valueOf(tcSoap.ReadBool( netId,port,offset,0) ));
/* read int */
System.out.println(String.valueOf(tcSoap.ReadInt(n etId,port,offset,1) ));
/* read string */
System.out.println(tcSoap.ReadString(netId,port,of fset,3,81));
}
catch(Exception ex)
{
System.out.println(String.valueOf(ex));
}
}
}
Gracias y cualquier aportación es bienvenida
Un saludo
Valora esta pregunta


0