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 AND LOAD I2.2 TO LOAD TO STEP 15 IF THEN IF THEN SET (FW6 > LOAD TO SET STEP 20 IF THEN N LOAD SET STEP 25 IF THEN N LOAD SHL TO STEP 30 IF THEN I2.2 RESET JMP TO

Arranque I1.0 Botn de Arranque

V200 La lnea es indexada 2 Segundos TPO a la Preseleccin Timer 0 V0 supone nueva produccin corriendo FW6 no partes en ninguna estacin 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 T0 V0 timer de maquinado hecho ? tiempo terminado apagar todos los motores de la estacin O2.0 arrancar lnea indexado

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 esta completo el index ? nuevo punto de index O2.0 Detener index del motor 15 volver al Step 15 por ms

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 Resolucin STEP 1 IF THEN TO NOP LOAD LOAD TO LOAD TO STEP5 IF 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 , 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)

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

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 I1.4 SET I1.6 SET

CW2 O1.1 C2 O1.1 20 C2 O1.1 O1.2 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 TO LOAD TO STEP5 IF AND AND AND AND N SET JMP SET JMP TO N RESET JMP SET SET JMP TO C2 TO NOP LOAD LOAD 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

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

TO

INC RESET

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

TO AND SET JMP TO AND N SET JMP SET JMP SET JMP TO TO 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

RESET RESET RESET JMP TO

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 )