Instrucciones de CS1 Nuevas instrucciones Soporte Técnico.

Slides:



Advertisements
Presentaciones similares
Instrucciones de operación sobre datos
Advertisements

Bases de la programación de un PLC
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Clase Teórica N°3 Procesador de Pardo y Boluda
Aritmética del Computador Introducción a la Tecnología de la Información.
Curso de Java Capitulo 6: Cadenas y Arrays Profesor:
Operación On-Line Para entrar en modo On-Line seleccionar el icono .
CLASE 3 SOFTWARE DEL MICROPROCESADOR
Integrantes: Moyolehuani Tatéi Temai
Algoritmos de Remplazamiento de Paginas
PHP-MYSQL OPERADORES EN PHP
No. Lista 31 Teresita Ramírez Uribe HORA: 8:00-9:00AM.
N.L 32 ROMERO HERNÁNDEZ GABRIELA VERÓNICA. HORA: 8:00-9:00AM ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR.
Integrantes Carlos Junior Salinas Rivera (ILHUICOATL). Comunidad: coatl (serpiente).
SQL Server Integration Services SSIS
Modelo de procesos de dos estados
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Módulo 5: Estructuras de Decisión y Bucles
PROGRAMACION DE ESTRUCTURAS DE DATOS
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Teoría de lenguajes y compiladores
Arquitectura de Conjunto de Instrucciones (ISA)
PROGRAMACION 2 MICROCONTROLADORES BASIC STAMP.
VISUAL BASIC CONSOLA Todas las ordenes o instrucciones se digitan dentro de sub Main() y End Sub ÁREA DE TRABAJO: Las aplicaciones de consola son aquellas.
Tema 3. Optimización de Código
Manipulación de caracteres e hileras de texto
Circuitos Combinacionales Comunes
PROG. EN ENSAMBLADOR Ing. Pablo Cesar Tapia Catacora.
Composición Interna de un Procesador
SEMANA 05_2.
Compiladores II ( /04/ :03) Tema 2. Generación de Código para Estructuras Complejas Lecciones 3 y 4.
Estructuras de control
Lenguaje Ensamblador integrantes: Esthela Vianey Vázquez Medina No.30
Igor Santos Grueiro. Ahora tenemos datos y datos …
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
MIPS Intermedio.
Unidad 2: Organización del CPU
CARACTERÍSTICAS DE LOS PROGRAMAS
Tema 2: Los tipos de datos
Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Lenguaje C Profesor: Felipe Páez Mejías D e p a r t a m e n t o d e I n g e.
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
Conceptos Arquitectónicos del computador
Lenguaje de Programación cap. 1 Estructura del Computador.
Microprocesador (80X86) Universidad Nacional de Ingeniería
Ciclos (Loops, Repeticiones) Permiten ejecutar una secuencia de sentencias mas de una vez. Hay 2 tipos de loops:  WHILE repite la acción un número indefinido.
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.

Informática Ingeniería en Electrónica y Automática Industrial
introducción al Lenguaje Ensamblador
Términos algoritmo diseñar algoritmo implementar algoritmo
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
TEMA : ARQUITECTURA DE COMPUTADORAS
PRINCIPIOS DE PROGRAMACIÓN
introducción al Lenguaje Ensamblador
Práctica Profesional PHP.
Introducción al lenguaje PROCESSING para ARDUINO
Lic. Carla Aguirre Montalvo
José Alvarado – Cristian Anzola
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Arquitectura de Computadores
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
El microprocesador y su arquitectura
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Gestión de Memoria – Parte 2
Arranque desde CD en modo de no emulación Instalación y Configuración de Computadores, Redes y Periféricos.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Transcripción de la presentación:

Instrucciones de CS1 Nuevas instrucciones Soporte Técnico

Índice Formato instrucciones Direccionamientos Tareas Interrupciones Temporizadores Bloques de programa Tablas de datos Cadenas de caracteres Saltos Instrucciones de Lazo FOR-NEXT Desplazar/Rotar Increment/Decrement Comparación Conversión Coma Flotante Calendario Ficheros de Memoria Control de datos Comunicaciones Cambios en Intrucc. Soporte Técnico

Formato instrucciones Flancos de subida y bajada Refresco inmediato Soporte Técnico

Formato de instrucciones Flanco de subida @ La instrucción se ejecuta con el flanco de subida de la condición de ejecución. La entrada se activa con el flanco de subida. Flanco de bajada % La instrucción se ejecuta con el flanco de bajada de la condición de ejecución. La entrada se activa con el flanco de bajada. Refresco inmediato ! La instrucción hace un refresco de las variables al ejecutarse. Puede combinar el flanco de subida o bajada. Soporte Técnico

Ejemplo de Formatos % LD 0000.00 Se activa durante un ciclo de programa con el flanco de bajada de 0000.00 LD 0000.00 % SET 0001.00 Se ejecuta con el flanco de bajada de 0000.00 Hace un refresco inmediato del canal 0000 y lo mueve al DM00000 ! MOV(21) 0000 DM00000 0000.00 Se ejecuta con el flanco de subida de 0000.00 y hace un refresco inmediato del canal 0001 para moverlo al DM00001 !@MOV(21) 0001 DM00001 Soporte Técnico

Se utilizan como LD, AND y OR. TST(350) TSTN(351) Se utilizan como LD, AND y OR. Comprueban el estado del bit N de la palabra S. S: Palabra dato. N: Número de bit. TSTN es la instrucción negada de TST. TST(350) S N TSTN(351) S N Soporte Técnico

TST, TSTN Ejemplo TST(350) DM00000 &6 El bit 6 del DM00000 activa la salida 0010.6 0000.00 0010.04 TSTN(351) DM00000 &11 La salida 0010.04 se activa cuando la entrada 0000.00 está a 1 y el bit 11 del DM0000 está a 0. Soporte Técnico

SETA(530) RSTA(531) SETA pone a 1 N2 bits consecutivos empezando en el bit N1 de la palabra D. RSTA los pone a 0. D: Palabra inicial. N1: Primer bit. N2: Número de bits. SETA(530) D N1 N2 @SETA(530) D N1 N2 RSTA(531) D N1 N2 @RSTA(531) D N1 N2 Soporte Técnico

SETA(530) RSTA(531) @SETA(530) W000 &4 &36 Pone a 1 36 bits consecutivos desde el bit 4 de la palabra W000 W000 1111 1111 1111 0000 W001 1111 1111 1111 1111 W002 0000 0000 1111 1111 @RSTA(531) W000 &4 &36 Pone a 0 36 bits consecutivos desde el bit 4 de la palabra W000 W000 0000 0000 0000 1111 W001 0000 0000 0000 0000 W002 1111 1111 0000 0000 Soporte Técnico

Direccionamientos Addessing Soporte Técnico

Existen varios tipos de direccionamientos: Inmediato (#, &) Directo (CIO, W, H, A, T, C, D, E, En_) Indirecto (D, E, En_) sustituye a IEMS(-) Dirección en BCD (*D, *E, *En_) Dirección en Binario (@D, @E, @En_) Indirecto Indexado (IR) ,IR0 +234,IR0 DR0,IR0 ,IR0++ Soporte Técnico

Ejemplos MOV(21) Escribe C (12 traducido a binario) en W000 &12 Inmediato traducido a binario W000 Directo MOV(21) Escribe 1A34 binario en W000 #1A34 Inmediato binario W000 Directo MOV(21) Escribe el contenido de W000 en W001 W000 Directo W001 Directo Escribe 1A en la dirección(BCD)indicada en D00000 MOV(21) #1A Inmediato *D00000 Indirecto BCD Soporte Técnico

Ejemplos Escribe el contenido de W000 en la dirección (Binaria) indicada en D00000 MOV(21) W000 Directo @D00000 Indirecto Binario MOV(21) Escribe 1A en la dirección indicada en IR0 #1A Inmediato ,IR0 Indexado MOV(21) Escribe 1A en la dirección indicada en (IR0+23) #1A Inmediato +23,IR0 Indexado MOV(21) Escribe 1A en la dirección indicada en (IR0+DR0) #1A Inmediato DR0,IR0 Indexado Soporte Técnico

Ejemplos Escribe 1A en la dirección indicada en IR0 MOV(21) y aumenta IR0 una unidad MOV(21) #1A Inmediato ,IR0+ Indexado Escribe 1A en la dirección indicada en IR0 y aumenta IR0 dos unidades MOV(21) #1A Inmediato ,IR0++ Indexado Escribe 1A en la dirección indicada en (IR0-1) y disminuye IR0 una unidad MOV(21) #1A Inmediato ,-IR0 Indexado Escribe 1A en la dirección indicada en (IR0-2) y disminuye IR0 dos unidades MOV(21) #1A Inmediato ,--IR0 Indexado Soporte Técnico

MOVR(560) Crea un puntero a la palabra o bit S y lo guarda en el registro índice D. S: Palabra o bit a mover. D: Registro índice IR donde se guarda la dirección. MOVR(560) S D @MOVR(560) S D Soporte Técnico

MOVRW(561) Crea un puntero al temporizador o contador S y lo guarda en el registro índice D. S: Temporizador o contador. D: Registro índice IR donde guarda el temporizador o contador. MOVRW(561) S D @MOVRW(561) S D Soporte Técnico

MOVR(560) MOVRW(561) MOVR(560) T0000 IR0 MOVRW(561) T0000 IR0 Guarda el Valor presente PV del temporizador T0000 en el registro índice IR0 IR0 0000 0195 Guarda el número de temporizador T0000 en el registro índice IR0 MOVRW(561) T0000 IR0 Soporte Técnico

División del programa en tareas Soporte Técnico

Programa y Tareas Dentro de un mismo PLC se puede repartir un programa en tareas cíclicas o de interrupción. Tarea Cíclica 00 Tarea Cíclica 01 Tarea interrupción I/O 107 Tarea Cíclica 02 Tarea Interrupción Programada 02 Tarea Cíclica 31 Soporte Técnico

Programa y Tareas Se puede cambiar un programa simplemente modificando las tareas de las que se compone. Programa A: Tareas 00, 01 y 03. Programa B: Tareas 00, 02 y 03. Tarea cíclica 00 Tarea cíclica 01 Tarea cíclica 02 Tarea cíclica 03 Programa A 00-01-03 Programa B 00-02-03 Soporte Técnico

Se pueden programar 32 tareas cíclicas 00÷31. Tarea cíclica Se pueden programar 32 tareas cíclicas 00÷31. Estas tareas se ejecutan por orden de numeración: La tarea 00 es la inicial, luego la 01, ... hasta la 31 que es la última. Cada una de estas tareas acaba con la instrucción END(001). En cada ciclo de scan se puede elegir qué tareas queremos que se ejecuten y cuales no.Una tarea puede activar a otras. Soporte Técnico

Se pueden utilizar dos clases de símbolos (variables): CX-Programer Se pueden utilizar dos clases de símbolos (variables): Globales: Sirven para todas las tareas (cíclicas y de interrupción) y no se pueden duplicar los nombres. Son únicas para cada PLC. Locales: Sólo tienen validez en la tarea donde se han creado, bien sea cíclica o de interrupción. Estas variables se pueden repetir en otras tareas, pero nunca en la misma tarea. Soporte Técnico

Existen dos tipos de tareas: Control de Tareas Existen dos tipos de tareas: Tareas cíclicas: Se ejecutan según esté su flag de ejecución TK00 a TK31. Una vez por ciclo de scan y en orden según su número de tarea. Tareas de interrupción: Se ejecutan cuando se cumple la condición de interrupción, independientemente del ciclo de scan. Para controlar qué tareas cíclicas se ejecutan en un ciclo de scan se utilizan las instrucciones TKON(820) y TKOF(821). Soporte Técnico

TKON (820) Permite que se ejecute la tarea cíclica, pone a 1 el flag de la tarea TK00 a TK31. Sólo se puede ejecutar esta instrucción desde una tarea cíclica, de otro modo da un error ER a 1. TKON(820) N @TKON(820) N Soporte Técnico

TKON(820) N: debe ser una constante comprendida entre #0 y #31. Debe Existir la tarea N. Si la instrucción TKON(820) es ejecutada desde la tarea cíclica m, la tarea N se ejecutará según: m<N: en el mismo ciclo de scan. m>N: en el siguiente ciclo de scan. Si ya se está ejecutando la tarea N, la instrucción TKON(820) que activa la tarea N se trata como NOP(000). Soporte Técnico

TKOF (821) Pone en stand by la tarea cíclica, pone a 0 el flag de la tarea TK00 a TK31. Se puede ejecutar esta instrucción desde una tarea cíclica o desde una tarea de interrupción. TKOF(821) N @TKOF(821) N Soporte Técnico

TKOF(821) N: debe ser una constante comprendida entre #0 y #31. Debe existir la tarea N. Si la instrucción TKOF(821) es ejecutada desde la tarea cíclica m, la tarea N se pondrá en stand by según: m<N: en el mismo ciclo de scan. m>N: en el siguiente ciclo de scan. Soporte Técnico

TKON TKOF Ejemplo Las tareas cíclicas 00 y 03 están prefijadas para que se ejecuten al arrancar el PLC. TKON(820) 2 TKOF(821) 1 0000.01 0000.00 Cuando la entrada 0000.01 está a uno se ejecuta el programa A con las tareas 00, 02, 03. Cuando la entrada 0000.00 está a uno se ejecuta el programa A con las tareas 00, 01, 03. Tarea 00 Soporte Técnico

Control de interrupciones Soporte Técnico

Control de Interrupciones Existen 4 tipos de interrupciones: Fallo de alimentación (Tarea Int. 1) Programadas en el tiempo (Tareas Int. 2, 3) Unidades de interrupción 0÷3 (Tareas Int. 100÷131) Entradas externas (Tareas Int. 0 ÷255) La interrupción de fallo de alimentación no se puede controlar mediante instrucciones. Las instrucciones para controlar interrupciones son: MSKS(690), MSKR(692), CLI(691), EI(694), DI(693) Soporte Técnico

Enmascarar interrupciones: MSKS(690) Enmascarar interrupciones: Unidades de interrupción (ON/OFF). Programadas en el tiempo (tiempo/OFF). N:Identificador de interrupción(#0÷#5). S:Datos de enmascaramiento o de temporización. MSKS(690) N S @MSKS(690) N S Soporte Técnico

Explicación de los parámetros N y S MSKS(690) - N y S Explicación de los parámetros N y S N: Constante #0÷#5 S: Valor constante o de cualquier área de datos excepto Registro índice. Soporte Técnico

N es la entrada de interrupción: MSKS(690)- N y S N es la entrada de interrupción: Unidad de interrupción (0,1,2,3). Interrupción programada (2, 3). Los valores 1 de S enmascaran las tareas de interrupción asociadas a la entrada N. Si N es 4 ó 5 se tratan de tareas de interrupción programadas. En este caso S es el intervalo entre interrupciones en unidades de 10 ms o de 1 ms. Si S es 0, enmascaramos la tarea de interrupción. Soporte Técnico

MSKS(690) Ejemplo MSKS(690) #0 Desenmascara la entrada 0 de la unidad #00FE Desenmascara la entrada 0 de la unidad de interrupción 0. MSKS(690) #4 #0000 Enmascara la tarea de interrupción programada 2. MSKS(690) #5 #03E8 Sitúa el intervalo de la tarea de interrupción programada 3 a 10 s (Tiempo 10 ms). Soporte Técnico

MSKR(692) Lee los parámetros de la interrupción introducidos con la instrucción anterior MSKS(690). N: Identificador de interrupción. Igual que en MSKS. D: Palabra de destino. Cualquier área de datos excepto Registros índice y constantes. Tiene el mismo significado que en MSKS. MSKR(692) N D @MSKR(692) N D Soporte Técnico

Esta instrucción se usa para controlar las interrupciones simultáneas. CLI(691) Borra o retiene(guarda) las interrupciones acumuladas o programa el intervalo de las interrupciones programadas. Esta instrucción se usa para controlar las interrupciones simultáneas. N y S tienen el mismo significado que en MSKS(690). CLI(691) N S @CLI(692) N S Soporte Técnico

CLI(691) Cuando se están ejecutando interrupciones encadenadas, es posible guardar las interrupciones menos prioritarias que había antes de la actual (más prioritaria). No se registrarán las nuevas interrupciones de una tarea de interrupción si está guardada con la instrucción CLI(691). Para las interrupciones programadas se les puede asignar otro intervalo para que no interfieran con la actual. Soporte Técnico

CLI(691) Ejemplo Resetea las entradas grabadas 3 y 6 de la CLI(691) unidad de interrupción 2. Entrada 7654 3210 0000 0000 0100 1000 CLI(691) #2 #0048 CLI(690) #5 #1388 Sitúa el intervalo de la tarea de interrupción programada 3 a 50 s (Tiempo 10 ms). Soporte Técnico

No se puede ejecutar en tareas de interrupción. DI(693) Deshabilita la ejecución de todas las tareas de interrupción, excepto la de Fallo de alimentación. No se puede ejecutar en tareas de interrupción. DI(693) @DI(693) Soporte Técnico

No se puede ejecutar en tareas de interrupción. Habilita la ejecución de todas las tareas de interrupción, que fueron deshabilitadas con la instrucción DI(693). No se puede ejecutar en tareas de interrupción. EI(694) @EI(694) Soporte Técnico

DI(693) y EI(694) Ejemplo Task 1 Interrupciones Deshabilitadas hasta el final de la tarea 1. END Interrupciones Habilitadas para las tareas 2 a 4. Task 5 DI Interrupciones Deshabilitadas. EI Interrupciones Habilitadas. END Soporte Técnico

Ejemplo Interrupciones Seguidamente se muestra un ejemplo de tareas de interrupciones de: Fallo de alimentación (Int. 1) Interrupción programada (Int. Prog. 2) Interrupción de unidad de interrupción (Int. 100) Interrupción de una COMBOARD (Int. 15) Se muestra el programa y los cambios que son necesarios en el PC-SETUP. Soporte Técnico

Ejemplo Interrupciones 1 Tarea principal: Tarea cíclica 00 A200.11 First Cycle MSKS(690) 4 &1000 Tiempo de Interrupción programada 02 es de: 1000 x 10ms = 10s MSKS(690) #00FE Desenmascara la Entrada 0 de la Unidad de Interrupción 0 Programa principal de la tarea 00 END(001) Soporte Técnico

Ejemplo Interrupciones 2 Tarea Interrupción de fallo de alimentación: Es necesario desde PC-SETUP (consola 255): Habilitar la interrupción Tiempo de detección de fallo de alimentación CF113 P_On ++(590) D00000 DM00000 cuenta las veces que ha ocurrido un fallo de alimentación END(001) Soporte Técnico

Ejemplo Interrupciones 3 Tarea Interrupción Programada 02: Es necesario desde PC-SETUP (consola 195): Unidad de tiempo de las interrupciones programadas. CF113 P_On ++(590) D00010 DM00010 cuenta las veces que se ha ejecutado la interrupción programada 02 END(001) Soporte Técnico

Ejemplo Interrupciones 4 Tarea Interrupción 100: Es la tarea de interrupción de la Entrada 0 de la unidad de interrupción 0. CF113 P_On ++(590) D00020 DM00020 cuenta las veces que se ha ejecutado la tarea de interrupción 100 END(001) Soporte Técnico

Ejemplo Interrupciones 5 Tarea Interrupción 15: Es necesario asignar el número de interrupción en la unidad que provoca la interrupción. CF113 P_On ++(590) D00030 DM00030 cuenta las veces que se ha ejecutado la tarea de interrupción 15 PMCR(260) #11E1 #1 D00100 D00200 Devuelve un mensaje según un protocolo de la COMBOARD END(001) Soporte Técnico

Nuevos temporizadores Soporte Técnico

Temporizadores Tiene 4.096 temporizadores y 4.096 contadores independientes entre sí, en dos áreas. T0000 ÷ T4095 C0000 ÷ C4095 Prestar atención a los temporizadores que se encuentran en saltos o interlocks. Si IOM hold bit (A50012) está a ON, el PV y el flag de finalizado se mantienen al desconectar alimentación o pasar a PROGRAM. Soporte Técnico

Resetea los contadores o temporizadores dentro del rango N1 - N2. CNR(545) Resetea los contadores o temporizadores dentro del rango N1 - N2. N1: Dirección inicial del rango. N2: Dirección final del rango. N1 y N2 deben estar en la misma área de temporizadores o contadores. CNR(545) N1 N2 @CNR(545) N1 N2 Soporte Técnico

Temporizador de 1ms. Temporiza S milisegundos. TMHH(540) Temporizador de 1ms. Temporiza S milisegundos. N: Número de temporizador. S: Tiempo. El PV y el flag de finalización se refrescan cada 1ms. TMHH(540) N S Soporte Técnico

Temporizador de 9999 999.9 segundos. TIML(542) Temporizador de 9999 999.9 segundos. D1: Flag de Finalización. D2: Primera palabra del PV. S: Primera palabra de SV. No necesita número de temporizador, por eso en necesario reservar palabras para el PV y el flag de finalización. TIML(540) D1 D2 S Soporte Técnico

TIML(542) D1 0000 0000 0000 000 1 Flag de finalización D2+1 D2 Valor actual del temporizador PV S+1 S Tiempo total SV debe estar entre 0 y 9999 9999 D2 y S deben estar en BCD. El PV y el flag de finalización están en áreas de datos, por tanto se refrescan cada vez que se ejecuta la instrucción. Si el tiempo de ciclo es mayor de 100ms el temporizador falla. No usar las palabras D2 ni D2+1 con otras instrucciones para no cambiar el valor PV del temporizador. En saltos JMP y en interlocks el PV no se modifica. Soporte Técnico

Temporizador incremental de 0.1s y 8 salidas. MTIM(543) Temporizador incremental de 0.1s y 8 salidas. D1: Palabra de flags de finalización. D2: Palabra del PV. S: Primera palabra de los SV. No utiliza número de temporizador. MTIM(543) D1 D2 S Soporte Técnico

MTIM(543) D1 0000 00 0 0 1 1 1 1 1 1 1 1 Flags de finalización de cada SV Flag de reset Flag de pausa D2 Valor del PV del temporizador S S+1 S+2 S+3 S+4 S+5 S+6 S+7 Valores de los SV de cada salida Cuando el PV alcanza el valor de cada SV se activa el flag correspondiente al SV SV 1 SV2 Flag de finalización 1 Flag de finalización 2 PV Soporte Técnico

Bloques de Programa En mnemónico Soporte Técnico

Se pueden hacer hasta 128 bloques de programa. Bloque de Programa Conjunto de instrucciones que se ejecutan bajo una misma condición de ejecución. Se pueden hacer hasta 128 bloques de programa. Sólo se pueden utilizar una vez. Los bloques de programa que no se ejecutan no consumen tiempo de ejecución. Las instrucciones se escriben en mnemónico. Soporte Técnico

La última instrucción del bloque debe ser BEND. Bloque de Programa La única instrucción que se programa en diagrama de contactos es BPRG(096). El resto se inserta en un bloque de programa en mnemónico. La última instrucción del bloque debe ser BEND. No se pueden evaluar condiciones dentro de un bloque de programa, excepto en instrucciones especiales (IF). Soporte Técnico

Las instrucciones de bloque de programa son: BPRG, BEND, BPPS, BPRS, EXIT(NOT), IF(NOT), ELSE, IEND, WAIT(NOT), TIMW, CNTW, TIMHW, LOOP, LEND. Soporte Técnico

BPRG(096): Comienzo del bloque de programa n. BPRG(096) y BEND(801) BPRG(096): Comienzo del bloque de programa n. n: número de bloque de programa (0n127). BEND(801): Última instrucción del bloque de programa en mnemónico. BPRG(096) n Soporte Técnico

BPPS(811) y BPRS(812) BPPS(811): Para la ejecución del bloque de programa N desde otro bloque de programa. BPRS(812): Reanuda la ejecución del bloque de programa N desde otro bloque de programa. N: Número de bloque de programa (0n127). Soporte Técnico

ELSE: Se ejecuta si no es cierta la condición de la instrucción IF. IF(802), ELSE(803), IEND(804) IF (NOT): Puede llevar operando B o utilizar una condición de ejecución anterior. ELSE: Se ejecuta si no es cierta la condición de la instrucción IF. IEND: Final de la instrucción IF. Se pueden anidar hasta 254 IFs. IF Se ejecuta A Se ejecuta B IEND SI NO IF A ELSE B IEND Soporte Técnico

Sale del bloque de programa. EXIT(806), EXIT NOT(806) Sale del bloque de programa. Puede llevar operando o utilizar la condición de ejecución anterior. EXIT sale si la condición es verdad y EXIT NOT si no se cumple. LD 0.00 BPRG #1 A EXIT 0.01 B BEND C 0.01 ON OFF Soporte Técnico

Puede llevar operando o utilizar la condición de ejecución anterior. WAIT(805), WAIT NOT(805) Para la ejecución del resto del bloque de programa hasta que cambia la condición de ejecución. Puede llevar operando o utilizar la condición de ejecución anterior. LD 0.00 BPRG #1 A WAIT 0.01 B BEND C 0.01 OFF ON Soporte Técnico

TIMW(813) Retrasa la ejecución del resto del bloque hasta que se cumpla el tiempo especificado en SV del temporizador N. N: Número de temporizador (0N4095). SV: Tiempo a contar (0SV999.9s). LD 0.00 BPRG #1 A TIMW #1 &10 B BEND C 1 seg. Soporte Técnico

TIMHW(815) Retrasa la ejecución del resto del bloque hasta que se cumpla el tiempo especificado en SV del temporizador rápido N. N: Número de temporizador (0N4095). SV: Tiempo a contar (0SV99.99s). LD 0.00 BPRG #1 A TIMHW #1 &100 B BEND C 1 seg. Soporte Técnico

CNTW(814) Retrasa la ejecución del resto del bloque hasta que se la cuenta de I llegue a SV del contador N. N: Número de contador (0N4095). SV: Pulsos a contar (0SV9999). I: Entrada de pulsos a contar. LD 0.00 BPRG #1 A CNTW #1 &100 0.01 B BEND C 100 Soporte Técnico

Puede sobrepasar el tiempo máximo de ciclo y dar un error. LOOP(809), LEND(810) NOT Repiten una serie de instrucciones entre LOOP y LEND (LEND NOT) hasta que la condición de LEND sea cierta. LEND puede llevar operando o utilizar la condición de ejecución anterior. Dentro de un lazo LOOP no se refrescan las salidas. Utilizar IOREF(184). Puede sobrepasar el tiempo máximo de ciclo y dar un error. No se puede anidar LOOP dentro de otro. Soporte Técnico

LOOP(809), LEND(810) NOT LD 0.00 BPRG #1 A LOOP B LEND 0.01 C BEND ON OFF Soporte Técnico

Tablas basadas en pilas Tablas basadas en registros Tablas de datos Tablas basadas en pilas Tablas basadas en registros Soporte Técnico

Tablas basadas en Pila (Stack) Tablas basadas en registros Tablas de Datos Tablas basadas en Pila (Stack) SSET, PUSH, FIFO, LIFO Tablas basadas en registros DIM, SETR, GETR Operaciones con Rangos SRCH, MAX, MIN, SUM, FCS, SWAP Soporte Técnico

Pila (Stack) En estas tablas se almacenan los valores uno debajo de otro, siguiendo el orden de llegada. Los datos (palabras) se pueden coger en orden FIFO (el más antiguo) o en orden LIFO (el más nuevo). Las 4 primeras palabras de la tabla están reservadas para la dirección de la última palabra y la dirección a la que apunta el puntero. Soporte Técnico

Define una pila (stack) de: SSET(630) Define una pila (stack) de: TB: Primera dirección de la tabla. N: Nº de palabras. Las dos primeras palabras TB y TB+1 contienen la dirección de la última palabra de la tabla. Las dos siguientes contienen la dirección donde apunta el puntero. Resetea todos los registros de la tabla a 0. SSET(630) TB N @SSET(630) TB N Soporte Técnico

SSET(630) Ejemplo SSET(630) D00000 &10 D00000 0009 D00001 0001 Última dirección de la tabla en binario Dirección donde apunta el puntero Puntero Datos Soporte Técnico

Cuando el puntero llega al final de la tabla, no se ejecuta. PUSH(632) Escribe una palabra en la pila, en la dirección donde apunta el puntero e incrementa en uno la dirección del puntero. TB: Dirección de la pila. S: Palabra a escribir. Cuando el puntero llega al final de la tabla, no se ejecuta. PUSH(632) TB S @PUSH(632) TB S Soporte Técnico

PUSH(632) Ejemplo @PUSH(632) D00000 #9012 Escribe 9012 en la tabla que empieza en D00000 dirección donde punta el puntero D00006. D00000 0009 D00001 0001 D00002 0006 D00003 0001 D00004 1234 D00005 5678 D00006 9012 D00007 0000 D00008 0000 D00009 0000 Última dirección de la tabla en binario Dirección donde apunta el puntero Tabla Puntero Puntero + 1 Soporte Técnico

FIFO(633) First In First Out. Lee la primera palabra escrita en la pila (la más antigua),la escrita en TB+4. Sube todos los datos de la pila una palabra y decrementa en uno el puntero. TB: Dirección de la pila. D: Palabra destino de la lectura. FIFO(633) TB D @FIFO(633) TB D Soporte Técnico

FIFO(633) Ejemplo FIFO(633) D00000 W000 W000 1234 D00000 0009 0001 0006 5678 9012 0000 Última dirección de la tabla en binario Dirección donde apunta el puntero Tabla Puntero - 1 Puntero Soporte Técnico

LIFO(634) Last In First Out. Lee la última palabra escrita en la pila y decrementa en uno el puntero. TB: Dirección de la pila. D: Palabra destino de la lectura. LIFO(634) TB D @LIFO(634) TB D Soporte Técnico

LIFO(364) Ejemplo LIFO(634) D00000 W000 W000 9012 D00000 0009 0001 0005 1234 5678 9012 0000 Última dirección de la tabla en binario Dirección donde apunta el puntero Puntero - 1 Puntero Tabla Soporte Técnico

Se pueden guardar hasta 16 tablas 0÷15. Tablas de registros Se pueden guardar hasta 16 tablas 0÷15. Un registro puede contener más de una palabra. Se usan en combinación con los registros índice IR0÷IR15. Para trabajar con tablas es necesario definirlas primero con DIM(631). Soporte Técnico

Crea una tabla en el área de memoria de: DIM(631) Crea una tabla en el área de memoria de: N: Número de tabla. LR: Longitud de cada registro. NR: número de registros. TB: Dirección del primer registro de la tabla. DIM(631) N LR NR TB @DIM(631) N LR NR TB Soporte Técnico

DIM(631) Ejemplo @DIM(631) &12 &5 Tabla número 12 &3 Registros de 5 palabras 3 Registros Empieza en la dirección D00000 D00000 D00004 D00005 D00009 D00010 D00014 Registro 2 Registro 3 Registro 1 5 Palabras Soporte Técnico

SETR(635) Escribe la dirección del registro número R de la tabla número N en el registro índice D. N: Número de tabla (constante). R: Número de registro. D: Registro índice. SETR(635) N R D @SETR(635) N R D Soporte Técnico

SETR(635) Ejemplo Tabla 12 @SETR(635) &12 &2 Tabla 12 IR11 Registro 2 D00000 D00004 D00005 D00009 D00010 D00014 Registro 2 Registro 3 Registro 1 5 Palabras IR11 D00005 Soporte Técnico

GETR(636) Escribe en D el número de registro de la tabla N cuya dirección está guardada en el registro índice IR. N: Número de tabla (constante). IR: Número de registro. D: Palabra donde se guarda el número de registro. GETR(636) N IR D @GETR(636) N IR D Soporte Técnico

GETR(636) Ejemplo Tabla 12 @GETR(636) &12 IR11 Tabla 12 W000 Registro índice 11 Nº de registro Tabla 12 D00000 D00004 D00005 D00009 D00010 D00014 Registro 2 Registro 3 Registro 1 5 Palabras IR11 D00005 W000 0002 Soporte Técnico

Busca una palabra en un rango de palabras. SRCH(181) Busca una palabra en un rango de palabras. C: Primera palabra de control. R1: Primera palabra del rango. Cd: Palabra a buscar. Guarda en IR00 la dirección de la palabra que coincide y en DR00 el número de coincidencias. SRCH(181) C R1 Cd @SRCH(181) C R1 Cd Soporte Técnico

SRCH(181) C C+1 Número de palabras en el rango X 000 0000 0000 0000 0: No muestra el número de coincidencias DR00 intacto. 1: Muestra el número de coincidencias en DR00. R1 Rango de búsqueda R1+(C-1) Soporte Técnico

SRCH(181) Ejemplo @SRCH(181) W000 D00100 W002 W000 000A W001 8000 Guarda el Nº de coincidencias 10 Palabras D00100 1234 D00101 6589 D00102 8778 D00103 5569 D00104 3365 D00105 1234 D00106 1254 D00107 3365 D00108 5698 D00109 3365 W002 3365 IR00 D00104 DR00 0003 Soporte Técnico

Busca el máximo valor en un rango de palabras. MAX(182) Busca el máximo valor en un rango de palabras. C: Primera palabra de control. R1: Primera palabra del rango. D: Palabra donde se guarda el valor. Guarda en IR00 la dirección de la palabra que coincide y en D el valor máximo. MAX(182) C R1 D @MAX(182) C R1 D Soporte Técnico

MAX(182) C C+1 Número de palabras en el rango X Y 00 0000 0000 0000 0: No muestra la dirección en IR00. 1: Muestra la dirección en IR00. 0: Datos en binario sin signo. 1: Datos en binario con signo. R1 Rango de búsqueda R1+(C-1) Soporte Técnico

MAX(182) Ejemplo @MAX(182) W000 D00100 W002 W000 000A W001 C000 Binario con signo Guarda la dirección en IR00 10 Palabras D00100 1234 D00101 6589 D00102 8778 D00103 5569 D00104 3365 D00105 1234 D00106 1254 D00107 3365 D00108 5698 D00109 3365 IR00 D00101 W002 6589 Soporte Técnico

Busca el mínimo valor en un rango de palabras. MIN(183) Busca el mínimo valor en un rango de palabras. C: Primera palabra de control. R1: Primera palabra del rango. D: Palabra donde se guarda el valor. Guarda en IR00 la dirección de la palabra que coincide y en D el valor mínimo. MIN(183) C R1 D @MIN(183) C R1 D Soporte Técnico

MIN(183) C C+1 Número de palabras en el rango X Y 00 0000 0000 0000 0: No muestra la dirección en IR00. 1: Muestra la dirección en IR00. 0: Datos en binario sin signo. 1: Datos en binario con signo. R1 Rango de búsqueda R1+(C-1) Soporte Técnico

MIN(183) Ejemplo @MIN(183) W000 D00100 W002 W000 000A W001 C000 Binario con signo Guarda la dirección en IR00 10 Palabras D00100 1234 D00101 6589 D00102 8778 D00103 5569 D00104 3365 D00105 1234 D00106 1254 D00107 3365 D00108 5698 D00109 3365 IR00 D00101 W002 8778 Pone el flag de negativo a 1: N=1 porque 8778 es negativo. Soporte Técnico

SWAP(637) Intercambia los bytes derecho e izquierdo de las palabras del rango seleccionado. N: Número de palabras del rango. R1: Primera palabra del rango. SWAP(637) N R1 @SWAP(637) N R1 Soporte Técnico

SWAP(637) Ejemplo @SWAP(637) &6 D00100 6 Palabras a partir del D00100 Soporte Técnico

Instrucciones de texto Cadenas de caracteres Instrucciones de texto Soporte Técnico

Las cadenas de caracteres, son tratadas como código ASCII de 8 bits. Se considera que pertenece a una cadena de caracteres todos los datos que hay desde la dirección inicial hasta que encuentra el código NUL (00 HEX). Las cadenas se leen byte izquierdo, byte derecho y de menor a mayor dirección. La longitud máxima de caracteres es de 4.095 + el carácter NUL. Soporte Técnico

La longitud máxima es de 4.095 bytes. LEN$(650) Calcula la longitud de la cadena de la posición S (hasta NUL) y guarda el resultado en D. S: Primera palabra de la cadena. D: Posición donde guarda el resultado. La longitud máxima es de 4.095 bytes. LEN$(650) S D @LEN$(650) S D Soporte Técnico

LEN$(650) Ejemplo @LEN$(664) W000 W100 S D W000 O M W001 R O W002 N W000 4F 4D W001 52 4F W002 4E 00 W000 0006 Soporte Técnico

La longitud máxima es de 4.095 bytes. MOV$(664) Copia una cadena de caracteres de la posición S (hasta NUL) a la D. También copia el carácter NUL. S: Primera palabra de la cadena a copiar. D: Posición donde se copia la cadena. La longitud máxima es de 4.095 bytes. MOV$(664) S D @MOV$(664) S D Soporte Técnico

MOV$(664) Ejemplo @MOV$(664) W000 W100 S D W000 O M W001 R O W002 N W000 4F 4D W001 52 4F W002 4E 00 W100 4F 4D W101 52 4F W102 4E 00 Soporte Técnico

Concatena (une) la cadena S1 con la S2 y guarda el resultado en D. +$(656) Concatena (une) la cadena S1 con la S2 y guarda el resultado en D. S1: Primera palabra de la primera cadena. S2: Primera palabra de la segunda cadena. D: Posición donde se copia la cadena. La longitud máxima es de 4.095 bytes. +$(656) S1 S2 D @+$(656) S1 S2 D Soporte Técnico

+$(656) Ejemplo & @+$(656) W000 W100 D00000 D S1 S2 W000 4F 4D W002 4E 00 W100 53 50 W101 41 49 W102 4E 00 D00000 4F 4D D00001 52 4F D00002 4E 53 D00003 50 41 D00004 49 4E D00005 00 00 & OMRON SPAIN OMRON SPAIN Soporte Técnico

La longitud máxima es de 4.095 bytes. LEFT$(652) Recupera la cadena de S2 primeros caracteres de la cadena S1 y guarda el resultado en D. S1: Primera palabra de la cadena. S2: Número de caracteres a recuperar. D: Posición donde se copia la cadena. La longitud máxima es de 4.095 bytes. LEFT$(652) S1 S2 D @LEFT$(652) S1 S2 D Soporte Técnico

LEFT$(652) Ejemplo LEFT$(652) W000 &5 D00000 S1 D W000 4F 4D W002 4E 20 W002 53 50 W002 41 49 W002 4E 00 D00000 4F 4D D00001 52 4F D00002 4E 00 OMRON OMRON SPAIN Soporte Técnico

La longitud máxima es de 4.095 bytes. RGHT$(653) Recupera la cadena de S2 últimos caracteres de la cadena S1 y guarda el resultado en D. S1: Primera palabra de la cadena. S2: Número de caracteres a recuperar. D: Posición donde se copia la cadena. La longitud máxima es de 4.095 bytes. RGHT$(653) S1 S2 D @RGHT$(653) S1 S2 D Soporte Técnico

RGHT$(653) Ejemplo RGHT$(653) W000 &5 D00000 S1 D W000 4F 4D W002 4E 20 W002 53 50 W002 41 49 W002 4E 00 D00000 53 50 D00001 41 49 D00002 4E 00 SPAIN OMRON SPAIN Soporte Técnico

MID$(654) Recupera la cadena de S2 caracteres de la cadena S1 empezando en el carácter número S3 y guarda el resultado en D. S1: Primera palabra de la cadena. S2: Número de caracteres a recuperar. S3: Posición inicial de la cadena S1. D: Posición donde se copia la cadena. MID$(654) S1 S2 S3 D @MID$(654) S1 S2 S3 D Soporte Técnico

MID$(654) Ejemplo @MID$(654) W000 &5 &4 D00000 S1 D W000 4F 4D W002 4E 20 W002 53 50 W002 41 49 W002 4E 00 D00000 4F 4E D00001 20 53 D00002 50 00 ON SP OMRON SPAIN Soporte Técnico

FIND$(660) Busca la cadena S2 en la S1 y guarda el número de carácter desde el principio de S1 en D. S1: Primera palabra de la primera cadena. S2: Primera palabra de la segunda cadena. D: Posición donde se guarda el Nº de carácter. FIND$(660) S1 S2 D @FIND$(660) S1 S2 D Soporte Técnico

FIND$(660) Ejemplo @FIND$(660) D00000 W100 W000 S1 S2 D D00000 4F 4D W102 4E 00 W000 0006 SPAIN OMRON SPAIN Soporte Técnico

Reemplaza S3 caracteres de S2 desde RPLC$(661) Reemplaza S3 caracteres de S2 desde S4 en la cadena S1 y la escribe en D. S1: Primera palabra de la primera cadena. S2: Primera palabra de la segunda cadena. S3: Número de caracteres. S4: Posición inicial. D: Posición donde se guarda el Nº de carácter. RPLC$(661) S1 S2 S3 S4 D @RPLC$(661) S1 S2 S3 S4 D Soporte Técnico

RPLC$(661) Ejemplo RPLC$(661) D00000 W100 &5 &6 D00100 S1 S2 D D00000 4F 4D D00001 52 4F D00002 4E 53 D00003 50 41 D00004 49 4E D00005 00 00 W100 20 53 W101 55 52 W102 00 00 D00100 4F 4D D00101 52 4F D00102 4E 20 D00103 53 55 D00104 52 00 D00105 00 00 SUR OMRONSPAIN OMRON SUR Soporte Técnico

DEL$(658) Borra S2 caracteres de S1 empezando desde S3 y guarda el resultado en D. S1: Primera palabra de la cadena. S2: Número de caracteres a borrar. S3: Posición para borrar de la cadena S1. D: Posición donde se guarda la cadena. DEL$(658) S1 S2 S3 D @DEL$(658) S1 S2 S3 D Soporte Técnico

DEL$(658) Ejemplo @DEL$(658) W000 &6 D00000 S1 D W000 4F 4D W001 52 4F W002 4E 20 W002 53 50 W002 41 49 W002 4E 00 W100 4F 4D W101 52 4F W102 4E 00 W102 00 00 OMRON OMRON SPAIN Soporte Técnico

Intercambia las cadenas Ex1 y Ex2. XCHG$(665) Intercambia las cadenas Ex1 y Ex2. Ex1: Primera palabra de la cadena 1. Ex2: Primera palabra de la cadena 2. La longitud máxima es de 4.095 bytes. Ex1 y Ex2 no se pueden solapar. XCHG$(665) Ex1 Ex2 @XCHG$(665) Ex1 Ex2 Soporte Técnico

XCGH$(665) Ejemplo @XCHG$(665) W000 W100 Ex1 Ex2 W000 4F 4D W100 4F 4D Soporte Técnico

Borra la cadena S. Escribe el carácter NUL en toda la cadena S. CLR$(666) Borra la cadena S. Escribe el carácter NUL en toda la cadena S. S: Primera palabra de la cadena a borrar. CLR$(666) S @CLR$(666) S Soporte Técnico

CLR$(666) Ejemplo @CLR$(666) W000 S S W000 4F 4D W100 00 00 W001 52 4F W002 4E 00 W100 00 00 W101 00 00 W102 00 00 Soporte Técnico

Inserta S2 en S1 a partir del carácter Nº S3 y la escribe en D. S1: Primera palabra de la primera cadena. S2: Primera palabra de la segunda cadena. S3: Número de caracteres. D: Posición donde se guarda el Nº de carácter. INS$(657) S1 S2 S3 D @INS$(657) S1 S2 S3 D Soporte Técnico

INS$(657) Ejemplo @INS$(657) D00000 W100 &5 D00100 S1 D D00000 4F 4D D00002 4E 53 D00003 50 41 D00004 49 4E D00005 00 00 D00100 4F 4D D00101 52 4F D00102 4E 20 D00103 53 50 D00104 41 49 D00105 4E 00 S2 W100 20 00 OMRONSPAIN OMRON SPAIN Soporte Técnico

Comparación de cadenas Se pueden comparar dos cadenas de caracteres en código ASCII (8 bits) mediante 6 instrucciones: =$,<>$, <$, <=$, >$, >=$ Los resultados de estas comparaciones se ven en los flags: >, >=, >, <>, <, <= Estas comparaciones se aplican a: LD, OR, AND Soporte Técnico

Comparación de cadenas =$(670) S1 S2 <$(672) S1 S2 >$(674) S1 S2 S1 = S2 S1 < S2 longitud S1 > S2 longitud <>$(671) S1 S2 <=$(673) S1 S2 >=$(675) S1 S2 S1  S2 longitud S1  S2 longitud S1  S2 Soporte Técnico

Comparación Ejemplo LD AND OR 0000.00 =$(670) D00000 W000 0000.01 0001.01 0000.01 <$(672) D00000 W000 AND 0000.02 0001.02 OR >$(674) D00000 W000 Soporte Técnico

Saltos Saltos condicionales Soporte Técnico

Saltos Tabla comparativa de los saltos y los saltos condicionales. JMP(4) CJP(510) CJPN(511) JMP0(515) JME(5) JME(5) JME(5) JME0(516) Condición OFF ON OFF OFF Nº máximo 1.024 en total Sin límite Tiempo ejecución No se ejecutan NOP(000) Estado de salidas Bits y palabras mantienen su estado anterior Temporizadores Continúan temporizando Bloques de programas Siempre ON OFF No permitido Soporte Técnico

Las instrucciones intermedias no se ejecutan. No consumen tiempo. CJP(510)/CJPN(511) CJP(510): Salta hasta el primer JME(005) cuando la condición de ejecución es ON. CJPN(511): Salta hasta el primer JME(005) cuando la condición de ejecución es OFF. N: Número de salto. Las instrucciones intermedias no se ejecutan. No consumen tiempo. CJP(510) N CJPN(511) N JME(005) N Soporte Técnico

Salta hasta JME0 cuando la condición de ejecución es OFF. JMP0(515)/JME0(516) Salta hasta JME0 cuando la condición de ejecución es OFF. Las instrucciones intermedias se ejecutan como NOP(000). Se pueden poner tantas como se quiera, no hay límite. JMP0(515) JME0(516) Soporte Técnico

Instrucciones de lazo FOR, NEXT, BREAK Soporte Técnico

Se pueden ejecutar instrucciones tales como FOR, NEXT, BREAK. Instrucciones de Lazo Se pueden ejecutar instrucciones tales como FOR, NEXT, BREAK. Estas instrucciones permiten ejecutar varias veces en un mismo ciclo las instrucciones entre FOR y NEXT. Hay que tener especial cuidado con el tiempo de ciclo, no caer en un ciclo demasiado largo, por hacer excesivos bucles. Pueden dar errores. Soporte Técnico

FOR(512) y NEXT(513) Las instrucciones que hay entre FOR y NEXT se ejecutan N veces dentro del mismo ciclo. N: Número de veces que se repiten las instrucciones. FOR(512) S Instrucciones repetidas N veces NEXT(513) Soporte Técnico

Se pueden anidar hasta 15 bucles FOR-NEXT. FOR(512) y NEXT(513) Estas instrucciones no necesitan una condición de ejecución. Se ejecutan para cada ciclo. De programa Se pueden anidar hasta 15 bucles FOR-NEXT. Deben estar en la misma tarea: No se puede poner FOR en una tarea y NEXT en otra. Vigilar el ciclo de programa, que no sea muy largo. Soporte Técnico

FOR(512) y NEXT(513) FOR(512) &3 Las instrucciones se ejecutan según el orden ABBC-ABBC-ABBC A FOR(512) &2 B NEXT(513) C NEXT(513) Soporte Técnico

FOR-NEXT Ejemplo FOR(512) &3 Transfiere el contenido de D00100 a la dirección almacenada en D00200 e incrementa la dirección. MOV(021) D00100 @D00200 MOV D00100 D00100 D00100 ++ D00200 D00100 D00200 #0000 NEXT(513) Soporte Técnico

Las instrucciones siguientes hasta el próximo NEXT se tratan como NOP. BREAK(514) Salta a la siguiente instrucción NEXT y finaliza el bucle FOR-NEXT actual. En el caso de bucles FOR-NEXT anidados, es necesario una instrucción BREAK para cada bucle. Las instrucciones siguientes hasta el próximo NEXT se tratan como NOP. BREAK(514) Soporte Técnico

FOR, NEXT y BREAK FOR(512) &5 A BREAK(514) C NEXT(513) Soporte Técnico

Desplazamiento y rotación De todos o N bits en una y dos palabras Soporte Técnico

Desplazamiento y rotación 1 Canal 2 Canales Desplazamiento ASL(025) ASLL(570) ASR(026) ASRL(571) Rotación ROL(027) ROLL(572) ROR(028) RORL(573) Rotación sin RLNC(574) RLNL(576) Carry RRNC(575) RRNL(577) Soporte Técnico

De N bits 1 Canal 2 Canales Desplazamiento NASL(580) NSLL(582) de N bits NASR(581) NSRL(583) Desplazamiento NSFL(578) de N bits como dato NSFR(579) Soporte Técnico

NASL(580) Desplaza la palabra D, N bits a la izquierda insertando 0, ó el valor del bit 0. D: Palabra origen y destino. C: palabra de control (insertar 0, Nº de bits) NASL(580) D C @NASL(580) D C Soporte Técnico

NASL(580) ejemplo C: Palabra de control. NASL(580) 0100 #0004 CY 15 12 7 0 Nº de bits a desplazar en hexadecimal 0-10Hex. Siempre a 0. Dato que se introduce por la derecha: 0: introduce 0. 8: introduce el valor que tenga el bit 0. C: Palabra de control. 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 CY Perdidos NASL(580) 0100 #0004 Soporte Técnico

Como NASL(580) pero de dos palabras. NSLL(582) Desplaza las palabras D y D+1, N bits a la izquierda insertando 0, ó el valor del bit 0. D: Primera palabra origen y destino. C: palabra de control (insertar 0, Nº de bits) Como NASL(580) pero de dos palabras. NSLL(582) D C @NSLL(582) D C Soporte Técnico

NASR(581) Desplaza la palabra D, N bits a la derecha insertando 0, ó el valor del bit 15. D: Palabra origen y destino. C: palabra de control (insertar 0, Nº de bits) NASR(581) D C @NASR(581) D C Soporte Técnico

NASR(581) ejemplo C: Palabra de control. NASR(581) 0100 #0004 CY 15 12 7 0 Nº de bits a desplazar en hexadecimal 0-10Hex. Siempre a 0. Dato que se introduce por la izquierda. 0: introduce 0. 8: introduce el valor que tenga el bit 15. C: Palabra de control. Perdidos NASR(581) 0100 #0004 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 CY 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 Soporte Técnico

Como NASR(581) pero de dos palabras. NSRL(583) Desplaza las palabras D y D+1, N bits a la derecha insertando 0, ó el valor del bit 15. D: Primera palabra origen y destino. C: palabra de control (insertar 0, Nº de bits) Como NASR(581) pero de dos palabras. NSRL(583) D C @NSRL(583) D C Soporte Técnico

Desplaza N bits de D a la izquierda empezando por el bit C. NSFL(578) Desplaza N bits de D a la izquierda empezando por el bit C. D: Palabra dato. C: Bit de comienzo. N: Número de bits a desplazar. Los bits anteriores a C o posteriores a C+N no cambian. NSFL(578) D C R @NSFL(578) D C R Soporte Técnico

Desplaza N bits de D a la derecha empezando por el bit C. NSFR(579) Desplaza N bits de D a la derecha empezando por el bit C. D: Palabra dato. C: Bit de comienzo. N: Número de bits a desplazar. Los bits anteriores a C+N o posteriores a C no cambian. NSFL(578) D C R @NSFL(578) D C R Soporte Técnico

NSFL NSFR ejemplo NSFL(578) 0100 &3 &11 CY NSFR(579) 0100 &3 CY &11 Bits 3 a 12 NSFL(578) 0100 &3 &11 1 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 CY Bits 3 a 12 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 CY NSFR(579) 0100 &3 &11 Soporte Técnico

Incrementar Decrementar Autoincremento y Autodecremento Soporte Técnico

++ incrementa en binario la palabra de 4 dígitos Wd en una unidad. ++L incrementa en binario la palabra de 8 dígitos Wd en una unidad. Wd: Palabra a incrementar ++(590) Wd @++(590) Wd ++L(591) Wd @++L(591) Wd Soporte Técnico

-- decrementa en binario la palabra de 4 dígitos Wd en una unidad. --L decrementa en binario la palabra de 8 dígitos Wd en una unidad. Wd: Palabra a incrementar --(592) Wd @--(592) Wd --L(593) Wd @--L(593) Wd Soporte Técnico

Binario Ejemplos ++(590) D00000 ++L(591) D00000 --(592) D00000 D0 D1 D0 D1 0019 FFFF +1 001A 0000 --(592) D00000 D0 D0 001A -1 0019 --L(593) D00000 D0 D1 D0 D1 001A 0000 -1 0019 FFFF Soporte Técnico

++B incrementa en BCD la palabra de 4 dígitos Wd en una unidad. ++B(594) ++BL(595) ++B incrementa en BCD la palabra de 4 dígitos Wd en una unidad. ++BL incrementa en BCD la palabra de 8 dígitos Wd en una unidad. Wd: Palabra a incrementar ++B(594) Wd @++B(594) Wd ++BL(595) Wd @++BL(595) Wd Soporte Técnico

--B decrementa en BCD la palabra de 4 dígitos Wd en una unidad. --B(596) --BL(597) --B decrementa en BCD la palabra de 4 dígitos Wd en una unidad. --BL decrementa en BCD la palabra de 8 dígitos Wd en una unidad. Wd: Palabra a incrementar --B(596) Wd @--B(596) Wd --BL(597) Wd @--BL(597) Wd Soporte Técnico

BCD Ejemplos ++B(594) D00000 ++BL(595) D00000 --B(596) D00000 D0 D0 0019 +1 0020 ++BL(595) D00000 D0 D1 D0 D1 0019 9999 +1 0020 0000 --B(596) D00000 D0 D0 0020 -1 0019 --BL(597) D00000 D0 D1 D0 D1 0020 0000 -1 0019 9999 Soporte Técnico

=, <, <=, >, >=, <> Comparación =, <, <=, >, >=, <> Soporte Técnico

Comparación de palabras Comparan dos datos S1 y S2. Los datos a comparar pueden ser: Formato: con o sin signo. Longitud: de 1 (S1 con S2) ó 2 (S1 y S1+1 con S2 y S2+1) palabras. Son instrucciones intermedias: Se pueden conectar como LD, AND y OR. Símbolo & Opciones S1 S2 Soporte Técnico

Comparación de palabras Símbolo Formato Longitud =(300) -: Sin signo -: 1 palabra =L(301) -: Sin signo L: 2 palabras =S(302) S: Con signo -: 1 palabra =SL(303) S: Con signo -: 2 palabras <>(305) -: Sin signo -: 1 palabra <>L(306) -: Sin signo L: 2 palabras <>S(307) S: Con signo -: 1 palabra <>SL(308) S: Con signo -: 2 palabras <(310) -: Sin signo -: 1 palabra <L(311) -: Sin signo L: 2 palabras <S(312) S: Con signo -: 1 palabra <SL(313) S: Con signo -: 2 palabras <=(315) -: Sin signo -: 1 palabra <=L(316) -: Sin signo L: 2 palabras <=S(317) S: Con signo -: 1 palabra <=SL(318) S: Con signo -: 2 palabras >(320) -: Sin signo -: 1 palabra >L(321) -: Sin signo L: 2 palabras >S(322) S: Con signo -: 1 palabra <SL(323) S: Con signo -: 2 palabras >=(325) -: Sin signo -: 1 palabra >=L(326) -: Sin signo L: 2 palabras >=S(327) S: Con signo -: 1 palabra >=SL(328) S: Con signo -: 2 palabras Soporte Técnico

Comparación Ejemplo LD AND OR <LS(313) D0000 D0002 0000.00 Activa la salida 0000.00 si D00000 y D00001 es menor que D00002 y D00003 Tiene en cuenta el signo. AND Activa la salida 0000.00 si D00000 es menor que D00001 y D00002 es igual que D00003 Tiene en cuenta el signo. =S(302) D0002 D0003 <S(312) D0000 D0001 0000.00 OR <(303) D0000 D0001 0000.00 =(300) D0002 D0003 Activa la salida 0000.00 si D00000 es menor que D00001 o D00002 es igual que D00003 Soporte Técnico

Instrucciones de conversión de datos SIGN, BINS, BISL, BCDS y BDSL Soporte Técnico

SIGN(600) Convierte un valor de 16 bits, S, a su equivalente de 32 bits binario con signo, R. S: Palabra fuente de 16 bits. R: Primera palabra del resultado. 8000  FFFF 8000 7000  0000 7000 SIGN(600) S R @SIGN(600) S R Soporte Técnico

BINS(470) Convierte una palabra de BCD con signo S, a binario con signo R. La palabra de control indica el formato del signo en BCD. C: Palabra de control: 0, 1, 2 ó 3 S: Palabra en BCD. R: Palabra en binario. BINS(470) C S R @BINS(470) C S R Soporte Técnico

BINS(470) C=0000 (-999 a 999) 000 1 xxxx xxxx xxxx El bit 12 de S indica el signo (1 negativo). Los bits 13 a 15 deben ser 0. C=0001 (-7999 a 7999) 1 xxx xxxx xxxx xxxx El bit 15 de S indica el signo (1 negativo). C=0002 (-999 a 9999) F,0-9 xxxx xxxx xxxx El signo se indica en S: F negativo o 0-9 positivo Los valores A-E dan error. C=0003 (-1999 a 9999) FA,0-9 xxxx xxxx xxxx El signo se indica en S: F=- y A=-1 o 0-9 positivo Los valores B-E dan error. Soporte Técnico

BISL(472) Convierte un dato de 32 bits BCD con signo (S+1 S) a binario con signo de 32 bits (R+1 R). C indica el formato de signo en BCD. C: Palabra de control: 0, 1, 2 ó 3 S: Primera palabra de BCD. R: Primera palabra en binario. BISL(472) C S R @BISL(472) C S R Soporte Técnico

BISL(472) C=0000 (-999 9999 a 999 9999) 000 1 xxxx xxxx xxxx El bit 12 de S+1 indica el signo (1 negativo). Los bits 13 a 15 deben ser 0. C=0001 (-7999 9999 a 7999 9999) 1 xxx xxxx xxxx xxxx El bit 15 de S+1 indica el signo (1 negativo). C=0002 (-999 9999 a 9999 9999) F,0-9 xxxx xxxx xxxx El signo se indica en S+1: F negativo o 0-9 positivo Los valores A-E dan error. C=0003 (-1999 9999 a 9999 9999) FA,0-9 xxxx xxxx xxxx El signo se indica en S+1: F=- y A=-1 o 0-9 positivo Los valores B-E dan error. Soporte Técnico

Esta es la instrucción inversa a BINS(470) BCDS(471) Convierte una palabra de binario con signo a BCD con signo. C indica el formato de signo en BCD. C: Palabra de control: 0, 1, 2 ó 3 S: Palabra en binario. R: Palabra en BCD. Esta es la instrucción inversa a BINS(470) BCDS(471) C S R @BCDS(471) C S R Soporte Técnico

Esta es la instrucción inversa a BINS(470) BDSL(473) Convierte un dato de binario con signo 32 bits a BCD con signo 32 bits. C indica el formato de signo en BCD. C: Palabra de control: 0, 1, 2 ó 3 S: Palabra en binario. R: Palabra en BCD. Esta es la instrucción inversa a BINS(470) BDSL(473) C S R @BDSL(473) C S R Soporte Técnico

Limitaciones BCDS y BDSL En BCDS el dato S está limitada según C: C=0 FC19 a FFFF y 0000 a 03E7 C=1 F0C1 a FFFF y 0000 a 1F3F C=2 FC19 a FFFF y 0000 a 270F C=3 F831 a FFFF y 0000 a 270F En BDSL el dato S está limitada según C: C=0 FF67 6981 a FFFF FFFF y 0 a 0098 967F C=1 FB3B 4C01 a FFFF FFFF y 0 a 04C4 B3FF C=2 FF67 6981 a FFFF FFFF y 0 a 05F5 E0FF C=3 FECE D301 a FFFF FFFF y 0 a 05F5 E0FF Soporte Técnico

Instrucciones en Coma Flotante Números reales en coma flotante. Soporte Técnico

Números en Coma Flotante Se pueden expresar los números: - (e=255, f=0, s=0) -3.402823·1038 ÷ -1.175494·10-38 0 (e=0) 1.175494·10-38 ÷ 3.402823·1038  (e=255, f=0, s=1) NaN (e=255, f0): Número no válido. No es necesario conocer el formato de estos números, sólo que ocupan 32 bits. Soporte Técnico

Precauciones Coma Flotante Las operaciones indeterminadas 0.0/0.0, /, - dan como resultado NaN. Overflow (±) y Underflow (±0). Es más peligroso el Overflow al convertir el resultado a entero (binario con signo). Los decimales se truncan al convertirlos a entero (binario con signo). Cualquier operación con un NaN como operando da como resultado NaN. Soporte Técnico

Expresan números reales en 32 bits conforme al estándar IEEE754: f: Mantisa 23 bits bit 0 al 22 e: Exponente 8 bits bit 23 al 30 s: Signo 1 bit bit 31 (-1)s·2e-127·(1+f·2-23) 1#10000000#11000000000000000000000 Signo: (-1)1= -1 Exponente: 2128-127=21=2 Mantisa: 1+6291456·2-23=1+0.75=1.75 Resultado: -1.75·2= -3.5 Soporte Técnico

Instrucciones Coma Flotante Se pueden realizar las siguientes: Conversión: FIX, FIXL, FLT, FLTL Operaciones: +F, -F, *F, /F, SQRT, PWR Conversiones angulares: RAD, DEG Angulares: SIN, COS, TAN, ASIN, ACOS, ATAN En base e: LOG, EXP Los operandos deben ser Nos en formato coma flotante IEEE754. No es necesario conocer este formato, sólo que ocupan 32 bits. Soporte Técnico

La parte decimal es truncada (3.5  3) Rango de -32.768 ÷ 32.767. FIX(450) Convierte un número en coma flotante a un entero (binario con signo) de 16 bits. S: Primera palabra de número en coma flotante. R: Palabra donde se guarda el resultado. La parte decimal es truncada (3.5  3) Rango de -32.768 ÷ 32.767. FIX(450) S R @FIX(450) S R Soporte Técnico

La parte decimal es truncada (-3.5  -3) FIXL(451) Convierte un número en coma flotante a un entero (binario con signo) de 32 bits. S: Primera palabra de número en coma flotante. R: Primera palabra donde se guarda el resultado. La parte decimal es truncada (-3.5  -3) Rango de -2.147.482.648÷2.147.482.647. FIXL(451) S R @FIXL(451) S R Soporte Técnico

FIX, FIXL Ejemplo FIX(450) D00000 D00100 D00000 0000000000000000 3.5 3 FIXL(451) D00002 D00102 D00002 0000000000000000 D00003 1100110001100000 D00102 0000000000000000 D00103 1111110010000000 -58.720.256 -58.720.256 Soporte Técnico

FLT(452) Convierte un número entero (binario con signo) de 16 bits en formato de coma flotante de 32 bits. S: Palabra del número entero. R: Primera palabra del resultado. Rango de -32.768 ÷ 32.767. FLT(452) S R @FLT(452) S R Soporte Técnico

Números > 16.777.215 pierden precisión. FLTL(453) Convierte un número entero (binario con signo) de 32 bits en formato de coma flotante de 32 bits. S: Primera palabra del número entero. R: Primera palabra del resultado. Rango de -2.147.482.648÷2.147.482.647. Números > 16.777.215 pierden precisión. FLTL(453) S R @FLTL(453) S R Soporte Técnico

FLT, FLTL Ejemplo D00000 0000000000000000 D00001 0100000001000000 D00100 0000000000000011 FLT(452) D00100 D00000 3 3 D00002 0000000000000000 D00003 1100110001100000 D00102 0000000000000000 D00103 1111110010000000 FLTL(453) D00102 D00002 -58.720.256 -58.720.256 Soporte Técnico

Suma 2 números en coma flotante de 32 bits. Au: Primera palabra del primer sumando. Ad: Primera palabra del segundo sumando. R: Primera palabra del resultado. El resultado puede ser , -, 0, NaN. Tener en cuenta:  -  = NaN y que NaN+número=NaN. +F(454) Au Ad R @+F(454) Au Ad R Soporte Técnico

Resta 2 números en coma flotante de 32 bits. Mi: Primera palabra del Minuendo. Su: Primera palabra del Sustraendo. R: Primera palabra del resultado. El resultado puede ser , -, 0, NaN. Tener en cuenta:  -  = NaN y que NaN-número=NaN, número-NaN=NaN. -F(455) Mi Su R @-F(455) Mi Su R Soporte Técnico

+F, -F Ejemplo D00000 0000 0000 0000 0000 D00001 0100 0000 0110 0000 3.5 D00002 0000 0000 0000 0000 D00003 0100 0000 1100 0000 6 +F(454) D00000 D00002 D00100 3.5 +6 D00100 0000 0000 0000 0000 D00101 0100 0001 1110 0000 9.5 -F(455) D00000 D00002 D00100 3.5 - 6 D00100 0000 0000 0000 0000 D00101 1100 0000 0010 0000 -2.5 Soporte Técnico

Multiplica 2 números en coma flotante de 32 bits. Md: Primera palabra del Multiplicando. Mr: Primera palabra del Multiplicador. R: Primera palabra del Resultado. El resultado puede ser , -, 0, NaN. Tener en cuenta: 0· = NaN y que NaN·número=NaN. *F(456) Md Mr R @*F(456) Md Mr R Soporte Técnico

Multiplica 2 números en coma flotante de 32 bits. Dd: Primera palabra del Dividendo. Dr: Primera palabra del Divisor. R: Primera palabra del Resultado. El resultado puede ser , -, 0, NaN. Tener en cuenta: 0/0 = NaN, / = NaN y que NaN/número=NaN, número/NaN=NaN. /F(457) Dd Dr R @/F(457) Dd Dr R Soporte Técnico

*F, /F Ejemplo D00000 0000 0000 0000 0000 D00001 0100 0000 0110 0000 3.5 D00002 0000 0000 0000 0000 D00003 0100 0000 1100 0000 6 *F(456) D00000 D00002 D00100 3.5 * 6 D00100 0000 0000 0000 0000 D00101 0100 0001 1011 0000 21 /F(457) D00000 D00002 D00100 3.5 ÷ 6 D00100 0101 0101 0101 0101 D00101 0011 1111 0101 1010 0.583333 Soporte Técnico

Utiliza la fórmula: Radianes=Grados·/180 Convierte un número en coma flotante (32 bits) de grados sexagesimales a radianes. El resultado está en coma flotante. S: Primera palabra de los grados. R: Primera palabra del resultado. Utiliza la fórmula: Radianes=Grados·/180 RAD(458) S R @RAD(458) S R Soporte Técnico

Utiliza la fórmula: Grados=Radianes·180/ DEG(459) Convierte un número en coma flotante (32 bits) de radianes a grados sexagesimales. El resultado está en coma flotante. S: Primera palabra de los radianes. R: Primera palabra del resultado. Utiliza la fórmula: Grados=Radianes·180/ DEG(459) S R @DEG(459) S R Soporte Técnico

DEG, RAD Ejemplo @RAD(458) D00002 D00000 57.29578º = 1 rad 3/2  /2 0=2 90º 180º 270º 0º=360º @DEG(459) D00000 D00002 1 rad = 57.29578º D00000 0000 0000 0000 0000 D00001 0011 1111 1000 0000 1 rad D00002 0010 1110 1110 0000 D00003 0100 0010 0110 0101 57.29578º Soporte Técnico

El resultado está entre -1 y 1. SIN(460) Calcula el seno de un ángulo (radianes) en coma flotante (32 bits). El resultado está en coma flotante. S: Primera palabra del ángulo (radianes). R: Primera palabra del resultado. El resultado está entre -1 y 1. SIN(460) S R @SIN(460) S R Soporte Técnico

El resultado está entre -1 y 1. COS(461) Calcula el coseno de un ángulo (radianes) en coma flotante (32 bits). El resultado está en coma flotante. S: Primera palabra del ángulo (radianes). R: Primera palabra del resultado. El resultado está entre -1 y 1. COS(461) S R @COS(461) S R Soporte Técnico

El resultado está entre - y . TAN(462) Calcula la tangente de un ángulo (radianes) en coma flotante (32 bits). El resultado está en coma flotante. S: Primera palabra del ángulo (radianes). R: Primera palabra del resultado. El resultado está entre - y . TAN(462) S R @TAN(462) S R Soporte Técnico

SIN, COS, TAN Ejemplo D00000 0000 1010 1001 0001 D00001 0011 1111 0000 0110 30º=0.523599 rad @SIN(460) D00000 D00100 D00100 0000 0000 0000 0000 D00101 0000 0000 0000 0000 sen30º = 0.5 @COS(461) D00000 D00100 D00100 1011 0011 1101 0111 D00101 0011 1111 0101 1101 cos30º= 0.866 @TAN(462) D00000 D00100 D00100 1100 1101 0011 1010 D00101 0011 1111 1001 0011 tg30º=0.577 Soporte Técnico

El resultado está entre -/2 y /2. ASIN(463) Calcula arco seno de un número en coma flotante (32 bits). El resultado está en coma flotante. S: Primera palabra del número (-1÷1). R: Primera palabra del ángulo (radianes). El resultado está entre -/2 y /2. ASIN(463) S R @ASIN(463) S R Soporte Técnico

El resultado está entre -/2 y /2. ACOS(464) Calcula arco coseno de un número en coma flotante (32 bits). El resultado está en coma flotante. S: Primera palabra del número (-1÷1). R: Primera palabra del ángulo (radianes). El resultado está entre -/2 y /2. ACOS(464) S R @ACOS(464) S R Soporte Técnico

El resultado está entre -/2 y /2. ATAN(465) Calcula arco tangente de un número en coma flotante (32 bits). El resultado está en coma flotante. S: Primera palabra del número (-  ÷ ). R: Primera palabra del ángulo (radianes). El resultado está entre -/2 y /2. ATAN(465) S R @ATAN(465) S R Soporte Técnico

ASIN, ACOS, ATAN Ejemplo D00000 0000 0000 0000 0000 D00000 0000 1010 1001 0001 arcsen 0.5= D00001 0011 1111 0000 0110 0.523599 rad @ACOS(464) D00000 D00100 D00000 0000 1010 1001 0001 arccos 0.5= D00001 0011 1111 1000 0110 1.1047197 rad @ATAN(465) D00000 D00100 D00100 0110 0011 1000 1000 arctg 0.5= D00101 0100 0000 1110 1101 0.4636479 rad Soporte Técnico

El radicando debe ser un Nº positivo. SQRT(466) Calcula la raíz cuadrada de un número en coma flotante (32 bits). El resultado está en coma flotante. S: Primera palabra del radicando (0 ÷ ). R: Primera palabra del resultado (0 ÷ ). El radicando debe ser un Nº positivo. SQRT(466) S R @SQRT(466) S R Soporte Técnico

(±)0, 0, 0-E y (-S)Nºracional dan error. PWR(840) Eleva un número en coma flotante (32 bits) a la E potencia. El resultado está en coma flotante. B: Primera palabra de la base (- ÷ ). E: Primera palabra del Exponente(- ÷ ). R: Primera palabra del resultado (- ÷ ). (±)0, 0, 0-E y (-S)Nºracional dan error. PWR(840) B E R @PWR(840) B E R Soporte Técnico

PWR, SQRT Ejemplo D00000 0000 0000 0000 0000 D00001 0100 0001 0001 0000 9 D00002 0000 0000 0000 0000 D00003 0100 0000 1100 0000 6 @SQRT(466) D00000 D00100 D00100 0000 0000 0000 0000 D00101 0100 0000 0100 0000 9=3 PWR(840) D00000 D00002 D00100 D00100 1011 1111 0001 0000 D00101 0100 1001 0000 0001 96=531.441 Soporte Técnico

El resultado siempre es positivo. EXP(467) Calcula el exponencial (eS) de un número en coma flotante (32 bits). El resultado está en coma flotante. S: Primera palabra del exponente (- ÷ ). R: Primera palabra del resultado (0 ÷ ). e2,718281828459. El resultado siempre es positivo. EXP(467) S R @EXP(467) S R Soporte Técnico

El logaritmo de un Nº negativo no es Real. Calcula el logaritmo natural (lnS) de un número en coma flotante (32 bits). El resultado está en coma flotante. S: Primera palabra del logaritmo (0 ÷ ). R: Primera palabra del resultado (- ÷ ). El logaritmo de un Nº negativo no es Real. LOG(468) S R @LOG(468) S R Soporte Técnico

EXP, LOG Ejemplo D00000 0000 0000 0000 0000 D00001 0011 1111 1000 0000 1 @LOG(468) D00000 D00100 D00100 0000 0000 0000 0000 D00101 0000 0000 0000 0000 L1 = 0 @EXP(467) D00000 D00100 D00100 1111 1000 0101 0100 D00101 0100 0000 1010 1101 e1=2.71828 Soporte Técnico

Instrucciones de calendario Fecha y hora Soporte Técnico

Instrucciones de Calendario La primera vez que se utiliza el PLC es necesario insertar la batería. Una vez insertada hay que poner en hora el reloj interno del PLC. Se puede hacer mediante el CX-Programer o con la consola o mediante la instrucción DATE. Todos los datos se introducen en código BCD. Soporte Técnico

DATE(735) Ajusta la fecha y hora del reloj interno del PLC con las 4 palabras empezando por S. S: Primera palabra de la nueva fecha y hora. DATE(735) S @DATE(735) S Soporte Técnico

DATE(735) S 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 Hora 00 ÷ 23 Día 01 ÷31 S+2 1001 1001 0001 1100 Mes 01 ÷ 12 Año 00 ÷99 S+3 0000 0000 0000 0110 Día semana 00(Domingo) ÷ 06(Sábado) Siempre 0 Soporte Técnico

DATE(735) La fecha y hora se guardan en los registros auxiliares: Dirección Contenido A35100 ÷ A35107 Segundos 00 ÷ 59 A35108 ÷ A35115 Minutos 00 ÷ 59 A35100 ÷ A35207 Hora 00 ÷ 23 A35108 ÷ A35215 Día 01 ÷ 31 A35100 ÷ A35307 Mes 01 ÷ 12 A35108 ÷ A35315 Año 00 ÷ 99 A35100 ÷ A35407 Día Semana 00 ÷ 06 A35108 ÷ A35415 Minutos 00 ÷ 59 Soporte Técnico

DATE(735) Ejemplo @DATE(735) D00000 D0000 15 30 D0001 05 16 16:15:30 D0002 99 05 5 de Mayo de 1.999 D0003 00 04 Miércoles Soporte Técnico

Suma tiempo T a la fecha indicada en C. CADD(730) Suma tiempo T a la fecha indicada en C. C: Primera palabra de la fecha. T: Primera palabra del tiempo a sumar. R: Primera palabra del resultado de la suma. CADD(730) C T R @CADD(730) C T R Soporte Técnico

CADD(730) C 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 Hora 00 ÷ 23 Día 01 ÷31 C+2 1001 1001 0001 1100 Mes 01 ÷ 12 Año 00 ÷99 Este mismo formato es el del resultado R a R+2 T 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 T+1 0011 0001 0010 0011 Hora 0000 ÷ 9999 Soporte Técnico

CADD(730) Ejemplo CADD(730) D00000 D0000 15 30 D00003 D0002 99 05 5 de Mayo de 1.999 D0003 15 20 D0004 05 16 516h 15’ 20” D0100 30 50 D0101 27 16 6:30:50 D0102 99 05 27 de Mayo de 1.999 Soporte Técnico

Suma tiempo T a la fecha indicada en C. CSUB(731) Suma tiempo T a la fecha indicada en C. C: Primera palabra de la fecha. T: Primera palabra del tiempo a restar. R: Primera palabra del resultado de la resta. CSUB(731) C T R @CSUB(731) C T R Soporte Técnico

CSUB(731) C 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 Hora 00 ÷ 23 Día 01 ÷31 C+2 1001 1001 0001 1100 Mes 01 ÷ 12 Año 00 ÷99 Este mismo formato es el del resultado R T 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 T+1 0011 0001 0010 0011 Hora 0000 ÷ 9999 Soporte Técnico

CSUB(731) Ejemplo CSUB(731) D00000 D0000 15 30 D00003 D0002 99 05 5 de Mayo de 1.999 D0003 10 40 D0004 05 16 516h 15’ 20” D0100 19 50 D0101 15 04 4:19:50 D0102 99 04 15 de Abril de 1.999 Soporte Técnico

Convierte un dato de tiempo h:m:s a su equivalente en segundos. SEC(065) Convierte un dato de tiempo h:m:s a su equivalente en segundos. S: Primera palabra de h:m:s D: Primera palabra del resultado en segundos. SEC(065) S D @SEC(065) S D Soporte Técnico

SEC(065) S 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 Hora 0000 ÷ 9999 R 1001 1001 1001 1001 R+1 0011 0101 1001 1001 Segundos 0 ÷ 35.999.999 Soporte Técnico

Convierte un dato de segundos al formato h:m:s. S: Primera palabra de los segundos. D: Primera palabra del resultado en h:m:s. HMS(066) S D @HMS(066) S D Soporte Técnico

HMS(066) S 1001 1001 1001 1001 S+1 0011 0101 1001 1001 Segundos 0 ÷ 35.999.999 R 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 R+1 1001 1001 1001 1001 Hora 0000 ÷ 9999 Soporte Técnico

SEC, HMS Ejemplo SEC(065) D00100 D00000 D00000 0011 0100 0101 0110 D00001 0000 0000 0001 0010 123.456 Segundos HMS(066) D00000 D00100 D00100 0001 0111 0011 0110 36 Segundos 17 Minutos D00101 0000 0000 0011 0100 34 Horas Soporte Técnico

Lectura / Escritura de ficheros Ficheros de Memoria Lectura / Escritura de ficheros Soporte Técnico

Se pueden escribir/leer ficheros: Ficheros de Memoria La tarjeta de memoria flash y el área EM se pueden utilizar como área de ficheros. Se pueden escribir/leer ficheros: Programa (.OBJ) Parámetros (.STD) Memoria (.IOM) Símbolos (.SYM) Comentarios (.CMT) Con instrucciones sólo se pueden Leer/Escribir ficheros de memoria (.IOM). Soporte Técnico

FREAD(700) Permite leer un fichero de memoria (.IOM) y guardar todo o parte de su contenido en un área de memoria. C: Palabra de control. S1: Primera palabra dato. S2: Nombre del fichero. D: Primera palabra destino. FREAD(700) C S1 S2 D @FREAD(700) C S1 S2 D Soporte Técnico

FREAD(700) C 0000 0000 0001 0001 0: Tarjeta de memoria 1: Memoria EM 0: Leer datos 1: Leer número de palabras S1+1 S1 Número de palabras del fichero que se quieren leer (en hexadecimal). S1+3 S1+2 Palabra del fichero por la que se empieza a leer (en hexadecimal). Soporte Técnico

FREAD(700) S2: Primera palabra del nombre del fichero que se quiere leer. S2 \ A B C D \ X Y Z \ABCD\XYZ Directorio ABCD Nombre del fichero XYZ D: Dirección donde se guardan los datos del fichero leído. Si se lee el número de palabras se almacenan en D y D+1 D+1 D Número de palabras del fichero leído (en hexadecimal). Soporte Técnico

FREAD(700) Ejemplo Lee 10 palabras desde la 5 hasta la 14 del fichero #0000 D00200 D00300 D00400 0000.00 A343.13 Lee 10 palabras desde la 5 hasta la 14 del fichero \ABCD\XY de la tarjeta de memoria y las guarda en D00400 hasta D00409 Tarjeta de memoria \ABCD\XY D00200 00 0A 10 palabras. D00201 00 00 D00202 00 05 Empieza en la palabra 5. D00203 00 00 Área DM 5 D00400 D00409 10 D00200 5C 41 Directorio ABCD D00201 42 43 Fichero XY D00202 44 5C D00203 58 59 Soporte Técnico

FWRIT(701) Permite escribir un fichero de memoria (.IOM) y guardar todo o parte del contenido de un área de memoria. C: Palabra de control. D1: Primera palabra del fichero destino. D2: Nombre del fichero. S: Primera palabra a guardar. FWRIT(701) C D1 D2 S @FWRIT(701) C D1 D2 S Soporte Técnico

FWRIT(701) C 0000 0000 0001 0001 0: Tarjeta de memoria 1: Memoria EM 0: Añadir al final 1: Sobrescribir D1+1 D1 Número de palabras de memoria que se quieren guardar (en hexadecimal). D1+3 D1+2 Palabra del fichero por donde se empieza a escribir (en hexadecimal) sólo si se sobreescribe. Soporte Técnico

FWRIT(701) D2: Primera palabra del nombre del fichero a escribir. D2 \ A B C D \ X Y Z \ABCD\XYZ Directorio ABCD Nombre del fichero XYZ S: Primera dirección de memoria a guardar en el fichero. Si se guardan más palabras de las que hay en ese área de memoria, se continúa guardando palabras del área siguiente. S Dirección de la primera palabra de memoria que se quiere guardar. Soporte Técnico

FWRIT(701) Ejemplo Guarda 10 palabras desde DM00400 hasta DM00409 #0010 D00200 D00300 D00400 0000.01 A343.13 Guarda 10 palabras desde DM00400 hasta DM00409 en el fichero \ABCD\XY de la tarjeta de memoria empezando en la palabra (inicio del fichero + 5). Tarjeta de memoria \ABCD\XY D00200 00 0A 10 palabras. D00201 00 00 D00202 00 05 Empieza en la palabra 5. D00203 00 00 Área DM 5 D00400 D00409 10 D00200 5C 41 Directorio ABCD D00201 42 43 Fichero XY D00202 44 5C D00203 58 59 Soporte Técnico

Control de datos analógicos Soporte Técnico

Limita los valores máximo C+1 y mínimo C de una palabra S. LMT(680) Limita los valores máximo C+1 y mínimo C de una palabra S. S: Palabra dato. C: Primera palabra de los límites. D: Palabra donde se guarda el resultado. LMT(680) S C D @LMT(680) S C D Soporte Técnico

LMT(680) Ejemplo @LMT(680) D00000 D00001 D00100 C: Límite inferior (binario) S Límite Inferior C Límite Superior C+1 C: Límite inferior C+1: Límite superior El límite inferior puede ser positivo o negativo. El límite superior debe ser mayor que el inferior. Soporte Técnico

Crea una banda muerta en el dato de entrada S. S: Palabra dato. C: Primera palabra de los límites. D: Palabra donde se guarda el resultado. BAND(681) S C D @BAND(681) S C D Soporte Técnico

BAND(681) Ejemplo BAND(681) D00000 D00001 D00100 C: Límite inferior (binario) S Límite Inferior C Límite Superior C+1 BAND(681) D00000 D00001 D00100 C: Límite inferior C+1: Límite superior El límite inferior puede ser positivo o negativo. El límite superior debe ser mayor que el inferior. Soporte Técnico

Crea una zona muerta en el dato de salida D. ZONE(682) Crea una zona muerta en el dato de salida D. S: Palabra dato. C: Primera palabra de los límites. D: Palabra donde se guarda el resultado. ZONE(682) S C D @ZONE(682) S C D Soporte Técnico

ZONE(682) Ejemplo ZONE(682) D00000 D00001 D00100 C: Límite inferior (binario) S Límite Inferior C Límite Superior C+1 ZONE(682) D00000 D00001 D00100 C: Límite inferior C+1: Límite superior El límite inferior puede ser positivo o negativo. El límite superior debe ser mayor que el inferior. Soporte Técnico

SCL2(486) Convierte una palabra binario con signo en otra BCD con signo, siguiendo una función lineal. Offset en binario. S: Palabra dato binario. P1: Primera palabra de los límites. R: Palabra donde se guarda el resultado BCD. SCL2(486) S P1 R @SCL2(486) S P1 R Soporte Técnico

SCL2(486) El Offset puede ser - Positivo - Negativo - Cero P1 Offset P1+1 X P1+2 Y X Y Offset S (binario) R (BCD) El Offset puede ser - Positivo - Negativo - Cero Soporte Técnico

SCL3(487) Convierte una palabra BCD con signo S en otra binario con signo R, siguiendo una función lineal. Offset en BCD. S: Palabra dato BCD. P1: Primera palabra de los límites. R: Palabra donde se guarda el resultado binario. SCL3(487) S P1 R @SCL3(487) S P1 R Soporte Técnico

SCL3(487) El Offset puede ser - Positivo - Negativo - Cero P1 Offset P1+1 X P1+2 Y P1+3 Límite superior P1+4 Límite inferior X Y Offset S (BCD) R (binario) Límite inferior Límite superior El Offset puede ser - Positivo - Negativo - Cero Soporte Técnico

Comunicaciones Serie y Network PMCR, SEND, RECV, CMND Soporte Técnico

Comunicaciones Incorpora 8 puertos lógicos. Esto permite gestionar 8 comunicaciones a la vez sin inferencias. Puede manejar 16 unidades de comunicación (SCU) + 1 tarjeta de comunicación interna (SCB). En las comunicaciones en red se pueden hacer puentes entre redes en el mismo PLC (Ethernet, Controler Link, CompoBus/D, Compobus/S). Soporte Técnico

PMCR(260) Ejecuta una secuencia de comunicaciones definida en una tarjeta de comunicaciones. C1: Palabra de control 1. C2: Palabra de control 2. S: Primera palabra de enviar. R: Primera palabra de recibir. PMCR(260) C1 C2 S R @PMCR(260) C1 C2 S R Soporte Técnico

PMCR(260) C1 0111 0001 1110 0001 10 + Nº de unidad Unidad de comunicaciones (SCU). E1 Tarjeta interna (SCB). Nº de puerto serie (puerto 1 o puerto 2) Nº de puerto lógico (0÷7) C2 0000 0011 1110 0111 Nº de secuencia de comunicaciones. S n Nº de palabras a enviar + 1 S1 Palabras a enviar. S2 ... R n Nº de palabras recibidas + 1 R1 Palabras recibidas. R2 ... Soporte Técnico

PMCR(260) Ejemplo PMCR(260) D00000 Ejecuta la secuencia de comunicaciones 1 de la ComBoard. Utiliza el puerto 1 (puerto físico). Ocupa el puerto lógico 0. D00000 0000 0001 1110 0001 D00001 0000 0000 0000 0001 Soporte Técnico

Envía datos a un nodo de la red. SEND(090) Envía datos a un nodo de la red. S: Primera palabra a enviar (nodo local). D: Primera palabra a recibir (nodo remoto). C: Primera palabra de control. SEND(090) S D C @SEND(090) S D C Soporte Técnico

SEND(090) Byte bajo 0÷7 Byte alto 8÷15 C Número de palabras: 0001 hasta el máximo de la red. C+1 Red destino 00÷7F Puerto serie 01÷04 (Host Link) C+2 Unidad destino Nodo destino 00 al máximo C+3 Nº de reintentos bits 8÷11: puerto lógico 12÷15: 0 con respuesta 8 sin respuesta C+4 Tiempo de monitorización de la respuesta 0001÷FFFF (0.1÷6553.5 seg.) Soporte Técnico

Pide datos de un nodo de la red y los recibe. RECV(098) Pide datos de un nodo de la red y los recibe. S: Primera palabra a enviar (nodo remoto). D: Primera palabra a recibir (nodo local). C: Primera palabra de control. RECV(098) S D C @RECV(098) S D C Soporte Técnico

RECV(098) Byte bajo 0÷7 Byte alto 8÷15 C Número de palabras: 0001 hasta el máximo de la red. C+1 Red fuente 00÷7F Puerto serie 01÷04 (Host Link) C+2 Unidad fuente Nodo fuente: 00 al máximo C+3 Nº de reintentos bits 8÷11: puerto lógico 12÷15: 0 con respuesta 8 sin respuesta C+4 Tiempo de monitorización de la respuesta 0001÷FFFF (0.1÷6553.5 seg.) Soporte Técnico

Envía un comando FINS y recibe la respuesta. CMND(490) Envía un comando FINS y recibe la respuesta. S: Primera palabra del comando a enviar. D: Primera palabra de respuesta. C: Primera palabra de control. CMND(490) S D C @CMND(490) S D C Soporte Técnico

CMND(490) Byte bajo 0÷7 Byte alto 8÷15 C Número de Bytes del comando a enviar: 0002 hasta el máximo. C+1 Número de Bytes del comando a recibir: 0002 hasta el máximo C+2 Red fuente 00÷7F Puerto serie 01÷04 (Host Link) C+3 Unidad fuente Nodo fuente: 00 al máximo C+4 Nº de reintentos bits 8÷11: puerto lógico 12÷15: 0 con respuesta 8 sin respuesta C+5 Tiempo de monitorización de la respuesta 0001÷FFFF (0.1÷6553.5 seg.) Soporte Técnico

Cambio en Instrucciones Instrucciones que ya no existen o han sido modificadas Soporte Técnico

Instrucciones no soportadas SCAN Impone un tiempo mínimo de ciclo de programa. LMSG Muestra un mensaje de 32 bits en la consola de programación. TERM Coloca la consola de programación en modo terminal. MPRF Refresco de unidades de alta densidad. XFR2 Transferir bloque EM. XDMR Leer banco de expansión EM. INT Gestión de interrupciones. CMCR Macro de la tarjeta PCMCIA. DSW Entrada de interruptor digital. TKY Entrada de teclado decimal. HKY Entrada de teclado hexadecimal. MTR Entrada de matriz. 7SEG Conversión a 7 segmentos. Soporte Técnico

Instrucciones modificadas FAL/FALS Alarma de fallos. WSFT Shift de palabra. PMCR Protocol Macro MSG Mensaje. TTIM Temporizador totalizador. SEND/RECV Network Enviar y Recibir. FCS Frame checksum. SRCH Búsqueda. MAX/MIN Encontrar máximo y mínimo. SUM Suma. PID Control PID. IORD/IOWR Leer/Escribir unidades I/O especiales. Soporte Técnico