La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Soporte Técnico1 Instrucciones de CS1 Nuevas instrucciones.

Presentaciones similares


Presentación del tema: "Soporte Técnico1 Instrucciones de CS1 Nuevas instrucciones."— Transcripción de la presentación:

1 Soporte Técnico1 Instrucciones de CS1 Nuevas instrucciones

2 Soporte Técnico2 Índice Formato instrucciones Direccionamientos Tareas Interrupciones Temporizadores Bloques de programa Tablas de datos Cadenas de caracteres Saltos Instrucciones de Lazo FOR-NEXT 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.

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

4 Soporte Técnico4 Formato de instrucciones Flanco de 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.

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

6 Soporte Técnico6 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. TSTN(351) S N TST(350) S N

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

8 Soporte Técnico8 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 D N1 N2 SETA(530) D N1 D N1 N2 RSTA(531) D N1 N2

9 Soporte Técnico9 SETA(530) W000 &4 W000 &4 &36 W W W W W W Pone a 0 36 bits consecutivos desde el bit 4 de la palabra W000 Pone a 1 36 bits consecutivos desde el bit 4 de la palabra W000

10 Soporte Técnico10 Direccionamientos Addessing

11 Soporte Técnico11 Direccionamientos 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 » Indirecto Indexado (IR),IR0 +234,IR0 DR0,IR0,IR0++

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

13 Soporte Técnico13 Ejemplos MOV(21) W000 Indirecto Binario MOV(21) Escribe 1A en la dirección indicada en (IR0+DR0) #1A Inmediato DR0,IR0 Indexado Escribe el contenido de W000 en la dirección (Binaria) indicada en D00000 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

14 Soporte Técnico14 Ejemplos 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 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 y aumenta IR0 dos unidades MOV(21) #1A Inmediato,IR0+ Indexado Escribe 1A en la dirección indicada en IR0 y aumenta IR0 una unidad

15 Soporte Técnico15 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 S D MOVR(560) S D

16 Soporte Técnico16 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 S D MOVRW(561) S D

17 Soporte Técnico17 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 Guarda el número de temporizador T0000 en el registro índice IR0 IR

18 Soporte Técnico18 Tareas División del programa en tareas

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

20 Soporte Técnico20 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 01 Tarea cíclica 02 Tarea cíclica 03 Tarea cíclica 00 Programa B Programa A

21 Soporte Técnico21 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.

22 Soporte Técnico22 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.

23 Soporte Técnico23 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).

24 Soporte Técnico24 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 N TKON(820) N

25 Soporte Técnico25 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: » mN: 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).

26 Soporte Técnico26 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 N TKOF(821) N

27 Soporte Técnico27 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: » mN: en el siguiente ciclo de scan.

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

29 Soporte Técnico29 Interrupciones Control de interrupciones

30 Soporte Técnico30 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)

31 Soporte Técnico31 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 N S

32 Soporte Técnico32 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.

33 Soporte Técnico33 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.

34 Soporte Técnico34 MSKS(690) Ejemplo MSKS(690) #0 #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).

35 Soporte Técnico35 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 N D

36 Soporte Técnico36 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 N S

37 Soporte Técnico37 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.

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

39 Soporte Técnico39 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.

40 Soporte Técnico40 EI(694) 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.

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

42 Soporte Técnico42 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.

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

44 Soporte Técnico44 Ejemplo Interrupciones 2 CF113 P_On ++(590) D00000 DM00000 cuenta las veces que ha ocurrido un fallo de alimentación END(001) 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

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

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

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

48 Soporte Técnico48 Temporizadores Nuevos temporizadores

49 Soporte Técnico49 Temporizadores Tiene temporizadores y 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.

50 Soporte Técnico50 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 N1 N2

51 Soporte Técnico51 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

52 Soporte Técnico52 TIML(542) Temporizador de 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

53 Soporte Técnico53 TIML(542) D Flag de finalización S+1STiempo total SV debe estar entre 0 y D2+1D2Valor actual del temporizador PV 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.

54 Soporte Técnico54 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

55 Soporte Técnico55 MTIM(543) D Flags de finalización de cada SV Flag de reset Flag de pausa D2Valor 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

56 Soporte Técnico56 Bloques de Programa En mnemónico

57 Soporte Técnico57 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.

58 Soporte Técnico58 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).

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

60 Soporte Técnico60 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

61 Soporte Técnico61 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).

62 Soporte Técnico62 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

63 Soporte Técnico63 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 ABCABC ACAC 0.01 ON 0.01 OFF

64 Soporte Técnico64 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 0.01 ON 0.01 OFF A CCC B

65 Soporte Técnico65 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. A CCC B

66 Soporte Técnico66 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. A CCC B

67 Soporte Técnico67 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 & B BEND C 100 A CCC B

68 Soporte Técnico68 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.

69 Soporte Técnico69 LOOP(809), LEND(810) NOT LD 0.00 BPRG #1 A LOOP B LEND 0.01 C BEND 0.01 ON 0.01 OFF 0.01 ON 0.01 OFF 0.01 OFF ABCABC ABAB BBCBC B

70 Soporte Técnico70 Tablas de datos Tablas basadas en pilas Tablas basadas en registros

71 Soporte Técnico71 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

72 Soporte Técnico72 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.

73 Soporte Técnico73 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 TB N

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

75 Soporte Técnico75 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 TB S

76 Soporte Técnico76 PUSH(632) Ejemplo D D D D D D D D D D Dirección donde apunta el puntero Tabla Puntero + D00000 #9012 Puntero Escribe 9012 en la tabla que empieza en D00000 dirección donde punta el puntero D Última dirección de la tabla en binario

77 Soporte Técnico77 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 TB D

78 Soporte Técnico78 FIFO(633) Ejemplo Dirección donde apunta el puntero Puntero - 1 Puntero D D D D D D D D D D Tabla FIFO(633) D00000 W000 W Última dirección de la tabla en binario

79 Soporte Técnico79 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 TB D

80 Soporte Técnico80 LIFO(364) Ejemplo Dirección donde apunta el puntero Puntero - 1 Puntero D D D D D D D D D D Tabla LIFO(634) D00000 W000 W Última dirección de la tabla en binario

81 Soporte Técnico81 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).

82 Soporte Técnico82 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 N LR NR TB

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

84 Soporte Técnico84 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 N R D SETR(635) N R D

85 Soporte Técnico85 SETR(635) &12 &2 IR11 D00000 D00004 D00005 D00009 D00010 D00014 Registro 2 Registro 3 Registro 1 5 Palabras IR11D00005 Tabla 12 Registro 2 Tabla 12

86 Soporte Técnico86 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 N IR D GETR(636) N IR D

87 Soporte Técnico87 GETR(636) &12 IR11 W000 D00000 D00004 D00005 D00009 D00010 D00014 Registro 2 Registro 3 Registro 1 5 Palabras W Tabla 12 Registro índice 11 Nº de registro Tabla 12 IR11D00005

88 Soporte Técnico88 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 C R1 Cd SRCH(181) C R1 Cd

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

90 Soporte Técnico90 SRCH(181) Ejemplo D D D D D D D D D D00109 W000 D00100 W002 W IR00D00104 DR W A W Guarda el Nº de coincidencias 10 Palabras

91 Soporte Técnico91 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 C R1 D MAX(182) C R1 D

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

93 Soporte Técnico93 MAX(182) Ejemplo D D D D D D D D D D00109 W000 D00100 W002 IR00D00101 W W A W001 C000Binario con signo Guarda la dirección en IR00 10 Palabras

94 Soporte Técnico94 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 C R1 D MIN(183) C R1 D

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

96 Soporte Técnico96 MIN(183) Ejemplo D D D D D D D D D D00109 W000 D00100 W002 IR00D00101 W W A W001 C000Binario con signo Guarda la dirección en IR00 10 Palabras Pone el flag de negativo a 1: N=1 porque 8778 es negativo.

97 Soporte Técnico97 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 N R1

98 Soporte Técnico98 SWAP(637) Ejemplo D D D D D D D D D D D D &6 D Palabras a partir del D00100

99 Soporte Técnico99 Cadenas de caracteres Instrucciones de texto

100 Soporte Técnico100 Cadenas de caracteres 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 el carácter NUL.

101 Soporte Técnico101 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 bytes. LEN$(650) S S D

102 Soporte Técnico102 LEN$(650) W000 W100 W000O M W001R O W002N W0004F 4D W F W0024E 00 S W D

103 Soporte Técnico103 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 bytes. MOV$(664) S S D

104 Soporte Técnico104 MOV$(664) Ejemplo W1004F 4D W F W1024E 00 W000O M W001R O W002N W0004F 4D W F W0024E 00 S W000 W100

105 Soporte Técnico105 +$(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 S1 S2 D +$(656) S1 S2 D

106 Soporte Técnico106 +$(656) Ejemplo D F 4D D F D E 53 D D E D W0004F 4D W F W0024E 00 W W W1024E 00 S2 W000 W100 D00000 & OMRONSPAIN OMRONSPAIN S1

107 Soporte Técnico107 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 bytes. LEFT$(652) S1 S2 S1 S2 D

108 Soporte Técnico108 LEFT$(652) Ejemplo D LEFT$(652) W000 &5 D00000 OMRON D F 4D D F D E 00 OMRON SPAIN S1 W0004F 4D W F W0024E 20 W W W0024E 00

109 Soporte Técnico109 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 bytes. RGHT$(653) S1 S2 S1 S2 D

110 Soporte Técnico110 RGHT$(653) Ejemplo D RGHT$(653) W000 &5 D00000 SPAIN D D D E 00 OMRON SPAIN S1 W0004F 4D W F W0024E 20 W W W0024E 00

111 Soporte Técnico111 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 S1 S2 S3 D

112 Soporte Técnico112 MID$(654) Ejemplo D ON SP D F 4E D D OMRON SPAIN S1 W0004F 4D W F W0024E 20 W W W0024E W000 &5 &4 D00000

113 Soporte Técnico113 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 S1 S2 D FIND$(660) S1 S2 D

114 Soporte Técnico114 FIND$(660) Ejemplo D F 4D D F D E 53 D D E D W W W1024E 00 D00000 W100 W000 OMRONSPAIN W D

115 Soporte Técnico115 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 S1 S2 S3 S4 D

116 Soporte Técnico116 RPLC$(661) Ejemplo D F 4D D F D E 20 D D D W W W S2D OMRONSPAIN SUR RPLC$(661) D00000 W100 &5 &6 D00100 D F 4D D F D E 53 D D E D S1 OMRON SUR

117 Soporte Técnico117 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 S1 S2 S3 D

118 Soporte Técnico118 DEL$(658) Ejemplo D OMRON SPAIN S1 W1004F 4D W F W1024E 00 W10200 W000 &6 D00000 W0004F 4D W F W0024E 20 W W W0024E 00 OMRON

119 Soporte Técnico119 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 bytes. Ex1 y Ex2 no se pueden solapar. XCHG$(665) Ex1 Ex1 Ex2

120 Soporte Técnico120 XCGH$(665) Ejemplo W1004F 4D W F W1024E 00 W0004F 4D W F W0024E 00 Ex1 W000 W100

121 Soporte Técnico121 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

122 Soporte Técnico122 CLR$(666) Ejemplo W W W W0004F 4D W F W0024E 00 S W000

123 Soporte Técnico123 INS$(657) 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 S1 S2 S3 D

124 Soporte Técnico124 INS$(657) Ejemplo W S2 D OMRONSPAIN D F 4D D F D E 20 D D D E 00 S1 D F 4D D F D E 53 D D E D OMRON D00000 W100 &5 D00100

125 Soporte Técnico125 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

126 Soporte Técnico126 Comparación de cadenas <>$(671) S1 S2 <$(672) S1 S2 >=$(675) S1 S2 <=$(673) S1 S2 =$(670) S1 S2 >$(674) S1 S2 S1 S2 longitud S1 = S2 S1 > S2 longitud S1 S2 longitud S1 < S2 longitud

127 Soporte Técnico127 Comparación Ejemplo >$(674) D00000 W =$(670) D00000 W <$(672) D00000 W AND OR LD

128 Soporte Técnico128 Saltos Saltos condicionales

129 Soporte Técnico129 Saltos JMP(4)CJP(510) CJPN(511)JMP0(515) JME(5)JME(5) JME(5)JME0(516) CondiciónOFFON OFFOFF Nº máximo1.024 en totalSin límite Tiempo ejecuciónNo se ejecutanNOP(000) Estado de salidasBits y palabras mantienen su estado anterior TemporizadoresContinúan temporizando Bloques de programasSiempreON OFFNo permitido Tabla comparativa de los saltos y los saltos condicionales.

130 Soporte Técnico130 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. CJPN(511) N CJP(510) N JME(005) N

131 Soporte Técnico131 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. JME0(516) JMP0(515)

132 Soporte Técnico132 Instrucciones de lazo FOR, NEXT, BREAK

133 Soporte Técnico133 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.

134 Soporte Técnico134 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 NEXT(513) Instrucciones repetidas N veces

135 Soporte Técnico135 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.

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

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

138 Soporte Técnico138 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)

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

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

141 Soporte Técnico141 Desplazamiento y rotación 1 Canal2 Canales DesplazamientoASL(025)ASLL(570) ASR(026)ASRL(571) RotaciónROL(027)ROLL(572) ROR(028)RORL(573) Rotación sinRLNC(574)RLNL(576) CarryRRNC(575)RRNL(577)

142 Soporte Técnico142 De N bits 1 Canal2 Canales DesplazamientoNASL(580)NSLL(582) de N bitsNASR(581)NSRL(583) DesplazamientoNSFL(578) de N bits como datoNSFR(579)

143 Soporte Técnico143 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 D C

144 Soporte Técnico144 NASL(580) ejemplo 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. NASL(580) 0100 # CY Perdidos

145 Soporte Técnico145 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 D C

146 Soporte Técnico146 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 D C

147 Soporte Técnico147 NASR(581) ejemplo 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. NASR(581) 0100 # CY Perdidos

148 Soporte Técnico148 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 D C

149 Soporte Técnico149 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 D C R NSFL(578) D C R

150 Soporte Técnico150 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 D C R NSFL(578) D C R

151 Soporte Técnico151 NSFL NSFR ejemplo NSFR(579) 0100 &3 &11 NSFL(578) 0100 &3 & CY CY Bits 3 a 12

152 Soporte Técnico152 Incrementar Decrementar Autoincremento y Autodecremento

153 Soporte Técnico153 ++(590) ++L(591) ++ 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 Wd ++L(591) Wd ++(590) Wd

154 Soporte Técnico154 --(592) --L(593) -- 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 Wd --L(593) Wd --(592) Wd

155 Soporte Técnico155 Binario Ejemplos --L(593) D (592) D L(591) D (590) D00000 D0 001A D A D0D1D0D1 001A FFFF D0D1D0D1 0019FFFF +1001A0000

156 Soporte Técnico156 ++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 Wd ++BL(595) Wd ++B(594) Wd

157 Soporte Técnico157 --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 Wd --BL(597) Wd --B(596) Wd

158 Soporte Técnico158 BCD Ejemplos --BL(597) D B(596) D BL(595) D B(594) D00000 D D D0D1D0D D0D1D0D

159 Soporte Técnico159 Comparación =,, >=, <>

160 Soporte Técnico160 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

161 Soporte Técnico161 Comparación de palabras SímboloFormatoLongitud =(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 (320)-: Sin signo-: 1 palabra >L(321)-: Sin signo L: 2 palabras >S(322)S: Con signo-: 1 palabra =(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

162 Soporte Técnico162 Comparación Ejemplo Activa la salida si D00000 es menor que D00001 o D00002 es igual que D00003

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

164 Soporte Técnico164 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 FFFF SIGN(600) S S R

165 Soporte Técnico165 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 C S R BINS(470) C S R

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

167 Soporte Técnico167 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 C S R BISL(472) C S R

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

169 Soporte Técnico169 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 C S R BCDS(471) C S R

170 Soporte Técnico170 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 C S R BDSL(473) C S R

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

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

173 Soporte Técnico173 Números en Coma Flotante Se pueden expresar los números: - (e=255, f=0, s=0) ·10 38 ÷ · (e=0) · ÷ ·10 38 (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.

174 Soporte Técnico174 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.

175 Soporte Técnico175 IEEE754 Expresan números reales en 32 bits conforme al estándar IEEE754: f: Mantisa23 bitsbit 0 al 22 e: Exponente8 bitsbit 23 al 30 s: Signo1 bitbit 31 (-1) s ·2 e-127 ·(1+f·2 -23 ) 1# # Signo: (-1) 1 = -1 Exponente: =2 1 =2 Mantisa: ·2 -23 =1+0.75=1.75 Resultado: -1.75·2= -3.5

176 Soporte Técnico176 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 N os en formato coma flotante IEEE754. No es necesario conocer este formato, sólo que ocupan 32 bits.

177 Soporte Técnico177 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 ÷ FIX(450) S S R

178 Soporte Técnico178 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 ( ) Rango de ÷ FIXL(451) S S R

179 Soporte Técnico179 FIX, FIXL Ejemplo FIXL(451) D00002 D00102 FIX(450) D00000 D D D D D D D D

180 Soporte Técnico180 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 ÷ FLT(452) S S R

181 Soporte Técnico181 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 ÷ Números > pierden precisión. FLTL(453) S S R

182 Soporte Técnico182 FLT, FLTL Ejemplo FLTL(453) D00102 D00002 FLT(452) D00100 D D D D D D D D

183 Soporte Técnico183 +F(454) 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 Au Ad R +F(454) Au Ad R

184 Soporte Técnico184 -F(455) 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, Mi Su R -F(455) Mi Su R

185 Soporte Técnico185 +F, -F Ejemplo +F(454) D00000 D00002 D F(455) D00000 D00002 D00100 D D D D D D D D

186 Soporte Técnico186 *F(456) 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 Md Mr R *F(456) Md Mr R

187 Soporte Técnico187 /F(457) 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, Dd Dr R /F(457) Dd Dr R

188 Soporte Técnico188 *F, /F Ejemplo *F(456) D00000 D00002 D00100 /F(457) D00000 D00002 D00100 D D D D D D D D ÷ * 6

189 Soporte Técnico189 RAD(458) 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 S R

190 Soporte Técnico190 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 S R

191 Soporte Técnico191 DEG, RAD Ejemplo D D rad D D D00000 D00002 D rad = º º = 1 rad 3 /2 /2 0=2 90º 180º 270º 0º=360º

192 Soporte Técnico192 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 S R

193 Soporte Técnico193 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 S R

194 Soporte Técnico194 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 S R

195 Soporte Técnico195 SIN, COS, TAN Ejemplo D D tg30º=0.577 D D º= D00000 D00000 D00100 D D sen30º = D00000 D00100 D D cos30º= 0.866

196 Soporte Técnico196 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 S R

197 Soporte Técnico197 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 S R

198 Soporte Técnico198 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 S R

199 Soporte Técnico199 ASIN, ACOS, ATAN Ejemplo D arctg 0.5= D rad D D D00000 D00000 D00000 D00100 D arccos 0.5= D rad D arcsen 0.5= D rad

200 Soporte Técnico200 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 S R

201 Soporte Técnico201 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 B E R PWR(840) B E R

202 Soporte Técnico202 PWR, SQRT Ejemplo PWR(840) D00000 D00002 D00100 D D = D D D D D D D00000 D00100

203 Soporte Técnico203 EXP(467) Calcula el exponencial (e S ) 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, El resultado siempre es positivo. EXP(467) S S R

204 Soporte Técnico204 LOG(468) 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 S R

205 Soporte Técnico205 EXP, LOG Ejemplo D D e 1 = D D D00000 D00000 D00100 D D L1 = 0

206 Soporte Técnico206 Instrucciones de calendario Fecha y hora

207 Soporte Técnico207 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.

208 Soporte Técnico208 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 S DATE(735) S

209 Soporte Técnico209 DATE(735) S Segundos 00 ÷ 59 Minutos 00 ÷59 S Hora 00 ÷ 23 Día 01 ÷31 S Mes 01 ÷ 12 Año 00 ÷99 S Día semana 00(Domingo) ÷ 06(Sábado) Siempre 0

210 Soporte Técnico210 DATE(735) DirecciónContenido 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 La fecha y hora se guardan en los registros auxiliares:

211 Soporte Técnico211 DATE(735) D00000 D D :15:30 D de Mayo de D Miércoles

212 Soporte Técnico212 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 C T R CADD(730) C T R

213 Soporte Técnico213 CADD(730) C Segundos 00 ÷ 59 Minutos 00 ÷59 C Hora 00 ÷ 23 Día 01 ÷31 C Mes 01 ÷ 12 Año 00 ÷99 Este mismo formato es el del resultado R a R+2 T Segundos 00 ÷ 59 Minutos 00 ÷59 T Hora 0000 ÷ 9999

214 Soporte Técnico214 CADD(730) Ejemplo D D h CADD(730) D00000 D00003 D00100 D D :30:50 D de Mayo de D D :15:30 D de Mayo de 1.999

215 Soporte Técnico215 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 C T R CSUB(731) C T R

216 Soporte Técnico216 CSUB(731) C Segundos 00 ÷ 59 Minutos 00 ÷59 C Hora 00 ÷ 23 Día 01 ÷31 C Mes 01 ÷ 12 Año 00 ÷99 Este mismo formato es el del resultado R T Segundos 00 ÷ 59 Minutos 00 ÷59 T Hora 0000 ÷ 9999

217 Soporte Técnico217 CSUB(731) Ejemplo D D h CSUB(731) D00000 D00003 D00100 D D :19:50 D de Abril de D D :15:30 D de Mayo de 1.999

218 Soporte Técnico218 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 S D

219 Soporte Técnico219 SEC(065) R R Segundos 0 ÷ S Segundos 00 ÷ 59 Minutos 00 ÷59 S Hora 0000 ÷ 9999

220 Soporte Técnico220 HMS(066) 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 S D

221 Soporte Técnico221 HMS(066) S S Segundos 0 ÷ R Segundos 00 ÷ 59 Minutos 00 ÷59 R Hora 0000 ÷ 9999

222 Soporte Técnico222 SEC, HMS Ejemplo D D Segundos D Segundos 17 Minutos D Horas HMS(066) D00000 D00100 SEC(065) D00100 D00000

223 Soporte Técnico223 Ficheros de Memoria Lectura / Escritura de ficheros

224 Soporte Técnico224 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).

225 Soporte Técnico225 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 C S1 S2 D FREAD(700) C S1 S2 D

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

227 Soporte Técnico227 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+1D Número de palabras del fichero leído (en hexadecimal).

228 Soporte Técnico228 FREAD(700) #0000 D00200 D00300 D A 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 D002005C 41 Directorio ABCD D Fichero XY D C D D A 10 palabras. D D Empieza en la palabra 5. D Tarjeta de memoria \ABCD\XY D00400 D00409 Área DM

229 Soporte Técnico229 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 C D1 D2 S FWRIT(701) C D1 D2 S

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

231 Soporte Técnico231 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.

232 Soporte Técnico232 FWRIT(701) #0010 D00200 D00300 D A 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). D002005C 41 Directorio ABCD D Fichero XY D C D D A 10 palabras. D D Empieza en la palabra 5. D Tarjeta de memoria \ABCD\XY D00400 D00409 Área DM

233 Soporte Técnico233 Control de datos Control de datos analógicos

234 Soporte Técnico234 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 S C D LMT(680) S C D

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

236 Soporte Técnico236 BAND(681) 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 S C D BAND(681) S C D

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

238 Soporte Técnico238 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 S C D ZONE(682) S C D

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

240 Soporte Técnico240 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 S P1 R SCL2(486) S P1 R

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

242 Soporte Técnico242 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 S P1 R SCL3(487) S P1 R

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

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

245 Soporte Técnico245 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).

246 Soporte Técnico246 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 C1 C2 S R PMCR(260) C1 C2 S R

247 Soporte Técnico247 PMCR(260) 10 + Nº de unidadUnidad de comunicaciones (SCU). E1Tarjeta interna (SCB). Nº de puerto serie (puerto 1 o puerto 2) Nº de puerto lógico (0÷7) C C Nº de secuencia de comunicaciones. SnNº de palabras a enviar + 1 S1Palabras a enviar. S2... RnNº de palabras recibidas + 1 R1Palabras recibidas. R2...

248 Soporte Técnico248 PMCR(260) Ejemplo PMCR(260) D00000 D00001 D00100 D01000 D D Ejecuta la secuencia de comunicaciones 1 de la ComBoard. Utiliza el puerto 1 (puerto físico). Ocupa el puerto lógico 0.

249 Soporte Técnico249 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 S D C SEND(090) S D C

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

251 Soporte Técnico251 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 S D C RECV(098) S D C

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

253 Soporte Técnico253 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 S D C CMND(490) S D C

254 Soporte Técnico254 CMND(490) Byte bajo 0÷7Byte alto 8÷15 CNú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+2Red fuente 00÷7FPuerto serie 01÷04 (Host Link) C+3Unidad fuenteNodo fuente: 00 al máximo C+4Nº de reintentosbits 8÷11: puerto lógico 12÷15:0 con respuesta 8 sin respuesta C+5Tiempo de monitorización de la respuesta 0001÷FFFF (0.1÷ seg.)

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

256 Soporte Técnico256 Instrucciones no soportadas SCANImpone un tiempo mínimo de ciclo de programa. LMSGMuestra un mensaje de 32 bits en la consola de programación. TERMColoca la consola de programación en modo terminal. MPRFRefresco de unidades de alta densidad. XFR2Transferir bloque EM. XDMRLeer banco de expansión EM. INTGestión de interrupciones. CMCRMacro de la tarjeta PCMCIA. DSWEntrada de interruptor digital. TKYEntrada de teclado decimal. HKYEntrada de teclado hexadecimal. MTREntrada de matriz. 7SEGConversión a 7 segmentos.

257 Soporte Técnico257 Instrucciones modificadas FAL/FALSAlarma de fallos. WSFTShift de palabra. PMCRProtocol Macro MSGMensaje. TTIMTemporizador totalizador. SEND/RECVNetwork Enviar y Recibir. FCSFrame checksum. SRCHBúsqueda. MAX/MINEncontrar máximo y mínimo. SUMSuma. PIDControl PID. IORD/IOWRLeer/Escribir unidades I/O especiales.


Descargar ppt "Soporte Técnico1 Instrucciones de CS1 Nuevas instrucciones."

Presentaciones similares


Anuncios Google