Bueno, aquí estamos de nuevo, he tenido que aplicarme en terminar algunas cosas que tenía pendiente y que ya no podían esperar más. Como comprenderéis uno tiene que seguir estudiando, probando, etc. Y en ocasiones le faltan horas al día. Pensé en que me llevaría poco tiempo pero no ha sido asi. En fin vamos al grano.

He preparado una pequeña aplicación para controlar registros, en mi caso, control de temperaturas, pero igual valdría para presiones, humedad, co2, etc. La idea es comprobar que estos registros se mantengan dentro de unos márgenes, si se salen se activará una prealarma y si superan un tiempo preestablecido se activa una salida, que por ejemplo podría enviar un mail, un sms o encender una sirena.

El proyecto consta de dos partes, una aplicación para PLC y otra para PC, donde monitorizamos estos registros. Aunque parece una aplicación sencilla, he querido mostrarla en el blog ya que con apenas unas líneas de código podremos controlar una gran cantidad de registros. Además será muy sencillo variar el número de registros.

Para empezar creamos una estructura que contendrá las variables de cada registro.

Y el paso siguiente es crear una matriz con esta estructura en variables globales:

La he direccionado con %MW3000 para posteriormente leer estos registros desde vb.net. Esto no es necesario ya que existe la posibilidad de leer las variables por nombre desde vb.net. Pero como esto es un “laboratorio de pruebas”, pues pruebas.

El siguiente paso es el programa claro:

En esta primera parte del programa he creado una pequeña rutina para rellenar las variables con valores inciales:

Y este es el programa propiamente dicho:

Cada ciclo de scan revisamos un registro, si el selector esta a TRUE, comprobamos que el .Valor este dentro de rango. Esto es mayor que .Mínimo y menor que .Máximo. En caso de estar fuera de rango restamos uno al valor de la variable .Retardo. Si está a TRUE la variable Restar. Si el selector esta a FALSE forzamos el valor de las variables. Prealarma y .Alarma a FALSE y .Retardo a SpRetardo (Set Point retardo o Punto de Ajuste retardo).

Como decíamos antes, este programa está diseñado para enviar SMS. Por este motivo las alarmas se activan en secuencia. De esta manera, hasta que la variable Out no esté a FALSE no se activará la siguiente alarma. Si se producen dos alarmas consecutivas debemos enviar el primer SMS y cuando termine el siguiente.

Para modificar el número de registros a comprobar, sólo tendremos que modificar la constante NReg en el programa MAIN y el tamaño de la Matriz Reg1 en variables globales.

En las próximas entradas veremos la aplicación en vb.net y una simulación para hacer las pruebas.

EDITADO 7.08.10.

Pues hay que leer los manuales. A pesar de que el programa se compila sin error en el manual dice esto:

Así que haremos caso del manual y modificare el programa para solucionar este inconveniente.