Sie sind auf Seite 1von 83

Índice

II

Índice

Introducción

1

Capitulo 1 Descripción de los PLC’s

3

1.1 Introducción

3

1.2 FEC Compacto

4

1.3 FEC Standard

5

 

1.4 IPC

7

Capitulo 2 Operando de los PLC’s de Festo

11

2.1 Introducción

11

2.2 Operándos de bit vs. Operándos de multibit

11

2.3 Entradas

12

 

2.4 Salidas

13

2.5 Banderas

14

2.6 Registros

15

2.7 Temporizadores

15

 

2.7.1 Temporizador de impulso

16

2.7.2 Temporizador de retrazo a la conexión

18

2.7.3 Temporizador de retrazo a la desconexión

20

2.8 Contadores

22

2.9 Constantes

24

2.10 Bandera de ejecución inicial

25

Capitulo 3 Estructura de programación en LDR

26

3.1

Introducción

26

Índice

III

3.3 Parte ejecutiva y condicional

27

3.4 Como se procesan los escalones

27

Capitulo 4 Referencia de instrucciones en LDR

29

4.1 Funciones lógicas

29

4.1.1 Función NOT

29

4.1.2 Función OR

30

4.1.3 Función AND

31

4.1.4 Función OR exclusiva

31

4.2 Funciones aritméticas

32

4.2.1 Adición

33

4.2.2 Substracción

33

4.2.3 Multiplicación

33

4.2.4 División

34

4.3 Funciones de rotación

34

4.3.1 Rotación a la izquierda

34

4.3.2 Rotación a la derecha

35

4.4 Funciones de Corrimientos

36

4.4.1 Corrimiento a la izquierda

36

4.4.2 Corrimiento a la derecha

36

4.5 Saltando a una etiqueta

37

4.6 Bobinas

38

4.6.1

Set

38

4.6.2

Reset

38

Índice

IV

4.6.4

Asignación negada

39

4.7 Funciones de comparación

40

4.7.1

Igual que

40

4.7.2

Mayor que

40

4.7.3

Menor que

41

4.7.4

Mayor o igual que

41

4.7.5

Menor o igual que

42

4.7.6

Diferente que

42

4.8 Números

43

4.8.1 Conversión BCD a binario

43

4.8.2 Conversión binario a BCD

44

4.9 Contadores

44

4.10 Temporizadores

45

Capitulo 5 Programando entradas y salidas digitales, y banderas

47

5.1 Programando entradas y salidas

47

5.2 Programando banderas

50

Capitulo 6 Programando temporizadores

52

Capitulo 7 Programando contadores y registros

55

Capitulo 8 Llamando a programas, CMP y CFM

58

8.1 Programas

58

8.2 Módulos de programa

59

8.3 Módulos de función

60

8.4 Importando módulos

61

Índice

V

Apéndice A Principales módulos de programa

65

A.1 F10

65

A.2 F11

65

A.3 F30

66

A.4 F31

67

A.5 F9

67

A.6 GETCOM

68

A.7 PUTCOM

68

A.8 PRINTCOM

68

A.9 READCOM

68

Apéndice B Creando proyectos

70

Bibliografía

76

 

Índice de Figuras

Figura 2.1

Operandos simbólicos y absolutos

11

Figura 2.2

Temporizador de impulso

17

Figura 2.3

Temporizador de retrazo a la conexión

19

Figura 2.4

Temporizador de retrazo a la desconexión

21

Figura 3.1

Escalón

26

Figura 3.2

Cajas

26

Figura 3.3

Ramas paralelas y bobinas paralelas

27

Figura 4.1

Función NOT de entrada

29

Figura 4.2

Función NOT de salida

29

Figura 4.3

Función INV

30

Índice

VI

Figura 4.5

Función OR multibit

31

Figura 4.6

Función AND

31

Figura 4.7

Función AND multibit

31

Figura 4.8

Función OR exclusiva con 2 operandos

32

Figura 4.9

Función OR exclusiva con 3 operandos

32

Figura 4.10

Función EXOR

33

Figura 4.11

Función +

33

Figura 4.12

Función -

33

Figura 4.13

Función *

34

Figura 4.14

Función /

34

Figura 4.15

Rotación a la izquierda

35

Figura 4.16

Rotación a la derecha

35

Figura 4.17

Función ROL y ROR

35

Figura 4.18

Corrimiento a la izquierda

36

Figura 4.19

Corrimiento a la derecha

36

Figura 4.20

Función SHR y SHL

37

Figura 4.21

Función de salto

37

Figura 4.22

Instrucción de SET

38

Figura 4.23

Instrucción de RESET

38

Figura 4.24

Arranque y paro de motor con SET y RESET

39

Figura 4.25

Asignación

39

Figura 4.26

Asignación negada

40

Figura 4.27

Función igual que

40

Índice

VII

Figura 4.29

Función menor que

41

Figura 4.30

Función mayor o igual que

42

Figura 4.31

Función menor o igual que

42

Figura 4.32

Función diferente que

43

Figura 4.33

Conversión de BCD a binario

43

Figura 4.34

Comando DEB

44

Figura 4.35

Conversión de binario a BCD

44

Figura 4.36

Comando BID

44

Figura 4.37

Inicialización del contador

45

Figura 4.38

Inicialización de temporizadores

46

Figura 5.1

Configuración de entradas y salidas

47

Figura 5.2

Palabras de entradas

48

Figura 5.3

Lista de localidades

48

Figura 5.4

Arranque y paro de un motor

49

Figura 5.5

Motor apagado

49

Figura 5.6

Motor encendido con el pulsador de arranque presente

49

Figura 5.7

Motor encendido memorizado

50

Figura 5.8

Banderas como detectores de flanco

50

Figura 5.9

Bandera de ejecución inicial

51

Figura 6.1

Solución con TON

52

Figura 6.2

Solución con TOFF

53

Figura 6.3

Solución con T

53

Figura 6.4

Solución con T y comparación

54

Índice

VIII

Figura 7.2

Solución con registro

56

Figura 7.3

Temporizador con preselección desde registro

57

Figura 8.1

Llamando programas

58

Figura 8.2

Llamado de módulo de programa

60

Índice de Tablas

Tabla 2.1

Direccionamiento de entradas

12

Tabla 2.2

Direccionamiento de salidas

13

Tabla 2.3

Direccionamiento de banderas

14

Tabla 2.4

Direccionamiento de registros

15

Tabla 2.5

Direccionamiento de temporizador de impulsos

18

Tabla 2.6

Direccionamiento de temporizador de retrazo a la conexión

20

Tabla 2.7

Direccionamiento de temporizador de retrazo a la desconexión

22

Tabla 2.8

Direccionamiento de contadores

25

Tabla 2.10

Direccionamiento de bandera de ejecución inicial

25

Introducción

1

INTRODUCCIÓN.

Desde finales de los años sesenta, los PLC’s han tenido gran aceptación en el sector

industrial para realizar las tareas de automatización. Los PLC’s sin duda han simplificado en

gran medida a los tableros de control, antes de la existencia de los PLC’s, estos tableros eran

de grandes dimensiones, donde los relevadores electromagnéticos eran la base para ejecutar

las operaciones lógicas que los controles necesitaban. Sin duda, las personas que han trabajado

con estos tipos de controles, se han encontrado con las grandes dificultades que representa en

algunas ocasiones localizar fallas o implementar modificaciones por requerimientos de

producción.

Es

aquí

donde

electromecánicos.

los

PLC’s

tienen

su

mayor

ventaja

sobre

los

controles

Existen muchas marcas comerciales de PLC’s, tales como Festo, Siemens, Allen

Bradley, Modicon, Moeller, etc. Todos con sus características muy especiales según su

arquitectura

y

programación.

filosofía

de

diseño,

pero

hay

algo

que

los

hace

muy

semejantes,

su

Básicamente existen tres lenguajes de programación de PLC’s, Diagrama de escalera,

Lista de instrucciones y Diagrama de funciones, aunque algunos fabricantes fabrican PLC´s

que pueden ser programados en lenguajes de computadoras como Pascal, C o Basic.

En este trabajo se pretende dar una referencia de la programación en el lenguaje de

diagrama de escalera utilizado por los PLC’s de la marca Festo.

En esta monografía se dará una explicación de los diferentes PLC’s que Festo fabrica,

de tal manera que el lector pueda tomar la decisión de que PLC es adecuado para determinada

aplicación.

Introducción

2

Posteriormente se dará la descripción de los operandos de los PLC’s, aquí es donde

empezaremos

a

comprender

el

funcionamiento

de

las

entradas,

temporizadores, contadores, registros, etc.

salidas,

banderas,

Luego empezaremos a entrar en materia de programación, es aquí donde se expondrán

la estructura de programación, las instrucciones y la manera de usar cada uno de los

operandos. En cada tema se dará un pequeño ejemplo para mejorar la comprensión.

Capitulo 1

3

CAPITULO 1

DESCRIPCIÓN DE LOS PLC’S

1.1 Introducción.

El término PLC de amplia difusión en el medio significa en ingles, Controlador Lógico

Programable. Originalmente se denominaban PC’s (Programable Controllers), pero, con la

llegada de las IBM PC’s, para evitar confusiones, se emplearon definitivamente las siglas

PLC.

En Europa, el mismo concepto es llamado Autómata Programable.

Según la norma IEC-1131 el PLC se define como: Un sistema electrónico de funcionamiento

digital, diseñado para ser utilizado en un entorno industrial, que utiliza una memoria

programable para el almacenamiento interno de instrucciones orientadas al usuario, para la

realización de funciones de: enlaces lógicos, secuenciación, temporización, recuento y cálculo,

para controlar a través de entradas y salidas digitales o analógicas, diversos tipos de máquinas

o procesos.

En 1969 la división Hydramatic de la General Motors instaló el primer PLC para reemplazar

los sistemas inflexibles alambrados usados entonces en sus líneas de producción.

En 1971, los PLC’s se extendían a otras industrias y, en los ochentas, ya los componentes

electrónicos permitieron un conjunto de operaciones de 16 bits en un pequeño volumen, lo que

los popularizó en todo el mundo.

En los primeros años de los noventas, aparecieron los microprocesadores de 32 bits con

posibilidades de operaciones matemáticas complejas, y de comunicaciones entre PLC’s de

diferentes

marcas

y

PC’s,

los

que

abrieron

la

posibilidad

de

fábricas

completamente

automatizadas y con comunicación directamente a la gerencia en tiempo real.

Capitulo 1

4

1.2 FEC Compacto.

El FEC Compacto es más que una unidad de control sencilla y económica de la marca

Festo.

El

FEC

Compacto

demuestra

que

una

solución

económica

se

puede

combinar

perfectamente con tecnología avanzada y gran funcionalidad.

Las características básicas son típicas para un control sencillo y pequeño:

12 entradas a 24 Vdc.

8

salidas a 24 Vdc o relevador.

2

interfaces serie.

Contador rápido para uso de tareas de posicionamiento sencillas.

Las versiones de 110/230 Vac permiten prescindir de alimentación de 24 Vdc. Las entradas

pueden estar conectadas a positivo o negativo y los relevadores de salida a corriente alterna o

continua.

Una unidad de control pequeña no solamente debe tener dimensiones compactas, sino

también debe integrarse apropiadamente en el sistema. Para conseguirlo, se puede recurrir al

FEC Compacto con conexión a red Ethernet.

Mecánica. – El FEC Compacto tiene una ranura para montaje en riel DIN. O también la

opción de montaje con tornillos, ya que cuenta con orificios para montaje en placa.

Alimentación de tensión. – El FEC Compacto es versátil con sus versiones de 24 Vdc y de

110/230 Vac. Las señales de entrada siempre están conectadas a 24 Vdc; en el caso de las

versiones de corriente alterna, la alimentación de la tensión para los sensores está integrada en

la unidad de mando.

Entradas. – Las entradas pueden ser PNP o NPN. Basta con conectar a 0 Vdc o +24 Vdc los

bornes marcados con S0 y S1.

Capitulo 1

5

Salidas. – Todos los FEC Compacto tienen salidas de relevador conectables a máximo 230

Vac. Los controles FC2X disponen de 8 salidas de relevadores. Los controles FC3X tienen 2

salidas a relevadores y 6 de transistores.

Interfaces serie. – Todos los FEC Compacto disponen de 2 interfaces serie (COM y EXT). La

interface COM se utiliza para la programación, mientras que la EXT puede aprovecharse para

una unidad de indicación y control HMI, una ampliación, un módem o para otros equipos

provistos de interface serie.

Interface Ethernet. – Las versiones del FEC Compacto con interface Ethernet incluyen una

interface Ethernet 10 BaseT con conexión RJ45 para una velocidad de transmisión de

10Mbits/s. Este controlador permite la transmisión de datos, la programación y la localización

de fallos a través de la interface Ethernet.

Programación. – El FEC Compacto puede programarse con FST o Multiprog.

FST es el único lenguaje de programación ampliamente difundido y sencillo que permite

programar tal como se piensa.

Además, FST acepta el comando STEP (paso) para la programación de secuencias. Con FST

se puede programar a través de Ethernet, además de poderle integrar una página WEB al

controlador utilizando su WEB Server.

Multiprog es un sistema de programación según la norma IEC 6 1131-3 que incluye los 5

lenguajes de programación normalizados. MWT facilita la programación en concordancia con

la norma mediante ayudas integradas para las operaciones y los módulos, así como para la

administración de variables.

1.3 FEC Standard.

El FEC Standard

no es tan sólo un mini control. Demuestra que aún es posible la in

Capitulo 1

6

Con su robusto cuerpo de aluminio anodizado, demuestra que el diseño compacto y la

resistencia pueden ser compatibles.

Las características básicas son muy similares al FEC Compacto.

16 o 32 entradas a 24 Vdc.

8

o 16 salidas a 24 Vdc.

2

interfaces serie.

Contador rápido para uso de tareas de posicionamiento sencillas.

El FEC standard al igual que el FEC compacto puede integrarse apropiadamente en el

sistema. Para conseguirlo, se puede recurrir al FEC Standard con conexión a red Ethernet.

Mecánica. – El FEC Standard tiene un clip para montaje en riel DIN y agujeros en las

esquinas para fijación atornillada, utilizando una placa de montaje. Todas las conexiones son

accesibles desde la parte frontal, no hay necesidad de espacio adicional para conexiones desde

abajo o desde arriba

Alimentación de tensión. – El FEC Standard siempre se alimenta con 24 Vdc al igual que sus

entradas y salidas

Entradas. – Las entradas digitales son a 24 Vdc PNP y las analógicas son de 0 a 20 mA con

12 bits de resolución.

Salidas. – Las salidas digitales son de 24 Vdc a 400 mA, a prueba de corto circuito y para

cargas de baja resistencia. Las salidas analógicas son de 0 a 20 mA con 12 bits de resolución.

Interfaces serie. – Todos los FEC Standard disponen de 2 interfaces serie (COM y EXT)

universales TTL con una velocidad máxima de transmisión de 115 kbits/s. La interface COM

se utiliza para la programación, mientras que la EXT puede aprovecharse para una unidad de

indicación y control HMI, una ampliación, un módem o para otros equipos provistos de

interface serie.

Capitulo 1

7

Interface Ethernet. – Las versiones del FEC Standard con interface Ethernet incluyen una

interface Ethernet 10 BaseT con conexión RJ45 para una velocidad de transmisión de

10Mbits/s. Este controlador permite la transmisión de datos, la programación y la localización

de fallos a través de la interface Ethernet.

Programación. – El FEC Standard puede programarse con FST o Multiprog.

FST es el único lenguaje de programación ampliamente difundido y sencillo que permite

programar tal como se piensa.

Además, FST acepta el comando STEP (paso) para la programación de secuencias. Con FST

se puede programar a través de Ethernet, además de poderle integrar una página WEB al

controlador utilizando su WEB Server.

Multiprog es un sistema de programación según la norma IEC 6 1131-3 que incluye los 5

lenguajes de programación normalizados. MWT facilita la programación en concordancia con

la norma mediante ayudas integradas para las operaciones y los módulos, así como para la

administración de variables.

1.3 IPC.

El PC IPC PS1 es todo en una sola unidad: un PC de alto rendimiento y un PLC. Es

capaz de adaptarse a la estructura de una red y superar los limites establecidos por la técnica

convencional de la automatización, ya que es capaz de administrar y capturar datos y, a la vez,

controlar un cilindro neumático o contactor eléctrico.

Se sobreentiende que es diagnosticable por la línea telefónica. El IPC PS1 conjuga de modo

consecuente el mundo de los PLC con el mundo de los PC. Conoce todos los módulos

digitales de los PLC, necesarios para la conexión de detectores y actuadores. Pero también

conoce los módulos de posicionamiento para ejes paso a paso, servopilotados y neumáticos.

Capitulo 1

8

Y, por supuesto, conoce el mundo completo de los bus de campo, incluyendo el bus de Festo,

CP-CAN, Profibus-DP, InterBus, AS-Interface y otros. Del mundo de los PC, el IPC PS1

conoce todos los tipos de memorias masivas de datos, conexiones de tarjetas gráficas, PC-

Card y también USB. Asi usted podrá elegir siempre el módulo preciso que necesite para su

aplicación concreta.

Sistemáticamente Modular.

El

IPC

PS1

Profesional

está

constituido

por

módulos

y

permite

más

de

200

combinaciones. Su Hardware y Software están preparados para el futuro. Hardware por

módulos significa conectar el módulo en el Busboard y atornillarlo.¡Así de sencillo! Con el

sistema modular el sistema operativo y el lenguaje de programación se adaptan a la aplicación

del cliente, pudiéndose hacer los cambios necesarios sobre el terreno. La comunicación

modular permite acceder a todos los bus de campo modernos y a Ethernet, el estándar mundial

en el mundo de los PC.

Mecánica. – Debido a que la IPC es modular, es necesario disponer de un busboard para

insertar en los slots la CPU y los módulos de entrada y salida. El busboard puede ser de 3, 5, 8,

14 o 20 slots. En los busboard de 3 y 5 slots la alimentación de backplane viene integrada,

para los restantes es necesario instalar en uno de los slots la fuente de backplane.

Alimentación de tensión. – La IPC siempre se alimenta a 24 Vdc, y la fuente de backplane se

encarga de realizar la alimentación necesaria para los circuitos lógicos, esta se alimenta con 24

Vdc.

Entradas. – Existen diversos módulos de entradas, tanto analógicos como digitales. Los

módulos de entradas digitales siempre van a ser de 24 Vdc, la cantidad de entradas por modulo

Capitulo 1

9

pueden ser de 8, 16 o 32. Los módulos de entradas analógicos pueden ser de 0 a 20 mA, 4 a 20

mA o 0 a 10 Vdc, los cuales son los estandares más conocidos.

Salidas. – Existen diversos módulos de salidas, tanto analógicos como digitales. Los módulos

de salidas digitales pueden ser de 24 Vdc o a relevadores, la cantidad de entradas por modulo

pueden ser de 8, 16 o 32. Los módulos de salidas analógicos pueden ser de 0 a 20 mA, 4 a 20

mA o 0 a 10 Vdc, los cuales son los estandares más conocidos.

Unidad Central de Proceso. – La unidad central de proceso o CPU es la que se encarga de

realizar todas las tareas de operación del PLC, en si, se encarga de leer el estado de las

entradas, salidas y de memoria, y según el programa modificar el estado de las salidas y/o

memorias.

a) CPU HC01. – La CPU HC01 se basa en el microprocesador AM186, el sistema

operativo es DOS, ampliable para multitarea o Kernel para PLC. Posee al igual que el

FEC Standard dos

interfaces serie con las mismas características. Además tiene 8

puntos configurables como entradas o como salidas.

b) CPU HC02. – La CPU HC02 tiene las mismas características que la HC01, la unica

diferencia es que la HC02 posee una interface Ethernet 10 Base T con las mismas

características de la interface Ethernet del FEC Standard.

c) CPU HC2X. – Las CPU de la familia HC2X se basan en el microprocesador de 32 bits

486 0 586, con módulos intercambiables mediante tarjetas para PC de Epson. El

sistema operativo puede ser DOS, Windows, Windows NT, Linux entre otros.

d) CPU HC50. – La CPU HC50 ofrece rendimiento Pentium. Ampliable para la periferia

de PC mediante dos interfaces USB, ampliable para la periferia PC-Card mediante dos

slots integrados, ampliable para la técnica de automatización mediante el clásico ISA-

Bus.

Capitulo 1

10

Programación. – Para comunicarse con la IPC puede prescindir de interprete, ya que entiende

todos los lenguajes de programación más difundidos en el mundo. La IPC es programada igual

que una PC, por ejemplo en lenguaje C/C++ o Pascal, o igual que un PLC mediante

herramientas de software estandarizadas según IEC 61131-3 o con otros programas conocidos

y de probada eficiencia, tales como el software FST.

Capitulo 2

11

CAPITULO 2

OPERANDOS DE LOS PLC’S DE FESTO

2.1 Introducción.

Este capitulo introduce a los identificadores usados en los PLC’s de Festo para

referirse a los diferentes elementos del sistema, ya sea software o hardware.

Estos identificadores del sistema (ejemplo: entradas, salidas, banderas) serán referenciados

como Operándos. Los operándos son elementos contenidos en el controlador y que pueden ser

interrogados o manipulados usando instrucciones de programa.

El software de Festo, de ahora en adelante llamado FST, permite que los programas puedan

ser escritos utilizando operandos absolutos y/o operandos simbólicos. Un operando absoluto es

la descripción específica del operando del PLC, independientemente de la aplicación (ejemplo:

I0.0, F3.1, R3, etc.). El operando simbólico se especifica de acuerdo a la aplicación y va

referenciado al operando absoluto (ejemplo: Start, Stop, Motor1, etc.).

al operando absoluto (ejemplo: Start, Stop, Motor1, etc.). Figura 2.1 Operandos simbólicos y absolutos. 2.2 Operándos

Figura 2.1 Operandos simbólicos y absolutos.

2.2 Operándos de bit vs. Operándos de multibit.

Una distinción debe hacerse entre Operándos de bit y Operándos de multibit. Un

operando de bit puede ser evaluado como falso o verdadero en la parte condicional de las

Capitulo 2

12

instrucciones del programa y puede ser puesto a 0 o a 1 en la parte ejecutiva. Durante al

interrogación y operaciones de carga, el operando de bit es guardado en el acumulador de bit.

Los Operándos de multibit pueden ser verificados por valor utilizando instrucciones de

comparación o bien comparado a otro operando multibit en la parte condicional. En la parte

ejecutiva los Operándos multibit pueden ser cargados con un valor, decerementados y

incrementados vía operaciones aritméticas o lógicas. Durante la interrogación y operación de

carga, los Operándos multibit son cargados en el acumulador de multibit.

2.3 Entradas.

Los PLC de Festo poseen 256 palabras de entradas (0 a 255), cada una de 16 bits (0 a

15), pueden ser direccionados como bits o como palabras. Las entradas son el medio por el

cual el PLC recibe las señales del sistema, dichas señales pueden ser sensores, retro avisos de

magneto térmicos, botoneras, etc.

Operando

Identificador

Sintaxis

Parte

Ejemplo

Entrada bit

I

Iw.b

Condicional

Entrada bit I Iw.b Condicional

Entrada multibit

I

IW

Condicional

Entrada multibit I IW Condicional

Tabla 2.1 Direccionamiento de entradas.

Capitulo 2

13

En la tabla 2.1 podemos apreciar las características del direccionamiento de las entradas,

donde w es el número de la palabra y b es el número de bit.

2.4 Salidas.

Los PLC de Festo poseen 256 palabras de salidas (0 a 255), cada una de 16 bits (0 a

15), pueden ser direccionados como bits o como palabras. Las salidas son el medio por el cual

el PLC comanda a los diferentes elementos que van a realizar un trabajo en la máquina, por

ejemplo, la bobina de un contactor, la bobina de una Electroválvula neumático o hidráulica o

un piloto luminoso.

Operando

Identificador

Sintaxis

Parte

Ejemplo

Salida bit

O

Ow.b

Condicional

Salida bit O Ow.b Condicional

Ejecutiva

Ejecutiva

Salida multibit

O

Oww

Condicional

Salida multibit O Oww Condicional

Ejecutiva

Ejecutiva

Tabla 2.2 Direccionamiento de salidas.

Capitulo 2

14

En la tabla 2.2 podemos apreciar las características del direccionamiento de las salidas, donde

w es el número de la palabra y b es el número de bit.

2.5 Banderas.

Los PLC de Festo poseen 10000 palabras de banderas (0 a 9999), cada una de 16 bits

(0 a 15), pueden ser direccionados como bits o como palabras. Las banderas son localidades

de memoria del PLC en las cuales se pueden almacenar información.

Operando

Identificador

Sintaxis

Parte

Ejemplo

Bandera bit

F

Fw.b

Condicional

Bandera bit F Fw.b Condicional

Ejecutiva

Ejecutiva

Bandera multibit

F

FWw

Condicional

Bandera multibit F FWw Condicional

Ejecutiva

Ejecutiva

Tabla 2.3 Direccionamiento de banderas.

Capitulo 2

15

En la tabla 2.3 podemos apreciar las características del direccionamiento de las banderas,

donde w es el número de la palabra y b es el número de bit.

2.6 Registros.

Los registros son localidades de memoria de 16 bits, estos registros solo pueden ser

direccionados como palabras, el total de los registros de los PLC de Festo es 256 (0 a 255).

Operando

Identificador

Sintaxis

Parte

Ejemplo

Registro multibit

R

Rw

Condicional

Registro multibit R Rw Condicional

Ejecutiva

Ejecutiva

Tabla 2.4 Direccionamiento de registros.

En la tabla 2.4 podemos apreciar las características del direccionamiento de los registros,

donde w es el número de la palabra.

2.7 Temporizadores.

Los temporizadores son parte esencial de un programa, ya que con ellos logramos

poner en sincronia los diferentes movimientos que ejecuta una máquina, bien es cierto que

podemos prescindir el uso de temporizadores, pero esto incrementa el uso de sensores. Los

PLC’s de Festo manejan tres tipos de temporizadores, el temporizador de impulso, el

temporizador de retraso a la conexión y el temporizador de retraso a la desconexión. Podemos

Capitulo 2

16

manejar hasta 256 temporizadores (0 a 255), cada contador ofrece los siguientes operandos

para permitir una programación flexible.

a) La palabra de temporizador (Timer Word-TWnn-) es el operando en el cual el valor

actual

es

guardado

y

este

es

cambiado

continuamente

en

la

operación

del

temporizador. La palabra de temporizador se carga con el valor de la palabra de

preselección al inicio de la operación del temporizador.

b) La palabra de preselección (Timer Preselect-CPnn-) es el operando en elcual el valor

nominal es guardado.

c) Bobina del temporizador (Tnn, TONnn, TOFFnn ) es el operando en el cual se realizan

las operaciones de inicio o fin del temporizador.

d) Contacto del temporizador (Tnn, TONnn, TOFFnn ) es el operando en el cual es

guardado el estado del temporizador.

2.7.1 Temporizadores de Impulso.

El temporizador de impulso reacciona al flanco de subida, en el instante en que la

condición se hace verdadera el temporizador se hace uno y el registro de tiempo predefinido

(TPnn) se carga en el regisro de tiempo actual o palabra de cuenta (TWnn) y este empieza a

decrecer, cuando el TWnn se hace cero, en ese instante el temporizador se hace cero, nn es el

número del temporizador. En la figura 2.2 se puede apreciar el funcionamiento de este

temporizador.

Capitulo 2

17

Capitulo 2 17 Figura 2.2 Temporizador de impulso Operando Identificador Sintaxis Parte Ejemplo

Figura 2.2 Temporizador de impulso

Operando

Identificador

Sintaxis

Parte

Ejemplo

Temporizador

T

Tnn

Condicional

Temporizador T Tnn Condicional

de impulso bit

Ejecutiva

Ejecutiva

Temporizador

TW

TWnn

Condicional

Temporizador TW TWnn Condicional

de

impulso

multibit

Capitulo 2

18

   

Ejecutiva

    Ejecutiva

TP

TPnn

Condicional

TP TPnn Condicional

Ejecutiva

Ejecutiva

Tabla 2.5 Direccionamiento de temporizador de impulso.

2.7.2 Temporizador de retrazo a la conexión.

En el instante en que la condición se hace verdadera el registro de tiempo predefinido

(TPnn) se carga en el regisro de tiempo actual o palabra de cuenta (TWnn) y este empieza a

decrecer, cuando el TWnn se hace cero, en ese instante el temporizador se hace uno, el

temporizador se hace cero cuando la condición se hace falsa, si por alguna circunstancia la

condición se hace falsa antes de haber transcurrido el tiempo predefinido, entonces el

temporizador no se hará uno, nn es el número del temporizador. En la figura 2.3 se puede

apreciar el funcionamiento de este temporizador.

Capitulo 2

19

Capitulo 2 19 Figura 2.3 Temporizador de retrazo a la conexión Operando Identificador Sintaxis Parte

Figura 2.3 Temporizador de retrazo a la conexión

Operando

Identificador

Sintaxis

Parte

Ejemplo

Temporizador

 

TON

TONnn

Condicional

Temporizador   TON TONnn Condicional

de retrazo

a

la

conexión bit

 

Ejecutiva

  Ejecutiva

Temporizador

 

TW

TWnn

Condicional

Temporizador   TW TWnn Condicional

de retrazo

a

la

conexión

multibit

Capitulo 2

20

   

Ejecutiva

    Ejecutiva

TP

TPnn

Condicional

TP TPnn Condicional

Ejecutiva

Ejecutiva

Tabla 2.6 Direccionamiento de temporizador de retrazo a la conexión

2.7.3 Temporizador de retrazo a la desconexión.

En el instante en que la condición se hace verdadera el temporizador se hace

verdadero, el registro de tiempo predefinido (TPnn) se carga en el regisro de tiempo actual o

palabra de cuenta (TWnn), en el momento que la condición se haga falsa TWnn empieza a

decrecer y al llegar éste a cero el temporizador se hace cero, si por alguna circunstancia la

condición se hace verdadera antes de haber transcurrido el tiempo predefinido, entonces el

temporizador no se hará cero. En la figura 2.4 se puede apreciar el funcionamiento de este

temporizador.

Capitulo 2

21

Capitulo 2 21 Figura 2.3 Temporizador de retrazo a la desconexión Operando Identificador Sintaxis Parte

Figura 2.3 Temporizador de retrazo a la desconexión

Operando

Identificador

Sintaxis

Parte

Ejemplo

Temporizador

 

TOFF

TOFFnn

Condicional

Temporizador   TOFF TOFFnn Condicional

de retrazo

a

la

desconexión

bit

Ejecutiva

bit Ejecutiva

Temporizador

 

TW

TWnn

Condicional

Temporizador   TW TWnn Condicional

de retrazo

a

la

desconexión

multibit

Capitulo 2

22

   

Ejecutiva

    Ejecutiva

TP

TPnn

Condicional

TP TPnn Condicional

Ejecutiva

Ejecutiva

Tabla 2.7 Direccionamiento de temporizador de retrazo a la desconexión

2.8 Contadores.

Todos los PLC’s de Festo ofrecen la posibilidad de ser programados como contadores

incrementales o decrementales en diagrama de escalera. Además, cada elemento del contador

puede ser accesado directamente. Similarmente, todas las palabras de los operandos pueden

ser utilizados para contar a excepción de las palabra de entradas y las palabras de tiempo

actual.

Para permitir flexibilidad en la programación de contadores, el diagrama de escalera de

Festo ofrece los siguientes operandos para contadores:

a) La palabra de cuenta (Counter Word-CWnn-) es el operando en el cual el valor actual

es guardado y este es cambiado con cada pulso de cuenta. La palabra de cuenta debe

reiniciarse al inicio de la operación de cuenta.

b) La palabra de preselección (Counter Preselect-CPnn-) es el operando en elcual el valor

nominal es guardado.

Capitulo 2

23

c) Bobina del contador (Cnn) es el operando en el cual se realizan las operaciones de

cuenta hacia arriba o hacia abajo por medio de flancos de subida.

d) Contacto del contador (Cnn) es el operando en el cual es guardado el estado del

contador, si el valor de CWnn es menor al valor de TPnn el contacto del contador es

verdadero.

Operando

Identificador

Sintaxis

Parte

Ejemplo

Contador bit

C

Cnn

Condicional

Contador bit C Cnn Condicional

Ejecutiva

Ejecutiva

Contador

CW

CWnn

Condicional

Contador CW CWnn Condicional

multibit

Ejecutiva

Ejecutiva

CP

CPnn

Condicional

CP CPnn Condicional

Ejecutiva

Ejecutiva

Capitulo 2

24

Tabla 2.8 Direccionamiento de contador

2.9 Constantes.

Las contantes en los PLC’s de Festo son de 16 bits, por lo que estos valores pueden

oscilar entre 0 a 65535 para enteros sin signo y entre –32767 y 32767 para enteros con signo,

asimismo es posible representar a las contantes en hexadecimal.

Operando

Identificador

Sintaxis

Parte

Ejemplo

Constante

sin

V

Vnnnnn

Condicional

Constante sin V Vnnnnn Condicional

signo

Ejecutiva

Ejecutiva

Constante

con

V-

V-nnnnn

Condicional

Constante con V- V-nnnnn Condicional

signo

Ejecutiva

Ejecutiva

Constante

V$

V$nnnn

Condicional

Constante V$ V$nnnn Condicional

hexadecimal

Capitulo 2

25

Ejecutiva
Ejecutiva
Ejecutiva

Ejecutiva

Ejecutiva

Tabla 2.9 Direccionamiento de constante

2.10 Bandera de ejecución inicial.

La bandera de ejecución inicial es una bandera única por cada uno de los programas

que existan en el proyecto, esta bandera siempre es igual a cero, a excepción del primer ciclo

de operación del programa en que es igual a uno.

Operando

Identificador

Sintaxis

Parte

Ejemplo

Bandera

de

FI

FI

Condicional

Bandera de FI FI Condicional

ejecución inicial

Tabla 2.10 Direccionamiento de bandera de ejecución inicial

Capitulo 3

26

CAPITULO 3

ESTRUCTURA DE PROGRAMACIÓN EN LDR

3.1 Introducción

En este capitulo veremos cual es la estructura de programación en diagrama de

escalera, esto con el fin de tener las bases suficientes para poder explicar en el siguiente

capitulo la referencia de instrucciones.

3.2 Que es un escalón

Un escalón o rung es la parte más simple del diagrama de escalera, el diagrama de

escalera es un imagen del diagrama de circuito alemán, pero se lee siempre de izquierda a

derecha.

alemán, pero se lee siempre de izquierda a derecha. Figura 3.1 Escalón El diagrama de escalera

Figura 3.1 Escalón

El diagrama de escalera se compone de escalones, ramas paralelas, contactos, cajas,

bobinas y bobinas paralelas. Una caja puede ser usada para reemplazar un contacto o una

bobina. Las cajas son usadas por funciones que son difíciles o imposibles de representar en el

diagrama de escalera, por ejemplo una operación aritmética.

o imposibles de representar en el diagrama de escalera, por ejemplo una operación aritmética. Figura 3.2

Figura 3.2 Cajas

Capitulo 3

27

Las ramas paralelas pueden ser insertadas en cualquier lugar del escalón y las bobinas

paralelas se insertan a la derecha del escalón.

las bobinas paralelas se insertan a la derecha del escalón. Figura 3.2 Ramas paralelas y bobinas

Figura 3.2 Ramas paralelas y bobinas paralelas

Los escalones contienen operaciones y no son mas que uniones lógicas de elementos

binarios. Cada operación que es cada contacto, cajas y/o bobina requiere de un operando. Si el

operando no se encuentra, el WinFST rechaza el programa, marca los errores y no carga el

programa en el PLC. El WinFST es el software de Festo para editar, compilar y cargar los

programas de PLC. Cada operación tiene un lugar asignado para los operandos.

3.3 Parte ejecutiva y condicional

Como todas las operaciones lógicas o booleanas, los escalones pueden ser divididos en

una parte condicional y una parte ejecutiva. La parte condicional contiene las condiciones para

que la acción sea dada; la parte ejecutiva contiene la acción que se llevará a cabo si la parte

condicional es verdadera.

Esto es lo mismo que un circuito de diagrama eléctrico. Una carga eléctrica representa

la parte ejecutiva. Los contactos en serie y en paralelo representa la parte condicional.

Capitulo 3

28

Los escalones están numerados. La numeración se lleva acabo en forma automática.

Por esta razón es clara la secuencia de los escalones. Antes de la carga del programa en

diagrama de escalera en el PLC, el programa es trasladado al código de máquina usado por el

PLC. Los escalanes son trasladados consecutivamente en su número de secuencia. Incluso

dentro del escalón el código de máquina usa la secuencia programada por el usuario. Es por

eso que una segunda bobina en un escalón aparecer en segundo sitio en el código de máquina.´

Como vimos anteriormente, el programa es ejecutado estrictamente en secuencia.

Cuando se enciende el PLC o se inicia el programa con el switch de RUN, el programa inicia

con las operaciones del primer escalón. Es por esto que el programador sabe siempre que

instrucciones se ejecutarán primero.

Capitulo 4

29

CAPITULO 4

REFERENCIA DE INSTRUCCIONES EN LDR

4.1 Funciones lógicas

Las funciones lógicas son sin lugar a duda la parte básica para realizar un programa, en

gran medida el conocimiento de ellas representa la diferencia entre hacer un programa

eficiente y hacer un programa largo e inútil. En este capitulo veremos la manera de representar

las diferentes funciones lógicas desde el lenguaje de PLC de diagrama de escalera, más no se

pretende hacer un repaso de la tabla de verdad de cada función porque se entiende que estas ya

se conocen.

4.1.1 Función NOT

La función NOT puede ser asignada para señales de entrada o señales de salida, en el

caso de señales de entrada, la función NOT es similar a utilizar un contacto normalmente

cerrado de un relevador eléctrico.

un contacto normalmente cerrado de un relevador eléctrico. Figura 4.1 Función NOT de entrada Figura 4.2

Figura 4.1 Función NOT de entrada

normalmente cerrado de un relevador eléctrico. Figura 4.1 Función NOT de entrada Figura 4.2 Función NOT

Figura 4.2 Función NOT de salida

Capitulo 4

30

En la figura 4.1 vemos que cuando la señal de la entrada I0.0 es cero, entonces la salida

O0.0 es uno. En la figura 4.2 vemos que cuando la señal de la entrada I0.0 es uno, entonces la

salida es cero.

Para el caso de la función NOT multibit, existe una caja que realiza la función en

operandos de 16 bits llamada INV, la función NOT es aplicada bit a bit y el resultado puede

ser guardado en el mismo operando o en otro.

resultado puede ser guardado en el mismo operando o en otro. 4.1.2 Función OR Figura 4.3

4.1.2 Función OR

Figura 4.3 Función INV

La función OR no es mas que tener contactos en paralelo, en esta función con que uno

de los operandos sea igual a uno la función se hace uno. Para que la función sea igual a cero,

todos los operandos deberán ser igual a cero.

igual a cero, todos los operandos deberán ser igual a cero. Figura 4.4 Función OR Para

Figura 4.4 Función OR

Para el caso de la función OR multibit existe una caja llamada de la misma manera, la

función OR para este caso se realiza bit a bit entre dos operandos de 16 bits y el resultado es

guardado en un tercero.

Capitulo 4

31

Capitulo 4 31 Figura 4.5 Función OR multibit 4.1.3 Función AND La función AND no es

Figura 4.5 Función OR multibit

4.1.3 Función AND

La función AND no es mas que tener contactos en serie, en esta función todos los

operandos deben ser igual a uno para que la función sea igual a uno. Para que la función sea

igual cero, solo basta con que un o de los operandos sea igual a cero.

solo basta con que un o de los operandos sea igual a cero. Figura 4.6 Función

Figura 4.6 Función AND

Para el caso de la función AND multibit existe una caja llamada de la misma manera,

la función AND para este caso se realiza bit a bit entre dos operandos de 16 bits y el resultado

es guardado en un tercero.

de 16 bits y el resultado es guardado en un tercero. Figura 4.7 Función AND multibit

Figura 4.7 Función AND multibit

4.1.4 Función OR exclusiva

Capitulo 4

32

La función OR exclusiva es mas elaborada que las funciones anteriores, sin embrago

sigue siendo una combinación de contactos abiertos y cerrados utilizando las funciones NOT,

OR y AND. La función OR exclusiva es verdadera cuando uno y solo uno de los operandos es

uno. En el caso que dos o más operandos sea igual a uno la función es igual a cero.

más operandos sea igual a uno la función es igual a cero. Figura 4.8 Función OR

Figura 4.8 Función OR Exclusiva con 2 operandos

a cero. Figura 4.8 Función OR Exclusiva con 2 operandos Figura 4.9 Función OR Exclusiva con

Figura 4.9 Función OR Exclusiva con 3 operandos

Para el caso de la función OR exclusiva multibit existe una caja llamada EXOR, la

función EXOR para este caso se realiza bit a bit entre dos operandos de 16 bits y el resultado

es guardado en un tercero.

dos operandos de 16 bits y el resultado es guardado en un tercero. Figura 4.10 Función

Figura 4.10 Función EXOR

4.2 Funciones aritméticas

Capitulo 4

33

Las funciones aritméticas en un PLC no son muy utilizadas, sin embargo la mayoria de

los PLC’s las poseen y los de Festo no son la excepción.

4.2.1 Adición

La adición se realiza entre dos operandos de 16 bits y es guardado en un tercero

utilizando la caja que lleva por nombre “+”, cabe señalar que la operación se realiza entre

operandos enteros, no es posible usar operandos de punto flotante.

enteros, no es posible usar operandos de punto flotante. 4.2.2 Substracción Figura 4.11 Función + La

4.2.2 Substracción

Figura 4.11 Función +

La substracción se realiza entre dos operandos de 16 bits y es guardado en un tercero

utilizando la caja que lleva por nombre “-”, cabe señalar que la operación se realiza entre

operandos enteros, no es posible usar operandos de punto flotante.

enteros, no es posible usar operandos de punto flotante. 4.2.3 Multiplicación Figura 4.12 Función - La

4.2.3 Multiplicación

Figura 4.12 Función -

La multiplicación se realiza entre dos operandos de 16 bits y es guardado en un tercero

utilizando la caja que lleva por nombre “*”, cabe señalar que la operación se realiza entre

operandos enteros, no es posible usar operandos de punto flotante.

Capitulo 4

34

Capitulo 4 34 4.2.4 División Figura 4.13 Función * La división se realiza entre dos operandos

4.2.4 División

Figura 4.13 Función *

La división se realiza entre dos operandos de 16 bits y es guardado en un tercero

utilizando la caja que lleva por nombre “/”, cabe señalar que la operación se realiza entre

operandos enteros, no es posible usar operandos de punto flotante.

enteros, no es posible usar operandos de punto flotante. 4.3 Funciones de rotación Figura 4.14 Función

4.3 Funciones de rotación

Figura 4.14 Función /

Las funciones de rotación son comandos que corren los bits individual de una palabra.

Si una palabra es rotada 16 veces se obtiene el valor origina.

4.3.1 Rotación a la izquierda

Para este caso los bits de la palabra son corridos un lugar hacia la izquierda, el bit más

significativo se inserta en el extremo derecho como el bit menos significativo como se muestra

en la figura 4.15.

Capitulo 4

35

Capitulo 4 35 Figura 4.15 Rotación a la izquierda 4.3.2 Rotación a la derecha Para el

Figura 4.15 Rotación a la izquierda

4.3.2 Rotación a la derecha

Para el caso de la rotación a la derecha los bits de la palabra son corridos un lugar hacia

la derecha, el bit menos significativo se inserta en el extremo izquierdo como el bit más

significativo como se muestra en la figura 4.16.

el bit más significativo como se muestra en la figura 4.16. Figura 4.16 Rotación a la

Figura 4.16 Rotación a la derecha

Para ambos casos existen cajas llamadas ROL y ROR, en la figura 4.17 vemos un

ejemplo de cómo se utilizan estas.

la figura 4.17 vemos un ejemplo de cómo se utilizan estas. Figura 4.17 Función ROL y

Figura 4.17 Función ROL y ROR

Como se puede apreciar las funciones de rotación se realiza en una palabra y el

resultado se guarda en una segunda, pero esta segunda palabra puede ser la primera.

Capitulo 4

36

4.4 Funciones de Corrimientos

Las funciones de corrimientos son muy similares a las funciones de rotación, con la

diferencia de que en el caso de del corrimiento a la izquierda el bit más significativo y en el

corrimiento a la derecha el bit menos significativo se pierden.

4.4.1 Corrimiento a la izquierda

Para el caso del corrimiento a la izquierda los bits de la palabra son corridos un lugar

hacia la izquierda, el bit menos significativo se carga con un cero y el bit más significativo se

pierde como se muestra en la figura 4.18.

significativo se pierde como se muestra en la figura 4.18. Figura 4.18 Corrimiento a la izquierda.

Figura 4.18 Corrimiento a la izquierda.

4.4.2 Corrimiento a la derecha

Para el caso del corrimiento a la derecha los bits de la palabra son corridos un lugar

hacia la derecha, el bit más significativo se carga con un cero y el bit menos significativo se

pierde como se muestra en la figura 4.19

significativo se pierde como se muestra en la figura 4.19 Figura 4.19 Corrimiento a la derecha

Figura 4.19 Corrimiento a la derecha

Para ambos casos existen cajas llamadas SHR y SHL, en la figura 4.20 vemos un

ejemplo de cómo se utilizan estas.

Capitulo 4

37

Capitulo 4 37 Figura 4.20 Función SHR y SHL Como se puede apreciar las funciones de

Figura 4.20 Función SHR y SHL

Como se puede apreciar las funciones de rotación se realiza en una palabra y el

resultado se guarda en una segunda, pero esta segunda palabra puede ser la primera.

4.5 Saltando a una etiqueta

La función de salto es una posibilidad para modificar el flujo natural del programa, la

función de salto tiene una etiqueta como destino, no un número de escalón. Cuando se

programe un salto será necesario colocar la etiqueta a

la que se deba hacer el salto, de lo

contrario el compilador marcará error de sintaxis. La instrucción de salto es insertada en la

parte ejecutiva del escalón. En la figura 4.21 se ve un ejemplo sencillo de utilización de salto,

como se puede apreciar, si la entrada I0.0 es igual a uno, se ejecuta el salto hacia la etiqueta

“Destino” sin ejecutar el escalón 9. Si la entrada I0.0 es igual a cero, el programa sigue su

flujo normal.

el escalón 9. Si la entr ada I0.0 es igual a cero, el programa sigue su

Figura 4.21 Función de salto

Capitulo 4

38

4.6 Bobinas

Las bobinas son utilizadas para modificar el estado de los operandos de bit en la parte

ejecutiva del escalón. Existen cuatro instrucciones de bobina, el SET, el RESET, la asignación

y la asignación negada.

4.6.1 Set

La instrucción de SET energiza retentivamente a una bobina, en el momento que el

escalón se hace igual a uno la instrucción de SET coloca en valor uno a la bobina y aunque

posteriormente el escalón tome el valor de cero la bobina queda con el valor de uno. La

manera de colocar a cero la bobina es utilizando la instrucción de RESET.

a cero la bobina es utilizando la instrucción de RESET. Figura 4.22 Instrucción de SET 4.6.2

Figura 4.22 Instrucción de SET

4.6.2 Reset

Cuando previamente una bobina fue puesta en valor uno mediante la instrucción de

SET, la función de RESET es necesaria para lograr poner en cero a dicha bobina. Si no se

utiliza la instrucción de RESET la bobina quedará siempre con el valor de uno.

de RESET la bobina quedará siempre con el valor de uno. Figura 4.23 Instrucción de RESET

Figura 4.23 Instrucción de RESET

Las instrucciones de SET y RESET son utilizadas cuando es necesario memorizar el

estado momentáneo del escalón, por ejemplo cuando se quiere arrancar y parar un motor con

Capitulo 4

39

Capitulo 4 39 Figura 4.24 Arranque y paro de motor con SET y RESET 4.6.3 Asignación

Figura 4.24 Arranque y paro de motor con SET y RESET

4.6.3 Asignación

A diferencia del SET que memoriza el estado del escalón cuando este se hizo

verdadero, la asignación contiuamente sigue al estado actual del escalón, es decir, si el escalón

es igual a uno la bobina asignada es igual a uno, si el escalón es cero la bobina es cero. Como

regla general solo debe existir una asignación por bobina en todo el programa y si se tiene

asignación no se debe tener SET, RESET o asignación negada de la misma bobina en todo el

programa.

asi gnación negada de la misma bobina en todo el programa. Figura 4.25 Asignación. 4.6.4 Asignación

Figura 4.25 Asignación.

4.6.4 Asignación negada

La asignación negada es similar a la asignación, con la única diferencia de que cuando

el escalón es uno la bobina es cero y cuando el escalón es cero la bobina es uno. La regla

general de asignación es aplicada también para la asignación negada, por lo que si existe una

asignación negada de una bobina ya no debe existir una asignación, un SET o un RESET.

Capitulo 4

40

Capitulo 4 40 Figura 4.26 Asignación negada 4.7 Funciones de comparación Las operaciones de comparación son

Figura 4.26 Asignación negada

4.7 Funciones de comparación

Las operaciones de comparación son básicas en cualquier PLC. Las comparaciones

permiten procesar valores analógicos, realizar múltiples comparaciones de contadores y

temporizadores y tomar decisiones en base a valor, etc.

4.7.1 Igual que

Esta función se realiza entre dos palabras de 16 bits o constantes. Se inserta en la parte

condicional y es verdadera cuando ambas palabras son iguales en valor.

y es verdadera cuando ambas palabras son iguales en valor. Figura 4.27 Función igual que 4.7.2

Figura 4.27 Función igual que

4.7.2 Mayor que

Esta función se realiza entre dos palabras de 16 bits o constantes. Se inserta en la parte

condicional y es verdadera cuando la primera palabra es mayor a la segunda.

Capitulo 4

41

Capitulo 4 41 Figura 4.28 Función mayor que 4.7.3 Menor que Esta función se realiP 0

Figura 4.28 Función mayor que

4.7.3 Menor que

Esta función se realiP 0

Capitulo 4

42

Capitulo 4 42 Figura 4.30 Función mayor o igual que 4.7.5 Menor o igual que Esta

Figura 4.30 Función mayor o igual que

4.7.5 Menor o igual que

Esta función se realiza entre dos palabras de 16 bits o constantes. Se inserta en la parte

condicional y es verdadera cuando la primera palabra es menor o igual a la segunda.

cuando la primera palabra es menor o igual a la segunda. Figura 4.31 Función menor o

Figura 4.31 Función menor o igual que

4.7.6 Diferente que

Esta función se realiza entre dos palabras de 16 bits o constantes. Se inserta en la parte

condicional y es verdadera cuando ambas palabras son diferentes entre si.

Capitulo 4

43

Capitulo 4 43 Figura 4.32 Función diferente que 4.8 Números Cuando se utilizan interruptores en las

Figura 4.32 Función diferente que

4.8 Números

Cuando se utilizan interruptores en las entradas para codificar números o cuando se

utilizan displays de 7 segmentos es necesario realizar conversiones entre código BCD y

decimal. Es por esto que los PLC’s de Festo poseen dos instrucciones para realizar estas

conversiones.

4.8.1 Conversión BCD a binario

El comando DEB realiza la conversión de BCD a binario en palabras de 16 bits. En la

figura 4.33 vemos un ejemplo donde se demuestra como se realiza la conversión, en la figura

4.34 vemos un ejemplo de programación utilizando el comando DEB.

en la figura 4.34 vemos un ejemplo de programación utilizando el comando DEB. Figura 4.33 Conversión

Figura 4.33 Conversión de BCD a binario

Capitulo 4

44

Capitulo 4 44 Figura 4.34 Comando DEB 4.8.2 Conversión binario a BCD El comando B ID

Figura 4.34 Comando DEB

4.8.2 Conversión binario a BCD

El comando B ID realiza la conversión de binario a BCD en palabras de 16 bits. En la

figura 4.35 vemos un ejemplo donde se demuestra como se realiza la conversión, en la figura

4.36 vemos un ejemplo de programación utilizando el comando BID.

vemos un ejemplo de programación utilizando el comando BID. Figura 4.35 Conversión de binario a BCD

Figura 4.35 Conversión de binario a BCD

programación utilizando el comando BID. Figura 4.35 Conversión de binario a BCD Figura 4.36 Comando BID

Figura 4.36 Comando BID

4.9 Contadores

Capitulo 4

45

Como vimos en el capitulo 2, los contadores poseen dos palabras de 16 bits, el counter

word (CW) y el counter preset (CP). La manera de inicializar el contador es utilizando la caja

de contador en la parte ejecutiva del escalón.

la caja de contador en la parte ejecutiva del escalón. Figura 4.37 Inicialización del contador En

Figura 4.37 Inicialización del contador

En la figura 4.37 se puede apreciar la inicialización del contador C4, cuando la entrada

I0.0 es uno, el valor constante 10 se carga en CP4, CW4 se carga con cero y el estado del

contador C4 es uno. Cada ves que la entrada I0.1 tenga un flanco de subida el contador C4 se

incrementara en uno y cada ves que la entrada I0.2 tenga un flanco de subida el contador C4 se

decrementara en uno. La manera de inspeccionar el estado del contador es utilizando el

contacto C4 en la parte condicional. Cuando CW4 llegue a ser igual a CP4 mediante pulsos de

incrementos, el estado del contador se hará igual a cero. Cuando CW4 llegue a ser igual a cero

mediante pulsos de decrementos, el estado del contador se hará igual a cero.

4.10 Temporizadores

Capitulo 4

46

Para inicializar los temporizadores es necesario utilizar la caja ya predefinida para

dicho fin. Como vimos en el capitulo 2 existen tres tipos de temporizadores, el temporizador

de impulso, el temporizador de retrazo a la conexión y el temporizador de retrazo a la

desconexión.

la conexión y el temporizador de retrazo a la desconexión. Figura 4.38 Inicialización de temporizadores. En

Figura 4.38 Inicialización de temporizadores.

En la figura 4.38 se puede apreciar el método de inicialización e inspección de un

temporizador. La caja del temporizador siempre se colocará en la parte ejecutiva y el contacto

en la parte condicional. Es muy importante tener cuidado en no repetir un número de

temporizador aunque sean de diferentes tipos y que el contacto corresponda al tipo y número

del temporizador en cuestión. La preselección del temporizador se encuentra en la parte

izquierda del temporizador y es necesario lleve al final la “s” de segundos. El dato numérico

puede estar entre 0 y 655.35.

Capitulo 5

47

CAPITULO 5

PROGRAMANDO ENTRADAS Y SALIDAS DIGITALES, Y BANDERAS

5.1 Programando entradas y salidas

El número de entradas y salidas disponibles depende del tamaño del PLC. Para poder

usar las entradas y las salidas es necesario configurar en el WinFST que entradas y que salidas

tenemos en el PLC.

en el WinFST que entradas y que salidas tenemos en el PLC. Figura 5.1 Configuración de

Figura 5.1 Configuración de entradas y salidas

En la figura 5.1 vemos la pantalla de “IO Configuration” que se desplega al hacer

doble clic sobre el mismo nombre en la ventana de “FST Project”. Debajo de la etiqueta “IW”

tenemos el valor “0”, esto quiere decir que la primera palabra de entradas del PLC será la

“IW0”. En el capitulo 1 vimos que el FEC Compacto posee 12 entradas, por lo que las

entradas toman las direcciones

desde I0.0 hasta I0.7 y desde I1.0 hasta I1.3. Si debajo de la

etiqueta IW estuviera el valor de “1”, entonces las direcciones de entrada serian de I1.0 hasta

I1.7 y desde I2.0 hasta I2.3. Las mismas consideraciones son válidas para las direcciones de

salidas.

El PLC internamente tiene un total de 256 palabras de entradas y 256 palabras de

salidas de 16 bits. Las entradas y salidas que no se encuentren ligadas a Hardware pueden ser

utilizadas como memorias internas.

Capitulo 5

48

Capitulo 5 48 Figura 5.2 Palabras de entradas Veamos un pequeño problema donde es necesario arrancar

Figura 5.2 Palabras de entradas

Veamos un pequeño problema donde es necesario arrancar y parar un motor con dos

botones pulsadores normalmente abiertos. La lista de localidades es como se muestra en la

figura 5.3.

La lista de localidades es como se muestra en la figura 5.3. Figura 5.3 Lista de

Figura 5.3 Lista de localidades

Al editar el programa se pueden utilizar los operandos absolutos o los operandos

simbólicos, es conveniente utilizar los simbólicos, ya que si se cambian las direcciones en que

se colocaran los elementos eléctricos, solo bastará realizar los cambios en la lista de

localidades y el programa seguirá igual.

Capitulo 5

49

Capitulo 5 49 Figura 5.4 Arranque y paro de un motor En la figura 5.4 vemos

Figura 5.4 Arranque y paro de un motor

En la figura 5.4 vemos la solución del problema, aquí se puede notar que para

memorizar el estado del escalón utilizamos un contacto de la salida O0.0 en la parte

condicional del escalón en función OR con la entrada I0.0. Debido a que la entrada I0.1

corresponde a un contacto normalmente abierto, en el programa se coloca un contacto cerrado

para que siempre conduzca “energía” y el arranque del motor se haga con el pulsador de

arranque. Cuando se presione el pulsador de paro, se abrirá el contacto cerrado y dejará de

pasar energía hacia la bobina, provocando el paro del motor. En las figuras 5.5, 5.6 y 5.7

vemos los estados con el motor encendido y con el motor apagado respectivamente.

el motor encendido y con el motor apagado respectivamente. Figura 5.5 Motor apagado Figura 5.6 Motor

Figura 5.5 Motor apagado

el motor apagado respectivamente. Figura 5.5 Motor apagado Figura 5.6 Motor encendido con el pulsador de

Figura 5.6 Motor encendido con el pulsador de arranque presente

Capitulo 5

50

Capitulo 5 50 Figura 5.7 Motor encendido memorizado En las tres figuras anteriores, los objetos en

Figura 5.7 Motor encendido memorizado

En las tres figuras anteriores, los objetos en azul significan que circula energía por

ellos o se encuentran en estado lógico 1.

5.2 Programando banderas

Las banderas pueden utilizarse como detectores de flancos, recordadores de pasos,

como memorias de estados operativos del proceso y en donde se requiera memorizar ciertos

eventos. En la figura 5.8 vemos un programa en que se utiliza un botón pulsador para arrancar

y parar un motor. En este caso, las banderas son utilizadas como detectores de flanco, ya que

cada ves que se pulse el botón de arranque se realizará un cambio de estado en la salida O0.0

de flanco, ya que cada ves que se pulse el botón de arranque se realizará un

Capitulo 5

51

Figura 5.8 Banderas como detectores de flanco

Es conveniente utilizar en este programa el escalón 1 con una instrucción de puesta en

cero de las dos banderas, con el fin de asegurarse que siempre que arranque el PLC, estas

banderas sean igual a cero. Para realizarlo se utiliza la bandera FI como se muestra en la figura

5.9.

se utili za la bandera FI como se muestra en la figura 5.9. Figura 5.9 Bandera

Figura 5.9 Bandera de ejecución inicial

Cabe recordar que la bandera FI es igual a uno solamente en el primer ciclo de

operación del PLC.

Capitulo 6

52

CAPITULO 6

PROGRAMANDO TEMPORIZADORES

Para estudiar la programación de temporizadores, veremos un ejemplo con tres

soluciones, con temporizador de pulso, con temporizador de retrazo a la conexión y con

temporizador de retrazo a la desconexión.

Problema: Una lámpara se enciende y apaga a intervalos de un segundo cuando un selector de

arranque se energiza.

se enciende y apaga a intervalos de un segundo cuando un selector de arranque se energiza.

Figura 6.1 Solución con TON

Capitulo 6

53

Capitulo 6 53 Figura 6.2 Solución con TOFF Figura 6.3 Solución con T Una cuarta solución

Figura 6.2 Solución con TOFF

Capitulo 6 53 Figura 6.2 Solución con TOFF Figura 6.3 Solución con T Una cuarta solución

Figura 6.3 Solución con T

Una cuarta solución a este problema es utilizar las funciones de comparación,

dividiendo el tiempo total de ciclo en dos partes iguales y encender la salida en una de las

partes y en la otra mantenerla apagada.

Capitulo 6

54

Capitulo 6 54 Figura 6.4 Solución con T y comparación

Figura 6.4 Solución con T y comparación

Capitulo 7

55

CAPITULO 7

PROGRAMANDO CONTADORES Y REGISTROS

En un estacionamiento se cuenta con 10 lugares para estacionar automóviles. En frente

del estacionamiento se encuentran colocadas dos lámparas de tráfico, cuando la luz verde está

encendida existen lugares vacíos, cuando la luz roja se enciende el estacionamiento esta lleno.

existen lugares vacíos, cuando la luz roja se enciende el estacionamiento esta lleno. Figura 7.1 Solución

Figura 7.1 Solución con contador

Capitulo 7

56

Capitulo 7 56 Figura 7.2 Solución con registro Como se puede apreciar en la figura 7.1

Figura 7.2 Solución con registro

Como se puede apreciar en la figura 7.1 y 7.2 las soluciones son prácticamente iguales,

sin embargo la solución con contadores utiliza 831 bytes y la solución con registro utiliza 791

bytes, esto por el hecho de que los contadores utilizan mas memoria. De ahí que muchos

programadores prefieren utilizar registros para realizar cuentas.

Los registros pueden utilizarse para muchas aplicaciones en donde sea necesario

intercambiar o guardar datos. Por ejemplo, en la figura 7.3 se utiliza el

registro R0 para

especificar el tiempo que correrá el temporizador con ayuda de un selector.

Capitulo 7

57

Capitulo 7 57 Figura 7.3 temporizador con preselección desde registro

Figura 7.3 temporizador con preselección desde registro

Capitulo 8

58

CAPITULO 8

LLAMANDO A PROGRAMAS, CMP Y CFM

8.1 Programas

Los

programas

son

las

rutinas

en

la

cual

el

usuario

desarrolla

la

lógica

de

comportamiento del PLC ante los diferentes eventos que suceden en la operación del sistema

de control.

El primer programa que se debe realizar es el programa 0, ya que el PLC siempre

buscará a este programa cuando arranque, si no existe este programa el PLC se pondrá en

modo de fallo.

Desde los programas se pueden llamar a otros programas, a módulos de programa o

módulos de funciones. El total de programas que se pueden realizar son 64 (P0 a P63).

Para habilitar a un programa se utiliza la instrucción SET, para detenerlo se utiliza la

instrucción RESET.

SET, para detenerlo se utiliza la instrucción RESET. Figura 8.1 Llamado de programas En la figura

Figura 8.1 Llamado de programas

En la figura 8.1 vemos la manera de habilitar a dos programas P1 y P2 desde el

programa de organización P0. Cuando se encuentre en estado lógico 1 la entrada I0.0, se

Capitulo 8

59

activa el programa P1 que es el programa de secuencia en automático y se detiene el programa

P2 que es el programa de secuencia en manual. Cuando la entrada I0.0 tiene estado lógico 0

sucede lo contrario.

Es interesante comprender que la idea de tener varios programas funcionando es

permitir dividir las diferentes tareas y mantener legibles nuestro programas. Los PLC trabajan

en modo de multitareas o multitaskin, permitiendo que diferentes programas estén trabajando

en conjunto al mismo tiempo.

8.2 Módulos de Programa

Los módulos de programa pueden ser considerados como subrutinas. Los módulos de

programa pueden

ser escritos en diagrama de escalera, lista de instrucciones o C. Algunos

módulos de programa

pueden usar unidades de función (FU) para pasar información desde

programas hacia módulos de programa y viceversa. La instrucción para llamar a los módulos

de programa es CMP.

Los CMP pueden poseer la instrucción STEP, propia del lenguaje de lista de

instrucciones, que permite detener el flujo de un programa hasta que la ultima condición antes

del siguiente STEP sea verdadera y permita continuar en el siguiente STEP. Los CMP

permiten cambiar la tarea que se este ejecutando, por tal motivo, al ejecutarse una instrucción

CMP el PLC sigue trabajando en modo de multitarea.

Desde un módulo de programa no se puede llamar a otro módulo de programa. El total

de módulos de programa que se pueden tener es 100 (CMP0 a CMP99).

Capitulo 8

60

Capitulo 8 60 Figura 8.2 Llamado de módulo de programa En la figura 8.2 vemos como

Figura 8.2 Llamado de módulo de programa

En la figura 8.2 vemos como se llama a un módulo de programa. En este caso cuando

la entrada I0.2 es igual a 1, el módulo de programa CMP10 se activa. Aquí el CMP10 está

utilizando el código de la rutina F10 de la librería de Festo que se encarga de fijar la hora del

PLC en 8:25:00:00 horas según los datos puestos por el programador en los parámetros a la

izquierda de la caja del CMP.

8.3 Módulos de función

Los módulos de función pueden ser considerados similar a llamadas de funciones

especiales. Módulos de función pueden ser escritos en diagrama de escalera, lista de

instrucciones o C. Algunos módulos de función

pueden usar unidades de función (FU) para

pasar información desde programas hacia módulos de función y viceversa. La instrucción para

llamar a los módulos de función es CFM.

Los CFM no poseen la instrucción STEP, propia del lenguaje de lista de instrucciones,

que permite detener el flujo de un programa hasta que la ultima condición antes del siguiente

STEP sea verdadera y permita continuar en el siguiente STEP. Los CFM no permiten cambiar

la tarea que se este ejecutando, por tal motivo, al ejecutarse una instrucción CFM el PLC deja

de trabajar en modo de multitarea. El total de módulos de función que se pueden tener es 100

(CFM0 a CFM99).

Los CFM se llaman de la misma manera que los CMP.

Capitulo 8

61

8.4 Importando módulos

Existen una amplia variedad de módulos ya realizados y probados por Festo. Estos

módulos se encuentran en el WinFST como una librería y están ahí esperando ser utilizados.

Para utilizar un módulo de Festo hay que importarlos siguiendo los siguientes pasos:

a) En el Program Window hacer clic derecho sobre CMP o CFM para que aparezca el

menú de New CMP/CFM o Import.

o CFM para que aparezca el menú de New CMP/CFM o Import. b) Seleccionar importar c)

b) Seleccionar importar

el menú de New CMP/CFM o Import. b) Seleccionar importar c) Seleccionar el módulo a importar

Capitulo 8

62

Capitulo 8 62 d) Escoger el tipo entre Program, CMP o CF M. Escoger el número,

d) Escoger el tipo entre Program, CMP o CFM. Escoger el número, versión y hacer un

comentario. Hacer clic en OK.

número, versión y hacer un comentario. Hacer clic en OK. e) Queda listo el módulo para

e) Queda listo el módulo para ser utilizado. En la parte ejecutiva de un escalón del

programa puede hacer clic en el icono de Module Call o en el menú Insert para insertar

un módulo.

Capitulo 8

63

Capitulo 8 63 f) Seleccionar el módulo. Observe que desde esta pantalla también se pueden importar

f) Seleccionar el módulo. Observe que desde esta pantalla también se pueden importar

módulos.

desde esta pantalla también se pueden importar módulos. g) El módulo queda insertado en el escal

g)

El

módulo

queda

insertado

en

el

escalón.

Es

necesario

escribir

los

datos

de

configuración del módulo. Si no se conocen, puede apretar F1 teniendo seleccionada la

caja del módulo para que aparezca la ayuda en línea.

Si no se conocen, puede apretar F1 teniendo seleccionada la caja del módulo para que aparezca

Conclusiones

64

CONCLUSIONES

En las visitas que he realizado a las empresas del sureste de la republica Mexicana, he

visto muchos ingenieros en electrónica que no saben programar PLC’s. Siendo que, en la

actualidad para realizar la automatización de una máquina es indispensable el uso de los

PLC’s. Al no existir ingenieros que programen PLC’s las empresas pequeñas se tienen que

conformar con tener máquinas que operen en forma semiautomática o totalmente manuales y

las empresas grandes tienen que invertir fuertes sumas de dinero para tener máquinas

automáticas.

Un ingeniero en electrónica que sabe programar PLC’s tiene mayores oportunidades de

obtener un empleo mejor remunerado. Bien es cierto que una máquina podría ser automatizada

con un sistema mínimo a base de microcontroladores o PIC’s, pero también es cierto que esto

llevaría a tener muchas horas de diseño y programación, con los PLC’s la programación es

más sencilla y el diseño es mucho mas rápido. El costo no es limitativo para proyectos con

PLC’s, ya que existen PLC’s en el mercado tan baratos que comparándolos con el costo de

desarrollo de un sistema mínimo con microcontrolador, la opción del PLC es más barato.

Sin duda como hemos visto a trabes del desarrollo de la monografía, la programación

de los PLC’s de Festo es muy sencilla y muy poderosa para realizar automatizaciones, y si a

eso le sumamos que se pueden tener comunicaciones a trabes del puerto Ethernet y se tienen

módulos de Web Server, entonces los PLC’s se pueden utilizar para realizar adquisición de

datos.

ANEXO A

65

ANEXO A

PRINCIPALES MODULOS DE PROGRAMA

Para pasar parámetros hacia y desde un módulo de programa es necesario hacer uso de

las unidades de función FU32 a FU38, los cuales son palabras de 16 bits. En las cajas de los

módulos de programa, las unidades de función que necesita el módulo como parámetros de

entrada se colocan a la izquierda, siendo el de la parte superior el FU32, el inmediato de abajo

el FU33 y así consecutivamente. Las unidades de función que regresa el módulo de salida se

colocan a la derecha de la caja del módulo ordenados de la misma manera que los parámetros

de entrada.

A.1 F10

El módulo F10 establece la hora del reloj interno del PLC.

Parámetros de entrada

FU32

Hora (0 a 23) Minutos (0 a 59) Segundos (0 a 59) Centésimas de segundo (0 a 99)

FU33

FU34

FU35

FU36

 

FU37

FU38

 

Parámetros de salida

Ninguno

A.2 F11

El módulo F11 establece la fecha del PLC

Parámetros de entrada

FU32

Año (1980 a 2099) Mes (1 a 12) Día (1 a 31)

FU33

FU34

FU35

 

FU36

FU37

FU38

ANEXO A

66

Parámetros de salida

Ninguno

A.2 F30

El módulo F30 configura los puertos seriales, la mayoría de los PLC’s de Festo poseen

dos puertos seriales, el COM que es por donde se realiza la descarga de los programas y el

EXT utilizados para establecer comunicación con dispositivos seriales. El COM se identifica

como 255 y el EXT como 0.

Parámetros de entrada

FU32

Interface Serial (COM=255, EXT=0) Parámetros de la Interface

FU33

FU34

 

FU35

FU36

FU37

FU38

 

Parámetros de salida

Ninguno

Parámetros de la Interface

 

Baud Rate

Carácter

Paridad

Bit

7

6

5

4

3

2

1

0

 

Baud Rate

 

Bit

7

6

5

4

Baud

 
 

1

0

0

0

19200

 

1

0

0

1

9600

1

0

1

0

4800

1

0

1

1

2400

1

1

0

0

1200

1

1

0

1

600

1

1

1

0

300

1

1

1

1

110

Longitud del carácter

 

Bit

3

2

Bits por carácter

 
 

0

0

 

5

0

1

 

6

ANEXO A

67

 

1

 

0 7

1

 

1 8

 

Paridad

Bit

1

0

Paridad

 

0

0

Ninguna

0

1

ODD

1

0

Ninguna

1

1

EVEN

A.4 F31

El módulo F31 activa el CI, el CI es una aplicación que siempre está corriendo en el

PLC y permite acceder para leer o escribir en los parámetros del PLC mediante una línea de

comandos por el puerto serial COM, sin embargo es posible configurar el puerto EXT para

que en el pueda correr el CI.

Parámetros de entrada

FU32

FU33

Interface Serial (COM=255, EXT=0)

0 = Desabilita el CI

1 = Habilita el CI

Parámetros de salida

Ninguno

A.5 F9

El módulo F9 borra los operandos de la memoria del PLC, este módulo es muy

necesario para asegurarse de borrar toda la “basura” que pueda trae el PLC de fábrica.

Parámetros de entrada

FU32

= Borra todos los registros, contadores, temporizadores y banderas

0

1

= Borra todos los registros

2= Borra todos los contadores

3 = Borra todos los temporizadores

4 = Borra todas las banderas

Parámetros de salida

ANEXO A

68

Ninguno

Ninguno

A.6 GETCOM

El módulo GETCOM lee un carácter desde el puerto serial.

A.7 PUTCOM

Parámetros de entrada

FU32 Interface Serial (COM=255, EXT=0)

Parámetros de salida

FU32 0 = Listo

FU33

1 = Error

-1 = Nada recibido Si FU32 = 0 entonces FU33 = carácter

Recibido

El módulo PUTCOM envía un carácter por el puerto serial.

A.8 PRINTCOM

Parámetros de entrada

FU32

FU33

Interface Serial (COM = 255, EXT = 0) Carácter que se enviará

Parámetros de salida

FU32 0 = Listo

1 = Error

El módulo PRINTCOM envía un string FST por el puerto serial.

A.9 READCOM

Parámetros de entrada

FU32

FU33

Interface Serial (COM = 255, EXT = 0) Número del string FST

Parámetros de salida

FU32 0 = Listo

1 = Error

ANEXO A

69

El módulo READCOM lee una cadena de caracteres desde el puerto serial y los grava

en un string FST.

Parámetros de entrada

FU32

FU33

FU34

FU35

Interface Serial (COM = 255, EXT = 0) Número del string FST Máxima longitud Delimitador de datos (0 a 255)