6 de julio de 2010

La protección KNOW HOW de Step7

Es habitual en los proyectos de Step7 que ciertos bloques de programa estén protegidos, sobre todo si usamos bloques de bibliotecas de Siemens. Por ejemplo, los bloques que entrega Siemens para manejar una CP340 están protegidos:


Si intentamos abrirlos nos saldrá el mensaje:


Estos bloques tienen activada la protección KNOW HOW y tan solo nos permite ver la interfaz del bloque (parámetros IN, OUT e IN/OUT) y su comentario general. Sin embargo, el código del bloque, las variables estáticas y temporales, y los comentarios de los segmentos son inaccesibles.

Nosotros también podemos proteger nuestros bloques de programa. En la página web de Siemens está explicado, el procedimiento es sencillo y voy a poner un ejemplo.

21 de junio de 2010

Temporización en Step7 sin usar temporizadores SIMATIC

El número de temporizadores SIMATIC que tenemos disponibles programando en Step7 está limitado, depende de cada modelo de PLC. Por ejemplo, para un 312C tenemos 128 temporizadores, para un 313C-2DP son 256, etc. Esto es suficiente para la mayoría de las aplicaciones, pero puede ocurrir que necesitemos más. Como solución existen varias alternativas. Una sería usar temporizadores según la norma IEC, que en Step7 vienen implementados como funciones del sistema integradas (SFB). Dicha norma define dos tipos de temporizadores, TON y TOF, que no son más que un retardo a la conexión (SFB4) y retardo a la desconexión (SFB5), respectivamente. Para utilizarlos los tenemos disponibles en la biblioteca 'Standard library', bajo 'System Function Blocks'. Podemos usar tantos como queramos, pero teniendo en cuenta que para cada temporizador será necesario declarar un bloque de datos (DB) de instancia, lo cual ocupa memoria (58 bytes por cada temporizador exactamente).


Estos temporizadores no usan el formato de tiempo S5TIME propio de Step7, sino que usan el formato TIME según la norma IEC. Este formato no es más que un entero doble con signo (32 bits) donde se almacena el tiempo en milisegundos. Para saber más sobre su funcionamiento, en la ayuda de Step7 vienen perfectamente documentados.

Pero existe otra opción para realizar temporizaciones. En Step7 tenemos la función del sistema SFC64 TIME_TCK (time tick), con la que se puede leer el cronómetro del sistema de la CPU. Esto nos da la opción de construir nuestro propio temporizador a medida y es lo que voy a hacer a continuación.

21 de mayo de 2010

Temporización discontinua en Step7

Supongamos que tenemos que controlar la dosificación de un líquido que debe producirse durante un tiempo preciso. Además, existe una barrera que, al interrumpirse, bloquea la salida del líquido y, al liberarse, debe seguir dosificando el tiempo restante. Está claro que hay que usar un temporizador. En Step7 existen cinco clases de temporizadores:
S_IMPULS ó SI -> Impulso
S_VIMP ó SV -> Impulso prolongado
S_EVERZ ó SE -> Retardo a la conexión
S_SEVERZ ó SS -> Retardo a la conexión con memoria
S_AVERZ ó SA -> Retardo a la desconexión
Cada temporizador tiene dos instrucciones posibles para lanzarlo: la corta (SI, SV, ...) en la que simplemente especificamos el tiempo de temporización y la larga (S_IMPULS, S_VIMP ...), en la que además podemos parametrizarlo.

12 de abril de 2010

Modificar datos en recetas a través de scripts en WinCC Flexible

En los paneles de operador de Siemens (si exceptuamos los paneles más sencillos) tenemos la posibilidad de programar nuestras propias funciones en Visual Basic Script. Esto nos permite una gran flexibilidad a la hora de plantear nuestras aplicaciones, incluso permitiendo liberar al PLC de ciertas operaciones complejas usando el panel como apoyo de cálculo.

Desde un script tenemos acceso a la tabla de variables, a los objetos, a las funciones pre programadas e incluso a otros scripts. La programación es muy cómoda ya que el editor del WinCC Flexible es muy completo, con sintaxis coloreada, asistente de funciones y plantillas de código. Tal y como viene explicado en la ayuda:

Para crear scripts pulse <Ctrl><Espacio> y compruebe la amplia variedad de funciones. Escriba scripts utilizando funciones del sistema o el modelo de objetos. El objeto HMI Runtime permite acceder fácilmente al sistema. Para seleccionar una referencia de objetos pulse <Alt><Flecha derecha>. Puede crear scripts complejos con elementos del lenguaje de programación VBScript y acceder directamente a las variables a través de los nombres, p.ej. variable = 5.

En mi caso se me planteó la siguiente situación: en una máquina existe una receta donde se almacenan diferentes cotas para situar un eje durante el montaje de una pieza. Estas cotas son diferentes para cada referencia de trabajo (piezas diferentes) y están referidas al punto de apoyo de la pieza en la máquina. El cliente ha estado usando la máquina durante un tiempo y llevaba creadas más de 50 referencias. Por imperativo de diseño es necesario variar el punto de apoyo de todas las piezas, con lo que todas las cotas almacenadas deben ser modificadas en una cantidad fija. Además se prevé que en un futuro el punto de apoyo pueda volver a cambiar. Modificar las cotas para todas las referencias a mano sería una posibilidad, pero para hacerlo más fácil podemos echar mano de un script.

9 de abril de 2010

Unas notas sobre la administración de usuarios en WinCC Flexible

En las máquinas que fabricamos, como interfaz hombre-máquina (HMI), solemos instalar paneles de operador táctiles de Siemens. Estos paneles tienen su propio software de programación: el WinCC Flexible. Esta herramienta permite, de una forma relativamente sencilla, sacarle todo el partido a los paneles.

Entre la muchas funciones que nos permite configurar está la de la gestión de usuarios y contraseñas de una forma muy completa y con muchas posibilidades. Podemos crear grupos y usuarios con diferentes niveles de acceso, para restringir el acceso a partes del panel del operador. Por ejemplo, puede interesarnos que un operario pueda cambiar la referencia que fabrica una máquina, pero no permitirle que cambie los parámetros de dicha referencia, reservando esta operación a un encargado.

8 de marzo de 2010

Preparar un PC para comunicar con un PLC Beckhoff a través de Ethernet

Supongamos la siguiente situación: tengo un PLC Beckhoff con el que realizo intercambio de datos para mostrarlos en una aplicación hecha en Visual Basic (o .NET) a través de Ethernet (ver esta entrada). En el ordenador con el que he hecho la programación no hay problemas, la comunicación es impecable, pero si nos llevamos el ejecutable del programa (con sus respectivas bibliotecas DLL y similares) a otro PC nos vamos a encontrar con que no funciona.

El motivo es que la comunicación con el PLC se hace a través de un enrutado propio de Beckhoff: AMS Router. Por lo tanto es imprescindible instalar TwinCAT en todos los PC que vayan a ejecutar la aplicación. En el proceso de instalación es suficiente con seleccionar la opción TwinCAT CP, que es el controlador de Beckhoff para paneles de control (Control Panels).

Advertencia: es imprescindible que el sistema operativo del PC sea de 32 bits, yo lo he probado con éxito sobre un Windows 7 Starter.

Una vez instalado reiniciamos el PC y en el arranque aparecerá la siguiente pantalla (que hasta donde yo sé, no se puede ocultar):