Está en la página 1de 26

COMPARACIONES

Área de Automatización y Robótica

Docente: Mario E. Díaz Navarro


OPERACIONES CON NÚMEROS ENTEROS. COMPARACIÓN
Una de las consecuencias de trabajar con valores enteros es que dichos valores han de tener un significado, es decir, deben contener una magnitud que sea útil a
nuestro programa a la hora de controlar un proceso.

Hasta ahora sabemos cómo guardar datos en la memoria del autómata, pero
esos datos deben tener un sentido y una trascendencia.

Cuando hemos de utilizar datos para tomar decisiones de activación a través de


nuestro programa, deberemos tener una forma de comparar valores que
obtengamos del sistema automatizado con valores de consigna que nos aporten
criterios de actuación.

Hasta ahora nuestro programa evolucionaba sobre la base de activaciones o


desactivaciones de entradas, salidas y marcas. Sabemos almacenar un valor
entero, es decir, podemos guardarlo en la memoria del autómata. Pero, si nos
preguntamos cómo utilizar ese valor, la respuesta es que simplemente no
sabemos.
OPERACIONES CON NÚMEROS ENTEROS. COMPARACIÓN
Si, por ejemplo, quisiéramos distintos conteos de piezas por una cadena de montaje, podríamos almacenar los valores posibles en la memoria del programa, pero
quedarían ahí, sin uso, si no podemos comparar esos valores cuando consideremos oportuno.

Para poder resolver este sencillo problema la solución estaría


en comparar el conteo de piezas con el valor
preseleccionado que elija el usuario, sin necesidad de utilizar
varios contadores.

Hasta ahora no sabemos cómo realizar esas comparaciones.


Por eso debemos conocer una nueva serie de funciones que
nos permitan realizar estas operaciones en nuestro
programa.

A la hora de comparar valores enteros podemos comparar


valores constantes y valores variables (contenidos en una
variable). Pero lo que sí es imprescindible tener en cuenta es
que las comparaciones siempre han de ser entre valores de
un mismo tipo variable, es decir, byte con byte, word con
word y dword con dword.

Dicho esto, veamos las características de las comparaciones.


COMPARACIONES
La comparación permite activar un bit a 1 cuando la relación de comparación entre los dos elementos es verdadera, es decir, se cumple la relación indicada por la
comparación. Veamos qué queremos decir al hablar de relación indicada por la comparación.

Supongamos que estamos controlando una comparación de desigualdad entre dos elementos, concretamente queremos un bit a 1 cuando MD10 sea mayor que
MD14. Esta sería la relación indicada, una relación “mayor que…”

Buscamos conseguir que, cuando MD10 > MD14, se active un bit que podamos utilizar en la lógica de programa. Veamos cómo conseguir esto.

Forma de la función
Para comparar utilizaremos una función como la siguiente:

Se trata de un “contacto abierto”, que introducimos en la lógica de programa de la misma forma que un contacto asociado a una variable binaria cualquiera.
COMPARACIONES
Está formado por cuatro elementos:

1. Interrogantes parte superior: primer valor de la comparación. Es el primer elemento del par de elementos que vamos a comparar. Puede ser un valor
constante o un valor depositado en una variable. En el ejemplo, MD10.

2. Interrogantes parte inferior: segundo valor de la comparación. Es el segundo elemento del par de elementos que comparamos. Al igual que el anterior,
puede ser un valor constante o un valor entero depositado en una variable. En el ejemplo, MD14.

3. Tipo de comparación. En el caso del ejemplo, > (mayor que). La lectura de la misma es siempre Primer elemento > Segundo elemento. En cada
caso variará el símbolo en función del tipo de comparación.

Se puede modificar el tipo de comparación elegida seleccionando el campo correspondiente:


COMPARACIONES
4. Indicador de unidad. (Interrogante dentro de la función). Si seleccionamos este campo se abrirá un desplegable para que elijamos el tipo de datos con el
que vamos a trabajar:
Integración en la lógica de programa
La función de comparación se integra en la lógica de programa como un contacto abierto.

No se coloca como resultado de la lógica de programa, sino como una condición más de esa lógica de programa. Veamos un ejemplo de un segmento de programa
en el que introducimos una función de comparación.

Se integra en el segmento igual que un contacto abierto.


Tipos de comparación
Funciona de la misma forma que un contacto abierto: mientras el resultado de la comparación no sea verdadero, el contacto permanece abierto. A continuación,
veremos los tipos de comparación y veremos este comportamiento.

Comparación de igualdad El contacto se cierra cuando se cumple la igualdad


entre los dos elementos; en el ejemplo, MD10,
MD14. Veamos en una tabla el comportamiento del
contacto de comparación.
Tipos de comparación
Comparación de desigualdad El contacto se cierra al contrario del caso de igualdad,
es decir, cuando los elementos no son iguales. En el
ejemplo, MD10 y MD14. Veamos la tabla de
funcionamiento de la comparación.
Tipos de comparación
Al igual que en los casos
Comparaciones de mayor y mayor o igual anteriores, el contacto se
cierra al cumplirse la
relación de comparación
entre MD10 y MD15.
Veamos ahora la tabla de
comportamiento del bit de
comparación.
Tipos de comparación
Comparación de menor y menor o igual
El comportamiento, en cuanto a
integración en el programa, es igual
que en los casos anteriores. Vamos a
conocer su comportamiento como
bit de comparación en función de los
valores de los elementos.
Inserción en la línea de programa
la hora de colocar un contacto de comparación en una línea de programa lo incorporamos de forma muy similar a un contacto abierto. Sin embargo, hay importantes
diferencias: selección de la función en el árbol de operaciones, indicación de los elementos que se comparan, selección del tipo de dato,...

1. Colocamos el cursor en la posición de la línea de programa en la que queramos introducir la comparación.


Inserción en la línea de programa
2. En el área de instrucciones abrir la carpeta Comparadores. Una vez abierta, seleccionar la comparación que queramos utilizar.
Inserción en la línea de programa
3. Al seleccionar con doble clic la función de comparación que queremos utilizar, esta queda introducida en nuestra línea de programa.

Ahora hemos de rellenar los valores correspondientes a cada uno de los dos elementos que aparecen con interrogantes y seleccionar el tipo de dato.
Inserción en la línea de programa
Veamos cómo quedaría nuestro ejemplo terminado.
Error en unidades
Es posible que, al introducir un elemento en un contacto de
comparación, el tipo de dato no sea válido por el tipo de
comparación elegido. Este fallo nos lo indica el programa de dos
formas:

1. Con cuadro emergente de aviso:

2. Con un cuadrado gris indicándonos qué elemento no


es correcto.

Por ejemplo: Elegimos un tipo de comparación para


INT y uno de los elementos es de tipo Byte:
Aplicaciones
Tal y como hemos indicado al principio, las comparaciones resultan fundamentales para establecer criterios de activación de los elementos que componen nuestra
máquina o instalación automática.

Podemos ver un ejemplo con información procedente del exterior del autómata.
Aplicaciones
Veamos otra aplicación. Para ilustrar el uso de las comparaciones
vamos a “mejorar” el programa que vimos en la primera parte de la
unidad.

Vamos a realizar el programa de riego con un solo temporizador,


cuando antes debíamos utilizar cuatro.

El proceso será el siguiente:

1. Pulsamos marcha.

2. Inicia el riego la zona 1.

3. Pasa un tiempo t y se inicia el riego de la zona 2; se detiene la zona1.

4. Pasa un tiempo t y se inicia el riego de la zona 3; se detiene la zona


2.

5. Pasa un tiempo t y se inicia el riego de la zona 4; se detiene la zona 3


y se para el proceso.
Aplicaciones
Solo tendremos que modificar la activación de las marcas
que identifican cada una de las etapas en las que hemos
dividido el proceso.

Para ello, al pulsar marcha, activamos una marca de marcha,


que identificaremos como M5.0.

Esta marca estará activa mientras se produzca el proceso de


riego, así que nos servirá para habilitar el temporizador que
controlará los cambios de riego.
Aplicaciones
El tiempo preseleccionado PT puede ser cualquiera, pues compararemos directamente con la temporización. No trabajaremos con el bit asociado al temporizador.

El siguiente paso será establecer la primera comparación. Hacíamos los cambios de riego cada 60 s.

Las franjas de cambio serán:


Aplicaciones
Por tanto, por medio de comparaciones:
Aplicaciones
Para terminar, solo quedaría establecer la parada de funcionamiento. Bastaría con poner a 0 la marca de marcha de proceso M5.0.

https://youtu.be/P9l9BhmTk98
Sugerencia 2
Piensa en un dispositivo que trabaje con valores numéricos y que necesite hacer comparaciones entre ellos para realizar acciones binarias como, por ejemplo, un
termostato.
CONCLUSIONES
Una vez terminada esta unidad didáctica, podemos sacar varias conclusiones:

La importancia de organizar bien nuestros programas mediante el concepto “etapa-transición”.

Dentro de las operaciones destacamos la de comparación ya que resultan fundamental para establecer criterios de activación de los elementos que componen la
máquina que queremos gobernar.
RECAPITULACIÓN
La organización de los elementos que intervienen en un programa por medio de la estructura adecuada nos permite programar de una forma más sencilla,
más clara y más fácilmente escalable.

Una adecuada mecánica de trabajo por parte del programador a la hora de estructurar un programa, por sencillo que este sea, es garantía de progresos y
resultados más rápidos.

Los conceptos de “etapa” y “transición”, como elementos fundamentales de cualquier proceso, suponen la piedra angular de un buen planteamiento de
programación de dicho proceso.

Las funciones de comparación nos aportan una herramienta de gran sencillez para poder tomar acciones en nuestro programa, en función de valores de
referencia o consigna para variables numéricas.

PROPUESTAS DE AMPLIACIÓN

Para completar el aprendizaje te proponemos buscar cuatro accionamientos en los que se produzca una activación-desactivación en función de una comparación de
un valor con un valor referencia o de consigna.

También podría gustarte