Mostrando entradas con la etiqueta Visual Basic Script. Mostrar todas las entradas
Mostrando entradas con la etiqueta Visual Basic Script. Mostrar todas las entradas

24 de abril de 2017

Gráfica X/Y en HMI Siemens a partir de puntos almacenados en un bloque de datos (DB)

Si utilizamos un PLC Siemens para realizar una captura de datos y después pretendemos realizar una gráfica con estos datos en un panel táctil de Siemens (un Comfort Panel por ejemplo), veremos que la cosa no es tan sencilla.

Los controles para mostrar gráficas en los sistema HMI de Siemens parecen estar pensados para que el propio sistema HMI haga la captura de datos para su representación, como queriendo liberar al PLC de esta tarea. Sin embargo el limitado ciclo de adquisición que tienen estos sistemas nos limitan a procesos con una dinámica lenta, en los que registrando un punto cada varios segundos sea suficiente. Si es necesario registrar un proceso más rápido deberá ser el PLC el que se haga cargo, guardando, por ejemplo, los datos en tablas en un bloque de datos (DB), pero entonces se plantea el problema de cómo llevar estos datos al control de visualización de gráficas.

En esta entrada voy a explicar cómo representar en un control "Visor de curvas f(x)" datos almacenados en un bloque de datos en un PLC. Me he basado en un ejemplo que me facilitó un técnico de Siemens, aunque yo lo he elaborado un poco más.

La idea general será que el control "Visor de vurvas f(x)" permite ser configurado para obtener los datos de un fichero de texto en formato CSV, y como desde un script podemos crear ficheros de texto y además tenemos acceso a las variables del PLC, programaremos uno que vaya leyendo los datos almacenados en el bloque de datos y escribiéndolos en un fichero CSV digerible por el control "Visor de curvas f(x)".

6 de julio de 2012

Midiendo el tiempo de arranque de una máquina con un script en WinCC Flexible

Hace ya unas semanas un lector me hizo una consulta sobre cómo medir el tiempo de arranque de una máquina con un script en WinCC Flexible. En su momento no tuve tiempo de responderle, pero he hecho una prueba y aprovecho para publicarla en el blog.

Lo que se pretende es visualizar en una pantalla el tiempo de arranque de una máquina. No existe la posibilidad de modificar el programa PLC, con lo que toda la programación deberá hacerse sobre WinCC Flexible.

Con este planteamiento lo primero es localizar dos variables en el programa PLC que nos sirvan para identificar los momentos de inicio y fin de arranque. Para mi ejemplo he enlazado dos variables llamadas INICIO_CICLO y FIN_CICLO que cumplirán esta función y mediante dos botones desde el HMI simularé su activación. También crearé con formato Long tres variables internas, una para el tiempo de inicio (TIEMPO_INICIAL), otra para el tiempo final (TIEMPO_FINAL) y la tercera para la diferencia entre ambos (TIEMPO_MEDIDO), que será el tiempo de arranque buscado.


Estas variables deberemos enlazarlas desde el HMI, seleccionando en su configuración Ciclo continuo y ajustando el Tiempo de adquisición al más bajo posible: 100 ms. Así el panel estará leyendo cada 100 ms el valor de estas variables desde el PLC. Por lo tanto es importante que estas variables en el PLC estén activadas durante más de 100 ms.

2 de diciembre de 2010

Visualización del tiempo ciclo con Step7 + WinCC Flexible

Una de las cosas que, en mi opinión, no debe faltar en una máquina que disponga de panel de visualización, es una pantalla dedicada al tiempo ciclo. Es curioso ver como en muchas inspecciones de máquinas, el ingeniero de métodos y tiempos, cronómetro en mano, comprueba que nuestra máquina dé cadencia. Si en vez de eso, le damos una tabla de tiempos tomados de forma precisa por el PLC, le simplificaremos la labor y seguramente lo agradecerá... y ya sabemos que el ingeniero de métodos y tiempos es un tipo con el que conviene llevarse bien ;)

Nota: entiéndase tiempo de ciclo como el tiempo que transcurre desde que obtenemos una pieza terminada y la siguiente.

Para ello voy a suponer que mi máquina está comandada por un PLC S7-300 y como HMI tengo un panel táctil de Siemens como el MP277, y sobre esta base voy a programar lo que sería una visualización sencilla de los últimos diez tiempos de ciclo.

En este ejemplo el PLC calculará el tiempo ciclo y mediante una variable booleana le indicará al panel que recoja el dato. Luego el panel leerá el dato y lo introducirá en una tabla de valores, los visualizará por orden de recepción (primero el más reciente) y marcará con color verde el menor y con color amarillo el mayor. La visualización quedará tal como se muestra a continuación:


Empecemos con la programación en el PLC.

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.