Академический Документы
Профессиональный Документы
Культура Документы
Autores:
Ing. Carlos A. Meja Sierra
Ing. Juan C. lvarez Giraldo
Ing. Leonardo Rodrguez Ortiz
MANUAL DE PREPARACIN
PARA OLIMPIADAS
NACIONALES DE
MECATRNICA
La preparacin para Olimpiadas Nacionales de Mecatrnica siempre es importante tanto para los
participantes como para los entrenadores, por esta razn se cre este documento, con algunas
experiencias, recomendaciones y sobre todo la teora avanzada que se debe estudiar y preparar.
INTRODUCCIN
La resolucin de circuitos neumticos, electro-neumticos y sistemas controlados por PLC
de una manera eficiente y eficaz, es una habilidad que se adquiere a travs del
entrenamiento constante, soportados firmemente en la lgica desarrollada durante la
mayora de los ciclos bsicos de ingenieras en materias como algoritmos y programacin,
adquisicin de datos, sistemas digitales, micro controladores, entre otras. En este mismo
sentido, es de vital importancia que la persona interesada que pretenda participar en las
olimpiadas Nacionales de Mecatrnica, posea conocimientos previos en las reas
implicadas y conozca de manera precisa, los fundamentos de la neumtica y la electroneumtica.
Siguiendo este orden de ideas, el presente documento no pretende consolidarse como
una gua de estudio para las mencionadas reas a las que se hacen alusin, ya que para
ello, se requieren las bases tericas adecuadas para profundizar ampliamente en diseo,
clculo, seleccin, etc. Ahora bien el objetivo principal de este manual es el de brindar al
interesado una gua de la forma en que se deben abordar las competencias desde diversos
puntos crticos como son: Trabajar en contra del tiempo, competir contra equipos de
diferentes regiones, desarrollo de ejercicios con un determinado nmero de elementos
(restriccin de elementos), el trabajo en grupo y las jornadas extenuantes.
1. NEUMTICA Y ELECTRONEUMTICA
Para disear e implementar los circuitos neumticos y electroneumticos se debe tener
unas bases bien fundamentadas para poder aplicar los mtodos de resolucin de
problemas que se tratarn en este captulo; para comenzar, se debe tener en cuenta que
todo circuito neumtico y electroneumtico estn integrados por elementos que
intervienen en el proceso como lo son: Elementos de Alimentacin, de Entrada, de
Procesamiento, de Maniobra, y de trabajo; por esta razn se debe tener un conocimiento
previo acerca de la simbologa de dichos elementos, al igual que de la norma ISO 1219;
adicional a esto todos los circuitos deben seguir una secuencia funcional que se obtiene
del anlisis del problema y se presenta como una solucin que debe contener todos los
pormenores requeridos; la secuencia que deben seguir los circuitos se simbolizan
generalmente con letras y signos, para as identificar el proceso que se est llevando a
cabo en cada paso de la secuencia y se describen en un diagrama de funciones que es
igualmente evaluado dentro de las pruebas en ciertos casos.
Para disear e implementar estos circuitos existen 2 mtodos sencillos de aplicar, los
cuales son, Mtodo Cascada y Mtodo Paso a Paso, estos mtodos sirven para agilizar la
resolucin de problemas ya que tienen unos pasos sencillos de seguir para llegar a un
resultado eficaz y concreto en el menor tiempo posible, pero no basta con aplicar estos
mtodos ya que estos estn diseados para resolver problemas que tienen que ver solo
con la secuencia, es decir, se requiere un proceso de diseo adicional para incluir dentro
del circuito elementos tales como temporizadores, contadores, presstatos, reguladores
de caudal y presin, vlvulas selectoras entre otras; por tal razn se debe tener un previo
entrenamiento con el diseo intuitivo ya que este mtodo aunque es el ms prolongado
de realizar es el mejor para lograr resolucin de problemas con los elementos
anteriormente mencionados y el que complementar los mtodos que se describirn en el
presente documento. Es recomendable para la persona o grupo de personas que quieran
presentarse a las olimpiadas nacionales de mecatrnica resolver ejercicios solo basndose
en un mtodo intuitivo para poder obtener las destrezas necesarias para aplicar los
mtodos.
A travs del este mtodo se genera una habilidad mental para predecir
En el presente capitulo se explicarn los mtodos de Cascada y Paso a Paso para ambos
sistemas ayudados por ejemplos de situaciones reales, tambin se implementarn
elementos como temporizadores, contadores, presstatos entre otros, que deben estar
implcitos en la secuencia para poder obtener una solucin avanzada en dicha situacin.
1.1
Neumtica
1.1.1.
Mtodo Cascada
Este mtodo se basa en la separacin por grupos de la secuencia a realizar; los grupos
estn compuestos por movimientos de los actuadores (las reglas para divisin de grupos
se explicarn ms adelante). Y cada grupo es sostenido por una vlvula 5/2 usada como
memoria para poder obtener 2 salidas que alimentan 2 grupos independientemente; cada
vez que conectamos una vlvula 5/2 a la anterior se obtiene un grupo adicional; la
conexin de los grupos con las vlvulas se representa en la Figura 1, una rpida observacin
de este esquema permite deducir fcilmente el origen del nombre de este mtodo.
4. Identificar cules son los sensores que hacen los cambios de grupos y al mismo
tiempo generan el primer movimiento del grupo simbolizado con una flecha por
debajo con la referencia del sensor correspondiente, y tambin identificar que
sensores generan los movimientos internos del grupo simbolizados con una flecha por
arriba con la referencia del sensor adecuado. As:
En donde:
es el nmero de vlvulas y
para este caso se tendr una sola vlvula de memoria y su configuracin se muestra
en Figura 1Error! No se encuentra el origen de la referencia..a.
6. Ya teniendo el numero de vlvulas de memoria y los cambios de movimiento se
procede a crear el esquema general de funcionamiento del circuito teniendo en
cuenta las siguientes condiciones:
Las vlvulas de control se deben alimentar directamente de la red como se
muestra en la parte central de la Figura 2.
Los cambios de grupo son generados usando la seal del final de carrera o vlvula
de entrada correspondiente, tomando la alimentacin desde la lnea del grupo
inmediatamente anterior.
Figura 4: Esquema de conexin para cambios de grupos.
Y por ltimo se conectan los movimientos internos de cada grupo con los finales de
carrera alimentados por la lnea correspondiente al grupo del movimiento.
10
11
Grupos = 3
A+ B+ / B- C+ / C- AI
II
III
Cambios de Grupo y Movimientos =
12
13
1.1.2.
Este mtodo consiste en obtener tantos grupos como movimientos se tenga dentro de
una secuencia, este mtodo ofrece un menor tiempo de respuesta ya que los
movimientos son generados por una vlvula 3/2 de memoria alimentada directamente de
la red; pero tiene la desventaja de usar mas vlvulas de memoria en comparacin al
mtodo cascada y no se puede usar cuando se tengan solo dos movimiento ya que cada
salida debe borrar la anterior y se bloquearan.
Para este mtodo se usaran vlvulas 3/2 biestables normalmente cerradas como memoria
para los pasos alimentadas directamente de la red como se haba mencionado
anteriormente; una vlvula de memoria por cada paso como se muestra en la Figura 11, si
por alguna razn no se disponen de esa cantidad de vlvulas de tipo 3/2, puede utilizarse
una vlvual de tipo 5/2 bloqueando uno de sus terminales (bloquear el terminal 2 para
obtener una vlvula 3/2 normalmente Abierta, y el terminal 4 para obtener una vlvula
3/2 normalmente cerrada)
14
15
Los pasos son activados usando la seal del final de carrera o vlvula de entrada
correspondiente, y son alimentados directamente de la red, pero los finales de
carrera deben alimentarse de la lnea del paso anterior y la vlvula de memoria del
ltimo paso debe estar normalmente abierta; el pulsador de START, debe
conectarse en serie con el final de carrera del primer paso.
Figura 12: Esquema de conexin para cambios de Pasos
16
17
18
Existe una posibilidad para la simplificacin del mtodo paso a paso recientemente
explicado, y consiste en la combinacin de la separacin por grupos del mtodo cascada
con el circuito de control del mtodo paso a paso, entonces la solucin se reducira a
dividir en grupos y considerar cada grupo como un paso de la secuencia total. Para
lograr una mayor comprensin considrese el siguiente ejemplo.
Ejemplo 3:
Aplicando el Mtodo Paso a Paso a las condiciones del Ejemplo 1, se tendra:
No de Cilindros = 3 (A, B, C)
No de Sensores = 6 (S0, S1, S2, S3, S4, S5)
La configuracin de los cilindros, vlvulas de control y sensores se puede observar en la
Figura 7.
19
20
1.1.4.
Los elementos de control, son aquellos que sirven para realizar tareas adicionales
importantes dentro de la secuencia, como por ejemplo contar ciclos, retrasar o activar
durante cierto tiempo un actuador, seleccionar entre un camino u otro para decidir un
21
ciclo, entre otras cosas; normalmente estos elementos ocasionan confusiones a la hora de
usarlos, pues en muchos casos se requiere de lgica e intuicin para usarlos de manera
eficiente, por esta razn se deben estudiar estos tipos de elementos ms a fondo ya que
son el complemento que necesitan las secuencias para generar un proceso completo para
las pruebas; los elementos de control que se explicarn aqu sern: Reguladores de
Caudal, Vlvula Reguladora De Presin, vlvulas de secuencia, Temporizadores y
Contadores.
Reguladores de Caudal
Son elementos que sirven para regular la velocidad de movimiento de los actuadores para
hacer que el actuador se mueva ms lento de lo normal para poder obtener un control
ms prolongado de este; se utilizan siempre para regular la salida de aire de un actuador
(salvo casos en donde la prueba indique lo contrario); estn compuestos por una vlvula
unidireccional y una vlvula estranguladora de caudal para obtener la regulacin en una
sola direccin como se muestra en la Figura 20.
Figura 20: Vlvula Reguladora de Caudal.
22
Nota: Fjese que se han dispuesto ambas vlvulas para que regulen en aire que sale de los
actuadores esto asegura un movimiento lento mientras la presin se mantiene.
En
FluidSim la vlvula se debe girar 270 despus de agregarla para que quede configurada
correctamente.
23
Nota: Para regular adecuadamente la presin de trabajo de estos elementos durante las
pruebas de montaje, se sugiere conectar el elemento directamente a la alimentacin de
presin, y abrir o cerrar completamente la perilla de regulacin hasta alcanzar el valor de
paso deseado, posteriormente puede integrarse apropiadamente al resto del circuito.
24
Vlvula de Secuencia
Las vlvulas de secuencia son un tipo especial de vlvulas de presin que permiten realizar
una medicin de presin en un punto especfico del circuito (generalmente en la
alimentacin de los actuadores), para permitir o impedir el paso de aire en otro punto
especfico del circuito.
Figura 24: Vlvula de Secuencia (Vlvula con Presstato)
25
Nota: Para regular adecuadamente la presin de trabajo de estos elementos durante las
pruebas de montaje, se sugiere conectar el elemento directamente a la alimentacin de
presin, luego cerrar completamente el regulador de la vlvula de secuencia, y
posteriormente establecer el valor de presin del sistema al valor de regulacin adecuado,
finalmente se abre el regulador hasta que permita el paso de aire y se integra al circuito.
Temporizadores
Son elementos de control que sirven para mantener una seal durante cierto tiempo, o
para retrasar el movimiento, a estos temporizadores se les llama: vlvulas de tiempo
muerto normalmente cerradas, o normalmente abierta, dependiendo del uso que se le
26
quiera dar; para entender esto mejor en la Figura 26 se puede observar mejor el
significado.
Figura 26: Temporizadores, a) Normalmente Cerrado (NC) y b) Normalmente Abierto (NA)
caudal, un almacenador de aire comprimido, y una vlvula 3/2 con retorno de muelle; la
diferencia entre los dos temporizadores es la condicin de la vlvula 3/2.
Figura 27: Ejemplo con temporizador normalmente cerrado.
Para entender el uso de los temporizadores primero se debe tener claro que se necesita,
si se necesita retrasar una seal, o mantenerla por cierto tiempo. Suponiendo que en el
Ejemplo que se desarrollo en la explicacin del mtodo cascada, se requiere que despus
que salga el actuador B, se demore un tiempo determinado antes de volver a entrar; el
27
Contadores
28
requiere que el proceso sea continuo hasta completar 2 ciclos completos; por esta razn,
se debe colocar el pin nmero 12 en la ltima seal del ciclo, que debe ser la seal que
activa el retorno del cilindro A, para as controlar la posicin de una vlvula 3/2 que
ayuda a hacer el proceso continuo como lo muestra la Figura 29, y para reiniciar el
contador se conecta la seal de Reset del contador directamente al pulsador START
para as reiniciar el contador cada vez que se necesite iniciar la secuencia.
Figura 29: Ejemplo Contador de ciclos.
1.1.5.
Recomendaciones
29
Siempre tener en cuenta la direccin en que se colocan los elementos como los
reguladores de caudal, reguladores de presin entre otros, y la correcta ubicacin de
estos.
Tener siempre presente la regulacin de presin que se obtiene de la unidad de
mantenimiento del sistema, ya que en muchas pruebas se pide alguna presin de
alimentacin en la red.
Todas las vlvulas biestables no siempre estn conmutadas de la forma correcta, o
como se necesite que estn conmutadas para el proceso ya que estas pueden haber
sido utilizadas con anterioridad, por tanto se recomienda conmutar cada vlvula al
estado que se requiera dependiendo en que parte del proceso se va a utilizar.
Empezar el diseo con la secuencia a seguir, para ir verificando que las cosas
funcionen, as asegurar puntos vitales en las pruebas.
Despus de tener la secuencia completa, continuar con los elementos
complementarios de control.
Para los montajes de estos circuitos se recomienda revisar el estado del
funcionamiento de los elementos como sensores, pulsadores, vlvulas y mangueras
de conexin, ya que estos pueden hacer que el equipo pierda un tiempo valioso a la
hora de rectificar el funcionamiento del circuito final, a la hora de revisar posibles
errores nunca de por sentado el buen funcionamiento de ningn elemento, de ser
posible genere planes de revisin rpidos, centrando cada participante en elementos
especficos.
Se recomienda rectificar todas las posibles fugas que contenga el circuito, ya que este
inconveniente puede hacer perder puntos valiosos.
Realizar tantos ejercicios como sea posible antes de presentarse a las pruebas; es
recomendable regirse por las pruebas que se presentan en el segundo captulo de
este documento.
Para los problemas con restriccin de elementos, primero se debe analizar si los
elementos cumplen con los requerimientos de algn mtodo especifico, y usar
30
siempre todos los elementos que se tengan a la mano a la hora de realizar la prueba,
ya que si existe el elemento dentro de los materiales es porque el jurado calificador
estar al tanto que no sobre ningn elemento (de todas maneras puede hacer caso
omiso de esta recomendacin si la prueba indica lo contrario, o si no se especifica que
se debe utilizar todo)
A la hora de la revisin de las pruebas realizadas, dejar que los jurados realicen todos
los movimientos que ellos crean pertinentes para probar el circuito de resultado, no
hacer ninguna prueba por cuenta de los participantes, ya que esto puede traer
efectos secundarios negativos en el resultado de las pruebas realizadas.
1.2. Electroneumtica
Este pilar de las competencias abarca la solucin de secuencias automticas y manuales
basadas en seales elctricas de 24 voltios, por este motivo todos los elementos de
control que se usan pueden ser interpretados como contactos normalmente abiertos o
cerrados, los cuales son accionados de manera mecnica (pulsadores, interruptores,
selectores, finales de carrera, etc.), de manera elctrica (relevos, solenoides,
temporizadores, contadores, etc.) y por fenmenos fsicos (Sensores magnticos, sensores
inductivos, presstato, caudalmetro, etc.).
Es de gran importancia comprender la forma de comandar las acciones que se pretenden
realizar a travs de los enclavamientos y los relevos con memoria pues estos sern los
encargados de controlar cada paso de la secuencia, adems de que la comprensin del
funcionamiento de ellos ser de gran ayuda en las pruebas con controladores lgicos
programables (PLC).
En las competencias, esta parte es evaluada de dos formas diferentes pero siempre
teniendo como base los mismos principios, la primera forma es a travs del diseo y
montaje de una secuencia, y la segunda es a travs del diseo y la simulacin en el
computador de un sistema usando FluidSim. En este orden de ideas se hace estrictamente
necesario que el participante sepa identificar y usar los elementos fsicos que se
31
involucran en el montaje (Bloque de vlvulas, bloque de pulsadores-interruptoresindicadores visuales, sensores de todos los tipos, temporizadores, contadores, y otros,
pertenecientes a los equipos de enseanza de Festo Didactic)1.
1.2.1.
Mtodo Cascada
A+ B+ B- A3. Dividir la secuencia en grupos teniendo en cuenta la teora explicada para la creacin
de grupos en neumtica.
Se recomienda a los participantes revisar en la pgina de festo didactic, (www.festo.com/didactic), por los
sistemas de enseanza para neumtica y electroneumtica, cuyas referencias son TP101, TP102, TP201 y
TP202, de esta manera el grupo puede hacerse una idea de cmo lucen los elementos, y evitar sorpresas
durante las competencias.
32
En donde:
es el nmero de relevos y
ponen
los
actuadores
cada
uno
con
su
vlvula
5/2
activadas
33
8. Se Realizan las lneas de alimentacin de cada grupo teniendo en cuenta que cada
lnea va alimentada de la fuente a travs de un contacto normalmente abierto del
relevo de cada grupo, la ltima lnea de alimentacin de grupo est conectada a la
fuente a travs de contactos normalmente cerrados de todos los relevos involucrados
en la seleccin de grupos.
34
Grupos = 3
A+ B+ / B- C+ / C- AI
II
III
Cambios de Grupo y Movimientos =
35
Se hace la etapa de control nicamente con dos relevos (K0 y K1) teniendo en cuenta
que el cambio de grupo quita la memoria del primer grupo y que la memoria del
segundo grupo la des-energiza el sensor del cilindro C afuera, como se muestra en
Figura 33.
Figura 33: Relevos de Cambio de grupos, Ejemplo 4.
Por ltimo se hace la parte de accionamiento de las vlvulas, la cual se debe hacer de
la siguiente forma:
Se hace una lnea para cada grupo, cada lnea va unida a la fuente a travs de un
contacto abierto de cada relevo consecutivamente y la ltima lnea al no tener
relevo se una a travs de contactos cerrados de cada relevo as:
36
37
Al finalizar estos pasos, se tiene la secuencia completa, y ahora si se podrn acoplar todos
los elementos de control que pueda tener el proceso.
1.2.2.
Al igual que el mtodo cascada, el mtodo paso a paso tiene la misma teora base de la
aplicada en electroneumtica solo que este mtodo para electroneumtica es mucho ms
largo de realizar que el mtodo cascada, este mtodo consiste en dividir la secuencia por
cada movimiento que se genere. Siguiendo los pasos descritos a continuacin se debe
llegar al resultado esperado:
1. Analizar el problema e identificar los actuadores y sensores a utilizar en el diseo, con
su respectiva simbologa descrita en el primer paso del mtodo cascada en
neumtica.
2. Establecer la secuencia de movimientos de los actuadores, estableciendo los signos
de los movimientos como se muestra en la Figura 3. Por ejemplo:
38
En donde:
es el nmero de vlvulas y
ponen
los
actuadores
cada
uno
con
su
vlvula
5/2
activadas
39
Ejemplo 5:
Suponiendo el mismo Ejemplo 1 con la misma secuencia (A+ B+ B- C+ C- A-), pero
resolvindolo con el mtodo cascada con electroneumtica, se tendra:
No. Cilindros = 3 (A, B, C)
No de Sensores = 6 (S0, S1, S2, S3, S4, S5)
La configuracin de los cilindros, vlvulas de control y sensores se puede observar en
la Figura 32.
Pasos = 6, Cambios de Pasos y Movimientos =
Numero de relevos = 6
40
Diseo final:
41
Al finalizar estos pasos, se tiene la secuencia completa, y ahora si se podrn acoplar todos
los elementos de control que pueda tener el proceso.
1.2.3.
42
cada uno, pues se les puede poner contactos normalmente cerrados o abiertos, es decir,
que se pueden usar de muchas formas.
Retardo a la conexin: Una vez que el relevo es energizado empieza a correr el tiempo
(funciona con flanco de subida), transcurrido ste, los contactos que se encuentren
relacionados con el relevo conmutan. Es importante que la seal de alimentacin del
relevo no se pueda cortar durante el conteo del tiempo pues no se activa, por eso se
sugiere usar el mtodo para memorizar la seal de los relevos. Un ejemplo sencillo es
el de retardar el tiempo de salida de un cilindro como se muestra en la Figura 42:
Figura 42: Configuracin del retardo a la conexin en electroneumtica
43
Contadores:
Los contadores son normalmente usados para contabilizar el nmero de repeticiones de
un movimiento determinado, en electro-neumtica se usa a travs de un relevo el cual
tiene un indicador que muestra el nmero de repeticiones, este funciona por flanco
ascendente y tiene reset para volver a ceros los parmetros. El principal parmetro a
tener en cuenta en el contador es el set point o denominacin de la conexin, esto hace
referencia a el numero de la repeticin en la cual los contactos relacionados al relevo
contador conmutan.
En las competencias se usan de diversas formas, sin embargo la ms compleja resulta
cuando se pide que cierta parte de la secuencia se tenga que realizar un nmero
determinado de veces y despus seguir con el resto de la secuencia.
44
Secuencia necesaria:
Se requiere que antes que entre A el cilindro B debe entrar y salir un nmero
determinado de veces por un contador; cada vez que el cilindro B este afuera debe
esperar 5 segundos antes de entrar.
45
1.2.4.
Recomendaciones
46
47
48
49
designar los elementos siguiendo estas normas bsicas, as mismo y a manera de prctica,
se recomienda realizar una nueva nomenclatura de los ejercicios hasta ahora realizados.
Figura 48: Circuito Neumtico de acuerdo a ISO 1219.
50
51
1. Pruebas Neumticas.
1.1.
Prueba Nmero 1.
Problema
Lo que en un principio pareca un inconveniente de fcil solucin se ha complicado, es por
esta razn que la empresa XMS requiere de sus servicios y conocimientos. Una prensa
sencilla de avance regulado y funcionando a 4 bar cuyo control se realiza nicamente
medi
Inicialmente la prensa contaba con dos pulsadores, uno que la haca avanzar y otro que
cumpla con el retroceso, debido a una mala manipulacin de la mquina, el pulsador de
retroceso se ha daado. As que es necesario realizar una reparacin que cumpla con una
tarea similar, as que el departamento de mantenimiento sugiere que con un solo
pulsador (vlvula 3/2 Normalmente Cerrada) se cumplan ambas funciones de la siguiente
manera:
Al pulsar una vez el cilindro debe avanzar
Al pulsar una segunda vez el cilindro debe retroceder
El circuito queda listo para iniciar de nuevo
Cabe recordar que el tiempo del cual se dispone es de 45 minutos, en el banco de trabajo
usted encontrar los elementos disponibles, cuya lista se muestra a continuacin.
52
1.2.
Prueba Nmero 2.
Problema
En un proceso de doblado al interior de una reconocida empresa elaboradora de perfiles
metlicos, se realiza una secuencia sencilla la cual involucra dos actuadores neumticos
Encargados de transformar una lmina metlica en un producto terminado tal y como se
ilustra en las figuras adjuntas.
53
Misin y Limitantes
Realizar un circuito neumtico que cumpla con la secuencia descrita y adicionalmente
como requerimiento adicional de la empresa es necesario asegurar que una vez que el
cilindro 1B avanza permanezca en esa posicin por un tiempo regulable para asegurar que
el producto final no se deforme, pasado este tiempo la secuencia continuar hasta
finalizar. Al accionar el pulsador de inicio de nuevo la secuencia debe repetirse siguiendo
estos mismos pasos.
Recuerde que para realizar esta labor su grupo dispone nicamente de 45 minutos, y de
los elementos que se encuentran en el banco de trabajo.
54
1.3.
Prueba Nmero 3.
Problema
Las condiciones ambientales al interior de las instalaciones de una empresa, hacen que
sea estrictamente necesaria la utilizacin de sistemas neumticos para la automatizacin
de sus mquinas. En esta ocasin se requiere que su grupo de trabajo disee y construya
un circuito (neumtico), que funcione de acuerdo a lo siguiente:
55
El pulsador marcado con Pul2, no debe realizar ninguna accin hasta que el
actuador 1A1 termine su secuencia.
El circuito debe permitir la regulacin independiente de la velocidad de avance
de los actuadores.
Recuerde que para realizar esta labor su grupo dispone nicamente de 45
minutos, y de los elementos que aparecen listados a continuacin.
56
1.4.
Prueba Nmero 4.
Problema
57
Tarea:
Realice el diseo del sistema adecuado para la aplicacin.
Realice el montaje del sistema
Realice las suficientes pruebas para la entrega al cliente final.
Puntos de evaluacin:
58
2. Pruebas Electroneumticas.
2.1.
Prueba Nmero 1.
Problema:
El departamento de proyectos de la empresa XMS tiene una importante entrega que
realizar de la cual depende el futuro de nuevas y benficas negociaciones, sin embargo,
debido a problemas externos dispone nicamente de 45 minutos para realizar un sistema
para una mquina de seleccin que cumpla con las siguientes especificaciones:
59
Basado en la informacin anterior puede usted encontrar una manera de sacar adelante
esta negociacin, arreglando este inconveniente????
Simule su solucin utilizando FluidSim y los elementos listados
60
2.2.
Prueba Nmero 2.
Problema:
Un dispositivo para almacenamiento momentneo en un proceso de fabricacin de esferas luce como
aparece en la siguiente ilustracin
El actuador Neumtico de Giro 1C, se encarga de dosificar las esferas una a una realizando un movimiento
hasta el final de su recorrido y de vuelta. Este movimiento se realizar siempre y cuando exista pieza en el
contenedor (sensor ptico de deteccin de piezas activo) y no se encuentre ninguna esfera en el punto 4 del
diagrama (Para saber si se encuentra o no una esfera all la mquina cuenta con un interruptor NA que se
activa cuando la palanca no tiene peso alguno, es decir, cuando no se encuentra una esfera en la palanca)
61
Misin y Limitantes.
Elaborar un circuito Electroneumtico utilizando el Fluid SimP versin 4 que cumpla con los requerimientos
anteriormente descritos, y teniendo en cuenta adicionalmente las siguientes limitantes.
1.
2.
3.
4.
5.
Los sensores para deteccin de posicin de los cilindros de doble efecto deben ser de tipo
magntico.
Los sensores para deteccin de posicin del actuador de giro deben ser de tipo inductivo
Si ocurre algn fallo en la alimentacin elctrica, todos los actuadores deben volver a su posicin
inicial.
El sensor ptico y el interruptor para deteccin de esfera deben ser ubicados en el plano y para
efectos de simulacin se activarn de manera manual (haciendo clic sobre ellos).
El tiempo de la prueba no puede ser superior a 45 minutos.
62
2.3.
Prueba Nmero 3.
S3
S2
Bath 1
Es decir, el sistema debe cumplir con la tarea descrita por el diagrama espacio-fase de la
figura.
63
Consideraciones Adicionales
Los sensores utilizados para el diseo tienen que ser de tipo ptico
Tenga presente que el plano del sistema a presentar no debe admitir ningn
error cuando se desee correr la simulacin.
64
2.4.
Prueba Nmero 4.
Montaje en Banco.
Su grupo de trabajo ha sido encomendando para la completa revisin y puesta a punto de un circuito
electroneumatico que hace parte de una mquina que cumple una labor de llenado sencilla.
+24V
7
3
3
E1
S1
K1
S2
1
A1
K1
K2
T3
K2
4
K3
4
T3
2
K3
10
K2
A1
S3
A1
2
A1
Y4
A2
A2
A2
Y1
Y3
Y2
T3
0V
A2
10
S3
S1
Retenedor
S2
Cil. Llenado.
Y1
Y2
Y3
Y4
siguiente:
65
66
2.5.
Prueba Nmero 5.
Un dispositivo de ensamble sencillo compuesto de tres actuadores luce como lo muestra la figura a
continuacin:
Al accionar un pulsador elctrico NA, el sistema de actuadores debe realizar los movimientos
correspondientes al diagrama de espacio fase que aparece a la derecha. Es decir:
5.
6.
7.
8.
9.
Consideraciones Adicionales.
67
Elaborar un circuito Electroneumtico utilizando el Fluid SimP versin 4 que cumpla con los requerimientos
anteriormente descritos, y teniendo en cuenta adicionalmente las siguientes limitantes.
6.
7.
8.
9.
Los sensores para deteccin de posicin de los cilindros deben ser de tipo magntico.
Se pueden utilizar como mximo 7 relevos con dos contactos abiertos, y 2 contactos cerrados cada
uno.
Si ocurre algn fallo en la alimentacin elctrica, todos los actuadores deben volver a su posicin
inicial
Solo se permite un pulsador de inicio con contacto NA, para dar inicio al sistema.
El tiempo de la prueba no puede ser superior a 45 minutos.
68
2.6.
Prueba Nmero 6.
de
un
proceso
de
Los sensores del cilindro de mecanizado son de tipo inductivo, los dems
son finales de carrera mecnicos
69
Cilindro Prensa
S1
S2
Y1
Cilindro Sello
Cilindro Mecanizado
S3
S4
Y3
1
S5
Y4
S6
Y5
Y6
Tarea:
70
Puntos de evaluacin:
71
72
Formatos Neumtica.
Aspecto a Evaluar
Mximo
12
10
15
22
18
95
73
Puntos
Concepto a Evaluar
Finales de carrera, ubicados de manera correcta, no se presenta colisin
Mxima Obtenida
10
11
12
18
B
Cuando el cilindro B llega al inicio de carrera, nicamente retrocede el
19
cilindro A
Cuando el cilindro B termina el recorrido, permanece un tiempo regulable
30
12
18
130
74
Concepto a Evaluar
Reguladores de Caudal ubicados de acuerdo a las condiciones del ejercicio
Mxima Obtenida
10
(5 puntos c/u)
Al accionar el pulsador neumtico PUL1, el cilindro utilizado como 11
11
avanza.
Al llegar al final de su recorrido el cilindro 1A1, retrocede automticamente.
12
30
19
18
12
circuito.
Puntaje Adicional por Tiempo
18
Total
130
75
PUNTAJE PUNTAJE
MAXIMO OBTENIDO
Secuencia correcta
60
10
10
10
Presencia de Fugas
Avance Cilindro 2
10
Retroceso Cilindro 2
Retroceso Cilindro 1
10
Accionamiento Bimanual
10
10
10
Tiempo
25
OBSERVACIONES
TOTAL
76
1.2.
Formatos Electroneumtica
Aspecto a Evaluar
Mximo Puntos
12
12
15
19
18
100
77
Mxima
20
11
12
18
19
ningn inconveniente.
El actuador de giro se activa nicamente cuando se encuentran
15
de su recorrido
Al eliminar la alimentacin elctrica los actuadores vuelven a su
12
18
Total
140
78
Obtenida
Concepto a Evaluar
Reguladores de Caudal ubicados de acuerdo a las condiciones del
Mxima Obtenida
16
12
20
24
18
completamente.
La secuencia se repite una y otra vez, sin realizar modificaciones
12
sobre el circuito.
Sensores de acuerdo a las condiciones de la prueba, uso de vlvulas
18
Total
130
79
Concepto a Evaluar
Los sensores, reguladores utilizados en el circuito, concuerdan con
Mxima Obtenida
24
10
El actuador 2A avanza
16
12
13
18
19
alguna.
Puntaje Adicional por Tiempo
18
Total
130
80
Concepto a Evaluar
Los sensores, detectores y relevos utilizados en el circuito,
Mxima Obtenida
25
10
11
12
18
12
19
18
Total
130
81
SITUACION A EVALUAR
Secuencia correcta
60
20
20
10
10
Presencia de Fugas
Funcionamiento
Mecanizado
Cilindro
10
Implementacin
Monoestable
vlvula
5/2
Accionamiento Bi manual
Implementacin de sensores
10
Tiempo
25
OBSERVACIONES
TOTAL
82
2. Solucin De Ejercicios.
El hecho de incluir imitadas soluciones propuestas a los ejercicios de las pruebas obedece
principalmente a dos factores: se espera que aunque el grupo no pueda desarrollar una
prueba en el tiempo estipulado procure dentro de lo posible encontrar una solucin al
problemas pues esto reforzar en gran parte el proceso de aprendizaje que se adelanta, y
segundo las soluciones a las pruebas no son nicas y cualquier configuracin posible de
elementos para ofrecer una solucin que se ajuste a los requerimientos y que no incumpla
las reglas y consideraciones adicionales, puede considerarse como vlido.
Se espera entonces que estos ejemplos sean suficientes para asegurar un proceso de
preparacin adecuado dentro de los temas que se incluyen en las olimpiadas Nacionales
de Mecatrnica.
Si se tienen dudas o comentarios adicionales, favor consultar a los autores a travs del
correo: didactica.peru@pe.festo.com
83
2.1.
3
1
S3
12
51%
S2
100%
3
5
1
1
1
2
100%
S0
S1
S0
S2
2
4
S1
S3
100%
1
100%
84
0V
K2
S1
K1
+24V
2
3
7
11
31%
K1
S4
K2
K3
K1
S2
4
5
12
Y3
K2
25%
S3
S6
K3
K1
K2
6
14
S4
Y4
K3
Cilindro Mecanizado
Y5
K4
K1
8
10
S5
K5
K4
S6
Cilindro Sello
Y6
Y1
K4
10
S2
Y3
K1
11
Y4
K2
12
S3
Y5
Y6
K3
14
S5
K5
2.2.
Y1
S1
25%
Cilindro Prensa
85
Sistema de programacin
IEC 61131-3: CoDeSys
Sistema de
programacin IEC
61131-3: CoDeSys
Versin 1.01
Festo AR
Edison 2392
(1640) Martnez
Buenos Aires - Argentina
Pgina 2 de 116
Pgina 3 de 116
Pgina 4 de 116
7. 2. 5
MOD ................................................................................................................ 75
7. 3
OPERADORES DE CADENAS DE BITS ................................................................................ 75
7. 3. 1 AND ................................................................................................................. 75
7. 3. 2 OR ................................................................................................................... 76
7. 3. 3 XOR ................................................................................................................. 76
7. 3. 4 NOT ................................................................................................................. 76
7. 4 OPERADORES DE DESPLAZAMIENTO (REGISTROS DE DESPLAZAMIENTO) ............................... 77
7. 4. 1 SHL ................................................................................................................. 77
7. 4. 2 SHR ................................................................................................................. 77
7. 4. 3 ROL ................................................................................................................. 78
7. 4. 4 ROR ................................................................................................................. 79
7. 5
OPERADORES DE SELECCIN ......................................................................................... 79
7. 5. 1 SEL .................................................................................................................. 79
7. 5. 2 MAX ................................................................................................................ 80
7. 5. 3 MIN ................................................................................................................. 80
7. 5. 4 LIMIT ............................................................................................................... 81
7. 6
OPERADORES DE COMPARACIN.................................................................................... 82
7. 6. 1 GT.................................................................................................................... 82
7. 6. 2 LT .................................................................................................................... 82
7. 6. 3 LE .................................................................................................................... 83
7. 6. 4 GE ................................................................................................................... 83
7. 6. 5 EQ ................................................................................................................... 83
7. 6. 6 NE ................................................................................................................... 83
7. 7
OPERADORES DE DIRECCIONES...................................................................................... 84
7. 7. 1 ADR ................................................................................................................. 84
7. 8
OPERADORES DE RAMIFICACIN .................................................................................... 84
7. 8. 1 CAL .................................................................................................................. 84
7. 8. 2 JMP.................................................................................................................. 85
7. 8. 3 RET (RETURN) .................................................................................................85
7. 8. 4 Llamada a otras POU ..................................................................................... 86
7. 9
OPERADORES NUMRICOS ............................................................................................ 87
7. 9. 1 ABS ................................................................................................................. 87
7. 9. 2 SQRT ............................................................................................................... 88
7. 9. 3 LN.................................................................................................................... 88
7. 9. 4 LOG ................................................................................................................. 88
7. 9. 5 EXP.................................................................................................................. 89
7. 9. 6 SIN .................................................................................................................. 89
7. 9. 7 COS ................................................................................................................. 89
7. 9. 8 TAN ................................................................................................................. 89
7. 9. 9 ASIN ................................................................................................................ 89
7. 9. 10
ACOS ........................................................................................................... 90
7. 9. 11
ATAN ........................................................................................................... 90
7. 9. 12
EXPT ............................................................................................................ 90
7. 10
OPERADORES DE CONVERSIN DE TIPO....................................................................... 91
7. 10. 1
BOOL_TO ....................................................................................................91
7. 10. 2
TO_BOOL ....................................................................................................92
7. 10. 3
Conversiones entre tipos de nmeros enteros ........................................ 93
7. 10. 4
REAL_TO / LREAL_TO ................................................................................. 93
7. 10. 5
TIME_TO / TIME_OF_DAY .......................................................................... 93
7. 10. 6
STRING_TO .................................................................................................94
7. 10. 7
TRUNC......................................................................................................... 94
Pgina 5 de 116
10
11
Pgina 6 de 116
1. 1
1. 2
Pgina 7 de 116
Tipos de datos.
Lenguajes de programacin:
o
Textuales:
Grficos:
Pgina 8 de 116
2. 1
CoDeSys
Pgina 9 de 116
2. 1. 1
Sistema de entradas/salidas.
Pgina 10 de 116
2. 2
Pgina 11 de 116
by festo pueden coexistir en una misma PC. A lo largo de este documento se utilizar el
trmino CoDeSys para referirse indistintamente a la versin original de 3S o a la versin
de CoDeSys provided by festo.
2. 3
2. 3. 1
Instalando CoDeSys
La instalacin de CoDeSys es similar a la instalacin de cualquier otra aplicacin
para el sistema operativo Windows. Al hacer doble clic sobre el instalador se abrir un
asistente que nos guiar a lo largo de todo el proceso.
La figura 2.4 muestra la pantalla de seleccin de componentes del asistente de
instalacin. Es importante mencionar que la opcin C oDeSys Gateway Server quedar
seleccionada por defecto, ya que es la herramienta de comunicacin que se utiliza no
solo para la obtencin de datos desde el controlador sino tambin para la comunicacin
entre CoDeSys y los dispositivos de hardware o sistemas targets.
Pgina 12 de 116
2. 3. 2
Pgina 13 de 116
De esta manera, el nuevo dispositivo instalado puede ser utilizado tanto para
nuevos proyectos como para modificar la plataforma de hardware en un proyecto ya
existente, sin necesidad de modificar la programacin.
2. 3. 3
Pgina 14 de 116
Barras de men y
herramientas.
Espacio de trabajo
(Editor).
Organizador de
objetos.
Ventana de mensajes.
Barra de estado.
2. 4
2. 4. 1
Autodeclaracin de variables
De acuerdo con el estndar de programacin IEC 61131-3, cada variable
utilizada en una aplicacin de PLC debe ser declarada. La declaracin en CoDeSys debe
realizarse manualmente en la parte superior de la ventada del editor de cdigo, ya sea
ingresando la declaracin en modo texto o con la ayuda de una tabla.
Pgina 15 de 116
2. 4. 2
Sintaxis coloreada
La sintaxis coloreada es una herramienta muy utilizada en los entornos de
Verde: Comentarios.
2. 4. 3
Asistente de entrada
El asistente de entrada puede ser considerado como una de las caractersticas
Pgina 16 de 116
estar jerrquicamente
estructurado.
2. 4. 4
del objeto especfico que est siendo utilizado, ya sean un operador, una librera o
incluso keywords.
Pgina 17 de 116
2. 4. 5
Configurador de tareas
CoDeSys permite la generacin y ejecucin de mltiples tareas. Dependiendo
del sistema operativo ejecutado por el controlador, estas tareas pueden ser prioritarias o
no-prioritarias. Debe notarse que las tareas prioritarias solo pueden ser utilizadas en
controladores que ejecutan sistemas operativos multitarea.
El inicio de las tareas tambin puede ser configurado para que sean realizadas
en forma cclica o disparadas por eventos.
El configurador de tareas se encuentra en la pestaa de recursos del organizador
de objetos. Esta caracterstica en particular es muy utilizada y ser analizada en
profundidad en mdulos avanzados de CoDeSys.
Pgina 18 de 116
2. 4. 6
configurar los mdulos disponibles en l. Para esta tarea, CoDeSys integra una
herramienta de configuracin la cual puede encontrarse en la pestaa de recursos del
organizador de tareas.
El resultado que se obtiene de la configuracin es una imagen de proceso
transparente al usuario, en la que se encontrar disponible la informacin de las
direcciones de las entradas y salidas, ya sea en formato numrico o simblico.
Como funcin adicional, si el PLC es un master CANopen o Profibus DP, puede
configurarse el bus de campo con los archivos EDS (CANopen) o GSD (Profibus). La
configuracin con AS-interface tambin es posible.
2. 4. 7
editor de cdigo muestra los valores actuales de las variables del programa que est
siendo ejecutado en el controlador y permite modificarlos. En el caso de variables
booleanas el valor es modificado inmediatamente al hacer doble clic sobre ellas. Para el
caso de variables analgicas se abrir un cuadro de dilogo que permitir ingresar el
Pgina 19 de 116
nuevo valor. Sin embargo, con el fin de permitir modificar mltiples variables
simultneamente, los valores ingresados no sern inmediatamente descargados al
controlador hasta que sea ejecutada la orden Escribir valores del men online, o la
combinacin de teclas Ctrl+F7.
CoDeSys tambin dispone de numerosas opciones de depuracin. Una de ellas
es el forzado de variables. Ejecutando el comando Forzar valores (F7) del men Online,
las variables sern reescritas con los valores a los que sean forzadas en cada nuevo ciclo
del PLC. Para liberar las variables debe utilizarse el comando liberar forzado (Shift+F7).
Otras herramientas para la depuracin del programa es la utilizacin de
breakpoints y modos de ejecucin por pasos o ciclos, los que permiten interrumpir la
ejecucin del programa en un punto determinado y ejecutarlo paso por paso, para de
esta manera analizar su funcionamiento.
Si la opcin Display flow control del men online se encuentra activada las
lneas de comando o redes (dependiendo si se program en modo texto o grfico)
ejecutadas en el ltimo ciclo del PLC sern coloreadas. Esto ayuda a detectar si
determinada porcin del cdigo fue ejecutada o no y seguir el flujo del programa.
Adems, los valores intermedios de los editores de FBD y CFC y el contenido del
acumulador tambin sern mostrados.
Para permitir que la aplicacin se inicie automticamente luego de haber
iniciado el controlador, debe utilizarse la opcin Crear proyecto de booteo del men
Pgina 20 de 116
online. Esto generar dos archivos binarios, con extensin *.PRG y *.CHK
respectivamente que sern descargados al controlador. Dichos archivos sern tambin
almacenados en el directorio del proyecto. CoDeSys no admite el desensamble de los
proyectos descargados, por lo que si se desea tener acceso al cdigo fuente desde el
controlador, el mismo debe ser descargado explcitamente. Al descargar el cdigo fuente
se incluyen todos los comentarios y la informacin grfica, la cual se encontrar
disponible desde el propio controlador en cualquier momento.
Otra caracterstica importante es la posibilidad de descargar al controlador solo
los cambios realizados en el programa, sin necesidad de detener el controlador o perder
el valor de las variables. Debe notarse que la modificacin de cambios no es posible
cuando hubo modificacin en las tareas, en la configuracin de entrada/salida, o si se
incluyeron nuevas libreras en el proyecto.
2. 4. 8
Simulacin integrada
El modo de simulacin permite depurar la aplicacin sin necesidad de
Pgina 21 de 116
2. 4. 9
2. 4. 10
Seguridad de proyectos
CoDeSys ofrece dos posibilidades para proteger el proyecto contra acceso no
Pgina 22 de 116
proyecto. De esta manera, puede por ejemplo darse autorizacin a un usuario para hacer
uso de la visualizacin pero no autorizarlo para alterar la programacin.
La ventana de configuracin de contraseas puede ser hallada con el nombre
contraseas para grupos de usuarios en el men proyecto. Aqu se pueden determinar
contraseas para ocho diferentes niveles de grupos de usuarios.
Luego de haber definido las contraseas para cada uno de los grupos de
usuarios, se debe determinar que objetos pueden ser utilizados por cada uno de ellos, y
definir si el acceso concedido ser de solo lectura o lectura/escritura. Ingresando en el
men proyecto Objeto Propiedades, se podrn definir los accesos del objeto que se
encuentre en primer plano, o de todos los objetos del proyecto.
Pgina 23 de 116
2. 5
2. 5. 1
Fundamentos de comunicacin
Para poder comprender como se realiza la comunicacin entre CoDeSys y un
dispositivo target se debe analizar el esquema de la figura 2.18, en el cul se realiza una
analoga entre el esquema de comunicaciones de la suite de desarrollo CoDeSys y la
ventana de configuracin de los parmetros de comunicacin.
Ventana de configuracin
Pgina 24 de 116
2. 5. 2
Configuracin de la comunicacin
Todos los parmetros de configuracin pueden ser accedidos y modificados
desde la opcin Parmetros de comunicacin del men Online. Esta ventana nos
mostrar en el lado izquierdo el Gateway y los canales o dispositivos configurados. En la
parte media de la ventana se podrn modificar las opciones de comunicacin especficas
de cada dispositivo o canal, mientras que en la parte derecha se podrn editar las
configuraciones ya existentes, eliminarlas o agregar nuevas.
Pgina 25 de 116
vez creado el canal, los parmetros de comunicacin del mismo podrn ser configurados
directamente desde la parte central de la ventana principal de parmetros de
configuracin, y sern diferentes en funcin del dispositivo utilizado. La figura 2.19
muestra la configuracin de un canal de comunicacin TCP/IP, mientras que en la figura
2.20 puede verse la configuracin de una canal RS232.
2. 6
2. 6. 1
opcin online del men online, pueden darse dos situaciones. Una de ellas es que el
controlador no se encuentre ejecutando ningn programa o se encuentre ejecutando un
programa diferente, en cuyo caso CoDeSys dar un aviso y solicitar autorizacin
explcita para realizar la descarga del nuevo programa. La otra posibilidad es que el
controlador se encuentre ejecutando el mismo proyecto que se est tratando de
descargar, en cuyo caso la situacin depender de si hay diferencias o no entre el
Pgina 26 de 116
2. 6. 2
Pgina 27 de 116
que el cdigo fuente an no podr ser recuperado desde el controlador. La figura 2.23 (2)
refleja esta situacin.
Puede darse el caso que el dispositivo target soporte la creacin automtica de
proyectos autoarrancables. En este caso, cada vez que se realice una conexin online
con el controlador, el cdigo compilado se descargar automticamente a la memoria
EEPROM o Flash del mismo.
2. 6. 3
Recuperacin de proyectos
Como se pudo apreciar en los dos apartados anteriores, el cdigo fuente no ser
Fig. 2.22: Cuadro de dilogo Abrir. En la parte inferior izquierda puede verse
la opcin de recuperacin de cdigo fuente desde el controlador.
Pgina 28 de 116
Pgina 29 de 116
Pgina 30 de 116
3. 1
Un proyecto CoDeSys contiene todos los objetos del programa del PLC. El
proyecto completo es guardado en un nico archivo con extensin *.PRO y los objetos
que contiene son las unidades de organizacin de programas (POU), los tipos de datos,
las visualizaciones y los recursos. Dentro de estas cuatro categoras se pueden encontrar
las variables (locales o globales), las libreras y el cdigo fuente de los programas.
Pgina 31 de 116
3. 1. 1
Tipos de datos
Los tipos de datos son una de las caractersticas definidas por el estndar IEC
61131-3. Adems de los tipos de datos estndar, el usuario tiene la posibilidad de definir
sus propios tipos de datos. Este tema ser abordado en profundidad en el captulo 4.
3. 1. 2
Visualizaciones
La visualizacin es una representacin grfica de las variables del proyecto que
permite no solo ver la evolucin y estado de variables sino tambin enviar entradas al
PLC en modo online utilizando el teclado o el mouse de una PC. CoDeSys integra todas
las herramientas necesarias para poder crear visualizaciones y utilizarlas para ver y
operar las variables del proyecto.
Pgina 32 de 116
programacin (Ver apartado 2.5). De esta manera, la tarea de generar la interfaz grfica
para la visualizacin se puede ver notablemente reducida y simplificada.
La visualizacin creada en el sistema de desarrollo es en muchos casos utilizada
como la nica interfaz de usuario disponible para controlar y observar el programa de
PLC asociado en modo online. Sin embargo, la mscara de visualizacin creada puede
ser ejecutada en cuatro modos diferentes sin sufrir modificacin alguna. Los posibles
modos de visualizacin son los siguientes:
1 Directamente en el sistema de programacin: Para testear la mscara de
visualizacin creada, pero tambin por propsitos de servicio y diagnstico en conexin
directa con el controlador.
2 CoDeSys HMI: CoDeSys HMI es un programa utilizado para mostrar
visualizaciones de proyectos en una PC sin utilizar el sistema de desarrollo completo, y
sin necesidad de ninguna capa de comunicacin adicional. Este sistema permite al
usuario crear una interfaz de software de bajo costo para la operacin del sistema
utilizando las visualizaciones generadas en tiempo de desarrollo.
CoDeSys HMI es ejecutado desde la lnea de comando. Por defecto mostrar la
visualizacin llamada PLC_VISU (Si existiera) en modo pantalla completa. El resto de los
elementos de CoDeSys como mens, organizador de objetos, etc. No se encontrarn
disponibles.
Pgina 33 de 116
3. 1. 3
Recursos
En la pestaa de recursos pueden encontrarse todos los objetos necesarios para
Pgina 34 de 116
Pgina 35 de 116
3. 2
3. 2. 1
Funciones
Una funcin es una POU que permite mltiples entradas y produce exactamente
un elemento de salida al ser procesada. Es importante notar que las funciones tienen un
Pgina 36 de 116
como variable de salida. La declaracin de una funcin comienza siempre con la palabra
clave FUNCTION.
IL:
ST:
FBD:
IL: Listado de instrucciones, lenguaje basado en texto definido por IEC 61131-3.
Pgina 37 de 116
3. 2. 2
Bloques de funciones
Un bloque de funcin es una POU que puede tener varios valores de entradas y
(2)
(3)
ST: Texto estructurado, lenguaje basado en texto definido por IEC 61131-3.
SFC: Grfico de flujo secuencial, lenguaje grfico definido por IEC 61131-3.
Pgina 38 de 116
Solo los parmetros de entrada y salida pueden accederse desde fuera del
bloque de funciones y el acceso se restringe a la POU en la cual se declaro la instancia, a
menos que sea declarada como variable global. Para utilizar una variable de una copia
especfica del bloque de funciones se debe utilizar el operador punto (.) de la siguiente
manera:
Nombre_de_la_copia.Nombre_de_la_variable
IL:
ST:
FBD:
Fig. 3.11: Ejemplos en varios lenguajes de llamados a una instancia de un bloque de funciones.
Pgina 39 de 116
3. 2. 3
Programas
Un programa es una POU que devuelve mltiples valores durante su ejecucin.
Los programas son reconocidos globalmente a lo largo del proyecto y todos los valores
son retenidos desde la ltima ejecucin hasta la siguiente.
No puede haber mltiples instancias de un programa y los programas no pueden
ser llamados desde funciones. Por otra parte, si un programa es llamado y se modifican
sus valores, estos permanecern de esta manera hasta que el programa sea llamado
nuevamente, incluso si se lo llama desde una POU diferente. Esta es la diferencia con un
bloque de funciones, en la cual los valores solo son modificados en la instancia dada y
solo son vlidos cuando la misma instancia es llamada nuevamente. La declaracin de un
programa comienza con la palabra clave PROGRAM.
FBD: Diagrama de bloque de funciones, lenguaje grfico definido por IEC 61131-3.
Pgina 40 de 116
Tipos de datos
En CoDeSys pueden utilizarse tipos de datos estndar o definidos por el usuario.
Cada nombre de variable o identificador debe ser asignado a un tipo de dato, indicando
de esta manera la cantidad de memoria que ser reservada y el tipo de valores que se
podr almacenar en dicha posicin de memoria.
4. 1
4. 1. 1
Datos Booleanos
Las variables de tipo BOOL pueden tomar dos posibles valores: Verdadero o
4. 1. 2
Datos Enteros
En la tabla 4.1 se enumeran los posibles tipos de datos enteros, los rangos de
valores que cubren y la cantidad de memoria que es reservada para cada uno de ellos.
Tipo
Lmite inferior
Lmite superior
Espacio de Memoria
BYTE
255
8 bit
WORD
65535
16 bit
DWORD
4294967295
32 bit
SINT
-128
127
8 bit
USINT
255
8 bit
INT
-32768
32767
16 bit
UINT
65535
16 bit
DINT
-2147483648
2147483647
32 bit
UDINT
4294967295
32 bit
4. 1. 3
Datos Reales
Tambin conocidos como variables de punto flotante, son utilizadas para la
Pgina 41 de 116
La tabla 4.2 resume los dos tipos de variables que pueden encontrarse dentro de
esta clasificacin.
Tipo
Lmite inferior
Lmite superior
Espacio de Memoria
REAL
1.175494351
x10-38
3.402823466
x1038
32 bit
LREAL
2.22507385850
72014x10-308
1.797693134862
3158x10308
64 bit
4. 1. 4
4. 1. 5
DWORD (32 bits). Los posibles tipos de datos temporales que pueden presentarse son
mostrados en la tabla 4.3.
Tipo
Lmite
inferior
TIME
Lmite superior
Espacio de
Memoria
49d17h2m47s295ms
32 bit
TIME_OF_DAY
(TOD)
12:00:00 AM
23:59:59.999 PM
32 bit
DATE
01/01/1970
06/02/2016 aprox.
32 bit
DATE_AND_TIME
(DT)
01/01/1970,
12:00:00 AM
06/02/2016,
06:28:15 AM aprox.
32 bit
Pgina 42 de 116
4. 2
4. 2. 1
Arreglos
CoDeSys soporta arreglos de una, dos y hasta tres dimensiones, los cuales
Tiempo de desarrollo:
Tiempo de ejecucin:
Sintaxis de declaracin:
<Identificador>: ARRAY [<LI1>..<LS1>, <LI2>..<LS2>] OF <TIPO_DE_DATO>
Pgina 43 de 116
Donde LI1, LI2 son los lmites inferiores del rango del campo y LS1, LS2 sern los
lmites superiores. Estos lmites deben ser valores enteros y deben estar dentro del
rango de valores de las variables de tipo DINT.
Cuando se trabaja con arreglos puede definirse una funcin llamada
CheckBounds (Provista por la librera Check.lib) que permitir chequear y corregir errores
de fuera de rango en los arreglos.
4. 2. 2
Punteros
Las variables de tipo puntero contienen las direcciones de otras variables o
Pgina 44 de 116
4. 2. 3
Enumeracin
Se trata de un tipo de variable definida por el usuario, formada por una cantidad
de constantes del tipo strings. Dichas constantes son referenciadas luego como valores
de una enumeracin. Los valores de una enumeracin son reconocidos en todas las
reas del proyecto, incluso si fueron declaradas dentro de una POU.
Fig. 4.4: Ejemplo de uso en tiempo de ejecucin de una variable de tipo enumeracin.
Sistema de programacin IEC 61131-3: CoDeSys.
Pgina 45 de 116
Sintaxis de declaracin:
TYPE <Identificador> : (<Enum_0>,<Enum_1>,,<Enum_2>);
END_TYPE
La forma correcta de crear enumeraciones es en el organizador de objetos, bajo
la pestaa Tipos de Datos. Luego de ser declarada, las variables del tipo <Identificador>
pueden tomar cualquiera de los valores de la enumeracin.
4. 2. 4
Estructuras
Las estructuras permiten declarar un tipo de variable definido por el usuario que
contiene a la vez una determinada cantidad de otras variables, cada una con su
respectivo tipo. Son creadas en el organizador de objetos bajo la pestaa Tipos De
Datos, y son reconocidas en todas las reas del proyecto. Para acceder a un elemento o
variable especfica dentro de una variable del tipo estructura se debe utilizar el operador
punto (.).
Sintaxis de declaracin:
TYPE <Nombre_de_la_estructura>:
STRUCT
<Declaracin_de_variable_1>
<Declaracin_de_variable_2>
<Declaracin_de_variable_2>
END_STRUCT
END_TYPE
Sistema de programacin IEC 61131-3: CoDeSys.
Pgina 46 de 116
Pgina 47 de 116
Pgina 48 de 116
Operandos en CoDeSys
5. 1
Declaracin de variables
5. 1. 1
Generalidades
Como ya se pudo observar en captulos anteriores, todas las variables deben ser
Fig. 5.1: Opciones de ayuda del editor de declaraciones, a travs del men insertar.
Pgina 49 de 116
Por otro lado, para brindar mayor soporte al programador y simplificar la tarea
de declaracin de variables, CoDeSys permite ver el listado completo de los tipos de
datos soportados. Para esto, se debe ir al men insertar y seleccionar la opcin tipo.
La declaracin de variables puede tambin ser realizada en forma rpida con la
ayuda de la funcin de auto-declaracin de variables, ya analizada en la seccin 2.4.1.
5. 1. 2
Keywords
Las palabras claves o Keywords deben ser escritas en letras maysculas en
todos los editores. Aparecern en color azul y no podrn ser utilizadas como variables.
Mediante la opcin Palabras claves de declaracin del men insertar puede
obtenerse un completo listado de las palabras claves que pueden ser utilizadas en la
declaracin de variables.
Fig. 5.2: Opciones de ayuda del editor de declaraciones, a travs del men insertar.
5. 1. 3
Sintaxis de direcciones
El acceso a ubicaciones de memoria individuales es realizado a travs del uso de
Pgina 50 de 116
Prefijo
Significado
Entrada
Salida
Ubicacin de memoria
Tabla 5.1: Prefijos de rango.
Prefijo
Significado
Bit
none
Bit
Byte (8 bits)
5. 2
Tipos de variables
5. 2. 1
Pgina 51 de 116
5. 2. 2
Variables remanentes
Las variables remanentes son aquellas variables que pueden retener sus valores
Pgina 52 de 116
Si es necesario que una variable sea conservada tanto ante una desconexin
como ante una nueva descarga del programa, se deberan utilizar ambas palabras claves
en la declaracin (RETAIN PERSISTENT).
Las variables de tipo retentivas son, como es de esperarse, almacenadas en el
rea retentiva de la memoria del controlador. Debido a esto es importante destacar los
siguientes puntos:
5. 2. 3
Pgina 53 de 116
Debe notarse que dos variables pueden ser nombradas con igual identificador
en caso de tratarse de diferentes mbitos. En este caso, dentro de la POU en la cual se
repiti el identificador, si no se detalla mediante el operador punto (.), la variable local es
la que tendr validez por encima de cualquier otra. Esto se explica grficamente en la
figura 5.5. Incluso en el caso de variables locales y globales, puede utilizarse el mismo
identificador. Sin embargo, dentro de la POU especfica, la variable con validez ser la
local por encima de la global, por lo que debe tenerse especial cuidado al repetir
identificadores de variables.
5. 3
Constantes
5. 3. 1
Constantes Binarias
Las constantes binarias son directamente los valores lgicos VERDADERO y
FALSO.
5. 3. 2
Constantes Temporales
Las constantes temporales son generalmente utilizadas para operar los
Pgina 54 de 116
Campo
Rango
Das (d)
Ilimitado
Horas (h)
0 23
Minutos (m)
0 59
Segundos (s)
0 59
Milisegundos (ms)
0 999
5. 3. 3
Nmero Decimal: 62
Nmero Binario: 2#1001_0011 (El guin bajo puede ser utilizado o no)
Pgina 55 de 116
5. 3. 4
Constantes Reales
Las constantes numricas reales pueden ser expresadas en formato fraccionario
Pgina 56 de 116
Grficos:
o
6. 1
6. 1. 1
IL Listado de instrucciones
La programacin en listado de instrucciones consiste en una serie de
instrucciones, cada una de las cules comienza en una nueva lnea y contiene un
operador y uno o ms operandos separados por comas. Este lenguaje permite una
programacin rpida y simple cuando el programa es pequeo. Cada operacin se basa
en el uso de un registro especial llamado acumulador, de forma similar al lenguaje
assembler. Antes de realizar alguna operacin se debe cargar el valor o la variable con la
que se quiere operar en el acumulador. Luego de realizada la operacin, el resultado
quedar disponible nuevamente en el acumulador.
Antes de la instruccin puede colocarse una etiqueta seguida por dos puntos (:).
Los comentarios se deben encerrar entre asteriscos y parntesis (Ver figura 6.2) y
pueden ocupar una lnea completa o encontrarse al final de una lnea de programa.
Todos los operadores IEC 61131-3 son soportados (este tema se profundizar en el
mdulo 7).
Pgina 57 de 116
N (En cualquier otro caso): Negacin del operando (no del acumulador).
Pgina 58 de 116
En la tabla 6.1 pueden verse los operadores que pueden ser afectados por
modificadores en IL, y los posibles modificadores. En el captulo 7 se dar una
explicacin detallada de la funcin de cada uno de los operadores.
Operador
Modificadores
LD
ST
AND
OR
XOR
JMP
CN
CAL
CN
RET
CN
6. 1. 2
ST Texto Estructurado
La programacin en texto estructurado es un lenguaje de alto nivel que permite
Pgina 59 de 116
Operacin
Operador
Nivel de Prioridad
Parntesis
(expresin)
Mxima prioridad
Potenciacin
EXPT
Negacin
NOT
Multiplicacin
Divisin
Mdulo
MOD
suma
Resta
Comparacin
Igual
Distinto
<>
AND booleana
AND
XOR booleana
XOR
OR booleana
OR
Mnima prioridad
Pgina 60 de 116
.
.
ELSIF <Expresin_Booleana_n> THEN
<Instrucciones_n>
ELSE
<Instrucciones>}
END_IF;
(La parte entre llaves es opcional).
Si la expresin booleana de la condicin IF es verdadera, se
ejecutan el conjunto de instrucciones correspondientes y se sale del
lazo. Si la condicin de IF es falsa, se evalan las condiciones de ELSEIF
en orden hasta encontrar una verdadera, en cuyo caso se ejecuta el
conjunto de instrucciones correspondientes y se finaliza el lazo. Si
ninguna de las expresiones ELSEIF son verdaderas, se ejecutan las
instrucciones correspondientes a la expresin ELSE.
Instruccin CASE: Esta instruccin permite combinar mltiples
instrucciones condicionales en funcin de la misma variable y en una
nica construccin.
Sintaxis:
CASE <Variable> OF
<Valor_1>: <Instrucciones_ 1>
<Valor_2>: <Instrucciones_ 2>
<Valor_3,Valor_4,Valor_5>: <Instrucciones_ 3>
<Valor_6 .. Valor_10>: <Instrucciones_ 4>
...
<Valor_n>: <Instrucciones_n>
ELSE <Instrucciones_else>
END_CASE;
La instruccin CASE es procesada de acuerdo al siguiente
modelo: Si la variable de la condicin tiene el valor indicado en alguna
de las lneas, las instrucciones correspondientes sern ejecutadas. Si la
variable no toma ninguno de los valores indicados, las instrucciones
ELSE sern luego ejecutadas.
Pgina 61 de 116
Pgina 62 de 116
Sintaxis:
REPEAT
<Instrucciones>
UNTIL <Expresin_ Booleana>
END_REPEAT;
Las instrucciones WHILE y REPEAT tienen mejores prestaciones que la
instruccin FOR dado que no es necesario conocer de antemano la cantidad de ciclos a
ejecutar. Sin embargo, en caso de conocerse dicho valor es preferible trabajar con el lazo
FOR, ya que de esta manera se evita el riesgo de caer en un bucle infinito.
6. 2
6. 2. 1
grfico que permite describir el orden cronolgico de las diferentes acciones a llevar a
cabo en un programa. Es una importante herramienta para estructurar y ordenar el
programa, aunque tiene la desventaja de no poder ser convertido a otro lenguaje.
Cada una de los pasos tiene acciones asociadas que se llevan a cabo cuando el
mismo se encuentra activo. Dichas acciones son los verdaderos programas. Los pasos
Sistema de programacin IEC 61131-3: CoDeSys.
Pgina 63 de 116
estn separados por transiciones, las cuales contienen las condiciones booleanas para la
continuacin del la secuencia. Si bien CoDeSys soporta una versin de SFC que est en
concordancia con el estndar IEC 61131-3, tambin ofrece un modo simplificado;
mientras que los pasos IEC contienen flags con calificadores y soportan hasta nueve
acciones en un solo paso, la versin simplificada solo muestra un tringulo negro en la
esquina superior derecha del paso y permite una sola accin en cada paso. Las acciones
pueden programarse en cualquiera de los lenguajes IEC, inclusive en SFC nuevamente.
Para poder utilizar pasos IEC en lugar de pasos simplificados, la librera iecsfc.lib
debe ser incluida en el proyecto. Las acciones asociadas con pasos IEC son mostradas a
la derecha del paso, en una caja de dos partes. Del lado izquierdo se puede ver un
calificador, mientras que del lado derecho se muestra el nombre de la accin. La tabla
6.3 resume los posibles calificadores IEC y su implicancia.
Adicionalmente, es posible asociar a cada paso una accin de entrada y una
accin de salida. Una accin de entrada es ejecutada por nica vez apenas el paso se
hace activo. Una accin de salida es tambin ejecutada una nica vez apenas el paso es
desactivado. Las acciones de entrada se identifican en cada paso con una E en la esquina
inferior izquierda, mientras que las acciones de salida se identifican con una X en la
esquina inferior derecha.
Pgina 64 de 116
Calificador
Implicancia
N
No almacenar
R
Reset
La accin es desactivada
S
Set
L
Limitada
temporalmente
D
Retardada en tiempo
P
Pulso
SD
Almacenada y
retardada en tiempo
DS
Retardada y
Almacenada
SL
Almacenada y limitada
temporalmente
Fig. 6.6: STEP en SFC con accin de entrada (E) y salida (X).
Pgina 65 de 116
Pgina 66 de 116
6. 2. 2
lenguaje grfico orientado a redes y muy sencillo de comprender. Cada una de las redes
contiene una estructura que representa ya sea una expresin lgica, aritmtica, el
llamado a una funcin, el llamado a un bloque de funciones o un salto.
El editor FBD de CoDeSys permite agilizar notablemente la programacin a
travs de la configuracin automtica de bloques y conexiones.
6. 2. 3
si mismo sino que se trata de un editor que realiza una implementacin particular del
editor de FBD, pero no orientado a redes. De esta manera, la libre ubicacin de bloques y
conexiones es posible, permitiendo funciones tales como lazos de realimentacin.
Para controlar y modificar el orden de ejecucin de los bloques, se utiliza un
cuadro gris con un nmero que se puede encontrar en la esquina superior derecha de
cada uno de los bloques, en donde se muestra el nmero de orden de ejecucin en el
ciclo de control.
Sistema de programacin IEC 61131-3: CoDeSys.
Pgina 67 de 116
6. 2. 4
LD Diagrama de escalera
La programacin en diagrama de escalera es un lenguaje de programacin
Pgina 68 de 116
el estndar IEC 61131-3. En contraste con las funciones estndar, las cules son
provistas por libreras (Ver captulo 8 librera estndar), los operadores son
reconocidos implcitamente a lo largo de todo el proyecto, y son utilizados en las POU de
la misma manera que las funciones.
Adems de los operadores IEC, CoDeSys tambin soporta algunos otros
operadores, los cules sern tratados en las secciones subsiguientes.
Es importante destacar que en operaciones con variables de punto flotante, los
resultados dependen directamente del sistema target que est siendo utilizado.
7. 1
Operadores de asignacin
7. 1. 1
LD / ST
LD /ST se trata de la asignacin mas bsica de variables. Su funcin es la de
7. 1. 2
LDN / ST
Con este operador, el valor a ser asignado debe ser en general de tipo booleano
(Ntese que no se habla solamente del tipo de variable BOOL sino que en algunos
lenguajes se puede utilizar los tipos WORD, BYTE, y todos aquellos tipos de datos que
almacenen valores binarios o booleanos). El resultado ser cargar la inversa del valor de
Pgina 69 de 116
FBD:
ST:
IL:
FBD:
LD:
ST:
IL:
Pgina 70 de 116
7. 1. 3
LD / S
El valor a ser asignado debe ser en general de tipo booleano. El resultado ser
FBD:
ST:
IL:
FBD:
ST:
IL:
Pgina 71 de 116
7. 1. 4
LD / R
Similar al caso anterior, el valor a ser asignado debe ser de tipo booleano. El
7. 1. 5
MOVE
El operador MOVE permite la asignacin de una variable o una constante a otra
CFC:
IL:
Figura 7.5: Ejemplos de uso del operador ADD en diferentes lenguajes IEC.
7. 2
Operadores aritmticos
7. 2. 1
ADD
El operador ADD permite sumar variables de los tipos BYTE, WORD, DWORD,
SINT, USINT, INT, UINT, DINT, UDINT, REAL y LREAL. Tambin permite sumar dos
variables temporales, resultando en un nuevo valor de tiempo. (Por ejemplo, t#45s +
Pgina 72 de 116
t#50s = t#1m35s). La figura 7.6 muestra algunos ejemplos de su uso en los diferentes
lenguajes de programacin IEC.
FBD:
ST:
IL:
Figura 7.6: Ejemplos de uso del operador ADD en diferentes lenguajes IEC.
7. 2. 2
MUL
El
DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL and LREAL.
La figura 7.7 muestra algunos ejemplos de su uso en los diferentes lenguajes de
programacin IEC.
FBD:
ST:
IL:
Figura 7.7: Ejemplos de uso del operador MUL en diferentes lenguajes IEC.
Pgina 73 de 116
7. 2. 3
SUB
Permite sustraer una variable de otra de los tipos BYTE, WORD, DWORD, SINT,
USINT, INT, UINT, DINT, UDINT, REAL and LREAL. Tambin permite sustraer una variable
temporal de otra, resultando en un nuevo valor de tiempo. (Por ejemplo, t#1m35s - t#50s
= t#45s). La figura 7.8 muestra algunos ejemplos de su uso en los diferentes lenguajes
de programacin IEC.
FBD:
ST:
IL:
Figura 7.8: Ejemplos de uso del operador SUB en diferentes lenguajes IEC.
7. 2. 4
DIV
FBD:
ST:
IL:
Figura 7.9: Ejemplos de uso del operador DIV en diferentes lenguajes IEC.
Permite la divisin entera de una variable en otra de los tipos BYTE, WORD,
DWORD, SINT, USINT, INT, UINT, DINT, UDINT, o la divisin entera y fraccionaria de los
Sistema de programacin IEC 61131-3: CoDeSys.
Pgina 74 de 116
tipos de datos REAL and LREAL. La figura 7.9 muestra algunos ejemplos de su uso en los
diferentes lenguajes de programacin IEC.
7. 2. 5
MOD
Este operador permite obtener el resto de la divisin entera de dos variables de
los tipos BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT. La figura 7.10
muestra algunos ejemplos de su uso en los diferentes lenguajes de programacin IEC.
FBD:
ST:
IL:
Figura 7.10: Ejemplos de uso del operador MOD en diferentes lenguajes IEC.
7. 3
7. 3. 1
AND
FBD:
ST:
IL:
Figura 7.11: Ejemplos de uso del operador AND en diferentes lenguajes IEC.
Sistema de programacin IEC 61131-3: CoDeSys.
Pgina 75 de 116
Realiza la operacin AND lgica bit a bit entre operandos binarios. Estos deben
ser del los tipos BOOL, BYTE, WORD o DWORD.
7. 3. 2
OR
Realiza la operacin OR lgica bit a bit entre operandos binarios. Estos deben
FBD:
ST:
IL:
7. 3. 3
XOR
Realiza la operacin XOR lgica bit a bit entre operandos binarios. Estos deben
ser del los tipos BOOL, BYTE, WORD o DWORD. Para el caso de tener ms de dos
entradas, las entradas sern chequeadas en pares y los resultados particulares
comparados nuevamente en pares.
7. 3. 4
NOT
Realiza la operacin NOT lgica bit a bit entre operandos binarios. Estos deben
Pgina 76 de 116
7. 4
7. 4. 1
SHL
Este operador realiza la operacin de rotacin a la izquierda del operando
binario, el cual resulta desplazado en n bits (ej.: SHL (in, n)). Los tipos de datos
soportados son BYTE, WORD o DWORD. Los espacios de la derecha sern completados
con cero y los bits sobrantes a la izquierda sern descartados.
7. 4. 2
SHR
Este operador realiza la operacin de rotacin a la derecha del operando binario,
el cual resulta desplazado en n bits (ej.: SHR (in, n)). Los tipos de datos soportados son
BYTE, WORD o DWORD. Los espacios de la izquierda sern completados con cero y los
bits sobrantes a la derecha sern descartados.
Pgina 77 de 116
7. 4. 3
ROL
Este operador realiza la operacin de rotacin a la izquierda del operando
binario, el cual resulta desplazado en n bits (ej.: ROL (in, n)). Los tipos de datos
soportados son BYTE, WORD o DWORD. Los espacios de la derecha sern completados
con los bits sobrantes de la izquierda.
Pgina 78 de 116
7. 4. 4
ROR
Este operador realiza la operacin de rotacin a la derecha del operando binario,
el cual resulta desplazado en n bits (ej.: ROL (in, n)). Los tipos de datos soportados son
BYTE, WORD o DWORD. Los espacios de la izquierda sern completados con los bits
sobrantes de la derecha.
7. 5
Operadores de seleccin
7. 5. 1
SEL
FBD:
ST:
IL:
Pgina 79 de 116
Vx := V1 si G= Falso.
Vx := V2 si G= Verdadero.
Las variables VX, V1 y V2 pueden ser de cualquier tipo, pero todas ellas deben
ser del mismo tipo. La variable G debe ser una variable binaria. El valor almacenado en la
variable Vx ser V1 cuando G sea falsa, o V2 cuando G sea verdadera.
7. 5. 2
MAX
Este operador retorna el valor mximo de entre dos valores. Puede ser utilizado
7. 5. 3
MIN
Pgina 80 de 116
Este operador retorna el valor mnimo de entre dos valores. Puede ser utilizado
con variables de cualquier tipo.
7. 5. 4
LIMIT
El operador LIMIT permite limitar el rango de variacin de una variable entre un
valor mnimo y un valor mximo, tal como se muestra en la figura 7.23. Se puede trabajar
con variables de cualquier tipo. El siguiente ejemplo despejar dudas:
OUT := LIMIT(MIN, IN, MAX)
Donde Min es la variable o el valor lmite inferior y MAX es el valor o variable
superior. Si el valor de la variable IN esta en el rango ( MIN < IN < MAX ) entonces la
variable OUT tendr el mismo valor que la variable IN. Si IN est por encima de MAX, la
variable OUT tomar el valor de MAX. Si IN est por debajo de MIN, entonces la variable
OUT tomar el valor de MIN.
Pgina 81 de 116
7. 6
Operadores de comparacin
7. 6. 1
GT
GT es un operador booleano que retorna verdadero si el valor del primer
operando es mayor al valor del segundo. Los operandos pueden ser de los tipos BOOL,
BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE,
TIME_OF_DAY, DATE_AND_TIME y STRING.
7. 6. 2
LT
LT es un operador booleano que retorna verdadero si el valor del primer
operando es menor que el valor del segundo. Los operandos pueden ser de los tipos
BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME,
DATE, TIME_OF_DAY, DATE_AND_TIME y STRING.
Pgina 82 de 116
7. 6. 3
LE
LE es un operador booleano que retorna verdadero si el valor del primer
operando es menor o igual que el valor del segundo. Los operandos pueden ser de los
tipos BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL,
TIME, DATE, TIME_OF_DAY, DATE_AND_TIME y STRING.
7. 6. 4
GE
GE es un operador booleano que retorna verdadero si el valor del primer
operando es mayor o igual al valor del segundo. Los operandos pueden ser de los tipos
BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME,
DATE, TIME_OF_DAY, DATE_AND_TIME y STRING.
7. 6. 5
EQ
EQ es un operador booleano que retorna verdadero si el valor del primer
operando es igual al valor del segundo. Los operandos pueden ser de los tipos BOOL,
BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE,
TIME_OF_DAY, DATE_AND_TIME y STRING.
7. 6. 6
NE
NE es un operador booleano que retorna verdadero si el valor del primer
operando es distinto del valor del segundo. Los operandos pueden ser de los tipos
BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME,
DATE, TIME_OF_DAY, DATE_AND_TIME y STRING.
Pgina 83 de 116
7. 7
Operadores de direcciones
7. 7. 1
ADR
Este operador no est definido en el estndar IEC 61131-3. Su funcin es la de
7. 8
Operadores de ramificacin
7. 8. 1
CAL
Este operador es vlido para el lenguaje de listado de instrucciones solamente
(IL). Permite llamar una funcin, un bloque de funciones o un programa. Las variables de
entrada de la POU que est siendo llamada deben colocarse en parntesis a continuacin
del nombre de la POU y separadas por comas.
Pgina 84 de 116
7. 8. 2
JMP
Este operador puede ser utilizado en los lenguajes de programacin IL, FBD y LD,
7. 8. 3
RET (RETURN)
RET puede ser utilizado en los lenguajes de programacin IL, FBD y LD. Su
Figura 7.30: Ejemplos de uso del operador JMP y RET (RETURN) en LD.
Pgina 85 de 116
Figura 7.32: Ejemplos de uso del operador JMP y RET (RETURN) en FBD.
7. 8. 4
Pgina 86 de 116
La llamada a otras POU se debe realizar de manera diferente en cada uno de los
lenguajes de programacin IEC 61131-3. En la tabla 7.1 puede verse de manera resumida
y a travs de ejemplos la manera en la cual se debe realizar el llamado a otras POU,
especficamente programas, funciones y bloques de funciones.
7. 9
Operadores numricos
7. 9. 1
ABS
El operador ABS tiene por funcin devolver el valor absoluto del operando de
Variable de entrada
Variable de Salida
INT
REAL
REAL
BYTE
WORD
DWORD
SINT
REAL
USINT
REAL
UINT
DINT
UDINT
Tabla 7.2: Posibles combinaciones de tipos de variable de entrada/salida para el operador ABS.
Pgina 87 de 116
7. 9. 2
SQRT
Este operador retorna la raz cuadrada de la variable de entrada. Dicha variable
puede ser de los tipos BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT.
La variable de salida debe ser del tipo REAL.
7. 9. 3
LN
Este operador retorna el logaritmo natural de la variable de entrada. Dicha
variable puede ser de los tipos BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT,
UINT, UDINT. La variable de salida debe ser del tipo REAL.
7. 9. 4
LOG
Este operador retorna el logaritmo base diez de la variable de entrada. Dicha
variable puede ser de los tipos BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT,
UINT, UDINT. La variable de salida debe ser del tipo REAL.
Pgina 88 de 116
7. 9. 5
EXP
Este operador retorna la funcin exponencial ex, donde X es la variable de
entrada. Dicha variable puede ser de los tipos BYTE, WORD, DWORD, INT, DINT, REAL,
SINT, USINT, UINT, UDINT. La variable de salida debe ser del tipo REAL.
7. 9. 6
SIN
Este operador retorna el seno de la variable de entrada, la cual debe estar en
radianes. Dicha variable puede ser de los tipos BYTE, WORD, DWORD, INT, DINT, REAL,
SINT, USINT, UINT, UDINT. La variable de salida debe ser del tipo REAL.
7. 9. 7
COS
Este operador retorna el coseno de la variable de entrada, la cual debe estar en
radianes. Dicha variable puede ser de los tipos BYTE, WORD, DWORD, INT, DINT, REAL,
SINT, USINT, UINT, UDINT. La variable de salida debe ser del tipo REAL.
7. 9. 8
TAN
Este operador retorna la tangente de la variable de entrada, la cual debe estar en
radianes. Dicha variable puede ser de los tipos BYTE, WORD, DWORD, INT, DINT, REAL,
SINT, USINT, UINT, UDINT. La variable de salida debe ser del tipo REAL.
7. 9. 9
ASIN
Este operador retorna el arco-seno (funcin inversa del seno) de la variable de
entrada, la cual debe estar en radianes. Dicha variable puede ser de los tipos BYTE,
Pgina 89 de 116
WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT. La variable de salida debe
ser del tipo REAL.
7. 9. 10
ACOS
Este operador retorna el arco-coseno (funcin inversa del coseno) de la variable
de entrada, la cual debe estar en radianes. Dicha variable puede ser de los tipos BYTE,
WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT. La variable de salida debe
ser del tipo REAL.
7. 9. 11
ATAN
Este operador retorna el arco-tangente (funcin inversa de la tangente) de la
variable de entrada, la cual debe estar en radianes. Dicha variable puede ser de los tipos
BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT, UDINT. La variable de salida
debe ser del tipo REAL.
7. 9. 12
EXPT
Este operador realiza la funcin potenciacin, la exponenciacin de una variable
con otra variable. El valor de salida es (variable_1) (variable_2). Las variables de entrada
pueden ser de los tipos BYTE, WORD, DWORD, INT, DINT, REAL, SINT, USINT, UINT,
UDINT. La variable de de salida debe ser del tipo REAL.
FBD:
ST:
IL:
Pgina 90 de 116
7. 10
Figura 7.38: Asistente de entrada. Listado de los operadores de conversin de tipo disponibles en CoDeSys.
7. 10. 1
BOOL_TO
Permite convertir de tipo booleano en cualquier otro tipo. Para tipos numricos,
Pgina 91 de 116
7. 10. 2
TO_BOOL
Permite convertir de cualquier tipo a tipo booleano. Para tipos numricos, el
Pgina 92 de 116
7. 10. 3
se realiza una conversin hacia un tipo de nmero menor (Menor tamao del campo),
puede perderse informacin; si el nmero que se est convirtiendo excede el rango del
tipo de dato de salida, los primeros bytes sern ignorados.
7. 10. 4
REAL_TO / LREAL_TO
7. 10. 5
TIME_TO / TIME_OF_DAY
Pgina 93 de 116
7. 10. 6
STRING_TO
Permite convertir desde una variable del tipo STRING en un tipo de variable
diferente. La variable de tipo STRING debe contener un valor que sea vlido en la variable
de salida. En cualquier otro caso, el valor de salida ser 0.
7. 10. 7
TRUNC
Este operador permite convertir de variables de tipo REAL en variables de tipo
Pgina 94 de 116
diferentes proyectos. Las libreras pueden ser generadas por el usuario o pueden ser
propias de CoDeSys. Tambin puede darse el caso de que sean entregadas por el
fabricante del hardware, en cuyo caso pueden estar encriptadas.
La librera por defecto que se incluye en todos los proyectos es la librera
standard.lib. Esta librera es propia de CoDeSys y provee funciones bsicas tales como
temporizadores y contadores entre otras. En este captulo se desarrollaran algunas de
las funciones ms destacadas de la librera standard.lib. Para mayor informacin acerca
de las funciones disponibles en esta librera debe consultarse la documentacin oficial
de CoDeSys.
Otra librera de gran utilidad es la librera util.lib, la cual contiene funciones
adicionales tales como
Pgina 95 de 116
8. 1
8. 1. 1
LEN
Este operador retorna la longitud de una variable de tipo string. La variable de
8. 1. 2
LEFT
Esta funcin retorna los n primeros caracteres de la izquierda de una variable de
tipo STRING. Como entrada se le deben dar una variable de tipo STRING (STRING de
entrada) y una variable de tipo INT (cantidad n de caracteres a obtener).
Como salida se obtiene un nuevo STRING cuya longitud es la indicada en la
variable n y cuyo contenido son los n caracteres de la izquierda del STRING de entrada.
8. 1. 3
RIGHT
Esta funcin retorna los n primeros caracteres de la derecha de una variable de
tipo STRING. Como entrada se le deben dar una variable de tipo STRING (STRING de
entrada) y una variable de tipo INT (cantidad n de caracteres a obtener).
Como salida se obtiene un nuevo STRING cuya longitud es la indicada en la
variable n y cuyo contenido son los n caracteres de la derecha del STRING de entrada.
Pgina 96 de 116
FBD:
ST:
IL:
8. 1. 4
MID
Esta funcin retorna una cadena de caracteres desde otra cadena de caracteres.
Como entrada se le deben dar una variable de tipo STRING (STRING de entrada), una
variable de tipo INT (cantidad n de caracteres a obtener) y una segunda variable de tipo
INT (Posicin x a partir de la cual se obtendrn los caracteres).
Como salida se obtiene un nuevo STRING cuya longitud es la indicada en la
variable n y cuyo contenido son los n caracteres a partir de la posicin x contando desde
la izquierda.
FBD:
ST:
IL:
Pgina 97 de 116
8. 1. 5
CONCAT
Esta funcin concatena dos cadenas de caracteres de entrada en una nica
FBD:
ST:
IL:
8. 1. 6
INSERT
Permite insertar una cadena de caracteres dentro de otra, en una posicin
definida. Las variables de entrada son las dos cadenas de caracteres (Variable de tipo
STRING) y la posicin a partir de la izquierda en la cual se va a insertar la segunda
cadena dentro de la primera (Variable de tipo INT).
FBD:
ST:
IL:
Pgina 98 de 116
8. 1. 7
DELETE
Esta funcin remueve n caracteres de una cadena de caracteres, a partir de la
FBD:
ST:
IL:
8. 1. 8
REPLACE
FBD:
ST:
IL:
Pgina 99 de 116
8. 1. 9
FIND
Esta funcin busca una determinada secuencia de caracteres dentro de una
cadena. Las variables de entrada son ambas de tipo STRING, y son la cadena de
caracteres en la cual se debe buscar y la secuencia de caracteres a buscar. La variable de
salida es de tipo INT y devuelve la posicin en la cadena original a partir de la cual se
encontr la secuencia de caracteres. Si la secuencia de caracteres no es encontrada,
luego la variable de salida ser 0.
FBD:
ST:
IL:
8. 2
8. 2. 1
R_TRIG
R_TRIG es un bloque de funciones que permite detectar el flanco ascendente de
una seal booleana. La variable de salida ser tambin una variable booleana, y
permanecer en estado FALSO mientras que la variable de entrada sea falsa. Tan pronto
como la seal de entrada pase de FALSO a VERDADERO, la salida generar un pulso de
corta duracin indicando la deteccin del flanco ascendente, permaneciendo
nuevamente en estado FALSO hasta el prximo flanco ascendente de la seal de entrada.
Dado que se trata de un bloque de funciones, debe declararse una variable del
tipo R_TRIG en la declaracin del programa, para de esta manera generar la instancia
correspondiente.
8. 2. 2
F_TRIG
FALSO, la salida generar un pulso de corta duracin indicando la deteccin del flanco
descendente, permaneciendo nuevamente en estado FALSO hasta el prximo flanco
descendente de la seal de entrada.
Dado que se trata de un bloque de funciones, debe declararse una variable del
tipo F_TRIG en la declaracin del programa, para de esta manera generar la instancia
correspondiente.
8. 3
Contadores
8. 3. 1
CTU
Se trata de un bloque de funciones incluido en la librera estndar para realizar
8. 3. 2
CTD
CTD es tambin un bloque de funciones incluido en la librera estndar para
Figura 8.16: Ejemplo de utilizacin del bloque de funciones CTD de la librera estndar en ST.
8. 3. 3
CTUD
El bloque de funciones CTUD permite realizar cuentas ascendentes y
descendentes. Tanto las variables de entrada CU, CD, RESET y LOAD como la variable de
salida QU y QD son del tipo BOOL, mientras que la variable de entrada PV y la variable de
salida CV son del tipo WORD.
Figura 8.17: Ejemplo de utilizacin del bloque de funciones CTUD de la librera estndar en FBD.
la entrada CD (Count Down). La salida QU ser verdadera cuando CV sea mayor o igual al
valor especificado en PV, mientras que QD ser vlida cuando CV ser igual a 0.
8. 4
Temporizadores
8. 4. 1
TP
El bloque de funciones TP es un temporizador que permite generar un pulso de
una amplitud definida. IN y PT son variables de entrada de los tipos BOOL y TIME
respectivamente, mientras que Q y ET son las variables de salidas de los tipos BOOL y
TIME respectivamente.
Si la entrada IN es falsa, la salida Q ser falsa y ET ser 0. Tan pronto como la
entrada IN pase al estado VERDADERO, ET comenzar a ser incrementada en
milisegundos hasta alcanzar el valor predefinido en PT y permanecer constante luego
de esto. La salida Q tomar el valor VERDADERO desde el momento en que IN toma el
valor VERDADERO y hasta que ET alcance el valor de PT. En cualquier otro momento, la
salida Q tomar el valor FALSO. De esta manera, la salida Q estar entregando una seal
cuadrada cuyo tiempo en estado alto ser definido por el valor de entrada PT (en
milisegundos). La figura 8.18 muestra la secuencia temporal de funcionamiento del
bloque de funciones PT.
8. 4. 2
TON
El bloque de funciones TON implementa un retardo a la conexin. Las variables
IN y PT son variables de entrada de los tipos BOOL y TIME respectivamente. Las variables
Q y ET son variables de salida de los tipos BOOL y TIME respectivamente. Si la entrada IN
es falsa, tanto la salida Q como ET contienen el valor 0. Tan pronto como IN pasa a
estado VERADDERO, se comienza una cuenta de tiempo en milisegundos en la salida ET
hasta que el valor de dicha cuenta sea igual al ajustado en la entrada PT. De esta
manera, la salida Q se encuentra en estado verdadero cuando la entrada IN est en
estado VERDADERO y Et es igual a PT. El siguiente diagrama temporal ayuda a entender
el funcionamiento de este temporizador.
8. 4. 3
TOF
El bloque de funciones TOF implementa un retardo a la desconexin. Las
variables IN y PT son variables de entrada de los tipos BOOL y TIME respectivamente. Las
variables Q y ET son variables de salida de los tipos BOOL y TIME respectivamente. Si la
entrada IN es verdadera, la salida Q se encontrara en estado VERDADERO y ET contendr
el valor 0. Tan pronto como IN pasa a estado FALSO, se comienza una cuenta de tiempo
en milisegundos en la salida ET hasta que el valor de dicha cuenta sea igual al ajustado
en la entrada PT. De esta manera, la salida Q se encuentra en estado FALSO cuando la
entrada IN est en estado FALSO y ET es igual a PT. El siguiente diagrama temporal
ayuda a entender el funcionamiento de este temporizador.
8. 5
8. 5. 1
SR
El bloque de funciones SR es bsicamente un Flip-Flop con entrada de
habilitacin dominante. Tiene dos entradas, SET1 y RESET, y una salida, Q1.EL valor de la
salida responder en todo momento a la siguiente expresin:
Q1 := (
Q1) OR SET1
8. 5. 2
RS
El bloque de funciones RS se trata al igual que el anterior de un Flip-Flop con
(SET OR Q1)
8. 5. 3
SEMA
El bloque de funciones SEMA tiene por funcin la retencin o liberacin de una
RELEASE har que la salida pase al estado FALSE, el cul ser nuevamente retenido
hasta la aparicin de un nuevo pulso en la entrada CLAIM.
F11: Compilar.
10
Referencias bibliogrficas
User Manual for PLC programming with CoDeSys 2.3 3S-Smart Solution
Software.
http://www.infoplc.net/
http://www.plcopen.org/
http://www.3s-software.com/
http://www.iec.ch
11
Sistema de programacin
IEC 61131-3: CoDeSys
Gua de ejercicios
Sistema de
programacin IEC
61131-3: CoDeSys
Gua de ejercicios
Versin 1.01
Festo AR
Edison 2392
(1640) Martnez
Buenos Aires - Argentina
10
10. 1
10. 2
10. 3
10. 4
10. 5
10. 6
10. 7
10. 8
10. 9
EJERCICIO 1 ........................................................................................................... 14
EJERCICIO 2 ........................................................................................................... 15
EJERCICIO 3 ........................................................................................................... 16
EJERCICIO 4 ........................................................................................................... 17
EJERCICIO 5 ........................................................................................................... 18
EJERCICIO 6 ........................................................................................................... 19
EJERCICIO 7 ........................................................................................................... 23
EJERCICIO 8 ........................................................................................................... 25
EJERCICIO 9 ........................................................................................................... 28
Pgina 2 de 32
2.
3.
Pgina 3 de 32
2.
Pgina 4 de 32
2.
3.
Pgina 5 de 32
2.
3.
Pgina 6 de 32
2.
3.
Programa a ejecutar
Ejercicio_1
Luz_escalera
Ejercicio_3
Toilet_control
Pgina 7 de 32
Ejercicio 6: Secuenciador
1.
2.
Salida
Paso 1
Paso 2
Paso 3
Paso 4
Paso 5
Paso 6
Paso 7
0
1
2
3
4
5
6
7
Sin embargo, si la entrada C_Completo no estuviera presente, los pasos 3 y 4
deben ser reemplazados por los pasos alternativos presentados en la tabla a
continuacin. El paso 5 debe ser eliminado.
Salida
Paso 3
alternativo
Paso 4
alternativo
0
1
2
3
4
5
6
7
La transicin de un paso al paso siguiente debe hacerse luego de cumplido un
tiempo fijo de 1 segundo. Para esto se debe implementar un bloque de
funciones encargado de realizar el temporizado.
Pgina 8 de 32
3.
Pgina 9 de 32
Ejercicio 7: Blinker
1.
2.
3.
Pgina 10 de 32
2.
3.
Pgina 11 de 32
6.
Seal a encender
GREEN
YELLOW
RED
YELLOW, RED
Pgina 12 de 32
7.
Variable
Direccin
IN
%IX4.0
A1_GREEN
%QX0.0
A1_YELLOW
%QX0.1
A1_RED
%QX0.2
A2_GREEN
%QX0.3
A2_YELLOW
%QX0.4
A2_RED
%QX0.5
8.
9.
Pgina 13 de 32
10
Ejercicios Resueltos
10. 1
Ejercicio 1
Control de salida mediante mltiples entradas.
Pgina 14 de 32
10. 2
Ejercicio 2
Control de luz de escalera.
Visualizacin:
Pgina 15 de 32
10. 3
Ejercicio 3
Control de lmparas temporizadas.
Pgina 16 de 32
10. 4
Ejercicio 4
Control de Toilet
Visualizacin:
Pgina 17 de 32
10. 5
Ejercicio 5
Seleccin de programa a ejecutar
Pgina 18 de 32
10. 6
Ejercicio 6
Secuenciador
Programa PLC_PRG:
Accin de Inicio:
Pgina 19 de 32
Accin de Paso 2:
Accin de transicin 1:
Accin de transicin 2:
Accin de Paso 3:
Pgina 20 de 32
Accin de Paso 4:
Accin de Paso 5:
Accin de Paso 6:
Accin de Paso 7:
Pgina 21 de 32
Pgina 22 de 32
10. 7
Ejercicio 7
Blinker:
Programa PLC_PRG
Pgina 23 de 32
Variables Globales:
Pgina 24 de 32
10. 8
Ejercicio 8
Blinker con habilitacin/Bloqueo mediante contador
Programa PLC_PRG
Pgina 25 de 32
Pgina 26 de 32
Variables Globales:
Pgina 27 de 32
10. 9
Ejercicio 9
Proyecto final: Semforo de dos vas
Pgina 28 de 32
Programa SEQUENCE:
Pgina 29 de 32
Pgina 30 de 32
Programa PLC_PRG:
Visualizacin:
Pgina 31 de 32
Pgina 32 de 32