Hace tiempo ando viendo el tema de poder monitorear variables de proceso importantes desde un iphone, ipad o cualquier otro teléfono o tablet android, lo primero que hice fue buscar en las respectivas tiendas de aplicaciones de las respectivas plataformas móviles y lo que halle dentro la categoría de aplicaciones gratuitas no me gusto, le faltaba bastante para lo que yo queria, no había algo genérico que se pudiera utilizar en distintos PLCs ni dispositivos, es decir habia apps especificas para modelos específicos pero tiene una u otra falla y su interfaz era muy cruda y estaban mas pensados mas en el lado de vista del desarrollador mas que en el lado de una persona de mantenimiento, otra de las cosas que no me gusto fue el excesivo precio de algunas apps de pago, lo cual a mi entender no justifica tanto así para cobrar un precio elevado por una aplicación móvil, bueno continuando con mi tema yo me dispuse a programar y diseñar una alternativa a esta necesidad mia de contar con una aplicación móvil en la cual yo pueda ser capaz de monitorear mas de una marca de PLC al mismo tiempo, voy a descartar los protocolos en base a rs232, rs 422 y rs485 y me concentrare mas en los que están basados mas en ethernet.
Lo primero que se me vino a la mente fue algo que ya había realizado antes en visual basic .Net y se basada en tener una aplicación que envíe y reciba paquetes tcp, y poco a poco ir armando un propio protocolo, bueno particularmente yo lo vi bastante largo y le dedique bastante tiempo a la investigación y luego a ponerlo en funcionamiento y mas tarde venderlo , yo me di cuenta de algo que viéndolo desde desde otro punto de vista, no justificaba el tiempo invertido y el esfuerzo de realizar otro protocolo a la larga lista que hay y no todos los PLC iban a ser compatibles con mi protocolo inventado, entonces esa opción quedo descartada para mi aplicación movil, entonces lo siguiente que se me ocurrió fue la realización de la aplicación con una base en el protocolo modbus TCP, el cual es la continuación del conocido modbus RTU, el cual fue uno de los primeros protocolos en contar con las especificaciones abiertas y uno de los de mayor difusión en el ambiente industrial, no tanto para decir que es el protocolo de facto pero si es ampliamente usado, hasta tiene su propio numero de puerto dentro de la lista de protocolos oficiales ( puerto 502), entonces esta podría una muy buena opción, con este protocolo podría llegar a mas de solo una marca de PLC sino a muchos mas, esta posibilidad es muy factible desde mi punto de vista.
Luego queda el nuestro protocolo llamado Profinet el cual es un protocolo pensado para estar sobre la misma red ethernet que conocemos pero nació con un enfoque de poder manejar cientos y miles de dispositivos compatible, tambien da soporte para equipos antiguos como HART, profibus, ente otros y eso me llamo también bastante la atención, y muchos fabricantes de PLC ya subieron al tren de Profinet, como GE, Siemens, Yokogawa, Allen Bradley, etc; este protocolo tiene una característica que tiene es su facilidad de uso, y soporta el protocolo wifi y muchos mas, ofrece tiempos de respuesta desde los segundos hasta los milisegundos.
Ahora la pregunta va a que opción es la adecuada, decidi que lo mejor era empezar por el protocolo que mejor conocía y ese es modbus TCP , entonces me dispuse a ver que opciones tenia para poder implementar en mi aplicación movil dicho protocolo. Después de buscar encontre un proyecto libre el cual estaba enfocado en modbus rtu y tcp, entonces lo que hice fue descargarme el código que estaba en C, pero para la plataforma que se iba a desarrollar habia que compilar correctamente los códigos, según si usas Windows, Mac o Linux; una vez compilado ha que realizar pruebas en consola, y funcionaron, ahora ya con esa información es hora de implementar en una aplicación y eso es lo que estuve haciendo estas semanas, el lenguaje que uso es Objetive-C el cual permitirá poder implementar una aplicación con comunicación modbus TCP de facil uso para un usuario común y corriente de planta, sin tener conocimientos profundos del protocolo ni como funciona, es mas, en ninguna momento sabra que se esta usando el protocolo modbus TCP ; porque eso no le interesa, a quien le interesa eso es al que programa el PLC, el desarrollador sera que tendra ese trabajo de implementar a pedido del usuario las areas de memoria que se deseen lectura y asignar correctamente las variables de proceso con los registros correspondientes.
La aplicación esta en fase beta, los fines de semana voy mejorando y agregando algunas cosas mas que me sugieren a las personas que muestro a mi alrededor, espero que pronto este lista y que me aprueben la aplicación en la tienda de aplicaciones.