Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Omron Curso PLC PDF
Omron Curso PLC PDF
15FP35CF005
Programación de
autómatas OMRON CJ/CP1
Documentación de referencia:
W394-ES2-07 Manual de programación CS/CJ
W474-E1-09 Manual de referencia de instrucciones
W393-E1-14 Manual de operación de la serie CS/CJ
W516-E1-01 Manual de operación del CP1L-EL y CP1L-EM
W451-E1-03 Manual de programación CP1L / CP1H
Disponibles en la web del fabricante del producto:
http://industrial.omron.es/
Contenido adicional:
Lista de reproducción en YouTube:
https://www.youtube.com/playlist?list=PL6w-_JQPzf2G5cTGHG3IOS8rKLKtyhpGY
Blog: http://automatizacioncavanilles.blogspot.com.es/
Debido al tremendo auge de la industria, cada vez las máquinas habilitadas para procesos productivos
eran más grandes y complejas, necesitando armarios eléctricos donde poder ubicar el aparellaje cada
vez más voluminosos y complicados, aumentando las dificultades de reparación de las mismas.
En 1968, las factorías de automóviles de Ford y General Motors, construyeron conjuntamente el primer
‘Transfer’ controlado electrónicamente. Este equipo electrónico tenía ventaja sobre los automatismos
convencionales basado en relés, temporizadores, etc. de que era fácilmente programable, sin necesidad
de recurrir a ordenadores externos. Se puede decir que éste fue el primer Autómata Programable o PLC
(Program Logic Control) y fue diseñado por Allen Bradley.
No existe un lenguaje común a todos los autómatas, cada marca utiliza el suyo propio. La norma
internacional de estandarización IEC normaliza de los lenguajes de programación entre las diferentes
marcas, de forma que se puedan adaptar entre las diferentes marcas. Lo que sí es igual es el concepto
de trabajo, como todos se basan en esquemas eléctricos, todos los PLC´s son básicamente iguales pero
con diferentes juegos de instrucciones, de esta manera se puede decir que una vez conocida una marca
conoces el resto.
VENTAJAS E INCONVENIENTES
Ventajas:
Inconvenientes:
Necesidad de un programador.
Coste más elevado.
Necesidad de personal especializado.
2. Estructura de un PLC
La mejor opción para el control de procesos industriales es el empleo de autómatas programables. Estos
aparatos se basan en el empleo de un microcontrolador para el manejo de las entradas y salidas. La
memoria del aparato contendrá tanto el programa de usuario que le introduzcamos como el sistema
operativo que permite ejecutar secuencialmente las instrucciones del programa. Opcionalmente, en la
mayoría de los autómatas, también se incluyen una serie de funciones pre-implementadas de uso
general (como reguladores PID).
La mayor ventaja es que si hay que variar el proceso basta con cambiar el programa introducido en el
autómata (en la mayoría de los casos). Otra ventaja es que el autómata también nos permite saber el
estado del proceso, incluyendo la adquisición de datos para un posterior estudio.
Exteriormente nos encontraremos con cajas que contienen una de estas estructuras, las cuales poseen
indicadores y conectores en función del modelo y fabricante.
Para el caso de una estructura modular se dispone de la posibilidad de fijar los distintos módulos en
raíles normalizados, para que el conjunto sea compacto y resistente.
Los micro-autómatas suelen venir sin caja, en formato kit, ya que su empleo no es determinado y se
suele incluir dentro de un conjunto más grande de control o dentro de la misma maquinaria que se debe
controlar.
Sección de entradas: se trata de líneas de entrada, las cuales pueden ser de tipo digital o
analógico. En ambos casos tenemos unos rangos de tensión característicos, los cuales se
encuentran en las hojas de características del fabricante. A estas líneas conectaremos los
sensores.
Sección de salidas: son una serie de líneas de salida, que también pueden ser de carácter digital
o analógico. A estas líneas conectaremos los actuadores.
Tanto las entradas como las salidas están aisladas de la CPU según el tipo de autómata que utilicemos.
Normalmente se suelen emplear optoacopladores en las entradas y relés/optoacopladores en las
salidas. Aparte de estos elementos podemos disponer de los siguientes:
Interfaces: facilitan la comunicación del autómata mediante enlace serie con otros dispositivos
(como un PC).
MEMORIA
Dentro de la CPU vamos a disponer de un área de memoria, la cual emplearemos para diversas
funciones:
Cada autómata divide su memoria de esta forma genérica, haciendo subdivisiones específicas según el
modelo y fabricante.
Para dar respuesta a las distintas demandas, la CPU utiliza distintos tipos de memoria, según sea su
capacidad de almacenamiento, su velocidad de lectura escritura, su volatilidad, etc.
CPU
Vigilar que el tiempo de ejecución del programa de usuario no excede un determinado tiempo
máximo (tiempo de ciclo máximo). A esta función se le suele denominar Watchdog (perro
guardián). Si se sobrepasó el tiempo máximo de ciclo, se activara la señal de error
correspondiente.
Ejecutar el programa de usuario.
Crear una imagen de las entradas, ya que el programa de usuario no debe acceder
directamente a dichas entradas.
Renovar el estado de las salidas en función de la imagen de las mismas obtenida al final del
ciclo de ejecución del programa de usuario.
Comprobación del sistema.
Para ello el autómata va a poseer un ciclo de trabajo (SCAN), que ejecutará de forma continua:
IMAGEN DE LAS
ENTRADAS ENTRADAS
EJECUCIÓN DEL
PROGRAMA DE
USUARIO
IMAGEN DE LAS
SALIDAS
SALIDAS
WATCHDOG
El Tiempo de Respuesta, es el tiempo necesario para llevar a cabo las distintas operaciones de control.
En particular, el tiempo de respuesta de un sistema (activación de una señal de salida en relación a una
entrada) viene determinado principalmente por:
UNIDADES DE E/S
Las E/S son leídas y escritas dependiendo del modelo y del fabricante, es decir pueden estar incluidas
sus imágenes dentro del área de memoria o ser manejadas a través de instrucciones específicas de E/S.
las veremos más detenidamente en el punto siguiente.
INTERFACES
Todo autómata, salvo casos excepcionales, posee la virtud de poder comunicarse con otros dispositivos
(como un PC). Lo normal es que posea una E/S serie del tipo RS-232 / RS-422, USB ó RJ45. A través de
esta línea se pueden manejar todas las características internas del autómata, incluido la programación
del mismo, y suele emplearse para monitorización del proceso en otro lugar separado.
ENTRADAS
SALIDAS
Son las encargadas de transmitir las órdenes dadas por la CPU del autómata en función de la
programación al sistema automatizado. Nuevamente distinguimos dos tipos de salidas:
Analógicas: Admiten valores dentro de un rango continuo de valores posibles. Son salidas
analógicas variadores de velocidad, válvulas de control de flujo, actuadores lineales,
resistencias variables, ... La resolución y el tiempo de respuesta son los parámetros que
determinan la calidad de la unidad analógica.
Las entradas y salidas digitales pueden estar integradas en el propio PLC (modelos compactos CPM2A,
CP1L…), o en unidades específicas de E/S que se acoplan a la CPU (modelos modulares CJ1M, CJ2M…).
Por el contrario, para las analógicas deberemos disponer de un módulo de expansión adicional, (como el
MAD11 para la serie CP que dispone de 2 entradas y 1 salida digitales, de 12 bits de resolución o el
MAD42 de la serie CJ que integra 4E/2S de 13 bits de resolución) y se conectan a través de una bahía de
expansión de periféricos.
Existen además entradas y salidas especiales para determinadas aplicaciones, como pueden ser tareas
de interrupción, contaje rápido, entradas y salidas de pulsos, medida de frecuencia… Algunas de ellas
van integradas en la propia CPU de los modelos compactos, mientras que otras es preciso disponer de
unidades de expansión específicas para la función a realizar.
Tomamos como referencia para el cableado un dispositivo compacto, como puede ser la serie CPM2 o
CP1L. Consultar siempre el manual de instalación del autómata antes de realizar ninguna operación.
Alimentación
Conectar la toma de tierra a una puesta a tierra de menos de 100 para proteger al PLC de descargas
eléctricas y operaciones incorrectas.
Entradas
Aunque los contactos de las entradas soportan valores de tensión elevados, como la mayoría de
sensores funcionan a 24 V en corriente continua, es recomendable utilizar esta tensión para alimentar
las entradas, bien utilizando una fuente externa o la que viene integrada en el propio autómata (sólo si
la carga de los dispositivos a conectar no es muy elevada).
En la imagen anterior vemos la conexión de las entradas utilizando una fuente de alimentación externa
con negativo (-) común (en línea discontinua veríamos la conexión con positivo (+) común).
En la siguiente imagen tenemos la forma de conectar la fuente auxiliar de tensión que incorporan los
autómatas de corriente alterna. La conexión es a negativo común, pero puede hacerse con positivo
común de igual forma. Es importante respetar la intensidad máxima que suministra la fuente (300 mA).
Uno de los inconvenientes mayores de este tipo de autómatas es que el COMÚN (terminal COM de la
imagen), es compartido por todas las entradas. Esto implica que todos los sensores han de tener las
mismas características, es decir todos han de ser PNP (salida positiva) o todos NPN (salida negativa),
no pudiendo mezclar sensores de distintos tipos (salvo que los hagamos pasar por un relé u otro
dispositivo y cambiemos la polaridad).
Si utilizamos sensores PNP deberemos conectar el terminal negativo (-) de la alimentación al COM. Si
estos son NPN, conectaremos el terminal positivo (+) al conector COM del autómata. Lógicamente, los
pulsadores, finales de carrera y demás dispositivos de entrada mecánicos, se alimentarán de acuerdo a
este esquema (si los sensores son PNP, los pulsadores se alimentan con el terminal +, si son NPN se
alimentarán con el terminal -).
Salidas
Existen modelos con salida a transistor (PNP ó NPN) y con salida a relé. En este último caso, la
intensidad máxima para cada salida es de 2A y de 4A para el común de cada grupo de salidas,
independientemente del valor de tensión y de que sea en alterna o en continua. En los modelos con
salida a transistor, la carga máxima de la salida será de 300 mA y un máximo de 900 mA por común (sólo
en corriente continua).
En el caso de las salidas, tendremos varios comunes (COM), algunos para salidas especiales (la X.00 y la
X.01) que tienen un COM exclusivo, porque normalmente esas salidas son especiales, permitiendo
salidas de pulsos, y otros que son compartidos por varias salidas.
Esto permite conectar distintos tipos de actuadores de características diferentes, agrupando los de
características similares a un mismo común. Esto es, puedo tener salidas a 24 V en continua con positivo
o negativo común y, a la vez, otros grupos de salidas a 24, 50 ó 230 V en corriente alterna, dependiendo
de la fuente con la que alimente ese común.
Especificación
Salida Relé
Salida 2 A (24 V cc ó 250 V ca)
Común 4 A / común
Especificación
Salida transistor
Salida 300 mA (4,5 a 30 VDC)
Común 0,9 A / común
Si todos los dispositivos de salida son de características eléctricas similares, puentearé los distintos
comunes, tal y como aparece en la figura anterior.
La conmutación rápida de cargas inductivas conectadas a las salidas de relé del PLC pueden provocar
perturbaciones y sobrecorrientes que es preciso controlar, tanto por la durabilidad de los dispositivos de
conmutación como para evitar perturbaciones en el sistema. De acuerdo con la EN61131-2, será
necesario tomar alguna medida si se producen más de 5 conmutaciones por minuto en el conjunto de
las salidas. Las medidas más habituales son:
En caso de receptores que provoquen una alta intensidad de corriente, como podría ser una lámpara
incandescente, se pueden limitar estas corrientes conectando una resistencia en serie o en paralelo
según se muestra en las imágenes siguientes:
5. Áreas de memoria
La memoria del autómata se encuentra dividida en dos áreas fundamentales, cada una con funciones y
características distintas:
Área de Datos: Se utiliza para almacenar valores o para obtener información sobre el
estado en que se encuentra el autómata.
Esta área se encuentra dividida en varias zonas según las funciones que realizan: CIO, IR, W, SR, AR, HR,
LR, DM (D en la serie CP/CJ), TR, T/C.
Denominación Valor
Bit 0ó1
Byte 8 bits
Palabra ó Canal 2 bytes ó 16 bits
Doble palabra 4 bytes ó 32 bits
Los autómatas de OMRON trabajan normalmente en canales, esto es, en unidades de 16 bits, aunque
para determinadas operaciones puede utilizar más de un canal.
DIRECCIONAMIENTO
El formato de las direcciones de memoria del autómata comprende dos dígitos separados por un punto,
indicando el número de canal y el bit (XXX.YY) En caso de necesidad, se indicará el área de memoria a
que pertenece:
El acceso a estas áreas de memoria puede hacerse bit a bit o con todo el canal. Aunque se puede hacer,
no es preciso indicar que se trabaja con esta área, por ejemplo 20.01. En el caso de los CJ/CP sí que es
necesario indicar el área de trabajo W, por ejemplo W20.01.
Es un área de memoria volátil, esto es, en caso de falta de alimentación o cambio de modo de
operación, no retiene el estado en que se encuentran.
Los distintos modelos compactos como CPM2A/CP1L se definen por el número de puntos de E/S que
llevan incorporados (hay modelos entre 10 y 60 puntos de E/S integradas en la misma carcasa).
Tomando como referencia un modelo intermedio, con 30 puntos de E/S, de las que 18 son entradas y 12
salidas. Las direcciones físicas vienen indicadas en la carcasa, junto a unos leds que indican su estado.
Las unidades de expansión, que según el modelo pueden conectarse a la CPU, irán tomando los canales
de direccionamiento en función de la posición que tengan. Por ejemplo, para un CP1L de 40 E/S con 3
unidades de expansión, las direcciones de E/S que adoptará cada módulo serían:
Esto es, cada unidad adoptará el primer canal disponible de entradas o salidas a partir del 2 en el caso
de las entradas y del 102 en el caso de las salidas.
(Para el CPM2A, son bits que ocupan un área concreta, que dependen del modelo. En la serie CS/CJ/CP
no están en las mismas direcciones, si no que ya utilizan un área de configuración CF y también el área
auxiliar AR)
Es un tipo de memoria volátil, pierde su estado ante un corte de alimentación o cambio de estado del
autómata. Los bits de esta área que no se utilizan pueden ser empleados como bits de trabajo.
Es necesario especificar que direccionamos un relé de esta área indicándolo delante mediante HR (por
ejemplo: H2.01).
Aparte del numero de temporizador / contador, deberemos indicar el valor de preselección hasta el que
queremos que alcance, normalmente será un valor numérico, que introduciremos precedido de una
almohadilla (# para indicar que es un valor decimal). También puede direccionarse a un canal o un DM.
En los modelos CS/CJ/CP ya no comparten la misma área de memoria temporizadores y contadores, por
lo que pueden tener el mismo número identificativo y el número de temporizadores y contadores que
se pueden utilizar es muy superior (hasta 4096 temporizadores y 4096 contadores en un CJ1M ó un
CP1L con CPU M).
Se almacena aquí el registro de errores y los datos de configuración del autómata (modo de
conexión, estado en el arranque, puerto de comunicaciones…).
448 puntos
Bits auxiliares especiales (SR) SR 228 a SR 255 SR 22800 a SR 25515 Estos bits son para funciones específicas.
(28 canales)
Estos bits almacenan temporalmente el
Bits de memoria temporal (TR) 8 puntos --- TR 0 a TR 7 estado ON/OFF de los puntos de
bifurcación del circuito.
Estos bits se pueden utilizar para
cualquier cometido en el programa, e
320 puntos
Bits de retención (HR) HR 00 a HR 19 HR 0000 a HR 1915 incluso se pueden utilizar para
(20 canales) almacenar estados ON/OFF en caso de
corte de alimentación.
Estos bits tienen funciones específicas, e
384 puntos incluso se pueden utilizar para
Bits auxiliares (AR) AR 00 a AR 23 AR 0000 a AR 2315
(24 canales) almacenar estados ON/OFF en caso de
corte de alimentación.
Estos bits se utilizan para E/S de datos de
256 puntos
Bits de enlace (LR) LR 00 a LR 15 LR 0000 a LR 1515 enlace 1:1. También se pueden utilizar
(16 canales) como bits de trabajo.
Bits para temporizadores y contadores.
Temporizador/Contador
256 puntos TIM/CNT 000 a TIM/CNT 255 No utilizar el mismo número para
(TIM/CNT) temporizador y contador.
Bits de E/S
Estos bits están asignados a terminales de entrada y salida y reflejan el estado ON/OFF de puntos de entrada y salida. Para el
CPM1, los bits de entrada comienzan en 00000 y los de salida en 01000.
Estos bits se pueden utilizar para cualquier función en programas, pero no se pueden utilizar para entrada o salida a terminales
de E/S.
Estos bits se utilizan para almacenar selecciones y valores actuales para todas las funciones, así como para indicadores
asociados con la operación del CPM2A.
Estos bits almacenan temporalmente el estado ON/OFF de puntos de bifurcación del circuito, si no se pueden escribir, sin
alteración, diagramas de relés complejos. El bit sólo se utiliza cuando se programa en nemónico. No es necesario tener en
cuenta los bits TR cuando se programa con diagramas de relés, dado que todo el proceso se efectúa interna y
automáticamente.
Los mismos bits TR en el mismo bloque de instrucción no se pueden utilizar más de una vez, pero sí en diferentes bloques.
Los bits TR no se pueden utilizar para monitorizar el estado ON/OFF mediante las funciones de monitorización de dispositivos
periféricos.
Estos bits retienen el estado ON/OFF incluso cuando la fuente de alimentación del CPM1 está desconectada o cuando se
arranca y para la operación. Estos bits se utilizan exactamente igual que bits de trabajo.
Estos bits retienen las funciones primarias, tales como indicadores, asociadas con la operación del CPM2A. El bit retiene el
estado ON/OFF cuando se desconecta la alimentación del CPM2A o cuando se para y arranca la operación.
Estos bits se pueden utilizar para intercambiar datos con PLCs remotos en conexiones 1:1 entre CPM1s así como entre un
CPM2A y un CQM1 o un C200HS.
Temporizador/Contador (TIM/CNT)
Este es un temporizador/contador utilizado con instrucciones TIM, TIMH(15), CNT y CNTR(12). Dado que el número es el mismo
para ambas instrucciones, no utilizar el mismo número dos veces, incluso para diferentes instrucciones.
El número de temporizador/contador se designa como dato de canal, cuando se utiliza el valor de temporizador/contador,
mientras que se designa como dato de bit, cuando el temporizador/contador se utiliza como un Indicador de tiempo/contaje
Alcanzado.
Se accede a los datos en unidades de canal. Los contenidos de la memoria de datos se retienen si se desconecta la fuente de
alimentación del CPM2A o si la operación se arranca y se para. De DM 0000 a DM 1999 y de DM 2022 a DM 2047 se pueden
utilizar para cualquier función, pero el resto de canales están asignados a funciones específicas. Sin embargo, de DM 1000 a DM
1021 están disponibles para programas mientras no se hayan designado para almacenar el histórico de errores por los bits 00 a
03 de DM 6654.
Los bits SR se utilizan para almacenar las selecciones y valores actuales para todas las funciones, incluyendo indicadores de
estado de operación de CPM2A, indicadores de inicio de operación, destinos de salida de pulso de reloj, selección analógica,
contadores de alta velocidad e interrupciones de modo de contador.
MONITOR: Es igual al modo RUN, pero con comunicaciones a través del cable de programación,
normalmente se utilizará para probar y monitorizar un nuevo programa.
El estado y comportamiento del PLC, según cada uno de los modos de funcionamiento se resume en la
siguiente tabla:
Podemos conocer el modo en que se encuentra el PLC mediante cuatro indicadores luminosos tipo LED,
visibles sobre la carcasa frontal, en el CPM2A hay 4 led.
PWR: Led verde que nos indica si el autómata tiene alimentación eléctrica.
RUN: Led verde que nos indicará si el autómata se encuentra en los modos de funcionamiento o
monitorización.
COMM: Indicador ámbar que parpadeará de modo rápido cuando existe comunicación con el
software de programación.
En los CP1L tendremos 6 LED de estado, la conexión será por cable USB o RJ45 y tendremos uno o dos
módulos de ampliación en los que podremos conectar distintos interfaces de comunicación (RS232,
RS485, RJ45 o panel de operación).
CP1L (USB)
CP1L (Ethernet)
Tradicionalmente los PLC de Omron se han comunicado por RS232 utilizando protocolos específicos. En
los últimos modelos se impone la comunicación por USB y por RJ45.
Otros protocolos de comunicación que aparecen requieren una tarjeta dedicada en el PC para
establecer la comunicación, como en el caso de Controller Link.
Es una utilidad muy práctica que permite a CX Programmer conectarse de forma automática a un PLC sin
necesidad de conocer las características del puerto de comunicación del mismo, ya que va probando los
diferentes protocolos y configuraciones posibles hasta establecer la comunicación.
En función del modelo y el puerto de comunicación utilizado hay varias formas de utilizar este sistema,
desde el menú ‘PLC’ o desde la barra de herramientas:
(1) Para todos los autómatas con comunicación por puerto serie DB9
(2) Para el CP1L-E hay una utilidad exclusiva para localizarlo a través de Ethernet (requiere CX
Programmer 9.3 o superior)
(3) Para los autómatas con comunicación por puerto Ethernet/IP
Usando estas opciones, se buscará al PLC conectado y se descargará el programa que tenga cargado y
sus configuraciones en CX Programmer.
(LD NOT) Leer bit negado: Determina el estado inverso del bit (B)
como una condición de ejecución para posteriores operaciones del
programa. Si el bit (B) está activo no nos dará continuidad esa línea
de programa, deteniendo la ejecución en ese punto, si no lo está, dará continuidad.
(OUT NOT) salida negada: Pone a OFF el bit designado para una condición de
ejecución ON y lo pone a ON para una condición de ejecución OFF. Esto es, la salida
se activará sólo si los contactos previos no tienen continuidad.
Programas de ejemplo:
Los ejemplos utilizando entrada y salidas negadas no tienen equivalente eléctrico. En los casos anteriores,
negando la entrada o la salida, el circuito se comportará de forma contraria, salvo que neguemos ambas de forma
simultánea (doble negación = afirmación).
DUPLICACIÓN DE SALIDAS
Con las mismas condiciones de ejecución pueden ponerse múltiples salidas en paralelo, esto es, una
misma condición del programa puede activar varias salidas de forma simultánea. (Nota: una misma
condición puede activarme más de una salida, lo que no está permitido es utilizar la misma salida en dos
puntos distintos del programa).
Las funciones AND y OR, así como las salidas en paralelo pueden combinarse.
Programas de ejemplo:
En este caso bastará que sólo una de las entradas, 01 ó 02 esté activa para
que se active la salida 1001.
Por último, para que se active la salida, será necesario que estén activas la
entrada 03 y además o bien la 01 ó la 02 ó ambas a la vez.
El programa será una traducción casi literal de un circuito eléctrico, utilizando una marca de la propia
salida en paralelo (función OR) con el pulsador de marcha, y los pulsadores de de marcha y paro
conectados en serie (función AND).
Esta función realiza el enclavamiento de un bit, activado por una entrada de set (S) y desactivado
por una entrada de reset (R). Es equivalente al ejemplo anterior, pero resumido en una única función. En
caso de recibir señales simultáneas por ambas entradas, siempre predomina el reset sobre el set.
Función RSET: Pone el bit operando a OFF cuando la condición de ejecución es ON.
Circuito eléctrico
S1 Paro (NC) 01
S2 Marcha (NA) 02
K1 Contactor 10.01
Pulsando en S2 (entrada 02), cerramos el
circuito que alimenta la bobina del contactor
K1 (salida 10.01), realimentándose mediante
un contacto auxiliar (10.01).
Al pulsar el paro S1 (entrada 01) cortamos la
alimentación, desactivándose la bobina del
contactor.
En el esquema anterior tenemos que el pulsador de paro (S1) es un cerrado físico, esto es, en
condiciones normales de funcionamiento dará continuidad y cuando se pulse, interrumpirá el circuito.
Como vemos, este contacto se programa utilizando instrucciones lógicas como ABIERTO, del mismo
modo que el pulsador de marcha (S2), que es, sin embargo, un contacto normalmente abierto. Esta sería
la programación correcta para que funcionamiento del circuito sea el que queremos.
Sin embargo, cuando utilizamos las funciones KEEP o SET y RSET, utilizamos la entrada negada de S1, ya
que si no, al tratarse de un cerrado físico, nos activaría la entrada de reset, impidiendo activar el
circuito.
Lo que no podemos cambiar en ningún caso es el tipo de entrada que tenemos conectada al PLC,
dependiendo de nuestra estrategia de programación pondremos un contacto de forma normal o de
forma negada, depende de las funciones usadas o de la funcionalidad que queramos en el sistema.
No debemos confundir los contactos normalmente cerrados con entradas de programa negadas,
dependerá de cada caso. Como orientación, si sólo usamos un Ladder con instrucciones lógicas, los
contactos cerrados se programarán sin negar, mientras que si usamos funciones (KEEP, SET/RSET), los
contactos cerrados deberán negarse.
Es un temporizador a la conexión que se activa cuando su condición de ejecución es ON, y se resetea (al
valor seleccionado) cuando la condición de ejecución se pone en OFF. Una vez activado, TIM mide en
unidades de 0,1 segundo desde el valor.
El TIMH es un temporizador rápido, igual que el anterior y trabaja con unidades de 0,01s.
Si la condición de ejecución permanece en ON lo suficiente para que transcurra el tiempo fijado en TIM,
se pondrá a ON el indicador de finalización del número de TC utilizado y permanecerá en dicho estado
hasta que se resetee TIM (es decir, hasta que su condición de ejecución se ponga en OFF). El valor que
se muestra en el temporizador es el que resta hasta alcanzar el valor de consigna, con lo que este tipo
de temporizador realmente está descontando el tiempo.
A diferencia del temporizador normal, que se resetea cada vez que deja de cumplirse la condición de
ejecución, el TTIM mantiene el valor de contaje, acumulando el tiempo total que la entrada ha estado
activa, hasta que sea reseteado mediante la entrada de la función.
Además hay que tener en cuenta que el valor que se muestra será el acumulado, esto es, no
decrementa como los temporizadores normales, sino que incrementa y acumula el valor.
La llamada a los bits asociados a los temporizadores se ha de hacer con T más el número de
temporizador (ejemplo correcto T0051, en vez del incorrecto TIM0051).
Contador CNT
CNT se utiliza para descontar a partir del valor fijado (SV) cuando la condición de ejecución en el impulso
de entrada pase de OFF a ON, el valor del temporizador será reducido en uno, siempre que CNT se
ejecute con una condición de ejecución ON. Si la condición de ejecución no ha cambiado, o lo ha hecho
de ON a OFF, el valor del CNT no cambiará. El indicador de finalización para un contador se pone a ON
cuando alcanza cero y permanecerá en ON hasta que el contador se resetee. El contador se resetea
(puesta a cero) con una entrada de reset, R. Cuando R pasa de OFF a ON, se resetea al valor fijado.
Se trata de un contador reversible y circular, disponiendo de dos condiciones de ejecución una que
incrementa, otra que resta, y la entrada de reset. Se activará al alcanzar el valor prefijado (SV) y el
cero. Si el contador recibe simultáneamente impulsos por el incremento y el decremento, no modificará
su valor.
La llamada a los bits asociados a los contadores se ha de hacer con C más el número de contador normal
o reversible (ejemplo correcto C0051, en vez del incorrecto CNT0051).
Al trabajar en BCD el valor de temporizadores y contadores está limitado a un rango de #0000 a #9999,
sin embargo es posible usarlos en modo binario, con lo que el rango llegará hasta &65535 en decimal (o
#FFFF en headecimal). Este funcionamiento se puede ajustar en las propiedades del PLC, pero ambos
modos de funcionamiento son incompatibles, o trabajan en binario o en BCD. De hecho las
instrucciones son diferentes, TIMX, TIMHX, TTIMX, CNTX y CNTRX, son las instrucciones equivalentes a
las anteriores en modo binario.
Si cambiamos el modo de
funcionamiento, tendremos que
cambiar las instrucciones ya que
daría error.
DIFU(013) pone en ON el bit designado (B) durante un ciclo de scan cuando la señal de entrada pasa a
ON.
DIFD(014) pone en ON el bit designado (B) durante un ciclo de scan cuando la señal de entrada pasa a
OFF.
En los autómatas de las series CP1 y CJ1/CJ2, se pueden usar las funciones DIFU y DIFD, además también
es posible utilizar flancos sin necesidad de definirlos como función y además se pueden seleccionar
directamente al introducir los contactos. Cuando se utilicen esos contactos aparecerán con una flecha
que indica si se trata de un flanco ascendente () o descendente ().
IL(02) se utiliza siempre junto con ILC(03) para crear enclavamientos. Si la condición de ejecución de
IL(02) es ON, el programa se ejecutará como está escrito, con una condición de ejecución ON utilizada
para iniciar cada línea de instrucción desde el punto en que se encuentra IL(02) hasta la siguiente
ILC(03). Si la condición de ejecución para IL(02) es OFF, la sección enclavada entre IL(02) y ILC(03) se
tratará como se indica en la siguiente tabla:
Elemento Comportamiento
Salidas Puesta a OFF
Temporizadores Reseteo
Contadores Se mantiene el valor, pero no reciben impulsos
KEEP Se mantiene el estado del bit
Resto de instrucciones No se ejecutan las instrucciones y todos los bits y
canales de IR, AR, LR, HR y SR escritos como operandos
en las instrucciones se ponen a OFF.
IL(02) y ILC(03) no han de usarse exactamente por parejas. IL(02) se puede utilizar varias veces en una
columna, con cada IL(02) creando una sección enclavada hasta la siguiente ILC(03). ILC(03) no se puede
utilizar a no ser que haya al menos una IL(02) entre ella y cualquier ILC(03) anterior.
Ejemplo de Aplicación
Comparaciones (CMP)
Función Comparar: CMP (20) (Todos los modelos de PLC)
Bits de comparación:
En las series CS/CJ/CP pueden usarse las comparaciones como un contacto más (igual que un LD, OR o
AND) e incluirse dentro del esquema de forma que crearán una condición de ejecución ON cuando el
valor sea cierto.
Ejemplo de aplicación:
Vamos a activar diferentes salidas en función del valor que tenga un contador. Definimos un contador
CNT 001 y le damos el valor BCD #010
Realizamos una comparación al valor decimal #05 de modo que dependiendo del valor en el contador,
se nos activen distintas salidas:
Para que me realice lo comparación en todo momento, utilizo el bit de Siempre ON (P_on) que esta
siempre activo. También podríamos haber utilizado una entrada o una marca cualquiera, de forma que
sólo compare en función de que esté o no activa esa entrada o marca. Así mismo, en vez de comparar
valores numéricos, podríamos haber comparado dos canales completos, un canal con un valor
numérico, etc.
Los comparadores en este caso se introducen como una instrucción y la sintaxis será:
En el ejemplo de la imagen: la comparación será cierta cuando el valor del contador sea mayor o igual
que 5, ya que debe interpretarse la instrucción como (#05 ≤ C1)
Función:
Dependiendo de la aplicación se utilizará en su variante diferencial @MOV, para que sólo se ejecute una
vez en el cambio de la condición de OFF a ON. Si no es diferencial se ejecutará cada vez que se escanea
(varias veces en un segundo, dependiendo del programa).
Con MOVL se transfiere una doble palabra (32 bits) en cada operación de movimiento.
Ejemplo de aplicación:
Dispongo de dos entradas con las que selecciono dos tiempos diferentes para el temporizador
Con la entrada 00 iniciamos el temporizador que, en función del tiempo registrado en el DM tardará
más o menos tiempo en activar una salida (10.01).
Nota: el programa mostrado es para un PLC de la serie C, si se usa un CJ/CP se deberán escribir las áreas
de datos como D en vez de DM.
Cuando la entrada de alimentación está activa, incrementará el canal destino (Wd). Si no se utiliza en
forma diferencial (@INC), el valor del canal Wd aumentará a cada ciclo de scan (varias veces en un
segundo, dependiendo del programa), por lo que habrá que combinarla con DIFU (flanco ascendente) o
DIFD (flanco descendente) para aumentar el valor una sola vez.
Cuando la entrada de alimentación está activa, reducirá el valor del canal destino (Wd). Funciona
igual que la función anterior (INC), pero disminuyendo el valor del canal de destino.
En las series CJ/CS y los nuevos CP1 la instrucción se escribe de otra forma (++/- -) en binario y (++B/- -
B) en BCD, junto con las variantes diferenciales (@++/@- -) que sólo incrementan/decrementan cuando
cambia el valor del bit que activa la función. También existe la posibilidad de usar doble palabra para los
datos (++L/--L y ++BL/--BL), incrementando el valor de contaje.
Ejemplo de Aplicación
Una vez que hemos alcanzado el valor consignado, hemos de poner a 0 el DM, utilizando la orden MOV
y moviendo el valor 0 al DM10, lo que hacemos en el ejemplo con una comparación llevada a un KEEP,
para después resetearlo con una entrada.
Para un programa con sólo dos detectores (podrían incluirse más con más funciones @INC), tendríamos:
El mismo programa anterior utilizando los flancos ascendentes (DIFU) de las entradas de los detectores.
Como vemos, al tener que definir los flancos, se incrementan las líneas de programa.
El mismo programa para los autómatas serie CP1L / CJ1M, utilizando las funciones @++B y las
comparaciones de la serie CS/CJ/CP.
Observaciones:
Si no se usa la función ++B en su variante diferencial @++B, mientras esté activo el detector mandará un
pulso y por tanto un incremento en cada ciclo de scan (varias decenas por segundo).
La 'Salida' activa el MOV del valor #00 al canal D10, por lo que hasta que no reseteemos esta, seguirá
mandando el valor #00, por lo que aunque se detecten nuevas piezas no se incrementará el valor en el
D10 (realmente se incrementará, pero será sobreescrito con el #00 inmediatamente). La comparación
puede hacerse con la función CMP, tal y como figura en el ejemplo anterior.
Si no se indica que será en BCD, la instrucción se ejecutará en modo binario, con lo que el contaje
utilizará los 16 bits del canal permitiendo un contaje mayor, de -32768 hasta +32767.
Función:
SFT(10) se controla por tres condiciones de ejecución, I (estado a desplazar ON =1 u OFF = 0), P (pulso de
condición de desplazamiento) y R (Reset o puesta a OFF = 0).
Cada vez que recibimos un pulso por la entrada P, se va a desplazar el estado del bit de la entrada I una
posición a la izquierda. Es decir, si la entrada I está en (ON = 1), a cada pulso (flanco de subida de la
entrada P), este valor se irá desplazando a la izquierda. Si la entrada I se mantiene activa se irán
poniendo a 1 todos los bits del canal. Si la entrada I está en (OFF = 0), a cada pulso de la entrada P, se
irán poniendo a 0 todos los bits del canal. La última posición de la izquierda se pierde con cada pulso
recibido.
Bit más significativo Canal Final Bit menos significativo Bit más significativo Canal Inicial Bit menos significativo
Cuando se activa la entrada de reset R (se pone a ON = 1), todos los bits en el registro de
desplazamiento se pondrán a (OFF = 0) y el registro no operará hasta que R se ponga en OFF de nuevo.
Programa de ejemplo:
Registro de desplazamiento que a intervalos de 1 segundo (255.02 = P_1s. Bit de pulsos de 1 segundo)
activa alternativamente las salidas del canal 10.
Al activar la entrada 01, comienza una secuencia que va activando alternativamente las salidas del canal
10, desde la 10.00 hasta la 10.07, a intervalos de 1 segundo.
En cualquier momento del proceso podemos “resetear” el sistema activando la entrada 02, lo que
detiene la secuencia, desactivando todas las salidas.
Función:
SFTR(84) se utiliza para crear un registro de desplazamiento de uno o varios canales que puede
desplazar datos a derecha o izquierda. Para crear un registro de un canal, designar el mismo canal para
St y E. El canal de control indica la dirección de desplazamiento, el estado a escribir en el registro, el
impulso de desplazamiento y la entrada de reset. El canal de control se desglosa como sigue:
Los datos en el registro de desplazamiento serán desplazados un bit en la dirección indicada por el bit
12, desplazando un bit a CY y el estado del bit 13 en el otro extremo siempre que SFTR(84) se ejecute
con una condición de ejecución ON, el bit de reset esté en OFF y el bit 14 en ON. No se ejecuta nada si la
condición de ejecución es OFF o si el bit 14 está en OFF. Si SFTR(84) se ejecuta con la condición de
ejecución ON y el bit de reset (bit 15) en ON,el registro de desplazamiento completo incluido CY se pone
a cero.
Ejemplo de aplicación:
En este ejemplo utilizamos como canal de control el 30, del que sólo necesitamos los bits 12, 13,14 y 15,
controlados por las entradas:
En el ejemplo utilizamos la función en modo diferencial @SFTR, de modo que sólo realiza un pulso por
cada ciclo de Scan, si no, nos actuaría sobre todos los canales a la vez.
Avance del desplazamiento (LSB a MSB, esto es de 10.00 hacia 10.15): Entrada 00 activada, entrada 01
activada si quiero que me active la salida, desactivada si no, entrada 02 activada. Ahora a cada pulso que
demos a la entrada 04 avanzará un bit el registro de desplazamiento.
Retroceso del desplazamiento (MSB a LSB, esto es de 10.15 hacia 10.00): Igual que el anterior, pero
con la entrada 00 desactivada.
Reset: Con las entradas 02 y 03 activadas (independientemente del estado de 00 y 01), mandar un pulso
con la entrada 04.
Número de Salto
# (00 hasta 99) en BCD Serie C
# (00 hasta FF) ó &(00 hasta 255) Serie CJ/CP
JMP(04) se utiliza siempre junto con JME(05) para crear saltos, es decir para saltar de un punto a otro
del diagrama de relés. JMP(04) define el punto desde el que se salta; JME(05) define el punto destino
del salto.
Cuando la condición de ejecución para JMP(04) es ON, no se ejecuta ningún salto y el programa se
ejecuta como está escrito. Cuando la condición de ejecución para JMP(04) es OFF, se realiza un salto a
JME(05) con el mismo número de salto, no ejecutándose las instrucciones entre los puntos de salto y se
ejecuta la instrucción que haya después de JME(05).
En la serie C tendremos un máximo de 100 saltos, del #00 al #99 anotados en BCD, mientras que los
CJ/CP dispondremos de hasta 255 saltos, anotados en hexadecimal (del #00 al #FF) o en decimal (del &0
al &255).
El estado de temporizadores, contadores y demás bits utilizados entre las instrucciones de salto, no
cambiarán si la condición de salto no está activa.
Las instrucciones de salto afectan a los flancos DIFU y DIFD, pudiendo permanecer más de un ciclo de
scan activas en función de las condiciones de ejecución del salto.
Salto número 00
Este salto puede utilizarse tantas veces como se quiera e incluso utilizar varios JMP con un único JME.
Sin embargo, la utilización del salto 00 aumentará el ciclo de scan del programa.
Ejemplo de Aplicación
En esta serie el registro de errores almacena un máximo de 20 avisos, a partir de este número se irán
sobrescribiendo, con su código de error. Los registros de error se pueden consultar directamente en la
pestaña de error del PLC y también acceder al área de memoria correspondiente (canales A100 hasta
A199, cada error ocupa 5 canales).
Áreas de memoria:
Los errores FAL(06) son no fatales y permiten que el PLC siga en funcionamiento, pueden borrarse
mediante la misma instrucción FAL con el número 0 o apagando y encendiendo el PLC.
Para borrar un determinado error FAL es necesario mandar la función FAL con el número N = 0 indicando el nº de error a borrar
(#0001 a #01FF) o con (#FFFF) para borrarlos todos.
Los errores FAL ponen a 1 el bit correspondiente de A360.01 a A390.15 (los 511 posibles códigos de error definibles por el
usuario)
Los errores no fatales de sistema leen se almacenan en el A529, según la taba de errores del PLC.
Los errores FALS(07) detienen el funcionamiento del PLC y no podrá volver a iniciarse la ejecución del
programa hasta que desaparezca la causa del error.
Para borrar un determinado error FALS es necesario mandar la función FALS con el número N = 0 indicando el nº de error a
borrar (#0001 a #01FF) o con (#FFFF) para borrarlos todos.
Los errores fatales de sistema leen se almacenan en el A529, según la taba de errores del PLC.
En las serie CJ/CP se puede forzar la puesta a 0 de las salidas, por ejemplo como respuesta a una parada
de emergencia o a un error programado. Para ello basta con activar el bit A500.15. Además al hacerlo un
indicador del PLC INH se activará para señalizar el disparo de este bit. Hay que adoptar las debidas
precauciones ya no se interrumpe la ejecución del programa y al desactivarlo las salidas recuperan su
estado normal, de acuerdo con el programa ejecutado.
Ejemplo de Aplicación:
Tares cíclicas: Se ejecutan una vez en cada ciclo de scan, siempre que estén habilitadas.
En los PLC Omron de la serie CP/CS/CJ (no está disponible para la los autómatas antiguos de la serie C),
se pueden cargar varios programas que se ejecutarán de forma cíclica, por tareas de interrupción o
pueden ser llamados desde otro programa o tarea. Esta organización permite una mejor estructura y
más claridad en desarrollo y seguimiento de los programas.
Por defecto las tareas cíclicas están siempre activas, a partir de la Tarea cíclica 00 el resto de programas
se irán ejecutando desde la tarea de menor número a la de mayor de forma secuencial.
El control de tareas cíclicas sólo puede hacerse desde otras tareas (programas) cíclicos, NO puede
hacerse desde tareas de interrupción ya que daría un error.
El número de tares admitidas depende del modelo de PLC, en el CJ1M y CP1L dispone de 32 tareas
cíclicas y 255 de interrupción, mientras que en el CJ2M tendremos hasta 128 tareas cíclicas.
Nota: Las instrucciones de tareas que se encuentran en standby NO se ejecutarán, pero se mantendrá
su estado de E/S. Cuando una tarea se devuelve a su estado ejecutable, las instrucciones se ejecutarán
con el estado de E/S mantenido.
En caso contrario (m>n), la tarea será En caso contrario (m>n), la tarea será
habilitada, pero no se ejecutará hasta el deshabilitada en el siguiente ciclo de scan.
siguiente ciclo de scan.
Para controlar el estado en que se encuentran las tareas cíclicas se pueden consultar los bits TK00 a
TK31, que estarán activos (1) cuando la tarea se ejecuta y desactivados (0) cuando está detenida.
Ejemplo de aplicación
En el programa principal (tarea cíclica 00) insertamos las instrucciones de control de programa de esa
tarea (03) y comprobamos su funcionamiento.
Al activar el programa comprobamos que inicialmente NO se producen incrementos en D10, hasta que
la habilitemos mediante el bit 0.00. A partir de entonces comenzará a contar a la vez que el bit 10.01
parpadea. Si ponemos el bit 0.00 a OFF, el programa seguirá funcionando de la misma forma hasta que
con el bit 0.01 deshabilitemos la ejecución del programa.
Realizar la secuencia anterior varias veces, comprobando que en ocasiones el bit 10.01 puede quedar
activo, incluso cuando la tarea está deshabilitada.
Habilitando y deshabilitando el programa puede quedar el bit 10.01 activo incluso con el control de
programa deshabilitado.
Los modelos más básicos de autómatas, como los CPM2A, tienen una memoria de instrucciones
relativamente limitada y no incluyen por defecto todas las instrucciones que pueden ejecutar, ya que
solo incorporan aquellas de uso más común. Por ejemplo, la instrucción PID(-) puede ser ejecutada por
los autómatas aunque por defecto no venga instalada en él, por la tanto es necesario “cargarla”
previamente.
A estas instrucciones que se pueden ejecutar pero que hay que cargar se las denomina Instrucciones de
Expansión. Los pasos que hay que seguir para cargarlas se detallan a continuación:
El primer paso es seleccionar que instrucciones de expansión hay que cargar. Para ello se hace doble clic
sobre “Instrucciones de Expansión” dentro del desplegable del proyecto de la izquierda. Se abre una
ventana y en ella seleccionamos qué “Instrucción” queremos cargar y en qué “Hueco de Expansión”.
Esto se consigue haciendo clic en “Añadir” o “Eliminar”.
Anexos:
Mediante una utilidad de hoja de cálculo como puede ser Microsoft Excel, podemos hacerlo de una
forma mucho más cómoda. Para ello crearemos una tabla con 4 columnas con los datos Nombre, tipo,
dirección y comentario (el comentario no es obligatorio, pero sí muy recomendable ya que se usa en la
utilidad SwitchBox). Sería como lo siguiente:
Tras pulsar en ‘Aceptar’ quedarán incorporados a la tabla de símbolos y los podremos seleccionar
directamente en el editor de programas del proyecto:
Siempre que lo hagamos desde CX-Programmer, lo que se va a importar como etiqueta en SwitchBox es
el comentario que hayamos metido en el símbolo o en el programa. Si no hemos introducido
comentarios, no se importarán.
En este caso deberás estar conectado al simulador y se importan sólo los comentarios del programa (no
los símbolos), estén o no en la tabla de símbolos. En la Utilidad SwitchBox seleccionamos (si no estamos
conectados al PLC no nos aparecerá dicha opción.
De esta forma los comentarios de los contactos se incorporan al SwitchBox, lo que facilita mucho el
seguimiento y simulación del programa.
Se importarán sólo las direcciones y los comentarios que haya en la tabla de símbolos. No es necesario
que esté conectado el simulador al programa.
Es el procedimiento más cómodo ya que en los casos anteriores se necesita que previamente se hayan
introducido los comentarios asociados a los contactos en el programa o en la tabla de símbolos (cosa
que por otro lado es muy recomendable).
Bastará con crear un archivo de textos con el bloc de notas o programa similar introduciendo los datos
de la siguiente forma:
Ejemplo de archivo válido (a la derecha la imagen que muestra los símbolos de formato):
Una vez dado el formato al archivo se guarda en formato TXT. Desde SwitchBox seleccionamos:
File > Comments > Import >>> Import From Comment File