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 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.

5 Soporte Técnico5 Ejemplo de Formatos % LD 0000.00Se activa durante un ciclo de programa con el flanco de bajada de 0000.00 LD 0000.00 % SET 0001.00Se ejecuta con el flanco de bajada de 0000.00 !@MOV(21) 0001 DM00001 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

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 &6 0010.04 El bit 6 del DM00000 activa la salida 0010.6 TSTN(351) DM00000 &11 0000.00 La salida 0010.04 se activa cuando la entrada 0000.00 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 bits. @SETA(530) D N1 N2 SETA(530) D N1 N2 @RSTA(531) D N1 N2 RSTA(531) D N1 N2

9 Soporte Técnico9 SETA(530) RSTA(531) @SETA(530) W000 &4 &36 @RSTA(531) W000 &4 &36 W0000000 0000 0000 1111 W0010000 0000 0000 0000 W0021111 1111 0000 0000 W0001111 1111 1111 0000 W0011111 1111 1111 1111 W0020000 0000 1111 1111 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 en Binario (@D, @E, @En_) » 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 Directo @D00000 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 dirección. @MOVR(560) 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 contador. @MOVRW(561) 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 IR00000 0195

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 00-02-03 Programa A 00-01-03

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 1. @TKON(820) 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 interrupción. @TKOF(821) 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) 1 0000.01 TKON(820) 1 TKOF(821) 2 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 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 S @MSKS(690) 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 D @MSKR(692) 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 S @CLI(692) 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. Entrada76543210 0000000001001000 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. DI(693) @DI(693)

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. EI(694) @EI(694)

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 A200.11 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 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.

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 N2 @CNR(545) 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 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

53 Soporte Técnico53 TIML(542) D10000 0000 0000 000 1 Flag de finalización S+1STiempo total SV debe estar entre 0 y 9999 9999 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) D10000 00 0 0 1 1 1 1 1 1 1 1 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 &100 0.01 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 N @SSET(630) TB N

74 Soporte Técnico74 SSET(630) Ejemplo SSET(630) D00000 &10 D000000009 D000010001 D000020004 D000030001 D000040000 D000050000 D000060000 D000070000 D000080000 D000090000 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 S @PUSH(632) TB S

76 Soporte Técnico76 PUSH(632) Ejemplo D000000009 D000010001 D000020006 D000030001 D000041234 D000055678 D000069012 D000070000 D000080000 D000090000 Dirección donde apunta el puntero Tabla Puntero + 1 @PUSH(632) D00000 #9012 Puntero Escribe 9012 en la tabla que empieza en D00000 dirección donde punta el puntero D00006. Ú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 D @FIFO(633) TB D

78 Soporte Técnico78 FIFO(633) Ejemplo 0009 0001 0006 0001 5678 9012 0000 Dirección donde apunta el puntero Puntero - 1 Puntero D000000009 D000010000 D000020007 D000030000 D000041234 D000055678 D000069012 D000070000 D000080000 D000090000 Tabla FIFO(633) D00000 W000 W0001234 Ú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 D @LIFO(634) TB D

80 Soporte Técnico80 LIFO(364) Ejemplo 0009 0001 0005 0001 1234 5678 9012 0000 Dirección donde apunta el puntero Puntero - 1 Puntero D000000009 D000010000 D000020006 D000030000 D000041234 D000055678 D000069012 D000070000 D000080000 D000090000 Tabla LIFO(634) D00000 W000 W0009012 Ú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 TB @DIM(631) N LR NR TB

83 Soporte Técnico83 DIM(631) Ejemplo @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 índice. @SETR(635) N R D SETR(635) N R D

85 Soporte Técnico85 SETR(635) Ejemplo @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 registro. @GETR(636) N IR D GETR(636) N IR D

87 Soporte Técnico87 GETR(636) Ejemplo @GETR(636) &12 IR11 W000 D00000 D00004 D00005 D00009 D00010 D00014 Registro 2 Registro 3 Registro 1 5 Palabras W000 0002 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 coincidencias. @SRCH(181) C R1 Cd SRCH(181) C R1 Cd

89 Soporte Técnico89 SRCH(181) X 000 0000 0000 0000 0: 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 D00100 1234 D00101 6589 D00102 8778 D00103 5569 D00104 3365 D00105 1234 D00106 1254 D00107 3365 D00108 5698 D00109 3365 @SRCH(181) W000 D00100 W002 W002 3365 IR00D00104 DR00 0003 W000 000A W001 8000Guarda 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 máximo. @MAX(182) C R1 D MAX(182) C R1 D

92 Soporte Técnico92 MAX(182) X Y 00 0000 0000 0000 0: 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 D00100 1234 D00101 6589 D00102 8778 D00103 5569 D00104 3365 D00105 1234 D00106 1254 D00107 3365 D00108 5698 D00109 3365 @MAX(182) W000 D00100 W002 IR00D00101 W002 6589 W000 000A 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 mínimo. @MIN(183) C R1 D MIN(183) C R1 D

95 Soporte Técnico95 MIN(183) X Y 00 0000 0000 0000 0: 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 D00100 1234 D00101 6589 D00102 8778 D00103 5569 D00104 3365 D00105 1234 D00106 1254 D00107 3365 D00108 5698 D00109 3365 @MIN(183) W000 D00100 W002 IR00D00101 W002 8778 W000 000A 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 R1 @SWAP(637) N R1

98 Soporte Técnico98 SWAP(637) Ejemplo D00100 01 00 D00101 03 02 D00102 05 04 D00103 07 06 D00104 09 08 D00105 11 10 D00100 00 01 D00101 02 03 D00102 04 05 D00103 06 07 D00104 08 09 D00105 10 11 @SWAP(637) &6 D00100 6 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 4.095 + 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 4.095 bytes. LEN$(650) S D @LEN$(650) S D

102 Soporte Técnico102 LEN$(650) Ejemplo @LEN$(664) W000 W100 W000O M W001R O W002N W0004F 4D W00152 4F W0024E 00 S W0000006 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 4.095 bytes. MOV$(664) S D @MOV$(664) S D

104 Soporte Técnico104 MOV$(664) Ejemplo W1004F 4D W10152 4F W1024E 00 W000O M W001R O W002N W0004F 4D W00152 4F W0024E 00 S D @MOV$(664) 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 4.095 bytes. @+$(656) S1 S2 D +$(656) S1 S2 D

106 Soporte Técnico106 +$(656) Ejemplo D00000 4F 4D D00001 52 4F D00002 4E 53 D00003 50 41 D00004 49 4E D00005 00 00 W0004F 4D W00152 4F W0024E 00 W10053 50 W10141 49 W1024E 00 S2 D @+$(656) 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 4.095 bytes. LEFT$(652) S1 S2 D @LEFT$(652) S1 S2 D

108 Soporte Técnico108 LEFT$(652) Ejemplo D LEFT$(652) W000 &5 D00000 OMRON D00000 4F 4D D00001 52 4F D00002 4E 00 OMRON SPAIN S1 W0004F 4D W00152 4F W0024E 20 W00253 50 W00241 49 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 4.095 bytes. RGHT$(653) S1 S2 D @RGHT$(653) S1 S2 D

110 Soporte Técnico110 RGHT$(653) Ejemplo D RGHT$(653) W000 &5 D00000 SPAIN D00000 53 50 D00001 41 49 D00002 4E 00 OMRON SPAIN S1 W0004F 4D W00152 4F W0024E 20 W00253 50 W00241 49 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 D @MID$(654) S1 S2 S3 D

112 Soporte Técnico112 MID$(654) Ejemplo D ON SP D00000 4F 4E D00001 20 53 D00002 50 00 OMRON SPAIN S1 W0004F 4D W00152 4F W0024E 20 W00253 50 W00241 49 W0024E 00 @MID$(654) 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 carácter. @FIND$(660) S1 S2 D FIND$(660) S1 S2 D

114 Soporte Técnico114 FIND$(660) Ejemplo D00000 4F 4D D00001 52 4F D00002 4E 53 D00003 50 41 D00004 49 4E D00005 00 00 W10053 50 W10141 49 W1024E 00 S2S1 @FIND$(660) D00000 W100 W000 OMRONSPAIN W0000006 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 D @RPLC$(661) S1 S2 S3 S4 D

116 Soporte Técnico116 RPLC$(661) Ejemplo D00100 4F 4D D00101 52 4F D00102 4E 20 D00103 53 55 D00104 52 00 D00105 00 00 W10020 53 W10155 52 W10200 00 S2D OMRONSPAIN SUR RPLC$(661) D00000 W100 &5 &6 D00100 D00000 4F 4D D00001 52 4F D00002 4E 53 D00003 50 41 D00004 49 4E D00005 00 00 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 D @DEL$(658) S1 S2 S3 D

118 Soporte Técnico118 DEL$(658) Ejemplo D OMRON SPAIN S1 W1004F 4D W10152 4F W1024E 00 W10200 00 @DEL$(658) W000 &6 D00000 W0004F 4D W00152 4F W0024E 20 W00253 50 W00241 49 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 4.095 bytes. Ex1 y Ex2 no se pueden solapar. XCHG$(665) Ex1 Ex2 @XCHG$(665) Ex1 Ex2

120 Soporte Técnico120 XCGH$(665) Ejemplo W1004F 4D W10152 4F W1024E 00 W0004F 4D W00152 4F W0024E 00 Ex1 Ex2 @XCHG$(665) 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 @CLR$(666) S

122 Soporte Técnico122 CLR$(666) Ejemplo W10000 00 W10100 00 W10200 00 W0004F 4D W00152 4F W0024E 00 S S @CLR$(666) 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 D @INS$(657) S1 S2 S3 D

124 Soporte Técnico124 INS$(657) Ejemplo W10020 00 S2 D OMRONSPAIN D00100 4F 4D D00101 52 4F D00102 4E 20 D00103 53 50 D00104 41 49 D00105 4E 00 S1 D00000 4F 4D D00001 52 4F D00002 4E 53 D00003 50 41 D00004 49 4E D00005 00 00 OMRON SPAIN @INS$(657) 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 W000 0001.02 =$(670) D00000 W000 0000.00 0000.02 <$(672) D00000 W000 0001.01 0000.01 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) D00100 @D00200 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 C @NASL(580) D C

144 Soporte Técnico144 NASL(580) ejemplo 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. NASL(580) 0100 #0004 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 0 1 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 C @NSLL(582) 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 C @NASR(581) D C

147 Soporte Técnico147 NASR(581) ejemplo 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. NASR(581) 0100 #0004 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 1 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 C @NSRL(583) 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 cambian. @NSFL(578) 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 cambian. @NSFL(578) D C R NSFL(578) D C R

151 Soporte Técnico151 NSFL NSFR ejemplo NSFR(579) 0100 &3 &11 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 0 1 CY 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 0 1 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 incrementar @++L(591) Wd ++L(591) Wd @++(590) 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 incrementar @--L(593) Wd --L(593) Wd @--(592) Wd --(592) Wd

155 Soporte Técnico155 Binario Ejemplos --L(593) D00000 --(592) D00000 ++L(591) D00000 ++(590) D00000 D0 001A -10019 D0 0019 +1001A D0D1D0D1 001A0000 -10019FFFF 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 incrementar @++BL(595) Wd ++BL(595) Wd @++B(594) 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 incrementar @--BL(597) Wd --BL(597) Wd @--B(596) Wd --B(596) Wd

158 Soporte Técnico158 BCD Ejemplos --BL(597) D00000 --B(596) D00000 ++BL(595) D00000 ++B(594) D00000 D0 0020 -10019 D0 0019 +10020 D0D1D0D1 00200000 -100199999 D0D1D0D1 00199999 +100200000

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 0000.00 si D00000 es menor que D00001 o D00002 es igual que D00003 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/30769/1/slides/slide_161.jpg", "name": "Soporte Técnico162 Comparación Ejemplo Activa la salida 0000.00 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. 8000 FFFF 8000 7000 0000 7000 SIGN(600) S R @SIGN(600) 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 binario. @BINS(470) 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) 000 1 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 binario. @BISL(472) 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 (-7999 9999 a 7999 9999) 000 1 xxxx xxxx xxxxEl bit 12 de S+1 indica el signo (1 negativo). Los bits 13 a 15 deben ser 0. C=0000 (-999 9999 a 999 9999) 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 (-1999 9999 a 9999 9999) 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 (-999 9999 a 9999 9999)

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 BINS(470) @BCDS(471) 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 BINS(470) @BDSL(473) 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=0FF67 6981 a FFFF FFFF y 0 a 0098 967F C=1FB3B 4C01 a FFFF FFFF y 0 a 04C4 B3FF C=2FF67 6981 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) -3.402823·10 38 ÷ -1.175494·10 -38 0 (e=0) 1.175494·10 -38 ÷ 3.402823·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#10000000#11000000000000000000000 Signo: (-1) 1 = -1 Exponente: 2 128-127 =2 1 =2 Mantisa: 1+6291456·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 -32.768 ÷ 32.767. FIX(450) S R @FIX(450) 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 (-3.5 -3) Rango de -2.147.482.648÷2.147.482.647. FIXL(451) S R @FIXL(451) S R

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

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 -32.768 ÷ 32.767. FLT(452) S R @FLT(452) 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 -2.147.482.648÷2.147.482.647. Números > 16.777.215 pierden precisión. FLTL(453) S R @FLTL(453) S R

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

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 NaN+número=NaN. @+F(454) 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, número-NaN=NaN. @-F(455) Mi Su R -F(455) Mi Su R

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

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 NaN·número=NaN. @*F(456) 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, número/NaN=NaN. @/F(457) 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 D00100 0101 0101 0101 0101 D00101 0011 1111 0101 1010 0.583333 D00000 0000 0000 0000 0000 D00001 0100 0000 0110 0000 3.5 D00002 0000 0000 0000 0000 D00003 0100 0000 1100 0000 6 D00100 0000 0000 0000 0000 D00101 0100 0001 1011 0000 21 3.5 ÷ 6 3.5 * 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 R @RAD(458) 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 R @DEG(459) S R

191 Soporte Técnico191 DEG, RAD Ejemplo D00000 0000 0000 0000 0000 D00001 0011 1111 1000 0000 1 rad D00002 0010 1110 1110 0000 D00003 0100 0010 0110 0101 57.29578º @DEG(459) D00000 D00002 @RAD(458) D00002 D00000 1 rad = 57.29578º 57.29578º = 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 R @SIN(460) 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 R @COS(461) 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 R @TAN(462) S R

195 Soporte Técnico195 SIN, COS, TAN Ejemplo D00100 1100 1101 0011 1010 D00101 0011 1111 1001 0011 tg30º=0.577 D00000 0000 1010 1001 0001 D00001 0011 1111 0000 0110 30º=0.523599 rad @TAN(462) D00000 D00100 @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

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 R @ASIN(463) 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 R @ACOS(464) 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 R @ATAN(465) S R

199 Soporte Técnico199 ASIN, ACOS, ATAN Ejemplo D00100 0110 0011 1000 1000 arctg 0.5= D00101 0100 0000 1110 1101 0.4636479 rad D00000 0000 0000 0000 0000 D00001 0011 1111 0000 0000 0.5 @ATAN(465) D00000 D00100 @ASIN(463) D00000 D00100 @ACOS(464) D00000 D00100 D00000 0000 1010 1001 0001 arccos 0.5= D00001 0011 1111 1000 0110 1.1047197 rad D00000 0000 1010 1001 0001 arcsen 0.5= D00001 0011 1111 0000 0110 0.523599 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 R @SQRT(466) 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 error. @PWR(840) B E R PWR(840) B E R

202 Soporte Técnico202 PWR, SQRT Ejemplo PWR(840) D00000 D00002 D00100 D00100 1011 1111 0001 0000 D00101 0100 1001 0000 0001 9 6 =531.441 D00000 0000 0000 0000 0000 D00001 0100 0001 0001 0000 9 D00002 0000 0000 0000 0000 D00003 0100 0000 1100 0000 6 D00100 0000 0000 0000 0000 D00101 0100 0000 0100 0000 9=3 @SQRT(466) 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,718281828459. El resultado siempre es positivo. EXP(467) S R @EXP(467) 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 R @LOG(468) S R

205 Soporte Técnico205 EXP, LOG Ejemplo D00100 1111 1000 0101 0100 D00101 0100 0000 1010 1101 e 1 =2.71828 D00000 0000 0000 0000 0000 D00001 0011 1111 1000 0000 1 @EXP(467) D00000 D00100 @LOG(468) D00000 D00100 D00100 0000 0000 0000 0000 D00101 0000 0000 0000 0000 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 hora. @DATE(735) S DATE(735) S

209 Soporte Técnico209 DATE(735) S 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 S+1 0011 0001 0010 0011 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

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) 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

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 suma. @CADD(730) C T R CADD(730) C T R

213 Soporte Técnico213 CADD(730) C 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 C+1 0011 0001 0010 0011 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

214 Soporte Técnico214 CADD(730) Ejemplo D0003 15 20 D0004 05 16 516h 15 20 CADD(730) D00000 D00003 D00100 D0100 30 50 D0101 27 16 6:30:50 D0102 99 05 27 de Mayo de 1.999 D0000 15 30 D0001 05 16 16:15:30 D0002 99 05 5 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 resta. @CSUB(731) C T R CSUB(731) C T R

216 Soporte Técnico216 CSUB(731) C 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 C+1 0011 0001 0010 0011 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

217 Soporte Técnico217 CSUB(731) Ejemplo D0003 10 40 D0004 05 16 516h 15 20 CSUB(731) D00000 D00003 D00100 D0100 19 50 D0101 15 04 4:19:50 D0102 99 04 15 de Abril de 1.999 D0000 15 30 D0001 05 16 16:15:30 D0002 99 05 5 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 D @SEC(065) S D

219 Soporte Técnico219 SEC(065) R 1001 1001 1001 1001 R+1 0011 0101 1001 1001 Segundos 0 ÷ 35.999.999 S 0101 1001 0101 1001 Segundos 00 ÷ 59 Minutos 00 ÷59 S+1 1001 1001 1000 1001 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 D @HMS(066) S D

221 Soporte Técnico221 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

222 Soporte Técnico222 SEC, HMS Ejemplo D00000 0011 0100 0101 0110 D00001 0000 0000 0001 0010 123.456 Segundos D00100 0001 0111 0011 0110 36 Segundos 17 Minutos D00101 0000 0000 0011 0100 34 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 destino. @FREAD(700) C S1 S2 D FREAD(700) C S1 S2 D

226 Soporte Técnico226 FREAD(700) C 0000 0000 0001 0001 0: 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) Ejemplo @FREAD(700) #0000 D00200 D00300 D00400 0000.00A343.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 D002005C 41 Directorio ABCD D0020142 43 Fichero XY D0020244 5C D0020358 59 D0020000 0A 10 palabras. D0020100 00 D0020200 05 Empieza en la palabra 5. D0020300 00 10 5 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 guardar. @FWRIT(701) C D1 D2 S FWRIT(701) C D1 D2 S

230 Soporte Técnico230 FWRIT(701) C 0000 0000 0001 0001 0: 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) Ejemplo @FWRIT(701) #0010 D00200 D00300 D00400 0000.01A343.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). D002005C 41 Directorio ABCD D0020142 43 Fichero XY D0020244 5C D0020358 59 D0020000 0A 10 palabras. D0020100 00 D0020200 05 Empieza en la palabra 5. D0020300 00 10 5 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 resultado. @LMT(680) S C D LMT(680) S C D

235 Soporte Técnico235 LMT(680) Ejemplo @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 resultado. @BAND(681) 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 resultado. @ZONE(682) 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 BCD. @SCL2(486) 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 binario. @SCL3(487) 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 recibir. @PMCR(260) 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) C10111 0001 1110 0001 C20000 0011 1110 0111Nº 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 D000000000 0001 1110 0001 D000010000 0000 0000 0001 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 control. @SEND(090) 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÷6553.5 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 control. @RECV(098) 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÷6553.5 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 control. @CMND(490) 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÷6553.5 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