You are on page 1of 84

Codesys V3.5.

pbf

Manual de
Prcticas

Introduccin

Leonardo
Rodriguez
Utilizacin Prevista y Convenida

Los procedimientos que se describe en el presente manual estn


previstos exclusivamente para fines de formacin y perfeccionamiento
profesional en materia de automatizacin. La entidad a cargo de la
formacin y/o los instructores que la imparten debern velar por que los
aprendices / estudiantes respeten las disposiciones de seguridad que se
describen en los manuales correspondientes.

Festo Didactic excluye cualquier responsabilidad en relacin con daos


ocasionados al aprendiz / estudiante, a la entidad u empresa encargada
de impartir la formacin y/o a otros terceros por su uso indebido o por
utilizacin en situaciones que no correspondan estrictamente a la
enseanza, a menos que Festo Didactic haya ocasionado dichos daos
premeditadamente o por imprudencia o negligencia temeraria.

Datos actualizados en: 06/2013


Autor: Leonardo Rodrguez Ortiz
Grficas: Festo Didactic Co.
Redaccin: Leonardo Rodrguez Ortiz.

Festo Didactic Colombia.


Internet: www.festo-didactic.com
e-mail: Leonardo.rodriguez@co.festo.com

Sin nuestra expresa autorizacin, queda terminantemente prohibida la


reproduccin total o parcial de este documento, as como su uso indebido
y/o su exhibicin o comunicacin a terceros. De los infractores se exigir
el correspondiente resarcimiento de daos y perjuicios. Quedan
reservados todos los derechos inherentes, es especial los de patentes, de
modelos registrados y estticos.
1

Introduccin
Los controladores de los mdulos de aprendizaje de automatizacin de
Festo que se encuentran bajo la plataforma CoDeSys de Festo Didactic
fueron concebidos para la utilizacin en funcin de diversos niveles de
estudio y requisitos profesionales. Este tipo de plataforma permite un
estudio y perfeccionamiento profesional cercano a la realidad imperante
en diversas plantas de produccin. El hardware est conformado por
componentes industriales estructurados segn criterios didcticos.

En general, y a travs de un uso correcto de los mdulos industriales que


acompaan a los controladores lgicos programables, el sistema
completo se constituye como uno apropiado para adquirir las siguientes
cualificaciones profesionales fundamentales:

Competencia profesional en relaciones humanas.


Competencia profesional en materias tcnicas.
Competencia profesional en relacin con mtodos.

Esta cualificacin se rige por criterios aplicables en la prctica.


Adicionalmente se aprende a trabajar en equipo, en cooperacin con los
dems y se adquieren conocimientos en materia de organizacin.

Mediante proyectos de estudio para la automatizacin industrial se


pueden abordar cada una de las siguientes fases:

Planificacin
Montaje
Programacin
Puesta en funcionamiento
Funcionamiento y utilizacin
Optimizacin de parmetros regulables
Mantenimiento
Localizacin de fallos.

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


2

Contenidos Didcticos
Los contenidos didcticos estn clasificados segn los siguientes
sectores:

Mecnica:
Construccin mecnica de la estacin.
Tcnicas de programacin:
Entender y crear diagramas para programar.
Definicin adecuada de entradas y salidas de proceso.
Anlisis de Sistemas.
Electrotcnica:
Cableado correcto de componentes elctricos.
Tcnica de detectores y sensores:
Utilizacin correcta de detectores.
Medicin de magnitudes no elctricas.
Puesta en funcionamiento:
Puesta en funcionamiento de un equipo para enseanza.
Puesta en funcionamiento de algoritmos de control basados en
CoDeSys para la solucin de problemas especficos.
Localizacin de fallos:
Localizacin sistemtica de fallos de programacin, cableado o
montaje.
Controlar el funcionamiento, efectuar el mantenimiento y la
reparacin de equipos controlados por PLC.

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


3

Indicaciones Importantes.

Para la utilizacin segura y exenta de fallos del PLC y de las estaciones o


mdulos de enseanza a ste conectados, es indispensable conocer las
indicaciones y las normas de seguridad bsica.

El presente manual (y sus prcticas), no contienen indicaciones de


seguridad relevantes, pues sus contenidos se basan enteramente en
prcticas y ejercicios a nivel de Software, sin embargo, se recomienda en
alto grado el respeto por las reglas y prescripciones de prevencin de
accidentes vlida en el lugar de la utilizacin y aquellas relacionadas con
el manejo de los equipos que se desean manejar.

Responsabilidad del Usuario.

El usuario se compromete a permitir el uso de los controladores y de los


elementos didcticos de Festo a este conectados nicamente a personas
que cumplan con las siguientes condiciones:

Personas que conocen las normas de seguridad en el puesto de


trabajo y de prevencin de accidentes, que han sido instruidas en la
utilizacin de equipo didctico a cargo y de sus controladores.
Personas que han ledo y entendido el captulo dedicado al tema de
la seguridad y las advertencias contenidas en manuales del equipo.

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 estacin


modular de produccin y con el controlador, debern comprometerse a lo
siguiente antes de iniciar el trabajo:

Leer el captulo dedicado al tema de la seguridad y las advertencias


contenidas en los diferentes manuales.
Respetar las normas bsicas de seguridad en el puesto de trabajo y
de prevencin de accidentes.

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


4

Riesgos en la utilizacin de los equipos.

Las estaciones modulares de Produccin junto con sus controladores, han


sido concebidas recurriendo a la tecnologa ms avanzada y respetando
las normas de seguridad tcnica. No obstante, es posible que existan
riesgos que pueden poner en peligro la integridad fsica y la vida del
usuario o de terceras personas, que se produzcan daos en la mquina o
en otros bienes materiales.

Los controladores lgicos Programables, objetos de esta manual


nicamente debern utilizarse respetando las siguientes condiciones:

Utilizacin prevista y convenida.


Utilizacin en perfecto y seguro estado tcnico.

Deber eliminarse de inmediato cualquier fallo que pueda reducir el


nivel de seguridad en la estacin de trabajo!

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


5

Indicaciones de seguridad.

Indicaciones Generales:
Los aprendices / estudiantes nicamente debern trabajar con la
estacin 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 elctricas slo debern realizarse estando
desconectada la corriente elctrica en el equipo!
Utilizar nicamente baja tensin de mximo 24 V DC.
Si se utilizan componentes con conexin de 120 V AC o 230 V AC, las
conexiones nicamente podr realizarlas la persona debidamente
cualificada.
Asegurar la conexin a la red elctrica mediante un interruptor
adecuado para tal fin.

Neumtica:
No superar la presin mxima admisible de 800 kPa (8 Bar).
Conectar el aire comprimido slo despus de haber conectado los
tubos flexibles y de haberlos asegurado debidamente.
No retirar los tubos si el sistema se encuentra bajo presin.

Mecnica:
Efectuar el montaje de todos los componentes de modo fijo y de
acuerdo a las indicaciones del manual.
Acceder a las partes de la estacin 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 estacin o al motor.
Asegurar que el movimiento de los motores estar libre de
obstculos o restricciones.
Asegurar el buen funcionamiento de los sensores utilizados como fin
de carrera antes de realizar pruebas de movimiento.

Tcnica de Sensores:
Asegurar la conexin adecuada de los sensores antes de realizar
pruebas integradas con un sistema de control.

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


6

Prctica 1. Qu es CoDeSys?
Objetivos:
Identificar las principales caractersticas de CoDeSys.
Reconocer los procedimientos que deben seguirse para lograr una
correcta instalacin 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 creacin de
aplicaciones especficas en PLC (CoDeSys significa Controlled
Development System).

Puede entenderse a CoDeSys como una herramienta de software que


pone a disposicin del usuario final (el programador del PLC) los
principales componentes de la norma IEC 61131-3. Para lo anterior se
basa en lenguajes de programacin avanzada (como Visual C++) para el
uso de entornos amigables de edicin y depuracin.

Gracias al soporte de la norma IEC 61131-3, CoDeSys, soporta los


diferentes lenguajes de programacin y adicionalmente soporta algunas
rutinas en C y programacin orientada a objetos. En combinacin con un
paquete de soporte (SP por sus siglas en ingls), CoDeSys puede llegar a
soportar diferentes dispositivos y diferentes aplicaciones para la
programacin.

Por qu CoDeSys?
CoDeSys es desarrollado por la empresa Alemana 3S Smart Software
Solutions Gmbh; actualmente esta empresa una de las ms importantes
desarrolladoras de software en la industria de automatizacin Europea.
As mismo CoDeSys es lder en el desarrollo de sistemas de programacin
independiente basado en la norma IEC 61131-3 y que funcionan bajo
Windows.

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


7

A partir de 2006 Festo inicia un trabajo conjunto con 3S, con el nimo de
crear una lnea completa de controladores lgicos programables bajo las
directivas de la norma estndar internacional, los primeros productos
nacidos de esta alianza fueron los controladores tipo CPX-CEC, a ello les
siguieron nuevas lneas de productos que incluyen nuevas categoras de
PLC compactos, pantallas, entre otros.

El hecho de pertenecer a este Estndar, genera ciertas ventajas entre las


que se pueden mencionar:

Reduccin en tiempos de entrenamiento, depuracin,


mantenimiento y consulta, en el personal encargado de las
labores de programacin.
Reduccin del tiempo en el desarrollo de aplicaciones de software
gracias a las posibilidades de re-utilizacin de cdigo entre
diferentes controladores.
Tcnicas de programacin fciles de trasladar a otros
controladores (y fciles de importar).
Combinacin armoniosa de diferentes componentes y dispositivos
provenientes de distintos lugares, compaas, pases o proyectos.

Qu define el Estndar 61131-3?

En una forma bastante sencilla, se puede decir que la norma, establece un


marco especfico y general para:
La estructura de un proyecto desarrollado para un controlador en
especfico.
La sintaxis y la semntica que debe utilizarse para el desarrollo de
programas en 5 lenguajes de programacin fundamentales:
Listados de Instrucciones, Diagrama de Bloques de Funciones,
Diagrama de Escalera, Texto Estructurado, y Esquema Secuencial
de Funciones.
Definicin de los diferentes tipos de programas y bloques de
funciones que pueden utilizarse.
Sintaxis y procedimientos especficos para la declaracin de
datos.

CoDeSys Provided By Festo.

CoDeSys Provided By Festo, ofrece adicionalmente una interfaz adecuada


con las siguientes funciones:

Configuracin y establecimiento de parmetros del dispositivos


Festo con CoDeSys embebido.
Librera integrada para el manejo de mdulos especficos.

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


8

Administrador de libreras para la integracin de libreras de


mdulos adicionales o nuevos.
Modo de simulacin que permite la prueba de programas en el PC,
sin necesidad de usar PLC.
Visualizacin con el editor integrado para tal fin.
Documentacin y ayuda en lnea.
Herramientas para depuracin: Prueba de la secuencia del
programa, observar y cambiar variables, bsqueda de errores y
otras.

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


se requiere un paquete de soporte para controlador especfico (Target
Support Package). Esto permite acceder a las funciones del sistema
del controlador y contiene la correspondiente informacin en forma de
ayuda en lnea. Este paquete de soporte permite o impide la
utilizacin de ciertas funciones de acuerdo al controlador que se
maneje en el momento.

Al instalar la versin de CoDeSys incluida la entrega de un controlador


Festo, no ser necesaria la descarga de un Paquete de soporte, sin
embargo y si se requiere la instalacin del mismo, se recomienda la
lectura del aparte de Package Manager contenido dentro de la
ayuda en lnea de Codesys 3.5, (se encuentra en el captulo de
Concepts and Base Components).

Requerimientos del Sistema.

Previa a la instalacin de CoDeSys, se recomienda la verificacin de los


requerimientos del sistema:
Sistema Operativo Windows XP, Windows Vista, Windows 7.
Memoria RAM 1024 MB.
Espacio disponible en disco 1 GB.
Procesador Pentium V, Centrino 3,0 GHz. Pentium M 1,5 GHz.

Instalacin
Para una correcta instalacin de CoDeSys provided by Festo, se debe
seguir este procedimiento:

1. Buscar y ejecutar el archivo Setup_CoDeSysV3.exe, en la


carpeta CoDeSys pbf Festo; del Cederrn de la entrega.

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


9

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


destino de la instalacin y seleccionar los componentes a instalar

3. Culmine el proceso de instalacin siguiendo las instrucciones dadas


por el ayudante de instalacin.

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


10

Familiarizndose 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:

InicioTodos los Programas-- Festo SoftwareCoDeSys V3


CoDeSys V3.5 pbF.
La siguiente ventana aparecer:

La siguiente figura muestra los principales componentes del proyecto


recientemente abierto.

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


11

La barra de mens: Contiene las herramientas que comnmente se


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

Herramientas Especiales: (ver ttulo de Herramientas en la parte derecha


de la ventana) Son herramientas especficas que se utilizan para la
creacin de un programa o funcin, en un determinado lenguaje de
programacin, estas herramientas cambian cuando se seleccionan
ventanas con lenguaje de programacin 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 funcin como tal, siguiendo los
lineamientos y reglas de cada uno de los lenguajes de programacin que
CoDeSys abarca.

Ventana de Visualizacin: Esta ventana ofrece la posibilidad de crear un


entorno grfico que simula las acciones que se llevan a cabo en el
programa, aunque se observar con detalle ms adelante, basta decir por
el momento que se pueden realizar labores de simulacin bastante
sencillas ligando elementos grficos con variables especficas utilizadas
en los programas creados para el PLC.

Ventana de Mensajes: All se podr encontrar informacin referente a los


procesos de compilacin y depuracin que se realicen en el software, all
se puede realizar un seguimiento adecuado de los errores, una
identificacin de problemas de libreras u otros por el estilo.

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


12

Barra de Estado: Resume en gran parte el estado actual de la ejecucin


del programa en el software, as entonces, un rpido vistazo a las mismas
permitir si el sistema se encuentra en lnea, en modo simulacin, 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

POUs Tipos de HMI Recursos


Datos

Variables
Declaracin Globales

Cdigo Libreras

Aunque es necesario aclarar que es posible contar con diversos


dispositivos a nivel de software y diversos programas que generalmente
no siguen la estructura jerrquica anteriormente mostrada y cuya posicin
en el proyecto depende casi enteramente de las necesidades de
programacin.

Es probable que no todos los recursos descritos con anterioridad


aparezcan al iniciar un proyecto, posteriormente se analizarn en detalle
cada uno de ellos y se ilustrarn las maneras como se puede trabajar con
algunos de ellos.

Un ejemplo de la manera como se estructuran algunos de los elementos


que hacen parte del proyecto dentro del software se puede observar en la
siguiente figura, en la que se hace nfasis en el lugar en el que se
encuentran ubicados los Unidades de programa (POU) y los recursos de
acceso al controlador en la tabla de dispositivos, mientras que se
muestran tambin dos pestaas de organizacin una de datos y
visualizacin que se crean automticamente cada vez que se requiere.

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


13

Los componentes de un proyecto en CoDeSys.

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


programa de PLC, sus componentes principales son aquellos descritos en
la parte anterior, en el organizador de objetos. Se puede encontrar una
breve descripcin de cada uno de ellos a continuacin:

POU (Program Organization Unit).


Se puede considerar como POU a toda funcin, bloque de funciones, y
programas que pueden realizarse e implementarse a travs de acciones.
Cada POU consiste de una parte declarativa y un cuerpo, siendo este
cuerpo obligatoriamente escrito en alguno de los lenguajes de
programacin 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 estndares, el usuario puede definir sus
propios datos.

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


14

NOTACIN 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`

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

Recursos.
Se requieren los recursos para la configuracin y organizacin adecuada
de un proyecto, as como para la deteccin de cambios en las variables:

Variables globales que puedan ser usadas a lo largo del proyecto.


Gestor de Libreras para adicionar libreras al proyecto
Configuracin de alarmas para el manejo de las mismas en el
proyecto.
Configurador de tareas, para guiar a los programas a travs de
tareas.

Ejercicios Adicionales:

1. Realice un resumen acerca de las principales caractersticas de


CoDeSys Provided By Festo.
2. Realice un resumen acerca de los componentes de un proyecto
realizado en CoDeSys.

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


15

Prctica 2. Los Lenguajes de Programacin


Objetivos.
Reconocer los distintos lenguajes de programacin 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 realizacin de
aplicaciones.

Los lenguajes de Programacin.

Como se ha mencionado con anterioridad CoDeSys soporta todos los


lenguajes de programacin que se describen en la siguiente tabla.

Lenguaje de
Tipo Descripcin bsica
programacin
Lista de Lenguaje de El listado de instrucciones puede
instrucciones (IL). programacin 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 ms
(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.
Grfico de funciones Lenguaje de Permite la programacin de tipo
Secuencial (SFC). programacin secuencial, por ende es adecuado para
grfico la estructuracin de los proyectos. Con
transiciones y divisiones este lenguaje
permite la ejecucin 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 funcin lgica o
matemtica, incluye a su vez funciones
de salto, temporizacin y otras.
Diagrama de Basado en FUB, este lenguaje permite
Funciones Continuo una ubicacin y retroalimentacin ms
(CFC). sencilla de los elementos a utilizar en la
programacin.
Diagrama en Originado desde la lgica cableada, y
Escalera (LDR). por ende similar en desarrollo al
proceso para creacin de circuitos
elctricos lgicos de control.

Se debe anotar que el lenguaje CFC puede considerarse como una


extensin de los lenguajes de la norma aunque formalmente no pertenece
a esta.

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


16

Generalidades para los lenguajes de programacin.

CoDeSys soporta todos los operandos reconocidos por la norma IEC,


adems de otras funciones contenidas en la librera Estndar (Standard
Lybrary), estos comandos son reconocidos de manera implcita a travs
del proyecto que se desea desarrollar.

Estas funciones generales se encuentran agrupadas en los siguientes


conjuntos:

Operando de tipo Aritmtico: Tales como sumar, restar, dividir,


multiplicar, entre otros.
Operando para el manejo de cadenas de bit: Tales como operaciones
lgicas AND, OR, XNOR, XOR y NOT.
Operando para cambio y movimientos de Bit: Encontramos aqu
herramientas para la rotacin de bits, hacia derecha o izquierda, entre
otros.
Operando para Seleccin: Se utilizan para el trabajo con un grupo
determinado de datos, y as calcular aspectos como el mximo valor, el
mnimo, realizar selecciones, entre otras.
Operando para comparacin: Son aquellos utilizados para realizar una
comparacin entre dos o ms elementos, aqu encontramos entonces,
mayor que, menor que, mayor, menor, igual, entre otras.
Operando para realizacin de llamados: De funciones, de bloques de
funciones o de programas.
Elementos para la conversin del tipo de datos: Utilizados
simplemente para cambiar el tipo de un dato especfico a otro
diferente para efectos de manipulacin adecuada dentro de un
programa.
Operando Numrico: Son utilizados principalmente para el clculo de
operaciones matemticas especficas y avanzadas, tales como la raz
cuadrada, el valor absoluto, las funciones trigonomtricas 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 libreras que agregan funciones especializadas para
determinadas labores y que obviamente estn por fuera de la lista
anterior.

Generalidades del Listado de Instrucciones (Instruction List IL).

Este es un lenguaje de programacin textual similar a Assembler. Puede


considerarse bsicamente como una seguidilla completa de instrucciones
que se ejecutan una despus de la otra de acuerdo al orden en el que
figuran en el programa.

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


17

Debido a que se inicia siempre con una instruccin, 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 travs de un acumulador.

La lista de instrucciones es fcil de entender cuando el programa es


pequeo, pero se pierde esta caracterstica cuando se requieren
procedimientos complejos dentro del proyecto, principalmente debido al
hecho de que este lenguaje no soporta operandos para la programacin
estructurada.

Considrese 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 cinco
Si el resultado de la comparacin es cierto saltar a inicio

Generalidades del Texto Estructurado (Structured Text ST).

Lenguaje Textual especializado de alto nivel; incorpora rutinas y


componentes de programacin similares a los utilizados en PASCAL.
Las caractersticas anteriores le confieren a este lenguaje las mejores
herramientas para la programacin de ejecuciones basadas en
condiciones especficas, y para la realizacin de ciclos especficos como
IF, WHILE, FOR, entre otros.

A pesar de sus caractersticas, la programacin en este lenguaje puede


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

Se pueden observar a continuacin algunos ejemplos de utilizacin de


ciclos con sus respectivas explicaciones:

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


18

WHILE contador <> 0 DO


Var1 := Var1*2;
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 Calentador := 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 programacin grfico que permite la ejecucin de redes en


forma paralela. Cada red o rama del programa se compone de bloques,
cada uno de ellos representa una funcin en especfico que permiten
realizar una secuencia en el PLC.

La realizacin de secuencias, es una tarea compleja si se utiliza este


lenguaje de programacin, debido principalmente a la imposibilidad de
realizar conexiones de retroalimentacin entre los bloques, y por las
pocas opciones para realizar una programacin estructurada.

Esquema Continuo de Funciones (Continuos Function Chart CFC).

Este lenguaje de programacin retoma la capacidad grfica del FBD para


la representacin de funciones mediante bloques, pero en lugar de
trabajarlo de manera paralela, utiliza el emplazamiento libre de elementos
incorporando as una secuencialidad ms clara y la posibilidad de
retroalimentacin.
Las funciones de temporizado y algunas secuencias se hacen sencillas con
este lenguaje, sin embargo, funciones de asignacin de valores y otras de
comparacin pueden complicarse en algunos proyectos.

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


19

Se presenta a continuacin un ejemplo de un anidamiento de


temporizadores, utilizando este lenguaje de programacin.

Diagrama de Escalera (Ladder Diagram LD).

Lenguaje de programacin grfico que se asemeja en muchos aspectos al


desarrollo de secuencias en lgica cableada, cada una de las partes del
programa se representa en una rama compuesta de contactos y bobinas.
Lo anterior hace al lenguaje Escalera apto 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 continuacin un sistema de control para el encendido y


apagado de un motor a travs de diferentes entradas.

Diagrama Secuencial de Funciones (Sequential Function Chart SFC).

Lenguaje Grfico orientado, que hace posible la descripcin del orden


cronolgico 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 travs de
transiciones; tal y como se explica en la norma IEC 60848 que define los
lineamientos de la metodologa GRAFCET.

SFC es el lenguaje ideal para dar estructura a un proyecto en especfico,


como las acciones se pueden escribir en los pasos utilizando cualquiera
de los lenguajes anteriormente descritos, es entonces posible combinar
diversas alternativas en bsqueda de una solucin adecuada.

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


20

Ejercicios Adicionales:
1. Para una mejor comprensin acerca de los operadores disponibles en
CoDeSys, realice una lectura del manual de usuario de CoDeSys
Versin 3.5 (ayuda en lnea del software).
2. Para una mejor comprensin acerca de los lenguajes de programacin
soportados por CoDeSys, se recomienda la lectura del manual de
usuario en el captulo de Editors, buscar los editores de CFC,
FBD/IL/LD, SFC y ST.
3. Realice un cuadro comparativo de los lenguajes de programacin
soportados por CoDeSys haciendo nfasis en sus principales ventajas
y desventajas.

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


21

Prctica 3. Ejercicio LADDER LD


Objetivos.
Al finalizar esta prctica, el estudiante estar en capacidad de:
Comprender el procedimiento para la creacin de un proyecto
para simulacin en CoDeSys v3.5 provided by Festo.
Realizar proyectos bsicos en diagrama de escalera (Ladder),
insertando e interconectado elementos propios de este lenguaje
de programacin.
Comprender el procedimiento bsico para la realizacin de
simulacin para la puesta a punto de programas realizados en
diferentes lenguajes.
Identificar principales ventajas y desventajas de este lenguaje de
programacin.
Comprender el funcionamiento de los temporizadores TON, TOFF y
TP.

Explicacin 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 especficas de temporizado y de otros
elementos que se explicarn en detalle a medida que se avanza en la
creacin de una solucin.

Creacin de un proyecto para simulacin en CoDeSys.

Una vez instalado el software siguiendo las indicaciones de prcticas


anteriores, lo ejecutamos siguiendo:

InicioTodos los Programas Festo SoftwareCoDeSys V3-CoDeSys V3.5


pbF.

Una vez all crearemos un nuevo proyecto, dirigindonos a la barra de


mens para ejecutar ArchivoNuevo Proyecto.

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


22

Esto nos remite a una ventana donde podremos seleccionar el nombre y la


ubicacin de destino del proyecto.

Seleccione Proyecto standard.


Asgnele el nombre al proyecto.
Luego presione Aceptar.

Ahora una nueva ventana nos pedir que seleccionemos el tipo de PLC y
lenguaje de programacin que se desea trabajar (LADDER o LD en este
ejercicio).

Seleccione el tipo de PLC. (Codesys Control Win V3)


Seleccione el lenguaje para PLC_PRG (Diagrama de contactos).
Luego presione Aceptar (Observar grfica siguiente)

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


23

Recuerde que: POU significa Program Organization Unit y este puede ser
de tres tipos: un programa, una funcin o un bloque de ellas. CoDeSys
nombra por defecto PLC_PRG al primer programa creado, debido a que
este es el nico programa que se ejecuta al momento de iniciar un
proyecto en el controlador, entonces, dejaremos este nombre SIN
CAMBIOS para poder probar nuestros avances. Ms adelante se
explorar la introduccin de diferentes programas en la creacin de
proyectos ms avanzados.

Una nueva ventana aparecer con el entorno de programacin


seleccionado, en este caso las herramientas para la lgica de contactos, a
su ves en la parte inferior izquierda aparecen dos opciones para visualizar
la estructura del proyecto, seleccionamos la opcin Dispositivos para
poder encontrar el archivo de programacin.

Ntense dos cosas: primera, que la barra de herramientas especiales en el


men superior contiene conos especficos para este lenguaje, y segunda,

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


24

la ventana de programacin se encuentra dividida en dos partes una


superior para la definicin de variables utilizadas en el programa y la
inferior para la creacin del programa como tal (sin importar el lenguaje
de programacin que se seleccione, estas dos situaciones siempre se
presentarn).

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


objetivos de simulacin, seleccionando de la barra de herramientas la
opcin En lnea y activando la opcin Simulacin. (Observar grfica
siguiente)

En lneaSimulacin.

Creacin del Programa Solucin en LADDER.

Para familiarizarse con la manera como se introducen comandos,


funciones y dems, se recomienda la lectura de la ayuda de CoDeSys.
Conceptos y componentes bsicosLenguajes de Programacin
SoportadosEditor LD.

El Lenguaje de programacin LADDER o de diagrama de contactos, debe


ser analizado como un circuito basado en lgica de cableado que ha sido
creado con el nimo de resolver un problema en especfico. Es as como
se tendrn 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 smbolo de bobina cuya activacin o desactivacin
dependen directamente del estado de los elementos a ella conectados.

Ahora, iniciaremos por la creacin de un contacto al que llamaremos


start, para ello dirjase a la primera lnea del programa haga clic derecho
y seleccione la opcin Contact, o si lo desea haga clic en la lnea 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
continuacin:

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


25

Los signos de interrogacin (???) sobre el contacto creado indican que no


se ha introducido la variable que se desea manejar, para hacerlo, haga clic
sobre este smbolo y all escriba Start u otro nombre con el que quiera
designar su contacto y presione Enter. Al momento de hacerlo, una
ventana de definicin de variables aparecer automticamente.

Entonces, cada vez que se ingrese una variable desconocida CoDeSys


desplegar este asistente para ayudar con la configuracin, all
encontramos tres aspectos fundamentales:

Declaracin de Variables.
1. Visibilidad: 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

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


26

las variables de entrada y de salida sern aquellas que le permitan a


un programa en especfico interactuar con otros programas o bloques
de funciones.
2. Nombre: El nombre que queremos asignar a la variable.
3. Tipo de Dato: Que corresponde al tipo de dato que se maneja INT,
BOOL, REAL, TIME, especficos de alguna funcin u otros (ver ayuda
en el manual CoDeSys v.3).

Recuerde que: Cada vez que se define una variable a travs del asistente,
el cdigo correspondiente aparecer en la parte superior de la ventana de
programacin, as que si se desea realizar alguna correccin, supresin, o
adicin, esta puede hacerse de manera manual all.

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 funcin de tiempo
adecuada para la insercin, se remitir a la barra de herramientas opcin
ayuda se selecciona Contenido y el programa cargara las ayudas de todos
los temas, dirjase a Bibliotecas/Bibliotecas estndar/Timer. Donde podr
encontrar detalles acerca del funcionamiento de los mismos.

Modos de visualizacin de variables

En CoDeSys las variables se pueden visualizar de dos formas:


1. Textual: Las variables se muestran en forma textual

2. Tabular: Las variables se muestran en forma de tabla

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


27

Insercin 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.

En donde se adicionara un bloque en blanco, en el cual se escribir que es


de tipo TON dando clic en los signos de interrogacin en la parte interna
del bloque como se muestra en la imagen.

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


28

Aparece un Tipo de temporizador tipo TON, con parmetros por definir,


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

Recuerde que: Siempre que se inserte una funcin especial debe


asignrsele 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 funcin, as por ejemplo, al asignar el valor de tiempo a la
funcin recientemente insertada, la ventana de declaracin de variables
debe llenarse como se sugiere a continuacin:

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.

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

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


29

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 opcin
Insertar Bobina 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 continuacin:

Si se desea conocer el tiempo actual en el que se encuentra el contador se


asigna una variable a la salida ET, si no es necesario conocer este tiempo
se debe eliminar los smbolos de interrogacin para que no generen error
al momento de compilar.

Procedimiento para la Depuracin y Simulacin de Programas.

Una vez concluido el procedimiento anterior, Grabe sus progresos


seleccionado una ubicacin y un nombre apropiados.

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


30

Ahora, realizaremos una compilacin de los componentes de nuestro


proyecto ejecutando en la barra de mens CompilarCompilar, 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 algn error o errores,


estos se presentarn 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 compilacin, en bsqueda
de los cero errores y cero advertencias; en caso de una nueva falla
corrija de nuevo.
Slo con un proceso de compilacin exitoso se puede proceder a una
simulacin o a una descarga.

Para simular primero se debe realizar una conexin con el PLC virtual,
para ello ejecuta en el men de herramientas. En lneaIniciar la Sesin,
o simplemente presione Alt+F8.

Cuando se inicia sesin por primera ves el sistema arroja un mensaje de


advertencia el cual solicita autorizacin para crear el archivo de enlace, se
da clic en Si tal como se observa en la siguiente imagen.

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


31

Al hacer lo anterior, la pantalla de programacin cambia inmediatamente


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

Ntese adems que la barra de estado en la parte inferior cambia para


mostrar que el sistema se encuentra en lnea, y en modo simulacin.

Una vez conectados con el PLC, debemos iniciar la ejecucin del programa
ejecutando: DepuracinInicio, 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:

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


32

Ntese 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:

DepuracinEscribir Valores, presione Ctrl + F7 o busque el icono en la


Barra de Herramientas.

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


ejecucin del proceso.

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 simulacin ejecute: DepuracinParada, o


presione Mays.+F8 o busque el icono en la Barra de Herramientas.

Para cambiar las propiedades o los nombres iniciales de las variables se


debe Salir de la sesin activa bien sea por la barra de herramientas opcin
En Lnea y dar clic en Salir o presionando la combinacin Crtl+F8.

Explorando los diversos Tipos de Temporizadores.

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


33

Una vez analizados los resultados obtenidos de la simulacin con el


temporizador TON, se estudiar el funcionamiento de los temporizadores
TOF y TP.

Haciendo clic en los nombres correspondientes se realizarn 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.

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


34

Aunque existen muchas maneras de controla una luz de destello a travs


de un pulsador de inicio, se explorar en este momento la siguiente
solucin:

Para su implementacin se deben tener en cuenta dos cosas:

1. Aparece en la solucin una variable ayuda que se utiliza para lograr


una unin 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. Ntese que se ha utilizado un contacto denominado tiempo.Q. Esta
es precisamente una de las ventajas de CoDeSys, la posibilidad de
utilizacin 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 conexin, 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 aparecern 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 desconexin
TOF.

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


35

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 2013. Leonardo.rodriguez.ortiz@gmail.com


36

Prctica 4. Ejercicio Lista de Instrucciones IL


Objetivos.
Al finalizar esta prctica, el estudiante estar en capacidad de:

Realizar proyectos bsicos en Lista de instrucciones (IL)


escribiendo el cdigo propio de este lenguaje de programacin.
Identificar principales ventajas y desventajas de este lenguaje de
programacin.
Realizar aplicaciones de conteo sencillas, utilizando funciones de
adicin, y saltos.
Comprender la importancia del asistente para entradas (input
Asistant).

Explicacin del Ejercicio.

En esta oportunidad se utilizarn funciones de tipo matemtico para


contar el nmero 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 realizacin de este ejercicio se analizarn algunos
referentes a la ejecucin de tareas en lista de instrucciones, con el nimo
de ilustrar formas en las que se pueden resolver diferentes ejercicios en
este lenguaje de programacin.

Creacin del Programa Solucin en IL.

Antes de comenzar a realizar algn avance respecto a la creacin del


programa es necesario tener en cuenta que:

1. Toda lnea de cdigo en la lista de instrucciones debe comenzar con


una instruccin especfica.
2. En muchos sentidos la programacin en lista de instrucciones se
facilita si se piensa en la similitud de cada lnea creada con su
contraparte en Ladder.
3. El orden en la ejecucin en lista de instrucciones (de arriba hacia
abajo), facilita la creacin de pasos que permiten omitir ciertas partes
de cdigo.
4. Para una mayor comprensin de algunos de los aspectos que se
explicarn a continuacin, se recomienda la lectura completa (Editor
Lista de Instrucciones), del manual de usuario de CoDeSysy v3
provided by festo.

Ahora, y siguiendo el procedimiento para la creacin de proyectos se debe


llegar hasta la ventana de seleccin de lenguaje de programacin, donde
se escoger, por supuesto, lista de instrucciones IL.

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


37

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 primero se
debe cambiar la visualizacin de variables a forma textual, luego se hace
clic derecho en algn espacio en el lugar donde estn las variables y se
elige la opcin adecuada, o simplemente presionando la tecla F2.

All podrn encontrarse todas las funciones disponibles en el estndar y


otras adicionales propias de las libreras disponibles en la versin de
CoDeSys que se trabaje en el momento (para mayor informacin favor
remitirse a los apndices A y D del manual de usuario de CoDeSys).

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


38

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


la implementacin 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:

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


podramos 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 explicacin puede traducirse fcilmente si se tiene en cuenta que:


LD es la instruccin para cargar un valor en el acumulador.
S es la instruccin para encender una determinada salida.
R es la instruccin 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 programacin de lista de instrucciones para


escribir nuestros progresos:

Y siguiendo los procedimientos vistos con anterioridad se compila, se


simula y se analizan resultados.

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


39

En el lenguaje de Lista de Instrucciones hay que diferenciar entre una


lnea nueva y un segmento nuevo. Las lneas se agregan con Crtl+Enter y
sirven para escribir las instrucciones antes de un salto. Los segmentos
diferencian los saltos y partes separadas del cdigo, estos segmentos
se agregan con Crtl+i

Variables de tipo Entero.

Para trabajar con un contador, se requiere definir una variable que admita
incrementos y operaciones de tipo matemtico. Por esta razn se
trabajar con la variable Conta de tipo entero o INT para su correcta
configuracin.

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 cdigo para poner en evidencia los problemas que se


pueden presentar con el conteo, de la siguiente manera.

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


40

Compilar, Simular y Analizar resultados.

Deteccin de Flancos y Generacin de Saltos.

El problema de la simulacin 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 deteccin de flancos ascendentes y


descendentes en la variable START.
2. La pobre unin de condiciones para la realizacin de conteo (si se
simula hasta el momento el contador se incrementar sin importar
el estado de los dems elementos).

Par la solucin de la deteccin de flancos se puede acudir a una variable


adicional que permita determinar cuando existe una transicin de Falso a
Verdadero y de Verdadero a Falso. A esta variable adicional la
llamaremos ayuda, y funcionar de la siguiente manera:

Si START es verdadero y AYUDA es falsa, encenderemos la


variable AYUDA para hacer que esta condicin no se cumpla.
Si START es falso y AYUDA es verdadera, quiere decir que se
presion Start, pero ya se liber, razn 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 botn de Start, entonces utilizaremos la
instruccin JMPCN que quiere decir Salto si la condicin anterior no se
cumple.

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


41

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 tambin
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 2013. Leonardo.rodriguez.ortiz@gmail.com


42

Prctica 5. Ejercicio Diagrama de Bloque de Funciones FUB.


Objetivos.
Al finalizar esta prctica, el estudiante estar en capacidad de:

Realizar proyectos bsicos diagrama de bloque de Funciones


(FUB) insertando funciones y conexiones propias de este lenguaje
de programacin.
Identificar principales ventajas y desventajas de este lenguaje de
programacin.
Realizar aplicaciones con lectura de datos numricos.
Utilizar la ayuda en lnea para el manejo de funciones especficas.

Explicacin 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.

Creacin del programa Solucin en FBD.

El diagrama de bloques de funciones, es un lenguaje de programacin


grfico similar al LADDER, pero que utiliza funciones de diferente tipo para
la realizacin de una tarea en especfico.

Si consideramos cada funcin como un bloque con entradas y salidas,


vemos que el FBD deja de basarse en la pura lgica cableada, y pasa a
tomar fundamentos de la lgica digital utilizada en circuitos electrnicos.

Para comenzar crearemos un proyecto basndonos en los procedimientos


explicados en guas anteriores, y seleccionando el lenguaje de
programacin adecuado:

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


43

Ahora, nuestra primera tarea ser idear un cdigo que permita encender y
apagar una salida, a travs de entradas independientes. Un breve vistazo
a las funciones disponibles, nos mostrar que una buena seleccin puede
ser la funcin SR. As que la insertaremos de la siguiente manera.

Estando ubicados sobre la ventana de programacin, haremos clic en el


cono de insertar funcin (BOX), o de manera abreviada (CTRL+B) dar clic
en Palabras clave y buscar en la lista el bloque ADD y dar clic en aceptar.

Como resultado de esta operacin tendremos lo siguiente (La funcin AND


ser la que se agregue siempre por defecto):

Ahora cambiaremos el nombre de la funcin por la que elegimos


previamente, es decir reemplazamos AND por SR, al hacerlo
inmediatamente la forma del cuadro cambiar para ajustarse a los
parmetros de la nueva funcin.

La ayuda En lnea (Online Help).

Una de las ventajas que ofrece CoDeSys provided by Festo, consiste en la


ayuda en lnea, es decir, ayuda inmediata sobre dudas que se presentan
sobre la marcha, utilizaremos entonces esta propiedad para averiguar la
ayuda disponible para nuestra funcin SR, para ello seleccione con el
cursor la totalidad del nombre de la funcin y posteriormente presione la
tecla F1, el resultado debe ser el siguiente:

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


44

Este procedimiento puede repetirse cada vez que el usuario requiera


conocimientos adicionales al respecto de una funcin, estos contenidos
son los mismos que aparecen en el manual de CoDeSys V3 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 sobre el pin de
salida y seleccionando la opcin adecuada.
3. Se asigna un nombre a la funcin (en este caso memo) y se
define esta variable como una de tipo SR.

Una vez asignada repetimos el proceso y asignamos una nueva funcin


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

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


45

La funcin recientemente agregada la reemplazaremos con un


temporizador con retardo a la conexin TON, con un tiempo
preestablecido de 6 segundos, y con una salida a una variable de ayuda
llamada precisamente ayuda, esta ser la variable que necesitamos
para apagar el motor, es decir, tambin la asignaremos a la entrada RESET
de la funcin memo. El montaje esperado se presenta a continuacin:

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 funcin 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 funcin de comparacin mayor que o
simplemente GT.

Conectando los elementos de manera apropiada y definiendo las


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

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

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


46

Ejercicios Adicionales.

1. Agregue una entrada adicional llamada STOP que sirva para


detener el motor, y el calentador en cualquier momento.
2. Encuentre una solucin al problema de esta prctica (incluyendo
los requerimientos del numeral anterior), utilizando IL.
3. Encuentre una solucin al problema de esta prctica (incluyendo
los requerimientos del numeral anterior), pero utilizando LD.

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


47

Prctica 6. Ejercicio Texto Estructurado ST.


Objetivos.

Al finalizar esta prctica, el estudiante estar en capacidad de:

Realizar proyectos bsicos utilizando texto Estructurado (ST)


utilizando sintaxis propia de este lenguaje de programacin.
Identificar principales ventajas y desventajas de este lenguaje de
programacin.
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 nmeros.

Explicacin del Ejercicio.

Se abordaran dos problemas bsicos, el primero de ellos relacionado con


una luz que se encender por 4 segundos luego de que se active una
entrada mostrada como START, el segundo relacionado con el clculo de
los primeros 11 elementos de la sucesin de Fibonacci utilizando los
ciclos disponibles en Lenguaje Estructurado.

Creacin del programa Solucin 1 en ST.

El lenguaje de texto estructurado utiliza herramientas de programacin


avanzada para la creacin de secuencias complejas de clculo, as mismo
puede utilizarse para la creacin de secuencias relacionadas con sistemas
de automatizacin, a partir de la utilizacin 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 de la ayuda del Editor De Texto


Estructurado del manual de usuario de CoDeSys, para comprender
detalles acerca de la estructura y asignaciones que se usarn en las
soluciones mostradas a continuacin.

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


de programacin adecuado.

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


48

Ahora, en la ventana de programacin se usar una entrada de tipo


Booleano para el control de una salida, para ello ser necesario transcribir
el siguiente cdigo:

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 conexin para determinar en qu
momento se puede apagar la misma.
3. Cuando la salida del temporizador se active, se reinicializarn las
variables para comenzar de nuevo.

El primer punto puede resolverse de manera sencilla haciendo:

IF START
THEN LUZ: = TRUE;
ELSE LUZ: = FALSE;
END_IF

Para la segunda parte, se tienen que conocer los parmetros para el


llamado a un temporizador, por eso ejecutamos el asistente de entradas

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


49

con F2 se selecciona mdulos de Funcin/Standard/Timer , para conocer


la correcta sintaxis.

A partir de lo anterior puede plantearse el siguiente cdigo, 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 prcticas anteriores que consiste en lo siguiente:
IF TIEMPO.Q
THEN LUZ:=FALSE;
TIEMPO (IN:=FALSE);
END_IF

Uniendo el cdigo bajo el entorno de programacin tendremos algo como


lo siguiente:

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


50

Transcribir, compilar, simular y analizar.


Ejercicio Adicional Parte 1.

1. Implementar un sistema que permita bloquear el proceso luego de


haber encendido la luz ms de 4 veces. As mismo cree un pulsador
de STOP que permita reiniciar el programa una vez se ha bloqueado.

Solucin al Ejercicio 2 Utilizando Texto Estructurado.

Como ya se mencion anteriormente en este ejercicio se utilizar una


entrada START, la cual permitir el clculo de los primeros 11 elementos
de la sucesin 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 automtica los elementos
pertenecientes al vector.
4. La utilizacin 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 definicin de arreglos se recomienda al lector la revisin de


la ayuda Defined Data types, especficamente 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 cdigo escrito en la parte de definicin 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 definicin de la variable de conteo utilizaremos la palabra conta


inicializada en cero, agregndola 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

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


51

Para obtener ayuda acerca del uso de while, se escribe WHILE en la


ventana de programacin 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 cdigo


descrito en la siguiente ventana:

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


con la ejecucin del programa, los elementos del vector deben contener
los nmeros esperados:

Ejercicios Adicionales parte 2.

1. Utilice el ciclo FOR para el clculo de los 11 primeros elementos de la


sucesin de Fibonacci, tomando como ejemplo el ejercicio
anteriormente desarrollado.
2. Utilice el ciclo REPEAT para el clculo de los 11 primeros elementos de
la sucesin de Fibonacci, tomando como ejemplo el ejercicio
anteriormente desarrollado.

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


52

Prctica 7. Ejercicio Diagrama de Funciones Continuo (CFC)


Objetivos.
Al finalizar esta prctica, el estudiante estar en capacidad de:
Realizar proyectos bsicos utilizando las funciones y elementos
propios del Diagrama de Funciones Continuo (CFC).
Identificar principales ventajas y desventajas de este lenguaje de
programacin.
Comprender la importancia de las funciones matemticas dentro
del desarrollo de aplicaciones.
Aprender a cargar libreras para el uso de funciones especiales.
Explorar las funciones para creacin de macros en este lenguaje
de programacin.

Explicacin del Ejercicio.

Se contar el nmero de veces que cambia la variable de entrada START, a


medida que aumenta este nmero 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.

Creacin del programa Solucin en CFC.

El lenguaje de programacin CFC puede entenderse como una mejora


en cuanto a lo observado en FUB, pues permite la ubicacin libre de
elementos dentro del rea de trabajo, permite la creacin de lazos de
retroalimentacin y por ende la creacin de programas es mucho ms
intuitiva, aunque la comprensin de los mismos para labores de
mantenimiento o de reprogramacin.

Se recomienda la lectura del manual de CoDeSys The Continuous Function


Chart Editor (CFC) en, antes de abordar la realizacin de estos ejercicios.

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


selecciona el lenguaje de programacin adecuado.

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


53

Ahora, teniendo en cuenta la solucin del programa, primero se realizar


una prueba del funcionamiento de los contadores, para ello se
recomienda la lectura del funcionamiento de los mismos en el manual del
usuario de CoDeSys (Counter).

Seleccionaremos el contador ascendente CTU, ubicndolo sobre el rea


de trabajo, para ello haga Ctrl+B sobre el rea de programacin o ejecute
el cono correspondiente sobre la barra de herramientas especiales.

Por defecto, aparecer el bloque en blanco as que seleccione este bloque


y 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 asignarn las mismas de
acuerdo a las indicaciones del ejercicio, para ello basta con hacer clic
derecho en las entradas correspondientes y seleccionar la opcin que se
desea. No olvidar definir las variables de manera adecuada.

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


54

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


tendr el siguiente resultado (fjese en las variables en la parte superior).

Se compila, se simula y se analiza.

Ahora, y con el nimo de simplificar el cdigo desarrollado, se buscar


una funcin que realice de manera automtica la secuencia de la luz de
destello, para ello nos remitiremos al manual de CoDeSys donde se
describen los componentes de la librera Util.lib, all en Signals,
encontraremos la funcin BLINK.

Proceso para Agregar Libreras a un Proyecto.

Las funciones de Blink se ajustan adecuadamente a lo que se requiere en


este ejercicio; pero esta funcin pertenece a la librera Util.lib la cual no se
encuentra integrada por defecto a los proyectos de simulacin, as que se
estudiar el proceso para agregar una nueva librera, proceso que puede
hacerse extensivo a otros proyectos ms complejos.

El primer paso consiste en la exploracin de las libreras existentes, para


ello en la barra de dispositivos hacer clic: ApplicationAdministrador de
Bibliotecas.

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


55

En la nueva ventana se pueden observar las libreras que actualmente


hacen parte del proyecto (ntese la ausencia de Util.lib), as que la
adicionaremos haciendo clic en agregar librera tal como se muestra en la
siguiente figura.

En la ventana emergente aparece un explorador donde se supone


debemos buscar la librera deseada. Dependiendo de las condiciones de
instalacin esta direccin puede variar, pero por lo general puede hallarse
en:
C: \Archivos de Programa\Festo\CoDeSys V.3\CoDeSys Converter\Library\

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


56

Una vez insertadas puede encontrarse all la funcin BLINK.

Fjese en la ayuda de Blink, y notar que las entradas TIMELOW y


TIMEHIGH son entradas de tipo tiempo. Ahora, como el contador utiliza
variables de tipo Entero o palabra, se requerir una conversin 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 divisin, partiendo de un tiempo base inicial de 2 segundos,
tal y como se muestra a continuacin:

Ntese que se agrega un bloque de adicin luego del contador, esto con
el nimo de evitar la divisin por cero en el bloque DIV, adems se ha
creado la variable convert para poder simular el resultado antes de
insertar la funcin Blink, de acuerdo a los parmetros definidos a
continuacin.

Se simula, y se estima si el resultado es adecuado para la insercin de la


funcin Blink.

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


57

Aprovechando el adecuado funcionamiento del sistema, se agregar una


retroalimentacin 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:

Finalmente se agregan dos funciones adicionales, BLINK para controlar


la luz de destello, y la funcin SR para hacer que se active o desactive
de acuerdo a las condiciones dadas por las seales 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 creacin de macros para
resumir su programa de manera adecuada.

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


58

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


59

Prctica 8. Ejercicio Grafico Secuencial de Funciones (SFC)


Objetivos.

Al finalizar esta prctica, el estudiante estar en capacidad de:


Realizar proyectos bsicos utilizando las funciones y elementos
propios del Grfico Secuencial de Funciones (SFC).
Comprender la manera como se ejecutan las funciones y
transiciones.
Comprender los procedimientos para la insercin y ejecucin de
acciones, usando los lenguajes de programacin vistos en
prcticas anteriores.
Realizar llamados de funciones utilizando lenguajes de
programacin de tipo textual.
Comprender las ventajas y desventajas de este lenguaje de
programacin.

Explicacin del Ejercicio.

Con el nimo de explorar las ventajas para la realizacin de secuencias en


este lenguaje de programacin, 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 Perodo de 4
segundos.
2. Al desactivar Start se detiene la luz anterior, y una nueva luz comienza
una secuencia intermitente, con un perodo de 2 segundos.
3. Al activar de nuevo Start, entonces, ambas luces prendern y
apagarn al unsono con un perodo de 1 segundo.
4. Al desactivar Start el sistema queda listo para iniciar de nuevo.

Solucin del Ejercicio Utilizando SFC.

Antes de abordar la solucin del problema se sugiere al lector la revisin


del manual CoDeSys ( SFC), As mismo una revisin completa de la teora
relacionada con GRAFCET ayudar a la comprensin de la estructura de la
presente solucin.

Siguiendo las indicaciones dadas en prcticas anteriores se crea un


programa y se selecciona el lenguaje de programacin adecuado.

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


60

Aparecer una nueva ventana para la iniciacin del programa, la primera


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

Procedimiento para la creacin de acciones en Grafcet.

Para la creacin de esta accin, 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 cdigo correspondiente para realizar la funcin descrita


anteriormente:

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


61

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

Creacin de Condiciones de Transicin.

Ahora, para pasar a la siguiente parte de la secuencia, se debe cumplir


una condicin especfica y esta es la presencia de Start. Para crear esta
transicin se hace clic en el ttulo de la misma y all se escribe una
condicin lgica de respuesta Verdadero o Falso.

Si la condicin de Transicin se cumple se ejecutar el paso siguiente, de


lo contrario la ejecucin del paso actual permanecer activa.

Procedimiento para Agregar nuevos Pasos.

Para la creacin de nuevos pasos, se hace clic derecho sobre la transicin


recientemente modificada y del men emergente se selecciona la opcin
adecuada.

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


62

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


encendida, 2 segundos apagada); con la utilizacin de la funcin BLINK,
as que antes de realizar y definir las acciones del nuevo paso
agregaremos la librera Util.lib siguiendo los procedimientos explicados
en prcticas 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 programacin pues solamente se utiliza para labores de
identificacin sencilla); y posteriormente definiremos una accin para ella
haciendo doble clic (en lista de instrucciones).

All llamaremos constantemente BLINK, siguiendo las instrucciones


mostradas a continuacin:

1. Definir la Variable.

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


63

2. Crear el cdigo de llamado apropiado.

3. Definir la Siguiente Transicin, 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 Transicin siguiendo los
mismos procedimientos anteriores.

Siguiendo las indicaciones dadas en la explicacin del ejercicio, tenemos


que el prximo paso debe ejecutar una luz de destello (1 segundo
encendida, 1 segundo apagada). Esta accin ser realizada en FUB, tal y
como se muestra a continuacin.

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


64

Ntese que tanto la nueva transicin como el nombre del paso han sido
cambiados de acuerdo a las condiciones del ejercicio.

Sobre la ltima transicin definida creamos un nuevo paso, cambiamos el


nombre y definimos accin en lenguaje LAD.

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

Finalmente la ltima Transicin 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 2013. Leonardo.rodriguez.ortiz@gmail.com


65

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 2013. Leonardo.rodriguez.ortiz@gmail.com


66

Prctica 9. Visualizacin en CoDeSys V3


Objetivos.

Al finalizar esta prctica, el estudiante estar en capacidad de:


Aprender los fundamentos para la realizacin de pantallas de
visualizacin sencillos en CoDeSys.
Comprender el procedimiento para la escritura y lectura de datos
del programa, a travs de componentes del sistema de
visualizacin.

Explicacin del Ejercicio.

Tomando como base el ejercicio desarrollado en la prctica anterior, se


crear una pequea ventana de visualizacin compuesta de un rectngulo
para el manejo de Start y dos crculos para la Visualizacin del estado
de las variables Luz1 y Luz2.

Creacin del Sistema de Visualizacin.

Aunque en este momento se estudiarn los principios bsicos de la parte


de visualizacin, existen muchos elementos por explorar que pueden ser
consultados completamente en el manual CoDeSys Visualization V3

Como primera instancia se abrir el proyecto creado en la prctica


anterior, para dirigirnos a la pestaa de visualizacin.

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


67

Sobre esta carpeta de visualizacin se da clic derecho para seleccionar


la opcin Agregar Objeto, 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.

Considere esta nueva pantalla como un software para la creacin de


entornos grficos a partir de herramientas bsicas para la creacin de
figuras geomtricas, realizar dibujos a mano alzada, insertar botones,
conos interactivos, insercin de grficas y otros.

Ahora seleccionando la herramienta para la creacin de crculos


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

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


68

En esta ventana de propiedades pueden cambiarse y configuracin


elementos relacionados con la parte grfica del elemento, as como la
asociacin con variables que hacen parte del proyecto desarrollado en
CoDeSys. Como en nuestro caso deseamos que el Color del crculo
cambie de acuerdo a la variable luz1, entonces realizamos la asignacin
en la categora Color Variables y en el campo Toggle Color escribimos
PLC_PRG.luz1 , es decir la luz1 perteneciente al programa PLC_PRG
(se puede observar este proceso en la imagen anterior).

Tambin puede hacer clic sobre el cuadro donde aparecen los puntos
suspensivos para seleccionar la variable que est dentro del proyecto del
programa; esto es til cuando el proyecto contiene muchas variables.

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


69

Para completar el proceso de configuracin, nos dirigiremos a la categora


de Colors y all elegiremos un color oscuro para NormalState-
>FillColor, y otro ms brillante para AlarmState-> FillColor

Finalmente tendremos el crculo que representa la luz listo, pero como


necesitamos otro de similares caractersticas utilizaremos las
herramientas de Copiar y Pegar, para crear un segundo crculo.

Recuerde cambiar la variable PLC_PRG.luz1 de este nuevo crculo, por la


variable PLC_PRG.luz2. Para que el color de este cambie de nuevo de
acuerdo al estado de la variable Luz2.

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


70

Culminada la creacin de los botones, se crear un rectngulo que servir


de pulsador para el manejo de la variable Start.

Utilizando la herramienta adecuada se completa el rectngulo, y


posteriormente se ingresa a las propiedades para cambiar el texto y los
colores.
Finalmente se configura la accin que este rectngulo realizar sobre la
variable eligiendo la categora Inputconfiguration, y all se debe
habilitar la funcin Toggle y se debe escribir sobre el campo el nombre
de la variable a modificar, es decir la variable PLC_PRG.Start.

NOTA: Antes de realizar la simulacin del programa asegrese que esta


vez el programa no est en modo de simulacin; si lo est, deshabiltelo a
travs de la opcin En Lnea-> Simulacin. Luego cercirese de que el
servicio de WIN V3 est activo, para esto dirjase a la barra de inicio del
escritorio y de clic derecho el siguiente icono; selecciones START PLC.

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


71

PLC
Virtual

Luego, a travs de la opcin en lnea, seleccione En lnea->Iniciar


Sesin, inmediatamente le aparecer la siguiente ventana:

Seleccione si; a continuacin aparecer una ventana de asistencia para


la conexin con el PLC virtual dependiendo del tipo de red de conexin;
dado que es un PLC virtual no habr problema con la red.

Si inicialmente no aparece, oprima el botn Examinar red. Una vez


seleccionado el PLC virtual, nuevamente de clic sobre Iniciar sesin.

Con nuestra pantalla de visualizacin lista, compilamos y corremos la


simulacin normalmente, pero esta vez el accionamiento de START
puede realizarse de manera sencilla haciendo clic sobre el rectngulo

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


72

definido y el estado de las luces podr observarse en los crculos creados,


tal y como se observa en la siguiente figura:

Ahora, es fcil notar que aunque en CoDeSys no es posible crear entornos


visuales con excesivos detalles o elementos grficos complejos, la
herramienta de visualizacin puede constituirse como un excelente apoyo
que hace mucho menos tediosa la prueba de ejercicios realizados en los
diferentes lenguajes de programacin.
Ejercicios Adicionales:

1. Tomando como base los proyectos desarrollados en las prcticas


anteriores, desarrolle y pruebe sistemas de simulacin que permitan
una interaccin ms sencilla y amigable con el usuario.

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


73

Prctica 10. Creacin de un proyecto, Integracin de Programas


Objetivos.
Al finalizar esta prctica, el estudiante estar en capacidad de:
Reconocer la importancia de la realizacin de proyectos a travs
de la integracin de varios programas para el desarrollo de
funciones especficas.
Crear Proyectos bsicos que impliquen la utilizacin de ms de un
programa.
Comprender el procedimiento para la creacin de bloques de
funciones.
Definir variables de tipo Global.

Explicacin del Ejercicio.

Aunque el ejercicio que se desarrollar en las siguientes pginas es


tomado de las pginas del manual original de CoDeSys, la explicacin que
all aparece es bastante mecnica y deja ciertos vacos conceptuales que
dificultan el verdadero aprendizaje a travs del mismo. As que con el
nimo de hacer de este ejemplo una verdadera experiencia de aprendizaje
se retomar el mismo realizando una explicacin completa de los
diferentes paso involucrados teniendo en cuenta lo que se ha trabajado
en prcticas anteriores.

El ejercicio consiste en el control de dos semforos para una interseccin.


Este control se realizar a travs de un pulsador de Start, cada vez que
se presione este, las luces deben realizar la siguiente transicin:

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
semforos 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.

Adicionalmente el sistema debe contar el nmero de secuencias


realizadas, y una vez ese nmero de secuencias sea mayor a 7, los

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


74

semforos deben apagarse, y esperar mnimo 10 segundos antes de


volver a iniciar.

Creacin de la Solucin.

Debido a la naturaleza del problema que se presenta y con el nimo de


reducir al mximo el cdigo que se cree, se abordar el problema basados
en este procedimiento:

1. Creacin de un bloque de Funciones que permita definir el color que


presentar el semforo 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 (entindase
semforo 1 como el semforo de la derecha en la grfica explicativa
vista anteriormente):

Estado de Color Respuesta Observaciones


entrada Programa
Paso 1 del semforo 1 de la
1 VERDE
grfica de explicacin.
Paso 2 del semforo 1 de la
2 AMARILLO
grfica de explicacin
Paso 3 del semforo 1 de la
3 ROJO
grfica de explicacin
ROJO Paso 4 del semforo 1 de la
4
AMARILLO grfica de explicacin.
Necesario para bloquear el
5 NINGUNO programa, en caso que la
secuencia sea mayor a 7.

2. Creacin de un bloque de funciones que permita coordinar los


tiempos de espera, es decir, que realice un llamado a alguna funcin
de tiempo, una vez culminado retorna una seal aprobatoria. En
conclusin, la entrada a este programa ser el tiempo a esperar, y el
retorno ser la seal de culminado.
3. El Tercer programa contendr la secuencia como tal, con sus pasos y
transiciones, describiendo los requerimientos solicitados en la
descripcin del problema.
4. Llamado al programa que controle la ejecucin de la secuencia y el de
los estados del semforo.

NOTA: Consulte bajo la opcin ayuda las diferencias entre bloques de funcin y funcin.

Como se ha visto con anterioridad, el programa principal es el llamado


PLC_PRG, entonces lo crearemos en lenguaje de programacin CFC y
podremos empezar a ejecutar los pasos propuestos.

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


75

Creacin del bloque de funciones para Control de Estados (Punto 1).

Bsicamente lo que se realizar en este punto ser una traduccin de la


tabla vista en el punto 1, al lenguaje de programacin FUB, teniendo en
cuenta lo siguiente:
a. El programa debe recibir una entrada que solicita el estado del
semforo.
b. Tres salidas de tipo booleano correspondientes a cada color del
semforo.

Ahora, se crea un nuevo bloque de funciones llamado trfico, en Diagrama


de bloques de funciones.

All se crea el siguiente cdigo (correspondiente a la tabla):

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


76

Culminada la elaboracin del primer punto pasaremos ahora a la creacin


del programa para el manejo del tiempo de transiciones.

Creacin 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 creacin de uno utilizando el lenguaje lista de
instrucciones IL, y lo llamaremos espera:

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


77

En este programa se llamar a una funcin 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
cdigo con las siguientes variables:

Las funciones creadas anteriormente (trafico y Espera) se llamarn


apropiadamente en la creacin de la secuencia del siguiente punto:

Creacin del programa para control de la Secuencia (Punto 3).

Aqu crearemos una secuencia utilizando el lenguaje apropiado para este


fin, es decir, el grfico 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 semforo
(esta seal se utilizar posteriormente con entrada del bloque de
funciones trafico, y as se podrn determinar los colores que tendr
el semforo), estas salidas se llamarn Senal1 y Senal2
c. Un contador para control de las 7 secuencias que deben realizarse.

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


78

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


esquema de SFC.

Nombre Acciones Siguiente Transicin a cumplir


Paso Paso
Hacer
Init Senal1=1 Cambio1 Presencia de Start
Senal2=3
Senal1=2
Senal2=4 Tiempo espera
Cambio1 Llamar funcin 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 funcin espera culminado
con tiempo 10 seg
Senal1=3
Senal2=1 Tiempo de espera
Verde2 Llamar funcin espera Cambio2
culminado
con tiempo de 5 seg
Senal1=4
Senal2=2 Tiempo de espera
Cambio2 Llamar funcin espera Verde1
culminado
con tiempo de 2 seg
Senal1=1
Senal2=3 Tiempo de espera
Verde1 Llamar funcin espera Init
culminado
con tiempo de 5 seg

Ahora, para poder llevar lo anterior a cabo, se debe hacer una correcta
definicin de variables de un nuevo programa en SFC al cual llamaremos
secuencia. Las variables de este programa secuencia sern:

Ntese que aparte de las entradas, salidas y la variable de conteo,


aparece all una variable que llamaremos delay, fjese adems que esta
variable es de tipo espera, es decir, delay es la variable que

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


79

utilizaremos para llamar el bloque de funciones para esperar por un


determinado tiempo.

A continuacin se puede observar la totalidad del cdigo 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 prcticas


anteriores.

Llamado al programa principal (Punto 4).

Ahora debemos llamar al programa principal (PLC_PRG), 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
semforos (identificados por las salidas Senal1 y Senal2).
b. Este programa secuencia arroja dos salidas, as que para saber cual
color asumen los semforos, debe ingresarse el estado como una
entrada adicional de la funcin trfico.

Pero antes de realizar este programa se definirn 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

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


80

propiedades de estas variables es que pueden ser utilizadas en


cualquiera programa o funcin que se requiera sin necesidad de definirlas
de manera local.
Definicin de Variables Globales

Para definir estas variables globales dirjase a la seccin de:

Dispositivos Application(Clic derecho) Agregar objeto Lista de


variables globales.

All deber asignarle el nombre a las lista de variables globales y luego


presionara Abrir. Se desplegar una ventana donde se definen las
variables de tipo global, tal y como aparece a continuacin.

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


81

Finalmente regresamos a nuestro programa principal PLC_PRG, para la


realizacin del programa que coordinar la ejecucin de las actividades
para la solucin de nuestro ejercicio.

Cabe aclarar que para realizar el llamado a una funcin realizada por el
usuario, basta con agregar un bloque de funcin y sobre el ttulo que
aparece all por defecto se escribe el nombre del bloque de funciones o
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.

Creacin de la visualizacin (Punto Adicional).

Para completar nuestro proyecto se crear un sistema de visualizacin


siguiendo las indicaciones dadas en prcticas anteriores. Para ello utilice
las variables globales recientemente definidas teniendo en cuenta que
para su utilizacin no se requiere un direccionamiento a programa, slo
basta escribir directamente el nombre de la variable global. As por
ejemplo para utilizar la variable de color rojo, solo faltara escribir en la
ventana de propiedades algo como lo siguiente:

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


82

Un ejemplo de cmo debera lucir el sistema de visualizacin se muestra


en la siguiente figura, una vez culminado todo el sistema puede probarse
para encontrar posibles fallas en la programacin, si se presentan debe
revisarse el contenido de esta gua y corregir de ser necesario.

Con este ejercicio culmina la preparacin terica y de simulacin


correspondiente al manejo de equipos, a continuacin se presentarn una
serie de guas enfocadas al manejo, conexin y configuracin de sensores
y controladores; cada una de las guas contiene un detallado proceso que
debe seguirse para la realizacin de prcticas sencillas, la unin de estas
con los elementos de programacin vistos hasta ahora permitir el
desarrollo de aplicaciones complejas acordes con proyectos en desarrollo.

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