miércoles, 30 de septiembre de 2015

Copiado de funciones, FC y FB.

Copiar funciones.

Puede ocurrir que necesitemos crear una función idéntica a otra que ya tenemos en el mismo programa, por ejemplo una función controla las horas que esta funcionando un motor y resulta que tenemos dos motores mas que controlar, como lo hacemos?. Volvemos a escribir nuevas funciones idénticas a la anterior ?. No es necesario, podemos hacer una copia de la primera función, pero, con una serie de cosas a tener en cuenta pues esto no es solamente hacer click con el ratón y elegir la opción de copiar.

  1. Situaremos el cursor sobre la función a copiar en el árbol de proyecto haremos click con el botón derecho del ratón se abre un menú elegimos la opción copiar y aparece debajo de la actual la función copiada.
  2. Ahora nos situaremos sobre la función copiada, seleccionamos, click con el botón derecho del ratón, se abre el menú y elegimos propiedades, se nos abre otro menú el la opción de General, nos aparecen varias entradas por si queremos cambiar los datos de alguna, en la entrada “Nombre” nos aparece el nombre de la función copiada guión mas un numero, este sera el nombre de la nueva función y el que si debemos de cambiar es el de la entrada que tenemos de bajo de “Tipo” que es “numero” y pondremos si es la primera copia un “dos” e iremos aumentando el numero según las copias que hagamos de la primera función.
Con los pasos anteriores tenemos copiada la función primera, si queremos mas copias de la función original tenemos que repetir estos pasos.

Pero no hemos terminado, si dentro de la función copiada hay instrucciones que usan DB (como es el caso de temporizadores, contadores, etc.). Tendremos que buscarlas en las funciones copiadas y volverlas a escribir para que se genere una DB nueva para esa instrucción, de lo contrario la función no funcionara correctamente cuando la probemos.

Con las variables o “Tag” no hay problema, pueden usar el mismo nombre que la función original.

Programa Control de una fosa de pluviales

Control de llenado de fosa de aguas.

Se me a planteado el siguiente problema de automatización. El control de una Fosa que recogerá aguas pluviales de una zona con escasa evacuación de forma natural de dichas aguas, Para ello se crea una red colectora, que llevara las aguas hasta la fosa, donde se evacuaran a otra red de alcantarillado que las conducirá hasta la depuradora para su tratamiento.

Las condiciones son las siguientes.

  • En la fosa habrán tres bombas que funcionando las tres a la vez tienen que ser capaces de evacuar todo el caudal entrante máximo.

  • Las bombas irán poniéndose en marcha según se valla llenando la fosa, para saber que nivel de llenado de fosa tenemos, disponemos en el interior de la fosa de cuatro boyas situadas a distinto nivel que nos indicaran el estado de llenado de la fosa.

  • El sistema tiene que ser tolerante a fallos en la lectura de los niveles de la fosa, es decir que si se produce una situación anómala a lo normal, el sistema tiene que poder reaccionar ante esa lectura errónea de las boyas.

  • Registro de horas de funcionamiento de cada una las bombas.

  • Registro de hora de inicio de arranque de cada bomba y ultima hora de paro.
  • Estado actual de cada bomba, Funcionando, Parada y Averiada.

  • Los tres puntos anteriores se tienen que poder observar en una única pantalla de HMI.

  • Cada vez que la fosa se vacía en el siguiente ciclo de funcionamiento, deberá entrar primero la bomba que menos horas de funcionamiento tenga. En caso de mayor necesidad evacuación la siguiente bomba que entre sera la menos horas de funcionamiento tenga de las dos que quedan por poner en funcionamiento.
  • En caso de estar una única bomba trabajando el sistema deberá de poder ir turnando las tres bombas, durante el tiempo prefijado por el usuario en el HMI.

  • Las bombas tienen que poder ser activadas de forma manual, la desactivación de las mismas también tiene que ser manual o cuando la boya de vacío quede colgando lo cual es indicativo que el nivel de agua es ya muy bajo. Si hay activación manual activa, tiene que aparecer en la pantalla principal del HMI, la indicación de MANUAL.

  • Mediante una pantalla del HMI debemos de observar, estado de las bombas nivel de fosa y estado de boyas.

  • En caso de una bomba averiada, lectura errónea de boya, esto tiene que provocar que dispare una alarma sonora y otra luminosa y que se tienen que poder desconectar, de forma temporal e individual y una vez pasado el tiempo prefijado, se volverá a conectar. Si la avería persiste las alarmas tanto sonoras como luminosas volverán a activarse.

Bien pues aquí tenéis la solución.


Descarga de proyecto: