Instrucciones de plc allen bradley.pdf

INTELIGENCIA ARTIFICIAL, CORP. TEGNOLOGIA EN AUTOMATIZACION, CONTROL Y TRANSMISION DE POTENCIA Instrucciones de plc al

Views 344 Downloads 85 File size 406KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

INTELIGENCIA ARTIFICIAL, CORP. TEGNOLOGIA EN

AUTOMATIZACION, CONTROL Y TRANSMISION DE POTENCIA

Instrucciones de plc allen bradley

Los modelos PLC-5, SLC-5/01 y SLC-5/02 son modulares y por lo tanto se correspondera´n con lo que se explica a continuación. El SLC-500 es compacto y aunque internamente tiene los mismos elementos, no está diferenciado externamente. El procesador es la parte inteligente del autómata. Tiene en su interior microprocesadores y memoria. En los modulares, debe ocupar el slot de la izquierda del chasis. En la memoria se guarda el programa actual del autómata y también los datos necesarios para el funcionamiento de los contadores, temporizadores, etc, y el estado de los contadores, relés internos, temporizadores,etc. En el frontal tiene una serie de pilotos que indican el estado en que se encuentra. También hay uno conectores que permiten comunicarse con los equipos de programación, con los posibles chasis remotos y con otros autómatas conectados en red con él. También existe un alojamiento para la batería, que es la que se encarga de mantener la memoria, cuando el procesador se encuentra sin alimentación. Un conmutador situado en el frontal del PLC-5 nos permite elegir entre el modo PROG y el modo RUN. En el modo PROG, es cuando nos será permitido programar el autómata. En el modo RUN, es cuando el autómata está procesando, el programa.

También existe una posición intermedia REM, que permite al equipo de programación cambiar entre un modo u otro. En los SLC esta función siempre es remota. La fuente de alimentación se encarga de convertir la tensión alterne de entrada a las tensiones de trabajo de los elementos del chasis. En el resto de sitios disponibles en el chasis(slots), se pueden poner tantos módulos como se quiera. Los modulos pueden ser entre otros: •ENTRADAS DIGITALES o ANALOGICAS •SALIDAS DIGITALES o ANALOGICAS •E/S COMBINADAS •COMUNICACIONES •CONTAJE RAPIDO •MODULOS DE CONTROL DE EJES •REGULACION •PESAJE •FUNCIONES ESPECIALES

DIRECCIONAMIENTO DE ENTRADAS Y SALIDAS EN EL PLC-5 Cada uno de los slots del chasis es un grupo. En cada grupo puede haber un máximo de 16 entradas y 16 salidas. Se llama Rack a un conjunto de 8 grupos. El primer slot, al lado del microprocesador, es el 0 del rack 0, el siguiente el 1 el siguiente el 2, asi sucesivamente. El rack 0 tiene los slots 0 a 7, lo que hace un total de 8. En cada slot podemos poner una tarjeta de entradas o salidas. Su dirección está formada por tres cifras. La primera es un cero, la segunda es el nombre del rack y la tercera el número de slot. Los slots 0 y 1 no estan disponibles puesto que se encuentra la fuente de alimentación. Si en el slot 2 ponemos una tarjeta de 8 entradas sun direcciones corresponderán a I:002. para distinguir una entrada concreta, por ejemplo la 6 escribiremos I:002/6. Si ponemos una tarjeta de salidas en el slot 3 escribiremos O:003. Si en el slot 4 ponemos una tarjeta de 16 entradas, las ocho primeras serán I:004/00 a I:004/7 y las demás serán I:004/10 a I:004/17, esto es debido a que el direccionamiento se realiza en octal.

DIRECCIONAMIENTO DE ENTRADAS Y SALIDAS EN LOS SLC. En los slc-5/01 y slc-5/02 cada slot puede tener entradas o salidas. Si por ejemplo se pone una tarjeta de 16 salidas en el slot 3, la dirección del bit será O:3/15 o también O:3.0/15 Si la tarjeta tiene mas de 16 bits ocupará mas de una palabra. Si en el slot 2 ponemos una tarjeta con 32 bits de entrada, el bit 15 se direccionará con I:2.0/15, el bit 16 como I:2.1/0 y el bit 31 con I:2.1/15. En los SLC-500 las entradas y salidas compactas están en el rack 0, la dirección de la salida 7, por ejemplo será O:0/7. Si además, añadimos mas tarjetas, estas se direccionarán como en los SLC modulares.

Ciclo Funcionamiento Un ciclo de la operación consiste en dos partes: 1. -Scan de Salidas y Entradas. 2. -Scan de programa

-En el scan de salidas y entradas lo primero que hace el procesador es actualizar las salidas con el estado de las tablas de salidas (archivo 0) que se han puesto a "1" o a "0" segun el programa. Posteriormente el archivo de entradas (fichero I) es actualizado según el estado de las entradas. -En el scan de programa el microprocesador va haciendo un escrutinio de las instrucciones del programa y las va ejecutando, actualizando tablas de datos.

Distribución Memoria La memoria del plc se divide en dos partes, la memoria de programa y la de datos. En la parte baja de la memoria se encuentran los archivos de datos y cuando terminan éstos empieza la zona de archivos de programa. Amedida que los datos aumentan de tamaño se va desplazando la parte de instrucciones de programa hacia más arriba de la memoria. En el siguiente esquema podemos ver lo explicado: ARCHIVOS

DE DATOS ARCHIVOS DE PROGRAMA LIBRE

Archivos de Programa

Se pueden crear hasta 255 archivos de programa, de los cuales, los dos primeros están reservados: -Archivo número 0 esta destinado al uso interno del plc, este archivo se crea solo automáticamente al empezar un programa. -El fichero 1 actualmente no se utiliza, pero esta destinado a la programación en SFC en futuras versiones. -El archivo número 2 también se crea automáticamente y es el fichero que contiene el programa principal.El PLC siempre empieza a ejecutar las instucciones por el principio de este fichero y termina el ciclo al llegar al final de este mismo archivo. -El resto de ficheros de programa los ha de crear el usuario, y puede crear del número 3 al 255. Los archivos no tienen por que ir seguidos. Es decir, se puede crear el 10, el 20 y 22, sin utilizar los archivos de en medio. 0

Función de sistema

1

Reservado

2

Programa Principal

3-255 Programas de subrutinas

Archivos de Datos

Los archivos de datos son zonas de la memoria que va creando el usuario al hacer su programa. Cada una de estas zonas especifica un determinado número de datos de un tipo . Los tipos pueden ser BITS, ENTEROS, TEMPORIZADORES,etc... Cada fichero de datos puede tener de 0 a 255 elementos, por ejemplo, podemos definir un archivo de temporizadores con 10 elementos o un fichero de enteros de 100 elementos. Con elementos se entiende el tipo de dato que representa el archivo. Es importante hacer notar, que no tienen porque tener la misma longuitud elementos de ficheros de tipo distintos. Para definir un determinado archivo para su utilización en el programa, tan solo hace falta utilizarlo en alguna instrucción, automáticamente se crea dicho archivo con una longuitud igual a la mayor utilizada hasta ese momento de ese mismo archivo. Si posteriormente se vuelve a utilizar el mismo fichero pero haciendo referencia a un elemento que no esta dentro de la longuitud actual, en ese caso, se alarga la definición del archivo de forma automática. ARCHIVOS DE DATOS 0

Imagen de Salida

1

Imagen de Entrada

2

Estado

3

Bit

4

Temporizador

5

Contador

6

Control

7

Entero

8

Reservado

9

Comunicación RS-485

10-255 A declarar por el usuario

En la tabla anterior se puede apreciar los archivos que crea automáticamente el PLC al iniciar la programación de una aplicación. Los ficheros que van del 10 al 255 los puede ir creando el usuario a su antojo a lo largo del programa. El archivo número 8 esta reservado al uso interno del PLC y el 9 a la realización de comunicaciones por la red DH-485.

A continuación se explica los distintos tipos de archivos de datos, los cuales se identifican con una letra y un número: Tipo de archivo Identificador Número Salidas

O

Sólo el 0

Entradas

I

Sólo el 1

Estado

S

Sólo el 2

Bit

B

3 a 255

Temporizador

T

4 a 255

Contador

C

5 a 255

Control

R

6 a 255

Enteros

N

7 a255

A continuación explicaremos la forma de referirse a un elemento de un fichero, lo cual , recibe el nombre de DIRECCIONAMIENTO.

Direccionamiento La mejor forma de explicar el direccionamiento es a base de ejemplos. En primer lugar vamos a ver como sería para acceder al elemento 10 del fichero 7 que es de enteros: N7:10 »N Es el identificador de tipo, en este caso de Enteros »7 Fichero número 7 »10 Elemento número 10 Ejemplo para direccionar el elemento 21 del fichero 100 de temporizadores y concretamente el acumulado del temporizador (esto se explicará mas adelante): T100:21.ACC Como puede verse lo primero que hay que poner es la letra identificadora del tipo de archivo, seguida del número (3-255) de archivo y finalmente el elemento al cual se hace referencia.

Para direccionar el bit 64 del fichero 12 binario habría que poner: B12:3/0 o bien B12/64

Archivos de Bits Estos archivos están destinados a poder trabajar de forma cómoda con bits.Los elementos de estos ficheros son palabras de 16 bits y pueden definirse de 0 a 255 palabras, con lo cual podemos tener un máximo de 4096 bits en un solo archivo binario. La manera de direccionar estos archivos es de formas, a traves de la palabra y bit de la palabra o directamente el número de bit respecto al inicio del archivo(véase el ejemplo anterior).

Archivos de Temporizadores Este tipo de archivos destinados para poder trabajar con las instrucciones de temporización. Los elementos de estos ficheros están formados por 3 palabras. la estructura de estos registros es la siguiente: 15 14 13 0 EN TT DN Uso Interno Valor de preajuste (PRE) Valor de acumulador (ACC)

-El bit EN es de instrucción habilitada. -El bit DN es de temporización terminada. -El bit TT es de temporización realizándose. -El valor de preset es la palabra en donde se pone el valor hasta el que se quiere que el temporizador cuente. -El valor de acumulado, es en donde el plc deja el valor hasta el que ha contado en cada momento.

Ejemplo de direccionamiento de estos bits, teniendo en cuenta que se utiliza el archivo de temporizadores número 11 y el elemento 2 de dicho archivo como ejemplo: -T11:2.EN » habilitación. -T11:2.DN » hecho. -T11:2.TT » temporizando. -T11:2.PRE » Preset. -T11:2.ACC » Acumulado. Estos archivos pueden contener un máximo de 256 elementos, que teniendo en cuenta que cada elemento son tres palabras, tendríamos que en un archivo de temporizadores podemos llegar a ocupar 768 palabras.

Archivos de Contadores Este tipo de archivos están destinados para poder trabajarcon las instrucciones de contadores. Los elementos de estos ficheros están formados por 3 palabras. La estructura de estos registros es la siguiente:

151413 1211 0 CU CD DN UN UA Uso Interno Valor de preajuste (PRE) Valor de acumulador (ACC)

-El bit CU el contador cuenta hacia adelante. -El bit DN es de temporización terminada. -El bit CD el contador cuenta hacia atrás. -El bit UN indica desbordamiento inferior.

-El bit OV indica desbordamiento. -El valor de preset es la palabra en donde se pone el valor hasta el que se quiere que el contador cuente. -El valor acumulado, es en donde el plc deja el valor hasta el que ha contado en cada momento. Ejemplo de direccionamiento de estos bits, teniendo en cuenta que se utiliza el archivo de contadores número 15 y el elemento 23 de dicho archivo como ejemplo: -C15:23.UN » habilitación cuenta adelante. -C15:23.DN » hecho. -C15:23. CU » habilitación cuenta atrás. -C15:23.PRE » Preset. -C15:23.ACC » Acumulado. Estos archivos pueden contener un máximo de 256 elementos al igual que los ficheros de temporizadores.

Archivos de Control

Estos ficheros se utilizan en instrucciones potentes que precisan de una zona de memoria extra para poder controlar la operación que realizan. Instrucciones del tipo movimiento de palabras, movimiento de bits, búsqueda, secuenciadores, etc... Cada elemento de estos ficheros está formado por 3 palabras, la estructura del cual es la siguiente: 15 14 13 12 11 10 0 EN DN ER UL IN FDUso Interno Longitud Posición

-El bit EN instrucción habilitada

-El bit DN instrucción terminada -El bit ER instrucción ha encontrado un error -El bit UL bit de descarga (instrucciones de desplazamiento de bits BSL, BSR). -El bit IN Inhibir -El bit FD encontrado (en instrucciones SQC) -Longitud es la dimensión que tiene el archivo con el que se quiere trabajar -Posición dentro del fichero de trabajo, a la cual esta apuntando la instrucción en un determinado momento de la operación. El máximo número de elementos es al igual que en casos anteriores de 256.

Archivos de Enteros Estos archivos son utilizados para almacenar datos numéricos, como pueden ser resultados de operaciones matemáticas, valores proporcionados por tarjetas analógicas, etc... El número más grande que pueden almacenar es de +32.767 y el más pequeño es de -32.768. Cada elemento de estos ficheros ocupa una palabra, y se pueden definir un máximo de 256 elementos. Como ejemplo de direccionamiento pondremos el fichero 35 elemento 123: N35:123

Archivos de Estado El archivo de estado del sistema le proporciona información concerniente a diversas instrucciones que puedan estar usando en su programa. El archivo de estado indica averías menores, información de diagnóstico sobre fallos

importantes, modos del procesador, tiempo de scan velocidad en baudios, direcciones de nodo del sistema y otros tipos de datos. El fichero de estado también proporciona información que se puede utilizar en el programa de usuario, tal como: -Cargar módulo de memoria cuando error de memoria. -Códigos de error creados por el usuario -Bit de primer scan -Y otros La palabra S2:0 contiene las banderas artméticas. El procesador actualiza y valora las banderas aritméticas después de cada ejecución de una instrucción lógica , matemática o de traslado. Los bits que forman esta palabra son el Bit de acarreo, Bit de desbordamiento, Bit de cero y Bit de signo. Los Bits s2:1/0 a S2:1/4 indican el modo actual del microprocesador. Dependiendo del número que tengamos en estos bits sabremos en que modo esta funcionando el plc: -Código = 0 » Cargando un programa -Código = 1 » Modo de programa -Código = 3 » En reposo.(ejecutada instrucción SUS) -Código = 6 » Ejecutando un programa -Código = 7 » Modo continuo de test -Código = 8 » Scan único de test El Bit S2:1/5 informa que las tablas de E/S forzadas están activadas. En caso contrario el bit está a 0. El bit S2:1/6 indica cuando está a 1 que existen tablas de forzados de E/S , lo cual no quiere decir que estén activas. Si no hay ninguna tabla de forzados el bit esta a 0.

El Bit S2:1/7 indica que hay como mínimo otro nodo en la red de comunicaciones DH-485. En caso contrario esta a 0. El Bit S2:1/8 ha de ponerlo a 1 el usuario para obligar al procesador a borrar el bit de fallo e intentar arrancar y ejecutar el programa. Si este bit permanece a 0 el procesador permanece en un estado de avería importante. El Bit S2:1/10 puesto a 1 hace que al producirse un error de memoria se transfiera de forma automática el contenido del módulo de memoria opcional a la memoria del procesador.Para poder ralizar esta operación de forma correcta debe de existir dicho módulo y debe de contener un programa que el procesador pueda ejecutar. El Bit S2:1/13 cuando contiene un valor de 1indica que el plc ha entrado en una avería importante , deteniendo por tanto la ejecución del programa. Para facilitar el tipo de error que se ha producido deja un código de error en la palabra S2:6 el cual nos proporciona una pista de lo que ha podido suceder. Si ponemos este bit a cero el procesador intenta arrancar el programa. El Bit S2:1/14 es un bit que al ponerlo a 1 protege el acceso por parte de un terminal al plc. Para poder poder entrar a supervisar el plc hace falta que el terminal tenga una copia del programa que tiene el plc en su memoria. El Bit S2:1/15 se pone a 1 cuando se arranca el plc y éste realiza el escrutinio del programa por primera vez. En el segundo paso por el programa y en pasos sucesivos (a no ser que se detenga el plc) este bit restará a cero. Los Bits S2:3/0 a S2:3/7 contienen el tiempo que tarda el procesador en realizar un ciclo completodel programa del usuario. Los Bits S2:3/8 a S2:3/15 contiene el tiempo en unidades de 100 milisegundos que como máximo se permite al procesador en realizar un scan completo de programa. Si se diera el caso que la cpu tarda más tiempo que el que se ha establecido en estos bits el plc entrará en fallo y se parará. La palabra S2:4 es un registro que se pone a 0 al iniciar una ejecución del programa y se va incrementando su valor cada 10 milisegundo. De esta forma el programa puede consultar los bits de esta palabra si quiere realizar operaciones con una base de tiempos precisa.

La palabra S2:5 contiene bits que indican sucesos que conllevan a un error pero que es considerado como un error menor, el cual no provoca la parada del programa. La palabra S2:6 está destinada a guardar un código que indica el tipo de error que se ha producido y que ha provocado la parada del plc. Cuando el procesador detecta un fallo mayor, deja en esta posición el código referente al suceso, de esta forma el programador puede tener una guía a la hora de solventar un problema. La palabra S2:7 alberga el código de una instrucción SUS que se haya ejecutado. De esta forma el programador puede saber porque se ha parado su programa. La palabra S2:8 contiene el número del archivo de programa en el cual se ha ejecutado la instrucción SUS que ha provocado la parada del programa. Las palabras S2:9 y S2:10 representas los 32 posibles nodos de la red DH485.Los bits que estén a 1 indican que una estación con el número de nodo correspondiente al número de bit de 0 a 32 esta activa, los bits a cero indican estaciones inactivas. Las palabras S2:11 y S2:12 están mapeadas a bits para representar los 30 slots posibles de E/S en un sistema SLC-500. El bit S2:11/0 representa el slot 0, el S2:11/1 el slot 1 y S2:12/14 el slot 30. Cuando uno de estos bits es puesto a 1 permite que el procesador actualice el slot que hace referencia ese bit. Si esta puesto a 0 el plc ignora la tarjeta E/S que haya en ese slot. Los Bits S2:15/8 a S2:15/15 contienen un valor que indica la velocidad de comunicación por la red DH-485. Puede ser de 19,2 Kbaudios o 9,6 Kbaudios. Esta instrucción corresponde al contacto normalmente abierto.La instrucción es cierta si el contacto está cerrado.

Esta instrucción, corresponde al contacto, normalmente cerrado. La instrucción es cierta si el contacto está abierto.

Corresponde a una bobina de relé. Si la linea que le precede es cierta se activa la salida.Si por el contrario, no lo es, se desactiva. La instrucción OTE, no es retentiva.Las instrucciones OTE se ponen acero cuando: • • •

Se entra o vuelve al modo de ejecución o se vuelve a activar el sistema. Ocurre un error grave. La OTE está programada en una zona MCR falsa o inactiva.

Equivale a un relé de memoria. Cuando la linea es cierta se activa la salida y se mantiene activada. Si por cualquier motivo se cortara la alimentación del autómata, cuando esta, se restableciese, la salida continuará activada.

Equivale a un relé de memoria. Cuando la linea es cierta, se desactiva la saliday se mantiene desactivada, incluso si se corta la alimentación. Las dos últimas instrucciones(OTL OTU), trabajan siempre juntas, es decir si utilizamos OTL para activar una salida, para poder desactivarla, tentremos que hacer una OTU, para poder desactivar dicha salida. Cuando el procesador cambia de modo de ejecución al modo de programa, o cuando haya un corte de alimentación, la última instrucción verdadera de forzar o soltar salida continua controlando el bit de memoria. Las salidas físicas se apagan bajo condiciones de error grave. Sin embargo, cuando se fijan las condiciones de error, el controlador reanudará el funcionamiento usando el valor de la tabla de datos del operando.

Es un impulso. Cuando la parte de la linea que esta a su izquierda pasa de falsa a cierta la instrucción, y por tanto la línea, será cierta solamente

durante un scan de programa y después será falsa hasta que la parte de la línea que esta a su izquierda vuelva a pasar de falsa a cierta. Esta instucción se debería programar inmediatamente precediendo a la instrucción de salida(no ramificada) para asegurar que es examinada en cada evaluación del renglón.

Ramificaciones Use ramificación para formar lógica paralela en su programa. Las ramas se pueden establecer tanto en las porciones de entrada como salida de un renglón. El límite superior al número de niveles que se pueden programar en una estructura de ramas es de 75. El número máximo de instrucciones poe renglón es de 128.

Ramificación de Entrada Use una rama de entrada, para permitir más de una combinación o condición de entrada, para formar ramas paralelas (condiciones de 0 lógica). Si por lo menos una de estas ramas paralelas forman un camino lógico verdadero, se habilita la lógica del renglón. Si ninguna de las ramas paralelas forma un camino lógico verdadero la lógica del renglón no será cierta y la salida no se activará.

Ramificación de salida Se pueden programar salidas paralelas en renglón. Cuando se ramifican salidas, no se permite la programación de instrucciones(condicionales) de entrada en la rama de salida.

INTRODUCCION Las instrucciones de actualización de entrada salida incluyen las instrucciones de entrada y salida inmediata. La instrucción de entrada inmediata (IIM) mueve el estado de las 16 entradas de un slot a través de una máscara, dejando

disponibles dichas entradas para su utilización. La instrucción de salida inmediata (IOM) actualiza las salidas de un slot E/S con datos trasladados a través de una máscara.

Los datos de entrada se mueven a través de una máscara y se colocan a la entrada del archivo de datos de imagen Dest - 0000 0000 0000 0001 Fuente = xxxx xxxx xxxx 0011 ->Dest = 0000 0000 0000 1000 Si la palabra fuente contiene un O se activa el bit O de la palabra de destino. Si la palabra fuente contiene un 3 se activa el bit 3 de la palabra de destino. El plc solo tiene en cuenta los cuatro primeros bits de la palabra fuente.

Cuando los valores de la fuente A y la fuente 13 son iguales, la instrucción es lógicamente verdadera. Si los valores no son iguales, entonces la instrucción es lógicamente falsa.

Cuando los valores de la fuente A y la fuente B son distintos, la instrucción es lógicamente verdadera. Si dichos valores son iguales, entonces la instrucción es lógicamente falsa.

Cuando el valor de la fuente A es menor que el valor de la fuente B, la instrucción es verdadera. Si el valor de la fuente A es mayor o igual que el valor de la fuente B, entonces dicha instrucción es lógicamente falsa.

Cuando el valor de la fuente A es menor o igual que el valor de la fuente B, la instrucción es verdadera. Si el valor de la fuente A es mayor que el valor de la fuente B, entonces dicha instrucción es lógicamente falsa.

Cuando el valor de la fuente A es mayor que el valor de la fuente B, la instrucción es verdadera. Si el valor de la fuente A es menor o igual que el valor de la fuente B, entonces dicha instrucción es lógicamente falsa.

Cuando el valor de la fuente A es mayor o igual que el valor verdadero de la fuente B, la instrucción es lógicamente verdadera. Si el valor de la fuente A es menor que el valor de la fuente B, entonces dicha instrucción es lógicamente falsa.

Esta instrucción compara los datos de una dirección fuente con los datos de una dirección de referencia y permite que porciones de los datos sean enmascarados por una palabra separada. Los parámetros son: - Fuente: La dirección del valor que se quiere comparar. - Máscara: La dirección o la constante a través de la cual la instrucción mueve los datos. Puede ser un valor en hexadecimal. - Comparación: Un valor entero o la dirección de la referencia. La instrucción se hace falsa al detectar una desigualdad. Se trata de una comparación realizada solamente sobre los bits que estén a 1 en la máscara.

TRASLADO: MOV La ejecución de esta instrucción permite mover el valor de la fuente al destino. La fuente puede ser una constante.

TRASLADO ENMASCARADO: MVM

La instrucción de traslado enmascarado mueve el valor de la fuente al destino a través de una máscara, permitiendo dependiendo de la máscara que solo se actualicen ciertos bits del destino.

Por ejemplo: Destino antes de la ejecución de la instrucción: Dest: 1111 1111 1111 1111 Fuente: 0101 0101 0101 0101 Máscara: 1111 0000 1111 0000 Destino después de la ejecución: Dest: 0101 1111 0101 1111

Y: AND

La instrucción AND realiza una Y lógica bit a bit entre el valor de la fuente A y el valor de la fuente B, dejando el resultado en el destino. La tabla de verdad de dicha función será:

O INCLUSIVO SOBRE BIT: OR

La instrucción OR realiza una 'O" lógica bit a bit entre los valores de la fuente A y B, almacenando el resultado en el destino. La tabla de verdad de dicha función será:

EXCLUSIVO: XOR

La instrucción XOR realiza una "O" exclusiva lógica bit a bit entre los valores de la fuente A y B, almacenando el resultado en el destino. La tabla de verdad de dicha función será:

NO: NOT

La instrucción NOT realiza una negación bit a bit con el valor de la fuente y almacena el resultado en el destino. La tabla de verdad de dicha función será:

DESPLAZAMIENTO DE BIT A LA IZQUIERDA: BSL

Cuando el renglón pasa de falso a verdadero, el bit de habilitación (EN bit 16 registro de control) se pone a "1" y el bloque de datos se desplaza a la izquierda (a un número de bit superior) una posición de bit. El bit especificado en la dirección de bit se desplaza a la primera posición del bloque de datos. El último bit se almacena en el bit de descarga UL del registro de control. Parámetros de la instrucción: -Archivo:La dirección del array de bits que se desea manipular. Debe de especificarse con el símbolo #, por ejemplo: #B3:lO -Control: Es el registro de control. Dicho registro lo utiliza la instrucción para poder trabajar y no puede ser utilizado por otra instrucción del programa. El registro de control tiene la siguiente estructura: 15 ...13...11...10 EN...DN..ER..UL No se usa Tamaño del array de bits (número de bits) Puntero del Bit (normalmente no se usa

EN (bit 15) El bit de habilitación se pone a 1 en una transición de falso a verdadero del renglón e indica que la instrucción esta validada. DN (bit13) Este bit indica cuando esta a 1 que el array de bits se ha desplazado una posición. ER (bit11) Cuando este bit se pone a 1 indica que la instrucción ha detectado un error en su ejecución, tal como una longitud negativa. UL (bit10) Cada vez que se habilita la instrucción este bit almacena el valor del bit que se ve desplazado fuera del array. Dirección de bit: Es la dirección del bit de fuente que la instrucción inserta en la primera posición de bit del array. Longitud: Es el número de bits que formarán el array de bits.

DESPLAZAMIENTO DE BIT A LA DERECHA:BSR Cuando el renglón pasa de falso a verdadero, el bit de habilitación (EN bit 16 registro de control) se pone a "1" y el bloque de datos se desplaza a la derecha (a un número de bit inferior) una posición de bit. El bit especificado en la dirección de bit se desplaza a la última posición del bloque de datos. El primer bit se almacena en el bit de descarga UL del registro de control. El registro de control funciona de la misma forma que para la instrucción de desplazamiento a la izquierda. Los bits de estado actúan de la misma forma.

SALTAR A ETIQUETA: JMP

Cuando la condición de renglón de esta instrucción es verdadero, el programa salta al renglón donde haya el número de la etiqueta que contenía el JMP. En ese punto reanuda la ejecución del programa. El salto puede hacerse hacia

delante o atrás, según la posición de la etiqueta. Más de una instrucción JMP puede saltar a la misma etiqueta. Parámetro de la instrucción: Número de la etiqueta a la cual se quiere saltar. Dicho número puede variar de O a 255, en una misma rutina. No es posible saltar a una etiqueta de otra rutina.

ETIQUETA: LBL

La etiqueta define un punto de llegada de un salto de programa realizado con la instrucción JMP. Pueden definirse hasta 256 etiquetas. No puede haber en una misma rutina más de una etiqueta con el mismo número. Parámetro de la instrucción: Número de la etiqueta.

SALTAR A SUBRUTINA:(JSR)

Cuando la condición de renglón para una instrucción JSR es verdadera, el procesador salta a la instrucción de subrutina SBR al principio del archivo de subrutina destino y reanuda la ejecución en ese punto. Cada subrutina se debe programar en su archivo de programa asignándole un número de archivo único (O . . 255). Se pueden anidar hasta un máximo de 4 llamadas a rutina. Parámetro de la instrucción: Solo tiene un parámetro y es el número del archivo de programa al cual se quiere saltar (O . . 255).

SUBRUTINA: SBR

Esta instrucción identifica el inicio de una rutina. Debe de programarse en el primer renglón de un archivo de programa destinado a ser una rutina. Es sobre el punto donde hay la SBR donde la instrucción JSR salta. No tiene parámetros.

RETORNO DE RUTINA: RET Esta instrucción provoca la terminación de la ejecución de una rutina retornando al punto desde donde se había llamado a la rutina que contiene el retorno. Un archivo de programa puede tener más de un retorno en distintos puntos del programa. Esta instrucción no tiene parámetros.

BLOQUE CONDICIONAL: (MCR)

Esta instrucción se usa por parejas. Define una condición de entrada que engloba al conjunto de instrucciones que haya entre dos instrucciones MCR. Si la condición se cumple se ejecutan todas las instrucciones que haya dentro del bloque, si es falsa, es como si todas las condiciones de entrada de las instrucciones contenidas entre los dos MCR fueran falsas. Esta instrucción no tiene parámetros.

FIN TEMPORAL: TND

Esta instrucción, cuando su renglón es verdadero detiene el scan del programa saltando al final del archivo 2 (programa principal) actualizando las E/S y reanudando la ejecución del programa en el renglón 1 del archivo 2. Esta instrucción esta pensada para poder depurar un programa en una puesta en marcha de un proyecto. No tiene parámetros.

SUSPENSION: SUS

Esta instrucción al ejecutarse coloca el plc en modo de inactividad, desactivándose todas las salidas. Un número de identificación se deja en la palabra S:7 del archivo de estado y el número del archivo de programa desde donde se ha ejecutado dicha instrucción se deja en la palabra 5:8 del archivo de estado. Parámetros de la instrucción: Solo dispone de uno, y es el identificador (ID), es el número que se deja en la posición 5:7 al ejecutarse la SUS. Este número es entrado por el programador en la instrucción SUS y hace que se pueda discernir sobre cual instrucción de SUS ha sido la culpable de la suspensión de la ejecución del programa en caso que en un mismo fichero de programa haya más de una.

COPIA DE ARCHIVOS: COP Esta instrucción copia datos de una localización a otra. El parámetro Fuente debe de ser una dirección de archivo, con lo cual ha de utilizarse el símbolo "#" para indicar dirección. El parámetro destino al igual que el anterior también ha de utilizar el símbolo #. En destino es donde se almacenan los valores de la fuente. El parámetro Longitud determina el número de elementos que se transferirán del archivo fuente al destino. Es importante tener en cuenta que el tipo de archivo destino determina el número de palabras que se transfieren por elemento.

La forma como opera dicha instrucción es que al hacerse verdadero el renglón donde esta ubicada, se copia el número de elementos especificados en longitud al archivo destino. Los elementos se copian en orden ascendente sin transformación de datos. Si por alguna razón se encuentra antes el final de archivo que la longitud especificada, la instrucción también da por terminada la copia.

LLENADO DE ARCHIVO: FLL

La instrucción carga elementos de un archivo con una constante o bien con el valor contenido en una dirección. El funcionamiento de esta instrucción es igual al de la anterior teniendo en cuenta que copia el mismo valor en todas las Posiciones del archivo destino. Por ejemplo: Llena con O el archivo N7 de longitud 10 palabras.

Llena con el contenido de N7:2 el archivo N12 de longitud 32 palabras.

SALIDA DEL SECUENCIADOR: SQO

Esta instrucción de salida actúa paso a paso a través del archivo del secuenciador. Cuando el renglón pasa de falso a verdadero, la instrucción pasa

a la siguiente palabra del archivo del secuenciador, seguidamente los bits almacenados en dicha palabra son transferidos a través de una máscara a la dirección de destino especificada. Mientras permanezca verdadero el renglón, los datos de la palabra direccionada se escribirán a cada scan en la dirección de destino. El bit de hecho (DN) se pone a "1" cuando la última palabra del archivo secuenciador se ha transferido. En la siguiente transición de falso a verdadero del renglón de la instrucción se inicializa la posición a paso 1. Parámetros de la instrucción: Archivo: Es la dirección del archivo del secuenciador. Ha de utilizarse el símbolo #. Máscara: Es un código en hexadecimal o la dirección de una palabra o también la dirección de otro archivo a través del cual la instrucción decide que bits del destino actualiza. Los bits a "0", enmascaran, a "1" Dest: Es la dirección de la palabra o archivo al que la instrucción mueve los datos. Control: Es el registro de control que precisa la instrucción para poder operar. Su estructura es la siguiente: 15..................13 EN...DN...ER...FD

No se usa.............

Longuitud del archivo del secuenciador Posición

EN (bit 15) El bit de habilitación se pone a "1" en una transición de falso a verdadero del renglón e indica que la instrucción esta validada. DN (bit13) Se pone a "1" después que la instrucción haya actuado sobre la última posición del archivo del secuenciador. Se pone a O en la siguiente transición de falso a verdadero. ER (bit11) Cuando este bit se pone a 1 indica que la instrucción ha detectado un error en su ejecución, tal como una longitud negativa. Longitud: Es el número de pasos del archivo del secuenciador a partir de la posición 1. La posición O es la posición de comienzo.

Posición: Es la localización de palabra o paso en el archivo del secuenciador.

COMPARACION DEL SECUENCIADOR:SQC

La instrucción SQC compara una palabra o archivo de datos de entrada, a través de una máscara, con una palabra o archivo de datos de referencia para comprobar si son iguales. Cuando el estado de todos los bits no enmascarados de una palabra de entrada concuerda con los de la palabra de referencia correspondiente, la instrucción se hace verdadera y pone a "1" el bit de encontrado (FD) del registro de control. Sino la instrucción es falsa y deja a "0" dicho bit. El registro de control es idéntico al de la instrucción anterior teniendo en cuenta que esta dispone de un bit adicional que es el ya descrito (FD), el cual indica que se ha encontrado una igualdad entre una palabra del archivo del secuenciador y la fuente. El parámetro Fuente debe de ser una dirección de una palabra o de un archivo de donde la instrucción cogerá valores para comparar con los del archivo secuenciador. Las instrucciones de cálculo permiten efectuar operaciones aritméticas, lógicas y de afectación. Las instrucciones de movimiento nos dan la posibilidad de traspasar una información de un elemento a otro con o sin máscara. Los parámetros que necesita cada instrucción en el formato general son: • •

DESTINO: Dirección donde se desea almacenar el resultado EXPRESION: Operando u operandos y definición de la operación que se desea realizar.

En el formato específico para cada instrucción habría que definir los parámetros: •

Fuente A: Primer operando.

• •

Fuente B: Segundo operando (Si lo necesita la instrucción) Destino: Dirección donde se desea almacenar el resultado.

Los operandos pueden ser: • • •

ENTEROS: del tipo: I, O, S, B, T, C, R, N, BCD ó ASCII. Utilizar preferentemente de tipo N. Coma flotante: del tipo F. CONSTANTES: Números enteros o en coma flotante

Al utilizar palabras de los ficheros ASCII o BCD el procesador interpretará como números enteros. Utilizar estos ficheros únicamente para visualización. En una misma instrucción es posible mezclar números enteros y en coma flotante en la expresión o como dirección de destino. Antes de ser memorizado un resultado en la palabra de destino, el procesador lo redondea al número entero más próximo: 1.49999=1 1.50000=2 El mismo tratamiento recibe un número en coma flotante que se transforma a entero. En este tipo de instrucciones, una palabra del fichero de estados, S:0 nos va a dar indicaciones relativas al resultado obtenido inmediatamente después de la ejecución de las instrucciones. Bits utilizados: • • • •

Bit 0 C Carry.Acarreo Bit 1 V Overflow- Desbordamiento Bit2-Z-Zero.El resultado es cero Bit 3 S Sig- El resultado es negativo

ADD-ADDitIOn-. SUMA

Descripción:

Si las condiciones precedentes son verdaderas, el contenido del operando 1 se suma con el operando 2 y el resultado se almacena en la dirección especificada en destino. Se trata de una instrucción de acción. Dest: Dirección donde se desea almacenar el resultado. Expresión: Operando 1 + Operando 2. Source A: Operando 1. Source B: Operando 2. Programación en mnemónico CPT- ADD (Después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas Aritméticas S:0 • • • •

C -Carry se pone a "1" si hay acarreo, si no a "0". V -OVerflow desbordamiento. A "1" si desbordamiento, sino a "0" Z -Zero .Se pone a "1" si el resultado es "0" sino a "0". S -Signe Se pone a "1" si el resultado es negativo, sino a "0".

SUB SUBtract RESTA

Descripción: Si las condiciones precedentes son verdaderas, el contenido del operando 1 se resta con el operando 2 y el resultado se almacena en la dirección especificada en destino. Se trata de una instrucción de acción. • •

Dest: Dirección donde se desea almacenar el resultado. Expresión: Operando 1 Operando 2.

• •

Source A: Operando 1. Source B: Operando 2.

Programación en mnemónico CPT-SUB (Después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas Aritméticas S:0. C -Carry -Se pone a "1" si hay acarreo, sino a "0". V -OVerflow Se pone a "1" si hay desbordamiento, sino a "0". Z -Zero Se pone a "1" si el resultado es 0, sino a "0". S -Signe Se pone a "1" si el resultado es negativo, sino a "0".

Xm MUL- MULtipIy Multiplicar

Descripción. Si las condiciones precedentes son verdaderas, el contenido del operando 1 se multiplica con el operando 2, y el resultado se almacena en la dirección específica en destino. Se trata de una instrucción de acción. Dest: Dirección donde se desea almacenar el resultado. Expresión: Operando 1 Operando 2. Source A: Operando 1. Source B: Operando 2. Programación en mnemónico

CPT-MUL (Después definir 1 bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas aritméticas. S:0. • • • •

C -Carry - Siempre a "0". V -OVerflow - Se pone a "1" si hay desbordamiento, sino a "0". Z -Zero - Se pone a "1" si el resultado es 0 sino a "0". S - Signe - Se pone a "1" si el resultado es negativo, sino a "0".

DiVide División

Descripción: Si las condiciones precedentes son verdaderas, el contenido del operando 1 se divide con el operando 2, y el resultado se almacena en la dirección especificada en destino. Se trata de una instrucción de acción. Dest: Dirección donde se desea almacenar el resultado. Expresión: Operando 1: Operando 2. Source A: Operando 1. Source B: Operando 2. Programación en mnemónico. CPT-DIV (Después definir el bloque funcional correspondiente de la programación escalonada). Ficheros de estados. Banderas aritméticas. S:0. • • •

C -Carry - Siempre "0". V -OVerflow - Se pone a 1 si división por 0 o desbordamiento, sino a 0. Z - Zero - Se pone a "1" si el resultado es 0, sino a "0".Indefinido si el desbordamiento (v) está a "1".



S - Signe - Se pone a "1" si el resultado es negativo, sino a "0". Indefinido si el desbordamiento (v) está a 1.

SQR - SQuaRE ROOT Raíz cuadrada

Descripción. Si las condiciones precedentes son verdaderas extrae la raíz cuadrada del operando y almacena el resultado en la dirección especificada en destino. Se trata de una instrucción de acción. Símbolos de programación escalonada. Dest: Dirección donde se desea almacenar el resultado. Expresión: SQR Operando. Source: Operando. Programación en mnemónico CPT-SQR (Después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas Aritméticas. S:0. • • • •

C - Carry - Siempre a "0". V -OVerflow - Siempre a "0" Z -Zero - Se pone a "1" si el resultado es cero, sino a "0". S -Signe - Siempre a "O".

NEG- NEGate - Negación

Descripción

Si las condiciones precedentes son verdaderas, resta de 0 el operando y almacena el resultado en la dirección especificada en destino. Esta instrucción hace el complemento a "2". Se trata de una instrucción de acción. Símbolos de programación escalonada. Dest: Dirección donde se desea almacenar el resultado. Expresión: Operando. Source: Operando. Programación en mnemónico CPT-NEG (Después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas Aritméticas S:0. • • • •

C -Carry - Se pone a "0" si el resultado es 0, sino a "1". V -OVerflow - Se pone a "1" si hay desbordamiento, sino a "0". Z -Zero - Se pone a "1" si el resultado es O, sino a "O". S - Signe Se pone a "1" si el resultado es negativo, sino a "O".

CLR - CleaR - Borrar

Descripción: Si las condiciones precedentes son verdaderas pone a cero la dirección especificada en destino. Se trata de una instrucción de acción. Símbolos en programación escalonada.

Dest: Dirección donde se desea almacenar el resultado. Expresión: 0 Programación en mnemónico CPT-CLR (Después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas Aritméticas. S:0. • • • •

C -Carry - Siempre O. V - OVerflow - Siempre O. Z - Zero - Siempre a "1". S -Signe - Siempre "O".

MOV - MOVe - Mover

Descripción: Si las condiciones precedentes son verdaderas, copia el operando en la dirección especificada en destino. Se trata de una instrucción de acción. Símbolo en programación escalonada. Dest: Dirección donde se almacena el resultado Expresión: Operando que se quiere copiar. Source: Operando a copiar. Programación en mnemónico. CPT-MOV (Después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas aritméticas.S:0.





C - Carry - Siempre a "0". • V - OVerflow~se. pone a 1 si el dato no cabe en destino • Z - Zero - Se pone a "1" si el resultado es 0, sino a "0". S - Signe - Se pone a "1" se el resultado es negativo (El bit más significativo está a 1), sino a "0".

MVM - MoVe with Mask- Mueve con máscara

Descripción: En el frente ascendente de las condiciones de entrada copia el operando fuente, enmascarado con un operando de máscara, en la dirección especificada en destino. En la parte de máscara correspondiente a 0 (bits de máscara) los bits de destino no cambian. Se trata de una instrucción de acción. Símbolos de programación escalonada. Dest: Dirección donde se desea almacenar el resultado. Source: Operando fuente (Dirección o datos). Mask: Operando de máscara (Dirección o datos hexadecimal). Programación en mnemónico. MVM (Después definir el bloque funcional correspondiente de la programación escalonada).

TOD TO BCD - Binario --- >BCD

Descripción:

Si las condiciones precedentes son verdaderas, el operando fuente se convierte en BCD y almacena el resultado en la dirección especificada en destino. Se trata de una instrucción de acción. Símbolos de programación escalonada Dest: Dirección donde se desea almacena el resultado. Expresión: TOD Operando Source: Operando fuente Programación en mnemónico. CPT-TOD(después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas aritméticas S:0. •

C - Carry - Siempre a "0". • V -OVerflow - Se pone a "1" si el valor entero está fuera de los límites 0-9999, sino a "0". • Z - Zero - Se pone a "1" si el resultado es cero, sino a "1" • S -Signe - Siempre a "0".

FRD - FRom BCD - BCD --- > Binario

Descripción: Si las condiciones precedentes son verdaderas el operando fuente en BCD se convierte en binario y se almacena el resultado en la dirección especificada en destino. Se trata de una instrucción de acción. Símbolos en programación escalonada. Dest: Dirección donde se desea almacenar el resultado.

Expresión: FRD Operando Source: Operando fuente Programación en mnemónico. CPT-FRD (Después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas aritméticas. S:0. • • • •

C -Carry - Siempre 0 V -OVerflow - Siempre 0 Z -Zero - Se pone a "1" si el resultado es "0" sino a "1". S -Signe - Siempre 0.

AND Y Lógica

Descripción: Si las condiciones precedentes son verdaderas se produce la operación "Y LOGICA" entre el operando 1 y operando 2 y el resultado se almacena en la dirección especificada en destino. Se trata de una instrucción de acción. Símbolos en programación escalonada Expresión: Operando 1AND Operando 2. Dest: Dirección donde se desea almacenar el resultado. Source A: Operando 1.( en binario) Source B:Operando2 ( en binario) Programación en mnemónico

CPT-AND(Después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas aritméticas S:0. • • • •

C -Carry Siempre 0 V -OVerflow Siempre 0 Z - Zero Se pone a 1 si el resultado es 0, sino a "0". S -Signe Se pone a "1" si el resultado es negativo (Bit más significativo está a 1), sino a 0

OR "O Lógica"

Descripción: Si las condiciones precedentes son verdaderas, se produce la operación "O LOGICA" entre el operando 1 y el operando 2 y el resultado se almacena en la dirección especificada en destino. Se trata de una instrucción de acción. Dest: Dirección donde se desea almacenar el resultado Expresión: Operando 1 OR Operando 2. SourceA: Operando l (en binario ) SourceB: Operando2 ( en binario) Progamación en mnemónico. CPT-OR(Después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas aritméticas S:0 • • •

C -Carry-Siempre 0 V -OVerflow Siempre 0 Z -Zero Se pone a "1" si el resultado es 0, sino a 0.



S -Signe Se pone a "1" si el resultado es negativo, (bit más significativo está a "1") sino a 0.

XOR EXclusive OR O Exclusiva

Descripción:

Si las condiciones precedentes son verdaderas, se produce la operación "O EXCLUSIVA" entre el operado 1 y el operando 2 almacenando el resultado en la operación especificada en destino. Se trata de una instrucción de acción. Símbolos en programación escalonada Expresión: Operando 1 XOR Operando 2. Dest: Dirección donde se desea almacenar el resultado. SourceA: Operando l( en binario ). SourceB:Operando2 ( en binario) Programación en mnemónico CPT-XOR (Después definir el bloque funcional correspondiente de la programación escalonada). Fichero de estados. Banderas Aritméticas S:0. • • • •

C -Carry-Siemprea 0 V -OVerflow - Siempre a 0 Z -Zero - Se pone a "1" si el resultado es 0, sino a "0". S -Signe - Se pone a "1" si el resultado es negativo (Bit mas significativo está a "1"), sino a "0"