Está en la página 1de 73

Terminal CPX

Estación de
Elevador

Descripción de
Funcionamiento.

Manual de
Prácticas

CD-ROM Incluido
Utilización Prevista y Convenida

La estación que se describe en el presente manual está prevista


exclusivamente para fines de formación y perfeccionamiento profesional
en materia de automatización y fue concebida únicamente con ese fin. La
entidad a cargo de la formación y/o los instructores que la imparten
deberán velar por que los aprendices / estudiantes respeten las
disposiciones de seguridad que se describen en los manuales
correspondientes.
Festo Didactic excluye cualquier responsabilidad en relación con daños
ocasionados al aprendiz / estudiante, a la entidad u empresa encargada
de impartir la formación y/o a otros terceros por su uso indebido o por
utilización en situaciones que no correspondan estrictamente a la
enseñanza, a menos que Festo Didactic haya ocasionado dichos daños
premeditadamente o por imprudencia o negligencia temeraria.

Datos actualizados en: 12/2009


Autor: Leonardo Rodríguez Ortiz
Gráficas: Departamento Costumer Solutions
Redacción: Leonardo Rodríguez Ortiz.

Festo Didactic Colombia.


Internet: www.festo-didactic.com
e-mail: aida.benavidez@co.festo.com

Sin nuestra expresa autorización, queda terminantemente prohibida la


reproducción total o parcial de este documento, así como su uso indebido
y/o su exhibición o comunicación a terceros. De los infractores se exigirá
el correspondiente resarcimiento de daños y perjuicios. Quedan
reservados todos los derechos inherentes, es especial los de patentes, de
modelos registrados y estéticos.
1

Introducción

El sistema para la enseñanza de la automatización y técnica de


manipulación de motores y diversos sensores de Festo Didactic fue
concebido para la utilización en función de diversos niveles de estudio y
requisitos profesionales. Los equipos y las estaciones del sistema
modular aquí presentado, permiten un estudio y perfeccionamiento
profesional cercano a la realidad imperante en diversas plantas de
producción. El hardware está conformado por componentes industriales
estructurados según criterios didácticos.

La estación de elevador y los módulos CPX se constituyen como un


sistema apropiado para adquirir las siguientes cualificaciones
profesionales fundamentales:

• Competencia profesional en relaciones humanas.


• Competencia profesional en materias técnicas.
• Competencia profesional en relación con métodos.

Esta cualificación se rige por criterios aplicables en la práctica.


Adicionalmente se aprende a trabajar en equipo, en cooperación con los
demás y, además se adquieren conocimientos en materia de organización.

Mediante proyectos de estudio se pueden abordar cada una de las


siguientes fases:

• Planificación
• Montaje
• Programación
• Puesta en funcionamiento
• Funcionamiento y utilización
• Optimización de parámetros regulables
• Mantenimiento
• Localización de fallos.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


2

Contenidos Didácticos
Los contenidos didácticos están clasificados según los siguientes
sectores:

• Mecánica
– Construcción mecánica de la estación.
• Técnicas de programación.
– Entender y crear diagramas para programar
– Definición adecuada de entradas y salidas de proceso.
– Análisis de Sistemas
• Electrotécnica.
– Cableado correcto de componentes eléctricos.
• Técnica de detectores y sensores
– Utilización correcta de detectores.
– Medición de magnitudes no eléctricas.
• Puesta en funcionamiento.
– Puesta en funcionamiento de un equipo para enseñanza
– Puesta en funcionamiento de algoritmos de control basados en
CoDeSys para la solución de problemas específicos.
• Localización de fallos.
– Localización sistemática de fallos de programación, cableado o
montaje
– Controlar el funcionamiento, efectuar el mantenimiento y la
reparación de equipos controlados por CPX.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


3

Indicaciones Importantes
Para la utilización segura y exenta de fallos del módulo CPS y de la
estación de Elevador, es indispensable conocer las indicaciones y las
normas de seguridad básica

El presente manual (y sus prácticas), contienen las indicaciones de


seguridad más importantes para el uso correcto y fiable del sistema.

Todas las personas que trabajan con el módulo elevador y con el


controlador tipo CPX deberán respetar las indicaciones de seguridad.

Adicionalmente deberán respetarse las reglas y prescripciones de


prevención de accidentes válidas en el lugar de la utilización.

Responsabilidad del Usuario.


El usuario se compromete a permitir el uso del sistema Elevador y de los
módulos CPX únicamente a personas que cumplan con las siguientes
condiciones:

• Personas que conocen las normas de seguridad en el puesto de


trabajo y de prevención de accidentes y que han sido instruidas en la
utilización de los módulos Elevador y el controlador tipo CPX
• Personas que han leído y entendido el capítulo dedicado al tema de
la seguridad y las advertencias contenidas en el presente manual.

Deberá controlarse regularmente si el personal trabaja aplicando los


correspondientes criterios de seguridad.

Responsabilidad de los estudiantes.


Todas las personas a las que se encomendó el trabajo con la estación de
elevador y/o controlador CPX, deberán comprometerse a lo siguiente
antes de iniciar el trabajo:

• Leer el capítulo dedicado al tema de la seguridad y las advertencias


contenidas en el presente manual.
• Respetar las normas básicas de seguridad en el puesto de trabajo y
de prevención de accidentes.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


4

Riesgos en la utilización de los equipos.


La estación de elevador y el controlador CPX, han sido concebidos
recurriendo a la tecnología más avanzada y respetando las normas de
seguridad técnica. No obstante, es posible que existan riesgos que
pueden poner en peligro la integridad física y la vida del usuario o de
terceras personas o que se produzcan daños en la máquina o en otros
bienes materiales.

La estación de elevador y los controladores CPX objetos de esta entrega,


únicamente deberán utilizarse respetando las siguientes condiciones:

• Utilización prevista y convenida


• Utilización en perfecto y seguro estado técnico.

¡Deberá eliminarse de inmediato cualquier fallo que pueda reducir el


nivel de seguridad en la estación de trabajo!

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


5

Garantía y Responsabilidades.
Son válidas nuestras “Condiciones generales de venta y suministro”.
Éstas están a disposición del usuario a más tardar en fecha de firma del
contrato. Se excluyen los derechos de garantía y de responsabilidades en
caso de daños a personas o a bienes materiales si éstos se deben a una o
varias causas que se especifican a continuación:

• Casos de utilización no prevista y convenida de la estación elevador y


los controladores tipo CPX.
• Montaje, puesta en funcionamiento, utilización y mantenimiento
incorrectos de la estación Elevador o de los controladores.
• Utilización de la estación de elevador y de los controladores CPX
estando defectuosos los sistemas de seguridad o si los sistemas de
seguridad y protección no fueron montados correctamente o si no
funcionan correctamente.
• Desatender las indicaciones incluidas en el presente manual en
relación con montaje, puesta en funcionamiento, utilización,
mantenimiento y equipamiento de la estación de elevador y los
controladores CPX.
• Efectuar modificaciones no autorizadas en la estación de Elevador.
• Control deficiente de las partes del equipo, sujetas a desgaste.
• Ejecución incorrecta de reparaciones.
• Catástrofes provocadas por incidencia de cuerpos extraños y por
causas de fuerza mayor.

Festo Didactic excluye cualquier responsabilidad en relación con daños


ocasionados a aprendices / estudiantes de la empres y/o de otros
terceros si la utilización / el funcionamiento del equipo se realiza en
condiciones que no son estrictamente de enseñanza, a menos que Festo
Didactic haya provocado los daños de modo premeditado o por
imprudencia temeraria.

Utilización prevista y convenida.


La estación y los módulos CPX que se describen en el presente manual,
están previstos exclusivamente para fines de formación y
perfeccionamiento profesional en materia de automatización y fueron
concebidos únicamente con este fin. La entidad a cargo de la formación
y/o los instructores que la imparten deberán velar por que los apredices /
estudiantes respeten las disposiciones de seguridad que se describen en
los manuales correspondientes.

La utilización prevista y convenida también incluye lo siguiente:

• Observación de todas las indicaciones incluidas en el presente


manual
• Observación de los trabajos de inspección y mantenimiento.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


6

Indicaciones de seguridad.

Indicaciones Generales
• Los aprendices / estudiantes únicamente deberán trabajar con la
estación en presencia y bajo la vigilancia de un instructor
• Tener debidamente en cuenta las indicaciones incluidas en las hojas de
datos correspondientes a cada uno de los elementos y, en especial,
todas las indicaciones correspondientes a la seguridad.

Electricidad
• ¡Las conexiones eléctricas sólo deberán realizarse estando
desconectada la corriente eléctrica en el equipo!
• Utilizar únicamente baja tensión de máximo 24 V DC.
• Si se utilizan componentes con conexión de 120 V AC o 230 V AC, las
conexiones únicamente podrá realizarlas na persona debidamente
cualificada.
• Asegurar la conexión a la red eléctrica mediante un interruptor
adecuado para tal fin.

Neumática
• No superar la presión máxima admisible de 800 kPa (8 bar).
• Conectar el aire comprimido sólo después de haber conectado los
tubos flexibles de haberlos asegurado debidamente.
• No retirar los tubos si el sistema se encuentra bajo presión.

Mecánica.
• Efectuar el montaje de todos los componentes de modo fijo y de
acuerdo a indicaciones del manual.
• Acceder a partes de la estación únicamente si no está en
funcionamiento.

Motores y Sistemas de posicionamiento.


• Asegurarse de informar cada proceso de encendido o apagado del
sistema, a las personas cercanas a la estación o al motor.
• Asegurar que el movimiento de los motores estará libre de
obstáculos o restricciones.
• Asegurar el buen funcionamiento de los sensores utilizados como fin
de carrera antes de realizar pruebas de movimiento.

Técnica de Sensores
• Asegurar la conexión adecuada de los sensores antes de realizar
pruebas integradas con un sistema de control.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


7

Práctica 1. Qué es CoDeSys?


Objetivos:
• Identificar las principales características de CoDeSys.
• Reconocer los procedimientos que deben seguirse para lograr una
correcta instalación de CoDeSys.
• Identificar los diferentes manuales del tema que soportan el proceso de
aprendizaje de CoDeSys.

¿Qué es CoDeSys?
CoDeSys es una herramienta de desarrollo completa para la creación de
aplicaciones específicas en PLC (CoDeSys significa Controlled
Development System)
Puede entenderse a CoDeSys como una herramienta de software que
pone a disposición del usuario final (el programador del PLC) los
principales componentes de la norma IEC 61131-3. Para lo anterior se
basa en lenguajes de programación avanzada (como Visual C++) para el
uso de entornos amigables de edición y depuración.
Gracias al soporte de la norma IEC 61131-3, CoDeSys, soporta los
diferentes lenguajes de programación y adicionalmente soporta algunas
rutinas en C y programación orientada a objetos. En combinación con un
paquete de soporte (SP por sus siglas en inglés), CoDeSys puede llegar a
soportar diferentes dispositivos y diferentes aplicaciones para la
programación.

¿Por qué CoDeSys?


CoDeSys es desarrollado por la empresa Alemana 3S Smart Software
Solutions Gmbh, actualmente esta empresa una de las más importantes
desarrolladoras de software en la industria de automatización Europea.
Así mismo CoDeSys es líder en el desarrollo de sistemas de programación
independiente basado en la norma IEC 61131-3 y que funcionan bajo
Windows.

Así entonces, y a partir de 2006 Festo inicia un trabajo conjunto con 3S,
con el ánimo de crear una línea completa de controladores lógicos

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


8

programables bajo las directivas de la norma estándar internacional, los


primeros productos nacidos de esta “alianza” son los controladores tipo
CPX-CEC.

El hecho de pertenecer a este Estándar, genera ciertas ventajas entre las


que se pueden mencionar:

• Reducción en tiempos de entrenamiento, depuración,


mantenimiento y consulta, en el personal encargado de las
labores de programación
• Reducción del tiempo en el desarrollo de aplicaciones de software
gracias a las posibilidades de re-utilización de código entre
diferentes controladores.
• Técnicas de programación fáciles de trasladar a otros
controladores (y fáciles de importar!!).
• Combinación harmoniosa de diferentes componentes y
dispositivos provenientes de distintos lugares, compañías, países
o proyectos.

¿Qué define el Estándar 61131-3?


En una forma bastante sencilla se puede decir que la norma, establece un
marco específico y general para:
• La estructura de un proyecto desarrollado para un controlador en
específico.
• La sintaxis y la semántica que debe utilizarse para el desarrollo de
programas en 5 lenguajes de programación fundamentales
Listados de instrucciones, diagrama de bloques de funciones,
diagrama de escalera, Texto Estructurado, y Esquema Secuencial
de Funciones.
• Definición de los diferentes tipos de programas y bloques de
funciones que pueden utilizarse.
• Sintaxis y procedimientos específicos para la declaración de
datos.

CoDeSys Provided By Festo.


CoDeSys Provided By Festo, ofrece adicionalmente una interfaz adecuada
con las siguientes funciones:

• Configuración y establecimiento de parámetros del dispositivo


CPX-CEC
• Librería integrada para el manejo de módulos específicos.
• Administrador de librerías para la integración de librerías de
módulos adicionales o nuevos.
• Modo de simulación que permite la prueba de programas en el PC,
sin necesidad de PLC
• Visualización con el editor integrado para tal fin.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


9

• Documentación y ayuda en línea-


• Herramientas para depuración: Prueba de la secuencia del
programa, observar y cambiar variables, búsqueda de errores y
otras.

Para utilizar un controlador (target) bajo CoDeSys provided by Festo,


se requiere un paquete de soporte para controlador específico (Target
Support Package). Esto permite acceder a las funciones del sistema
del controlador y contiene la correspondiente información en forma de
“ayuda en línea”. Este paquete de soporte permite o impide la
utilización de ciertas funciones de acuerdo al controlador que se
maneje en el momento.

Al instalar la versión de CoDeSys incluída dentro de algún controlador


CPX de Festo, no será necesaria la descarga de un Paquete de
soporte, sin embargo y si se requiere la instalación del mismo, se
recomienda la lectura del capítulo 1.3 del manual XXX
“CPX_CEC_Online_help_en” incluida en el C.D.

Requerimientos del Sistema


Previa a la instalación de CoDeSys, se recomienda la verificación de los
requerimientos del sistema:
– Sistema Operativo Windows XP, Windows Vista
– Memoria RAM 1024 MB
– Espacio disponible en disco 1 GB
– Procesador Pentium V, Centrino ≥3,0 GHz. Pentium M ≥1,5 GHz

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


10

Instalación
Para una correcta instalación de CoDeSys provided by Festo, se debe
seguir este procedimiento:

1. Buscar y ejecutar el archivo “CoDeSys_pbF_v2393.exe”, en la carpeta


“CoDeSys pb Festo”; del Cederrón de la capacitación.

2. Seleccione el idioma para la instalación (Francés, Alemán e inglés


disponibles)

3. Seguir las instrucciones, leer el acuerdo de licencia, escoger el


destino de la instalación y seleccionar los componentes a instalar

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


11

4. Culmine el proceso de instalación siguiendo las instrucciones dadas


por el ayudante de instalación.

Familiarizándose Con el Entorno CoDeSys.

Con el objetivo de conocer el entorno CoDeSys, se iniciará el programa


desde el menú de inicio en Windows siguiendo la ruta:

Inicio—Programas – Festo Software—CoDeSys V2.3 By Festo – CoDeSys


V2.3

La siguiente ventana aparecerá:

Ahora, y con el ánimo de explorar los diversos componentes del software,


se abrirá un proyecto de ejemplo a través del cual se estudiará la
funcionalidad de algunas herramientas importantes.

En el software ejecute File—Open en la ventana emergente seleccione


First Steps.pro

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


12

Una Ventana de advertencia aparecerá informándole acerca del cambio de


una de las librerías del proyecto, seleccione “NO” para continuar.

La siguiente figura muestra los principales componentes del proyecto


recientemente abierto.
Barra de menús

Herramientas Especiales

Editor de Programa

Organizador
De Objetos

Editor de Programa
Ventana Visualización

Ventana de Mensajes

Barra de Estado.

La barra de menús: contiene las herramientas que comúnmente se


utilizan para la creación de un proyecto en CoDeSys, como las de
ejecución, copiar, pegar, zoom, buscar y otras. Estas herramientas se
mantienen abiertas mientras exista un proyecto abierto.

Herramientas Especiales: Son herramientas específicas que se utilizan


para la creación de un programa o función, en un determinado lenguaje

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


13

de programación, estas herramientas cambian cuando se seleccionan


ventanas con lenguaje de programación diferente; para observar lo
anterior seleccione una de las ventanas de “editor de programa” mientras
que observa los íconos en esta barra de herramientas.

Editor de programa: las Ventanas de editor de programa son aquellas que


permiten crear un programa o función como tal, siguiendo los
lineamientos y reglas de cada uno de los lenguajes de programación que
CoDeSys abarca.

Ventana de Visualización: Esta ventana ofrece la posibilidad de crear un


entorno gráfico que simula las acciones que se llevan a cabo en el
programa, aunque se observará con detalle más adelante, baste decir por
el momento que se pueden realizar labores de simulación bastante
sencillas ligando elementos gráficos con variables específicas utilizadas
en los programas creados para el PLC.

Ventana de Mensajes: Allí se podrá encontrar información referente a los


procesos de compilación y depuración que se realicen en el software, allí
se puede realizar un seguimiento adecuado de los errores, una
identificación de problemas de librerías u otros por el estilo.

Barra de Estado: Resume en gran parte el estado actual de la ejecución


del programa en el software, así entonces, un rápido vistazo a la mismas
permitirá si el sistema se encuentra en línea, en modo simulación, en
error, etc.

Organizador de Objetos: Este componente del software resume en gran


parte la estructura que debe tener un proyecto como tal, siendo esta la
que se presenta en la siguiente figura:

Proyecto

POU‘s Tipos de HMI Recursos


Datos

Variables
Declaración Globales

Código Librerías

Estos aparecen en el organizador de objetos de la siguiente manera

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


14

Los componentes de un proyecto en CoDeSys.


Aunque en este apartado se analizarán los principales componentes de un
proyecto en CoDeSys, se recomienda al lector la revisión completa del
capítulo 2 “What is What in CoDeSys” del manual de usuario CoDeSys
Usermanual V2.3.

Un proyecto contiene todos los objetos necesarios para la descarga de un


programa de PLC, sus componentes principales son aquellos descritos en
el aparte anterior en el “organizador de objetos”. Se puede encontrar una
breve descripción de cada uno de ellos a continuación:

POU (Program Organization Unit)


Se puede considerar como POU a toda función, bloque de funciones, y
programas que pueden realizarse e implementarse a través de acciones.
Cada POU consiste de una parte declarativa y un cuerpo, siendo este
cuerpo obligatoriamente escrito en alguno de los lenguajes de
programación que soporta CoDeSys

Tipos de Datos
Se refiere precisamente a los tipos de datos que se pueden manejar en un
proyecto como tal. Aparte de los estándares, el usuario puede definir sus
propios datos.

NOTACIÓN RANGO EJEMPLO


BOOL 0, 1 FALSE, TRUE, 0, 1

SINT, INT, DINT -128 .. 127, -32768 .. 32767, 0, 24453


-2147483648 .. 2147483647 -38099887

USINT, UINT, UDINT 0 .. 255, 0 .. 65535, 200, 47453


0 .. 4294967295 138099887

BYTE, WORD, DWORD 0 .. 255, 0 .. 65535, 8450


0 .. 4294967295 16#2102

REAL, LREAL -1.2x 10-38 .. 3.4x 1038 1.34996


-2.3x 10-308 .. 1.7x 10308 2.8377E-15

TIME, TOD, 0 ms .. 1193h2m47s295ms T#1d8h12m8s125ms


00:00:00 .. 23:59:59 TOD#12:34:17
DATE, DT 01.01.1970 until approx. D#2001-03-15
06.02.2106 DT#2001-03-15-12:17:03

STRING 1 .. 255 chars `Emergency Stop`

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


15

HMI
CoDeSys contiene elementos de visualización que permiten mostrar las
variables involucradas en el proceso. Se pueden graficar diversos
elementos fuera de línea, o se pueden hacer responsivos a los cambios de
variables determinadas cuando se encuentra en línea con un controlador.

Recursos
Se requieren los recursos para la configuración y organización adecuada
de un proyecto, así como para la detección de cambios en las variables:
Variables globales que puedan ser usadas a lo largo del proyecto.
Gestor de Librerías para adicionar librerías al proyecto
Configuración de alarmas para el manejo de las mimas en el proyecto.
Configurador de tareas, para guiar a los programas a través de tareas.
Entre otros módulos.

Ejercicios Adicionales:
1. Realice un resumen acerca de las principales características de
CoDeSys Provided By Festo.
2. Realice un resumen acerca de los componentes de un poyecto
realizado en CoDeSys
3. Explore la funcionalidad del proyecto First Steps.pro que se abrió
durante la guía, para ello, primero ubique la barra de herramientas y
allí ejecute
Online—Login
De nuevo en la barra de herramientas ejecute:
Online—Run
Ahora, interactúe con la ventana de visualización haciendo clic sobre
los botones de “Start” y “Ok”, observe que sucede y trate de
comprender la lógica detrás de este programa. Cuando finalice
ejecute
Online—Stop

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


16

Práctica 2. Los Lenguajes de Programación


Objetivos
• Reconocer los distintos lenguajes de programación disponibles en
CoDeSys provided by Festo.
• Identificar las principales diferencias y similitudes entre estos lenguajes.
• Reconocer posibles ventajas y desventajas de cada uno de ellos que
puedan ser aprovechadas de manera adecuada en la realización de
aplicaciones.

Los lenguajes de Programación.


Como se ha mencionado con anterioridad CoDeSys soporta todos los
lenguajes de programación que se describen en la siguiente tabla.

Lenguaje de
Tipo Descripción básica
programación
Lista de Lenguaje de El listado de instrucciones puede
instrucciones (IL) programación considerarse como una seguidilla de
basado en instrucciones que contienen operandos
texto para describir el proceso del PLC
Texto Estructurado El texto estructurado es el más
(ST) parecido a los lenguajes utilizados en
un PC, así como PASCAL y C. consiste
en una serie de declaraciones que
pueden ejecutarse de acuerdo a
condiciones o a ciclos.
Gráfico de funciones Lenguaje de Permite la programación de tipo
Secuencial (SFC) programación secuencial, por ende es adecuado para
gráfico la estructuración de los proyectos. Con
transiciones y divisiones este lenguaje
permite la ejecución certera de pasos
de acuerdo a condiciones
determinadas.
Diagrama de bloque Trabaja con una serie de funciones
de Funciones (FUB) encadenadas en una especie de red
que realiza una función lógica o
matemática, incluye a su vez funciones
de salto, temporización y otras.

Diagrama de Basado en FUB, este lenguaje permite


Funciones Continuo una ubicación y retroalimentación más
(CFC) sencilla de los elementos a utilizar en la
programación
Diagrama en Originado desde la lógica cableada, y
Escalera (LDR) por ende similar en desarrollo al
proceso para creación de circuitos
eléctricos lógicos de control.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


17

Generalidades para los lenguajes de programación


CoDeSys soporta todos los operandos reconocidos por la norma IEC,
además de otras funciones contenidas en la librería Estándar (Standard
Lybrary), estos comandos son reconocidos de manera implícita a través
del proyecto que se desea desarrollar. Los operandos son utilizados
como funciones en los POU.

Estas funciones generales se encuentran agrupadas en los siguientes


conjuntos:
– Operandos de tipo Aritmético, tales como sumar, restar, dividir,
multiplicar, entre otros.
– Operandos para el manejo de cadenas de bit, tales como operaciones
lógicas AND, OR, XNOR, XOR y NOT
– Operandos para cambio y movimientos de Bit, encontramos aquí
herramientas para la rotación de bits, hacia derecha o izquierda.
– Operandos para Selección, se utilizan para el trabajo con un grupo
determinado de datos, y así calcular aspectos como el máximo valor, el
mínimo, realizar selecciones, entre otras.
– Operandos para comparación, son aquellos utilizados para realizar una
comparación entre dos o más elementos, aquí encontramos entonces,
mayor que, menor que, mayor, menor, igual, entre otras.
– Operandos para realización de llamados, de funciones, de bloques de
funciones o de programas.
– Elementos para la conversión del tipo de datos, utilizados simplemente
para cambiar el tipo de un dato específico a otro diferente para efectos
de manipulación adecuada dentro de un programa.
– Operandos Numéricos. Utilizados principalmente para el cálculo de
operaciones matemáticas específicas y avanzadas, tales como la raíz
cuadrada, el valor abosluto, las funciones trigonométricas y otras.

Es importante recordar que, si bien las funciones anteriormente descritas


son las incluidas por defecto en la norma, CoDeSys puede soportar
diferentes tipos de librerías que agregan funciones especializadas para
determinadas labores y que obviamente están por fuera de la lista
anterior.

Generalidades del Listado de Instrucciones (Instruction List IL)


Este es un lenguaje de programación textual similar a Assembler. Puede
considerarse básicamente como una seguidilla completa de instrucciones
que se ejecutan una después de la otra de acuerdo al orden en el que
figuran en el programa.
Debido a que se inicia siempre con una instrucción, se requiere un
espacio de memoria para el almacenamiento temporal de los resultados y
operaciones que se llevan a cabo, es decir, las operaciones se llevan a
cabo a través de un acumulador.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


18

La lista de instrucciones es fácil de entender cuando el programa es


pequeño, pero se pierde esta característica cuando se requieren
procedimientos complejos dentro del proyecto, principalmente debido al
hecho de que este lenguaje no soporta operandos para la programación
estructurada.

Considérese entonces el siguiente ejemplo:

LD CASA
ADD 3
ST RESULTADO

LD RESULTADO
EQ 5
JMPC Inicio

Así, en orden descendente las funciones realizadas fueron:

Cargar la variable CASA en el acumulador


Sumar el valor de tres a lo que se encuentra en el acumulador
Guardar el resultado en la variable RESULTADO

Cargar la variable RESULTADO en el acumulador.


Comparar si el valor cargado es igual a tres
Si el resultado de la comparación es cierto saltar a “inicio”

Generalidades del Texto Estructurado (Structured Text ST)


Lenguaje Textual especializado de alto nivel; incorpora rutinas y
componentes de programación similares a los utilizados en PASCAL.
Las características anteriores le confieren a este lenguaje las mejores
herramientas para la programación de ejecuciones basadas en
condiciones específicas, y para la realización de ciclos específicos como
IF, WHILE, FOR, entre otros.

A pesar de sus características la programación en este lenguaje puede


llegar a ser complicada por los cuidados que deben tenerse a la hora de
sintaxis y la estructura del programa, además existen funciones
específicas como las de temporizado y otras en las que el texto
estructurado no es muy fuerte.

Se pueden observar a continuación algunos ejemplos de utilización de


ciclos con sus respectivas explicaciones:

WHILE contador <> 0 DO


Var1 := Var1*2;

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


19

Contador := Contador-1;
END_WHILE

Mientras el contador sea diferente de cero, se duplicará el valor contenido


en Var1, se decrementará el contador y se repetirá el proceso.

IF temp < 17
THEN Calentador := TRUE;
ELSE Calentardo := FALSE;
END_IF;

Si la temperatura es menor que 17 entonces se enciende el Calentador, de


lo contrario, se Apaga.

Diagrama de Bloques de Funciones (Function Block Diagram FBD)


Lenguaje de programación gráfico que permite la ejecución de “redes” en
forma paralela. Cada red o rama del programa se compone de bloques,
cada uno de ellos representa una función en específico que permiten
realizar una secuencia en el PLC.
La realización de secuencias, es una tarea compleja si se utiliza este
lenguaje de programación, debido principalmente a la imposibilidad de
realizar conexiones de retroalimentación entre los bloques, y por las
pocas opciones para realizar una programación estructurada.

Esquema Continuo de Funciones (Continuos Function Chart CFC)


Este lenguaje de programación retoma la capacidad gráfica del FBD para
la representación de funciones mediante bloques, pero en lugar de
trabajarlo de manera paralela, utiliza el emplazamiento libre de elementos
incorporando así una secuencialidad más clara y la posibilidad de
retroalimentación.
Las funciones de temporizado y algunas secuencias se hacen sencillas con
este lenguaje, sin embargo, funciones de asignación de valores y otras de
comparación pueden complicarse en algunos proyectos.

Se presenta a continuación un ejemplo de un anidamiento de


temporizadores, utilizando este lenguaje de programación.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


20

Diagrama de Escalera (Ladder Diagram LD)


Lenguaje de programación gráfico que se asemeja en muchos aspectos al
desarrollo de secuencias en lógica cableada, cada una de las partes del
programa se representa en una rama compuesta de contactos y bobinas.
Lo anterior hace al lenguaje Escalera para el manejo de variables de tipo
booleano, para el manejo y/o control de otros programas dentro del
proyecto de CoDeSys.

Se presenta a continuación un sistema de control para el encendido y


apagado de un motor a través de diferentes entradas.

ENT1 ENT2 SEGURO %QX1.0

sen1 sen2

paro1 paro2 paro3

%IX2.0

%IX2.3 %IX2.8

Diagrama Secuencial de Funciones (Sequential Function Chart SFC)


Lenguaje Gráfico orientado, que hace posible la descripción del orden
cronológico de los acontecimientos que se llevan a cabo en el programa.
Para lograr lo anterior el lenguaje se vale de elementos de acciones
definidas dentro de pasos, involucrados en una secuencia a través de
transiciones; tal y como se explica en la norma IEC 60848 que define los
lineamientos de la metodología GRAFCET.

SFC es el lenguaje ideal para dar estructura a un proyecto en específico,


como las acciones se pueden escribir en los pasos utilizando cualquiera
de los lenguajes anteriormente descritos, es entonces posible combinar
diversas alternativas en búsqueda de una solución adecuada.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


21

Ejercicios Adicionales:
1. Para una mejor comprensión acerca de los operandos disponibles en
CoDeSys, realice una lectura del Apendice A del manual de usuario de
CoDeSys Versión 2.3
2. Para una mejor comprensión acerca de los lenguajes de programación
soportados por CoDeSys, se recomienda la lectura del capítulo 2.2 del
manual de usuario de este software.
3. Realice un cuadro comparativo de los lenguajes de programación
soportados por CoDeSys haciendo énfasis en sus principales ventajas
y desventajas

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


22

Práctica 3. Ejercicio LADDER LD


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
• Comprender el procedimiento para la creación de un proyecto
para simulación en CoDeSys v2.3 provided by Festo.
• Realizar proyectos básicos en diagrama de escalera (Ladder)
insertando e interconectado elementos propios de este lenguaje
de programación
• Comprender el procedimiento básico para la realización de
simulación para la puesta a punto de programas realizados en
diferentes lenguajes.
• Identificar principales ventajas y desventajas de este lenguaje de
programación.
• Comprender el funcionamiento de los temporizadores TON, TOFF y
TP

Explicación del Ejercicio.


Con el ánimo de explorar la funcionalidad del diagrama de contactos, se
creará una luz de destello controlada por una entrada que simulará un
pulsador de inicio al cual llamaremos Start. Para lo anterior será
necesario el uso de funciones específicas de temporizado y de otros
elementos que se explicarán en detalle a medida que se avanza en la
creación de una solución

Creación de un proyecto para simulación en CoDeSys.


Una vez instalado el software siguiendo las indicaciones de prácticas
anteriores, lo ejecutamos siguiendo:

Inicio—Programas—Festo –Festo Software—CoDeSys V2.3 by Festo

Una vez allí crearemos un nuevo proyecto, dirigiéndonos a la barra de


menús para ejecutar File—New .
Esto nos remite a una ventana donde podremos seleccionar el tipo de
controlador de destino para el proyecto, teniendo en cuenta que en este
caso se quiere hacer una simulación entonces seleccionamos allí “3S
CoDeSys SP PLCWinNT V2.4”

Una vez seleccionado una nueva ventana mostrará los elementos


configurables de este controlador de simulación, debido a que las

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


23

condiciones que aparecen por defecto son más que suficientes para la
realización de este proyecto, se aprueban los elementos mostrados
haciendo clic en OK.

Ahora una nueva ventana nos pedirá que seleccionemos el lenguaje de


programación que se desea trabajar (LADDER o LD en este ejercicio).

Recuerde que: POU significa Program Organization Unit y este puede ser
de tres tipos: un programa, una función o un bloque de ellas. Por defecto,
CoDeSys nombra por defecto PLC_PRG al primer programa creado, debido
a que este es el único programa que se ejecuta por defecto al momento
de iniciar un proyecto en el controlador, entonces, dejaremos este nombre
sin cambios para poder probar nuestros avances. Más adelante se
explorará la creación de diferentes programas en la creación de proyectos
más avanzados.

Una nueva ventana aparecerá con el entorno de programación


seleccionado, en este caso las herramientas para la lógica de contactos.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


24

Nótense dos cosas: primera, que la barra de herramientas especiales en el


menú superior contiene íconos específicos para este lenguaje, y segunda,
la ventana de programación se encuentra dividida en dos partes una
superior para la definición de variables utilizadas en el programa y la
inferior para la creación del programa como tal (sin importar el lenguaje
de programación que se seleccione, estas dos situaciones siempre se
presentarán).

Finalmente, se le indicará al software que el proyecto tendrá únicamente


objetivos de simulación, ejecutando desde la barra de menús:

Online—Simulation Mode

Creación del Programa Solución en LADDER.


Para familiarizarse con la manera como se introducen comandos,
funciones y demás, se recomienda la lectura del capítulo 5.4.3 The ladder
Editor.

El Lenguaje de programación LADDER o de diagrama de contactos, debe


ser analizado como un circuito basado en lógica cableado que ha sido
creado con el ánimo de resolver un problema en específico. Es así como
se tendrán las entradas al sistema desde el lado izquierdo, y las salidas
del mismo al lado derecho. Cada entrada suele representarse como un
contacto normalmente abierto o cerrado, y cada salida se suele
representar con un símbolo de bobina cuya activación o desactivación
dependen directamente del estado de los elementos a ella conectados.

Ahora, iniciaremos por la creación de un contacto al que llamaremos


“start”, para ello diríjase a la primera línea del programa haga clic derecho
y seleccione la opción “Contact”, o si lo desea haga clic en la línea del
programa y luego clic sobre el ícono correspondiente a un nuevo contacto
en la barra de herramientas especiales. Su ventana debe lucir como a
continuación:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


25

Los signos de interrogación (???) sobre el contacto creado indican que no


se ha introducido la variable que se desea manejar, para hacerlo, haga clic
sobre los este símbolo y allí escriba Start u otro nombre con el que quiera
designar su contacto. Al momento de hacerlo una ventana de definición
de variables aparecerá automáticamente.

Entonces, cada vez que se ingrese una variable desconocida CoDeSys


desplegará este asistente para ayudar con la configuración, allí
encontramos tres aspectos fundamentales:
Declaración de Variables
1. Class. Se define si esta será una variable de entrada (VAR_INPUT),
una variable de salida (VAR_OUTPUT), o una variable para uso interno
y exclusivo de este programa (VAR). Cabe anotar que las variables de
entrada y de salida serán aquellas que le permitan a un programa en
específico interactuar con otros programas o bloques de funciones.
2. Name, el nombre que queremos asignar a la variable.
3. Type, que corresponde al tipo de dato que se maneja INT, BOOL,
REAL, TIME, específicos de alguna función u otros (ver Apéndice C, en
el manual CoDeSys v2.3).

Recuerde que: Cada vez que se define una variable a través del asistente,
el código correspondiente aparecerá en la parte superior de la ventana de
programación, así que si se desea realizar alguna corrección, supresión, o
adición, esta puede hacerse de manera manual allí.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


26

Para el caso de nuestro pulsador “Start” tenemos que será una variable
de entrada de tipo Booleano (VAR_INPUT, BOOL). Como este pulsador
controlará un temporizador, se debe buscar entonces la función de tiempo
adecuada para la inserción, se remitirá al lector al capítulo 10.17.5
Timer…donde podrá encontrar detalles acerca del funcionamiento de los
mismos.

Inserción de temporizadores.
En CoDeSys los temporizadores se consideran funciones especiales que
deben ingresarse de manera especial haciendo clic en el ícono
correspondiente en la barra de herramientas especiales.

Aparece un Tipo de temporizador tipo TON, con parámetros por definir,


uno de ellos el nombre (en la parte superior de la función), y el otro el
valor a temporizar (cerca al terminar PT).

Recuerde que: siempre que se inserte una función especial debe


asignársele un nombre para su uso dentro del programa, al ser
reconocido como Variable el tipo de la misma debe Coincidir con el
nombre de la función, así por ejemplo, al asignar el valor de “tiempo” a la
función recientemente insertada, la ventana de declaración de variables
debe llenarse como se sugiere a continuación:

Ahora, la terminal PT, recibe datos en el formato de tiempo, estos pueden


ingresarse siguiendo las indicaciones para variables de este tipo, así si se
desea tener un tiempo de 4 minutos, 5 segundos, y 300 milisegundos se
escribe: T#4m5s300ms

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


27

En nuestro caso se probará el temporizador con 3 segundos, haciendo:

Para completar nuestra prueba, se requiere una salida (bobina) del


temporizador que se conecta en la terminal Q, para lo anterior se puede
hacer clic derecho en la rama correspondiente y seleccionar la opción
“Coil” o hacer uso del ícono para tal fil.

A la bobina creada se le da el nombre de LUZ, y se define como una


VAR_OUTPUT de tipo BOOL, siguiendo los procedimientos anteriormente
mostrados, la ventana debe lucir como a continuación:

Procedimiento para la Depuración y Simulación de Programas.


Una vez concluido el procedimiento anterior, Grabe sus progresos
seleccionado una ubicación y un nombre apropiados.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


28

Ahora, realizaremos una compilación de los componentes de nuestro


proyecto ejecutando en la barra de menús Project—Build, o simplemente
presionando la tecla F11

Como resultado de este proceso, la ventana de en la parte inferior deberá


mostrar cero errores y cero advertencias.

Recuerde que: En caso de que su proyecto presente algún error o errores,


estos se presentarán en la lista con un color rojo, para corregirlos, busque
siempre el primero en la lista haga doble clic sobre el error e
inmediatamente será remitido al punto donde se encuentra el problema,
trate de corregirlo y repita el procedimiento de compilación, en búsqueda
de los cero errores y cero advertencias; en caso de una nueva falla…
…corrija de nuevo.
Sólo con un proceso de compilación exitoso se puede proceder a una
simulación o a una descarga.

Para simular primero se debe realizar una conexión con el PLC virtual,
para ello ejecute en el menú de herramientas Online—Login, o
simplemente presione Alt+F8.

Al hacer lo anterior, la pantalla de programación cambia inmediatamente


para mostrar los elementos que se encuentran activos en el momento, por
su parte la parte de declaración de variables muestra el actual estado de
las variables asociadas con nuestro proyecto.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


29

Nótese además que la barra de estado en la parte inferior cambia para


mostrar que el sistema se encuentra en línea, y en modo simulación.

Una vez conectados con el PLC, debemos iniciar la ejecución del programa
ejecutando: Online—Run, o presionando la tecla F5

Ahora, el programa se encuentra listo para ejecutar los cambios en las


variables que se deseen verificar, en nuestro caso, el sistema iniciará
cuando la variable “start” pase de FALSE a TRUE, para simular lo anterior,
se hace doble clic sobre la variable “start” obteniendo lo siguiente:

Nótese que a pesar de que se han cambiado los valores, no se producen


cambios en el programa, esto se debe a que el software está esperando a
que se realice una labor de “Escritura de valores”, para ello haga:

“Online—Write Values” o presione Crtl + F7

Al terminar, lo anterior la variable START cambiará a TRUE, iniciando así la


ejecución del proceso.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


30

Si se quiere cambiar de nuevo el valor de la variable Start, se debe repetir


el proceso de cambio y de escritura de valores explicado anteriormente.

Para salir del modo de simulación ejecute: Online—Logout o presione


Alt+F8.

Explorando los diversos Tipos de Temporizadores.


Una vez analizados los resultados obtenidos de la simulación con el
temporizador TON, se estudiará el funcionamiento de los temporizadores
TOF y TP.

Haciendo clic en los nombres correspondientes se realizarán los


siguientes cambios de manera manual:

Completado el proceso anterior, compile y simule su programa.


Analizados los resultados, proceda a realizar las pruebas con el
temporizador tipo TP.

Compilar, simular y analizar los resultados.

Control de una luz de Destello


Aunque existen muchas maneras de controla una luz de destello a través
de un pulsador de inicio, se explorará en este momento la siguiente
solución:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


31

Para su implementación se deben tener en cuenta dos cosas:


1. Aparece en la solución una variable “ayuda” que se utiliza para lograr
una unión adecuada de los temporizadores de encendido y apagado.
Como esta variable no representa entrada o salida del programa,
entonces se define como clase “VAR” de tipo “BOOL”.
2. Nótese que se ha utilizado un contacto denominado “tiempo.Q”. Esta
es precisamente una de las ventajas de CoDeSys, la posibilidad de
utilización de objetos y sus propiedades, así entonces, debido a que
se definió la variable “Tiempo” como una de tipo “TON”, entonces
“tiempo” contiene dentro de sí todos los elementos de un
temporizador con retardo a la conexión, como lo son: su valor a
temporizar PT, su valor actual ET, su entrada IN, y su salida Q. Para
acceder a ellos solo es necesario dar el nombre de la variable seguido
de un punto, y allí aparecerán todas las variables que pueden
trabajarse.
Realice el montaje del ejercicio, compile, simule y analice sus resultados.

Ejercicios Adicionales.
1. Modifique el ejercicio de control de la luz de destello, para lograr el mismo
resultado pero utilizando temporizadores con retardo a la desconexión
TOF.
2. Implemente un pulsador de STOP, que permita detener la secuencia de
destello en cualquier momento, para ello puede valerse de la propiedad
de encender y apagar bobinas que aparece en las herramientas
especiales.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


32

Práctica 4. Ejercicio Lista de Instrucciones IL


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
• Realizar proyectos básicos en Lista de instrucciones (IL)
escribiendo el código propio de este lenguaje de programación
• Identificar principales ventajas y desventajas de este lenguaje de
programación.
• Realizar aplicaciones de conteo sencillas, utilizando funciones de
adición, y saltos.
• Comprender la importancia del asistente para entradas (input
Asistant)

Explicación del Ejercicio.


En esta oportunidad se utilizarán funciones de tipo matemático para
contar el número de veces que una entrada cambia de FALSE a TRUE, ,
mientras que el sistema se encuentre contando una salida se mantendrá
encendida. Una segunda entrada servirá para apagar la salida indicadora
y para reiniciar el proceso de conteo.
Durante el proceso de realización de este ejercicio se analizarán algunos
referentes a la ejecución de tareas en lista de instrucciones, con el ánimo
de ilustrar formas en las que se pueden resolver diferentes ejercicios en
este lenguaje de programación.

Creación del Programa Solución en IL


Antes de comenzar a realizar algún avance al respecto de la creación del
programa es necesario tener en cuenta que:
1. Toda línea de código en la lista de instrucciones debe comenzar con
una instrucción específica.
2. En muchos sentidos la programación en lista de instrucciones se
facilita si se piensa en la similitud de cada línea creada con su
contraparte en Ladder.
3. El orden en la ejecución en lista de instrucciones (de arriba hacia
abajo), facilita la creación de pasos que permiten omitir ciertas partes
de código.
4. Para una mayor comprensión de algunos de los aspectos que se
explicarán a continuación, se recomienda la lectura completa de los
capítulos 5.3.1 y 5.3.2 (Working in text Editors y The Instruction List
Editor), del manual de usuario de CoDeSysy v2.3 provided by festo.

Ahora, y siguiendo el procedimiento para la creación de proyectos se debe


llegar hasta la ventana de selección de lenguaje de programación, donde
se escogerá, por supuesto, lista de instrucciones IL.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


33

El Asistente de Entradas (Input Asistant)


En este lenguaje en particular, las instrucciones juegan un papel bastante
importante, y debido a la naturaleza escrita del mismo, la sintaxis puede
ser un grave problema en ocasiones. Con el ánimo de dar una salida a este
inconveniente existe en CoDeSys el “Input Asistant” o asistente de entrada
(disponible para otros lenguajes aparte de IL). Para acceder a él se hace
clic derecho en algún espacio en el lugar que se desee y se elige la opción
adecuada, o simplemente presionando la tecla F2

Allí podrán encontrarse todas las funciones disponibles en el estándar y


otras adicionales propias de las librerías disponibles en la versión de
CoDeSys que se trabaje en el momento (para mayor información favor
remitirse a los apéndices A y D del manual de usuario de CoDeSys).

Dejando de lado el asistente para la entrada de datos, comenzaremos por


la implementación de un ejercicio sencillo: el encendido y el apagado de
una Luz, utilizando una entrada Start y otro Stop. El diagrama Ladder
equivalente es el siguiente:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


34

Tratando de explicar cada una de las ramas del anterior diagrama,


podríamos decir lo siguiente:
1. Se carga el valor de START para encender la salida LUZ
2. Se carga el valor de STOP para apagar la salida LUZ.

Esta explicación puede traducirse fácilmente si se tiene en cuenta que:


• LD es la instrucción para cargar un valor en el acumulador
• S es la instrucción para encender una determinada salida
• R es la instrucción para apagar una determinada salida
• START es una variable de entrada de tipo booleano (VAR_INPUT,
BOOL)
• STOP es una variable de entrada de tipo booleano (VAR_INPUT,
BOOL)
• LUZ es una variable de salida de tipo booleano (VAR_OUTPUT,
BOOL)

Pasamos a la ventana de programación de lista de instrucciones para


escribir nuestros progresos haciendo:

Y siguiendo procedimientos vistos con anterioridad se compila, se simula


y se analizan resultados.

Variables de tipo Entero


Para trabajar con un contador, se requiere definir una variable que admita
incrementos y operaciones de tipo matemático. Por esta razón se
trabajará con la variable “Conta” de tipo entero o INT para su correcta
configuración.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


35

Una de las maneras para lograr un incremento en esta variable, utilizando


la lista de instrucciones, es el siguiente:
LD Conta (carga el valor de conta)
ADD 1 (le agrega el valor de uno)
ST Conta (guarda el resultado en conta)

Se agrega este código para poner en evidencia los problemas que se


pueden presentar con el conteo, de la siguiente manera

Compilar, Simular y Analizar resultados.

Detección de Flancos y Generación de Saltos.


El problema de la simulación anterior se resume de manera sencilla:
desborde de contador; algo que puede atribuirse a dos problemas
fundamentales:
1. La falta de un sistema para la detección de flancos ascendentes y
descendentes en la variable START.
2. La pobre unión de condiciones para la realización de conteo (si se
simula hasta el momento el contador se incrementará sin importar
el estado de los demás elementos).

Par la solución de la detección de flancos se puede acudir a una variable


adicional que permita determinar cuando existe una transición de Falso a
Verdadero y de Verdadero a Falso. A esta variable adicional la
llamaremos “ayuda”, y funcionará de la siguiente manera:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


36

• Si START es verdadero y AYUDA es falsa, encenderemos la


variable AYUDA para hacer que esta condición no se cumpla.
• Si START es falso y AYUDA es verdadera, quiere decir que se
presionó Start, pero ya se liberó, razón por la cual podemos poner
la variable AYUDA de nuevo en Falso.

Por otra parte, y con el ánimo de hacer que el conteo solamente se ejecute
una vez se presione el botón de Start, entonces utilizaremos la instrucción
JMPCN que quiere decir “Salto si la condición anterior no se cumple”.

Integrado luce como lo siguiente:

Se analiza, se compila, se simula y se analiza de nuevo.

Ejercicios Adicionales.
1. Tomando como base el ejercicio anteriormente desarrollado,
hacer que la entrada STOP, apague la luz indicadora y también
retorne el contador a Cero.
2. Realizar un proyecto que cumpla con los requerimientos del
numeral anterior, pero en diagrama de contactos (LADDER).

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


37

Práctica 5. Ejercicio Diagrama de Bloque de Funciones FUB


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
• Realizar proyectos básicos diagrama de bloque de Funciones
(FUB)insertando funciones y conexiones propias de este lenguaje
de programación
• Identificar principales ventajas y desventajas de este lenguaje de
programación.
• Realizar aplicaciones con lectura de datos numéricos.
• Utilizar la ayuda en línea para el manejo de funciones específicas.

Explicación del Ejercicio.


Una entrada llamada START, encenderá una salida MOTOR, por un
determinado tiempo; posteriormente y al apagarse el motor se encenderá
un calentador, cuando una variable que simula la temperatura supere los
20 grados, el calentador debe apagarse.

Creación del programa Solución en FUB


El diagrama de bloques de funciones, es un lenguaje de programación
gráfico similar al LADDER, pero que utiliza funciones de diferente tipo para
la realización de una tarea en específico.
Si consideramos cada función como un bloque con entradas y salidas,
vemos que el FUB deja de basarse en la pura lógica cableada, y pasa a
tomar fundamentos de la lógica digital utilizada en circuitos electrónicos.

Para comenzar crearemos un proyecto basándonos en los procedimientos


explicados en guías anteriores, y seleccionando el lenguaje de
programación adecuado:

Ahora, nuestra primera tarea será idear un código que permita encender y
apagar una salida, a través de entradas independientes. Un breve vistazo
a las funciones disponibles (apéndice D y A del manual), nos mostrará que
una buena selección puede ser la función SR. Así que la insertaremos de
la siguiente manera:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


38

Estando ubicados sobre la ventana de programación, haremos clic en el


ícono de insertar función (BOX), o de manera abreviada Ctrl+b

Como resultado de esta operación tendremos lo siguiente (La función AND


será la que se agregue siempre por defecto):

Ahora cambiaremos el nombre de la función por la que elegimos


previamente, es decir reemplazamos AND por SR, al hacerlo
inmediatamente la forma del cuadro cambiará para ajustarse a los
parámetros de la nueva función.

La ayuda En línea (Online Help)


Una de las ventajas que ofrece CoDeSys provided by Festo, consiste en la
ayuda en línea, es decir, ayuda inmediata sobre dudas que se presentan
sobre la marcha, utilizaremos entonces esta propiedad para averiguar la
ayuda disponible para nuestra función SR, para ello seleccione con el
cursor la totalidad del nombre de la función y posteriormente presione la
tecla F1, el resultado debe ser el siguiente:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


39

Este procedimiento puede repetirse cada vez que el usuario requiera


conocimientos adicionales al respecto de una función, estos contenidos
son los mismos que aparecen en el manual de CoDeSys V2.3 provided by
Festo.

Tal y como lo ilustra la ayuda, una entrada en SET1 encenderá la salida Q,


y una entrada en RESET apagará la salida Q. Entonces obviamente
pondremos la variable START para encender un motor y un temporizador,
haciendo lo siguiente:
1. Se escribe START en la entrada SET1, se define esta variable como
VAR_INPUT de tipo BOOL
2. Se asigna una salida en Q, haciendo clic derecho allí y
seleccionando la opción adecuada.
3. Se asigna un nombre a la función (en este caso “memo”) y se
define esta variable como una de tipo SR.

Una vez asignada repetimos el proceso y asignamos una nueva función


(CTRL + B) con el ánimo de recrear el siguiente montaje:

La función recientemente agregada la reemplazaremos con un


temporizador con retardo a la conexión TON, con un tiempo
preestablecido de 4 segundos, y con una salida a una variable de ayuda
llamada precisamente “ayuda”, esta será precisamente la variable que
necesitamos para apagar el motor, es decir, también la asignaremos a la

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


40

entrada RESET de la función “memo”. El montaje esperado se presenta a


continuación:

Para probar que hasta ahora todo está en orden, se compila, se simula, y
se analizan resultados.

Ahora, la segunda parte del ejercicio consiste en encender un calentador,


para ello podemos valernos de una nueva función SR, la cual recibirá
como entrada para encendido la variable “ayuda”, y para apagar el
calentador recibirá una segunda variable llamada “ayuda2”

La variable “ayuda” se encenderá única y exclusivamente cuando una


nueva variable de tipo INT llamada “temp” supere los 20 grados. Para
hacer lo anterior se requiere una función de comparación mayor que o
simplemente GT (información acerca de estos operandos puede
encontrarse en el capítulo 10.5 comparison operands del manual de
usuario de CoDeSys).

Conectando los elementos de manera apropiada y definiendo las


variables asociadas con el proceso podremos tener algo como lo
siguiente:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


41

De nuevo, analizamos, compilamos, descargamos y analizamos de nuevo.

Ejercicios Adicionales:
1. Agregue una entrada adicional llamada STOP que sirva para
detener el motor, y el calentador en cualquier momento.
2. Encuentre una solución al problema de esta práctica (incluyendo
los requerimientos del numeral anterior), utilizando IL
3. Encuentre una solución al problema de esta práctica (incluyendo
los requerimientos del numeral anterior), pero utilizando LD

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


42

Práctica 6. Ejercicio Texto Estructurado ST


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
• Realizar proyectos básicos utilizando texto Estructurado (ST)
utilizando sintaxis propia de este lenguaje de programación
• Identificar principales ventajas y desventajas de este lenguaje de
programación.
• Realizar aplicaciones utilizando listas de declaraciones (IF).
• Comprender el manejo y utilidad de los ciclos disponibles en
Lenguaje Estructurado
• Comprender el manejo de arreglos de números.

Explicación del Ejercicio.


Se abordaran dos problemas básicos, el primero de ellos relacionado con
una luz que se encenderá por 4 segundos luego de que se active una
entrada denotada con START, el segundo relacionado con el cálculo de los
primeros 11 elementos de la sucesión de Fibonacci utilizando los ciclos
disponibles en Lenguaje Estructurado.

Creación del programa Solución 1 en ST


El lenguaje de texto estructurado utiliza herramientas de programación
avanzada para la creación de secuencias complejas de cálculo, así mismo
puede utilizarse para la creación de secuencias relacionadas con sistemas
de automatización, a partir de la utilización de declaraciones
encadenadas por ejemplo. Sin embargo la manera como las instrucciones
son ejecutadas puede llevar a confusiones a la hora de realizar un
programa complejo.

Se recomienda la lectura completa del capítulo 2.2.2 Structured Text del


manual de usuario de CoDeSys, para comprender detalles acerca de la
estructura y asignaciones que se usarán en las soluciones mostradas a
continuación.

Para comenzar se debe crear un nuevo proyecto y seleccionar el lenguaje


de programación adecuado.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


43

Ahora, y en la ventana de programación se usará una entrada de tipo


Booleano para el control de una salida, para ello será necesario transcribir
el siguiente código:

Compilar, simular y analizar.

Ahora, se creará un programa que realice lo siguiente:

1. Al detectar la presencia START, se encenderá la variable LUZ


2. Mientras la LUZ permanezca encendida, se ejecutará el llamado a un
temporizador con retardo a la conexión para determinar en qué
momento se puede apagar la misma
3. Cuando la salida del temporizador se active, se reinicializarán las
variables para comenzar de nuevo.

El primer punto puede resolverse de manera sencilla haciendo:


IF START
THEN LUZ:=TRUE
END_IF

Para la segunda parte, se tienen que conocer los parámetros para el


llamado a un temporizador, por eso ejecutamos el asistente de entradas
con F2, para conocer la correcta sintaxis.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


44

A partir de lo anterior puede plantearse el siguiente código, que busca


mantener la entrada (IN) del temporizador en verdadero para lograr un
retardo de 4 segundos como lo indica PT:
IF LUZ
THEN TIEMPO(IN:=TRUE,PT:=T#4S)
END_IF

Cabe aclarar que la variable TIEMPO debe ser definida como una de tipo
TON.

Finalmente, para conocer la salida del temporizador se recurre a una


sintaxis ya utilizada en prácticas anteriores que consiste en lo siguiente:
IF TIEMPO.Q
THEN LUZ:=FALSE;
TIEMPO(IN:=FALSE);
END_IF

Uniendo el código bajo el entorno de programación tendremos algo como


lo siguiente:

Transcribir, compilar, simular y analizar.

Ejercicio Adicional Parte 1.


1. Implementar un sistema que permita bloquear el proceso luego de
haber encendido la luz más de 4 veces. Así mismo cree un pulsador
de STOP que permita reiniciar el programa una vez se ha bloqueado.

Solución al Ejercicio 2 Utilizando Texto Estructurado.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


45

Como ya se mencionó anteriormente en este ejercicio se utilizará una


entrada START, la cual permitirá el cálculo de los primeros 11 elementos
de la sucesión de Fibonacci, para esta labor se requiere:

1. Una entrada VAR_INPUT de tipo BOOL, llamada START.


2. Un arreglo de 11 elementos, con el primer elemento definido como
cero y el segundo como uno.
3. Una variable entera para contar de manera automática los elementos
pertenecientes al vector.
4. La utilización de uno de los ciclos. En este caso se optará por el ciclo
WHILE.

Para enfrentar el primer problema basta con escribir, en la parte de


definiciones de variables lo siguiente:
VAR_INPUT
START: BOOL;
END_VAR

En cuanto a la definición de arreglos se recomienda al lector la revisión


del capitulo10.16 Defined Data types, específicamente la parte referente a
los arreglos (arrays), para iniciar un vector de 11 elementos, haciendo el
primero igual a cero, el segundo igual a uno y los restantes iguales a cero,
usando el siguiente código escrito en la parte de definición de variables
(se usará el nombre “vector” para esta variable)
Manejo de arreglos
VAR
vector : ARRAY [0..10] OF INT := 0,1,9(0);
END_VAR

Para la definición de la variable de conteo utilizaremos la palabra “conta”


inicializada en cero, agregándola a los datos del arreglo previamente
definidos haciendo:
VAR
vector : ARRAY [0..10] OF INT := 0,1,9(0);
conta : INT:=0;
END_VAR
Manejo de Ciclos
Para obtener ayuda acerca del uso de while, se escribe WHILE en la
ventana de programación y se presiona F1, la ayuda contextual ilustrará
con un ejemplo la manera como debe usarse.

Así que uniendo todos los elementos aquí descritos se llega al código
descrito en la siguiente ventana:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


46

Al compilar, simular y analizar debe notarse que al momento de culminar


con la ejecución del programa, los elementos del vector deben contener
los números esperados:

Ejercicios Adicionales parte 2.


1. Utilice el ciclo FOR para el cálculo de los 11 primeros elementos de la
sucesión de Fibonacci, tomando como ejemplo el ejercicio
anteriormente desarrollado
2. Utilice el ciclo REPEAT para el cálculo de los 11 primeros elementos de
la sucesión de Fibonacci, tomando como ejemplo el ejercicio
anteriormente desarrollado

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


47

Práctica 7. Ejercicio Diagrama de Funciones Continuo (CFC)


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
• Realizar proyectos básicos utilizando las funciones y elementos
propios del Diagrama de Funciones Continuo (CFC).
• Identificar principales ventajas y desventajas de este lenguaje de
programación.
• Comprender la importancia de las funciones matemáticas dentro
del desarrollo de aplicaciones
• Aprender a cargar librerías para el uso de funciones especiales.
• Explorar las funciones para creación de macros en este lenguaje
de programación.

Explicación del Ejercicio.


Se contará el número de veces que cambia la variable de entrada START, a
medida que aumenta este número de veces disminuirá la frecuencia de
una luz de destello. Existirá adicionalmente una entrada STOP que se
encargará de reiniciar el contador, y de detener la luz de destello.
El sistema se detendrá bajo dos condiciones, al pasar el estado de STOP a
verdadero, o cuando el conteo llegue a un total de 5 veces.

Creación del programa Solución en CFC


El lenguaje de programación CFC puede entenderse como una “mejora”
en cuanto a lao observado en FUB, pues permite la ubicación libre de
elementos dentro del área de trabajo, permite la creación de lazos de
retroalimentación y por ende la creación de programas es mucho más
intuitiva, aunque la comprensión de los mismos para labores de
mantenimiento o de reprogramación.

Se recomienda la lectura del capítulo 5.4.5 The Continuous Function Chart


Editor (CFC) en el manual de CoDeSys, antes de abordar la realización de
estos ejercicios.

Siguiendo los procedimientos anteriores, se crea un nuevo proyecto, y se


selecciona el lenguaje de programación adecuado.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


48

Ahora y teniendo en cuenta la solución del programa primero se realizará


una prueba del funcionamiento de los contadores, para ello se
recomienda la lectura del funcionamiento de los mismo en el manual de
funcionamiento de CoDeSys (capítulo 10.17.4 Counter, en el Apéndice D).

Seleccionaremos el contador ascendente CTU, ubicándolo sobre el área


de trabajo, para ello haga Ctrl+B sobre el área de programación o ejecute
el ícono correspondiente sobre la barra de herramientas especiales.

Por defecto, aparecerá la función AND, así que seleccione este nombre y
en su lugar escriba CTU, la ventana resultante debe lucir como la
siguiente:

Teniendo en cuenta, que todas funciones tienen las entradas en el


costado izquierdo y sus salidas al costado derecho, se asignarán las
mismas de acuerdo a las indicaciones del ejercicio, para ello basta con
hacer clic derecho en las entradas correspondientes y seleccionar la
opción que se desea. No olvidar definir las variables de manera
adecuada.

Si se sigue el procedimiento definiendo todo de manera apropiada, se


tendrá el siguiente resultado (fíjese en las variables en la parte superior).

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


49

Se compila, se simula y se analiza.

Ahora, y con el ánimo de simplificar el código desarrollado, se buscará


una función que realice de manera automática la secuencia de la luz de
destello, para ello nos remitiremos al Apéndice D del manual donde se
describen los componentes de la librería Util.lib, allí en el capítulo 10.18.5
Signal Generators, encontraremos la función BLINK.

Proceso para Agregar Librerías a un Proyecto.


Las funciones de Blink se ajustan adecuadamente a lo que se requiere en
este ejercicio; pero esta función pertenece a la librería Util.lib la cual no se
encuentra integrada por defecto a los proyectos de simulación, así que se
estudiará el proceso para agregar una nueva librería, proceso que puede
hacerse extensivo a otros proyectos más complejos.

El primer paso consiste en la exploración de las librerías existentes, para


ello en la barra de menús hacer: Window—Library Manager

En la nueva ventana se pueden observar las librerías que actualmente


hacen parte del proyecto (nótese la ausencia de Util.lib), así que la
adicionaremos haciendo clic derecho en un espacio libre de la lista tal y
como se muestra en la siguiente figura.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


50

En la ventana emergente aparece un explorador donde se supone


debemos buscar la librería deseada. Dependiendo de las condiciones de
instalación esta dirección puede variar, pero por lo general puede hallarse
en:
C: \Archivos de Programa\Festo\CoDeSys V2.3\Library\

Una vez insertadas puede encontrarse allí la función BLINK.

Fíjese en la ayuda de blink, y notará que las entradas TIMELOW y


TIMEHIGH son entradas de tipo tiempo. Ahora, y como el contador utiliza

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


51

variables de tipo Entero o palabra, se requerirá una conversión de datos,


la cual analizaremos posteriormente.

Volviendo a nuestro circuito tenemos entonces que la salida del contador


es ascendente, de cero en adelante. Para disminuir la frecuencia inicial se
utilizará una división, partiendo de un tiempo base inicial de 2 segundos,
tal y como se muestra a continuación:

Nótese que se agrega un bloque de adición luego del contador, esto con
el ánimo de evitar la división por cero en el bloque DIV, además se ha
creado la variable “conver” para poder simular el resultado antes de
insertar la función Blink, de acuerdo a los parámetros definidos a
continuación.

Se simula, y se estima si el resultado es adecuado para la inserción de la


función Blink.

Aprovechando el adecuado funcionamiento del sistema, se agregará una


retroalimentación para hacer que el contador deje de funcionar una vez
que la salida Q se activa. Tal y como se muestra en la siguiente figura:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


52

Finalmente se agregan dos funciones adicionales, BLINK para controlar la


luz de destello, y la función SR para hacer que se active o se desactive de
acuerdo a las condiciones dadas por las señales de START y de STOP, el
resultado final puede observarse en la siguiente figura:

Se compila, se simula y se analiza.

Ejercicio Adicional.
1. Modificar el ejercicio hasta ahora desarrollado para que descuente
250 ms cada vez que se activa el pulsador de START; Utilice
adicionalmente la funcionalidad para la creación de macros para
resumir su programa de manera adecuada.

Mayor información acerca de la creación de macros en la página 5-56


del manual de CoDeSys versión 2.3

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


53

Práctica 8. Ejercicio Grafico Secuencial de Funciones (SFC)


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
• Realizar proyectos básicos utilizando las funciones y elementos
propios del Gráfico Secuencial de Funciones (SFC).
• Comprender la manera como se ejecutan las funciones y
transiciones.
• Comprender los procedimientos para la inserción y ejecución de
acciones, usando los lenguajes de programación vistos en
prácticas anteriores.
• Realizar llamados de funciones utilizando lenguajes de
programación de tipo textual.
• Comprender las ventajas y desventajas de este lenguaje de
programación.

Explicación del Ejercicio.


Con el ánimo de explorar las ventajas para la realización de secuencias en
este lenguaje de programación, realizaremos el control de dos luces
intermitentes utilizando un solo Pulsador, creando algo como lo siguiente:
1. Al activar Start inicia una luz de destello con un Período de 4
segundos.
2. Al desactivar Start se detiene la luz anterior, y una nueva luz comienza
una secuencia intermitente, con un período de 2 segundos.
3. Al activar de nuevo Start, entonces, ambas luces prenderán y
apagarán al unísono con un período de 1 segundo.
4. Al desactivar Start el sistema queda listo para iniciar de nuevo.

Solución del Ejercicio Utilizando SFC:


Antes de abordar la solución del problema se sugiere al lector la revisión
de los capítulos 2.2.3 Sequential Function Chart SFC, y 5.5.4 The
Sequential Function Chart Editor. Así mismo una revisión completa de la
teoría relacionada con GRAFCET ayudará a la comprensión de la estructura
de la presente solución.

Siguiendo las indicaciones dadas en prácticas anteriores se crea un


programa y se selecciona el lenguaje de programación adecuado.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


54

Aparecerá una nueva ventana para la iniciación del programa, la primera


parte consiste en un paso llamado “init”, y una transición denominada
“Trans0”. En este paso inicial crearemos las condiciones acordes con los
requerimientos del ejercicio, en este caso, ambas luces apagadas.

Procedimiento para la creación de acciones en Grafcet.


Para la creación de esta acción, se hace doble clic en el paso deseado, allí
aparecerá una nueva ventana que nos solicita el ingreso del lenguaje que
se desea para escribir las instrucciones propias de este paso (En este caso
seleccionaremos texto estructurado)

Allí se crea el código correspondiente para realizar la función descrita


anteriormente:

Las variables Luz1 y Luz2, se declaran como VAR_OUTPUT de tipo BOOL.

Creación de Condiciones de Transición.


Ahora, para pasar a la siguiente parte de la secuencia, se debe cumplir
una condición específica y esta es la presencia de “Start”. Para crear esta

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


55

transición se hace clic en el título de la misma y allí se escribe una


condición lógica de respuesta Verdadero o Falso.

Si la condición de Transición se cumple se ejecutará el paso siguiente, de


lo contrario la ejecución del paso actual permanecerá activa.

Procedimiento para Agregar nuevos Pasos.


Para la creación de nuevos pasos, se hace clic derecho sobre la transición
recientemente modificada y del menú emergente se selecciona la opción
adecuada.

En este nuevo paso se ejecutará una luz de destello (2 segundos


encendida, 2 segundos apagada); con la utilización de la función BLINK,
así que antes de realizar y definir las acciones del nuevo paso
agregaremos la librería Util.lib siguiendo los procedimientos explicados
en prácticas anteriores.

Ahora, cambiaremos el nombre del paso a “L1_2s” (el nombre de paso


puede ser cualquiera, este no interfiere con el funcionamiento del
lenguaje de programación pues solamente se utiliza para labores de
identificación sencilla); y posteriormente definiremos una acción para ella
haciendo doble clic (en lista de instrucciones).

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


56

Allí llamaremos constantemente BLINK, siguiendo las instrucciones


mostradas a continuación:

1. Definir la Variable

2. Crear el código de llamado apropiado

3. Definir la Siguiente Transición, siendo esta la ausencia de Start, es


decir, “NOT Start” (ver detalle en Figura anterior). Se requiere así
mismo definir un nuevo paso sobre esta Transición siguiendo los
mismos procedimientos anteriores.

Siguiendo las indicaciones dadas en la explicación del ejercicio, tenemos


que el próximo paso debe ejecutar una luz de destello (1 segundo
encendida, 1 segundo apagada). Esta acción será realizada en FUB, tal y
como se muestra a continuación.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


57

Nótese que tanto la nueva transición como el nombre del paso han sido
cambiados de acuerdo a las condiciones del ejercicio.

Sobre la última transición definida creamos un nuevo paso, cambiamos el


nombre y definimos acción en lenguaje LAD.

Recuerde que este paso debe encender ambas luces con una frecuencia
de 1Hz. Para ello se crea el siguiente código.

Finalmente la última Transición “NOT Start”, permitirá el salto al paso


“Init” el cual crea condiciones iniciales. Si todo se ha cumplido
correctamente su proyecto debe lucir similar a la siguiente figura:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


58

Finalmente, se compila, se simula, y se analiza.

Ejercicios Adicionales:
1. Tomando como base el ejercicio anterior, defina una nueva entrada
llamada “Selector”. Si el selector se encuentra en Estado Falso, la
secuencia se ejecutará igual al ejercicio anterior, pero si el Selector se
encuentra en estado Verdadero al iniciar la secuencia esta se
ejecutará pero cambiando el orden de los dos primeros pasos.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


59

Práctica 9. Visualización en CoDeSys V2.3


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
• Aprender los fundamentos para la realización de pantallas de
visualización sencillos en CoDeSys.
• Comprender el procedimiento para la escritura y lectura de datos
del programa, a través de componentes del sistema de
visualización.

Explicación del Ejercicio.


Tomando como base el ejercicio desarrollado en la práctica anterior, se
creará una pequeña ventana de visualización compuesta de un rectángulo
para el manejo de “Start” y dos círculos para la Visualización del estado
de las variables “Luz1” y “Luz2”.

Creación del Sistema de Visualización.


Aunque en este momento se estudiarán los principios básicos de la parte
de visualización, existen muchos elementos por explorar que pueden ser
consultados completamente en el manual CoDeSys Visualization V2.3.

Como primera instancia se abrirá el proyecto creado en la práctica


anterior, para dirigirnos a la pestaña de visualización.

Sobre esta carpeta de “visualizations” se da clic derecho para seleccionar


la opción “Add Object”, aquí una nueva ventana solicitará el nombre que
se desea asignar a la misma, al introducirlo y hacer clic en “OK” se tendrá
una nueva pantalla para comenzar a crear nuestro entorno.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


60

Considere esta nueva pantalla como un software para la creación de


entornos gráficos a partir de herramientas básicas para la creación de
figuras geométricas, realizar dibujos a mano alzada, insertar botones,
íconos interactivos, inserción de gráficas y otros.

Ahora seleccionando la herramienta para la creación de círculos


crearemos uno que representará la primera luz, una vez termine de
dibujar haga doble clic para acceder a las propiedades del mismo.

En esta ventana de propiedades pueden cambiarse y configuración


elementos relacionados con la parte gráfica del elemento, así como la
asociación con variables que hacen parte del proyecto desarrollado en
CoDeSys. Como en nuestro caso deseamos que el Color del círculo
cambie de acuerdo a la variable “luz1”, entonces realizamos la asignación
en la categoría “Variables” y en el campo “Change Color” escribimos

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


61

“PLC_PRG.luz1” , es decir la “luz1” perteneciente al programa PLC_PRG”


(se puede observar este proceso en la imagen anterior).

Para completar el proceso de configuración, nos dirigiremos a la categoría


de “Colors” y allí elegiremos un color oscuro para “Color”, y otro más
brillante para “Alarm Color”

Finalmente tendremos el círculo que representa la luz listo, pero como


necesitamos otro de similares características utilizaremos las
herramientas de Copiar y Pegar, para crear un segundo círculo.

Recuerde cambiar la variable “PLC_PRG.luz1” de este nuevo círculo, por la


variable “PLC_PRG.luz2”. Para que el color de este nuevo cambie de
acuerdo al estado de la variable Luz2.
Culminada la creación de los botones, se creará un rectángulo que servirá
de pulsador para el manejo de la variable Start.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


62

Utilizando la herramienta adecuada se completa el rectángulo, y


posteriormente se ingresa a las propiedades para cambiar el texto y los
colores.

Finalmente se configura la acción que este rectángulo realizará sobre la


variable eligiendo la categoría “Input”, y allí habilitando la función
“Toggle Variable” y escribiendo sobre el campo el nombre de la varialbe a
modificar es decir “PLC_PRG.Start”

Con nuestra pantalla de visualización lista, compilamos y corremos la


simulación normalmente, pero esta vez el accionamiento de “start” puede
realizarse de manera sencilla haciendo clic sobre el rectángulo definido y
el estado de las luces podrá observarse en los círculos creados, tal y como
se observa en la siguiente figura:

Ahora, es fácil notar que aunque en CoDeSys no es posible crear entornos


visuales con excesivos detalles o elementos gráficos complejos, la
herramienta de visualización puede constituirse como un excelente apoyo
que hace mucho menos tediosa la prueba de ejercicios realizados en los
diferentes lenguajes de programación.

Ejercicios Adicionales:
1. Tomando como base los proyectos desarrollados en las prácticas
anteriores, desarrolle y pruebe sistemas de simulación que permitan
una interacción más sencilla y amigable con el usuario

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


63

Práctica 10. Creación de un proyecto, Integración de Programas


Objetivos.
Al finalizar esta práctica, el estudiante estará en capacidad de:
• Reconocer la importancia de la realización de proyectos a través
de la integración de varios programas para el desarrollo de
funciones específicas.
• Crear Proyectos básicos que impliquen la utilización de más de un
programa.
• Comprender el procedimiento para la creación de bloques de
funciones.
• Definir variables de tipo Global.

Explicación del Ejercicio.


Aunque el ejercicio que se desarrollará en las siguientes páginas es
tomado de las páginas del manual original de CoDeSys, la explicación que
allí aparece es bastante mecánica y deja ciertos vacios conceptuales que
dificultan el verdadero aprendizaje a través del mismo. Así que con el
ánimo de hacer de este ejemplo una verdadera experiencia de aprendizaje
se retomará el mismo realizando una explicación completa de los
diferentes paso involucrados teniendo en cuenta lo que se ha trabajado
en prácticas anteriores.

El ejercicio consiste en el control de dos semáforos para una intersección.


Este control se realizará a través de un pulsador de Start, cada vez que se
presione este, las luces deben realizar la siguiente transición:

Start 2 seg 5 seg

Paso 1 Paso 2 Paso 3 Paso 4

2 seg

Así, en cada uno de los pasos puede observarse el conjunto de los dos
semáforos en su respectivo color, las flechas adicionalmente indican las
transiciones que deben cumplirse para continuar con la secuencia, así por
ejemplo para pasar del paso 3, al paso 4, se debe cumplir con un tiempo
de espera de 5 segundos.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


64

Adicionalmente el sistema debe contar el número de secuencias


realizadas, y una vez ese número de secuencias sea mayor a 7, los
semáforos deben apagarse, y esperar mínimo 10 segundos antes de
volver a iniciar.

Creación de la Solución.
Debido a la naturaleza del problema que se presenta y con el ánimo de
reducir al máximo el código que se cree, se abordará el problema basados
en este procedimiento:

1. Creación de un bloque de Funciones que permita definir el color que


presentará el semáforo de acuerdo al paso en el que se encuentre la
secuencia, así por ejemplo al decirle a este programa que nos
encontramos en el Estado 1, este debe determinar que el color es
Verde. Así pues, los posibles estados y respuestas de este programa
de control pueden encontrarse en la siguiente tabla (entiéndase
semáforo 1 como el semáforo de la derecha en la gráfica explicativa
vista anteriormente):

Estado de Color Respuesta Observaciones


entrada Programa
Paso 1 del semáforo 1 de la
1 VERDE
gráfica de explicación.
Paso 2 del semáforo 1 de la
2 AMARILLO
gráfica de explicación
Paso 3 del semáforo 1 de la
3 ROJO
gráfica de explicación
ROJO Paso 4 del semáforo 1 de la
4
AMARILLO gráfica de explicación.
Necesario para bloquear el
5 NINGUNO programa, en caso que la
secuencia sea mayor a 7.

2. Creación de un bloque de funciones que permita coordinar los


tiempos de espera, es decir, que realice un llamado a alguna función
de tiempo, una vez culminado retorna una señal aprobatoria. En
conclusión, la entrada a este programa será el tiempo a esperar, y el
retorno será la señal de culminado.
3. El Tercer programa contendrá la secuencia como tal, con sus pasos y
transiciones, describiendo los requerimientos solicitados en la
descripción del problema.
4. Un programa que controle la ejecución de la secuencia y el de los
estados del semáforo.

Creación del bloque de funciones para Control de Estados (Punto 1).

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


65

Básicamente lo que se realizará en este punto será una “traducción” de la


tabla vista en el punto 1, al lenguaje de programación FUB, teniendo en
cuenta lo siguiente:
a. El programa debe recibir una entrada que solicita el “estado” del
semáforo.
b. Tres salidas de tipo booleano correspondientes a cada color del
semáforo.

Ahora, se crea un nuevo bloque de funciones llamado tráfico, en Diagrama


de bloques de funciones.

Allí se crea el siguiente código (correspondiente a la tabla):

Código
Variables

Culminada la elaboración del primer punto pasaremos ahora a la creación


del programa para el manejo del tiempo de transiciones.

Creación del bloque de funciones para los tiempos de Espera (Punto 2).

Como ya se tienen claras las entradas y salidas de este bloque de


funciones, se procederá a la creación de uno utilizando el lenguaje lista de
instrucciones IL, y lo llamaremos “espera”:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


66

En este programa se llamará a una función de tiempo (TP en este caso) y


cuando se cumpla el tiempo configurado en la variable del mismo nombre,
entonces se pasará a TRUE la variable “ok”, para ello se crea el siguiente
código con las siguientes variables:

Las funciones creadas anteriormente (“trafico” y “Espera”) se llamarán


apropiadamente en la creación de la secuencia del siguiente punto:

Creación del programa para control de la Secuencia (Punto 3).


Aquí crearemos una secuencia utilizando el lenguaje apropiado para este
fin, es decir, el gráfico secuencial de funciones SFC. Esta secuencia debe
contar con los siguientes elementos:
a. Una entrada de tipo booleano llamada START, que le permitirá iniciar
b. Dos salidas de tipo Entero, cada una para el control de un semáforo
(esta señal se utilizará posteriormente con entrada del bloque de

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


67

funciones “trafico”, y así se podrán determinar los colores que tendrá


el semáforo), estas salidas se llamarán “Senal1” y “Senal2”
c. Un contador para control de las 7 secuencias que deben realizarse.

La siguiente tabla muestra un resumen de lo que debe contener el


esquema de SFC.

Nombre Acciones Siguiente Transición a cumplir


Paso Paso
Hacer
Init Senal1=1 Cambio1 Presencia de Start
Senal2=3
Senal1=2
Senal2=4 Tiempo espera
Cambio1 Llamar función “espera”
Conteo
culminado.
con tiempo 2 seg
Aumentar la variable de Para ir a OFF el
conteo en 1 OFF conteo mayor a 7.
Conteo
Verde2 De lo contrario
pasará a Verde2
Senal1=5
Senal2=5
Tiempo espera
OFF Contador=0 Cambio1
Llamar función “espera” culminado
con tiempo 10 seg
Senal1=3
Senal2=1 Tiempo de espera
Verde2 Llamar función “espera”
Cambio2
culminado
con tiempo de 5 seg
Senal1=4
Senal2=2 Tiempo de espera
Cambio2 Llamar función “espera”
Verde1
culminado
con tiempo de 2 seg
Senal1=1
Senal2=3 Tiempo de espera
Verde1 Llamar función “espera”
Init
culminado
con tiempo de 5 seg

Ahora, para poder llevar lo anterior a cabo, se debe hacer una correcta
definición de variables de un nuevo programa en SFC al cual llamaremos
“secuencia”. Las variables de este programa secuencia serán:

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


68

Nótese que aparte de las entradas, salidas y la variable de conteo,


aparece allí una variable que llamaremos “delay”, fíjese además que esta
variable es de tipo “espera”, es decir, “delay” es la variable que
utilizaremos para llamar el bloque de funciones para esperar por un
determinado tiempo.

A continuación se puede observar la totalidad del código creado en SFC


con cada una de sus acciones definida en Lista de instrucciones, acorde
con la tabla anterior.

Ahora, realice el programa de acuerdo a condiciones vistas en prácticas


anteriores.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


69

Creación del programa principal (Punto 4).


Como se ha visto con anterioridad, el programa principal es el llamado
PLC_PRG, entonces lo crearemos en lenguaje de programación CFC,
teniendo en cuenta lo siguiente:
a. Desde el programa principal se debe llamar primero al programa
llamado “secuencia”, encargado de general el “estado” de ambos
semáforos (identificados por las salidas Senal1 y Senal2).
b. Este programa secuencia arroja dos salidas, así que para saber cual
color asumen los semáforos, debe ingresarse el estado como una
entrada adicional de la función “tráfico”.

Pero antes de realizar este programa se definirán las variables de entrada


y salida, de todo el proyecto, estas variables que hacen parte de TODO el
proyecto son las llamadas “variables globales”, una de las principales
propiedades de estas variables es que pueden ser utilizadas en
cualquiera programa o función que se requiera sin necesidad de definirlas
de manera local.
Definición de Variables Globales
Para definir estas variables globales diríjase a la sección de recursos, en
la ventana de exploración de proyecto.

Allí encontrará la carpeta “Global Variables”, doble clic sobre ella


desplegará una ventana donde se definen las variables de tipo global, tal
y como aparece a continuación.

Finalmente regresamos a nuestro programa principal PLC_PRG, para la


realización del programa que coordinará la ejecución de las actividades
para la solución de nuestro ejercicio.

Cabe aclarar que para realizar el llamado a una función realizada por el
usuario, basta con agregar un bloque de función y sobre el título que
aparece allí por defecto se escribe el nombre del bloque de funciones o

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


70

del programa que se desea ejecutar. Tal y como aparece en la siguiente


figura:

Si se desea, se puede compilar, simular y analizar el proyecto.

Creación del programa principal (Punto Adicional).


Para completar nuestro proyecto se creará un sistema de visualización
siguiendo las indicaciones dadas en prácticas anteriores. Para ello utilice
las variables globales recientemente definidas teniendo en cuenta que
para su utilización no se requiere un direccionamiento a programa, sólo
basta escribir directamente el nombre de la variable global. Así por
ejemplo para utilizar la variable de color rojo, solo faltaría escribir en la
ventana de propiedades algo como lo siguiente:

Un ejemplo de cómo debería lucir el sistema de visualización se muestra


en la siguiente figura, una vez culminado todo el sistema puede probarse

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com


71

para encontrar posibles fallas en la programación, si se presentan debe


revisarse el contenido de esta guía y corregir de ser necesario.

Con este ejercicio culmina la preparación teórica y de simulación


correspondiente al manejo de equipos, a continuación se presentarán una
serie de guías enfocadas al manejo, conexión y configuración de sensores
y controladores; cada una de las guías contiene un detallado proceso que
debe seguirse para la realización de prácticas sencillas, la unión de estas
con los elementos de programación vistos hasta ahora permitirá el
desarrollo de aplicaciones complejas acordes con proyectos en desarrollo.

Festo Didactic 2009. Leonardo.rodriguez.ortiz@gmail.com

También podría gustarte