¿Sabés cómo utilizar la instrucción CTU y CTD?, sigue leyendo y te explicaré cada parte de esta instrucción de forma detallada.

El principal objetivo de estas instrucciones es la de contar eventos, de tal manera que cuando su línea es verdadera el valor del Accumulate es incrementado (CTU) o decrementado (CTD) dependiendo de la instrucción utilizada.

A continuación desglosaremos esta instrucción en partes y al final te propondré una práctica para que todos los conceptos queden más claros.

Estructura de la UDT de una instrucción CTU-CTD; COUNTER

La instrucción CTU-CTD utiliza la UDT COUNTER, la cual contiene todos los elementos necesarios para su control.

A continuación te muestro los 7 elementos de esta UDT en el Monitor del Studio 5000.

UDT de la Instrucción CTU

Preset (.PRE)

El Preset es de tipo DINT y representa el número de incrementos que necesita hacer el contador antes de alcanzar el Done.

Accumulated (.ACC)

El Accumulated también es de tipo DINT y es la tag que muestra el número de conteos actual del contador.

Countup (.CU)

Esta tag es de tipo BOOL y es activada siempre que una instrucción CTU es habilitada.

Countdown (.CD)

La tag Countdown es de tipo BOOL y es activada siempre que una instrucción CTD es habilitada.

Done (.DN)

El Done es activado siempre que el valor del Accumulated sea mayor o igual al valor del Preset.

Overflow (.OV)

La tag Overflow es activada cuando se está utilizando la instrucción CTU y el valor del Accumulated supera el número límite 2,147,483,647, entonces el contador continúa con el valor -2,147,483,648 y empieza a aumentar el valor otra vez.

Underflow (.UN)

La tag Underflow es activada cuando se está utilizando la instrucción CTD y el valor del Accumulated es menor al número límite -2,147,483,648, entonces el contador continúa con el valor 2,147,483,647 y empieza a reducir el valor otra vez.

Parámetros de la Instrucción CTU-CTD

Las instrucciones CTU y CTD funcionan prácticamente igual por lo que sus parámetros son los mismos como se muestra en la siguiente imagen:

Instrucción CTU y CTD

El primer parámetro es la tag de tipo Counter en la que se encuentra toda la información relacionada con el contador en cuestión.

El segundo parámetros muestra el Preset, el cual representa el número de conteos que se deberán realizar antes de alcanzar el Done.

El último parámetro es el Accum, el cual muestra la cantidad actual de conteos de la instrucción.

Funcionalidad de la Instrucción CTU-CTD

La funcionalidad de las instrucciones CTU y CTD son comúnmente utilizadas en conjunto para hacer el conteo ascendente y descendente de una misma tag.

Una características importante de esta instrucción es que maneja el flanco de subida (en el vídeo de este artículo se explica a detalle este concepto) como detonante para el conteo, por lo que no importa el tiempo que dure la señal encendida, siempre contará solo una vez.

Para poder contar una vez más es necesario desactivar la señal de entrada y activarla de nuevo, de esta manera tenemos un flanco de subida más.

Para entender mejor la funcionalidad de estas dos instrucciones vamos a utilizar una secuencia donde vamos a suponer un Preset de 4 en el contador en cuestión.

  1. Las condiciones de la línea de la instrucción CTU son verdaderas, por lo que el Countup es activado y el Accumulated avanza a 1.
  2. La línea ahora es falsa, por lo que el Countup se desactiva y el Accumulated mantiene su valor de 1.
  3. Las condiciones se vuelven verdaderas de nuevo, el Countup se activa y el Accumulated aumenta su valor a 2.
  4. Los pasos 1 y 2 se repiten dos veces más, llegamos al valor de 4 por lo que el Accumulated es mayor o igual al Preset y el Done es activado.
  5. Los pasos del 1 al 2 se repiten dos veces más, llegamos al valor 6, el Accumulated sigue siendo mayor o igual al Preset por lo que el Done sigue activado.
  6. Ahora la línea de la instrucción CTD es verdadera, por lo que el Countdown es activado, el Accumulated retrocede al 5 por lo que el Done sigue activado.
  7. La línea del CTD ahora es falsa, por lo que el Countdown se desactiva, el Accumulated mantiene su valor de 5 y el Done sigue activado.
  8. Las condiciones se vuelven verdaderas de nuevo, el Countdown se activa, el Accumulated disminuye su valor a 4 y el Done sigue activado.
  9. Los pasos del 6 al 7 se repiten una vez más, por lo que el Accumulated disminuye a 3 y el Done se desactiva.
  10. Los pasos del 1 al 2 se repiten, así que el Accumulated aumenta al valor 4 y el Done se activa de nuevo.
  11. Las condiciones de la línea de la instrucción RES son verdaderas por lo que el Accumulated se va a 0 y el Done es desactivado.

Como podrás observar a grandes rasgos el CTU aumenta el valor del Accumulated en una unidad, el CTD disminuye el valor del Accumulated en una unidad y el RES desactiva el Done y devuelve el Accumulated a 0.

Práctica con la instrucción CTU-CTD

Es importante reforzar lo aprendido acerca de la instrucción CTU-CTD mediante una práctica en algún simulador.

La práctica que propongo es la misma que podrás encontrar en la ayuda del Studio 5000, la cual describo a continuación:

  • Se trata de un conveyor que tiene una zona de buffer la cual no debería tener más de 4 partes.
  • Cada vez que una parte entra, el Sensor1 se activa y el Contador incrementa su valor en 1.
  • Cada vez que una parte deja la zona del buffer, el Sensor2 se activa y el Contador decrementa su valor en 1.
  • Si hay 10 partes o más en la zona del buffer, el Conveyor se detiene hasta que haya suficiente espacio para más partes.
  • En caso de que haya algún problema con la máquina, se pueden retirar todas las piezas del conveyor y resetear el contador con el botón Reset para empezar a llenar el buffer desde cero.

Este ejercicio es perfecto para practicar con las instrucciones vistas en este artículo, así que intanta realizarlo y una vez logrado revisa el vídeo tutorial donde te explicaré más a detalle estas instrucciones y la solución que encontré para este problema.

Vídeo Tutorial y Descarga del Programa en Studio 5000

A continuación te comparto un vídeo donde se explica a detalle la práctica sobre el buffer y el conveyor.

Para descargar el programa en Studio 5000 listo para ser ejecutado utiliza este enlace.

Conclusiones

Como ya debes estar enterado, la instrucción CTU-CTD es muy común a la hora de programar, en ocasiones se utiliza solo el CTU y en ocasiones se usa en conjunto con el CTD.

Estas instrucciones son muy importantes, por lo que es muy recomendable practicar con ellas para encontrar esos pequeños detalles que tiene toda instrucción y que no se ven a simple vista.

Recuerda que para hacer estas prácticas puedes utilizar el Studio 5000 en conjunto con el Emulate 5000, solo tienes que seguir los pasos mostrados en el artículo Enlace entre Studio 5000 y Emulate 5000.

Comparte este articulo, es de suma importancia para así seguir avanzando y agregando contenido de más instrucciones.

Por último te invito al Programa Premium para que tengas acceso a todos los cursos de programación de este sitio web, tanto los básicos como los avanzados.

Saludos!

6 Comentarios

Deja una respuesta