Está en la página 1de 11

Curso sobre Controladores Lgicos

Programables (PLC).
Por Ing. Norberto Molinari.
Entrega N 18.

Capitulo 4, continuacin...
Shft Registers
El hecho de que los Flags puedan direccionarse sobre la estructura de una Word asi como
desde el punto de vista de una estructura de Bits estos resultan como un medio conveniente
para construir registros de desplazamiento (shifl registers).
Como un ejemplo, podramos necesitar programar una lnea de maquinado en las cuales
filas de moldes sean cargadas en la estacin 0 y a continuacin varias operaciones deban
ser llevadas a cabo a lo largo de las siguientes 15 estaciones. La mquina completa cicla
cada 2 segundos y durante ese tiempo una nueva fila de moldes puede o no ser cargada en
la estacin 1... lo que puede verificarse por medio de un sensor.
Las estaciones 1-15 no incluyen sensores, pero se requiere que solamente opere la estacin
cuando haya una parte en el lugar.
Esto presenta una situacin ideal para usar un registro de desplazamiento.
Usaremos la Flag Word 6 para tener el seguimiento de cuales estaciones contienen
materiales a ser maquinados. La instruccin Shifl Left (SHL) - desplazar a la izquierdase usar para mover realmente los bits individuales dentro del Flag Word.
Se usarn las siguientes I/O:
lnput 1.0
Input 1.1
lnput 2.2
Output 2.0
Outputs 1.0 1.15

Botn de Marcha
Sensor de Partes en la Estacin 0
se indexa Lnea Transfer
lndexa lnea de maquinado
controla la operacin de maquinado
en las estaciones 0 15
respectivamente

STEP 10
IF
THEN

Arranque
I1.0 Botn de Arranque
AND
LOAD
I2.2
V200 La lnea es indexada
2 Segundos
TPO a la Preseleccin Timer 0
V0
supone nueva produccin
corriendo
FW6 no partes en ninguna estacin

TO
LOAD
TO
STEP 15
IF
THEN
IF
THEN

STEP 20
IF
THEN

SET

esperar hasta que algunas


Partes estn listas
I1.1 parte fue encontrada en est. 0
F6.0 memorizarlo
alguna parte para procesar?
V0 ) algo existe !
FW6
OW1 arrancar motor en estaciones
con partes
T0
arrancar timer proceso

N
LOAD

T0
V0

SET
(FW6
>
LOAD
TO

SET
STEP 25
IF
THEN

STEP 30
IF
THEN

timer de maquinado hecho ?


tiempo terminado
apagar todos los motores
de la estacin
O2.0 arrancar lnea indexado

SHL
TO

esperar hasta que el


index arranque
I2.2 arrancado al index
FW6 obtener el esta o todas
estacionas
mover bits para adaptar partes
FW6 y almacenarlo

I2.2
RESET
JMP TO

esta completo el index ?


nuevo punto de index
O2.0 Detener index del motor
15
volver al Step 15 por ms

N
LOAD

Funciones Especiales del lenguaje STL.


Aqu se suministra informacin bsica concerniente a las siguientes reas:
Entradas Salidas Analgicas
Redes
Controlando Posicin
FieldBus
Algunas de estas funciones pueden no aplicarse a todos los modelos de controladores y
pueden manejarse de diferentes formas dependiendo del modelo de controlador.
Aqu no se pretende explicar profundamente estas funciones, sino para explicar las
generalidades y dnde puede buscarse informacin especfica sobre el tema.

Entradas / Salidas Analgicas


Contrariamente a las Entradas /Salidas digitales, (1 o 0), las seales analgicas
toman la forma de una seal variable continuamente dentro de un rango predefinido.
Ya que la CPU es solo capaz de funcionar internamente usando seales digitales, conectar
un PLC a entradas analgicas o salidas analgicas requiere componentes de hardware
especial.

Seales Analgicas Comunes


Hay varios rangos, o tipos de seales anlogas que son populares en el control
industrial. Si excluimos seales analgicas especializadas del tipo relacionado
al control de temperatura, los siguientes rangos comunes quedan:
+/- 10 volts
0/4 a 20 miliamperes de corriente

Para que las entradas y salidas analgicas sean tiles, el software de programacin debe
suministrar los medios de llevar a cabo las funciones deseadas.
Las funciones analgicas bsicas usadas en control industrial incluyen:

setear un nivel analgico de salida basado en un valor digital


convertir una seal de entrada analgica en un valor digital

Para efectuar estas funciones dentro del lenguaje de programacin del PLC usado, se usan,
en general, procedimientos especializados CFM o FN. La informacin general sobre los
CFM (Call Function Module)

Redes
En el contexto de este manual y del lenguaje STL, Redes se refiere al hardware y software
que proporciona los medios para interconectar sistemas de control que son de otra forma
unidades independientes.
Una Red es tpicamente empleada para conectar varios elementos de un sistema de
procesamiento distribuido en el cual cada sub-sistema controla una especfica seccin
(fsica o lgica) de la tarea total.
El Uso de una red facilita a estas secciones combinarse de una manera ordenada. sin
importar el lenguaje de programacin a ser usado, hardware especializado as como
software de red se requieren para implementar la red.
Dependiendo del modelo de controlador, el hardware especializado puede tomar la forma
de un procesador de red o un mdulo que contiene las rutinas especializadas de software
que pueden ser direccionadas por el lenguaje STL.

Funciones de Red
Las funciones tpicas que deben ser llevadas a cabo en una red incluyen:

inicializacin de estaciones de red


Requerir a otra estacin ejecutar un comando
Gerenciamiento de transmisiones de red

La interfase entre el lenguaje STL y el software especializado de red es efectuado mediante


la instruccin CFM.

Control de Posicionamiento
Puede ser necesario controlar rpidamente y con precisin la posicin de componentes
mecnicos como partes de un sistema de control. Tales movimientos son generalmente
llevados a cabo usando varios tipos de motores. Dependiendo de los requerimientos de:

Velocidad
Precisin
Efectividad del costo
Confiabilidad

Diversos tipos de motores estn disponibles. Estas elecciones incluyen motores de pasos y
servo motores as como motores de mltiple velocidad los que pueden incorporar
componentes de frenado. Variaciones adicionales pueden o pueden no incorporar control a
lazo cerrado.
Las ms precisas (y costosas) soluciones tales como servo motores incorporan
microprocesadores dedicados, mientras que soluciones menos sofisticadas pueden confiar
en la velocidad e inteligencia del controlador programable.
A causa de la amplia variedad de sub-sistemas de posicionamiento que pueden conectarse,
no hay instrucciones STL dedicadas para posicionar. Sin embargo, Festo puede suministrar
programas especializados y mdulos de programa que han sido optimizados y/o adaptados
para control de posicin.

Feld Bus
Introduccin al Field Bus
El Field Bus est basado en el estndar elctrico RS485, el cual define los parmetros de la
estructura de un bus serie de alta velocidad.
Debe hacerse una diferenciacin entre los elementos que forman la estructura del bus
interna del controlador y el sistema de Field Bus.
Las I/O's estndar estn conectadas de forma muy cercana, tanto elctrica como fsicamente
a la estructura de bus paralela interna del controlador.
Mientras que esta estructura provee accesos de alta velocidad, su naturaleza pone lmites al
hardware en cuanto al nmero de I/O nicas direccionables posibles.
El concepto de Field Bus utiliza el antes mencionado bus serie para unir una estacin
Maestra (Master) y Mltiples estaciones esclavas a velocidades de transmisin hasta
375,000 bits por segundo.
Ya que estas estaciones pueden localizarse en relativamente largas distancias (300-1200
metros), stas son a menudo genricamente referidas como "I/O Remotas".
Las altas velocidades de transmisin, cuando se combinan con el ahorro en costos al usar
un par de cables trenzados para la conexin del bus, hace que el concepto de Field Bus se
vuelva realmente atractivo.
lnputs y Outputs localizadas en las estaciones esclavas del Field Bus pueden ser
interrogadas y controladas por la estacin Field Bus Master. El lenguaje STL permite
acceder a estas I/O's usando las mismas instrucciones SET y RESET que usan las I/O
estndar ubicadas fsicamente en el controlador

Para acomodar la configuracin extendida usando el Field Bus, la sintaxis de instrucciones


I/O debe tambin ser extendida. lnputs y Outputs son por lo tanto direccionadas de la
siguiente forma:
lpa[,m.s] para lnputs
Opa[.m.s] para Outputs
donde:
p = Direccin de sistema del procesador Master del Field Bus
a = Direccin estacin esclava de Field Bus [1... 99]
m =Direccin de modulo opcional [0... 15]
s = Nmero de terminal opcional [0...15]

Programas de Ejemplo
Aqu presentamos algunos ejemplos de problemas de control y soluciones usando el
lenguaje STL. Los ejemplos presentados son generalizados- para ser tiles al lector sin
importar que modelo de controlador en particular vaya a usar.
La mayora de las tareas de control se dividen en 3 categoras:

Completamente secuencial
Mayormente secuencial con algunos eventos aleatorios
Completamente aleatorio

Adems, en muchas situaciones se presenta la situacin de tener que manejar varias


secuencias de control simultneamente. Los siguientes ejemplos presentarn soluciones
para todas las posibilidades descriptas anteriormente.

Ejemplo 1: Completamente Secuencial


Las tareas completamente secuenciales son especialmente aptas para el lenguaje STL a
causa de la estructura implcita del Step.
La tarea secuencial consiste en controlar 3 cilindros neumticos por medio de 3 vlvulas
solenoide 3/2 en una secuencia definida. Cuando se aplica alimentacin de energa al
sistema y el Botn de Arranque es presionado, el cilindro A debe extenderse
completamente por 3 segundos y luego retraerse.
A continuacin el cilindro B debe extenderse completamente y retraerse cuatro
veces y luego extenderse completamente y permanecer extendido.

Finalmente el cilindro C, debe extenderse completamente en cuyo momento el cilindro A


debe otra vez extenderse. Despus el cilindro A es otra vez extendido, y todos los tres
cilindros se retraern y esperarn la presin del botn de arranque.
Se utilizan las siguientes conexiones:
Input 1.0
lnput 1.1
lnput 1.2
lnput 1.3
lnput 1.4
lnput 1.5
lnput 1.6
Output 1.0
Output 1.1
Output 1.2

Botn de Arranque
Cilindro A retrado
Cilindro A extendido
Cilindro B retrado
Cilindro B extendido
Cilindro C retrado
Cilindro C extendido
Cilindro A extendido (solenoide)
Cilindro B extendido (solenoide)
Cilindro C extendido (solenoide)

Resolucin
STEP 1
IF
THEN
TO

NOP
LOAD
LOAD
TO
LOAD
TO

STEP5
IF

THEN
STEP 10
IF
THEN
STEP 12
IF
THEN
STEP 15
IF
THEN

I1.0
AND
AND
AND
SET
I1.2
SET
N
RESET
I1.1
SET
SET

inicializacin en el arranque
hacer siempre esto
V0
incondicionalmente apagar todas las
OW1 Outputs
V300 Preparar Timer 0 para 3 segundos
TP0 unidades = 0.01 segundos
V4
Preparar Counter 2
CP2
asegurarse todas las posiciones ok
Botn Arranque Presionado
I1.1 Cilindro A est retrado
I1.3 Cilindro B est retrado
I1.5 Cilindro C est retrado
Ol.0 comenzar extendiendo cilindro A
Cilindro A completamente extendido?
ahora est totalmente extendido
T0
arrancar timer 3 segundos
esperar 3 segundos
T0
si timer complet tiempo
O1.0 comenzar retraer cilindro A
Cilindro A completamente retrado?
Cilindro A est retrado
C2
set counter 2 - 4 cuentas
O1.1 comenzar extender cilindro B ,

STEP 20
IF
THEN
STEP 22
IF
THEN
JMP
IF
AND
THEN
STEP 30
IF
THEN
STEP 35
IF
THEN
STEP 40
IF I1.2
THEN
JMP

I1.4
INC
RESET
I1.3
AND
SET
TO
I1.3
N
SET

CW2
O1.1
C2
O1.1
20
C2
O1.1

I1.4
SET

O1.2

I1.6
SET

O1.0

RESET
RESET
RESET
TO

O1.0
O1.1
O1.2
5

Cilindro B completamente extendido?


ahora est completamente extendido
contar este ciclo
comenzar retraer cilindro B
es esta la 4ta extensin ?
Cilindro B retrado y 4
carreras no terminado
comenzar a extender cilindro B
ciclos continuos
Cilindro B retrado y 4
carreras hechas
comenzar a extender cilindro B
Cilindro B completamente extendido?
Cilindro B completamente extendido 5 x
comenzar extendiendo cilindro C
Cilindro C completamente extendido?
Cilindro C completamente extendido
Comenzar extendiendo cilindro A
Todos cilindros extendidos?
cilindro A completamente extendido
tambin
retraer Cilindro A
retraer Cilindro B
retraer Cilindro C
volver al Step 5

Ejemplo 2: Mayormente Secuencial con eventos Aleatorios


Mientras que algunas mquinas simples pueden ser completamente secuenciales en la
operacin, habra una o ms excepciones que cambian la clasificacin de las tareas de
modo de no ser totalmente secuencial , Si la mayora de las tareas de control fueran
secuenciales y el modelo del controlador lgico permitiese Multitarea, una solucin posible
seria dividir la parte secuencial y los procesos de procesamiento aleatorio en programas
separados.
Sin embargo es posible manejar esas situaciones col un nico programa STL.
Si el evento aleatorio (o los eventos aleatorios) a ser monitoreados son pocos y el balanceo
de los programas es relativamente simple, entonces podra manejarse los requerimientos
adicionando una Sentencia de programa en cada Step.
Otras posibles soluciones incluyen el uso de procesamiento por interrupciones (slo
soportada en algunos controladores) o construyendo la secuencia entera como una seccin
de programa en paralelo (barrido). Este mtodo se demostrar en el ejemplo 3

El Ejemplo 2 ilustra la insercin de una Sentencia de programa en cada Step existente del
programa presentado en el Ejemplo 1 como medio de detectar y responder a un simple
botn pulsador de "pausa"; el cual al ser presionado resulta en la suspensin de la ejecucin
del programa hasta que este est liberado nuevamente.
Resolucin
STEP 1
IF
THEN
TO

NOP
LOAD
LOAD

TO
LOAD
TO
STEP5
IF

THEN
STEP 10
IF
THEN
IF
THEN
STEP 12
IF
THEN
IF
THEN
STEP 15
IF
THEN
IF
THEN
STEP 20
IF
THEN
IF
THEN

AND
AND
AND
AND N
SET
JMP

TO

SET
JMP TO
N
RESET
JMP

TO

SET
SET

C2

JMP

TO

INC
RESET

inicializacin en el arranque
hacer siempre esto
V0
incondicionalmente apagar todas las
OW1 Outputs
V300 Preparar Timer 0 para 3 segundos
TP0 unidades = 0.01 segundos
V4
Preparar Counter 2
CP2
asegurarse todas las posiciones ok
I1.0 Botn Arranque Presionado
I1.1 Cilindro A est retrado
I1.3 Cilindro B est retrado
I1.5 Cilindro C est retrado
I1.7 botn de pausa no activo
Ol.0 comenzar extendiendo cilindro A
Cilindro A completamente extendido?
I1.7 botn de pausa
10
si es as quedarse ac
I1.2 ahora completamente extendido
T0
arrancar timer 3 segundos
esperar 3 segundos
I1.7 botn de pausa
12
si es as quedarse ac
T0
si timer complet tiempo
O1.0 comenzar retraer cilindro A
Cilindro A completamente retrado?
I1.7 botn de pausa
15
si es as quedarse ac
I1.1 Cilindro A est retrado
set counter 2 - 4 cuentas
O1.1 comenzar extender cilindro B ,
Cilindro B completamente extendido?
I1.7 botn de pausa
20
si es as quedarse ac
I1.4 ahora est completamente extendido
CW2 contar este ciclo
O1.1 comenzar retraer cilindro B

STEP 22
IF
THEN
IF
THEN

TO
AND
SET
JMP TO

IF
THEN
STEP 30
IF
THEN
IF
THEN
STEP 35
IF
THEN
IF
THEN
STEP 40
IF
THEN
IF
THEN

AND N
SET
JMP

TO

SET
JMP

TO

SET
JMP

TO

RESET
RESET
RESET
JMP TO

I1.7
22
I1.3
C2
O1.1
20
I1.3
C2
O1.1
I1.7
30
I1.4
O1.2
I1.7
35
I1.6
O1.0
I1.7
40
I1.2
O1.0
O1.1
O1.2
5

es esta la 4ta extensin ?


botn de pausa
si es as quedarse ac
Cilindro B retrado y 4
carreras no terminado
comenzar a extender cilindro B
ciclos continuos
Cilindro B retrado y 4
carreras hechas
comenzar a extender cilindro B
Cilindro B completamente extendido?
botn de pausa
si es as quedarse ac
Cilindro B completamente extendido 5 x
comenzar extendiendo cilindro C
Cilindro C completamente extendido?
botn de pausa
si es as quedarse ac
Cilindro C completamente extendido
Comenzar extendiendo cilindro A
Todos cilindros extendidos?
botn de pausa
si es as quedarse ac
cilindro A completamente extendido
tambin
retraer Cilindro A
retraer Cilindro B
retraer Cilindro C
volver al Step 5

En resumen, es posible manejar cantidades limitadas de condiciones en paralelo dentro de


lo que de otra forma sera un estricto proceso secuencial usando la instruccin Step.

Ejemplo 3: Eventos Completamente Aleatorios


Algunas situaciones de control no pueden organizarse en una secuencia lgica ya que las
operaciones pueden surgir en u orden totalmente aleatorio. Un ejemplo tpico de una
situacin as podra ser el control de la programacin de Puesta a Punto(Setup) de una
mquina cualquiera. La operacin es definida por el operador de la mquina presionando
distintos botones tipo pulsador, cada uno de los cuales tiene asignada una funcin nica.
El siguiente programa desarrolla el programa de Setup para una mquina de moldeo de
inyeccin de plstico.

Resolucin
STEP 10
IF NOP
THEN
LOAD
TO
STEP 20
IF
THEN
SET
IF
AND
THEN
SET
OTHRW
RESET
IF
AND
THEN
RESET
IF
THEN
SET
OTHRW
RESET
IF
THEN
OTHRW
IF
THEN

AND
SET
RESET
NOP
JMP TO

inicializacin
siempre cierto

V0
OW1 apagar todas outputs
step de barrido
I1.0 Botn pulsador cierre Molde
O1.0 Cierre de Molde
I1,1 Botn pulsador Inyecta Plstico
I2.0 Sensor Molde Cerrado
OI.3 Solenoide Inyeccin
OI.3
I1.2 Botn pulsador apertura Molde
OI.3 Inyeccin no activa
O1.0 Apertura Molde
I1.3 mecanismo Rota Tornillo
O1.1 Solenoide Rota Tornillo ,,
O1.1 mecanismo detencin tornillo
I1.4 Sensor Molde completamente
abierto
I1.5 Botn pulsador Ejector de Molde
O1.4 Solenoide Eyector de Molde
O1.4 Proceso de detencin de Eyeccin
hacer siempre
20
seguir procesando

Continuar.....
Nota de Radaccin: El lector puede descargar el curso captulo a captulo desde la seccin
Artculos Tcnicos dentro del sitio de EduDevices (www.edudevices.com.ar )

También podría gustarte