PROGRAMACIÓN AVANZADA DE PLC’s Soporte Técnico TRATAMIENTO NUMERICO Soporte Técnico CONCEPTO DE REGISTRO (CANAL) • • DISPOSITIVO CAPAZ DE ALMACENAR UNA INFORMACION DIGITAL (1s y/o 0s) EN LOS PLC’s DE OMRON TODOS LOS REGISTROS SON DE 16 Bits (POSICIONES) 15 14 13 12 11 10 9 8 7 6 5 4 msb más significativo Soporte Técnico 3 2 1 0 Nº BIT lsb (PESO) menos significativo Omron03A - 3 - SISTEMAS DE NUMERACION • • • LAS VARIABLES, EN GENERAL, PUEDEN EXPRESARSE O REPRESENTARSE SEGÚN DISTINTOS SISTEMAS DE NUMERACIÓN EL SISTEMA HABITUAL QUE SE EMPLEA DE FORMA COTIDIANA ES EL SISTEMA DIGITAL, QUE UTILIZA LOS SÍMBOLOS DEL 0 AL 9. HAY OTROS SISTEMAS DE NUMERACION QUE, AL TRABAJAR CON MÁQUINAS Y CON COMUNICACIONES, NOS APARECERÁN CONSTANTEMENTE » » » » » BINARIO BCD (BINARIO CODIFICADO DECIMAL) HEXADECIMAL COMA FLOTANTE ASCII Soporte Técnico Omron03A - 4 - SISTEMAS DE NUMERACION • EN GENERAL,CUANDO UNA CANTIDAD (Nª ENTERO) SE REPRESENTA MEDIANTE UN SISTEMA DE NUMERACIÓN DE BASE B, QUIERE DECIR : NB=XXXX N N 1 0 1 N = X B + X B + . . . . . . . . + X B + X B 0 1 N N 1 B Soporte Técnico Omron03A - 5 - CODIGO BINARIO • CODIGO BINARIO » UTILIZA LOS SIMBOLOS (1 y 0) PAEA REPRESENTAR CUALQUIER VALOR » LA FORMULA DE CONVERSION DE UN NUMERO DECIMAL A UN NUMERO BINARIO ES LA SIGUIENTE : N 1 N 0 N º D E C I M A L = Z x 2 + Z x 2 + . . . . . . . + Z x 2 N 1 0 N » DONDE ZN ES UNO DE LOS 2 VALORES EN BINARIO (0 ó 1) Soporte Técnico Omron03A - 6 - CODIGO BINARIO • CODIGO BINARIO » EJEMPLO: LA REPRESENTACION DEL Nº12 EN BINARIO SERÁ : 3 2 1 0 1 x 2 + 1 x 2 + 0 x 2 + 0 x 2 = 1 2 1 1 0 0 = 1 2 » EJEMPLO : REPRESENTAR EN BINARIO LOS Nº DECIMALES 16 Y 45. 1 5 3 2 0 4 16 45 Soporte Técnico 2 1 2 2 2 2 2 1 0 0 0 0 0 1 1 0 1 Omron03A - 7 - CODIGO HEXADECIMAL • CODIGO HEX » CODIGO MEDIANTE EL CUAL CADA NUMERO DEL SISTEMA » DECIMAL (0..9) SE REPRESENTA EN BINARIO (0,1). LA CONVERSION DIRECTA ES LA SIGUIENTE : HEXADECIMAL Soporte Técnico 0 1 2 3 4 5 6 7 8 9 A B C D E F BINARIO Omron03A - 8 - 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 CODIGO BCD • CODIGO BCD » CODIGO MEDIANTE EL CUAL CADA NUMERO DEL SISTEMA » DECIMAL (0..9) SE REPRESENTA EN BINARIO (0,1). LA CONVERSION DIRECTA ES LA SIGUIENTE : DECIMAL Soporte Técnico BINARIO(BCD) 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 Omron03A - 9 - Números en COMA FLOTANTE • COMA FLOTANTE 23 22 31 30 21 ………... 2 1 0 ... Signo Mantisa Mantisa Exponente e 1 2 7 S i g n o 2 3 N º D E C I M A L = ( 1 ) x 2 ( 1 + M a n t i s a x 2 ) » Signo (s) 1: negativo , 0: positivo (bit 31) » Mantisa (M) La mantisa incluye 23 bits (bit 0.. 22). » Representa la parte derecha de número decimal. Exponente (e) El exponente incluye 8 bits (bit 23..30). Soporte Técnico Omron03A - 10 - Números en COMA FLOTANTE • Se pueden expresar los números: • • • • • • • - (e=255, M=0, s=0) -3.402823·1038 ÷ -1.175494·10-38 0 (e=0) 1.175494·10-38 ÷ 3.402823·1038 (e=255, M=0, s=1) NaN (e=255, M0): Número no válido. No es necesario conocer el formato de estos números, sólo que ocupan 32 bits. Soporte Técnico Omron03A - 11 - Precauciones COMA FLOTANTE • • • • Las operaciones indeterminadas 0.0/0.0, /, dan como resultado NaN. Overflow (±) y Underflow (±0). Es más peligroso el Overflow al convertir el resultado a entero (binario con signo). Los decimales se truncan al convertirlos a entero (binario con signo). Cualquier operación con un NaN como operando da como resultado NaN. Soporte Técnico Omron03A - 12 - IEEE754 • Expresan números reales en 32 bits conforme al estándar IEEE754: • (-1)signo·2exponente-127·(1+Mantisa·2-23) • 1#10000000#11000000000000000000000 • • • • Signo: (-1)1= -1 Exponente: 2128-127=21=2 Mantisa: 1+6291456·2-23=1+0.75=1.75 Resultado: -1.75·2= -3.5 Soporte Técnico Omron03A - 13 - CODIGO ASCII • • • • CODIGO INTERNACIONAL CUYAS SIGLAS RESPONDEN A AMERICAN STANDAR CODE INFORMATION INTERCHANGE. HOY UTILIZADO EN COMUNICACIONES E INTERCAMBIO DE DATOS. EN ESTE CODIGO SE UTILIZAN 8 BIT’s PARA LA REPRESENTACION. Ejemplo : A = 41 = 0100 0001 5 = 35 = 0011 0101 > = 3E = 0011 1110 Soporte Técnico Omron03A - 14 - Tipos de variables en CX-P BOOL Variable de un bit, los posibles estados son 0-OFF y 1-ON. UINT Variable de una palabra en binario sin signo. INT Variable de una palabra en binario con signo. UINT_BCD Variable de una palabra en formato BCD (4 dígitos). UDINT Variable de dos palabras en binario sin signo. DINT Variable de dos palabras en binario con signo.. UDINT_BCD Variable de dos palabras en formato BCD (8 dígitos). ULINT Variable de cuatro palabras en binario sin signo. LINT Variable de cuatro palabras en binario con signo. ULINT_BCD Variable de cuatro palabras en formato BCD (16 dígitos). Soporte Técnico Omron03A - 15 - Tipos de variables en CX-P REAL NUMBER CHANNEL Soporte Técnico Variable de 2 palabras (32Bit) con formato en coma flotante (formato IEEE). Este formato se utiliza para las operaciones en coma flotante del del CVM1-V2 y del CS1. Constante numérica en formato decimal. El valor puede ser con signo o en coma flotante. No se trata de una variable, sino de un valor numérico a utilizar por la función. Variable de una palabra. Se utiliza para compatibilizar con anteriores programas y hace referencia a cualquier variable no booleana. CX-P no puede chequear si la variable está siendo utilizada para valores en BCD o en binario. Omron03A - 16 - COMPARACIÓN y MOVIMIENTO Soporte Técnico CMP, FUN(20)/1 (Serie C y CS1) LA INSTRUCCIÓN CMP REALIZA LA COMPARACIÓN ENTRE DOS DATOS DE 16 BIT, CONTENIDOS EN DOS CANALES. EL RESULTADO DE LA COMPRACIÓN SOLO SE REFLEJA EN UNOS RELES ESPECIALES DE ”<“, “=“, o “>”. “P_LT” Indicador de Menor Que (LT) “P_EQ” Indicador de iguales (EQ) “P_GT” Indicador de Mayor Que (GT) LAS ÁREAS DE DATOS UTILIZABLES EN LA COMPARACIÓN SON : — S:#, IR, SR, HR, TIM, CNT — D: IR, HR Soporte Técnico Omron03A - 18 - CMP, FUN(20)/2 SEGÚN LOS VALORES QUE TENGAN LOS DATOS A COMPARAR Cp1 Y Cp2 SE TIENEN LOS SIGUIENTES CASOS: DATOS RESULTADO P_LT P_EQ P_GT Cp1 < Cp2 Menor 1 0 0 Cp1 = Cp2 Igual 0 1 0 Cp1 > Cp2 Mayor 0 0 1 Soporte Técnico Omron03A - 19 - EJEMPLO CMP(20)/1, ALARMA DE RELOJ LAS HORAS MINUTOS Y SEGUNDOS ESTAN PREVIAMENTE PROGRAMADOS EN TRE CONTADORES C2, C1 Y C0. CANDO SE ALCANCE LAS HORAS, MINUTOS Y SEGUNDOS AJUSTADOS POR PROGRAMA, SE ACTIVARÁ LA SALIDA “2.00”. LA SALIDA SE DESACTIVARÁ AL PULSAR LE ENTRADA DE REPOSICIÓN “0.04”. Soporte Técnico Omron03A - 20 - EJEMPLO CMP(20)/2, ALARMA DE RELOJ SE PUEDE PROGRAMAR UNA SERIE DE COMPARACIONES EN CADENA. Soporte Técnico Omron03A - 21 - COMPARACIONES EN LINEA(CS1)/2 • Comparan dos datos S1 y S2. • Los datos a comparar pueden ser: • Formato: con o sin signo. • Longitud: de 1 (S1 con S2) ó 2 (S1 y S1+1 con S2 y S2+1) palabras. • Son instrucciones intermedias: Se pueden conectar como LD, AND y OR. Símbolo & Opciones S1 S2 Soporte Técnico Omron03A - 22 - COMPARACIONES EN LINEA (CS1)/1 •Hay disponibles un total de 24 instrucciones de comparación. Estas pueden utilizar varias combinaciones de símbolos y opciones. Si no se especifican opciones, la comparación será para un sólo canal sin signo. Los tipos básicos son: = Igual <> Diferente < Menor <= Menor o igual > Mayor >= Mayor o igual Cada tipo puede tener las opciones: S L SL (Ejemplos: LD=(300), #0, D0 Soporte Técnico SIN signo Signo Doble Longitud Doble Longitud con Signo. AND=S(302),-2, D0 ) Omron03A - 23 - COMPARACIONES EN LINEA(CS1)/3 Símbolo =(300) =L(301) =S(302) =SL(303) <>(305) <>L(306) <>S(307) <>SL(308) <(310) <L(311) <S(312) <SL(313) <=(315) <=L(316) <=S(317) <=SL(318) >(320) >L(321) >S(322) <SL(323) >=(325) >=L(326) >=S(327) >=SL(328) Soporte Técnico Formato -: Sin signo -: Sin signo S: Con signo S: Con signo -: Sin signo -: Sin signo S: Con signo S: Con signo -: Sin signo -: Sin signo S: Con signo S: Con signo -: Sin signo -: Sin signo S: Con signo S: Con signo -: Sin signo -: Sin signo S: Con signo S: Con signo -: Sin signo -: Sin signo S: Con signo S: Con signo Longitud -: 1 palabra L: 2 palabras -: 1 palabra -: 2 palabras -: 1 palabra L: 2 palabras -: 1 palabra -: 2 palabras -: 1 palabra L: 2 palabras -: 1 palabra -: 2 palabras -: 1 palabra L: 2 palabras -: 1 palabra -: 2 palabras -: 1 palabra L: 2 palabras -: 1 palabra -: 2 palabras -: 1 palabra L: 2 palabras -: 1 palabra -: 2 palabras Omron03A - 24 - .....COMPARACIONES EN LINEA (CS1) CON EL CS1 SE PUEDE PROGRAMAR UNA SERIE DE COMPARACIONES EN LINEA QUE DEN COMO RESULTADO LA ACTIVACIÓN DE LA ALARMA. ANTES: CMP(020) SERIE C AHORA: CS1 Soporte Técnico Omron03A - 25 - MOV, FUN(21) LA INSTRUCCIÓN MOV REALIZA EL MOVIMIENTO DE UN DATO DE 16 BIT, DESDE UN CANAL A OTRO. EL CONTENIDO DEL CANAL FUENTE S SE TRANSFIERE AL CANAL DESTINO D. LAS ÁREAS DE DATOS UTILIZABLES EN LA TRANSFERENCIA SON : — S:Fuente: CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR — D:Destino: CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR Soporte Técnico Omron03A - 26 - EJEMPLO. AJUSTE DEL RELOJ A LAS 14:30:00 AL PULSAR EL ENTRADA 0.05 SE PRODUCE EL MOVIMIENTO DE LOS DATOS 00, 30 Y 14 A LOS CONTADORES C0, C1 y C2. Soporte Técnico Omron03A - 27 - Direccionamientos Addessing Soporte Técnico Direccionamientos (Serie C y CS1) • Existen varios tipos de direccionamientos: » Inmediato (#, &) » Directo (CIO, W, H, A, T, C, D, E, En_) » Indirecto (D, E, En_) sustituye a IEMS(-) • Dirección en BCD (*D, *E, *En_) • Dirección en Binario (@D, @E, @En_) » Indirecto Indexado (IR) • • • • ,IR0 +234,IR0 DR0,IR0 ,IR0++ Soporte Técnico Omron03A - 29 - DIRECCIONAMIENTO INDIRECTO Cuando para un operando se especifica el área de DM, se puede utilizar una dirección indirecta. – Para diferenciar el direccionamiento de DM indirecto se coloca un asterisco delante de DM : *DM Cuando se especifica una dirección indirecta de DM, el canal DM designado contendrá la dirección del canal DM que contiene el dato que se utilizará como operando de la instrucción. Cuando se utilice direccionamiento indirecto, la dirección del canal deseado debe estar en BCD y debe especificar un canal comprendido en área de DM. Soporte Técnico Omron03A - 30 - DIRECCIONAMIENTO INDIRECTO Normalmente la variable especificada por una cierta instrucción es tal que la instrucción opera con el dato especificado en la variable especificada. TIM00 DM0011 #0432 DM0011 EN ESTE CASO SV = 432 El direccionamiento indirecto permite especificar un dato por la dirección de DM donde ése dato está contenido (la dirección es la variable contenida). TIM00 *DM0011 #0432 EN ESTE CASO SV = 150 DM0432 Soporte Técnico Omron03A - 31 - DM0011 #0150 DM0432 DIRECCIONAMIENTO INDIRECTO Ejemplo: Canal Contenido MOV(21) DM 0000 4C59 *DM 0001 DM 0001 1111 DM 0002 F35A DM 1111 5555 DM 1112 2506 DM 1113 D541 LR 00 Dirección indirecta Si se designa *DM 0001 como primer operando y LR 00 como segundo operando de MOV(21), los contenidos de DM0001 son 1111 y DM 1111 contiene 5555, el valor 5555 será movido a LR 00. Soporte Técnico Omron03A - 32 - Indica DM 1111. 5555 movido a LR 00. Direccionamiento Indirecto de DMs (CS1) Los DMs se pueden direccionar indirectamente de dos formas: 1) Direccionamiento en Modo-Binario (@D). Se puede direccionar todo el área de DMs (D00000 a D32767) con los valores en hexadecimal 0000 a 7FFF. @D00100 0100 D00256 Dirección que se utiliza 2) Direccionamiento en Modo-BCD (*D). En este modo sólo parte del área de DMs (D00000 a D09999) puede ser direccionada indirectamente con los valores BCD de 0000 a 9999. *D00100 0100 D00100 Dirección que se utiliza Soporte Técnico Omron03A - 33 - Ejemplos MOV(21) &12 W000 Escribe C (12 traducido a binario) en W000 Inmediato traducido a binario Directo MOV(21) #1A34 W000 Escribe 1A34 binario en W000 Inmediato binario Directo MOV(21) W000 W001 Escribe el contenido de W000 en W001 Directo Directo MOV(21) #1A *D00000 Escribe 1A en la dirección(BCD)indicada en D00000 Inmediato Indirecto BCD Soporte Técnico Omron03A - 34 - Ejemplos MOV(21) W000 @D00000 Escribe el contenido de W000 en la dirección (Binaria) indicada en D00000 Directo Indirecto Binario MOV(21) #1A ,IR0 Escribe 1A en la dirección indicada en IR0 Inmediato Indexado MOV(21) #1A +23,IR0 Escribe 1A en la dirección indicada en (IR0+23) Inmediato Indexado MOV(21) #1A DR0,IR0 Escribe 1A en la dirección indicada en (IR0+DR0) Inmediato Indexado Soporte Técnico Omron03A - 35 - Ejemplos MOV(21) #1A ,IR0+ MOV(21) #1A ,IR0++ MOV(21) #1A ,-IR0 MOV(21) #1A ,--IR0 Soporte Técnico Escribe 1A en la dirección indicada en IR0 y aumenta IR0 una unidad Inmediato Indexado Escribe 1A en la dirección indicada en IR0 y aumenta IR0 dos unidades Inmediato Indexado Escribe 1A en la dirección indicada en (IR0-1) y disminuye IR0 una unidad Inmediato Indexado Escribe 1A en la dirección indicada en (IR0-2) y disminuye IR0 dos unidades Inmediato Indexado Omron03A - 36 - DIRECCIONAMIENTO INDIRECTO EJEMPLO ALMACENAR LA TEMPERATURA EN UN HORNO CADA 15 SEG. Y DURANTE 2 HRS., TIEMPO DE DURACIÓN DEL PROCESO. DATOS Tº ENTRADA ANALÓGICA: CANAL 101 INICIO DATOS: DM 0001 Soporte Técnico Omron03A - 37 - CONVERSION DE FORMATO DE DATOS Soporte Técnico BIN(023) - BCD a Binario •Convierte el contenido BCD de S a su equivalente en binario y lo envía a R. Sólo cambia el contenido de R, el contenido de S permanece inalterable. Rango: S:Canal fuente: CIO, W, H, A, T, C, D, E, E?_, @D @E, @E?_, *D, *E, *E?_, DR, ,IR R: Canal de resultado:CIO, W, H, A, T, C, D, E, E?_, @D @E, @E?_, *D, *E, *E?_, DR, ,IR Soporte Técnico Omron03A - 39 - BCD(024) - Binario a BCD •BCD(24) convierte el contenido binario (hexadecimal) de S a su equivalente en BCD y lo envía a R. Sólo cambia el contenido de R; el contenido de S permanece inalterable. Rango: S:Canal fuente: CIO, W, H, A, T, C, D, E, E?_, @D @E, @E?_, *D, *E, *E?_, DR, ,IR R: Canal de resultado:CIO, W, H, A, T, C, D, E, E?_, @D @E, @E?_, *D, *E, *E?_, DR, ,IR Soporte Técnico Omron03A - 40 - SIGN(600)-(CS1) • 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 Soporte Técnico @SIGN(600) S R Omron03A - 41 - BINS(470) -(CS1) • 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 Soporte Técnico @BINS(470) C S R Omron03A - 42 - BINS(470) - (CS1) C=0000 (-999 a 999) 000 1 xxxx xxxx xxxx El bit 12 de S indica el signo (1 negativo). Los bits 13 a 15 deben ser 0. C=0001 (-7999 a 7999) 1 xxx xxxx xxxx xxxx El bit 15 de S indica el signo (1 negativo). C=0002 (-999 a 9999) F,0-9 xxxx xxxx xxxx El signo se indica en S: F negativo o 0-9 positivo Los valores A-E dan error. C=0003 (-1999 a 9999) FA,0-9 xxxx xxxx xxxx Soporte Técnico El signo se indica en S: F=- y A=-1 o 0-9 positivo Los valores B-E dan error. Omron03A - 43 - BISL(472) - (CS1) • 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 Soporte Técnico @BISL(472) C S R Omron03A - 44 - BISL(472) - (CS1) C=0000 (-999 9999 a 999 9999) 000 1 xxxx xxxx xxxx El bit 12 de S+1 indica el signo (1 negativo). Los bits 13 a 15 deben ser 0. C=0001 (-7999 9999 a 7999 9999) 1 xxx xxxx xxxx xxxx El bit 15 de S+1 indica el signo (1 negativo). C=0002 (-999 9999 a 9999 9999) F,0-9 xxxx xxxx xxxx El signo se indica en S+1: F negativo o 0-9 positivo Los valores A-E dan error. C=0003 (-1999 9999 a 9999 9999) FA,0-9 xxxx xxxx xxxx Soporte Técnico El signo se indica en S+1: F=- y A=-1 o 0-9 positivo Los valores B-E dan error. Omron03A - 45 - BCDS(471) - (CS1) • 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 Soporte Técnico @BCDS(471) C S R Omron03A - 46 - BDSL(473) - (CS1) • 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 Soporte Técnico @BDSL(473) C S R Omron03A - 47 - Limitaciones BCDS y BDSL - (CS1) • En BCDS el dato S está limitada según C: • • • • C=0 C=1 C=2 C=3 FC19 a FFFF y 0000 a 03E7 F0C1 a FFFF y 0000 a 1F3F FC19 a FFFF y 0000 a 270F F831 a FFFF y 0000 a 270F • En BDSL el dato S está limitada según C: • • • • C=0 C=1 C=2 C=3 Soporte Técnico FF67 6981 a FFFF FFFF y 0 a 0098 967F FB3B 4C01 a FFFF FFFF y 0 a 04C4 B3FF FF67 6981 a FFFF FFFF y 0 a 05F5 E0FF FECE D301 a FFFF FFFF y 0 a 05F5 E0FF Omron03A - 48 - OPERACIONES ARITMETICAS Soporte Técnico STC / CLC, FUN 40 / 41 FUNCIÓN: ESTAS INSTRUCCIONES GESTIONAN EL FLAG DE ACARREO, O FLAG CY. EL FLAG CY SE UTILIZA EN LAS OPERACIONES MATEMÁTICAS, PARA DETECTAR: – EXISTENCIA DE OVERFLOW EN EL RESULTADO DE UNA SUMA (ADD) – EXISTENCIA DE RESULTADO NEGATIVO EN UNA SUBSTRACCIÓN (SUB) LD 0000 STC(40) LD NOT 0000 CLC(41) Soporte Técnico LD 1904 OUT 1000 Omron03A - 50 - SUMA BDC: ADD, FUN(30) /1 (Série C) LA INSTRUCCIÓN ADD EJECUTA LA SUMA ENTRE DOS DATOS DE 16 BIT (CANALES Y/O CONSTANTES) EN FORMATO BCD AL RESULTADO SE LE SUMA EL ACARREO SUMANDO 1 SI CY= ON LOS PARÁMETROS DE LAS INSTRUCCIONES SON 3: – A1,A2 = SUMANDOS (#, IR, SR, HR, TIM, CNT) –R= RESULTADO (IR, HR) = A1+A2+CY LD 0000 STC(40) A1 A2 ADD(30) HR00 #0001 HR00 R Soporte Técnico Omron03A - 51 - SUMA BDC: ADD, FUN(30) /2 (Série C) EN EL CASO DE ACARREO (CY = 1), LA SUMA DE LOS DOS SUMANDOS HA SUPERADO EL LÍMITE 9999. EL RESULTADO EFECTIVO ES ENTONCES 10000+R EN EL CASO DE SUMA CON 8 O MÁS CIFRAS BCD, (SUMA COMBINADA) SE DEBERÁ RESETEAR CY SÓLO PARA LA PRIMERA SUMA. SI EL RESULTADO DE LA OPERACIÓN SUMA ES = 0, ENTONCES EL FLAG EQ = 1 SI LOS SUMANDOS NO ESTÁN EN FORMATO BCD, LA OPERACIÓN NO SE EJECUTA Y ENTONCES ER = 1 Soporte Técnico Omron03A - 52 - RESTA BDC: SUB, FUN(31) /1 (Série C) LA INSTRUCCIÓN SUB EJECUTA LA SUBSTRACCIÓN DE DOS DATOS DE 16 BIT EN FORMATO BCD AL RESULTADO SE LE RESTA EL ACARREO O BIEN SE LE SUMA -1 SI CY = ON LOS PARÁMETROS DE LA INSTRUCCIÓN SON 3: – Mi = MINUENDO (#, IR, SR, HR, TIM, CNT) – Su = SUSTRAENDO (#, IR, SR, HR, TIM, CNT) – R = RESULTADO (IR, HR) = Mi - Su - CY LD 0000 STC(40) Mi SUB(31) Su R Soporte Técnico Omron03A - 53 - #0100 00 05 RESTA BDC: SUB, FUN(31) /2 (Série C) SEGÚN LOS VALORES QUE TENGAN Mi Y Su, SE TIENEN LOS SIGUIENTES CASOS: DATOS RESULTADO CY EQ Mi > Su R= Mi - Su 0 0 0 1 1 0 Mi = Su Mi < Su R= 0 R= Mi + (10000-Su) SI Mi Y Su NO ESTÁN EN EL FORMATO BCD, LA OPERACIÓN NO SE EJECUTA, Y ER = 1 Soporte Técnico Omron03A - 54 - EJEMPLO DE PROGRAMACIÓN (Série C) SUMA DE DATOS DE HASTA 8 DÍGITOS APLICACIÓN: SE TRATA DE SUMAR DOS DATOS QUE PUEDEN TENER UNA LONGITUD DE HASTA 8 DÍGITOS. ESTE PROGRAMA PUEDE LLEVARSE A CABO UTILIZANDO DIRECTAMENTE LA INSTRUCCIÓN DE SUMA DE DOBLE LONGITUD PERO LO HAREMOS USANDO LA INSTRUCCIÓN ADD NORMAL. LOS DATOS A SUMAR SON LOS SIGUIENTES: – DATO A: – DATO B: 4 DÍGITOS MAYORES DM1 4 DÍGITOS MENORES DM0 4 DÍGITOS MAYORES DM3 4 DÍGITOS MENORES DM2 EL RESULTADO SE GUARDARÁ EN : – DÍGITO NUM 9 – 4 DÍGITOS MAYORES – 4 DÍGITOS MENORES DM6 DM5 DM4 El programa debe poder detectar si alguno de los datos A o B no está en formato BCD. Utilizar el CARRY en las instrucciones suma. Soporte Técnico Omron03A - 55 - MULTIPLICACIÓN BCD: MUL, FUN(32) (Série C) FUNCIÓN: MULTIPLICA EL CONTENIDO DE LOS DATOS ESPECIFICADOS EN LA INSTRUCCIÓN (EN BCD) Y EL RESULTADO SE TRANSFIERE A UN REGISTRO. MUL A B A, B = CANALES /CONSTANTES R= C Soporte Técnico Omron03A - 56 - REGISTRO RESULTADO MULTIPLICACIÓN BCD: MUL, FUN(32) (Série C) 3300 MUL 10 #0021 DM100 0034 CH 10 X 0021 = 714 Soporte Técnico DM100= (CH 10) X 21 Omron03A - 57 - DIVISIÓN BCD: DIV, FUN(33) (Série C) FUNCIÓN: DIVIDE EL CONTENIDO DE LOS DATOS ESPECIFICADOS EN LA INSTRUCCIÓN (EN BCD) Y EL RESULTADO SE TRANSFIERE A DOS REGISTROS (COCIENTE Y RESTO). DIV A= DIVIDENDO A B= DIVISOR R= COCIENTE R+1 = RESTO B C Soporte Técnico A, B = CANAL / CONSTANTE Omron03A - 58 - DIVISIÓN BCD: DIV, FUN(33) (Série C) 3300 DIV 10 #4 LR10 133 CH 10 (CH 10) = (LR 10) X 4 + LR 11 4 Soporte Técnico 33 LR 10 1 LR 11 Omron03A - 59 - OPERACIONES ARITMETICAS (CS1)/1 +(400), +L(401), +C(402), +CL(403) - Suma Binaria +B(404), +BL(405), +BC(406), +BCL(407) - Suma BCD +F(454) - Suma Coma Flotante +D(845) - Doble Suma en coma flotante -(410), -L(411), -C(412), -CL(413) - Resta Binaria -B(414), -BL(415), -BC(416), -BCL(417) - Resta BCD -F(455) - Resta Coma Flotante -D(846) - Resta en coma flotante de doble precisión Soporte Técnico Omron03A - 60 - +(400) y +B(404) • • Suma 2 números binarios o BCD de 16 bits. • Au: Palabra del primer sumando. • Ad: Plabra del segundo sumando. • R: Palabra del resultado. El rango para +(400) es de -32.768 a 32.767. Para +B(404) es de 0000 a 9999 Binario +(400) Au Ad R Soporte Técnico BCD +B(404) Au Ad R Omron03A - 61 - -(410) y -B(414) • • • Resta 2 números binarios o BCD de 16 bits. • Mi: Palabra del Minuendo. • Su: Palabra del Sustraendo. • R: Palabra del resultado. El rango para +(400) es de -32.768 a 32.767. Para +B(404) es de 0000 a 9999. Si el resultado es negativo, el acarreo se activa y el complemento a 10 del resultado actual es puesto en R -(410) Mi Su R Soporte Técnico -B(414) Mi Su R Omron03A - 62 - +, - Ejemplo +(400) D00000 D00001 D00100 -(410) D00000 D00001 D00100 Soporte Técnico D00000 0000 0000 0110 0000 D00001 0000 0000 0010 0000 96 32 D00100 0000 0000 1000 0000 128 D00100 0000 0000 0100 0000 64 Omron03A - 63 - +B, -B Ejemplo 0 0 6 0 D00000 0000 0000 0110 0000 D00001 0000 0000 0010 0000 0 0 2 0 +B(404) D00000 D00001 D00100 -B(414) D00000 D00001 D00100 Soporte Técnico 60 20 0 0 8 0 D00100 0000 0000 1000 0000 80 0 0 4 0 D00100 0000 0000 0100 0000 40 Omron03A - 64 - OPERACIONES ARITMETICAS (CS1)/2 *(420), *L(421), *U(422), *UL(423) - Multiplicación Binaria *B(424), *BL(425) - Multiplicación BCD *F(456) - Multiplicación Coma Flotante *D(847) - Multiplicación en coma flotante doble /(430), /L(431), /U(432), /UL(433) - División Binaria /B(434), /BL(435) - División BCD /F(457) - División Coma Flotante /D(848) - División en coma flotante doble Soporte Técnico Omron03A - 65 - *(420) y *B(424) • • Multiplica 2 números binarios o BCD de 16 bits. • Md: Palabra del Multiplicando. • Mr: Palabra del Multiplicador. • R: Palabra del Resultado. El resultado ocupa dos Palabras R y R+1 *(420) Md Mr R Soporte Técnico *B(424) Md Mr R Omron03A - 66 - /(430) y /B(434) • • • Multiplica números binarios o BCD de 16 bits. • Dd: Primera palabra del Dividendo. • Dr: Primera palabra del Divisor. • R: Primera palabra del Resultado. El resultado ocupa dos Palabras R y R+1 Palabra R: Cociente Palabra R+1: Resto /(430) Dd Dr R Soporte Técnico /B(434) Dd Dr R Omron03A - 67 - *, / Ejemplo *(420) D00000 D00001 D00100 /(430) D00000 D00001 D00100 Soporte Técnico D00000 0000 0000 0110 0000 D00001 0000 0000 0010 0000 96 32 D00100 0000 1100 0110 0000 D00101 0000 0000 0000 0000 3072 0 D00100 0000 0000 0000 0011 D00101 0000 0000 0010 0000 3 0 Omron03A - 68 - *B, /B Ejemplo 0 0 6 0 D00000 0000 0000 0110 0000 D00001 0000 0000 0010 0000 0 0 2 0 *B(424) D00000 D00001 D00100 /B(434) D00000 D00001 D00100 Soporte Técnico 60 20 1 2 0 0 D00100 0001 0010 0000 0000 D00101 0000 0000 0000 0000 1200 0 0 0 0 3 D00100 0000 0000 0000 0011 D00101 0000 0000 0010 0000 3 0 Omron03A - 69 - Instrucciones en Coma Flotante Números reales en coma flotante. Soporte Técnico Números en Coma Flotante • Se pueden expresar los números: • • • • • • - (e=255, f=0, s=0) -3.402823·1038 ÷ -1.175494·10-38 0 (e=0) 1.175494·10-38 ÷ 3.402823·1038 (e=255, f=0, s=1) NaN (e=255, f0): Número no válido. • No es necesario conocer el formato de estos números, sólo que ocupan 32 bits. Soporte Técnico Omron03A - 71 - Precauciones Coma Flotante • Las operaciones indeterminadas 0.0/0.0, • • • /, - dan como resultado NaN. Overflow (±) y Underflow (±0). Es más peligroso el Overflow al convertir el resultado a entero (binario con signo). Los decimales se truncan al convertirlos a entero (binario con signo). Cualquier operación con un NaN como operando da como resultado NaN. Soporte Técnico Omron03A - 72 - IEEE754 • Expresan números reales en 32 bits conforme al estándar IEEE754: • f: Mantisa • e: Exponente • s: Signo 23 bits 8 bits 1 bit bit 0 al 22 bit 23 al 30 bit 31 • (-1)s·2e-127·(1+f·2-23) • 1#10000000#11000000000000000000000 • • • • Signo: (-1)1= -1 Exponente: 2128-127=21=2 Mantisa: 1+6291456·2-23=1+0.75=1.75 Resultado: -1.75·2= -3.5 Soporte Técnico Omron03A - 73 - Instrucciones Coma Flotante • Se pueden realizar las siguientes: • • • • • Conversión: FIX, FIXL, FLT, FLTL Operaciones: +F, -F, *F, /F, SQRT, PWR Conversiones angulares: RAD, DEG Angulares: SIN, COS, TAN, ASIN, ACOS, ATAN En base e: LOG, EXP • Los operandos deben ser Nos en • formato coma flotante IEEE754. No es necesario conocer este formato, sólo que ocupan 32 bits. Soporte Técnico Omron03A - 74 - 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 Soporte Técnico @FIX(450) S R Omron03A - 75 - 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 Soporte Técnico @FIXL(451) S R Omron03A - 76 - FIX, FIXL Ejemplo FIX(450) D00000 D00100 D00000 0000000000000000 3.5 D00001 0100000001100000 D00100 0000000000000011 FIXL(451) D00002 D00102 3 D00002 0000000000000000 -58.720.256 D00003 1100110001100000 D00102 0000000000000000 -58.720.256 D00103 1111110010000000 Soporte Técnico Omron03A - 77 - 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 Soporte Técnico @FLT(452) S R Omron03A - 78 - 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 Soporte Técnico @FLTL(453) S R Omron03A - 79 - FLT, FLTL Ejemplo FLT(452) D00100 D00000 FLTL(453) D00102 D00002 D00000 0000000000000000 3 D00001 0100000001000000 D00100 0000000000000011 3 D00002 0000000000000000 -58.720.256 D00003 1100110001100000 D00102 0000000000000000 -58.720.256 D00103 1111110010000000 Soporte Técnico Omron03A - 80 - +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 Soporte Técnico @+F(454) Au Ad R Omron03A - 81 - -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 Soporte Técnico @-F(455) Mi Su R Omron03A - 82 - +F, -F Ejemplo D00000 D00001 D00002 D00003 +F(454) D00000 D00002 D00100 -F(455) D00000 D00002 D00100 Soporte Técnico 0000 0000 0000 0000 0100 0000 0110 0000 3.5 0000 0000 0000 0000 0100 0000 1100 0000 6 3.5 D00100 0000 0000 0000 0000 +6 D00101 0100 0001 1110 0000 9.5 3.5 D00100 0000 0000 0000 0000 - 6 D00101 1100 0000 0010 0000 -2.5 Omron03A - 83 - *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 Soporte Técnico @*F(456) Md Mr R Omron03A - 84 - /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 Soporte Técnico @/F(457) Dd Dr R Omron03A - 85 - *F, /F Ejemplo D00000 D00001 D00002 D00003 *F(456) D00000 D00002 D00100 /F(457) D00000 D00002 D00100 Soporte Técnico 0000 0000 0000 0000 0100 0000 0110 0000 3.5 0000 0000 0000 0000 0100 0000 1100 0000 6 3.5 D00100 0000 0000 0000 0000 * 6 D00101 0100 0001 1011 0000 21 3.5 D00100 0101 0101 0101 0101 ÷ 6 D00101 0011 1111 0101 1010 0.583333 Omron03A - 86 - OPERACIONES LÓGICAS ENTRE PALABRAS Soporte Técnico ANDW(34) y @ANDW(34) REALIZA LA OPERACIÓN LOGICA “AND” BIT A BIT ENTRE LOS 16 BITS CONTENIDOS DE DOS CANALES Op1 y Op2 Y PONE EL RESULTADO EN OTRO CANAL Res. SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE “EQUAL” P_EQ = ON LOS PARÁMETROS DE LA INSTRUCCION SON 3: Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR Op1 0101 0101 0101 0101 Op2 1111 1111 0000 0000 Res 0101 0101 0000 0000 BORRAR Soporte Técnico Omron03A - 88 - ORW(35) y @ORW(35) REALIZA LA OPERACIÓN LOGICA “OR” BIT A BIT ENTRE LOS 16 BITS CONTENIDOS DE DOS CANALES Op1 y Op2 Y PONE EL RESULTADO EN OTRO CANAL Res. SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE “EQUAL” P_EQ = ON LOS PARÁMETROS DE LA INSTRUCCION SON 3: Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR Op1 0101 0101 0101 0101 Op2 1111 1111 0000 0000 Res 1111 1111 0101 0101 ACTIVAR Soporte Técnico Omron03A - 89 - XORW(36) y @XORW(36) REALIZA LA OPERACIÓN LOGICA “XOR” BIT A BIT ENTRE LOS 16 BITS CONTENIDOS DE DOS CANALES Op1 y Op2 Y PONE EL RESULTADO EN OTRO CANAL Res. SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE “EQUAL” P_EQ = ON LOS PARÁMETROS DE LA INSTRUCCION SON 3: Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR Op1 0101 0101 0101 0101 Op2 1111 1111 0000 0000 Res 1010 1010 0101 0101 INVERTIR BUSCAR BITs DIFERENTES Soporte Técnico Omron03A - 90 - XNORW(37) y @XNORW(37) REALIZA LA OPERACIÓN LOGICA “XOR NEGADA” BIT A BIT ENTRE LOS 16 BITS CONTENIDOS DE DOS CANALES Op1 y Op2 Y PONE EL RESULTADO EN OTRO CANAL Res. SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE “EQUAL” P_EQ = ON LOS PARÁMETROS DE LA INSTRUCCION SON 3: Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR Op2:Entrada 2 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, #, DR, ,IR Res:Resultado CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR Op1 0101 0101 0101 0101 Op2 1111 1111 0000 0000 Res 0101 0101 1010 1010 INVERTIR BUSCAR BITs IGULES Soporte Técnico Omron03A - 91 - COM(29) y @COM(29) REALIZA LA OPERACIÓN LOGICA “NEGACION” (COMPLEMENTO) BIT A BIT ENTRE LOS 16 BITS CONTENIDOS EN EL CANAL Op1 Y PONE EL RESULTADO EN EL MISMO CANAL. SI EL RESULTADO ES 0000, SE ACTIVA EL INDICADOR DE “EQUAL” P_EQ = ON LOS PARÁMETROS DE LA INSTRUCCION SON: Op1:Entrada 1 CIO, W, H, A, T, C, D, E, E?_, @D, @E, @E?_, *D, *E, *E?_, DR, ,IR Op1 0101 0101 0101 0101 Res(Op1) 1010 1010 1010 1010 Soporte Técnico Omron03A - 92 - Desplazamiento y rotación De todos o N bits en una y dos palabras Soporte Técnico Desplazamiento y rotación Desplazamiento Rotación Rotación sin Carry Soporte Técnico 1 Canal ASL(025) ASR(026) ROL(027) ROR(028) RLNC(574) RRNC(575) Omron03A - 94 - 2 Canales ASLL(570) ASRL(571) ROLL(572) RORL(573) RLNL(576) RRNL(577) De N bits 1 Canal Desplazamiento NASL(580) de N bits NASR(581) Desplazamiento NSFL(578) de N bits como dato NSFR(579) Soporte Técnico Omron03A - 95 - 2 Canales NSLL(582) NSRL(583) 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 Soporte Técnico @NASL(580) D C Omron03A - 96 - NASL(580) ejemplo C: Palabra de control. 15 12 7 0 Nº de bits a desplazar en hexadecimal 00…10Hex. Siempre a 0. Dato que se introduce por la derecha: 0: introduce 0. 8: introduce el valor que tenga el bit 0. Perdidos NASL(580) 0100 #0004 Soporte Técnico CH 100 → 1011000110011111 CY 1 0001100111110000 Omron03A - 97 - 0 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 Soporte Técnico @NSLL(582) D C Omron03A - 98 - 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 Soporte Técnico @NASR(581) D C Omron03A - 99 - NASR(581) ejemplo C: Palabra de control. 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. Perdidos NASR(581) 0100 #0004 Soporte Técnico 0 1011000110011111 ←CH 100 CY 0000101100011001 Omron03A - 100 - 1 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 Soporte Técnico @NSRL(583) D C Omron03A - 101 - 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 Soporte Técnico @NSFL(578) D C R Omron03A - 102 - 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 Soporte Técnico @NSFL(578) D C R Omron03A - 103 - NSFL NSFR ejemplo Bits 3 a 12 NSFL(578) 0100 &3 &11 CH 100 → 1011000110011111 CY 1 1010001100110111 Bits 3 a 12 NSFR(579) 0100 &3 &11 Soporte Técnico 0 1011000110011111 ←CH 100 CY 1010100011001111 Omron03A - 104 - 1 0 Incrementar Decrementar Autoincremento y Autodecremento Soporte Técnico ++(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 ++(590) Wd @++(590) Wd ++L(591) Wd @++L(591) Wd Soporte Técnico Omron03A - 106 - --(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 --(592) Wd @--(592) Wd --L(593) Wd @--L(593) Wd Soporte Técnico Omron03A - 107 - Binario Ejemplos ++(590) D00000 D0 0019 +1 ++L(591) D00000 D0 0019 --(592) D00000 D0 001A -1 --L(593) D00000 D0 001A Soporte Técnico D0 001A D1 FFFF +1 D0 001A D1 0000 D0 0019 D1 FFFF D0 0019 D1 0000 -1 Omron03A - 108 - ++B(594) ++BL(595) • ++B incrementa en BCD la palabra de 4 • dígitos Wd en una unidad. ++BL incrementa en BCD la palabra de 8 dígitos Wd en una unidad. • Wd: Palabra a incrementar ++B(594) Wd @++B(594) Wd ++BL(595) Wd @++BL(595) Wd Soporte Técnico Omron03A - 109 - --B(596) --BL(597) • --B decrementa en BCD la palabra de 4 • dígitos Wd en una unidad. --BL decrementa en BCD la palabra de 8 dígitos Wd en una unidad. • Wd: Palabra a incrementar --B(596) Wd @--B(596) Wd --BL(597) Wd @--BL(597) Wd Soporte Técnico Omron03A - 110 - BCD Ejemplos ++B(594) D00000 ++BL(595) D00000 --B(596) D00000 --BL(597) D00000 Soporte Técnico D0 0019 +1 D0 0019 D1 9999 +1 D0 0020 -1 D0 0020 D0 0020 D0 0020 D1 0000 D0 0019 D1 9999 D0 0019 D1 0000 -1 Omron03A - 111 - DESPLAZAMIENTO Y ROTACIÓN serie C y CS1 1Bit Y Dígitos (4 bits) Soporte Técnico Desplaza BITS: ASL(025) ASR(026) • ASL(025) introduce un 0 y desplaza un bit • a la izquierda el contenido de un canal. ASR(026) introduce un 0 y desplaza un bit a la derecha el contenido de un canal. • El bit saliente pasa al Flag de carry (CY) ASL(025) Wd ASR(026) Wd Soporte Técnico Omron03A - 113 - Rotar BITS: ROL(027) ROR(028) • ROL(025) Rota un bit a la izquierda un • canal pasando el bit15 al CY y el CY al bit0 ROR(026) Rota un bit a la derecha un canal pasando el bit0 al CY y el CY al bit15 • La rotación siempre es a través del Carry ROL(027) Wd ROR(028) Wd Soporte Técnico Omron03A - 114 - Desplaza Digito: SLD(074) SRD(075) • SLD(074) introduce cuatro 0 y desplaza un • Digito a la izquierda un canal. SRD(075) introduce cuatro 0 y desplaza un Digito a la derecha un canal. • St: Canal inicial E: Canal final DATO PERDIDO DATO PERDIDO Soporte Técnico Omron03A - 115 -
© Copyright 2025