lunes, 16 de agosto de 2010

Programación con lenguaje estructurado en SIEMENS S7

Antecedes
Cuando aprendí a programar en S7 lo primero que me vino a la mente fue “¿Por qué se complican las cosas y mejor lo hacen en un lenguaje de programación común? como C, Pascal o Java."

Impresiones.
Después de tener experiencia programando en KOP (LAD en inglés), en el S7 son pocos los programas que me han quedado cortos, aunque sean funciones fáciles. El simple hecho de pasar mi tabla de verdad de un algoritmo a KOP termina siendo muy complejo y como resultado un programa largo. Muchas veces es por la poco familiarización de los bloques de funciones que tiene KOP para la aplicación de los programas o la inexistencia de ellos.

Descubrí hace semana el SCL: Programming S7 blocks que es una herramienta de SIEMENS S7 para programar en Pascal (lo más básico y sin autocomplementación). Está herramienta es muy poderosa ya que se pueden generar bloques FC, FB, DB, OB y también llamarlos para su uso (incluyendo los de la librería de System and Standard Functions de SIEMENS).

Ventajas.
Todos los programadores que no están habituados a KOP, AWL y KUP, podrán crear sus programas en un lenguaje familiar y sencillo de usar. Aunque necesitaras conocimientos básicos de S7.
SCL tiene un gran poder para hacer bloques muy complejos, así podrás crear tu propia librería de bloques realizadas en SCL, aquellas que te preguntaste porque no existen por default.

Desventajas.
Las funciones que se crean tienden a ser más pesadas, tamaño en bytes, que las que normalmente creas en KOP u otros.

Si realizas funciones muy complejas (prácticamente un proceso) el cliente no entenderá lo que realmente pasa, solo verá una caja negra con entradas y salidas.

La ayuda (F1) de SCL tiene errores, falta describir algunas cosas y hay detalles que describen que generan más dudas en vez de darte una respuesta.

Recomendaciones.
Realizar funciones sencillas. Si ya existe un bloque, mejor úsalo en KOP antes de utilizar tu bloque. Trata de no llamar muchos bloques en tu código de las librerías. Cuando tengas tu algoritmo hecho prueba tu bloque, asegurando que no tenga errores checando todas las eventualidades, y depura el código.

Simulaciones. Como cualquier bloque y/o programa hay que tener en cuenta que no es lo mismo simular que cargarlo al PLC, por lo tanto es recomendable cargarlo en un PLC y probarlo si también funciona bien (prueba en bloques que no afecten otra cosa, de lo contrario si el PLC está en línea en un proceso podrías parar el proceso).

Documéntalo. Pon comentarios en tu código, para saber qué hace cada cosa, por una posible modificación futura. Realiza una descripción de tu bloque, tipo las de ayuda del KOP S7, para que el cliente pueda checar y ver cómo funciona, ver como son los datos de I/O, etc.

Protege tus funciones. Si hay personas que programen en el lenguaje podrán abrirlo y modificarlo, o robar tu algoritmo. En el SCL hay una línea de código, la cual le pone seguro (candado) para que el usuario no pueda accesar al código de tu bloque a menos que tengo el código fuente (el cual no lo pueden sacar del PLC).

No hay comentarios:

Publicar un comentario