Tipos de variables en CX-P
Tipos de variables en CX-P REAL 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. NUMBER 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. CHANNEL 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.
COMPARACIÓN y MOVIMIENTO
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
CMP, FUN(20)/2 SEGÚN LOS VALORES QUE TENGAN LOS DATOS A COMPARAR Cp1 Y Cp2 SE TIENEN LOS SIGUIENTES CASOS: RESULTADO P_EQ P_GT DATOS Cp1 < Cp2 Cp1 = Cp2 Cp1 > Cp2 Menor Igual Mayor 0 1 0 0 0 1 P_LT 1 0 0
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".
EJEMPLO CMP(20)/2, ALARMA DE RELOJ SE PUEDE PROGRAMAR UNA SERIE DE COMPARACIONES EN CADENA.
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. (Gp:) Símbolo & Opciones S1 S2
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 (Ejemplos: LD=(300), #0, D0 AND=S(302),-2, D0 ) COMPARACIONES EN LINEA (CS1)/1 Cada tipo puede tener las opciones:
SIN signo S Signo L Doble Longitud SL Doble Longitud con Signo.
COMPARACIONES EN LINEA(CS1)/3 (Gp:) Símbolo Formato Longitud =(300) -: Sin signo -: 1 palabra =L(301) -: Sin signo L: 2 palabras =S(302) S: Con signo -: 1 palabra =SL(303) S: Con signo -: 2 palabras < >(305) -: Sin signo -: 1 palabra < >L(306) -: Sin signo L: 2 palabras < >S(307) S: Con signo -: 1 palabra < >SL(308) S: Con signo -: 2 palabras < (310) -: Sin signo -: 1 palabra < L(311) -: Sin signo L: 2 palabras < S(312) S: Con signo -: 1 palabra < SL(313) S: Con signo -: 2 palabras < =(315) -: Sin signo -: 1 palabra < =L(316) -: Sin signo L: 2 palabras < =S(317) S: Con signo -: 1 palabra < =SL(318) S: Con signo -: 2 palabras >(320) -: Sin signo -: 1 palabra >L(321) -: Sin signo L: 2 palabras >S(322) S: Con signo -: 1 palabra < SL(323) S: Con signo -: 2 palabras >=(325) -: Sin signo -: 1 palabra >=L(326) -: Sin signo L: 2 palabras >=S(327) S: Con signo -: 1 palabra >=SL(328) S: Con signo -: 2 palabras
…..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
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
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.
Direccionamientos SubAddessing
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++
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.
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 DM0011 EN ESTE CASO SV = 150 #0150 DM0432 DM0432
DIRECCIONAMIENTO INDIRECTO Ejemplo: MOV(21) *DM 0001 LR 00 DM 0000 DM 0001 DM 0002 DM 1111 DM 1112 DM 1113 4C59 1111 F35A 5555 2506 D541 Canal Contenido Dirección indirecta Indica DM 1111. 5555 movido a LR 00. 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.
Direccionamiento Indirecto de DMs (CS1) ? Los DMs se pueden direccionar indirectamente de dos formas: @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 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.
Ejemplos (Gp:) MOV(21) Escribe el contenido de W000 en W001 W000 Directo W001 Directo
(Gp:) MOV(21) Escribe C (12 traducido a binario) en W000 &12 Inmediato traducido a binario W000 Directo
MOV(21) #1A Inmediato *D00000 Indirecto BCD (Gp:) MOV(21) Escribe 1A34 binario en W000 #1A34 Inmediato binario W000 Directo
(Gp:) Escribe 1A en la dirección(BCD)indicada en D00000
Ejemplos (Gp:) MOV(21) W000 Directo @D00000 Indirecto Binario
(Gp:) 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 (Gp:) MOV(21) Escribe 1A en la dirección indicada en IR0 #1A Inmediato ,IR0 Indexado
(Gp:) MOV(21) Escribe 1A en la dirección indicada en (IR0+23) #1A Inmediato +23,IR0 Indexado
Ejemplos (Gp:) MOV(21) #1A Inmediato ,–IR0 Indexado
Escribe 1A en la dirección indicada en (IR0-2) y disminuye IR0 dos unidades (Gp:) MOV(21) #1A Inmediato ,-IR0 Indexado
Escribe 1A en la dirección indicada en (IR0-1) y disminuye IR0 una unidad (Gp:) MOV(21) #1A Inmediato ,IR0++ Indexado
Escribe 1A en la dirección indicada en IR0 y aumenta IR0 dos unidades (Gp:) MOV(21) #1A Inmediato ,IR0+ Indexado
Escribe 1A en la dirección indicada en IR0 y aumenta IR0 una unidad
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
CONVERSIONDE FORMATO DE DATOS
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
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
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 (Gp:) SIGN(600) S R
(Gp:) @SIGN(600) S R
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. (Gp:) @BINS(470) C S R
(Gp:) BINS(470) C S R
BINS(470) – (CS1) 1 xxx xxxx xxxx xxxx El bit 15 de S indica el signo (1 negativo). C=0001 (-7999 a 7999) 000 1 xxxx xxxx xxxx El 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 xxxx El 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 xxxx El signo se indica en S: F negativo o 0-9 positivo Los valores A-E dan error. C=0002 (-999 a 9999)
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.
(Gp:) @BISL(472) C S R
(Gp:) BISL(472) C S R
BISL(472) – (CS1) 1 xxx xxxx xxxx xxxx El bit 15 de S+1 indica el signo (1 negativo). C=0001 (-7999 9999 a 7999 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=0000 (-999 9999 a 999 9999) FA,0-9 xxxx xxxx xxxx El signo se indica en S+1: F=- y A=-1 o 0-9 positivo Los valores B-E dan error. C=0003 (-1999 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=0002 (-999 9999 a 9999 9999)
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) (Gp:) @BCDS(471) C S R
(Gp:) BCDS(471) C S R
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) (Gp:) @BDSL(473) C S R
(Gp:) BDSL(473) C S R
Limitaciones BCDS y BDSL – (CS1) En BCDS el dato S está limitada según C: C=0 FC19 a FFFF y 0000 a 03E7 C=1 F0C1 a FFFF y 0000 a 1F3F C=2 FC19 a FFFF y 0000 a 270F C=3 F831 a FFFF y 0000 a 270F En BDSL el dato S está limitada según C: C=0 FF67 6981 a FFFF FFFF y 0 a 0098 967F C=1 FB3B 4C01 a FFFF FFFF y 0 a 04C4 B3FF C=2 FF67 6981 a FFFF FFFF y 0 a 05F5 E0FF C=3 FECE D301 a FFFF FFFF y 0 a 05F5 E0FF
Página anterior | Volver al principio del trabajo | Página siguiente |