PROGRAMACION DEL PLC (Programa 000)

PROGRAMACION DEL PLC (Programa 000) I.- INTRODUCCION La misión que cumple el “autómata o PLC del equipo M.A.C.” es la de brindar la posibilidad de ej

2 downloads 71 Views 70KB Size

Story Transcript

PROGRAMACION DEL PLC (Programa 000) I.-

INTRODUCCION La misión que cumple el “autómata o PLC del equipo M.A.C.” es la de brindar la posibilidad de ejecución de un programa del tipo PLC “en paralelo” con la ejecución de otro del tipo CNC. En general, son tan diversos los tipos de máquinas existentes que la flexibilidad en la programación del PLC será fundamental. Se asigna el número de programa P000 (reservado hasta ahora) para que el equipo reconozca a este como el programa PLC a ejecutar tan pronto haya transcurrido el AUTOTEST a la puesta en marcha de la unidad de control. El equipo MAC no incluye de origen en su memoria programa P000 alguno. Será el propio fabricante de la máquina herramienta el que mediante un Programa Especial (conteniendo en su primera línea la sentencia P000) desarrollará el cometido de este. El “autómata o PLC del equipo M.A.C.” es un programa de muy diferente tratamiento con respecto a los del tipo CNC. Sus particularidades más relevantes son: a.-

Poseer una numeración especial: P000. Solo mediante el PC será posible su edición y carga en la memoria de la unidad de control. La edición de este podrá realizarse mediante cualquier editor de mercado.

b.- La transmisión del Programa se realizará desde el PC al CNC como si de cualquier otro programa se tratara. Por medio de la utilidad que se suministra con el “Paquete de Utilidades de Comunicación” se deberá efectuar la Transmisión del Programa (se recomienda emplear un nombre del tipo “PLC000.MAC” o similar). Una vez realizada la operación de transmisión, será necesario efectuar un paro y puesta en marcha del equipo (“RESET”), para que el CNC cargue al Inicio de la Memoria de Usuario el programa que fue enviado por el PC. Hecho el traslado, el programa del PLC se ejecutará continuamente siendo “llamado” periódicamente. Al efectuar el “RESET” se observará que el CNC efectúa el normal AUTOTEST. Al finalizar este, en el visualizador de la Botonera de Mandos del equipo se presenta durante unos segundos las sentencia: “PLC TRANSLATION”. Permaneciendo en este estado hasta que el traslado al inicio de la Zona de Programas de Usuario del programa del PLC haya sido completado en su totalidad. La duración de esta fase depende de lo “llena” que se encuentre la Memoria de Usuario.

#

NOTA: Mientras permanezca el mencionado mensaje en el visualizador de la Botonera de Mandos, en el monitor del PC se observará como el Autotest se detiene presentando: RAM ACCESS OK. c.- El acceso a Edición del programa P000 mediante el CNC no es posible por motivos obvios, además evitará que el usuario final pueda alterar equivocadamente su contenido. d.- Su ejecución o "primera llamada" es directa al encendido del equipo. Con ello se consigue que sofisticadas operaciones de puestas en marcha, como puedan ser las de un cabezal de un tipo u otro, sopletes, lasers, dosificadores, cambios de herramienta y/o paletización, cálculo de cotas, chorros de agua o aire, llenados de tanques o inmersiones de piezas en determinados fluidos, posicionamientos, etc…, puedan resolverse satisfactoriamente por cualquier fabricante de la Máquina Herramienta sin más que resolver la programación en cada particular caso. e.- Solo será posible detener y abortar la ejecución continuada del programa del PLC mediante la ejecución en M.D.I. (semiautomático) del comando: !8.686L0 (o !8.716L0 en la versión para WINDOWS). Una vez detenido este, solo será posible su rearme mediante un paro y nueva puesta en marcha de la unidad de control. Imprescindible será detener y abortar la ejecución del programa PLC para poder efectuar nuevamente una transmisión del programa PLC. Ver apartado V. f.- Por cuanto respecta a la programación del programa PLC se apreciará que posee un extenso y completo “Juego de Instrucciones” (ver apartado III). No obstante, ciertas limitaciones por cuanto a la capacidad de proceso son detalladas en el apartado II que deberían tenerse muy presentes a la hora de la programación del PLC. Manual de Programación del PLC

1

II.-

ACLARACIONES, RECOMENDACIONES Y SUGERENCIAS

El incorporar nuevos e importantes recursos en el CNC si bien tienen la ventaja de aportar más, mejores y significativas prestaciones, poseen el “grave” inconveniente de que con cada nueva posibilidad que se brinda, la CPU del CNC tiene más y más tareas encomendadas que deben por lo general ejecutarse en “tiempo real”. Ciertas limitaciones deben tenerse presentes por cuanto respecta al PLC: 1.- El PLC es “llamado” como otra tarea más que debe realizar el CNC. Esto es: Editar + Decodificar + gestión de ordenes M.D.I. o Manuales + "introducción/presentación" datos y, finalmente, el PLC. Esto quiere decir que el PLC comparte el tiempo de la CPU y que dependiendo de la duración de las otras tareas, el PLC poseerá una cadencia de ejecución más o menos larga y nunca FIJA o predeterminada. En particular es importante destacar que el "DECODIFICADOR" de comandos es una tarea que puede consumir un tiempo relativamente importante de CPU (máxime cuando esta activa la orden de “desactivación de aceleraciones entre movimientos consecutivos” o “comando G11” o “look Ahead” para otros). Así si ponemos el caso de que se estén decodificando consecutivas "interpolaciones helicoidales" en ABSolutas (G90) con traslación de coordenadas (G92), con factores de escala en todos los ejes de la aplicación (G30), con giro de coordenadas (G93A) y con Compensación del Radio de la Herramienta (G42/G43), apreciaremos que el panorama con el que debe actuar la unidad de control del CNC no es muy favorable por cuanto respecta a encomendarle nuevas tareas que exijan también una mínima actuación en “tiempo real”. Así pues, si se añade la ejecución del programa del PLC, se ve claro que este ralentizará la del programa del CNC y viceversa (tiempo compartido). Así pues y visto lo apuntado, deberá extremarse la atención en la confección del programa del PLC en aras de dotar al sistema global del más mínimo concepto de “tiempo real”.

#

NOTA: De hecho en máquinas LASER se desaconseja el uso del PLC que incorpora la unidad CNC y se recomienda el uso de uno de mercado el cual dispondrá de toda una CPU para su gestión particular. 2.- El PLC ejecuta "UNA sola ECUACION” cada vez que es “llamado”. Así, si la totalidad del programa PLC posee 10 “ecuaciones”, el ciclo o bucle durará 10 veces más que el de una ecuación simple.

#

NOTA: La expresión a la que se refiere el término de “ecuación” recibe la denominación de “segmento” en otros PLCs. Sin embargo, “ecuación” parece más apropiado por la similitud que posee la programación de un PLC con las “ecuaciones” que se emplean en “álgebra de Bool”. 3.- Es recomendable que cada “ECUACION” del PLC no se extienda por mucho tiempo (lo más breve posible) pues las otras tareas (las propias del CNC) poseen igual o incluso mayor importancia. No obstante, es importante englobar en una solo “ecuación” la cantidad máxima de código pues así se contribuye a que la ejecución del PLC sea más breve y por consiguiente, un "ciclo completo de PLC" se vea ejecutado en el mínimo tiempo posible. 4.- El sistema garantiza que el PLC (así como cualquier otra tarea) será llamado regularmente pero no puede fijar una cadencia exacta ("Soft Real Time" es la denominación en este tipo de situaciones). La “cadencia” con que se realizan las “llamadas” dependerá del tiempo que le lleve a la CPU el ir ejecutando cada una de las tareas que tiene encomendadas (que por cierto y según lo visto no son pocas) y además, de como se haya efectuado la programación del PLC (muchas o pocas ecuaciones, eliminación redundancias, optimización en el uso de los recursos, etc.). 5.- Como quiera que sea y para conocer las limitaciones del PLC en todas las circunstancias y tipos de programación, el programador debería comprobar que el PLC responde de forma "instantánea" (sensación de "tiempo real") a cualquier operación del tipo MANUAL (señal de STOP por ejemplo. Ver posteriormente en apartado III). 6.- Un PLC comporta un nuevo lenguaje de programación y como tal, solo la práctica aporta la suficiente experiencia como para saber “que puede dar de si” el sistema CNC-PLC planteado. 7.- Una programación incorrecta del PLC puede incluso producir un “colapso” en la unidad de control (bloqueo), interrumpiéndose completamente la gestión de todas las restantes “tareas”.

2

Manual de Programación del PLC

8.- Este sistema posee la gran ventaja que tanto el PLC como el CNC están compartiendo los mismos recursos (del tipo que fuere). Esta singularidad y no otra, sería la que debería dar sentido o no al uso del PLC incorporado en el propio CNC. 9.- Por todo lo expuesto (que no por la limitación en el JUEGO de INSTRUCCIONES según se comprobará en el siguiente apartado), es por lo que debe considerarse al PLC del equipo CNC como un "miniPLC" en donde este debería ser aplicado a "pequeñas funciones" del tipo auxiliar. Es recomendable no obstante, que se opte por la incorporación de otro PLC (con otra CPU dedicada por completo a tal menester) en aplicaciones de sofisticación media o elevada. Para aclarar aún mejor los conceptos introducidos, supóngase por ejemplo las 2 situaciones siguientes: si el CNC está en operación MANUAL, esto es que el “decodificador de comandos” apenas si realiza función alguna, el programa del PLC será “llamado”, sin ningún género de dudas, mucho más frecuentemente que cuando se encuentre en EJECUCION AUTOMATICA de un determinado programa-pieza en donde cada comando que se va ejecutando debe ser previamente decodificado, rutina la cual “rodará en paralelo” con la del PLC.

III.- COMANDOS ESPECIFICOS para el PLC a.- De los vistos hasta el momento en la programación de cualquier otro programa del CNC, el PLC admite las siguientes instrucciones en su programación: a.1.a.2.a.3.-

& ! L

a.4.-

+

a.5.-

-

a.6.-

D

a.7.-

M

a.8.- > = <

a.9.-

G

a.10.-

/

a.11.-

@

a.12.-

:

a.13.-

O Onn O-nn Ohh.nn

Como referencia a parámetro de Usuario. Como referencia a Posición de Memoria. Operación de carga, tanto en Parámetros de Usuario como en Posiciones de Memoria. Operación de suma, tanto en Parámetros de Usuario como en Posiciones de Memoria. Operación de resta, tanto en Parámetros de Usuario como en Posiciones de Memoria. Operación de división, tanto en Parámetros de Usuario como en Posiciones de Memoria. Operación de multiplicación, tanto en Parámetros de Usuario como en Posiciones de Memoria. Operaciones de salto condicional de mayor que... igual que... o menor que... ,tanto en Parámetros de Usuario, como en Posiciones de Memoria como con los temporizadores ( aptdo.:b.5) Operación de resto de la división, tanto en Parámetros de Usuario como en Posiciones de Memoria. Admite comentarios dentro de la programación pero su uso será lo más restringido posible ya que, como es sabido, el CNC consume “tiempo” para su decodificación. Etiquetas de salto o Marca. NOTA: es importante ver la función que realiza la “etiqueta @99” en la programación del PLC. Presentación de mensajes personalizados por el propio fabricante en el Monitor del PC (mensajes contenidos en el fichero “MESSAGE.TXT”). Para activar/desactivar una determinada Salida o Marca del CNC. Activación salida “nn” Desactivación salida “nn” Activación salidas BCD 16 a 23 (“hh” dígito de mayor peso y “nn” dígito de menor peso.

#

NOTAS: Para el “test” del estado de la salidas o marcas se empleará la instrucción: “I.” ( “ i más el punto decimal “. Ver apartado b.2).

b.-

O-hh.nn suministrará el “valor complementario” al valor introducido. Comandos exclusivos para la programación del PLC.

b.1.- I Inn

Como “test” del estado de las entradas del CNC, de manera que: si la entrada “nn” se encuentra activa, el CNC continuará con la decodificación del siguiente Manual de Programación del PLC

3

comando y en el mismo bloque. Si no estuviera activa, “salta” al siguiente bloque. I-nn si la entrada “nn” está INactiva, el CNC continuará en el mismo bloque. Si estuviera activa, “salta” al siguiente bloque. Ihh.nn también en código BCD puede ser verificado el estado de las entradas I16 a I23 en el M.A.C. o I8 a I15 en el MACup (“hh” dígito de mayor peso y “nn” dígito de menor peso). Como en el test de una sola entrada, de cumplirse la condición programada, el CNC continuará en el mismo bloque. De no cumplirse, “se saltará“ al siguiente bloque.

#

NOTA: I-hh.nn indica el “valor complementario” al valor introducido.

b.2.- I. Como “test” del estado de las salidas o marcas del CNC, de manera que: I.nn si la salida “nn” se encuentra activa, el CNC continuará con la decodificación del siguiente comando y en el mismo bloque. Si no estuviera activa, “salta” al siguiente bloque. I.-nn si la salida “nn” está INactiva, el CNC continuará en el mismo bloque. Si estuviera activa, se “salta” al siguiente bloque. I.hh.nn también en código BCD puede ser verificado el estado de las salidas O16 a O23 (“hh” dígito de mayor peso y “nn” dígito de menor peso). Como ocurriera con el examen o test de una sola salida, de cumplirse la condición programada, el CNC continuará en el mismo bloque. De no cumplirse, “se saltará“ al siguiente bloque.

#

NOTA: I.-hh.nn indica el “valor complementario” al valor introducido.

b.3.- J Salto a etiqueta dentro del programa. El comando “ Jnn “ señalará durante la ejecución del programa que debe efectuarse un salto a la etiqueta o marca @nn . b.4.- Funciones del PLC que afectan a la Ejecución del programa-pieza. Es posible mediante la programación del PLC realizar cuatro diferente funciones que afectan a la normal ejecución de programas del CNC. Estas podrán ser directas o condicionales (“InnE“ . . . si entrada “nn” activa, realiza un “stop”) dependiendo de las necesidades del propio fabricante o usuario final: b.4.1.- E La decodificación y ejecución de este comando realiza la función de “STOP“ por programación en el PLC. b.4.2.- S La decodificación y ejecución de este comando realiza la función de “START“ o lo que es lo mismo, cancela un posible STOP previo y establece la condición de START del CNC. b.4.3.- A La decodificación y ejecución de este comando predispone al CNC en modo “AUTOMATICO”. Será necesaria la pulsación de la tecla , o bien la ejecución del comando “S“ del PLC para la ejecución en automático del programa pieza. Solo tendrá algún efecto apreciable esta instrucción si el equipo CNC se encuentra en MANUAL. b.4.4- M Siempre y cuando el CNC se encuentre en situación de “STOP”, a la ejecución de este comando, el equipo se situará en MODO MANUAL y al inicio del programa-pieza que estuviera en ejecución. Resultado de lo cual se obtiene una función similar a la que se obtendría al pulsar STOP + ENTER desde la “Botonera de Mandos” de la unidad CNC. b.5.- Temporizadores. El PLC dispone de cuatro temporizadores denominados como T0, T1, T2 y T3. Los valores máximo y mínimo que admiten serán los de 65.536 y 0.001 que equivalen a 655.35 y 0.01 segundos respectivamente, siendo su método de carga el comando de carga de valores “ L “. Ejemplo T2L23.5 para indicar una precarga de 235 segundos. Justo desde la ejecución de dicha orden de carga, el contador interno se irá decrementando en una unidad cada 10 ms. Al llegar al valor de 0, se interrumpe la cuenta, quedando permanentemente registrado el valor de “ 0 “ en este hasta que una nueva programación de carga de un determinado valor se efectúe. Como se ha descrito y en orden a simplificar los cálculos que realiza el PLC, los valores programados se interpretarán en centésimas de segundo (como cualquier temporizador del CNC, estos se decrementan cada 10 ms). Así, si se programa T0L65.535 el temporizador se carga al valor de 65535 y al decrementarse cada centésima de segundo, el tiempo total sería de 65535*10ms = 655.350 segundos. Es posible efectuar un “test” o examinar el valor contenido en cada uno de los cuatro temporizadores haciendo uso de los comandos de salto condicional “mayor que”, “igual que” o “menor que“ ( >, = o < ). De tal

4

Manual de Programación del PLC

manera que el CNC ejecutará todo lo posterior y en el mismo bloque en caso de cumplirse la condición descrita. Si NO se cumple la condición, se salta al siguiente bloque. EJEMPLO: T2>0&0+.001... en caso de que el temporizador número 2 posea un valor mayor al de “0“ el parámetro &00 se incrementa en 1 unidad. b.6.- W Es posible la activación/desactivación ( 0 ó 1) de cualquiera de los 32 “bits” que componen cualquiera de los 100 Parámetros de Usuario o de una determinada Posición de Memoria. Actuación del parámetro a modo de “flag”. Si por ejemplo se programara &12W0.008, la decodificación y ejecución de este comando “pondría a 1“ el bit 8 del parámetro número 12 (sea cual sea su estado anterior: 0 ó 1). Si se programa &12W-0.008, la decodificación y ejecución de este comando “pondría a 0“ el bit 8 del parámetro número 12 (sea cual sea su estado anterior: 0 ó 1). b.7.- B Es posible también, mediante este comando, realizar un examen o test del estado de un determinado “bit” de un determinado Parámetro de Usuario o Posición de Memoria. La forma de programación es idéntica a la vista en el apartado anterior. &12B.008, el CNC examina el estado del “bit 8” del parámetro de usuario número 12 y en caso de estar activado ( 1 ) continuará con la decodificación del siguiente comando que se encuentre en el mismo bloque. De no ser así, se salta al bloque siguiente. Igual ocurre con el signo negativo: &12B-.008, el CNC verifica el estado del “bit 8” del parámetro de usuario número 12 y en caso de estar desactivado (0) ejecutará lo posterior en el mismo bloque donde se encuentre . De no ser así, se salta al bloque siguiente.

#

NOTA: Es importante reseñar que los 32 bits de cualquier Parámetro de Usuario o Posición de memoria reciben la asignación siguiente: bit 1 (&nnW0.001o &nnW-0.001) para indicar el bit de menor peso (o el bit más a la derecha de la presentación binaria del contenido de este). bit 32 (&nnW0.032 o &nnW-0.032) para indicar el bit de mayor peso (o el bit más a la izquierda de la presentación binaria de su contenido).

b.8.- [ El programa podrá dividirse por “ecuaciones”, siendo este carácter empleado para identificar el inicio de cada una de ellas. Es de notable importancia hacer un uso correcto de este carácter. Un mismo programa con o sin los caracteres apropiados de este tipo, puede llegar incluso a no funcionar correctamente o a ser mucho más deficiente en tiempo de ejecución. Una “ecuación” se compone de todos los bloques incluidos entre dos comandos de este tipo. Esto no quiere decir que todos los bloques de una “ecuación” serán ejecutados pues si en alguno de ellos, la normal ejecución del programa llegara hasta el final de alguno de ellos (el CNC ejecuta el carácter ), se saltará a la “siguiente ecuación“. El resto de bloques o líneas de la ecuación en la que se encontrara el puntero de ejecución del PLC serán ignorados. El sistema garantiza y se encarga de que, siempre que es “llamada” la rutina del PLC, sea ejecutada la TOTALIDAD de una “ecuación”. Finalizada su ejecución, se “retorna” a las tareas normales del CNC hasta que, transcurridas estas, nuevamente es “llamado” el PLC.

#

NOTA: también el “bucle del PLC” se puede “forzar” mediante el uso del comando “Jnn“ (salto a etiqueta o marca) según se comprobará posteriormente durante la explicación de los ejemplos. b.9.- Hay que reseñar que aquellos comandos del tipo que fueren (“condiciones” u “ordenes”) no incluidos dentro de una “ecuación” y situados al inicio del programa, SOLO SE EJECUTARAN UNA SOLA VEZ coincidiendo con la puesta en marcha del equipo. De hecho, los comandos así programados (situados al inicio de programa y sin ir precedidos del carácter “[“), cumplen todos los requisitos de una “ecuación”, pero con la singularidad de que “esta ecuación” solo se ejecutará a la puesta en marcha del equipo. Ello se debe a que, al “buclar” el programa sobre si mismo, el decodificador de comandos “busca” siempre por el primer carácter “[“ que contenga el programa para iniciar desde ahí la decodificación de la primera ecuación programada. Con lo que todos los comandos situados al inicio del programa que no vengan precedidos por el carácter “[“, nunca se ejecutarán pues no forman parte del “bucle del PLC”.

Manual de Programación del PLC

5

IV.- DECODIFICACION de ERRORES DE SINTAXIS a.- @99 Situada al final del programa, solo será ejecutada en el caso de que el CNC no pueda decodificar un comando contenido en el programa del PLC (Error sintáctico o semántico). La inclusión en el programa de algún comando “no permitido” (como puede ser la programación errónea de códigos, salto a etiqueta no existentes: Jnn, división por “0“, etc...) realizará un “salto” a esta etiqueta. Será el propio Fabricante el que, mediante las “herramientas” de que se dispone, configurará (programará) el contenido de esta singular etiqueta con el fin de rectificar y subsanar el error cometido en la programación del PLC. De hecho esta etiqueta se emplea para poder “depurar” el programa y, una vez haya sido realizada esta, debería anularse toda la programación asignada a esta etiqueta. Un ejemplo típico que ayuda a determinar la carencia de errores de programación, sería el programar: @99O31. En donde la NO activación de la salida O31 indicaría que el programa del PLC carece de errores (o cuanto menos, en las condiciones en que se ha ido ejecutando el programa del PLC durante el periodo de depuración). Para facilitar la localización del error, solo dentro de la “etiqueta de error” se introduce el siguiente comando para el PLC. b.- Knn Registro de la posición del error de sintaxis. Siendo “nn” un número comprendido entre “00” y “99”. Se cargará en el Parámetro de Usuario &nn el número de “byte” del programa (PLC: P000) que provocó el error contabilizado este a partir de la primera línea de programa del PLC.

#

NOTA: este comando solo puede estar incluido dentro de la etiqueta @99. Su programación en otras circunstancias, provocará la carga de un valor cualquiera en el Parámetro de Usuario al que se haga referencia. Sirva el siguiente ejemplo para averiguar la localización de “un posible error”. (Recordar que cuando se realiza la operación de transmisión del fichero hacia la memoria del CNC, a partir del carácter “;”, no se transmiten más caracteres hasta el siguiente ): P000 &00L0&01L0; O5.5; @00; [I0E; I1S; I16A; I17M; [G90; [I06I-07&01L6; I-06I07&01L7; [J01; @99K02O47J00;

@01O-47; ;

10 bytes más el de final de línea ( =11 ) 4 bytes más el de final de línea ( = 5 ) 3 bytes más el de final de línea ( = 4 ) 4 bytes más el de final de línea ( = 5 ) 3 bytes más el de final de línea ( = 4 ) 4 bytes más el de final de línea ( = 5 ) 4 bytes más el de final de línea ( = 5 ) ¡¡¡ error !!!. Salta a @99. Nunca se ejecutará pues existe error anteriormente. Nunca se ejecutará Nunca se ejecutará Visualizando el contenido del Parámetro de Usuario número 2 se observará que este contiene el valor de 0.041 que es el número de byte del programa donde está localizado el error de sintaxis (carácter G). La salida 47 señalará que se ha producido un error en la programación. El comando " J00 " provoca un salto a la etiqueta @00 Nunca se ejecutará pero... si no hubiera error la salida 47 estaría siempre inactiva. ver “bucle del programa”.

V.- “BUCLE del PROGRAMA” y OTRAS SINGULARIDAES. Cargado en la Memoria del CNC el programa del PLC ( P000 ) y, tal como se ha dicho, su puesta en ejecución se realiza de forma automática justo en el momento del encendido del equipo. Situándose este en una situación de “non stop” en donde permanentemente será ejecutado el programa del PLC hasta que sea desconectado de la red o bien se efectúe un “reset” de la unidad.

6

Manual de Programación del PLC

#

NOTA: la única forma de detención del mismo es mediante la ejecución en semiautomático de la siguiente orden: “ !8.686L0 “. Instrucción la cual cancela el “puntero” del decodificador de comandos asociado con el PLC. En la versión para WINDOWS (paquete WIMAC), la instrucción será: ” !8.716L0 “

,

ATENCION: Como cualquier Acceso Directo a Memoria se extremará el cuidado del momento de la ejecución de este comando. En particular, al ejecutar esta instrucción, NUNCA deberá encontrarse el CNC en fase de edición pues también se afecta al puntero del Editor.

!

IMPORTANTE: Siempre que se desee “reenviar” el programa P000, deberá de haber sido ejecutada PREVIAMENTE la orden indicada (!8.686L0 para realizar el paro de la ejecución del PLC). Caso contrario se puede provocar un severo error de ejecución en el PLC que puede ocasionar que la unidad de control quede en un bucle “infinito” que provocará la sensación de “cuelgue” del propio equipo así como de la comunicación entre PC y CNC. Este hecho se debe a que el programa del PLC será anteriormente BORRADO de la Memoria y, si el PLC no ha sido interrumpido, la ejecución del programa del PLC será completamente errónea.

Importante será tener en cuenta que al encendido del equipo, y si no se configura de diferente manera mediante saltos a etiquetas ( comandos " Jnn " y " @nn " ), la secuencia de ejecución del programa se realiza desde el inicio del mismo hasta llegar al carácter de “final del programa” . Llegado a este punto () el puntero de ejecución del PLC salta a la primera ecuación (la situada en la parte más alta del programa) y se finaliza la ejecución de la “tarea del PLC” hasta que sea nuevamente “llamada” esta cuando corresponda. Con ello se consigue que el PLC se encuentre en un “bucle infinito” en donde la totalidad del programa se ejecutará periódicamente.

VI.- EJEMPLOS. No se pretende en este manual dar ningún cursillo de programación de PLCs. Se entiende que el lector conoce ya el funcionamiento de estos, por lo que solo se plantea introducir algún concepto más que facilite la programación del PLC del equipo M.A.C. a.-

Ejemplo simple de una sola “ecuación”:

Dejaremos constancias en este primer ejemplo de los caracteres “invisibles” cuya misión es de igual o mayor importancia que la de los “visibles”. Apuntar que cuando se realiza la transmisión de un programa desde el PC hacia la unidad CNC, se depuran y simplifican los caracteres enviados (dado que cualquier Editor de Mercado emplea más caracteres de los estrictamente necesarios para el CNC o PLC).

P000 [I01O5.5 O-5.5 Si la entrada 1 se activa, se suministra el código “5.5” por las salidas BCD. Este ejemplo es muy poco significativo y carece casi de sentido práctico pero introduce la sintaxis. El puntero a la puesta en marcha de la unidad CNC se sitúa en la primera línea de programa. Cuando es llamado por primera vez, comprueba el estado de la entrada I1 (primera “condición”). Si no esta activa, se salta a la siguiente línea que hace que se active el “código BCD complementario al 5.5” (esto es /(0101 0101) = 1010 1010, o sea: O-5.5 = O10.10). A continuación de la “orden” O-5.5 se ejecuta el , cuya función es “buscar” por la “siguiente ecuación”. Como se encuentra un , se busca por el inicio del programa y a partir de ahí, se localiza el primer carácter “[“. Hecho esto, el puntero de decodificación del PLC apuntará al siguiente carácter y se da por finalizada la primera llamada al PLC. Caso de que la I01 estuviera activa, se seguiría en la misma línea. Esto es que se ejecutaría la “orden” Manual de Programación del PLC

7

O5.5 y, a continuación, la decodificación del carácter provocaría la búsqueda de la siguiente ecuación, situación la cual sería igual a la del caso anterior. b.-

Ejemplo práctico de una sola “ecuación”:

P000 [I-2I-1O1 I2I1O1 O-1 Si las entradas 2 y 1 están ambas activadas o desactivadas, se activa la salida O1. De lo contrario, se ejecutará O-1 para desactivar la misma salida. Ciertos comentarios que clarifiquen conceptos pueden ser apuntados: Repetiremos que cuando se ejecuta una línea en su totalidad, siempre se alcanza el carácter el cual sitúa al “puntero” en la siguiente “ecuación” (o caso de alcanzarse el , se REINICIA la búsqueda desde el inicio del programa) y se finaliza la ejecución del PLC hasta que este sea nuevamente “llamado”. Se apreciará que la ULTIMA línea de la “ecuación” (línea anterior a la que contiene el siguiente carácter “[“ o “”) contendrá la operación u operaciones a realizar cuando ninguna “condición” anterior se haya dado. En situaciones en donde se ejecute una misma cosa repetidas veces, por ejemplo:

P000 [I-2I-1O1&0L0.256 I2I1O1&0L0.256 O-1 Si las entradas 2 y 1 están ambas activadas o desactivadas, se activa la salida O1 y se carga en el parámetro de Usuario &00 el valor de 0.256. Puede convenir lo siguiente:

P000 [I-2I-1J01 I2I1J01 O-1 @01O1&0L0.256 que es exactamente lo mismo que lo anterior. Fijarse no obstante que la “orden falsa” antecede a la “orden verdadera” que se alcanza mediante una instrucción de salto (J01). Solo se alcanzará el carácter (que indica el “FINAL de la ECUACION”) cuando se ejecuta la “operación falsa” o la “verdadera”. El incluir una etiqueta en este caso no sería del todo necesaria. Sin embargo puede darse que sea tal el número de operaciones a realizar, que su programación repetida en cada bloque de “test de condición” desaconsejara aquel tipo de programación. c.-

Emulación de un PANEL FRONTAL mediante ENTRADAS:

P000 [I2E I3S I16A I17M Como fue apuntado, las instrucciones “E”, “S”, “A” y “M” afectan muy directamente al CNC. La entrada I2 provoca un STOP del programa en ejecución. Será exactamente lo mismo que pulsar la tecla de desde la “Botonera de Mandos” de la unidad de control. La entrada I3 provoca un START (con anulación de un STOP previo si a lugar). Si se encuentra el equipo en MANUAL (no en MDI ni movimiento mediante pulsadores ni en ejecución en AUTOMATICO), la entrada I16 dispondrá al CNC a paso en AUTO. Solo si el equipo se encuentra en SITUACION de STOP, la entrada I17 provoca que el programa se ABORTE (paso a MANUAL y el puntero de decodificación del CNC apuntará al bloque de inicio del programa que se este ejecutando).

8

Manual de Programación del PLC

Englobarlo en una sola ecuación es importante pues se garantiza que en la misma “llamada al PLC” se realice el test de las 4 posibilidades. Además la programación siguiente:

P000 [I2E [I3S [I16A [I17M si bien haría exactamente lo mismo, requiere 4 “llamadas” al PLC para completar el “bucle” de ejecución del programa del PLC, lo cual ralentizaría notablemente la ejecución de las mismas instrucciones y por ende de todo el programa del PLC. d.-

Ejemplo de un par de “ecuaciones”:

P000 [I2E I3S I16A I17M [I-2I-1J01 I2I1J01 O-1 @01O1&0L0.256 Con la primera “llamada”, se ejecuta la primera “ecuación”. En la segunda “llamada”, la siguiente. O sea, en las “impares” la segunda y en las “pares” la primera. La primera “ecuación” carece de “operación falsa” lo cual ocasiona que se alcance al carácter “[“ de la segunda “ecuación” si ninguna “condición” (I2 o I3 o I16 o I17) se cumple. En estas circunstancias, el PLC comprueba que se trata de la ejecución de una nueva “ecuación” y finalizará la ejecución del programa del PLC dejando apuntando al puntero de decodificación en el carácter siguiente al del “[“. e.-

Control del número de veces que el PLC fue “llamado” y un “bucle” completo ejecutado:

P000 [I2E I3S I16A I17M [I-2I-1J01 I2I1J01 O-1 @01O1&0L0.256 [&1+0.001 Apréciese que se introduce un “contador” (haciendo uso del Parámetro de Usuario &01) que se incrementa cada vez que se ha realizado un “bucle” completo de programa. Después de 1 hora será fácil obtener una medida de la cadencia con que fue “llamado” el PLC. Este valor debería interpretarse como un “valor medio” por los motivos apuntados en el apartado II de este mismo manual. También sería aconsejable controlar el valor de dicho contador en 2 situaciones diferentes por cuanto respecta al CNC: en MANUAL y en EJECUION AUTOMATICA de un programa dejado también en un “bucle infinito”. Si por ejemplo al cabo de 1 hora se obtiene que el Parámetro &01 contiene el valor de 153192, querrá decir que fue “llamada” la tarea del PLC un total de 153192 veces en 3600 segundos, o lo que es lo mismo, el PLC fue “llamado” con una cadencia media de: 3600000 ms / 153192 = 23.5 ms Este ejemplo apunta la necesidad de “inicializar” el contador a la “Puesta en Marcha” del PLC.

Manual de Programación del PLC

9

P000 P000 &1L0 [I2E I3S I16A I17M [I-2I-1J01 I2I1J01 O-1 @01O1&0L0.256 [&1+0.001 Como el comando “&1L0” no está incluido en ninguna “ecuación” (carece del carácter “[“ y desde el inicio del programa no existe dicho carácter con anterioridad), este NO forma parte del “bucle” del PLC. Esto es, solo será ejecutada esta instrucción UNA SOLA VEZ y a la PUESTA EN MARCHA de la unidad de control. Como estas instrucciones NO consumen tiempo pues se ejecutan una sola vez, se puede poner cuantas inicializaciones requiera el PLC y lo que es más importante aún, también las que requiera el CNC. Hay que tener presente que todos los comandos así programados, forman parte de una “ecuación” que se ejecutará solo una vez coincidiendo con la puesta en marcha del equipo. Así pues, se podrán incluir “ordenes” (como la descrita en este ejemplo) y “condiciones” de todo tipo y cuando se alcance la ejecución del carácter , este interpretará de igual manera a la descrita anteriormente (salto a la siguiente “ecuación” que será la primera del “bucle del PLC” ). f.-

Temporizadores: Prescindiremos a partir de aquí de los caracteres de Final de Línea y Final de Fichero por entenderse que ya está clara su misión y significado. Además y de esta forma, la presentación de ejemplos se asemeja completamente a la realidad de cualquier editor de mercado del que se disponga (“Edit” en DOS o “NOTEPAD” en WINDOWS por ejemplo).

#

NOTA: No es aconsejable emplear a editores del tipo “tratamiento de textos” (Word o WordPerfect) pues introducen en la mayoría de ocasiones caracteres “extraños” que pueden producir errores en la ejecución del programa del PLC que suelen ser difíciles de localizar.

P000 [T0=0I.-2O2T0L0.2 T0=0I.2O-2T0L0.3 Cuando el TEMPORIZADOR #0 alcance el valor de 0 y si la salida 2 está inactiva (I.-2), esta es activada y se reinicializa el temporizador al valor de 2 segundos (como fue indicado el primer decimal aporta el tiempo en segundos). Si la salida ya estaba activada (I.2), se desactiva y se preestablece el temporizador a 3 segundos. Apuntar la conveniencia de incluir en esta misma ecuación otra “condiciones” que pudieran examinarse en la mayoría de ocasiones dado que la condición normal del temporizador será la de no encontrarse en igualdad con 0. Por ejemplo:

P000 T0L0&1L0&0L0 [T0=0I.-2O2T0L0.2 T0=0I.2O-2T0L0.3 I2E I3S I16A I17M [I-2I-1J01 10

Manual de Programación del PLC

I2I1J01 O-1 @01O1&0L0.256 [&1+0.001 g.- El compartir los recursos del CNC, permite una sincronización entre el PLC y el CNC difícilmente superable. Por ejemplo el comando que se ejecuta a la puesta en marcha “!10.568W-.008” hace que el origen máquina en el eje Z se sitúe allí donde este el eje a la puesta en marcha y no hará falta la “búsqueda” de referencia en Z (caso típico de un eje del tipo “cinta transportadora” por ejemplo).

P000 !10.568W-.008&0L0&1L0O5.5 … ¡Son tantas las posibilidades! Que solo hay espacio para apuntar algunas de ellas. Llegado el caso, el programador del PLC combinará lo expuesto en el Manual de Programación del CNC con lo indicado en este mismo Manual. h.-

Ejemplo de un error fatal:

P000 … [… @01O3O12J01 [… … Al ejecutar la “ecuación” descrita, el PLC entra en un bucle infinito del cual NUNCA saldrá y por lo tanto, como nunca se alcanza una condición para que finalice la tarea del PLC (ejecución de un por ejemplo), el CNC (o cualquier otra tarea que “ruede” en paralelo con la del PLC) también quedará BLOQUEADO. Este ejemplo se introduce para dejar constancia que en la programación de cualquier PLC es fundamental el conocer la forma de actuación de este. Una programación deficiente puede ser incluso catastrófica o cuanto menos, hacer que la ejecución del programa del PLC degrade muy significativamente las prestaciones de la unidad CNC y del propio PLC. En el ejemplo y como el PLC “arranca” justo desde el instante de la puesta en marcha de la unidad de control, esta mala programación obligaría a reinicializar la memoria del CNC pues sería imposible salir del “bucle infinito” por ningún otro proceso. Es importante pues que a la hora de la programación y verificación del PLC, el usuario posea un “BackUp” de la memoria del CNC en condiciones apropiadas. i.-

El ejemplo final:

P000 !10.568W-.008&0L0&1L0O5.5; “ecuación” solo a la puesta en marcha @99K02&01+.001I.-47O47J0; “ecuación por si existe error” I.47O-47 @00[I2E; 1ª “ecuación”: I2 como pulsador del STOP I3S; I3 como pulsador del START I16A; I16 para “paso a AUTO” I17M; I17 para “abortar programa ” si hay STOP I6&1L0; Si se activa I16, &01 = 0 T0=0I-2I.-2O2T0L.2&0+.001/G90; Si Temp0 llega a 0 y O2 inactiva,… T0=0I2I.2O-2T0L.3/G91; o si Temp0 llega a 0 y O2 activa,… T1=0I-3I.-3O3T1L.3; Si Temp1 llega a 0 y O3 inactiva,… T1=0I3I.3O-3T1L.2; o si Temp1 llega a 0 y O3 inactiva,… T2=0I-4I.-4O4T2L.1 T2=0I4I.4O-4T2L.2 T3=0I.-5.5O5.5T3L.2 T3=0I.5.5O-5.5T3L.1

Manual de Programación del PLC

11

[&0>.002J2; I.-7I5J2; J3; @02I.-7O7:01; @03; [&0>.004J4; I.7I5J4; @04I.7O-7&0L0:00; /[J0; [G90I8O4; O-4

2ª “ecuación”: Si &0 > 0.002, salta a @02 o si O7 inactiva y entrada I5 activa, a @02 Ninguna “condición” anterior fue “verdadera” “ordenes verdaderas” “ordenes falsas” o si “O7” ya estaba activada 3ª “ecuación: si &0 > 0.004, salta a @04 o si O7 activa y entrada I5 activa, a @04 las “ordenes” si hubo “condición verdadera” Línea comentario. Solo se ejecutará el “cr” “ecuación” que provocará “error”. Salto a @99

Este es un mero ejemplo en donde se quiere mostrar todas las posibilidades de programación. Su ejecución provoca siempre un ERROR (comando G90) que obliga a saltar a la etiqueta @99. La utilidad de transmisión del paquete de “Utilidades de Comunicación con el PC” posee un “filtro” que eliminará todos los comentarios (desde el carácter de “;” hasta el de “”). Fijarse que el “;” se sitúa al final de la línea de comandos para que no se transmitan los caracteres “en blanco” , “espaciadores” o “tabuladores”. Será importante comprobar que I2 e I3 poseen una “sensación de actuación en tiempo real” en LA PEOR DE LAS CIRCUNSTANCIAS (esto es, con el CNC ejecutando un programa con traslación y giro de coordenadas, factores de escala en todos los ejes con o sin imagen espejo, corrección del radio de la herramienta y con anulación de aceleraciones si a lugar). En general cuantos más cálculos geométricos se encomienden al CNC, mayor tiempo en la decodificación de comandos se le exige al sistema. La primera línea del programa es una “ecuación” que solo se ejecutará a la puesta en marcha del equipo pues carece del carácter “[“ que indica inicio de “ecuación”. Como solo posee “ordenes” (ninguna “condición” fue programada), el carácter será alcanzado y, como ha sido señalado, esto provoca que se salte hasta la siguiente “ecuación” lo que hace que no se ejecuten las operaciones asociadas con un “error en el PLC” (etiqueta @99). Esta forma de programación, por cuanto respecta a donde situar la etiqueta de error @99, es la más apropiada pues evita que en la programación del PLC, esta pudiera ejecutarse por error. Apréciese que la primera ecuación del “bucle del PLC” propiamente dicho, contiene TODAS las líneas de programa que puedan suceder esporádicamente, esto es, que en condiciones normales, ninguna de ellas se cumplirá. Introducir comentarios mediante el uso del carácter “/” es COMPLETAMENTE desaconsejable pues consumen tiempo y memoria y no realizan ninguna función. Cuando no se usan las “ordenes falsas” y si que existe una etiqueta de salto para las “ordenes verdaderas”, se debe al menos programar un carácter de en la línea que corresponda (ver la “3ª ecuación”) o, como fue programado en la “2ª ecuación”, una instrucción de salto del tipo “Jnn” y su etiqueta asociada “@nn”. El uso del número de mensaje a visualizar por el PC (comando “:nn”) permite que el programa del PLC pueda informar al usuario de un determinado estado de este o cualquier otro propósito por el que se opte. En particular la etiqueta “:00” sirve para anular cualquier presentación de mensajes en el monitor del PC. Al producirse un “error en la programación del PLC” se salta a la etiqueta @99, no ejecutándose ningún comando posterior. En el ejemplo, se ejecuta la “ecuación” correspondiente con la “etiqueta de error @99” y se reinicia desde la “1ª ecuación” hasta alcanzar nuevamente el referido error. Como quiera que sea y tal como fue apuntado en el apartado II, la capacidad de cálculo de la unidad de control tiene sus límites y no es aconsejable ABUSAR del programa del PLC que incorpora el propio CNC. En particular, en aquellas máquinas en donde es prioritaria la decodificación de comandos del CNC (tipo LASER por ejemplo) es muy importante el optimizar y minimizar al máximo la confección del programa del PLC según lo apuntado. j.-

Ejemplo práctico de programa pieza, función “M” y PLC asociados:

P000; @00 [I0E; I1S

12

I18 indica si hay pieza (I18) o no (I-18). ecuacion comun tanto en AUTO como en MANUAL.

Manual de Programación del PLC

I16M I17A [!8.590B.009J2; Si en AUTO, salta !8.590B.015J2; o si en DNC, salta !8.590B-.010I.8J01; Si no RUN Y ejecuto lo de @02, salta a @01. J00 @01I.-9SJ00; Si aun no 1a linea ejecutada, ejecutala. AO-8O-9J00; Si ya 1a linea ejecutada, pasa a AUTO y FIN. @02I-18I.10I.-8EMO8O-10; Si el CNC esta en AUTO o DNC. [J00 ;****************************************************************************** P002 IF.8O9M12 O10; Indica en 2o bloque (en AUTO). .... ;****************************************************************************** P&12 &90!8.594G90G0X0Y0Z0U0!8.595L&90 G99

Manual de Programación del PLC

13

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.