Conectando Free Pascal con un Robot ABB

Un servicio web (en inglés, web service o web services) es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos (fuente Wikipedia).

Los robots ABB de la generación Omnicore, disponen de un servicio web llamado Robot Web Services, el cual usa un servicio REST. Vamos a ver como hacer uso de este servicio con Free Pascal y Lazarus.

Para acceder a este servicio necesitas tener un robot ABB conectado en red. O bien podemos acceder a un controlador virtual, si usamos el programa RobotStudio de ABB.

Consideraciones iniciales

Para conectarse al robot, debemos usar una conexión Http segura. Además debemos enviar el usuario y clave como una autorización básica. Además el tipo de contenido, tanto el que enviamos como el que aceptamos debe ser del tipo: application/xhtml+xml;v=2.0

Teniendo todo lo anterior en cuenta, vamos a programar una pequeña aplicación que solicite la información al robot y nos la muestre por pantalla.

Programando

Crea un nuevo proyecto en Lazarus, que se a de tipo programa

Nuevo proyecto
Seleccionar tipo de proyecto

Para enviar una petición http necesitamos usar la unidad fphttpclient. Y para que sea segura añadiremos opensslsockets. Además la autentificación es tipo básico. Lo que significa que el usuario y la clave van codificados en Base64. Y para terminar necesitamos la unida sysutils, para gestionar las excepciones y preparar una cadena con el usuario y la clave. Así que la clausula Uses del programa será algo así:

Creamos una objeto Http, y un objeto TStringList. EL primero será el que usemos para lanzar la petición, y el segundo para contendrá la respuesta que nos devuelva el robot.

Ahora preparamos el usuario y la clave para enviar junto a la petición

Como el sistema de autentificación en del tipo básico, el formato es una cadena dónde se envía el usuario y la clave separados por dos puntos, y toda ella codificada en Base64.

Tanto, la autentificación, como la información sobre el tipo del contenido que enviamos como el que aceptamos se debe enviar en las cabeceras de la petición. Las cuales preparamos y luego realizamos la petición. Pasándole la dirección Ip, al objeto PeticionHttp, además de un objeto TStringList para contendrá la respuesta del robot.

Ahora solo queda procesar la respuesta. EL objeto PeticionHttp contiene el resultado de la petición. Nos devuelve un código http, además de unas cabeceras con información. Y el objeto Respuesta, nos devuelve el documento XML, con la respuesta del robot.

La respuesta, si todo ha ido bien, la respuesta es un archivo XML, y su contenido puede ser algo así.

Respuesta del robot

Os dejo el código completo del ejemplo.

Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.