Vous êtes sur la page 1sur 49

Paul Glvez 2011

Gua PLC Siemens

Introduccin Conexiones I/O al PLC Ciclo de Scan Estado Seal Consultas y bobinas Consultas y flancos Bobinas Set y Reset Temporizadores Contadores Operaciones Comparacin Operaciones Transferencia Operaciones Aritmticas Subrutinas Transferencia

Estimados. Aqu he resumido con lo que he podido recabar que ustedes por lo menos deben dominar con su estudio anterior, se darn cuenta que la programacin sigue bastante de cerca al estndar comn de Ladder

Atte. Paul Glvez

Paul Glvez 2011

Introduccin Los autmatas han surgido por la necesidad del hombre de automatizar los procesos de produccin. Un sistema automtico es aquel capaz de realizar correctamente una serie de acciones para las que ha sido diseado sin necesidad de la intervencin humana. El hombre busca esta automatizacin para:

Evitarse tareas tediosas. Abaratar costes de produccin. Incrementar la calidad de los productos, ya que se consigue una produccin estandarizada. Acortar los tiempos de introduccin de un nuevo producto en el mercado.

Evolucin de la automatizacin Automatizacin mecnica. Los sistemas mecnicos suelen ser complicados y de escasa flexibilidad. Por el contrario la tecnologa que regula su funcionamiento es relativamente accesible al personal poco cualificado. Los problemas de este tipo de automatizacin es la longitud de las cadenas cinemticas y la sincronizacin de sus movimientos. Automatizacin neumtica. La tcnica neumtica admite infinidad de aplicaciones en el campo de la mquina herramienta que no requiere velocidades constantes. Las principales ventajas del mando neumtico son:

La sencillez de los propios sistemas de mando. La rapidez de movimiento del sistema neumtico. La economa de los sistemas neumticos una vez instalados.

Paul Glvez 2011

Los inconvenientes seran:

La instalacin requiere un desembolso econmico aadido a la propia automatizacin. El mantenimiento del estado del aire, ya que debe mantenerse perfectamente limpio y seco.

Automatizacin hidrulica. Es muy similar a la automatizacin neumtica aunque su mando es ms lento, pero desarrolla un mayor trabajo. Automatizacin elctrica. Cualquier mquina, por sencilla que sea, va a tener algn tipo de automatismo elctrico encargado de gobernar los motores o como funcin de mando dentro de la propia mquina. Automatizacin electrnica Este sistema de automatizacin ha supuesto una revolucin enorme en al industria. La base de este avance ha sido el sistema digital, que ha desembocado en el ordenador y en el autmata programable.

Paul Glvez 2011

Conexiones I/O al PLC Los autmatas programables se componen de tres bloques:


La seccin de entradas. La unidad central de procesos o CPU. La seccin de salidas.

La seccin de entradas: La seccin de entradas mediante un interfaz, adapta y codifica de forma comprensible para la CPU las seales procedentes de los dispositivos de entrada o captadores. Tambin tiene una misin de proteccin de los circuitos electrnicos internos del autmata. La unidad central de procesos o CPU: La unidad central de procesos es la inteligencia del sistema. Es la zona del autmata donde se interpretan las instrucciones del programa de usuario, y en funcin de las entradas, activa las salidas deseadas. La seccin de salidas: La seccin de salidas decodifica las seales de la CPU, las amplifica y manda con ellas los dispositivos de salida o actuadores.

Paul Glvez 2011

Paul Glvez 2011

Estimados fjense bien, las entrada y salidas aparecen con E y A respectivamente, esto es solo como este configurado la indicacin de los smbolos, para visualizar esto pueden verificarlo en el mismo programa, en herramientas, hacer clic en opciones.

Paul Glvez 2011

Paul Glvez 2011

Ciclo de Scan La CPU lee las entradas, ejecuta el programa, escribe en las salidas y ejecuta funciones del sistema y de comunicacin en un ciclo continuo. Este ciclo ocurre muy deprisa, varias veces por segundo. Aunque STEP 7Micro/WIN 32 efecta las peticiones de estado rpidamente, es importante tener en cuenta que el usuario no puede observar cada uno de los eventos que ocurren en la CPU.

Debido al retardo de la comunicacin entre la CPU y la unidad de programacin en la que se est visualizando el estado del programa, el valor de un operando que aparezca en la pantalla cambiar siempre en la CPU antes de que cambie en la visualizacin del estado. Aunque la visualizacin se actualiza rpidamente, es posible forzar un operando cuyo valor haya cambiado ya en la CPU, mas no en la representacin del estado del programa. Si visualiza el estado del programa en el modo "Estado de fin de ciclo" (es decir, estando desactivado el comando de men Test > Utilizar estado de ejecucin), los datos se recogern durante varios ciclos. Si visualiza el estado del programa en el modo "Estado de ejecucin" (es decir, estando activado el comando de men Test > Utilizar estado de ejecucin), todos los valores de estado del programa visualizados provendrn de un solo ciclo.

Paul Glvez 2011

Estado seal Las entradas de los autmatas se consultan cclicamente para apreciar su estado de seal; para el autmata es indiferente si el emisor de seal es un contacto normalmente abierto o normalmente cerrado. Contacto normalmente abierto (NA) : Si se conecta a una entrada un contacto normalmente abierto, dicha entrada tiene estado de seal "1" cuando se acciona el contacto. Contacto normalmente cerrado (NC) : Si a una entrada se conecta un contacto normalmente cerrado, esta tiene estado de seal "0" cuando se acciona el contacto.

El estado de seal es el valor recogido en la posicin de memoria a la que esta asociado el emisor de la seal. As pues, para que el autmatas puedan distinguir entre contactos normalmente abiertos y normalmente cerrados, el programa deber incluir instrucciones de consulta del estado de seal en las entradas.

Paul Glvez 2011

Consulta directa: es una instruccin que evala si una posicin de memoria tiene asignado valor lgico "1". Consulta negada: es una instruccin que evala si la posicin de memoria tiene asignado valor lgico "0". Nota: RLO:= resultado lgico de la operacin

Paul Glvez 2011

Consultas y bobinas El lenguaje de contactos (KOP) es el primer lenguaje empleado para programar autmatas y especficamente diseado para facilitar la tarea de leer y comprender programas de control de autmatas a los ingenieros elctricos acostumbrados, hasta entonces, a implementar automatismos empleando tecnologa elctrica. Por este motivo cada segmento o red (Network) es una abstraccin de una red elctrica a travs de la cual habr un flujo elctrico entre el polo positivo ( |---- ) y el polo negativo ( ----| ) cuando el resultado lgico de la consulta sea cierto.

Nota: El lenguaje de programacin KOP simboliza el flujo de corriente Las redes se configuran en base a dos elementos bsicos: Consultas: Hay dos tipos de consultas: Consulta directa: es una instruccin que evala si una posicin de memoria tiene asignado valor lgico "1". Consulta negada: es una instruccin que evala si una posicin de memoria tiene asignado valor lgico "0".

Paul Glvez 2011

Paul Glvez 2011

Bobinas: las bobinas representan abstractamente la bobina de un rel y por extensin cualquier tipo de accionador susceptible de ser activado por medio de una seal elctrica.

Desde el punto de vista del lenguaje de programacin, una bobina, es una operacin de asignacin, la cual asigna el resultado de la operacin lgica previa a la bobina a la posicin de memoria indicada.

Las consultas pueden ser conectadas en serie y/o en paralelo, en nmero y forma que se desee conformando de esta manera una operacin lgica.

Esta operacin lgica devolver un resultado lgico (RLO) que ser asignado a una o varias posiciones de memoria por medio de una o varias bobinas, con la nica restriccin de que nunca puede haber dos bobinas en serie, por el mismo motivo de que en un circuito electrnico no se podra conectar dos rels en serie. Las bobinas siempre han de ir conectadas en paralelo.

Paul Glvez 2011 PROBLEMA

Tenemos una sala de un museo, en la cual, se quiere que la iluminacin no est activada cuando la sala se encuentre vaca. Para ello en las tres puertas de acceso que tiene la sala figura el siguiente letrero: Cuando acceda a la sala y sta se encuentre vaca accione el interruptor que tiene en la puerta por la que entra, para encender la iluminacin. Cuando abandone la sala y no quede persona alguna en el interior, accione el interruptor que tiene en la puerta de la sala.

Paul Glvez 2011

Paul Glvez 2011

Paul Glvez 2011

Consultas flancos La deteccin de flancos nos permite saber cuando hay un cambio de valor en un bit. Cuando el cambio es de 0 a 1, se detecta flanco positivo. Cuando el cambio es de 1 a 0 , se detecta flanco negativo. En KOP la deteccin de flancos se realiza por medio de contactos.

Una deteccin de flanco solo est activa en el ciclo que ocurre el cambio. Como para que haya flanco tiene que haber un cambio de valor de 0 a 1 de 1 a 0, en el primer ciclo del programa no puede haber nunca flanco

Paul Glvez 2011

Como se puede apreciar en la imagen anterior, la activacin de salida ser fija y durara mientras este hecho el contacto. A continuacin se ve la diferencia, permanecer encendido solo cuanto dure el canto, es decir se encender y luego se apagara.

Paul Glvez 2011

Bobinas Set y Reset Las operaciones Poner a 1 (SET) y Poner a 0 (RESET) activan (ponen a 1) o desactivan (ponen a 0) el nmero indicado de posiciones de memoria (N) a partir de la direccin indicada (bit). Es posible activar o desactivar un nmero de entradas y salidas (E/S) comprendido entre 1 y 255. Cada pareja de bobinas SET y RESET vienen a representar un biestable RS.

Paul Glvez 2011

Es de resaltar que si el resultado lgico de la operacin (RLO) anterior a una bobina SET o RESET vale cero, la instruccin no se ejecuta y por tanto la posicin de memoria a la que la instruccin hace referencia permanecer con el mismo valor que tuviese anteriormente. Esto no ocurra con la bobina "normal" la cul siempre asigna el valor de RLO con la independencia del valor que tenga. Como normal general de programacin (la cual puede tener excepciones) indicar que las bobinas SET y RESET deberan ser utilizadas en parejas, es decir, por cada bobina SET en una posicin de memoria debera haber otra bobina RESET sobre esa misma posicin de memoria en alguna parte del programa y viceversa. La operacin RESET (poner a 0) se pueden usar para inicializar temporizadores y contadores. Para ello en la posicin de memoria debe indicarse la direccin del temporizador o del contador que se desea inicializar. De esta manera cuando se ejecute la operacin poner a 0, se asigna un 0 al valor actual del temporizador o del contador correspondiente. Y por tanto el bit asociado a ese temporizador o contador pasar a valer 0.

Paul Glvez 2011

Operaciones de temporizacin del S7-200 Es posible utilizar temporizadores para implementar funciones controladas por tiempo. El juego de operaciones S7200 ofrece tres tipos de temporizadores como se muestra a continuacin.

Temporizador de retardo a la conexin (TON) para temporizar un solo intervalo. Temporizador de retardo a la conexin memorizado (TONR) para acumular varios intervalos temporizados. Temporizador de retardo a la desconexin (TOF) para ampliar el tiempo despus de un cambio a "falso" (por ejemplo, para enfriar un motor tras haber sido desconectado)Acciones de los temporizadores:

Tipo de Actual >= temporizador Preseleccin Bit de temporizacin ON. El valor actual contina contando hasta 32.767. Bit de temporizacin ON. El valor actual contina contando hasta 32.767 Bit de temporizacin OFF. Valor actual =valor de preseleccin, se detiene el contaje

Entrada de habilitacin ON

Entrada de habilitacin OFF

TON

Bit de El valor actual temporizacin cuenta el OFF, valor tiempo. actual =0

TONR

El bit de El valor actual temporizacin cuenta el y el valor actual tiempo. conservan el ltimo estado.

TOF

Bit de temporizacin ON, valor actual = 0

El temporizador cuenta tras un cambio de ON a OFF.

Paul Glvez 2011

(1) El valor actual del temporizador de retardo a la conexin memorizado se selecciona para que quede memorizado cuando se interrumpa la alimentacin.

Nota: La operacin Poner a 0 (R) sirve para inicializar cualquier temporizador. Dicha operacin arroja los siguientes resultados: bit de temporizacin = OFF y valor actual = 0 El temporizador TONR slo se puede inicializar mediante la operacin Poner a 0. Tras inicializarse un temporizador TOF, la entrada de habilitacin debe cambiar de ON a OFF para poder rearrancar el temporizador. Se dispone de temporizadores TON, TONR y TOF con tres resoluciones. La resolucin viene determinada por el nmero del temporizador que muestra la tabla siguiente. El valor actual resulta del valor de contaje multiplicado por la base de tiempo. Por ejemplo, el valor de contaje 50 en un temporizador de 10 ms equivale a 500 ms.

Temporizador Resolucin Valor mximo N de temporizador 1 ms TONR 10 ms 100 ms 1 ms TON, TOF 10 ms 100 ms 32,767 s 327,67 s 3276,7 s 32,767 s 327,67 s 3276,7 s T0, T64 T1-T4, T65-T68 T5-T31, T69-T95 T32, T96 T33-T36, T97-T100 T37-T63, T101-T255

Nota: No se pueden compartir nmeros iguales para los temporizadores TOF, TONR y TON. Por ejemplo, no puede haber tanto un TON T32 como un TOF T32.

Paul Glvez 2011

Resolucin de 1 milisegundo Los temporizadores con resolucin de 1 ms cuentan el nmero de intervalos de 1 ms que han transcurrido desde que se habilit el temporizador activo de 1 ms. La temporizacin arranca al comenzarse a ejecutar la operacin. No obstante, los temporizadores de 1 ms se actualizan (tanto el bit de temporizacin como el valor actual) cada milisegundo de forma asncrona al ciclo. En otras palabras, el bit de temporizacin y el valor actual se actualizan varias veces en un ciclo que dure ms de 1 ms . La operacin de temporizacin se utiliza para activar e inicializar el temporizador o, en el caso del temporizador de retardo a la conexin memorizado (TONR), para desactivarlo. Puesto que el temporizador puede arrancar en cualquier momento durante un milisegundo, el valor de preseleccin se debe ajustar a un intervalo de tiempo que exceda el intervalo mnimo deseado. Por ejemplo, para garantizar un intervalo mnimo de 56 ms utilizando un temporizador de 1 ms, es preciso ajustar el valor de preseleccin a 57. Resolucin de 10 milisegundos Los temporizadores con resolucin de 10 ms cuentan el nmero de intervalos de 10 ms que han transcurrido desde que se habilit el temporizador activo de 10 ms. La temporizacin arranca al comenzarse a ejecutar la operacin. No obstante, los temporizadores de 10 ms se actualizan al comienzo de cada ciclo (en otras palabras, el valor actual y el bit de temporizacin permanecen constantes durante el ciclo), sumando el nmero acumulado de intervalos de 10 ms (desde el comienzo del ciclo anterior) al valor actual del temporizador activo. Puesto que el temporizador puede arrancar en cualquier momento durante un intervalo de 10 ms, el valor de preseleccin se debe ajustar a un intervalo de tiempo que exceda el intervalo mnimo deseado. Por ejemplo, para garantizar un intervalo mnimo de 140 ms utilizando un temporizador de 10 ms, es preciso ajustar el valor de preseleccin a 15. Resolucin de 100 milisegundos Los temporizadores con resolucin de 100 ms cuentan el nmero de intervalos de 100 ms que han transcurrido desde la ltima vez que se actualiz el temporizador activo de 100 ms. Estos temporizadores se actualizan sumando el valor acumulado de intervalos de 100 ms (desde el

Paul Glvez 2011

ciclo anterior) al valor actual del temporizador cuando se ejecuta la operacin correspondiente. El valor actual de un temporizador de 100 ms se actualiza nicamente si se ha ejecutado la operacin del mismo. Por consiguiente, si un temporizador de 100 ms est habilitado, pero la correspondiente operacin no se ejecuta en cada ciclo, no se actualizar el valor actual de ese temporizador y disminuir el tiempo. Por otra parte, si se ejecuta una misma operacin con un temporizador de 100 ms varias veces en un ciclo, el valor de 100 ms acumulado se sumar tambin varias veces al valor actual del temporizador, con lo cual se prolonga el tiempo. Debido a ello, es recomendable utilizar los temporizadores con una resolucin de 100 ms slo cuando se ejecute exactamente una operacin de temporizacin en cada ciclo. Puesto que el temporizador puede arrancar en cualquier momento durante un intervalo de 100 ms, el valor de preseleccin se debe ajustar a un intervalo de tiempo que exceda el intervalo mnimo deseado. Por ejemplo, para garantizar un intervalo mnimo de 2.100 ms utilizando un temporizador de 100 ms, es preciso ajustar el valor de preseleccin a 22. Actualizar el valor actual de un temporizador El efecto de las diferentes maneras de actualizar el valor actual de los temporizadores depende de cmo se utilicen los mismos. Consideremos p.ej. la operacin de temporizacin que muestra el diagrama siguiente.

Si se utiliza un temporizador con una resolucin de 1 ms, Q0.0 se activar durante un ciclo, siempre que el valor actual del temporizador se actualice tras ejecutarse el contacto normalmente cerrado T32 y antes de ejecutarse el contacto normalmente abierto T32. Si se utiliza un temporizador con una resolucin de 10 ms, Q0.0 no se activar nunca, porque el bit de temporizacin T33 permanece activado desde el principio del ciclo hasta que se ejecute el cuadro del temporizador. Una vez ejecutado ste, se ponen a 0 el valor actual del temporizador y su bit T. Tras ejecutarse el contacto normalmente abierto T33, se desactivarn T33 y Q0.0. Si se utiliza un temporizador con una resolucin de 100 ms, Q0.0 se activar durante un ciclo, siempre que el valor actual del temporizador alcance el valor de preseleccin.

Paul Glvez 2011

Si en vez del bit de temporizacin se utiliza el contacto normalmente cerrado Q0.0 como entrada de habilitacin para el cuadro del temporizador, la salida Q0.0 quedar activada durante un ciclo cada vez que el valor del temporizador alcance el valor de preseleccin.

Paul Glvez 2011

Temporizador de retardo a la conexin (TON)

Representacin del temporizador de tipo TON en lenguaje de programacin en esquema de contactos (KOP) La operacin Temporizador de retardo a la conexin (TON) cuenta el tiempo al estar activada (ON) la entrada de habilitacin. Si el valor actual (Txxx) es mayor o igual al valor de preseleccin (PT), se activa el bit de temporizacin (bit T). El valor actual del temporizador de retardo a la conexin se borra cuando la entrada de habilitacin est desactivada (OFF). El temporizador contina contando tras haber alcanzado el valor de preseleccin y para de contar cuando alcanza el valor mximo de 32767.

Programa de Control en lenguaje de programacin en esquema de contactos (KOP)

Cronograma, evolucin de las variables en el tiempo.

Paul Glvez 2011

Temporizador de retardo a la conexin memorizado (TONR)

Representacin del temporizador de tipo TONR en lenguaje de programacin en esquema de contactos (KOP) La operacin Temporizador de retardo a la conexin memorizado cuenta el tiempo al estar activada (ON) la entrada de habilitacin. Si el valor actual (Txxx) es mayor o igual al valor de preseleccin (PT), se activa el bit de temporizacin (bit T). El valor actual del temporizador de retardo a la conexin memorizado se mantiene cuando la entrada est desactivada (OFF). El temporizador de retardo a la conexin memorizado sirve para acumular varios perodos de tiempo de la entrada en ON. Para borrar el valor actual del temporizador de retardo a la conexin memorizado se utiliza la operacin Poner a 0 (R). El temporizador contina contando tras haber alcanzado el valor de preseleccin y para de contar cuando alcance el valor mximo de 32767. Ejemplo:

Programa de Control en lenguaje de programacin en esquema de contactos (KOP)

Paul Glvez 2011

Cronograma, evolucin de las variables en el tiempo.

Paul Glvez 2011

Temporizador de retardo a la desconexin (TOF)

Representacin del temporizador de tipo TOF en lenguaje de programacin en esquema de contactos (KOP) El Temporizador de retardo a la desconexin (TOF) se utiliza para retardar la puesta a 0 (OFF) de una salida durante un perodo determinado tras haberse desactivado (OFF) una entrada. Cuando la entrada de habilitacin se activa (ON), el bit de temporizacin se activa (ON) inmediatamente y el valor actual se pone a 0. Cuando la entrada se desactiva (OFF), el temporizador cuenta hasta que el tiempo transcurrido alcanza el valor de preseleccin. Una vez alcanzado ste, el bit de temporizacin se desactiva (OFF) y el valor actual detiene el contaje. Si la entrada est desactivada (OFF) durante un tiempo inferior al valor de preseleccin, el bit de temporizacin permanece activado (ON). Para que la operacin TOF comience a contar se debe producir un cambio de ON a OFF. Si un temporizador TOF se encuentra dentro de una seccin SCR y sta se encuentra desactivada, el valor actual se pone a 0, el bit de temporizacin se desactiva (OFF) y el valor actual no cuenta. Ejemplo:

Programa de Control en lenguaje de programacin en esquema de contactos (KOP)

Paul Glvez 2011

Cronograma, evolucin de las variables en el tiempo.

Paul Glvez 2011

Operaciones de contaje del S7-200

El PLC Simatic S7-200 ofrece al usuario un conjunto de instrucciones que permiten llevar la cuenta de cuntos eventos se producen durante la ejecucin del programa de control, esto es, cuntas veces una seal (una marca, una entrada, una variable, etc.) cambia de valor. Para poder almacenar cuntos eventos se han producido hasta un determinado momento, el PLC ofrece al usuario una zona de la memoria predefinida. Esta zona de la memoria se identifica con la letra "C" seguida de un nmero "XXX" que debe estar comprendido en el intervalo [0..255]. Se puede decir por tanto, que el usuario dispone de hasta 256 contadores distintos. El valor actual (VA) del nmero de eventos producidos se almacena en una variable del tipo CXXX cuyo tamo es una palabra (una WORD) y cuyo tipo es INT. Adems, por cada contador CXXX, el PLC ofrece al usuario una variable de tipo bit tambin identia como CXXX que tomar el valor "1" "0" dependiendo de ciertas condiciones detalladas ms adelante.

El S7200 ofrece tres tipos de contadores como se muestra a continuacin:


Contador de contaje adelante (CTU). Para cuentas ascendentes. Contador de contaje atrs (CTD). Para cuentas descendentes. Contador de contaje adelante/atrs (CTUD). Para cuentas ascendentes y descendentes.

La siguiente tabla muestra de manera resumida las acciones que las distintas operaciones de contaje llevan a cabo sobre el valor actual de la cuenta y el valor del bit del contador, en funcin del valor del los principales parmetros de entrada de dicha instruccin. (Yo quitara la columna Alimentacin/primer ciclo porque no entiendo lo que aporta, t qu haras?).

Paul Glvez 2011

Tipo de Valor actual contador (VA) Si el VA>=PV el bit del contador se pone a ON. El contador seguir contando hasta alcanzar los 32.767. Si el VA<=0 el bit del contador se pone a ON. El contador seguir contando hasta llegar a -32.767. Si el VA>=PV el bit del contador se pone a ON. El contador seguir contando hasta 32.767 32.767.

Flanco en entrada

Entrada R/LD

CTU

Un flanco en CU provoca el incremento del VA del contador.

Si el bit R del contador se activa, bit del contador OFF y VA=0.

CTD

Un flanco en CD provoca el decremento del VA del contador.

Si el bit Ld del contador de activa, bit del contador OFF, y se carga el valor PV al VA.

CTUD

Un flanco en CU provoca el incremento del VA del contador, mientras que un flanco en CD provoca el decremento del VA del contador.

Si el bit R del contador se activa, bit del contador OFF y VA=0.

Debido a los tiempos de procesamiento y de ciclo de scan, estas instrucciones de contaje slo son adecuadas para contar eventos con frecuencias limitadas. Para contar eventos de altas frecuencias (hasta 20KHz) se dispone de las instrucciones de contadores rpidos (HC).

Paul Glvez 2011

Contador ascendente CTU Esta es la sintaxis de la instruccin de contaje adelante.

Representacin del contador ascendente en lenguaje de programacin en esquema de contactos (KOP) El bloque funcional Contador ascendente (CTU) cuenta adelante desde el valor actual hasta el valor prefijado al producirse un flanco positivo en la entrada de contaje adelante (CU). Si el valor actual (VA) es mayor o igual al valor prefijado (PV), se activa el bit del contador. El contador se inicializa al activarse la entrada de desactivacin (R). El contador ascendente no se detiene hasta llegar al mximo valor que puede albergar en la variable (VA), es decir, 32.767. Nota: Puesto que cada contador dispone slo de un valor actual, no se podr asignar un mismo nmero a varios contadores. (Los contadores ascendentes, descendentes y ascendentes-descendentes acceden a un mismo valor actual).

Programa de Control en lenguaje de programacin en esquema de contactos (KOP)

Paul Glvez 2011

Cronograma, evolucin de las variables en el tiempo.

Paul Glvez 2011

Contador descendente CTD Esta es la sintaxis de la instruccin de contaje descendente.

Representacin del contador descendente en lenguaje de programacin en esquema de contactos (KOP) El bloque funcional Contador descendente (CTD) cuenta hacia atrs desde el valor prefijado al producirse un flanco positivo en la entrada de contaje atrs (CD). Si el valor actual (VA) es igual a cero, se activa el bit del contador. El contador se inicializa y carga el valor actual (CV) en el valor prefijado (PV) cuando se habilita la entrada de carga (LD). El contador atrs se detiene al alcanzar el valor cero. Ejemplo de uso del contador descendente CTD Nota: Puesto que cada contador dispone slo de un valor actual, no se podr asignar un mismo nmero a varios contadores. (Los contadores ascendentes, descendentes y ascendentes-descendentes acceden a un mismo valor actual).

Programa de Control en lenguaje de programacin en esquema de contactos (KOP)

Paul Glvez 2011

Cronograma, evolucin de las variables en el tiempo.

Paul Glvez 2011

Contador ascendente/descendente CTUD Esta es la sintaxis de la instruccin de contaje ascendente/descendente.

Representacin del contador ascendente/descendente en lenguaje de programacin en esquema de contactos (KOP) El bloque funcional Contador ascendente/descendente (CTUD) empieza a contar adelante cuando se produce un flanco positivo en la entrada de contaje adelante CU, y empieza a contar atrs cuando se produce un flanco positivo en la entrada de contaje atrs CD. El valor actual Cxx del contador conserva el contaje actual. El valor de preseleccin PV se compara con el valor actual cada vez que se ejecuta la operacin de contaje. Si el valor actual (Cxx) es mayor o igual al valor de preseleccin PV, se activa el bit de contaje Cxx. En caso contrario, se desactiva el bit. El contador se inicializa cuando se activa la entrada de desactivacin (R) o al ejecutarse la operacin Poner a 0. El contador adelante/atrs se detiene al alcanzar el mximo valor (32.767) o bien el mnimo valor (-32.767) posibles. Ejemplo de uso del contador ascendente/descendente CTUD Nota: Puesto que cada contador dispone slo de un valor actual, no se podr asignar un mismo nmero a varios contadores. (Los contadores ascendentes, descendentes y ascendentes-descendentes acceden a un mismo valor actual).

Paul Glvez 2011

Programa de Control en lenguaje de programacin en esquema de contactos (KOP)

Cronograma, evolucin de las variables en el tiempo.

Paul Glvez 2011

Operaciones comparacin

Las comparaciones se pueden realizar con bytes, enteros, enteros dobles y reales. Pero ambos operandos en una comparacin han de ser del mismo tipo. Estos operandos pueden ser constantes o posiciones de memoria, incluidos los valores actuales de los temporizadores o de los contadores. El RLO de una operacin de comparacin es un valor booleano.

Comparaciones con Bytes. Ejemplo de uso de comparadores

Las comparaciones con Enteros seran como las de Bytes pero cambiando la B por la I. Las comparaciones con Enteros Dobles seran como las de Bytes pero cambiando la B por la D. Las comparaciones con Reales seran como las de Bytes pero cambiando la B por la R.

Paul Glvez 2011

Paul Glvez 2011

Operaciones transferencia

La operacin de transferencia de valores, asigna el valor del parmetro IN a la posicin de memoria indicada en el parmetro de salida OUT. La operacin ser ejecutada, s y solo s, el valor del parmetro de entrada EN (enable) es "1". Este valor vendr determinado por el resultado de la red programada y conectada a la entrada EN. El parmetro de salida ENO toma en todo momento el mismo valor que EN y su utilidad es simplemente permitir la conexin de bloques en serie.

Operaciones de transferencia de Bytes. Las comparaciones con Palabras seran como las de Bytes pero cambiando la B por la W. Las comparaciones con Palabras Dobles seran como las de Bytes pero cambiando la W por la DW. Las comparaciones con Reales seran como las de Bytes pero cambiando la B por la R.

Paul Glvez 2011

Operaciones aritmticas

Las operaciones aritmticas en KOP se realizan entre Enteros (16 bits) y Reales (32bits). Estas operaciones se llevarn a cabo en el modulo de operacin aritmtica correspondiente cuando se active la entrada de activacin EN.

Operaciones con enteros. Las operaciones aritmticas con reales son iguales cambiando la I por R. Otras operaciones aritmticas muy tiles en KOP son el incremento y el decremento que nos permiten aumentar o disminuir una variable en una unidad cuando la entrada de activacin este activa, y el resultado saldr a una variable resultado.

Paul Glvez 2011

Estas operaciones pueden aplicarse a variables tipo Byte, Entero y Doble Entero.

Operaciones con Bytes. Las operaciones incremento con Enteros son iguales a las de con Byte pero cambiando B por I. Las operaciones incremento con Enteros Dobles son iguales a las de con Byte pero cambiando B por D.

Paul Glvez 2011

Subrutinas Las subrutinas facilitan la estructuracin del programa. Cuando programa principal llama a una subrutina para que sta se ejecute, subrutina procesa su programa hasta el final. El sistema retorna luego control al segmento del programa principal desde donde se llam a subrutina. el la el la

Las subrutinas sirven para estructurar o dividir el programa en bloques ms pequeos y, por tanto, ms fciles de gestionar. Los bloques ms pequeos facilitan la comprobacin y la eliminacin de errores tanto en las subrutinas como en el programa entero. Con las subrutinas tambin la CPU se puede utilizar ms eficientemente, llamando al bloque slo cuando se necesite, y no ejecutar todos los bloques en todos los ciclos. La operacin Llamar subrutina transfiere el control a la subrutina, se puede utilizar con o sin parmetros.

Ejemplo de llamada a subrutina con parmetros. En cada llamada a subrutina se pueden utilizar 16 parmetros de entrada/salida como mximo. Los valores de los parmetros se asignan de la siguiente forma a la memoria local en la subrutina:

Paul Glvez 2011

Los valores se asignan a la memoria local en el orden indicado por la operacin Llamar subrutina, comenzando dichos parmetros en L0. De uno a ocho valores binarios consecutivos se asignan a un slo byte comenzando en Lx.0 hasta Lx.7. Los valores de byte, palabra y doble palabra se asignan a la memoria local en bytes (LBx, LWx, LDx).

En la operacin "Llamar subrutina" con parmetros, stos deben concordar exactamente con las variables definidas en la tabla de variables locales de la subrutina. Los parmetros se deben organizar de la siguiente forma:

Los parmetros de entrada. Los parmetros de entrada/salida. Los parmetros de salida.

Ejemplo de una subrutina que hace regla de 3

Paul Glvez 2011

La operacin Retorno condicionado desde la subrutina, nos permite finalizar la subrutina en funcin de la combinacin lgica precedente.

Ejemplo de subrutina con retorno condicional. Un programa puede contar con 64 subrutinas como mximo. En el programa principal se pueden anidar (situar una llamada a subrutina dentro de otra) hasta 8 subrutinas. Las subrutinas no se pueden anidar en 1 subrutina de interrupcin. La recursin (la subrutina se llama a s misma) est permitida de manera indirecta, es decir, una subrutina no se puede llamar a s misma, ha de hacer la recusin por medio de otra subrutina, como muestra el cuadro.

Paul Glvez 2011

Ejemplo de recurrencia. Aunque la recursin est permitida, hay que utilizarla con mucha precaucin

Paul Glvez 2011

Interrupciones

Las rutinas de interrupcin se ejecutan como respuesta a un evento interno o externo asociado, permiten dar una respuesta rpida a dichos eventos. Tras haberse ejecutado la ltima operacin de la rutina de interrupcin, el control retorna al programa principal. Para salir de la rutina se puede ejecutar la operacin Retorno condicionado desde rutina de la rutina de interrupcin (RETI). Antes de poder llamar a una rutina de interrupcin es preciso establecer un enlace entre el evento de interrupcin y la parte del programa que se desee ejecutar cuando se presente el evento. La operacin Asociar interrupcin (ATCH) sirve para asignar el evento de interrupcin a una parte del programa. Para desactivar los eventos de interrupcin, eliminando la asociacin entre el evento y la correspondiente rutina se utiliza la operacin Desasociar interrupcin (DTCH). Las rutinas de interrupcin deben estructurarse de manera que devuelvan el control al programa principal y deben ser cortas con indicaciones precisas para evitar perodos demasiado largos que puedan producir situaciones imprevistas.

Operaciones con interrupciones.

Paul Glvez 2011

Cuando la CPU pasa a modo RUN, las interrupciones se inhiben. En modo RUN es posible habilitar el procesamiento de las interrupciones con la operacin Habilitar todos los eventos de interrupcin (ENI)) Ejecutando la operacin Inhibir todos los eventos de interrupcin (DISI) se inhibe el procesamiento de las interrupciones. No obstante, los eventos de interrupcin activos se siguen poniendo en la cola de espera.

Habilitar o Inhibir eventos.

Espero que les sirva de algo.

Atte. Paul Glvez 2/ 4/ 8/ 16/ 32/ 64/ 128/ 256/ 512/ 1024/ 2048/ 4096/ 8192/ 16384/ 32768

Vous aimerez peut-être aussi