• Este manual pretende introducir al usuario en la programación de los autómatas
Mitsubishi Electric de la serie FX (modelos FX
información se encuentra en los manuales de Programación de la serie FX (Programming
manual II).
• Se dejan de lado en este manual las explicaciones detalladas de las opciones del software
de programación. Ver explicaciones correspondientes al manual del software utilizado.
• Si tiene alguna duda sobre la instalación o uso de los autómatas, así como su
programación, póngase en contacto con el distribuidor más próximo.
• Las explicaciones de este manual están sujetas a mejoras y revisiones sin previo aviso.
1S, FX1N y FX2N). Mucha y más completa
2
Programación serie FX
ÍNDICE:
ÍNDICE 3
ESTRUCTURA DEL PROGRAMA 7
Tipos de programación disponibles en la serie FX 7
Lista de instrucciones 7
Ladder o lenguaje de contactos 7
Lenguaje SFC 8
Entradas y salidas X/Y 17
Relés auxiliares M 18
Relés de estado S 19
Dispositivos de 16 / 32 bits (X, Y, M, S) 20
Registros D 20
Constantes decimales y hexadecimales K/H 21
Temporizadores T 22
Contadores C 23
Contadores de alta velocidad (HSC) C 25
Registros índice V/Z 26
Grupos de bits KnM / KnX / KnY 28
3
Programación serie FX
MÓDULOS ESPECIALES DE FUNCIÓN 30
Módulos especiales de función (SFM) 30
Buffers de memoria (BFM) 31
Instrucciones FROM / TO 32
LISTA DE INSTRUCCIONES 35
Control del flujo de programas 36
CJ 36
CALL 37
SRET 38
IRET, EI, DI 38
FEND 40
WDT 41
FOR, NEXT 42
Dispositivos relacionados con el RTC (reloj de tiempo real) 90
Modos de operación del PLC 91
Flags de control de interrupción 92
Comunicaciones 92
Otros dispositivos 93
Regístros índice 93
Control de contadores 94
DISPOSITIVOS 95
Serie FX1S 95
Serie FX1N 96
Serie FX
2N 97
6
Programación serie FX
Estructura del programa
TIPOS DE PROGRAMACIÓN DISPONIBLES EN LA SERIE FX:
Hay tres opciones disponibles para poder llevar a cabo la programación de una
tarea concreta en un autómata FX
LISTA DE INSTRUCCIONES
La primera es la lista de
instrucciones, la cual permite crear toda la
secuencia a partir de una lista de comandos
encadenados de forma secuencial. Se crean
una serie de instrucciones escritas sin ningún
tipo de interfaz gráfica, es el método más
rápido y directo, pero requiere de un mayor
dominio del lenguaje.
LADDER O LENGUAJE DE CONTACTOS
La segunda de las opciones es la más utilizada, el lenguaje de contactos o
ladder. Desde este tipo de programación se crean también comandos secuenciales
que se van ejecutando contínuamente unos detrás de otros. En esta ocasión se utiliza
una pequeña interfaz gráfica a modo de líneas que unen las condiciones iniciales de la
lógica programada con las salidas o instrucciones que se deben ir ejecutando
contínuamente. Se dispone de una serie de símbolos que son utilizados por el
programador para poder establecer las condiciones que deben ser procesadas por el
autómata en cada momento.
1S, FX1N o FX2N.
El lenguaje de contactos y la programación por lista de instrucciones tienen el
mismo resultado final. La única diferencia es que un método es más visual y
entendible a simple vista, mientras que la secuencia de instrucciones escritas necesita
de una mayor experiencia para poder ver su resultado final. Desde el software de
programación se puede conmutar de un modo a otro sin más problema, por lo que
puede ser escrito un trozo de programa en lista de instrucciones y pasar a programar
otro fragmento en lenguaje de contactos indiferentemente. Sólo hay que pasar de un
modo a otro sin más que pulsar en el software sobre la opción correspondiente.
7
Programación serie FX
LENGUAJE SFC
Éste es el último de los lenguajes permitidos por la serie
FX. Es el más estructurado, permitiendo separar las partes de
programa por pasos que se ejecutan secuencialmente cuando
se van cumpliendo unas condiciones impuestas durante la
programación, llamadas transiciones. Con este tipo de
tratamiento del programa se está tratando realmente con lista de
instrucciones o lenguaje ladder si se tiene en cuenta que el
programa que se ejecuta en cada bloque del SFC está creado
con estos lenguajes de PLC. Es el más estructurado de los tres
lenguajes vistos.
DISPOSITIVOS UTILIZADOS POR EL PLC:
El autómata puede manejar básicamente dos tipos de dato: Registros de 16
bits (datos, temporizadores, contadores…) e información de un bit (relés auxiliares,
entradas, salidas…), también pueden tratarse datos de 32 bits juntando dos registros
consecutivos de 16 bits. Las siguientes tablas muestran todos los datos que pueden
ser utilizados y cual es su utilidad. Esta información es a modo de introducción, ya que
en un capítulo posterior se explicarán con detalle todos estos dispositivos.
TIPO NOTACIÓN DESCRIPCIÓN
X
Y
M
S
D
C
T
V, Z
NOTAS:
1. Pueden ser combinados de dos en dos para crear registros de 32 bits
2. Si no se utiliza el lenguaje SFC, pueden ser utilizados como relés auxiliares M
La notación utilizada en el caso de las entradas y salidas físicas del autómata
es octal. La numeración, por ejemplo en el caso de las entradas, comienza en la
dirección X0 y continua hasta X7, después salta a X10 y así sucesivamente (las
direcciones como X8, X9, X18, X19, y equivalentes no existen). En los otros
dispositivos la notación es decimal.
La cantidad de datos disponibles depende de cada serie (FX
Ver el anexo al final de este manual, donde se especifica en unas tablas la cantidad de
registros disponibles para cada serie.
Dentro de cada tipo de datos tratados por el autómata hay rangos llamados de
uso general y otros rangos que son retentivos. Los primeros son los bits o datos que
pierden su información cuando se deja de alimentar el autómata, o en el paso del
modo RUN al modo STOP, momento en el que se desactivan las marcas activadas
1 Octal Entradas físicas del sistema
1 Octal Salidas físicas del sistema
1 Decimal Relés auxiliares (marcas) de uso general
1 Decimal Relés de estado (utilizados para programación SFC) *2
16 *1 Decimal Registros de datos para almacenar información numérica
16/32 Decimal Contadores normales y de alta velocidad
16 Decimal Temporizadores del sistema
16 Decimal Registros índice para direccionamiento indirecto
1S, FX1N o FX2N).
8
Programación serie FX
durante el programa y se pasa a tener un valor cero en los registros que pertenecen al
rango de uso general. Mientras que en el rango retentivo los relés auxiliares y registros
mantienen su valor ante un fallo de tensión, desactivación del autómata de la red
eléctrica o paso de estado RUN a STOP. Estos rangos de dispositivos pueden verse
en el anexo correspondiente al final de este manual.
Es importante saber que tipo de memoria dispone cada autómata, ya que el
comportamiento será diferente en el caso de los dispositivos retentivos:
Series FX
Disponen de un número fijo de registros y relés auxiliares de comportamiento
retentivo (éstos no son configurables). Dentro del rango retentivo, se tienen dos partes
diferentes. La primera son los datos que se mantienen en memoria EEPROM, una vez
apagado el autómata, éste salva ese rango de valores en una memoria retentiva
grabable eléctricamente (EEPROM) para prevenir su borrado. Mientras que también
posee de otro tipo de mecanismo, para otro rango de dispositivos, que se encarga de
guardar la información durante 10 días aproximadamente mantenida por un
condensador.
Serie FX2N:
Esta serie tiene un rango de dispositivos retentivos configurable desde el
software de programación, modificando los parámetros. El rango retentivo es
mantenido como en el caso del programa, por memoria RAM mantenida por una
batería. La memoria de programa puede ser almacenada en cassettes de memoria
EEPROM.
1S y FX1N:
CICLO DE SCAN:
El funcionamiento de un programa de PLC es secuencial, por lo que se van
ejecutando las instrucciones almacenadas en su memoria de forma consecutiva y
cíclica. Es decir, el programa empieza desde la primera instrucción y ejecuta todos los
otros comandos, uno detrás de otro, hasta llegar a la última instrucción disponible en el
PLC.
La instrucción END es la encargada de marcar el final de programa, por lo que
es obligatoria su inclusión al final de todo código creado. Después de esta instrucción,
se procede a repetir todo el programa secuencial almacenado en la memeoria. En el
siguiente gráfico se puede ver lo explicado en estas líneas.
9
Programación serie FX
Cuando se llega a la intrucción END, y antes de saltar a la primera dirección de
programa para repetir el proceso, el autómata realiza un refresco de entradas y
salidas. En este momento se copia el estado físico de las entradas en un buffer interno
(en los dispositivos X0, X1…) para ser utilizadas por el PLC en el siguiente ciclo de
programa. También se trasladan a las salidas físicas del PLC los valores calculados
por el programa (valores actuales de los dispositivos Y0, Y1…).
Todo este proceso explicado
en las líneas anteriores más un
intercambio de datos, si se está
llevando a cabo agún tipo de
comunicaciones como por ejemplo
un Computer link o incluso un
intercambio de información con un
terminal como puede ser un
F930GOT, etc… forman el ciclo de
scan del autómata. Este ciclo de
scan es el tiempo periódico que
tarda el PLC en repetir una y otra
vez todo el programa conjuntamente
con el refresco de entradas/salidas
y comunicaciones.
De modo que aunque un programa cambie el valor de una salida dos veces
consecutivas, sólo la última actualización será reflejada en las salidas físicas del PLC.
En el siguiente ejemplo, se activa la salida Y0 y se desactiva otra vez si la entrada X0
está activa, mientras que si X0 está en estado OFF se desactivará y activará otra vez
la salida Y0, por lo que solamente la segunda línea de programa será reflejada en la
salida física del autómata.
X0
Y0
10
Programación serie FX
Las instrucciones de la secuencia del lenguaje de contactos se ejecutan
siguiendo el siguiente orden: De izquierda a derecha y de arriba abajo. En el siguiente
ejemplo podemos ver como se comportaría el autómata si se escribe el siguiente
programa:
Primero es evaluada la entrada X0, si se encuentra en estado activo se
continúa la evaluación de las siguientes partes que “cuelgan” de este dispositivo, sinó
se salta esta sección de programa. Después el autómata lee las entradas X1 y X2 para
saber si debe ser activada la salida Y0. Entonces si X0, X1 y X2 están activas
simultáneamente, Y0 se activará (internamente, sin reflejar su estado en las salidas
físicas del PLC, como se ha visto en líneas anteriores). Una vez ejecutado esto, el
valor de la salida Y0 dependerá también del estado de X4, ya que si esta entrada no
se encuentra activada la salida Y0 será deshabilitará siendo inútil la primera línea de
programa evaluada… La siguiente parte a ejecutar será la que continúa con el
contacto X5, si están activos X1 y X5 al mismo tiempo se activará la salida Y1.
ESTRUCTURA DE UN PROGRAMA:
Como se ha comentado, el programa se repite indefinidamente desde la
posición cero hasta la instrucción END. Pero si el PLC encuentra antes una instrucción
FEND, acabará la ejecución del ciclo de scan y volverá a comenzar desde el principio.
Esto sirve para poder separar el programa de ejecución normal cíclica de la sección de
códigos de subrutinas o interrupciones. Estas últimas secciones no deben ser
ejecutadas a no ser que se especifique en el programa explícitamente u ocurra algún
evento que deba ser manejado por interrupción. Se muestra en el siguiente esquema
la separación de las dos secciones de programa expuestas:
PROGRAMA SECUENCIAL CÍCLICO
SUBRUTINAS E INTERRUPCIONES
11
Programación serie FX
El PLC ejecutará las instrucciones secuencialmente hasta llegar al comando
FEND, que será interpretado como una instrucción END y se acabará el ciclo de scan
actual. Así, de este modo, pueden ser escritas instrucciones de autómata que no serán
ejecutadas normalemente. Las secciones de código introducidas desde en FEND al
END pueden ser subrutinas o programas de interrupción. Se describen a continuación.
SUBRUTINAS
Una subrutina es un conjunto de instrucciones que se ejecutará de manera
eventual cada vez que sea requerido por el programa. Por ejemplo, el flujo de control
de la parte que se ejecuta cíclicamente puede ser alterada para pasar a ejecutar una
sección de programa independiente. Después de ejecutar esta parte, se devuelve el
control a la instrucción siguiente desde la que se llamó a la subrutina. Cuando se
ejecutan subrutinas se altera el valor del tiempo de ciclo de scan ya que este tiempo
se ve incrementado.
Para llamar a una subrutina se utiliza la instrucción CALL. Se especifica detrás
de este comando el puntero en el que comienza la sección de código de la subrutina,
en este caso P1. Para dar por concluída la subrutina, se debe ejecutar una instrucción
SRET que se encargue de devolver el control del flujo de programa a la posición
siguiente desde donde se llamó a la subrutina. Las series FX
número máximo de punteros de 128 (P0 a P127), mientras que la serie FX
1N y FX2N tienen un
1S tiene 64
(P0 a P63).
INTERRUPCIONES
Las interrupciones son secciones de programa que deben ser ejecutadas
cuando se cumple un evento especificado. Son subrutinas especiales, que no son
llamadas desde el programa secuencial normal, sinó que se activan mediante eventos
normalmente externos al autómata. De este modo se puede dar respuesta inmediata a
una señal externa con total independencia del ciclo de scan del autómata.
12
Programación serie FX
INTERRUPCIÓN
Las interrupciones pueden ser causadas por varias fuentes externas e internas.
La más normal es la activación de una entrada que requiere de una respuesta
inmediata. Las 6 primeras entradas de los autómatas de la serie FX
crear interrupciones (X0 a X5), los FX
especial para generar un cambio de rumbo en la ejecución del programa de forma
independiente del ciclo de scan del PLC. También se pueden crear interrupciones para
evaluar la cuenta actual de un contador de alta velocidad o incluso crear interrupciones
por temporización (sólo la serie FX
de las interrupciones no son identificados con la letra P, se identifican con la letra I
seguida de un número de tres cifras que identifica a que tipo de interrupción pertenece
la subrutina especial.
Los punteros de interrupción siempre serán editados después de la primera
instrucción FEND. Se identifican como se especifica a continuación.
Interrupción de entradas
Interrupción de temporización
PLC
1N y FX2N permiten
1S tienen 4 (X0 a X3). Éstas tienen un hardware
2N tiene estas últimas características). Los punteros
0: flanco ascendente de la entrada
1: flanco descendente de la entrada
Número de la entrada (X0 es 0, X1 es 1, etc…)
Número de 10 a 99 para especificar el tiempo de la
interrupción en ms. Se repite periódicamente
Número de interrupción (del 6 al 8), 3 puntos
13
Programación serie FX
Interrupción de contadores
Número de 1 a 6 (6 puntos de interrupción)
NOTA: Con la ayuda de las instrucciones DHSCS y DHSCR deben ser definidas las interrupciones.
Las instrucciones EI y DI sirven para habilitar interrupciones (EI) y también para
deshabilitarlas (DI). Cuando se quiere hacer uso de este tipo de eventos es necesaria
la habilitación anterior de las interrupciones, sinó el programa no saltará a ejecutar la
subrutina correspondiente. Normalmente se utiliza la instrucción EI (se inserta siempre
sin condiciones anteriores).
Para deshabilitar las interrupciones de modo general se utiliza el comando DI:
Las interrupciones pueden ser habilitadas/deshabilitadas individualmente o por
grupos, utilizando para esto los relés auxiliares de sistema (rango de M8000 a M8255).
En este caso son las marcas desde M8050 a M8059.
El rango de marcas M8050 a la M8055 sirve para deshabilitar individualmente
las interrupciones asociadas a las entradas del PLC (M8050 asociada a X0, M8051 a
X1…y así sucesivamente) una vez habilitadas con el comando EI. El rango M8056 a
M8058 servirá para deshabilitar las tres interrupciones de temporización (6, 7 y 8),
asociando M8056 con la 6, la M8057 con la 7 y la M8058 con la 8. Finalmente, la
marca M8059 servirá para deshabilitar las seis interrupciones asociadas a contadores
de alta velocidad.
Evidentemente, las marcas M8056 a M8059 no están disponibles para las
series FX
1S y FX1N, ya que estas series no disponen de este tipo de interrupciones.
SALTOS CONDICIONALES
Para acabar con las opciones que la serie FX nos ofrece para cambiar el flujo
normal de la ejecución del programa secuencial, se verán a continuación las dos
instrucciones que van a permitir dar saltos dentro del programa. Estas son CJ y MC.
La primera servirá para saltar directamente a una posición de programa marcada con
un puntero P. El salto puede ser llevado a cabo evitando el procesado de algunas
instrucciones o puede ser también hacia atrás, volviendo a ejecutar alguna parte de
programa. En este último tipo de salto hay que tener cuidado con el ciclo de scan, ya
que se puede ver incrementado y hacer saltar el WDT (Watch dog time o perro
14
Programación serie FX
guardián) cuando está activado. El WDT tiene configurado un tiempo máximo de ciclo
de scan permitido por el sistema, y cuando este tiempo es sobrepasado éste salta
automáticamente para bloquear el funcionamiento del PLC. Su utilidad es la de
prevenir la entrada del autómata en bucles infinitos y cuelgues provocados por un mal
uso del flujo de programa en el momento de la creación del código de programa.
La utilización de la instrucción es como se indica a continuación. Debe ir
siempre precedida de unas condiciones lógicas para determinar si se llevará a cabo el
salto o se continuará con el flujo normal del programa.
El siguiente y último método es la utilización del par de intrucciones MC y MCR.
Sirven para crear una sección de programa que será saltada si no se cumplen las
condiciones lógicas anteriores. No necesita de la ayuda de punteros P para llevar a
cabo el salto. Su funcionamiento se explicará a partir de un ejemplo:
SECCIÓN DE PROGRAMA A SALTAR
En el programa anterior se ejecutará todo el código que se encuentra entre la
instrucción MC y MCR. Si la condición anterior a MC, en este caso X2, no se cumple el
flujo de programa saltará todas las instrucciones que se encuentran entre estos dos
comandos.
Este par de comandos y todas las instrucciones de bifurcación pueden ser
vistas con detalle en el capítulo dedicado a comentar el funcionamiento de todas las
instrucciones de los autómatas de las series FX
1S, FX1N y FX2N.
15
Programación serie FX
MAPA DE MEMORIA DE LOS DISPOSITIVOS:
Los dispositivos que se han comentado al inicio de este manual se explican a
continuación con más detalle. La cantidad disponible para cada serie de la família FX
se puede encontrar en un anexo al final de este manual.
16
Programación serie FX
Mapa de memoria
DISPOSITIVOS DE BIT (X, Y, M, S):
La serie FX dispone de cuatro tipos de dispositivo que almacenan información
a nivel de bit, es decir, sólo tienen dos estados posibles ON y OFF (1 y 0
respectivamente). Se identifican utilizando diferentes letras para cada tipo de variable.
La letra X se utiliza para tratar las entradas del autómata, la Y para las salidas, la M
para los relés auxiliares (también se identifican como marcas), y finalmente la letra S
identifica los relés de estado, los cuales serán explicados más tarde.
Entradas y salidas
El autómata utiliza la notación octal para este tipo de dispositivo. El máximo
número que el PLC admitirá dependerá de la serie con la que se está trabajando. La
siguiente tabla muestra las direcciones máximas admitidas por cada serie. Como la
notación es octal, debe tenerse en cuenta que la primera dirección posible es la X000
y la Y000. Un ejemplo de numeración para las 10 primeras entradas de un PLC FX
sería como se muestra a continuación:
No existen las direcciones X008, X009 (en octal sólo existen los números del 0 al 7).
La siguiente tabla muestra las direcciones máximas configurables para cada serie.
NOTA: 177 octal es 127 decimal, 77 octal es 63 decimal y 377 octal es 255 en decimal
Ejemplo de direcciones para un autómata FX1N-14MR-DS, el cual tiene en su
unidad base 8 entradas y 6 salidas. Si se añaden a éste dos extensiones, una de 16
entradas (FX2N-16EX-ES/UL) y otra de 8 salidas (FX0N-8EYR-ES/UL), se deben
utilizar las siguientes direcciones:
X/Y
ENTRADAS SALIDAS
FX1S
FX1N
FX2N
X000 – X007
Y000 – Y005
X017 Y015
X177 Y077
X377 Y377
X010 – X027
Y010 – Y017
17
Programación serie FX
En el caso de las entradas, se tiene 8 en la unidad base y después se utiliza
una extensión de 16 entradas más, la primera dirección del módulo de extensión es la
X010 como se ha explicado, pero en el caso de las salidas, la primera dirección de la
extensión es también Y010 en lugar de Y006 (cuando la última dirección de la unidad
base es Y005). Esto es así, porque siempre un módulo de extensión debe comenzar
por un número múltiplo de 8 en octal (Y000, Y010, Y020, Y030, etc…). Lo mismo para
las entradas X.
Relés auxiliares
Este tipo de dispositivo permite el almacenamiento de información digital. Sólo
tiene dos estados y pueden ser utilizados para guardar bits de proceso de forma
auxiliar o utilizar contactores y bobinas de modo interno en el programa del autómata.
Su uso es idéntico al de las entradas y salidas del PLC, pero en este caso su notación,
como el resto de dispositivos del autómata, es decimal (M0000, M0001, M0002,
M0003, M0004, M0005, M0006, M0007, M0008, M0009, M0010, M0011…)
M
Hay un rango de marcas M con valor retentivo y otro rango de uso general que
pierden su valor (se desactivan pasando a estado OFF) cada vez que el autómata
pasa de modo RUN a STOP o se desconecta la alimentación del autómata. Ver anexo
final para ver los rangos y cantidad de dispositivos M para cada serie FX
FX
2N.
MARCAS DE SISTEMA: El rango de relés auxiliares que comprende desde la
dirección M8000 a la M8255 (256 relés), corresponde a las marcas utilizadas por el
sistema, es decir, que tienen una función específica asignada de fábrica. Por lo tanto
no deben ser utilizadas para uso general. Un ejemplo puede verse en las primeras
marcas de sistema M8000 y M8002, que pertenecen al estado siempre activo y al
estado activo durante el primer ciclo de scan respectivamente (sirviendo esta última
para configuraciones iniciales).
Otros ejemplos pueden ser: M8034 que deshabilita todas las salidas del
autómata, M8012 genera un oscilador constante de 100 ms, M8039 hace que el PLC
trabaje bajo un ciclo de scan constante, M8122 activa el envío de la trama configurada
con la intrucción RS a través del puerto de comunicaciones serie, etc…
M8000
M8002
RUN
Scan 2 Scan 3 Scan 4 Scan 1
1S, FX1N y
18
Programación serie FX
Relés de estado
Este tipo de dispositivo permite el almacenamiento de información digital. Sirve
para guardar la información correspondiente de los bloques que se encuentran activos
durante la ejecución de un programa en lenguaje SFC. Como se ha comentado al
principio de este manual, este tipo de
programación permite separar en bloques de
ejecución el programa para ser ejecutado según
unas condiciones que se van ejecutando de
forma secuencial. Pues bien, estos relés de
estado S se encargan de definier que bloque se
encuentra activo en cada momento. Cada bloque
está asociado a un relé S y la CPU del autómata
se encarga de activar y desactivar los relés
apropiados cada vez que se pasa de un bloque a
otro durante la ejecución del programa.
Los relés de estado del S000 al S009 se utilizan como relés de inicio de SFC,
esto quiere decir que sólo pueden ser utilizados para identificar a un bloque de
comienzo como en el ejemplo anterior el relé S000. Como se pueden definir varios
programas SFC de ejecución sumultánea, se deben utilizar siempre los primeros relés
S para este fin.
Cuando la programación con la que se trabaja es ladder (lenguaje de
contactos), se pueden utilizar estos relés a modo de relés auxiliares (M). Por lo tanto
se verá incrementada la cantidad de memoria disponible para almacenar información
digital. Ver anexo final para más información sobre el rango retentivo y de uso general
disponible para cada serie de autómatas FX
S
Bloque: S040
Bloque: S022
1S, FX1N y FX2N.
19
Programación serie FX
DISPOSITIVOS DE 16/32 BITS (D, T, C, V, Z):
Esta serie de autómatas dispone de varios tipos de dispositivos para guardar
información de 16 bits de capacidad o incluso de 32 bits. Las variables utilizadas de
uso general son las de tipo D, que almacenan datos genéricos para cualquier uso
interno del programa. Seguidamente encontramos los dispositivos dedicados a
temporizadores y contadores (normales y de alta velocidad), T y C. Finalmente los
registros V y Z que sirven para trabajar con direccionamiento indirecto, ya que son
capaces de modificar la dirección de un registro D, como se verá más tarde.
Registros
binario, por lo que se puede trabajar directamente desde programa en formato decimal
y permitiendo una capacidad máxima de datos que va desde –32768 a +32767.
Cuando se trata información de 32 bits, hay que juntar dos registros
consecutivos para poder trabajar en este modo.
Con 32 bits se tiene la posibilidad de almacenar información que puede oscilar
desde el valor –2.147.483.648 al +2.147.483.647. Si se trabaja con este tipo de datos
hay que tener cuidado con los registros que forman la información de más peso del
dato de 32 bits. Por ejemplo si se trata D000 como registro de 32 bits, se están
utilizando realmente el D000 y el D001, por lo que si se escribe información en D001
se perderá la mitad de información del dato de 32 bits (formado por D000 y D001).
Para tratar con información de 32 bits se debe escribir delante de la instrucción
correspondiente la letra D. Así, si se quiere almacenar el valor 1000000 en el registro
D10 se debe teclear la siguiente línea de programa (La letra K delante del valor se
comentará en la siguiente sección):
NOTA: Cada uno de los registros D10 y D11, tiene un valor decimal independiente en formato 16 bits.
D
Estos registros son de 16 bits y trabajan guardando información en formato
Registro 16 bitsRegistro 16 bits
Registro resultante 32 bits
D0010 D0011
=1000000
16960 15
20
Programación serie FX
Como en el caso de los relés auxiliares (M), se tienen 256 registros dedicados
de sistema: Rango del D8000 al D8255. Estas variables de sistema tienen una función
asignada y no deben utilizarse como registros de datos generales. Por ejemplo el Dato
D8020 se encarga de configurar el filtro de las entradas X del sistema (tiempo de
retardo en la lectura). Los registros D8014 a D8019 presentan los segundos, minutos,
hora, día, mes, año y día de la semana del calendario del reloj de tiempo real RTC.
D8120 es el registro que sirve para configurar el puerto de comunicaciones serie, etc…
También hay dos rangos diferentes en los datos D del autómata. Los de uso
general y los retentivos. Como se ha visto con los relés M, los de uso general borrarán
su valor en el paso de modo RUN a STOP o cuando se produzca un fallo en el
suministro eléctrico. Sin embargo los retentivos (o latched) mantienen el valor en
memoria en los casos anteriores. El rango es fijo o configurable según la serie de
PLC’s tratada (Ver anexo correspondiente al final del manual).
Constantes decimales y hexadecimales
Cuando se quiere identificar en una instrucción de programa una constante, un
valor que siempre que sea procesado por la CPU sea igual, se debe insertar delante
del número la letra K si se trata de un número binario o decimal (o la letra H si se trata
de un número en formato hexadecimal).
Toda instrucción en los autómatas Mitsubishi tiene en todos sus parámetros
una letra delante del número. Aunque el argumento sea una constante, así por
ejemplo en la siguiente línea de programa, se copia el valor decimal 19 al registro de
datos D4500.
K/H
Vemos como primer parámetro de la instrucción MOV la constante K19, por lo
tanto siempre que se procese este comando el registro D4500 pasará a guardar un
valor 19 decimal.
Si se quiere trabajar directamente sobre un registro tratándolo como un dato
que guarda una información binaria, es decir, que contiene una información donde
interesa tratar el estado de los bits y no tratar el dato como valor decimal, se puede
utilizar una constante de tipo hexadecimal H (ya que tiene una relación más directa
con los bits activados).
D4500 contine en sus 16 bits la siguiente información después de ejecutar la línea de
código anterior:
D4500 = 0000 0010 1010 0001 = 673 d
H 2H AH 1H
0
21
Programación serie FX
El valor decimal 673 es igual al valor hexadecimal 2A1, por lo tanto las dos
siguientes instrucciones tienen el mismo resultado sobre el registro D500.
Temporizadores
Estos dispositivos son registros de 16 bits, como los registros de datos D, pero
tienen una tarea específica asignada. Sirven para contabilizar tiempos, son contadores
que almacenan valores temporales. Por ejemplo si se quiere crear una temporización
de 500 ms, debe emplearse una variable de tipo T para controlar ese retardo.
Estos dispositivos, cuando son definidos en el programa, necesitan de una
consigna para establecer el límite de temporización que deben contar. Cuando llegan
al final de su cuenta activan una bobina que tiene el mismo nombre (definida con una
letra T). Por lo tanto cuando se utiliza el contador T0, se debe comprobar el estado del
contacto T0 para saber si se ha finalizado la temporización, en este caso se activa la
salida Y022 cuando acaba el retardo:
Cada temporizador tiene asignada una resolución. Hay de 100 ms, de 10 ms y
de 1 ms de resolución. Por lo tanto cuando se utiliza el T0, que es de 100 ms de
resolución, para temporizar 2 segundos, se debe utilizar una consigna con un valor de
20 para conseguir el retardo deseado:
T
Resolución del temporizador
2 segundos = 20 x 100 ms
Consigna
Para definir un temporizador se utiliza el símbolo de salida digital (bobina) y se
inserta el dispositivo junto a la consigna. El temporizador funcionará (contará tiempo)
mientras esté activado el contacto (o lógica anterior) a la bobina de temporización T0 y
no se llegue al valor establecido en la consigna. Esta consigna puede ser una
22
Programación serie FX
constante decimal (K), una constante hexadecimal (H) o un registro variable (por
ejemplo D).
Al igual que otros dispositivos, se tienen unos rangos no retentivos y otros
retentivos. Los primeros pierden su valor de temporización cuando se desactiva el
contacto que lo está activando, por lo tanto también pierden su valor cuando se pasa
de modo RUN a STOP o se desconecta de tensión el PLC. Los retentivos guardan su
valor en los casos anteriores, continuando su cuenta desde el último valor almacenado
antes de la deshabilitación del temporizador (sólo pueden ser reseteados poniendo a
cero, con una instrucción MOV, el valor del dispositivo T o con una instrucción de reset
RST).
La cantidad y direcciones de cada T, así como si son retentivos, se puede consultar en
el anexo correspondiente.
Contadores
Estos dispositivos tienen como finalidad almacenar cuentas de eventos, ya sea
control de cantidades en cualquier suceso, como guardar el valor actual de los
contadores de alta velocidad que incorporan los autómatas de estas series. Hay
contadores de 16 bits y de 32 bits. Esto quiere decir que hay registros físicos de 16
bits y también de 32 bits, por lo que no se utilizan dos contadores C consecutivos para
crear un dato de 32 bits, esos registros son especiales y son de esa capacidad (a
diferencia de lo tratado para los dispositivos de datos D).
Los contadores de 16 bits son de cuenta ascendente y no se puede modificar
su comportamiento. Mientras que los contadores de 32 bits son bidireccionales,
pueden ser configurados por software para contar en un sentido u otro. En el caso de
los contadores de alta velocidad, que son de 32 bits, el sentido de cuenta depende de
No retentivos Retentivos
C
Contador 16 bits
Contador 32 bits
23
Programación serie FX
su configuración (hay contadores que tienen asignado el sentido de cuenta por
hardware y otros por software). Hay contadores que son de uso general y otros que
son de tipo retentivo, que guardan su valor al quitar tensión al autómata o pasar la
CPU de estado RUN a STOP. Los contadores de alta velocidad son todos retentivos.
Los contadores se utilizan del mismo modo que los temporizadores. Se definen
mediante una bobina con un número de consigna (ya sea constante K, H, o dispositivo
variable D). Esta consigna define a que cuenta se activará el contacto equivalente del
contador (del mismo nombre).
Cada vez que se active el relé auxiliar M3 (se produzca un flanco ascendente),
se llevará a cabo un incremento en el valor almacenado en el contador C20. No
volverá a realizar un incremento hasta que no se desactive M3 y se active otra vez (se
produzca otro flanco). La salida Y1 se activará en el ejemplo anterior cuando se llegue
a un valor de 4000 en la cuenta de C20. El contacto C20 permanecerá activado
mientras el valor del registro equivales C20 se 4000 o superior. Cuando se resetea el
contador utilizando una instrucción MOV o RST (como en el caso de los
temporizadores) la cuenta empezará otra vez desde cero.
Los temporizadores que utilizan cuenta ascendente y descendente (del C200 a
C234) puede ser definido su sentido de cuenta utilizando los relés auxiliares de
sistema (M8200 a M8234). El formato que se sigue es el siguiente:
El relé auxiliar de sistema
Por ejemplo el contador C214, que es bidireccional, puede ser configurado utilizando
el relé de sistema M8214 siguiendo el siguiente criterio:
Por lo tanto, en el siguiente ejemplo, el contador C202 cuenta los pulsos de forma
descendente cada vez que se recibe un flanco ascendente en la entrada X004:
M8*** = ON será cuenta descendente
M8*** = OFF será cuenta ascendente
M8*** corresponde al contador C***
24
Programación serie FX
El valor de un temporizador y de un contador puede ser evaluado en cualquier
momento con la utilización del registro T o C correspondiente. Pueden ser utilizadas
instrucciones de movimiento de datos tipo MOV o aritméticas como ADD, SUB, etc…
mientras se está contanto o temporizando algún valor. La cuenta o temporización no
se verá afectada por estas instrucciones.
Contadores de alta velocidad
Este tipo de contadores tienen un tratamiento muy similar, en cuanto a
programación, a los contadores normales pero hay que tener en consideración varios
aspectos específicos de este tipo de contador.
Cada contador de alta velocidad está asociado directamente a unas entradas
del PLC concretas, y éstas no pueden ser cambiadas.
Los contadores de alta velocidad (también llamados HSC por los manuales de
programación) son desde el C235 al C255.
El contacto o lógica anterior que activa el contador HSC no debe ser la entrada
asociada al contador, sinó las condiciones que se deben dar para activar ese contador
y, por lo tanto, que éste cuente los pulsos recibidos a través de la entrada que ya tiene asignada por hardware.
EJEMPLO:
En el ejemplo de la izquierda se utilizan como activación las entradas
asociadas a cada contador, por lo que no es correcto. Mientras que en la derecha
podemos ver en el caso del contador C235 que se utiliza para su activación el relé
auxiliar de sistema M8000 (siempre activo). El contador C236 contará pulsos por su
entrada X001 cuando esté activada la entrada X20.
La asociación de entradas con contadores se muestra en la tabla que aparece
en la página siguiente, en la cual se muestran en la parte superior los contadores (del
C235 al C255) y en la parte izquierda se pueden ver las entradas a las que
corresponden (de X000 a X007). Con las letras U y D se designa el sentido
ascendente (U) o descendente (D) de cada contador. Con la utilización de S y R se
designan las entradas de Start y Reset respectivamente.
Incorrecto Correcto
(HSC) C
25
Programación serie FX
En la tabla podemos ver cuatro divisiones que corresponden a los cuatro tipos
de contadores que podemos configurar en el autómata. Son los siguientes:
- Contadores de una fase (Sentido seleccionado por software)
- Contadores de una fase con Start/Reset por hardware (Sentido
seleccionado por software).
- Contadores de dos fases (Cada sentido seleccionado por entradas
diferentes).
- Contadores de dos fases en cuadratura (A/B).
Se puede apreciar en la tabla anterior que, por ejemplo, el contador C242 está
asociado a la entrada X002 y que utiliza la entrada X003 para hacer un reset del
contador a través de hardware. Sin embargo si es utilizado el C246, se deberá
conectar a X000 la entrada de pulsos para contar en modo ascendente, mientras que
en X001 se conectará la entrada para contar en modo descendente. Como se puede
apreciar el sentido de la cuenta viene determinado por hardware. En el contador visto
antes, el C242, el sentido se determina por software (M8242).
Registros índice
Estos dos tipos de dispositivo pueden ser utilizados para señalar a una
dirección de memoria (por ejemplo a un registro D) utilizando una dirección variable,
es decir, dependiendo del valor que guarda V o Z se puede apuntar a un dispositivo
diferente cada vez que el ciclo de scan pasa por esa posición del programa. En el
siguiente ejemplo se puede apreciar el funcionamiento de estos dispositivos, en que se
utiliza una instrucción MOV para hacer una copia de datos entre registros D del
autómata:
V / Z
26
Programación serie FX
Se puede ver que en la instrucción MOV se han añadido en sus parámetros D0
y D100 dos regístros índice V2 y V3. Si el valor de los regístros índice es cero. La
intrucción anterior sería equivalente a la siguiente:
En este caso, se pueden utilizar los regístros índice (V2 y V3) para acceder a
diferentes partes de la memoria de datos mientras que se ejecuta un programa. Si los
índices tienen los siguientes valores:
V2=8 y V3=5
el resultado de la instrucción anterior [MOV D0V2 D100V3] sería como sigue:
Este tipo de dispositivos sirve para poder hacer instrucciones flexibles en las
que dependiendo del valor del registro índice se esté trabajando con áreas de
memoria diferentes. Por ejemplo pueden ser definidas una serie de posiciones
consecutivas de memoria para guardar los datos correspondientes al proceso en
forma de receta. Así con sólo añadir un dispositivo índice pegado a cada uno de los
datos tratados por las intrucciones, se conseguirá que el programa trate las áreas de
memoria correspondientes a cada una de las recetas.
Según el valor del regístro índice Z2, se está realmente haciendo una copia de
datos con la instrucción MOV de D0 a D3, o de D4 a D7, o de D8 a D11. Pudiéndose
utilizar cada índice guardado en Z2 para tratar cada uno de los bloques (A, B y C)
como si fuera una receta.
[ MOV D0Z2 D3Z2 ]
Z2=0
Z2=4
Z2=8
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
A
B
C
27
Programación serie FX
Grupos de bits
Durante la programación de un autómata puede surgir la necesidad de trabajar
con los bits de la información almacenada en registros de 16 bits o 32 bits. Por
ejemplo si se quiere saber que valor tiene el bit 4 del dato D20, o simplemente se ha
de guardar el contenido de una entrada en registros D, se ha de utilizar este tipo de
notación para trabajar con relés auxiliares como si fueran registros de información.
La idea sería la siguiente:
Si se tiene una copia de cada uno de los bits de un registro en relés auxiliares,
pueden ser tratados individualmente para procesar la información que nos dan o para
activar/desactivar directamente unos bits concretos de un registro. Puede ser utilizado
un grupo de bits para almacenar información numérica, por ejemplo si se utilizan los
relés del M0 al M15 para obtener en conjunto un dato numérico de 16 bits:
Así se pueden tener instrucciones como las siguientes, las cuales nos van a
permitir agrupar bits para poder ser utilizados en las instrucciones como si de registros
se tratara. El siguiente comando (INC) realiza un incremento de una unidad en el valor
contenido en el parámetro especificado a su derecha. En este caso incrementará el
valor del contenido numérico guardado en los relés de M0 a M15, los cuales forman un
registro de 16 bits.
KnM / KnX / KnY
b0 b1 b2 b15 b12
D0:
M40
M0 M1 M2 M15 M12
Suponiendo que el valor numérico guardado en el grupo de relés K4M0 (en las
líneas siguientes se explicará este tipo de formato) es un valor decimal 399, al llevar a
cabo la instrucción anterior se tendría en el grupo de bits el valor 400.
28
Programación serie FX
El formato de los grupos de bits se detalla a continuación:
En la tabla que se encuentra encima de estas líneas podemos ver que delante
de cada nomenclatura de bits de entradas (X) se encuentra una letra K con un
número. Esta cifra indica cuantos grupos de 4 relés deben ser organizados en
conjunto para formar un bloque (o registro de datos) desde la dirección base
especificada detrás de la cifra.
Por ejemplo K1X0 es el grupo de cuatro bits (por eso va el K1 delante) desde la
dirección base X0 (X0, X1, X2 y X3). El segundo ejemplo podría ser K8X0 el cual
desde X0 forma un registro de 32 bits (8 grupos de 4 bits = 32 bits en total).
En el siguiente esquema se puede apreciar que constante K hay que insertar
delante del dispositivo de relé, que actuará como dirección base, para saber cuantos
grupos de bits deben ser tratados como un conjunto.
29
Programación serie FX
Módulos especiales de función
Módulos especiales de función (SFM):
En la serie FX, concretamente en los modelos FX1N y FX2N (no en los FX1S
los cuales no admiten la posibilidad de ser expandidos), se tiene la posibilidad de
insertar módulos especiales de función (llamados SFM). Con estos módulos
adicionales, la unidad base del PLC tiene la posibilidad de llevar a cabo nuevas tareas,
como pueden ser comunicaciones con redes como CC-Link, ProfibusDP, DeviceNet o
ASi. También pueden ser añadidos módulos con entradas/salidas analógicas,
contadores de alta velocidad, posicionadores, etc…
Las unidades base tienen la posibilidad de direccionar hasta 8 módulos (SFM).
De modo que, teniendo en cuenta los consumos de intensidad de cada uno de los
módulos y de cuantas entradas/salidas ocupan en el sistema, puede ser configurado
un sistema que trabaje hasta con 8 módulos especiales.
Es importante distinguir entre un módulo especial de función SFM y las
extensiones de entradas/salidas. Una extensión es un módulo que sólo aporta más
entradas o más salidas al sistema, por lo que no se considera un módulo de funciones
tipo SFM. Sin embargo cuando el módulo que se añade incorpora al sistema nuevas
características, como puede ser la posibilidad de comunicación a través de una red,
éste se considera un módulo especial de función (o SFM).
También puede ser insertado en el sistema un tipo de módulo identificado
como Extensión compacta, el cual no tiene la misma función que las extensiones
“normales” (las cuales sólo añaden entradas y salidas al sistema). Las compactas
añaden al sistema la posibilidad de alimentar más módulos especiales, para poder
llegar a controlar hasta los ocho módulos SFM y extensiones que se necesiten en la
aplicación. Esto es debido a que tienen entrada de alimentación própia.
Extensión
SFM#0 Unidad Base
Extensión compacta
SFM#1
30
Loading...
+ 67 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.