Está en la página 1de 31

UNET-TACHIRA-VENEZUELA

DEPARTAMENTO DE ELECTRONICA
INSTRUMENTACION INDUSTRIAL
0231T

CONTROLADORES LÓGICOS
PROGRAMABLES (PLC)

ING. JUAN VIZCAYA


AÑO 2002
2

2.1 Controladores Lógicos Programables (PLC).

El Controlador Lógico Programable (PLC) se puede definir como un equipo


electrónico el cual realiza la ejecución de un programa en forma cíclica. La ejecución del
programa puede ser interrumpida momentáneamente para realizar otras tareas
consideradas prioritarias, pero el aspecto más importante es la garantía de ejecución
completa del programa principal. El usuario puede programar el PLC, con la ayuda de un
lenguaje diseñado para tareas de automatización. El juego de instrucciones contempla las
funciones de un automatismo, como por ejemplo, lógica secuencial y combinatoria,
temporización, cálculos, comparación, regulación, etc, y destinado a comandar, medir y
controlar por medio de módulos de entradas y salidas, diferentes clases de máquinas o
procesos en un entorno industrial.[1],[2],[3]

2.2 Organización general de un PLC.

En la figura 2.1 se muestra un diagrama de bloques de los componentes


principales de un PLC: CPU , Sistemas de entradas y salidas, Unidad de programación,
Periféricos.

Figura 2.1 Organización general de un PLC. Fuente [7]


3

2.2.1 Unidad Central de Proceso(CPU).

Bajo el aspecto funcional la CPU es el corazón del PLC, realizando todas las
tareas de control, tanto a lo que se refiere adquisición de información y comando de los
actuadores del proceso a controlar, como los que atañe a funciones internas de
vigilancia del adecuado funcionamiento de los componentes del equipo.[1]

En las tareas que realiza la CPU tiene lugar un intercambio continuo de


información entre los distintos componentes de la misma:

• Procesador:

Es el encargado de la adquisición y actualización de los estados de las entradas y


salidas en base a la interpretación de las instrucciones de la memoria de programa, de
usuario y funciones internas. Construido alrededor de un sistema basado en
microprocesadores y microcontroladores, coexisten en una misma tarjeta,
microprocesadores de un bit, encargados de la operaciones de combinación lógica o
boleana entre variables de un bit, microprocesadores de palabras, encargados de ejecutar
las instrucciones digitales entre palabras de 8,16, 32 bits, que contienen datos de
operaciones aritméticas, señales analógicas y otras.[2]

• Memoria:

Esta dividida en memoria monitor, memoria interna y memoria externa. La


memoria monitor es aquella que almacena el sistema operativo del PLC. La memoria
interna, es aquella que almacena el estado de las variables que maneja el PLC, tales
como: imagen de entradas, salidas, contadores, temporizadores, parámetros del
programa, señales de estado etc. La memoria externa almacena el programa escrito por el
usuario.[2],[3]
4

• Módulo de interfase:

Es el elemento encargado de establecer la comunicación entre la CPU y el


sistema de entradas y salidas (E/S), además de realizar las operaciones de aislamiento,
filtrado etc.[1]

• Módulo de comunicación

Es el elemento encargado de establecer la comunicación entre la CPU y los


distintos equipos periféricos, con la Unidad de programación y el Bus de campo. A
través del bus de campo el PLC puede formar parte de una red industrial: control
distribuido, sistema de supervisión y control (SCADA) y otros.

• Unidad de alimentación

Es el elemento encargado de transformar la señal de la red en las señales


eléctricas de trabajo necesarias para el funcionamiento de los distintos elementos
constituyentes.[3]

2.2.2 Sistema de entradas y salidas.

El sistema de entradas/ salidas, permiten el intercambio de información entre el


PLC y la planta. Se pueden clasificar en dos tipos: las centralizadas y las distribuidas.
Las entradas /salidas centralizadas se conectan al CPU a través del bus interno del PLC,
sin necesidad de ningún adaptador. A los módulos de entradas / salidas que se conectan
de esta forma, se les denomina módulos de expansión local . Las entradas /salidas
distribuidas se conectan a una red de datos industrial(Bus de campo), y el CPU a través
de un protocolo digital utilizando el modulo de comunicaciones que administra la red. A
este tipo de módulos de entradas / salidas se le conoce como módulos de expansión
remota. Entre los tipos de E/S tenemos: discretas, analógicas, numéricas, de códigos, de
funciones especiales y otras.[2]
5

2.2.3 Unidad de programación.

Este equipo permite la edición, compilación, depuración del programa de usuario


y su transferencia al PLC. Se utilizan PC de escritorio y portátiles, unidades tipo
calculadora y más recientemente palm pilots.

2.2.4 Periféricos.

Incluyen todos los equipos que no están directamente involucrados en la tarea de


control, tales como: impresoras, lectoras de código de barras, terminales de dialogo y
otros.

2.3 Estructura externa.

Actualmente, son dos las estructuras más significativas que existen en el


mercado [9]:

2.3.1 Estructura compacta:

Este tipo de autómatas se distinguen por presentar en un sólo bloque todos sus
elementos: fuente de alimentación, CPU, memorias, entradas/salidas, entre otros.

2.3.2 Estructura modular:

La estructura de este tipo de PLC se divide en módulos o partes del mismo que
realizan funciones específicas. Existen dos tipos:

• Estructura Americana: Se caracteriza por separar las Entradas/Salidas del resto del
autómata, de tal forma que en un bloque compacto está reunido el CPU, memoria de
usuario o de programa y fuente de alimentación, y separadamente las unidades de
Entradas/Salidas en los bloques o tarjetas necesarias.
6

• Estructura Europea: Su característica principal es la de presentar un módulo para


cada función: fuente de alimentación, CPU, Entradas/Salidas, etc. La unidad de
programación se une mediante cable y conector.

2.4 Ciclo de funcionamiento.

El PLC ejecuta el programa del usuario de forma secuencial y cíclica con el


objetivo de controlar el proceso en tiempo real. A este tipo de funcionamiento se le
denomina “ “ciclo de scan””[1].

Cuando se energiza el PLC comienza una etapa de inicialización que consiste en


un proceso de autodiagnóstico, que incluye: chequeo de las unidades de E/S,
comprobación y transferencia de contenidos del módulo externo de memoria, si este
existe, inicialización de variables y registros internos.

A continuación se realizará el “ciclo de scan”, que consta de los siguientes


procesos: supervisión, ejecución del programa, verificación del tiempo de guarda,
actualización E/S, servicio a periféricos.

Supervisión: se realizan las siguientes operaciones: chequeo del bus de E/ S ,


chequeo de memoria, chequeo del “watchdog” (reloj de guarda).

Ejecución del programa: en este proceso principalmente se realizará la


aplicación de los valores de entrada y variables internas a las ecuaciones lógicas
definidas en forma del programa.

Actualización de Entradas/Salidas: se lee la información de la interfase de


entrada y se escribe la información de salida (resultado de la ejecución del programa) .
7

Verificación del tiempo de guarda. Watch-dog: se verifica que no se haya


cumplido el tiempo máximo de espera para la ejecución de un “ciclo de scan”, si se
rebasa este tiempo, se detiene la ejecución.

Servicio de periféricos: se presta el servicio a los puertos conectados a


periféricos externos si los hubiere, dándose varias posibilidades que van desde un tiempo
fijado por el fabricante, hasta un tiempo determinado por el usuario en tanto por ciento
del ciclo total de scan. Si no se termina el servicio en ese tiempo, el servicio quedará
interrumpido hasta el servicio que se producirá en el siguiente “ciclo de scan”.

Tiempo de ciclo: es el tiempo que tarda el PLC en ejecutar un scan.

2.5 Interrupciones: Cuando se necesita manejar eventos cuya duración es


menor al tiempo de ciclo, tales como: lectura de codificadores, control de ejes, conteos
de alta velocidad, se utilizan interrupciones. Consiste en la interrupción temporal de la
secuencia normal del programa para ejecutar un subprograma o subrutina del programa
principal que va a realizar de forma inmediata alguna tarea específica del proceso.[1]

Cuando se realiza la ejecución de la subrutina y la activación de las salidas


especiales se devuelve el control de el proceso al programa principal justo donde se
produjo la interrupción. Esta interrupción normalmente se puede producir de dos formas
que se conocen como:

- Interrupción temporizada, en la que se produce cada cierto periodo de


tiempo de muy alta frecuencia, periodo de tiempo fijado por el propio usuario.

- Interrupción asíncrona, que se produce cuando una entrada específica de


interrupción se activa dando lugar a la interrupción del programa y de forma
asíncrona a la lectura de las demás entradas.
8

2.6 Descripción del PLC Klockner Moeller PS4-141-MM1.

Cuatro unidades del controlador lógico programable Klockner Moeller PS4-141-


MM1, forman parte de la dotación del laboratorio de PLC de la UNET, empotrados cada
uno en una maleta de entrenamiento, descrita mas adelante. En la figura se resumen las
características más resaltantes de este PLC. [4]

Este PLC presenta una estructura externa compacta: en una sola unidad están
incluidas: la fuente de poder, la unidad central de procesamiento y las unidades de
entradas / salidas. En la figura 2.2 se observa el aspecto físico de dicho PLC.

1 2 3

10

7 6 5
4

Figura 2.2 PLC Klockner Moeller PS4-141-MM1

1. Fuente de alimentación 24 Vcc, 3 amp.

2. 8 entradas digitales(0..7) lógica positiva 24Vcc.

3. 8 entradas digitales(0..7) lógica positiva 24Vcc.

4. 8 salidas digitales(0..7) lógica positiva 24Vcc. Salida a transistor.

5. 2 entradas analógicas de 0-10Vcc(10 bits), 1 salida analógica 0-10Vcc (12 bits).


9

6. 6 salidas digitales (0..5) lógica positiva 24Vcc. Salida a transistor.

7. Bus de campo Suconet K, bus serial RS485 para expansión de entradas / salidas,
periféricos y comunicación con otros PLC.

8. Selector para configurar el equipo en redes de PLC.

9. Puerto de programación RS232C, permite descargar el programa de usuario


desde la PC.

10. Indicadores luminosos del modo de operación del PLC. Ready, PLC listo para
funcionar. Run, programa de usuario en marcha. Not ready, error de
funcionamiento. Battery, falla en la batería de respaldo.

2.6.1 Direccionamiento de Entradas y Salidas del PLC PS4-141-MM1.

El direccionamiento se hace mediante la siguiente sintaxis:


% X Y #. #. #. #. #

Símbolo según
norma IEC 61131- Nº de entrada/ salida.
Vacío si es formato tipo Byte o
3 Word

I: Entrada discreta Nº de Byte si es formato tipo


Q: Salida discreta Byte
IA: Entrada analógica Nº de Word si es formato tipo
QA: Salida analógica
IP: Entrada discreta Periférico
IPA: Entrada analógica Nº de modulo de
Periférico expansión local
QP: Salida discreta Periférico
QA: Salida analógica Periférico

Nº de modulo de
expansión remota
Tipo de formato :
X o vacio : Tipo Bit
B : Tipo Byte
W: Tipo Word Nº de canal de
comunicaciones,
0 para el maestro
10

2.6.2 Programación del PLC PS4-141-MM1.

El controlador lógico programable PS4-141-MM1 soporta tres tipos de lenguajes


definidos por la norma IEC-61131-3 : Lista de instrucciones, Diagrama de escalera y
Diagrama de funciones(bloques).

Un lenguaje de programación en la norma IEC 61131-3, esta formado por tipos


de datos, variables y Unidades para la Organización de Programas (POU) .

Para desarrollar la aplicación de un usuario, la norma IEC 61131-3, establece tres


tipos de elementos de software: Programas, Funciones y Bloques de Funciones,
llamados Unidades para la Organización de Programas (POU).

Una función contiene datos y un algoritmo para ejecutar una tarea, puede tener
varias entradas pero una sola salida, puede retornar un solo valor. Se tienen las
funciones normalizadas tales como: la suma (ADD), resta (SUBB) y otros , conocidos
por operadores, que constituyen el juego de instrucciones principal del PLC. También
tenemos las funciones definidas por el fabricante, que agregan potencia adicional al
juego de instrucciones y permiten que exista diferencia entre marcas y modelos. Además,
existen las funciones definidas por el usuario, que permiten crear nuevas instrucciones a
partir de las normalizadas y las definidas por el fabricante, agregando una gran
flexibilidad.

Los bloques de funciones, son módulos que contienen datos y algoritmos para
resolver tareas especializadas, tienen varias entradas y salidas y pueden retornar
múltiples valores. Se tienen los bloques de funciones normalizados tales como los
temporizadores retardo a la conexión (TON), contadores ascendentes(CTU) y otros.
También tenemos los bloques de funciones definidas por el fabricante, tal como: el
registro de desplazamiento por bit (SR_X) entre otros. Además, existen los bloques de
funciones definidas por el usuario, que permiten crear nuevos módulos como un control
PID, que una vez definido puede ser reutilizado en diferentes aplicaciones.

Un programa es una red de funciones y bloques de funciones, los cuales son


capaces de intercambiar datos. Con el fin de ejecutar una tarea de control.
11

• Estructura de un programa

Un programa comienza con una sección para declarar las variables, seguida de
una sección de instrucciones, enmarcadas con la palabras reservadas PROGRAM
Nombre del Programa , END_PROGRAM. En la figura 2.3 se muestra un programa
típico.

Figura 2.3 . Estructura de un POU. Fuente [7]

Tipos de datos

Se tienen dos tipos:

- Datos Elementales

- Datos Derivados

Tipos de Datos Elementales:

Binarios, de longitud Bit, Byte (octetos) y Word (doble octeto) . Fecha /Hora,
String (cadenas) y Enteros. En la tabla 2.3, se observa la descripción de los tipos de
datos elementales. Los datos elementales se inicializan por medio del operador “ := ”. En
el ejemplo anterior, A: INT:=27 .
12

TABLA 2.1 Datos Elementales

TIPO DE
ENTERO SINT_EXP
NOMBRE Short Integer explicit; Lectura o escritura de
2.1 DESCRIPCION 0VALOR
/ -128 toPOR
+127
DATO periféricos DEFECTO /
ENTERO INT Número Entero de 16 bits. 0 /RANGO
-32 768 a
BINARIO BOOL Toma el valor 0 (FALSE) o 1 (TRUE) +32 7670
ENTERO USINT Unsigned Short Integer; entero corto sin 0 / 0 a 255
BINARIO BOOL R_EDGE Detecta el flanco de subida de una señal.
signo 0
ENTERO USINT_EXP Toma el valor
Unsigned 1 (TRUE)
Short Integer; entero corto sin 0 / 0 a 255
BINARIO BOOL F_EDGE DetectaLectura
signo. el flanco de bajadadedeperiféricos
o escritura una señal. 0
ENTERO UINT Toma el valor
Unsigned 0 (FALSE)
Integer; entero sin signo 0 / 0 a 65 535
BINARIO
Tiempo BOOL_EXP
TIME Toma el valor
Duración 0 (FALSE)
de un evento o 1 (TRUE).
en segundos. 0
T#0s
DATE Lectura o escritura de periféricos.
Año-Mes-Día D#1900-01-01
FECHA /
BINARIO BYTE Secuencia de 8 bits 0
HORA
BINARIO/ TIME_OF_DAY
FECHA BYTE_EXP Horas : minutos
Secuencia : segundos
de 8 bits. Lectura o escritura de TOD#00:00:00
0
HORA periféricos.
BINARIO/ DATE_AND_TIME
FECHA WORD Secuencia
Fecha de 16
: Hora: bits. : segundos
minutos 0
DT#1900-01-
ENTERO
HORA SINT Short Integer; Entero corto 0 01-00:00:00
/ -128 to +127
CADENA STRING Cadena de caracteres, longitud máxima 253 ' ' (cadena
vacia)
Tipos de Datos Derivados:

Permite declarar datos personalizados a partir de los datos elementales. Se utiliza


las palabras reservadas TYPE, END_TYPE para este fin. En la figura 2.4 se observa un

ejemplo.

Figura 2.4 Ejemplo de datos derivados.

Declaración de datos tipo arreglo

Varios datos elementales o derivados, del mismo tipo, pueden ser combinados en
un arreglo utilizando la palabra reservada ARRAY. En la figura 2.5 se da un ejemplo.
13

Figura 2.5 Ejemplo de declaración de datos tipo arreglo.

Variables

Son unidades de memoria donde se almacenan datos internos del programa cuyo
contenido puede cambiar dinámicamente o para almacenar información proveniente de
direcciones físicas del PLC tales como: entradas y salidas, módulos de comunicación,
periféricos y otros. Las variables se identifican con un nombre. El nombre se inicia con
una letra (a-z) o un carácter _ . Pueden ser cadenas de letras mayúsculas o minúsculas,
números y el carácter _. La máxima longitud de la cadena es de 64 caracteres.

Tipos de Variables:

Se tienen locales, globales, y para uso con funciones o bloques de funciones. En


la tabla 2.4 se detallan los tipos de variables disponibles.

TABLA 2.2 Variables

DECLARACIÓN DE VARIABLES USO


VAR Variable local, es valida solamente donde fue
END_VAR declarada.
VAR_GLOBAL Valida en programas, funciones y bloques de
END_VAR funciones
VAR_EXTERNAL Si se usa variable global dentro de un bloque de
END_VAR función se declara como “VAR- EXTERNAL “
con el mismo nombre.
VAR_INPUT Se usa para declarar las variables de entrada a una
END_VAR función o bloque de función.
VAR_ OUTPUT Variable de salida de un bloque de función.
END_VAR
VAR_IN_OUT Cuando una variable IN_OUT es leída , es
END-VAR procesada y el resultado es retornado en la misma
variable por el bloque de función.
TYPE Permite declarar datos derivados.
EN_TYPE
14

Atributos:

Una variable local o global puede ser completada con los atributos mostrados en

la tabla 2.5.

TABLA 2.3 Atributos

ATRIBUTOS: USO

RETAIN Declara una variable local o global como retentiva,


mantiene el ultimo valor, cuando el PLC es parado.
No aplicable al PLC PS4- 141-MM1.
CONSTANT Declara una variable local o global como una
constante.
AT Permite acceder a direcciones físicas del PLC

Lenguajes de programacion:

El controlador lógico programable PS4-141-MM1 soporta tres tipos de lenguajes


definidos por la norma IEC-61131-3: Lista de instrucciones, Diagrama en escalera y
Diagrama de bloques.

Lista de Instrucciones

La lista de instrucciones (IL o AWL) es un lenguaje de bajo nivel, similar al


lenguaje ensamblador. Con IL solo una operación es permitida por línea (ej. almacenar
un valor en un registro). Este lenguaje es adecuado para pequeñas aplicaciones y para
optimizar partes de una aplicación.

• Bloques de función normalizados: en la tabla 2.4 se observa algunas de los bloques

de funciones normalizadas y a continuación los bloques básicos.


15

TABLA 2.4 Bloques de función normalizados

OPERADOR DESCRIPCION
R TRIG Analisis flanco positivo
F –TRIG Analisis flanco negativo
RTC Reloj calendario

Temporizador: retardo de conexión (ON DELAY): En la tabla 2.5 y en la

figura 2.21 se describe el temporizador TON.

TABLA 2.5 Temporizador TON

Función del Temporizador: Retardo de conexión (ON DELAY)


bloque
Mnemónico TON
IN: Entrada. Dato tipo BOOL. PT: Duración del retardo. Dato tipo TIME.
Parámetros Q: Salida. Dato tipo BOOL. ET: Tiempo actual. Dato tipo TIME.
Descripción La salida Q se retarda el tiempo especificado PT. Q existe mientras exista IN.

TON
BOO IN BOO
Q
TIME TIME

PT
a) b)
T(PT)

Figura 2.6 Temporizador TON, a) Símbolo grafico. b) Diagrama de tiempo.


16

Temporizador: retardo de desconexión (OFF DELAY): en la tabla 2.6 y en la

figura 2.7 se describe el temporizador TOFF.

TABLA 2.6 Temporizador TOFF

Función del Temporizador: Retardo a desconexión (OFF DELAY)


bloque
Mnemónico TOF
Parámetros IN: Entrada. Dato tipo BOOL. PT: Duración del retardo. Dato tipo TIME.
Q: Salida. Dato tipo BOOL. ET: Tiempo actual. Dato tipo TIME.
Descripción La salida Q se conecta cuando existe IN. Y sigue conectada un tiempo especificado
PT, después que IN ya no existe.

a) b)

Figura 2.7 Temporizador TOFF, a) Símbolo grafico. b) Diagrama de tiempo.

Temporizador Impulso: en la tabla 2.7 y en la figura 2.8 se describe el


temporizador TP.

TABLA 2.7 Temporizador TP

Función del Temporizador: Impulso


bloque
Mnemónico TP
IN: Entrada. Dato tipo BOOL. PT: Duración del retardo. Dato tipo
Parámetros TIME.
Q: Salida. Dato tipo BOOL. ET: Tiempo actual. Dato tipo TIME.
17

Descripción La salida Q se activa cuando exista IN. Se mantiene activa un tiempo


especificado PT, independientemente de IN.

a) b)

Figura 2.8 Temporizador TP, a) Símbolo grafico. b) Diagrama de tiempo.

Contador Ascendente: en la Tabla 2.8 se describe el contador CTU

TABLA 2.8 Contador CTU


Función del Contador Ascendente
bloque
Mnemónico CTU
Parámetros CU: Entrada. Dato tipo BOOL. ReSeT: Limpiar a cero. Dato tipo BOOL.
PV: Limite de conteo. Dato tipo INT. Q: Salida. Dato tipo BOOL. CV: conteo actual.
Dato tipo INT
Descripción Cada flanco de subida en la entrada CU incrementa la cuenta en uno. La salida Q es
colocada en “ 1” cuando alcanza el valor de conteo establecido en PV. El conteo es re
inicializado a “0” con la presencia de un “1” en ReSet.

Símbolo
Grafico
18

Contador Descendente: en la Tabla 2.9 se describe el contador CTD

TABLA 2.9 Contador CTD

Función del Contador Descendente


bloque
Mnemónico CTD
Parámetros CD: Entrada. Dato tipo BOOL. Load: señal de carga. Dato tipo BOOL.
PV: Valor inicial. Dato tipo INT. Q: Salida. Dato tipo BOOL. CV: conteo actual.
Dato tipo INT
Descripción Cada flanco de subida en la entrada CD decrementa en uno, el valor inicial establecido
en PV. La salida Q es colocada en “ 1” cuando alcanza el valor de conteo <= 0. El
valor inicial PV se carga en el contador de un “1” en Load.

Símbolo
Grafico

Contador Descendente Ascendente: en la Tabla 2.10 se describe el contador


CTUD

Tabla 2.10 Contador CTUD

Función del Contador Descendente Ascendente


bloque
Mnemónico CTUD
CD: Entrada. Dato tipo BOOL. Load: señal de carga. Dato tipo BOOL.
PV: Valor inicial o de conteo. Dato tipo INT. QU: Salida conteo ascendente. Dato
Parámetros tipo BOOL. QD: Salida conteo descendente. Dato tipo BOOL. CV: conteo actual.
Dato tipo INT. ReSeT: Limpiar a cero. Dato tipo BOOL
Descripción Cada flanco de subida en la entrada CD decrementa en uno, el valor inicial
establecido en PV. La salida QD es colocada en “ 1” cuando alcanza el valor de
conteo <= 0. El valor inicial PV se carga en el contador de un “1” en Load. Cada
flanco de subida en la entrada CU incrementa la cuenta en uno. La salida QU es
colocada en “ 1” cuando alcanza el valor de conteo establecido en PV. El conteo es
re inicializado a “0” con la presencia de un “1” en ReSet.
19

Tabla 2.10 Contador CTUD (continuación)

Símbolo Grafico

• Estructura de una Instrucción: una secuencia de instrucciones en Lenguaje LI (IL)


comienza con un operador de carga LD o LDN y termina hasta que una nueva
instrucción de carga es usada. En la figura 2.9 se muestra la estructura de una
instrucción.

Etiqueta Operador Operando Comentario


L1 : LD %I0.0.0.0.0 Carga una entrada en el registro de trabajo

Etiqueta: Destino de una instrucción de salto.


Operador: Función o Bloque de función.
Operando: Variable o dirección física, previamente declarada
Comentario: Información sobre
Figura 2.9laEstructura
operación de una instrucción.

Ejemplos de programacion con Listas de Instrucciones

Ejemplo 1: se quiere encender y apagar un motor controlado por el PLC,


utilizando un pulsador de arranque y un pulsador normalmente cerrado para la parada.
Realizar el programa usando enclavamiento y cuando se active el pulsador START el
motor se apague 2 segundos después.. En la figura 2.10 la solución. Fuente [7].
20

Solución: Usando enclavamiento y temporizador.

Entradas: %I0.0.0.0.0 : pulsador de arranque.


%I0.0.0.0.1 : pulsador de parada
Salidas: %Q0.0.0.0.0 : motor

PROGRAM PRUEBA3
VAR
START AT %I0.0.0.0.0 : BOOL ;
STOP AT %I0.0.0.0.1 : BOOL ;

MOTOR AT %Q0.0.0.0.0 : BOOL ;


PARADA: BOOL; (*Variable interna*)
RETARDO:TON;
DURACION : TIME := T#2S ;
END_VAR
MOTOR AT %Q0.0.0.0.0 : BOOL ;
PARADA: BOOL; (*Variable interna*)
RETARDO:TON;
DURACION : TIME := T#2S ;
END_VAR

LD START
OR ( MOTOR
)
AND STOP
ANDN PARADA
ST MOTOR
CAL RETARDO(
IN := START,
PT := DURACION
|
PARADA := Q,
:= ET
)

END_PROGRAM

Figura 2.10 Ejemplo 1

Se puede observar en el ejemplo anterior la manera de utilizar un bloque de


función temporizador, invocándolo con la instrucción CAL . También, podemos decir
que a medida que la tarea de control se hace mas compleja, la sintaxis y la edición del
programa usando Listas de instrucciones es cada vez mas engorrosa y pesada. El PLC
PS4-141-MM1, viene provisto con el sotfware Sucosoft S40 V2.0 donde se pueden
utilizar los lenguajes de programación gráficos como: diagrama de escalera y diagrama
21

de funciones, con un control de sintaxis automático. Para mayores detalles sobre el


lenguaje Listas de instrucciones por favor consultar el manual de referencia.

Funciones definidas por el usuario: las funciones como se dijo anteriormente


pueden tener múltiples entradas y una sola salida. La función se invoca por su nombre y
recibe el primer parámetro de entrada del registro de trabajo, los demás son recibidos
después del nombre seguidos por coma. En la figura 2.11 un ejemplo de una función
definida por el usuario y de un programa que la usa.

Ejemplo 2 : se requiere una función que retorne la suma de tres números enteros.
Fuente [7].

Figura 2.11 Ejemplo 2

Bloques de función definidas por el usuario: los bloques de funciones como se

dijo anteriormente pueden tener múltiples entradas y múltiples salidas.

Ejemplo 3: se requiere un bloque de función que retorne la multiplicación y la resta


de dos números enteros. En la figura 2.12 la solución. Fuente [7].
22

Figura 2.12 Ejemplo 3

Funciones definidas por el fabricante: son operadores que el fabricante agrega


al juego de instrucciones contempladas en la norma IEC-61131-3, con el fin de
aprovechar al máximo el hardware del PLC y ofrecer mayor potencia tales como:
manejo de interrupciones, tratamiento de cadenas y otras. Para mayores detalles
consultar el manual de referencia.[5]

Bloques de funciones definidas por el fabricante: el fabricante agrega bloques


de funciones adicionales para el manejo de: cadenas de caracteres, comunicaciones,
periféricos, Interfase humano maquina.(HMI), lectura y escritura en memoria,
conversión de códigos, sistema operativo del PLC, alarmas, conteo y comparación, fecha
y hora, registros de desplazamiento. Este último ampliamente utilizado en
automatización será tratado en detalle a continuación. El resto puede ser consultado en
el manual del fabricante.

Se disponen de tres tipos de registros de desplazamientos bidireccionales: SR_X,


cuyo tamaño de datos es un bit. SRB_X, cuyo tamaño de datos es un byte. SRW_X, cuyo
23

tamaño de datos es de tipo word. Su funcionamiento es idéntico excepto por el tamaño


de dato que manejan. Por esa razón, solo se describe en la tabla el registro de
desplazamiento SR_X.

Lenguajes de Programación Gráficos:

El PLC PS4-141-MM1 puede ser programado utilizando dos lenguajes de


programación gráficos: el Diagrama de Funciones y el Diagrama de Escalera.

Un programa en Diagrama de Funciones o en Diagrama de Escalera, está


compuesto por una sección para declarar las variables, en forma de texto, similar al
lenguaje Lista de Instrucciones y una sección de instrucciones donde los elementos de
software son representados por símbolos gráficos y se ejecutan en una red.

Una red consiste en combinaciones de funciones para resolver una tarea de


control. Un programa en su sección de instrucciones contiene una serie de redes
numeradas consecutivamente con una etiqueta (opcional) que se ejecutan en forma
secuencial.

Diagrama de funciones: el diagrama de funciones (function block diagram o


FBD) es un lenguaje gráfico que permite programar elementos que aparecen como
bloques para ser cableados entre si de forma análoga al esquema de un circuito. FBD es
adecuado para muchas aplicaciones que involucren el flujo de información o datos entre
componentes de control.
24

TABLA 2.11 Diagrama de funciones

Función del Registro de desplazamiento


bloque
Mnemónico SR_X
Parámetros ForwardPulse: Entrada de reloj. Dato tipo BOOL. ForwardData: Entrada de
datos hacia adelante. Dato tipo BOOL. BackwardPulse: : Entrada de reloj. Dato
tipo BOOL.BackwardData: Entrada de datos hacia atrás. Dato tipo BOOL.
ReSeT: Limpiar a cero. Dato tipo BOOL. Output_1:Salida 1. Output_n: Ultima
salida.
Descripción Son memorias de un bit encadenadas en serie. La longitud del registro va de 1–128.
Cada flanco de subida en la entrada ForwardPulse introduce el dato presente en la
entrada ForwardData en la primera memoria Output_1 y el contenido original es
desplazado hacia delante, esto se repite con cada flanco de reloj, hasta que el dato
sale por Output_n y se pierde. Cada flanco de subida en la entrada
BackwardPulse introduce el dato presente en la entrada BackwardData en la
ultima memoria Output_n y el contenido original es desplazado hacia atras, esto se
repite con cada flanco de reloj, hasta que el dato sale por Output_1 y se pierde.

Símbolo
Grafico

Diagrama de escalera: el diagrama de escalera (ladder diagram LD) permite una


trascripción directa de los esquemas eléctricos de relés ( circuitos de mando) de uso
común en la automatización previa a la aparición de los PLC, a través de un juego
estandarizado de símbolos de programación. En el estándar IEC los símbolos han sido
racionalizados (se ha reducido su número). En las tablas siguientes se muestra los
símbolos gráficos permitidos.
25

TABLA 2.12 Símbolos gráficos de instrucciones de salto

SÍMBOLO GRÁFICO D. BLOQUES SÍMBOLO GRÁFICO D. ESCALERA


Mnemónico

JMP

JMPC

JMPCN

TABLA 2.14 Símbolo gráficos de instrucciones de Retorno

Mnemónico SÍMBOLO GRÁFICO D. 2.1 SÍMBOLO GRÁFICO D.


BLOQUES ESCALERA

RET

RETC

RETCN
26

TABLA 2.13 Símbolo gráficos de instrucciones de Asignación

SÍMBOLO GRÁFICO D. SÍMBOLO GRÁFICO D.


Mnemónico
BLOQUES ESCALERA
Variable

ST :=

STN

Variable

S
S

Variable
R
R
27

TABLA 2.15 Símbolos gráficos de instrucciones Lógicas.

TABLA 2.16 Símbolos gráficos de instrucciones aritméticas, lógicas, comparaciones, funciones y bloques
de funciones.
28

Ejemplo 4: se quiere encender y apagar un motor controlado por el PLC,


utilizando un pulsador de arranque y un pulsador normalmente cerrado para la parada.
Realizar el programa usando enclavamiento y las instrucciones SET y RESET. Utilice
Diagrama de Funciones. En las figuras 2.13 y 2.14 se da la solución. Fuente [7].

Figura 2.13 Sección de declaración de variables Ejemplo 4

a) Solución: Usando enclavamiento b) Solución: Usando SET y RESET

Figura2.14. Sección de instrucciones Ejemplo 4. Parte a y Parte b


29

Ejemplo 5: se quiere encender y apagar un motor controlado por el PLC,


utilizando un pulsador de arranque y un pulsador normalmente cerrado para la parada.
Realizar el programa usando enclavamiento y las instrucciones SET y RESET. Utilice
Diagrama de Escalera. En las figuras 2.15 y 2.16 la solución. Fuente [7].

Entradas: %I0.0.0.0.0 : pulsador de arranque.


%I0.0.0.0.1 : pulsador de parada
Salidas: %Q0.0.0.0.0 : motor

* DECLARACIÓN DE VARIABLES*

VAR
START AT %I0.0.0.0.0 : BOOL ;
STOP AT %I0.0.0.0.1 : BOOL ;
MOTOR AT %Q0.0.0.0.0 : BOOL ;

Figura 2.15 Sección de declaración de variables Ejemplo 5

a) Solución: Usando enclavamiento b) Solución: Usando SET y RESET

Figura 2.16 Sección de instrucciones Ejemplo 5. Parte a y Parte b


30

Ejemplo 6: se quiere obtener un valor por la entrada analógica cero (0) y enviarlo
a la salida analógica del PLC. Utilice Diagrama de Escalera. En las figuras 2.17 y 2.18
la solución.

Figura 2.17 Sección de declaración de variables Ejemplo 6.

Figura 2.18 Sección de instrucciones Ejemplo 6.

Es importante aclarar en este ejemplo que el escalamiento que existe entre la

entrada analógica con respecto a la salida analógica se debe al número de bits que

manejan.
31

Referencias bibliográficas

[1] F.J. Muños, A. Rodríguez y otros. Automatización con Grafcet, España, Universidad
de Málaga, 1999.

[2] Joseph Balcells y José Romeral. Autómatas programables, México, Alfaomega,


1998.

[3] Jhon W. Webb y Ronald Reis, Programables controllers, New Jersey, Prentice Hall,
1995.

[4] Electrónica Venetta. Manual de instalación PLC-5 A/EV, Italia, ElecttronicaVeneta,


2001.

[5] Jurguen Herrmann. Language elements for PS4-150/200/300 and PS4-416 Sucosoft
S40 programing software. Klockner Moeller GmbH, Bonn, 1999.

[6] Rafael Chacón, Programación en Labview. Universidad Nacional Experimental del


Táchira, San Cristóbal, 2000.

[7] Juan Vizcaya. Diseño de un Entrenador Virtual de Procesos, Universidad Nacional


Experimental del Táchira, San Cristóbal, 2002.

[8] Software para la simulación de procesos PROSIMAX. [Documento en línea].

Disponible: http://isa.uniovi.es/genia/spanish/app/prog/prosimax.htm .

[9] Curso básico de Autómatas Programables, Situación y Tendencia [Documento en


línea] Disponible: http://users.servicios.retecal.es/avalleandres/index.htm.

[10] José Angulo y otros. Microcontroladores PIC, Diseño practico de aplicaciones,


segunda parte: PIC16F87X. México. McGraw-Hill.2000.

También podría gustarte