AUTOPLCS.COM
BUSCAR VALOR MINIMO

Aplicación ejemplo : Una centralización con tres bombas

Nombre ejemplo: Funcionamiento del motor que lleva menos tiempo acumulado de funcionamiento.

PLC: Omron CJ1M CPU21

Redireccionamiento I/O incorporadas en la CPU:

10 entradas 2960.0 --- 2960.09

6 salidas 2961.0 --- 2961.05

Programa utilizado: CX-Programmer 7.02

Primero que todo, crearemos 3 areas que iremos incrementando con un un bit de pulso cada segundo.
El area a incrementar para la bomba1 sera D1.
También colgaremos en la misma linea una comparación del valor del D1 con el numero 99. Cuando el valor sea igual nos activará el bit STOP_B1 y dejará de incrementar el valor del D1, pero no se parará la bomba que esta en funcionamiento.

Procediremos a repetir el proceso anterior para la bomba 2, variando el D2 como area de incremento de tiempo de funcionamiento.

Y para el último motor ,utilizaremos el D3 como area de incremento de tiempo de funcionamiento (bomba3).
La finalidad de la comparación que utilizamos es que no se nos genere un numero muy elevado en D1,D2 y D3. Para esto ,cuando el valor de todas las comparaciones sea #99, reseteará con un #0 el valor de D1, D2 y D3 con la función BSET(071).

En la imagen siguiente podemos ver como cuando activamos el pulsador de marcha , se nos activa el bit de trabajo W0.0.

Cuando W0.0 está activado nos activa la función de buscar el valor más pequeño o mínimo.

La instrucción Min está formada por los siguientes parametros:

•  C : D60 numero de comparaciones #3

•  C+1: En el D61 deberemos cargarle #4000 ya que quiere decir que nos registrará la salida sin signo y en binario en el IR0.

•  R1: primer canal rango comparación D1.

•  D: se almacena el valor minimo.

En la tabla inferior podemos observar lo siguiente:

•  Valor acumulado en d1 50

•  Valor acumulado en d2 28

•  Valor acumulado en d3 78

•  Es muy importante cargar en el D61 #4000 y en D60 #3, ya sea mediante la introducción en el programa de 2 lineas con la función mov o directamente en la ventana de vigilancia del cx-programmer.

El valor minimo es 28 y por lo tanto queda almacenado en D50, pero en nuestro programa no utilizaremos este dato.

Movemeros el doble canal del indice de registros IR0, a W10 para que nos indique en binario cual de las tres bombas es la que tiene menos tiempo acumulado.

En este caso al ser el D2 el que tiene el valor más pequeño, nos pondrá un 2 (en binario 10 ) en el W10.
Desglosado a bits tendremos el bit W10.01 activado y el bit w10.00 a cero, porlotanto se nos activará la salida 2964.02 que correspode a la bomba 2 que es la que menos tiempo lleva trabajando.

En el caso de que fuera D3 el que tiene el valor más pequeño, en W10 tendriamos un 3 ( 11 en binario) y si lo desglosamos a bit quiere decir que tendremos activados el bit W10.0 y W10.01.

Es por este motivo que hemos tenido que montar esta última secuencia de contactos en serie, el contacto abierto w10.0 representa un 1 y el nc un 0.

SI tenemos un 1 en w10.00 y un 1 en w10.01, se nos activa la bomba3.