11 de abril de 2017

Unas notas sobre las novedades para programar controladores S7-1500 en TIA Portal

En estos últimos años me he dedicado casi en exclusiva a programar PLC de Siemens con el software de ingenería TIA Portal, desde la versión 12 a la última 14. Al principio controladores de la gama S7-300 pero, además, he empezado a utilizar la nueva gama S7-1500, que traen un cambio importante de tecnología. Aunque la programación de los antiguos S7-300/400 sirve para los nuevos S7-1500, mantener las mismas constumbres de programación nos hará desaprovechar muchas de las importantes mejoras que traen estos últimos.

Para ponernos al día sobre todas las posibilidades Siemens pone a nuestra disposición abundante documentación que nos servirá de orientación. En esta entrada haré un resumen de las ideas y conceptos que más me han llamado la atención y que me han parecido más interesantes. A continuación tenéis una serie de enlaces donde podemos acceder a la fuente de esta documentación en la propia página de Siemens:
Lo primero que tengo que decir es que si tenemos un proyecto en TIA Portal con un S7-300 y tenemos que migrarlo a un S7-1500 el proceso es muy sencillo. Yo habré migrado media docena de proyectos con distintas configuraciones y no he tenido ningún problema, ya que todas las capacidades de un S7-300 están soportadas por un S7-1500. Sin embargo, al hacer ésto estamos desaprovechando las nuevas características que nos ofrece el 1500, como son, por ejemplo, los bloques optimizados.
En cuanto a los lenguajes de programación en TIA Portal cabe destacar la inclusión de SCL (Structured Control Language) como uno de los lenguajes por defecto en TIA Portal, no como en el antiguo Step7 que requería de un paquete opcional. El lenguaje AWL (STL - lista de instruciones) sigue disponible, aunque no en la gama S7-1200.

Tabla sacada del documento de Siemens "Programming Guideline for S7-1200/1500"

Un cambio de filosofía muy importante que trae el TIA Portal es el abandono del direccionamiento directo a memoria. Sigue estando soportado por razones de compatibilidad, pero se considera una funcionalidad legacy, con lo que es muy probable que en el futuro desaparezca. A cambio deberemos irnos acostumbrando al direccionamiento simbólico; de hecho los bloques optimizados sólo aceptan este tipo de direccionamiento.

Los bloques optimizados son otra gran novedad en la nueva gama de PLCs Siemens. En ellos no debemos preocuparnos por situar los datos en la memoria ya que la organización de los datos se hace automáticamente. En Step7 tradicional los bloques de datos se almacenaban por defecto en memoria remanente, ahora con los bloques optimizados deberemos ir marcando individualmente los datos que deban ser remanentes. Otra ventaja importante es que se pueden añadir datos a un DB y tranferirlo al PLC sin reinicializar los datos previos.

Gráfico sacado del documento de Siemens "Programming Guideline for S7-1200/1500"

Por razones de velocidad de acceso, en la gama S7-1500, los valores booleanos dentro de un DB optimizado ocupan un byte, lo cual no debería ser un problema puesto que el tamaño máximo de los bloques de datos es de hasta 16MBytes.

Siguiendo la filosofía de priorizar el direccionamiento simbólico, la memoria de marcas (M0.0, MW120 por ejemplo) tiende a desaparecer. En la documentación hacen mucho incapié en que es más rápido acceder a un DB global optimizado que al área de marcas y que ésta se mantiene únicamente por motivos de compatibilidad. Un efecto colateral es que no se debería utilizar el byte de ciclo (que se mapea al área de marcas), donde teníamos disponibles señales pulsantes a frecuencias fijas y que eran muy cómodas de utilizar. Siemens hace la recomendación de programar nuestros propios bits de ciclo pulsantes.
Gráfico sacado del documento de Siemens "Programming Guideline for S7-1200/1500"

El motivo por el cual acceder a un DB optimizado es más rápido que a un DB tradicional, o incluso al área de marcas, es debido al cambio de arquitectura de los PLC: se ha pasado de una arquitectura Big-Endian a una Little-Endian, con lo que en cada acceso a un DB tradicional o al área de marcas exige un reordenamiento de los bytes, cosa que no sucede con los DB optimizados ya que los bytes se ordenan tal y como los lee el microprocesador. 

Gráfico sacado del documento de Siemens "Programming Guideline for S7-1200/1500"

Los nuevos PLC 1200/1500 soportan tipos de datos de 64 bits: LWord y LReal (en los 1500 además ULInt y LInt). Se puede trabajar con nuevos formatos de tiempos y fechas, así como cadenas de caracteres en UNICODE (WCHAR y WSTRING). El nuevo tipo VARIANT (que viene a sustituir al antiguo ANY) es un puntero que puede referirse a variables de diferentes tipos, y tiene control de tipos. Esto quiere decir que cuando copiemos datos a través de VARIANT se comprobará que tanto los datos de origen como los de destino sean del mismo tipo. Su uso solo debería estar justificado cuando usemos direccionamiento indirecto y no conozcamos de antemano el tipo de los datos.

Los bloques de programa (OB, FB, FC y DB) en TIA Portal son muy similares a los ya conocidos de versiones anteriores de Step7, aunque han ampliado su cantidad y sus capacidades. 

Cuando empecé a programar en TIA Portal usando los temporizadores IEC, por cada temporizador se generaba un DB de instancia, lo cual no es un problema, pero queda "poco elegante" dejar colgados decenas o cientos de DB en el árbol de proyecto. Esto se puede solucionar usando multi-instancia, que básicamente consiste en que un DB contenga otros DB. Por ejemplo, yo creo mis temporizadores IEC en una función de bloque (FB) específica, y en su DB de intancia voy incluyendo como multi-instancias los DB de instancia de los temporizadores, con lo que en el árbol de proyecto solo tengo un DB. 

Otra característica en la que Siemens hace mucho incapié es la reutilización de código, de forma que el mismo código se pueda aprovechar para diferentes programas o usarlo varias veces en un mismo programa. Para ello se recomienda encapsular el código en funciones, usando la interfaz del bloque para el intercambio de datos y evitando el acceso a recursos globales dentro de las funciones. Esto realmente no es una novedad, ya se podía hacer en las versiones anteriores de Step7, si bien ahora se han potenciado las características para hacer este tipo de programación. 

Y hasta aquí este resumen muy somero sobre las novedades que tenemos sobre la programación en TIA Portal y los nuevos PLC de Siemens. 

Si bien es cierto que aún hay profesionales que se resisten a la implantación de TIA Portal y se mantienen firmes con el Step7 clásico, sólo es cuestión de tiempo que el TIA Portal se implante como una herramienta imprescidible, nos guste o no. Así que toca ponerse al día y para ello deberemos leer la documentación que Siemens tiene a nuestra disposición. 

Como siempre, cualquier comentario será bienvenido.

2 comentarios:

  1. Hola Germán, Interesante Post, yo tambie´n estoy experimentando estas nuevas funcionalidades de TiA Porta, y la inclusión de SCL y GRAPH me parecen interesantes en proyectos sobre todo en islas robotizadas. Has usado alguna vez SiVarc Screen Generator??

    ResponderEliminar
    Respuestas
    1. Hola José Miguel, no conocía eso de SiVarc. Le he echado un vistazo en https://www.youtube.com/watch?v=txLWqFOmAlM y parece interesante. Si tengo tiempo profundizaré en este tema.

      Un saludo y gracias por el interés.

      Eliminar

Por favor, no pidas copias de programas comerciales, licencias o números de serie.