SlideShare una empresa de Scribd logo
1 de 257
Soporte Técnico 1
Instrucciones de CS1
Nuevas instrucciones
2Soporte Técnico
Índice
• Formato instrucciones
• Direccionamientos
• Tareas
• Interrupciones
• Temporizadores
• Bloques de programa
• Tablas de datos
• Cadenas de caracteres
• Saltos
• Instrucciones de Lazo FOR-NEXT
• Desplazar/Rotar
• Increment/Decrement
• Comparación
• Conversión
• Coma Flotante
• Calendario
• Ficheros de Memoria
• Control de datos
• Comunicaciones
• Cambios en Intrucc.
Soporte Técnico 3
Formato instrucciones
Flancos de subida y bajada
Refresco inmediato
Soporte Técnico 4
Formato de instrucciones
• Flanco de subida @
• La instrucción se ejecuta con el flanco de subida de
la condición de ejecución.
• La entrada se activa con el flanco de subida.
• Flanco de bajada %
• La instrucción se ejecuta con el flanco de bajada de
la condición de ejecución.
• La entrada se activa con el flanco de bajada.
• Refresco inmediato !
• La instrucción hace un refresco de las variables al
ejecutarse.
• Puede combinar el flanco de subida o bajada.
Soporte Técnico 5
Ejemplo de Formatos
% LD 0000.00 Se activa durante un ciclo de programa
con el flanco de bajada de 0000.00
LD 0000.00
% SET 0001.00 Se ejecuta con el flanco de bajada de 0000.00
!@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
Soporte Técnico 6
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
Soporte Técnico 7
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.
0010.06
Soporte Técnico 8
SETA(530) RSTA(531)
• SETA pone a 1 N2 bits consecutivos
empezando en el bit N1 de la palabra D.
• RSTA los pone a 0.
• D: Palabra inicial.
• N1: Primer bit.
• N2: Número de bits.
@SETA(530)
D
N1
N2
SETA(530)
D
N1
N2
@RSTA(531)
D
N1
N2
RSTA(531)
D
N1
N2
Soporte Técnico 9
SETA(530) RSTA(531)
@SETA(530)
W000
&4
&36
@RSTA(531)
W000
&4
&36
W000 0000 0000 0000 1111
W001 0000 0000 0000 0000
W002 1111 1111 0000 0000
W000 1111 1111 1111 0000
W001 1111 1111 1111 1111
W002 0000 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
Soporte Técnico 10
Direccionamientos
Addessing
Soporte Técnico 11
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++
Soporte Técnico 12
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
Soporte Técnico 13
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
Soporte Técnico 14
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
Soporte Técnico 15
MOVR(560)
• Crea un puntero a la palabra o bit S y lo
guarda en el registro índice D.
• S: Palabra o bit a mover.
• D: Registro índice IR donde se guarda la dirección.
@MOVR(560)
S
D
MOVR(560)
S
D
Soporte Técnico 16
MOVRW(561)
• Crea un puntero al temporizador o
contador S y lo guarda en el registro índice
D.
• S: Temporizador o contador.
• D: Registro índice IR donde guarda el temporizador
o contador.
@MOVRW(561)
S
D
MOVRW(561)
S
D
Soporte Técnico 17
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
IR0 0000 0195
Soporte Técnico 18
Tareas
División del programa en tareas
Soporte Técnico 19
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
Soporte Técnico 20
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
Soporte Técnico 21
Tarea cíclica
• Se pueden programar 32 tareas cíclicas
00÷31.
• Estas tareas se ejecutan por orden de
numeración: La tarea 00 es la inicial, luego
la 01, ... hasta la 31 que es la última.
• Cada una de estas tareas acaba con la
instrucción END(001).
• En cada ciclo de scan se puede elegir qué
tareas queremos que se ejecuten y cuales
no.Una tarea puede activar a otras.
Soporte Técnico 22
CX-Programer
• Se pueden utilizar dos clases de símbolos
(variables):
»Globales:
• Sirven para todas las tareas (cíclicas y de
interrupción) y no se pueden duplicar los nombres.
• Son únicas para cada PLC.
»Locales:
• Sólo tienen validez en la tarea donde se han
creado, bien sea cíclica o de interrupción.
• Estas variables se pueden repetir en otras tareas,
pero nunca en la misma tarea.
Soporte Técnico 23
Control de Tareas
• Existen dos tipos de tareas:
»Tareas cíclicas: Se ejecutan según esté su flag
de ejecución TK00 a TK31. Una vez por ciclo
de scan y en orden según su número de tarea.
»Tareas de interrupción: Se ejecutan cuando se
cumple la condición de interrupción,
independientemente del ciclo de scan.
• Para controlar qué tareas cíclicas se
ejecutan en un ciclo de scan se utilizan las
instrucciones TKON(820) y TKOF(821).
Soporte Técnico 24
TKON (820)
• Permite que se ejecute la tarea cíclica,
pone a 1 el flag de la tarea TK00 a TK31.
• Sólo se puede ejecutar esta instrucción
desde una tarea cíclica, de otro modo da
un error ER a 1.
@TKON(820)
N
TKON(820)
N
Soporte Técnico 25
TKON(820)
• N: debe ser una constante comprendida
entre #0 y #31. Debe Existir la tarea N.
• Si la instrucción TKON(820) es ejecutada
desde la tarea cíclica m, la tarea N se
ejecutará según:
»m<N: en el mismo ciclo de scan.
»m>N: en el siguiente ciclo de scan.
• Si ya se está ejecutando la tarea N, la
instrucción TKON(820) que activa la tarea
N se trata como NOP(000).
Soporte Técnico 26
TKOF (821)
• Pone en stand by la tarea cíclica, pone a 0
el flag de la tarea TK00 a TK31.
• Se puede ejecutar esta instrucción desde
una tarea cíclica o desde una tarea de
interrupción.
@TKOF(821)
N
TKOF(821)
N
Soporte Técnico 27
TKOF(821)
• N: debe ser una constante comprendida
entre #0 y #31. Debe existir la tarea N.
• Si la instrucción TKOF(821) es ejecutada
desde la tarea cíclica m, la tarea N se
pondrá en stand by según:
»m<N: en el mismo ciclo de scan.
»m>N: en el siguiente ciclo de scan.
Soporte Técnico 28
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.
Soporte Técnico 29
Interrupciones
Control de interrupciones
Soporte Técnico 30
Control de Interrupciones
• Existen 4 tipos de interrupciones:
• Fallo de alimentación (Tarea Int. 1)
• Programadas en el tiempo (Tareas Int. 2, 3)
• Unidades de interrupción 0÷3 (Tareas Int. 100÷131)
• Entradas externas (Tareas Int. 0 ÷255)
• La interrupción de fallo de alimentación no
se puede controlar mediante instrucciones.
• Las instrucciones para controlar
interrupciones son:
• MSKS(690), MSKR(692), CLI(691), EI(694), DI(693)
Soporte Técnico 31
MSKS(690)
• Enmascarar interrupciones:
»Unidades de interrupción (ON/OFF).
»Programadas en el tiempo (tiempo/OFF).
• N:Identificador de interrupción(#0÷#5).
• S:Datos de enmascaramiento o de
temporización.
MSKS(690)
N
S
@MSKS(690)
N
S
Soporte Técnico 32
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.
N Entrada S
0 Unidad interrupción 0 Bits 0÷7 máscara de interrupcion 100÷107
1 Unidad interrupción 1 Bits 0÷7 máscara de interrupcion 108÷115
2 Unidad interrupción 2 Bits 0÷7 máscara de interrupcion 116÷123
3 Unidad interrupción 3 Bits 0÷7 máscara de interrupcion 124÷131
4 Programada 2
5 Programada 3
0000: Enmascarar interrupción.
0001÷270F: Intervalo de interrupción.
Soporte Técnico 33
MSKS(690)- N y S
• N es la entrada de interrupción:
• Unidad de interrupción (0,1,2,3).
• Interrupción programada (2, 3).
• Los valores 1 de S enmascaran las tareas
de interrupción asociadas a la entrada N.
• Si N es 4 ó 5 se tratan de tareas de
interrupción programadas. En este caso S
es el intervalo entre interrupciones en
unidades de 10 ms o de 1 ms. Si S es 0,
enmascaramos la tarea de interrupción.
Soporte Técnico 34
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).
Soporte Técnico 35
MSKR(692)
• Lee los parámetros de la interrupción
introducidos con la instrucción anterior
MSKS(690).
• N: Identificador de interrupción. Igual que en MSKS.
• D: Palabra de destino. Cualquier área de datos
excepto Registros índice y constantes. Tiene el
mismo significado que en MSKS.
MSKR(692)
N
D
@MSKR(692)
N
D
Soporte Técnico 36
CLI(691)
• Borra o retiene(guarda) las interrupciones
acumuladas o programa el intervalo de las
interrupciones programadas.
• Esta instrucción se usa para controlar las
interrupciones simultáneas.
• N y S tienen el mismo significado que en
MSKS(690).
CLI(691)
N
S
@CLI(692)
N
S
Soporte Técnico 37
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
Soporte Técnico 38
CLI(691) Ejemplo
CLI(691)
#2
#0048
Resetea las entradas grabadas 3 y 6 de la
unidad de interrupción 2.
Entrada 7654 3210
0000 0000 0100 1000
CLI(690)
#5
#1388
Sitúa el intervalo de la tarea de interrupción
programada 3 a 50 s (Tiempo 10 ms).
Soporte Técnico 39
DI(693)
• Deshabilita la ejecución de todas las tareas
de interrupción, excepto la de Fallo de
alimentación.
• No se puede ejecutar en tareas de
interrupción.
DI(693) @DI(693)
Soporte Técnico 40
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)
Soporte Técnico 41
DI(693) y EI(694) Ejemplo
DI
EI
DI
END
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.
Soporte Técnico 42
Ejemplo Interrupciones
• Seguidamente se muestra un ejemplo de
tareas de interrupciones de:
• Fallo de alimentación (Int. 1)
• Interrupción programada (Int. Prog. 2)
• Interrupción de unidad de interrupción (Int. 100)
• Interrupción de una COMBOARD (Int. 15)
• Se muestra el programa y los cambios que
son necesarios en el PC-SETUP.
Soporte Técnico 43
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
Soporte Técnico 44
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
Soporte Técnico 45
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.
Soporte Técnico 46
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.
Soporte Técnico 47
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
Soporte Técnico 48
Temporizadores
Nuevos temporizadores
Soporte Técnico 49
Temporizadores
• Tiene 4.096 temporizadores y 4.096
contadores independientes entre sí, en dos
áreas.
• T0000 ÷ T4095
• C0000 ÷ C4095
• Prestar atención a los temporizadores que
se encuentran en saltos o interlocks.
• Si IOM hold bit (A50012) está a ON, el PV
y el flag de finalizado se mantienen al
desconectar alimentación o pasar a
PROGRAM.
Soporte Técnico 50
CNR(545)
• Resetea los contadores o temporizadores
dentro del rango N1 - N2.
• N1: Dirección inicial del rango.
• N2: Dirección final del rango.
• N1 y N2 deben estar en la misma área de
temporizadores o contadores.
CNR(545)
N1
N2
@CNR(545)
N1
N2
Soporte Técnico 51
TMHH(540)
• Temporizador de 1ms. Temporiza S
milisegundos.
• N: Número de temporizador.
• S: Tiempo.
• El PV y el flag de finalización se refrescan
cada 1ms.
TMHH(540)
N
S
Soporte Técnico 52
TIML(542)
• Temporizador de 9999 999.9 segundos.
• D1: Flag de Finalización.
• D2: Primera palabra del PV.
• S: Primera palabra de SV.
• No necesita número de temporizador, por
eso en necesario reservar palabras para el
PV y el flag de finalización.
TIML(540)
D1
D2
S
Soporte Técnico 53
TIML(542)
D1 0000 0000 0000 000 1
Flag de finalización
S+1 S Tiempo total SV debe estar entre 0 y 9999 9999
D2+1 D2 Valor 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.
Soporte Técnico 54
MTIM(543)
• Temporizador incremental de 0.1s y 8
salidas.
• D1: Palabra de flags de finalización.
• D2: Palabra del PV.
• S: Primera palabra de los SV.
• No utiliza número de temporizador.
MTIM(543)
D1
D2
S
Soporte Técnico 55
MTIM(543)
D1 0000 00 0 0 1 1 1 1 1 1 1 1
Flags de finalización de cada SV
Flag de reset
Flag de pausa
D2 Valor del PV del temporizador
S
S+1
S+2
S+3
S+4
S+5
S+6
S+7
Valores de los SV de cada salida
Cuando el PV alcanza el valor de cada SV se activa el flag
correspondiente al SV
SV 1
SV2
Flag de finalización 1
Flag de finalización 2
PV
Soporte Técnico 56
Bloques de Programa
En mnemónico
Soporte Técnico 57
Bloque de Programa
• Conjunto de instrucciones que se ejecutan
bajo una misma condición de ejecución.
• Se pueden hacer hasta 128 bloques de
programa.
• Sólo se pueden utilizar una vez.
• Los bloques de programa que no se
ejecutan no consumen tiempo de
ejecución.
• Las instrucciones se escriben en
mnemónico.
Soporte Técnico 58
Bloque de Programa
• La única instrucción que se programa en
diagrama de contactos es BPRG(096). El
resto se inserta en un bloque de programa
en mnemónico.
• La última instrucción del bloque debe ser
BEND.
• No se pueden evaluar condiciones dentro
de un bloque de programa, excepto en
instrucciones especiales (IF).
Soporte Técnico 59
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.
Soporte Técnico 60
BPRG(096) y BEND(801)
• BPRG(096): Comienzo del bloque de
programa n.
• n: número de bloque de programa (0n127).
• BEND(801): Última instrucción del bloque
de programa en mnemónico.
BPRG(096)
n
Soporte Técnico 61
BPPS(811) y BPRS(812)
• BPPS(811): Para la ejecución del bloque
de programa N desde otro bloque de
programa.
• BPRS(812): Reanuda la ejecución del
bloque de programa N desde otro bloque
de programa.
• N: Número de bloque de programa (0n127).
Soporte Técnico 62
IF(802), ELSE(803), IEND(804)
• IF (NOT): Puede llevar operando B o
utilizar una condición de ejecución anterior.
• ELSE: Se ejecuta si no es cierta la
condición de la instrucción IF.
• IEND: Final de la instrucción IF.
• Se pueden anidar hasta 254 IFs.
IF
Se ejecuta A Se ejecuta B
IEND
SI
NO
IF
A
ELSE
B
IEND
Soporte Técnico 63
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
A
B
C
A
C
0.01
ON
0.01
OFF
Soporte Técnico 64
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
C CC
B
Soporte Técnico 65
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
C CC
B
Soporte Técnico 66
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
C CC
B
Soporte Técnico 67
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
C CC
B
Soporte Técnico 68
LOOP(809), LEND(810) NOT
• Repiten una serie de instrucciones entre
LOOP y LEND (LEND NOT) hasta que la
condición de LEND sea cierta.
• LEND puede llevar operando o utilizar la
condición de ejecución anterior.
• Dentro de un lazo LOOP no se refrescan
las salidas. Utilizar IOREF(184).
• Puede sobrepasar el tiempo máximo de
ciclo y dar un error.
• No se puede anidar LOOP dentro de otro.
Soporte Técnico 69
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
A
B
C
A
B B B
C
B
Soporte Técnico 70
Tablas de datos
Tablas basadas en pilas
Tablas basadas en registros
Soporte Técnico 71
Tablas de Datos
• Tablas basadas en Pila (Stack)
»SSET, PUSH, FIFO, LIFO
• Tablas basadas en registros
»DIM, SETR, GETR
• Operaciones con Rangos
»SRCH, MAX, MIN, SUM, FCS, SWAP
Soporte Técnico 72
Pila (Stack)
• En estas tablas se almacenan los valores
uno debajo de otro, siguiendo el orden de
llegada.
• Los datos (palabras) se pueden coger en
orden FIFO (el más antiguo) o en orden
LIFO (el más nuevo).
• Las 4 primeras palabras de la tabla están
reservadas para la dirección de la última
palabra y la dirección a la que apunta el
puntero.
Soporte Técnico 73
SSET(630)
• Define una pila (stack) de:
• TB: Primera dirección de la tabla.
• N: Nº de palabras.
• Las dos primeras palabras TB y TB+1
contienen la dirección de la última palabra
de la tabla. Las dos siguientes contienen la
dirección donde apunta el puntero.
• Resetea todos los registros de la tabla a 0.
SSET(630)
TB
N
@SSET(630)
TB
N
Soporte Técnico 74
SSET(630) Ejemplo
SSET(630)
D00000
&10
D00000 0009
D00001 0001
D00002 0004
D00003 0001
D00004 0000
D00005 0000
D00006 0000
D00007 0000
D00008 0000
D00009 0000
Dirección donde
apunta el puntero
Última dirección de la tabla
en binario
Datos
Puntero
Soporte Técnico 75
PUSH(632)
• Escribe una palabra en la pila, en la
dirección donde apunta el puntero e
incrementa en uno la dirección del puntero.
• TB: Dirección de la pila.
• S: Palabra a escribir.
• Cuando el puntero llega al final de la tabla,
no se ejecuta.
PUSH(632)
TB
S
@PUSH(632)
TB
S
Soporte Técnico 76
PUSH(632) Ejemplo
D00000 0009
D00001 0001
D00002 0006
D00003 0001
D00004 1234
D00005 5678
D00006 9012
D00007 0000
D00008 0000
D00009 0000
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
Soporte Técnico 77
FIFO(633)
• First In First Out.
• Lee la primera palabra escrita en la pila (la
más antigua),la escrita en TB+4. Sube
todos los datos de la pila una palabra y
decrementa en uno el puntero.
• TB: Dirección de la pila.
• D: Palabra destino de la lectura.
FIFO(633)
TB
D
@FIFO(633)
TB
D
Soporte Técnico 78
FIFO(633) Ejemplo
0009
0001
0006
0001
5678
9012
9012
0000
0000
0000
Dirección donde
apunta el puntero
Puntero - 1
Puntero
D00000 0009
D00001 0000
D00002 0007
D00003 0000
D00004 1234
D00005 5678
D00006 9012
D00007 0000
D00008 0000
D00009 0000
Tabla
FIFO(633)
D00000
W000
W000 1234
Última dirección de la tabla
en binario
Soporte Técnico 79
LIFO(634)
• Last In First Out.
• Lee la última palabra escrita en la pila y
decrementa en uno el puntero.
• TB: Dirección de la pila.
• D: Palabra destino de la lectura.
LIFO(634)
TB
D
@LIFO(634)
TB
D
Soporte Técnico 80
LIFO(364) Ejemplo
0009
0001
0005
0001
1234
5678
9012
0000
0000
0000
Dirección donde
apunta el puntero
Puntero - 1
Puntero
D00000 0009
D00001 0000
D00002 0006
D00003 0000
D00004 1234
D00005 5678
D00006 9012
D00007 0000
D00008 0000
D00009 0000
Tabla
LIFO(634)
D00000
W000
W000 9012
Última dirección de la tabla
en binario
Soporte Técnico 81
Tablas de registros
• Se pueden guardar hasta 16 tablas 0÷15.
• Un registro puede contener más de una
palabra.
• Se usan en combinación con los registros
índice IR0÷IR15.
• Para trabajar con tablas es necesario
definirlas primero con DIM(631).
Soporte Técnico 82
DIM(631)
• Crea una tabla en el área de memoria de:
• N: Número de tabla.
• LR: Longitud de cada registro.
• NR: número de registros.
• TB: Dirección del primer registro de la tabla.
DIM(631)
N
LR
NR
TB
@DIM(631)
N
LR
NR
TB
Soporte Técnico 83
DIM(631) Ejemplo
@DIM(631)
&12
&5
&3
D00000
D00000
D00004
D00005
D00009
D00010
D00014
Registro 2
Registro 3
Registro 1
5 Palabras
5 Palabras
5 Palabras
Tabla número 12
Registros de 5 palabras
3 Registros
Empieza en la dirección D00000
Soporte Técnico 84
SETR(635)
• Escribe la dirección del registro número R
de la tabla número N en el registro índice
D.
• N: Número de tabla (constante).
• R: Número de registro.
• D: Registro índice.
@SETR(635)
N
R
D
SETR(635)
N
R
D
Soporte Técnico 85
SETR(635) Ejemplo
@SETR(635)
&12
&2
IR11
D00000
D00004
D00005
D00009
D00010
D00014
Registro 2
Registro 3
Registro 1
5 Palabras
5 Palabras
5 Palabras
IR11 D00005
Tabla 12
Registro 2
Tabla 12
Soporte Técnico 86
GETR(636)
• Escribe en D el número de registro de la
tabla N cuya dirección está guardada en el
registro índice IR.
• N: Número de tabla (constante).
• IR: Número de registro.
• D: Palabra donde se guarda el número de registro.
@GETR(636)
N
IR
D
GETR(636)
N
IR
D
Soporte Técnico 87
GETR(636) Ejemplo
@GETR(636)
&12
IR11
W000
D00000
D00004
D00005
D00009
D00010
D00014
Registro 2
Registro 3
Registro 1
5 Palabras
5 Palabras
5 Palabras
W000 0002
Tabla 12
Registro índice 11
Nº de registro Tabla 12
IR11 D00005
Soporte Técnico 88
SRCH(181)
• Busca una palabra en un rango de
palabras.
• C: Primera palabra de control.
• R1: Primera palabra del rango.
• Cd: Palabra a buscar.
• Guarda en IR00 la dirección de la palabra
que coincide y en DR00 el número de
coincidencias. @SRCH(181)
C
R1
Cd
SRCH(181)
C
R1
Cd
Soporte Técnico 89
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
Soporte Técnico 90
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
IR00 D00104
DR00 0003
W000 000A
W001 8000 Guarda el Nº de coincidencias
10 Palabras
Soporte Técnico 91
MAX(182)
• Busca el máximo valor en un rango de
palabras.
• C: Primera palabra de control.
• R1: Primera palabra del rango.
• D: Palabra donde se guarda el valor.
• Guarda en IR00 la dirección de la palabra
que coincide y en D el valor máximo.
@MAX(182)
C
R1
D
MAX(182)
C
R1
D
Soporte Técnico 92
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.
Soporte Técnico 93
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
IR00 D00101
W002 6589
W000 000A
W001 C000Binario con signo
Guarda la dirección en IR00
10 Palabras
Soporte Técnico 94
MIN(183)
• Busca el mínimo valor en un rango de
palabras.
• C: Primera palabra de control.
• R1: Primera palabra del rango.
• D: Palabra donde se guarda el valor.
• Guarda en IR00 la dirección de la palabra
que coincide y en D el valor mínimo.
@MIN(183)
C
R1
D
MIN(183)
C
R1
D
Soporte Técnico 95
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.
Soporte Técnico 96
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
IR00 D00101
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.
Soporte Técnico 97
SWAP(637)
• Intercambia los bytes derecho e izquierdo
de las palabras del rango seleccionado.
• N: Número de palabras del rango.
• R1: Primera palabra del rango.
SWAP(637)
N
R1
@SWAP(637)
N
R1
Soporte Técnico 98
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
Soporte Técnico 99
Cadenas de caracteres
Instrucciones de texto
Soporte Técnico 100
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.
Soporte Técnico 101
LEN$(650)
• Calcula la longitud de la cadena de la
posición S (hasta NUL) y guarda el
resultado en D.
• S: Primera palabra de la cadena.
• D: Posición donde guarda el resultado.
• La longitud máxima es de 4.095 bytes.
LEN$(650)
S
D
@LEN$(650)
S
D
Soporte Técnico 102
LEN$(650) Ejemplo
@LEN$(664)
W000
W100
W000 O M
W001 R O
W002 N
W000 4F 4D
W001 52 4F
W002 4E 00
S
W000 0006
D
Soporte Técnico 103
MOV$(664)
• Copia una cadena de caracteres de la
posición S (hasta NUL) a la D. También
copia el carácter NUL.
• S: Primera palabra de la cadena a copiar.
• D: Posición donde se copia la cadena.
• La longitud máxima es de 4.095 bytes.
MOV$(664)
S
D
@MOV$(664)
S
D
Soporte Técnico 104
MOV$(664) Ejemplo
W100 4F 4D
W101 52 4F
W102 4E 00
W000 O M
W001 R O
W002 N
W000 4F 4D
W001 52 4F
W002 4E 00
S D
@MOV$(664)
W000
W100
Soporte Técnico 105
+$(656)
• Concatena (une) la cadena S1 con la S2 y
guarda el resultado en D.
• S1: Primera palabra de la primera cadena.
• S2: Primera palabra de la segunda cadena.
• D: Posición donde se copia la cadena.
• La longitud máxima es de 4.095 bytes.
@+$(656)
S1
S2
D
+$(656)
S1
S2
D
Soporte Técnico 106
+$(656) Ejemplo
D00000 4F 4D
D00001 52 4F
D00002 4E 53
D00003 50 41
D00004 49 4E
D00005 00 00
W000 4F 4D
W001 52 4F
W002 4E 00
W100 53 50
W101 41 49
W102 4E 00
S2 D
@+$(656)
W000
W100
D00000
&
OMRONSPAIN
OMRON SPAIN
S1
Soporte Técnico 107
LEFT$(652)
• Recupera la cadena de S2 primeros
caracteres de la cadena S1 y guarda el
resultado en D.
• S1: Primera palabra de la cadena.
• S2: Número de caracteres a recuperar.
• D: Posición donde se copia la cadena.
• La longitud máxima es de 4.095 bytes.
LEFT$(652)
S1
S2
D
@LEFT$(652)
S1
S2
D
Soporte Técnico 108
LEFT$(652) Ejemplo
D
LEFT$(652)
W000
&5
D00000
OMRON
D00000 4F 4D
D00001 52 4F
D00002 4E 00
OMRON SPAIN
S1
W000 4F 4D
W001 52 4F
W002 4E 20
W002 53 50
W002 41 49
W002 4E 00
Soporte Técnico 109
RGHT$(653)
• Recupera la cadena de S2 últimos
caracteres de la cadena S1 y guarda el
resultado en D.
• S1: Primera palabra de la cadena.
• S2: Número de caracteres a recuperar.
• D: Posición donde se copia la cadena.
• La longitud máxima es de 4.095 bytes.
RGHT$(653)
S1
S2
D
@RGHT$(653)
S1
S2
D
Soporte Técnico 110
RGHT$(653) Ejemplo
D
RGHT$(653)
W000
&5
D00000
SPAIN
D00000 53 50
D00001 41 49
D00002 4E 00
OMRON SPAIN
S1
W000 4F 4D
W001 52 4F
W002 4E 20
W002 53 50
W002 41 49
W002 4E 00
Soporte Técnico 111
MID$(654)
• Recupera la cadena de S2 caracteres de la
cadena S1 empezando en el carácter
número S3 y guarda el resultado en D.
• S1: Primera palabra de la cadena.
• S2: Número de caracteres a recuperar.
• S3: Posición inicial de la cadena S1.
• D: Posición donde se copia la cadena.
MID$(654)
S1
S2
S3
D
@MID$(654)
S1
S2
S3
D
Soporte Técnico 112
MID$(654) Ejemplo
D
ON SP
D00000 4F 4E
D00001 20 53
D00002 50 00
OMRON SPAIN
S1
W000 4F 4D
W001 52 4F
W002 4E 20
W002 53 50
W002 41 49
W002 4E 00
@MID$(654)
W000
&5
&4
D00000
Soporte Técnico 113
FIND$(660)
• Busca la cadena S2 en la S1 y guarda el
número de carácter desde el principio de
S1 en D.
• S1: Primera palabra de la primera cadena.
• S2: Primera palabra de la segunda cadena.
• D: Posición donde se guarda el Nº de carácter.
@FIND$(660)
S1
S2
D
FIND$(660)
S1
S2
D
Soporte Técnico 114
FIND$(660) Ejemplo
D00000 4F 4D
D00001 52 4F
D00002 4E 53
D00003 50 41
D00004 49 4E
D00005 00 00
W100 53 50
W101 41 49
W102 4E 00
S2S1
@FIND$(660)
D00000
W100
W000
OMRONSPAIN
SPAIN
W000 0006
D
Soporte Técnico 115
RPLC$(661)
• Reemplaza S3 caracteres de S2 desde
S4 en la cadena S1 y la escribe en D.
• S1: Primera palabra de la primera cadena.
• S2: Primera palabra de la segunda cadena.
• S3: Número de caracteres.
• S4: Posición inicial.
• D: Posición donde se guarda el Nº de carácter.
RPLC$(661)
S1
S2
S3
S4
D
@RPLC$(661)
S1
S2
S3
S4
D
Soporte Técnico 116
RPLC$(661) Ejemplo
D00100 4F 4D
D00101 52 4F
D00102 4E 20
D00103 53 55
D00104 52 00
D00105 00 00
W100 20 53
W101 55 52
W102 00 00
S2 D
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
Soporte Técnico 117
DEL$(658)
• Borra S2 caracteres de S1 empezando
desde S3 y guarda el resultado en D.
• S1: Primera palabra de la cadena.
• S2: Número de caracteres a borrar.
• S3: Posición para borrar de la cadena S1.
• D: Posición donde se guarda la cadena.
DEL$(658)
S1
S2
S3
D
@DEL$(658)
S1
S2
S3
D
Soporte Técnico 118
DEL$(658) Ejemplo
D
OMRON SPAIN
S1
W100 4F 4D
W101 52 4F
W102 4E 00
W102 00 00
W102 00 00
W102 00 00
@DEL$(658)
W000
&6
&6
D00000
W000 4F 4D
W001 52 4F
W002 4E 20
W002 53 50
W002 41 49
W002 4E 00
OMRON
Soporte Técnico 119
XCHG$(665)
• Intercambia las cadenas Ex1 y Ex2.
• Ex1: Primera palabra de la cadena 1.
• Ex2: Primera palabra de la cadena 2.
• La longitud máxima es de 4.095 bytes.
• Ex1 y Ex2 no se pueden solapar.
XCHG$(665)
Ex1
Ex2
@XCHG$(665)
Ex1
Ex2
Soporte Técnico 120
XCGH$(665) Ejemplo
W100 4F 4D
W101 52 4F
W102 4E 00
W000 4F 4D
W001 52 4F
W002 4E 00
Ex1 Ex2
@XCHG$(665)
W000
W100
Soporte Técnico 121
CLR$(666)
• Borra la cadena S. Escribe el carácter NUL
en toda la cadena S.
• S: Primera palabra de la cadena a borrar.
CLR$(666)
S
@CLR$(666)
S
Soporte Técnico 122
CLR$(666) Ejemplo
W100 00 00
W101 00 00
W102 00 00
W000 4F 4D
W001 52 4F
W002 4E 00
S S
@CLR$(666)
W000
Soporte Técnico 123
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
Soporte Técnico 124
INS$(657) Ejemplo
W100 20 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
Soporte Técnico 125
Comparación de cadenas
• Se pueden comparar dos cadenas de
caracteres en código ASCII (8 bits)
mediante 6 instrucciones:
• =$,<>$, <$, <=$, >$, >=$
• Los resultados de estas comparaciones se
ven en los flags:
• >, >=, >, <>, <, <=
• Estas comparaciones se aplican a:
• LD, OR, AND
Soporte Técnico 126
Comparación de cadenas
<>$(671)
S1
S2
<$(672)
S1
S2
>=$(675)
S1
S2
<=$(673)
S1
S2
=$(670)
S1
S2
>$(674)
S1
S2
S1 ≠ S2
S1 ≤ S2
longitud
S1 = S2 S1 > S2
longitud
S1 ≥ S2
longitud
S1 < S2
longitud
Soporte Técnico 127
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
Soporte Técnico 128
Saltos
Saltos condicionales
Soporte Técnico 129
Saltos
JMP(4) CJP(510) CJPN(511) JMP0(515)
JME(5) JME(5) JME(5) JME0(516)
Condición OFF ON OFF OFF
Nº máximo 1.024 en total Sin límite
Tiempo ejecución No se ejecutan NOP(000)
Estado de salidas Bits y palabras mantienen su estado anterior
Temporizadores Continúan temporizando
Bloques de programas Siempre ON OFF No permitido
Tabla comparativa de los saltos y los saltos condicionales.
Soporte Técnico 130
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
Soporte Técnico 131
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)
Soporte Técnico 132
Instrucciones de lazo
FOR, NEXT, BREAK
Soporte Técnico 133
Instrucciones de Lazo
• Se pueden ejecutar instrucciones tales
como FOR, NEXT, BREAK.
• Estas instrucciones permiten ejecutar
varias veces en un mismo ciclo las
instrucciones entre FOR y NEXT.
• Hay que tener especial cuidado con el
tiempo de ciclo, no caer en un ciclo
demasiado largo, por hacer excesivos
bucles. Pueden dar errores.
Soporte Técnico 134
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
Soporte Técnico 135
FOR(512) y NEXT(513)
• Estas instrucciones no necesitan una
condición de ejecución. Se ejecutan para
cada ciclo. De programa
• Se pueden anidar hasta 15 bucles FOR-
NEXT.
• Deben estar en la misma tarea: No se
puede poner FOR en una tarea y NEXT en
otra.
• Vigilar el ciclo de programa, que no sea
muy largo.
Soporte Técnico 136
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
Soporte Técnico 137
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
D00100
D00100
MOV
Soporte Técnico 138
BREAK(514)
• Salta a la siguiente instrucción NEXT y
finaliza el bucle FOR-NEXT actual.
• En el caso de bucles FOR-NEXT anidados,
es necesario una instrucción BREAK para
cada bucle.
• Las instrucciones siguientes hasta el
próximo NEXT se tratan como NOP.
BREAK(514)
Soporte Técnico 139
FOR, NEXT y BREAK
BREAK(514)
C
FOR(512)
&5
A
NEXT(513)
Soporte Técnico 140
Desplazamiento
y rotación
De todos o N bits en una y dos
palabras
Soporte Técnico 141
Desplazamiento y rotación
1 Canal 2 Canales
Desplazamiento ASL(025) ASLL(570)
ASR(026) ASRL(571)
Rotación ROL(027) ROLL(572)
ROR(028) RORL(573)
Rotación sin RLNC(574) RLNL(576)
Carry RRNC(575) RRNL(577)
Soporte Técnico 142
De N bits
1 Canal 2 Canales
Desplazamiento NASL(580) NSLL(582)
de N bits NASR(581) NSRL(583)
Desplazamiento NSFL(578)
de N bits como dato NSFR(579)
Soporte Técnico 143
NASL(580)
• Desplaza la palabra D, N bits a la izquierda
insertando 0, ó el valor del bit 0.
• D: Palabra origen y destino.
• C: palabra de control (insertar 0, Nº de bits)
NASL(580)
D
C
@NASL(580)
D
C
Soporte Técnico 144
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
Soporte Técnico 145
NSLL(582)
• Desplaza las palabras D y D+1, N bits a la
izquierda insertando 0, ó el valor del bit 0.
• D: Primera palabra origen y destino.
• C: palabra de control (insertar 0, Nº de bits)
• Como NASL(580) pero de dos palabras.
NSLL(582)
D
C
@NSLL(582)
D
C
Soporte Técnico 146
NASR(581)
• Desplaza la palabra D, N bits a la derecha
insertando 0, ó el valor del bit 15.
• D: Palabra origen y destino.
• C: palabra de control (insertar 0, Nº de bits)
NASR(581)
D
C
@NASR(581)
D
C
Soporte Técnico 147
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 10
1
CY
Perdidos
Soporte Técnico 148
NSRL(583)
• Desplaza las palabras D y D+1, N bits a la
derecha insertando 0, ó el valor del bit 15.
• D: Primera palabra origen y destino.
• C: palabra de control (insertar 0, Nº de bits)
• Como NASR(581) pero de dos palabras.
NSRL(583)
D
C
@NSRL(583)
D
C
Soporte Técnico 149
NSFL(578)
• Desplaza N bits de D a la izquierda
empezando por el bit C.
• D: Palabra dato.
• C: Bit de comienzo.
• N: Número de bits a desplazar.
• Los bits anteriores a C o posteriores a C+N
no cambian.
@NSFL(578)
D
C
R
NSFL(578)
D
C
R
Soporte Técnico 150
NSFR(579)
• Desplaza N bits de D a la derecha
empezando por el bit C.
• D: Palabra dato.
• C: Bit de comienzo.
• N: Número de bits a desplazar.
• Los bits anteriores a C+N o posteriores a C
no cambian.
@NSFL(578)
D
C
R
NSFL(578)
D
C
R
Soporte Técnico 151
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 10
1
CY
Bits 3 a 12
Bits 3 a 12
Soporte Técnico 152
Incrementar Decrementar
Autoincremento y Autodecremento
Soporte Técnico 153
++(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
Soporte Técnico 154
--(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
Soporte Técnico 155
Binario Ejemplos
--L(593)
D00000
--(592)
D00000
++L(591)
D00000
++(590)
D00000
D0 D0
001A -1 0019
D0 D0
0019 +1 001A
D0 D1 D0 D1
001A 0000 -1 0019 FFFF
D0 D1 D0 D1
0019 FFFF +1 001A 0000
Soporte Técnico 156
++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
Soporte Técnico 157
--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
Soporte Técnico 158
BCD Ejemplos
--BL(597)
D00000
--B(596)
D00000
++BL(595)
D00000
++B(594)
D00000
D0 D0
0020 -1 0019
D0 D0
0019 +1 0020
D0 D1 D0 D1
0020 0000 -1 0019 9999
D0 D1 D0 D1
0019 9999 +1 0020 0000
Soporte Técnico 159
Comparación
=, <, <=, >, >=, <>
Soporte Técnico 160
Comparación de palabras
• Comparan dos datos S1 y S2.
• Los datos a comparar pueden ser:
• Formato: con o sin signo.
• Longitud: de 1 (S1 con S2) ó 2 (S1 y S1+1 con S2 y
S2+1) palabras.
• Son instrucciones intermedias: Se pueden
conectar como LD, AND y OR.
Símbolo & Opciones
S1
S2
Soporte Técnico 161
Comparación de palabras
Símbolo Formato Longitud
=(300) -: Sin signo -: 1 palabra
=L(301) -: Sin signo L: 2 palabras
=S(302) S: Con signo -: 1 palabra
=SL(303) S: Con signo -: 2 palabras
<>(305) -: Sin signo -: 1 palabra
<>L(306) -: Sin signo L: 2 palabras
<>S(307) S: Con signo -: 1 palabra
<>SL(308) S: Con signo -: 2 palabras
<(310) -: Sin signo -: 1 palabra
<L(311) -: Sin signo L: 2 palabras
<S(312) S: Con signo -: 1 palabra
<SL(313) S: Con signo -: 2 palabras
<=(315) -: Sin signo -: 1 palabra
<=L(316) -: Sin signo L: 2 palabras
<=S(317) S: Con signo -: 1 palabra
<=SL(318) S: Con signo -: 2 palabras
>(320) -: Sin signo -: 1 palabra
>L(321) -: Sin signo L: 2 palabras
>S(322) S: Con signo -: 1 palabra
<SL(323) S: Con signo -: 2 palabras
>=(325) -: Sin signo -: 1 palabra
>=L(326) -: Sin signo L: 2 palabras
>=S(327) S: Con signo -: 1 palabra
>=SL(328) S: Con signo -: 2 palabras
Soporte Técnico 162
Comparación Ejemplo
Activa la salida 0000.00 si D00000 es
menor que D00001 o D00002 es igual
que D00003
<LS(313)
D0000
D0002
0000.00
Activa la salida 0000.00 si D00000 y
D00001 es menor que D00002 y D00003
Tiene en cuenta el signo.
<(303)
D0000
D0001
0000.00
=(300)
D0002
D0003
=S(302)
D0002
D0003
<S(312)
D0000
D0001
0000.00
Activa la salida 0000.00 si D00000 es
menor que D00001 y D00002 es igual
que D00003
Tiene en cuenta el signo.
LD
AND
OR
Soporte Técnico 163
Instrucciones de conversión
de datos
SIGN, BINS, BISL, BCDS y BDSL
Soporte Técnico 164
SIGN(600)
• Convierte un valor de 16 bits, S, a su
equivalente de 32 bits binario con signo, R.
• S: Palabra fuente de 16 bits.
• R: Primera palabra del resultado.
8000  FFFF 8000
7000  0000 7000
SIGN(600)
S
R
@SIGN(600)
S
R
Soporte Técnico 165
BINS(470)
• Convierte una palabra de BCD con signo
S, a binario con signo R. La palabra de
control indica el formato del signo en BCD.
• C: Palabra de control: 0, 1, 2 ó 3
• S: Palabra en BCD.
• R: Palabra en binario.
@BINS(470)
C
S
R
BINS(470)
C
S
R
Soporte Técnico 166
BINS(470)
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)
Soporte Técnico 167
BISL(472)
• Convierte un dato de 32 bits BCD con
signo (S+1 S) a binario con signo de 32
bits (R+1 R). C indica el formato de signo
en BCD.
• C: Palabra de control: 0, 1, 2 ó 3
• S: Primera palabra de BCD.
• R: Primera palabra en binario.
@BISL(472)
C
S
R
BISL(472)
C
S
R
Soporte Técnico 168
BISL(472)
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)
Soporte Técnico 169
BCDS(471)
• Convierte una palabra de binario con signo
a BCD con signo. C indica el formato de
signo en BCD.
• C: Palabra de control: 0, 1, 2 ó 3
• S: Palabra en binario.
• R: Palabra en BCD.
• Esta es la instrucción inversa a BINS(470)
@BCDS(471)
C
S
R
BCDS(471)
C
S
R
Soporte Técnico 170
BDSL(473)
• Convierte un dato de binario con signo 32
bits a BCD con signo 32 bits. C indica el
formato de signo en BCD.
• C: Palabra de control: 0, 1, 2 ó 3
• S: Palabra en binario.
• R: Palabra en BCD.
• Esta es la instrucción inversa a BINS(470)
@BDSL(473)
C
S
R
BDSL(473)
C
S
R
Soporte Técnico 171
Limitaciones BCDS y BDSL
• En BCDS el dato S está limitada según C:
• C=0 FC19 a FFFF y 0000 a 03E7
• C=1 F0C1 a FFFF y 0000 a 1F3F
• C=2 FC19 a FFFF y 0000 a 270F
• C=3 F831 a FFFF y 0000 a 270F
• En BDSL el dato S está limitada según C:
• C=0 FF67 6981 a FFFF FFFF y 0 a 0098 967F
• C=1 FB3B 4C01 a FFFF FFFF y 0 a 04C4 B3FF
• C=2 FF67 6981 a FFFF FFFF y 0 a 05F5 E0FF
• C=3 FECE D301 a FFFF FFFF y 0 a 05F5 E0FF
Soporte Técnico 172
Instrucciones en
Coma Flotante
Números reales en coma flotante.
Soporte Técnico 173
Números en Coma Flotante
• Se pueden expresar los números:
• -∞ (e=255, f=0, s=0)
• -3.402823·1038
÷ -1.175494·10-38
• 0 (e=0)
• 1.175494·10-38
÷ 3.402823·1038
∀∞ (e=255, f=0, s=1)
• NaN (e=255, f≠0): Número no válido.
• No es necesario conocer el formato de
estos números, sólo que ocupan 32
bits.
Soporte Técnico 174
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 175
IEEE754
• Expresan números reales en 32 bits
conforme al estándar IEEE754:
• f: Mantisa 23 bits bit 0 al 22
• e: Exponente 8 bits bit 23 al 30
• s: Signo 1 bit bit 31
• (-1)s
·2e-127
·(1+f·2-23
)
• 1#10000000#11000000000000000000000
• Signo: (-1)1
= -1
• Exponente: 2128-127
=21
=2
• Mantisa: 1+6291456·2-23
=1+0.75=1.75
• Resultado: -1.75·2= -3.5
Soporte Técnico 176
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 177
FIX(450)
• Convierte un número en coma flotante a un
entero (binario con signo) de 16 bits.
• S: Primera palabra de número en coma flotante.
• R: Palabra donde se guarda el resultado.
• La parte decimal es truncada (3.5  3)
• Rango de -32.768 ÷ 32.767.
FIX(450)
S
R
@FIX(450)
S
R
Soporte Técnico 178
FIXL(451)
• Convierte un número en coma flotante a un
entero (binario con signo) de 32 bits.
• S: Primera palabra de número en coma flotante.
• R: Primera palabra donde se guarda el resultado.
• La parte decimal es truncada (-3.5  -3)
• Rango de -2.147.482.648÷2.147.482.647.
FIXL(451)
S
R
@FIXL(451)
S
R
Soporte Técnico 179
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
Soporte Técnico 180
FLT(452)
• Convierte un número entero (binario con
signo) de 16 bits en formato de coma
flotante de 32 bits.
• S: Palabra del número entero.
• R: Primera palabra del resultado.
• Rango de -32.768 ÷ 32.767.
FLT(452)
S
R
@FLT(452)
S
R
Soporte Técnico 181
FLTL(453)
• Convierte un número entero (binario con
signo) de 32 bits en formato de coma
flotante de 32 bits.
• S: Primera palabra del número entero.
• R: Primera palabra del resultado.
• Rango de -2.147.482.648÷2.147.482.647.
• Números > 16.777.215 pierden precisión.
FLTL(453)
S
R
@FLTL(453)
S
R
Soporte Técnico 182
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
Soporte Técnico 183
+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
Soporte Técnico 184
-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
Soporte Técnico 185
+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
Soporte Técnico 186
*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
Soporte Técnico 187
/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
Soporte Técnico 188
*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
Soporte Técnico 189
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
Soporte Técnico 190
DEG(459)
• Convierte un número en coma flotante (32
bits) de radianes a grados sexagesimales.
El resultado está en coma flotante.
• S: Primera palabra de los radianes.
• R: Primera palabra del resultado.
• Utiliza la fórmula: Grados=Radianes·180/π
DEG(459)
S
R
@DEG(459)
S
R
Soporte Técnico 191
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º
Soporte Técnico 192
SIN(460)
• Calcula el seno de un ángulo (radianes) en
coma flotante (32 bits). El resultado está
en coma flotante.
• S: Primera palabra del ángulo (radianes).
• R: Primera palabra del resultado.
• El resultado está entre -1 y 1.
SIN(460)
S
R
@SIN(460)
S
R
Soporte Técnico 193
COS(461)
• Calcula el coseno de un ángulo (radianes)
en coma flotante (32 bits). El resultado
está en coma flotante.
• S: Primera palabra del ángulo (radianes).
• R: Primera palabra del resultado.
• El resultado está entre -1 y 1.
COS(461)
S
R
@COS(461)
S
R
Soporte Técnico 194
TAN(462)
• Calcula la tangente de un ángulo
(radianes) en coma flotante (32 bits). El
resultado está en coma flotante.
• S: Primera palabra del ángulo (radianes).
• R: Primera palabra del resultado.
• El resultado está entre -∞ y ∞.
TAN(462)
S
R
@TAN(462)
S
R
Soporte Técnico 195
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
Soporte Técnico 196
ASIN(463)
• Calcula arco seno de un número en coma
flotante (32 bits). El resultado está en
coma flotante.
• S: Primera palabra del número (-1÷1).
• R: Primera palabra del ángulo (radianes).
• El resultado está entre -π/2 y π/2.
ASIN(463)
S
R
@ASIN(463)
S
R
Soporte Técnico 197
ACOS(464)
• Calcula arco coseno de un número en
coma flotante (32 bits). El resultado está
en coma flotante.
• S: Primera palabra del número (-1÷1).
• R: Primera palabra del ángulo (radianes).
• El resultado está entre -π/2 y π/2.
ACOS(464)
S
R
@ACOS(464)
S
R
Soporte Técnico 198
ATAN(465)
• Calcula arco tangente de un número en
coma flotante (32 bits). El resultado está
en coma flotante.
• S: Primera palabra del número (- ∞ ÷ ∞).
• R: Primera palabra del ángulo (radianes).
• El resultado está entre -π/2 y π/2.
ATAN(465)
S
R
@ATAN(465)
S
R
Soporte Técnico 199
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
Soporte Técnico 200
SQRT(466)
• Calcula la raíz cuadrada de un número en
coma flotante (32 bits). El resultado está
en coma flotante.
• S: Primera palabra del radicando (0 ÷ ∞).
• R: Primera palabra del resultado (0 ÷ ∞).
• El radicando debe ser un Nº positivo.
SQRT(466)
S
R
@SQRT(466)
S
R
Soporte Técnico 201
PWR(840)
• Eleva un número en coma flotante (32 bits)
a la E potencia. El resultado está en coma
flotante.
• B: Primera palabra de la base (-∞ ÷ ∞).
• E: Primera palabra del Exponente(-∞ ÷ ∞).
• R: Primera palabra del resultado (-∞ ÷ ∞).
• (±∞)0
, 0∞
, 0-E
y (-S)Nºracional
dan error.
@PWR(840)
B
E
R
PWR(840)
B
E
R
Soporte Técnico 202
PWR, SQRT Ejemplo
PWR(840)
D00000
D00002
D00100
D00100 1011 1111 0001 0000
D00101 0100 1001 0000 0001 96
=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
Soporte Técnico 203
EXP(467)
• Calcula el exponencial (eS
) de un número
en coma flotante (32 bits). El resultado
está en coma flotante.
• S: Primera palabra del exponente (-∞ ÷ ∞).
• R: Primera palabra del resultado (0 ÷ ∞).
• e2,718281828459.
• El resultado siempre es positivo.
EXP(467)
S
R
@EXP(467)
S
R
Soporte Técnico 204
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
Soporte Técnico 205
EXP, LOG Ejemplo
D00100 1111 1000 0101 0100
D00101 0100 0000 1010 1101 e1
=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
Soporte Técnico 206
Instrucciones de calendario
Fecha y hora
Soporte Técnico 207
Instrucciones de Calendario
• La primera vez que se utiliza el PLC es
necesario insertar la batería.
• Una vez insertada hay que poner en hora
el reloj interno del PLC. Se puede hacer
mediante
• el CX-Programer
• o con la consola
• o mediante la instrucción DATE.
• Todos los datos se introducen en código
BCD.
Soporte Técnico 208
DATE(735)
• Ajusta la fecha y hora del reloj interno del
PLC con las 4 palabras empezando por S.
• S: Primera palabra de la nueva fecha y hora.
@DATE(735)
S
DATE(735)
S
Soporte Técnico 209
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
Soporte Técnico 210
DATE(735)
Dirección Contenido
A35100 ÷ A35107 Segundos 00 ÷ 59
A35108 ÷ A35115 Minutos 00 ÷ 59
A35100 ÷ A35207 Hora 00 ÷ 23
A35108 ÷ A35215 Día 01 ÷ 31
A35100 ÷ A35307 Mes 01 ÷ 12
A35108 ÷ A35315 Año 00 ÷ 99
A35100 ÷ A35407 Día Semana 00 ÷ 06
A35108 ÷ A35415 Minutos 00 ÷ 59
La fecha y hora se guardan en los registros auxiliares:
Soporte Técnico 211
DATE(735) Ejemplo
@DATE(735)
D00000
D0000 15 30
D0001 05 16 16:15:30
D0002 99 05 5 de Mayo de 1.999
D0003 00 04 Miércoles
Soporte Técnico 212
CADD(730)
• Suma tiempo T a la fecha indicada en C.
• C: Primera palabra de la fecha.
• T: Primera palabra del tiempo a sumar.
• R: Primera palabra del resultado de la suma.
@CADD(730)
C
T
R
CADD(730)
C
T
R
Soporte Técnico 213
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
Soporte Técnico 214
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
Soporte Técnico 215
CSUB(731)
• Suma tiempo T a la fecha indicada en C.
• C: Primera palabra de la fecha.
• T: Primera palabra del tiempo a restar.
• R: Primera palabra del resultado de la resta.
@CSUB(731)
C
T
R
CSUB(731)
C
T
R
Soporte Técnico 216
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
Soporte Técnico 217
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
Soporte Técnico 218
SEC(065)
• Convierte un dato de tiempo h:m:s a su
equivalente en segundos.
• S: Primera palabra de h:m:s
• D: Primera palabra del resultado en segundos.
SEC(065)
S
D
@SEC(065)
S
D
Soporte Técnico 219
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
Soporte Técnico 220
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
Soporte Técnico 221
HMS(066)
S 1001 1001 1001 1001
S+1 0011 0101 1001 1001 Segundos 0 ÷ 35.999.999
R 0101 1001 0101 1001
Segundos 00 ÷ 59
Minutos 00 ÷59
R+1 1001 1001 1001 1001
Hora 0000 ÷ 9999
Soporte Técnico 222
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
Soporte Técnico 223
Ficheros de Memoria
Lectura / Escritura de ficheros
Soporte Técnico 224
Ficheros de Memoria
• La tarjeta de memoria flash y el área EM
se pueden utilizar como área de ficheros.
• Se pueden escribir/leer ficheros:
• Programa (.OBJ)
• Parámetros (.STD)
• Memoria (.IOM)
• Símbolos (.SYM)
• Comentarios (.CMT)
• Con instrucciones sólo se pueden
Leer/Escribir ficheros de memoria (.IOM).
Soporte Técnico 225
FREAD(700)
• Permite leer un fichero de memoria (.IOM)
y guardar todo o parte de su contenido en
un área de memoria.
• C: Palabra de control.
• S1: Primera palabra dato.
• S2: Nombre del fichero.
• D: Primera palabra destino.
@FREAD(700)
C
S1
S2
D
FREAD(700)
C
S1
S2
D
Soporte Técnico 226
FREAD(700)
C 0000 0000 0001 0001
0: Tarjeta de memoria
1: Memoria EM
0: Leer datos
1: Leer número de palabras
S1+3 S1+2
Palabra del fichero por la que se
empieza a leer (en hexadecimal).
S1+1 S1
Número de palabras del fichero que
se quieren leer (en hexadecimal).
Soporte Técnico 227
FREAD(700)
S2: Primera palabra del nombre del fichero que se quiere leer.
S2  A
B C
D 
X Y
Z
ABCDXYZ
Directorio ABCD
Nombre del fichero XYZ
D: Dirección donde se guardan los datos del fichero leído.
Si se lee el número de palabras se almacenan en D y D+1
D+1 D
Número de palabras del fichero
leído (en hexadecimal).
Soporte Técnico 228
FREAD(700) Ejemplo
@FREAD(700)
#0000
D00200
D00300
D00400
0000.00 A343.13
Lee 10 palabras desde la 5 hasta la 14 del fichero
ABCDXY de la tarjeta de memoria y las guarda
en D00400 hasta D00409
D00200 5C 41 Directorio ABCD
D00201 42 43 Fichero XY
D00202 44 5C
D00203 58 59
D00200 00 0A 10 palabras.
D00201 00 00
D00202 00 05 Empieza en la palabra 5.
D00203 00 00
10
5
Tarjeta de memoria
ABCDXY
D00400
D00409
Área DM
Soporte Técnico 229
FWRIT(701)
• Permite escribir un fichero de memoria
(.IOM) y guardar todo o parte del contenido
de un área de memoria.
• C: Palabra de control.
• D1: Primera palabra del fichero destino.
• D2: Nombre del fichero.
• S: Primera palabra a guardar.
@FWRIT(701)
C
D1
D2
S
FWRIT(701)
C
D1
D2
S
Soporte Técnico 230
FWRIT(701)
C 0000 0000 0001 0001
0: Tarjeta de memoria
1: Memoria EM
0: Añadir al final
1: Sobrescribir
D1+3 D1+2
Palabra del fichero por donde se
empieza a escribir (en hexadecimal)
sólo si se sobreescribe.
D1+1 D1
Número de palabras de memoria que
se quieren guardar (en hexadecimal).
Soporte Técnico 231
FWRIT(701)
D2: Primera palabra del nombre del fichero a escribir.
D2  A
B C
D 
X Y
Z
ABCDXYZ
Directorio ABCD
Nombre del fichero XYZ
S: Primera dirección de memoria a guardar en el fichero.
Si se guardan más palabras de las que hay en ese área de memoria,
se continúa guardando palabras del área siguiente.
S
Dirección de la primera palabra de memoria
que se quiere guardar.
Soporte Técnico 232
FWRIT(701) Ejemplo
@FWRIT(701)
#0010
D00200
D00300
D00400
0000.01 A343.13
Guarda 10 palabras desde DM00400 hasta DM00409
en el fichero ABCDXY de la tarjeta de memoria
empezando en la palabra (inicio del fichero + 5).
D00200 5C 41 Directorio ABCD
D00201 42 43 Fichero XY
D00202 44 5C
D00203 58 59
D00200 00 0A 10 palabras.
D00201 00 00
D00202 00 05 Empieza en la palabra 5.
D00203 00 00
10
5
Tarjeta de memoria
ABCDXY
D00400
D00409
Área DM
Soporte Técnico 233
Control de datos
Control de datos analógicos
Soporte Técnico 234
LMT(680)
• Limita los valores máximo C+1 y mínimo C
de una palabra S.
• S: Palabra dato.
• C: Primera palabra de los límites.
• D: Palabra donde se guarda el resultado.
@LMT(680)
S
C
D
LMT(680)
S
C
D
Soporte Técnico 235
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
Soporte Técnico 236
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
Soporte Técnico 237
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
Soporte Técnico 238
ZONE(682)
• Crea una zona muerta en el dato de salida
D.
• S: Palabra dato.
• C: Primera palabra de los límites.
• D: Palabra donde se guarda el resultado.
@ZONE(682)
S
C
D
ZONE(682)
S
C
D
Soporte Técnico 239
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
Soporte Técnico 240
SCL2(486)
• Convierte una palabra binario con signo en
otra BCD con signo, siguiendo una función
lineal. Offset en binario.
• S: Palabra dato binario.
• P1: Primera palabra de los límites.
• R: Palabra donde se guarda el resultado BCD.
@SCL2(486)
S
P1
R
SCL2(486)
S
P1
R
Soporte Técnico 241
SCL2(486)
P1 Offset
P1+1 X
P1+2 Y
X
Y
Offset
S
(binario)
R
(BCD)
El Offset puede ser
- Positivo
- Negativo
- Cero
Soporte Técnico 242
SCL3(487)
• Convierte una palabra BCD con signo S en
otra binario con signo R, siguiendo una
función lineal. Offset en BCD.
• S: Palabra dato BCD.
• P1: Primera palabra de los límites.
• R: Palabra donde se guarda el resultado binario.
@SCL3(487)
S
P1
R
SCL3(487)
S
P1
R
Soporte Técnico 243
SCL3(487)
P1 Offset
P1+1 X
P1+2 Y
P1+3 Límite superior
P1+4 Límite inferior
El Offset puede ser
- Positivo
- Negativo
- Cero
X
Y
Offset
S
(BCD)
R
(binario)
Límite inferior
Límite superior
Soporte Técnico 244
Comunicaciones
Serie y Network
PMCR, SEND, RECV, CMND
Soporte Técnico 245
Comunicaciones
• Incorpora 8 puertos lógicos. Esto permite
gestionar 8 comunicaciones a la vez sin
inferencias.
• Puede manejar 16 unidades de
comunicación (SCU) + 1 tarjeta de
comunicación interna (SCB).
• En las comunicaciones en red se pueden
hacer puentes entre redes en el mismo
PLC (Ethernet, Controler Link,
CompoBus/D, Compobus/S).
Soporte Técnico 246
PMCR(260)
• Ejecuta una secuencia de comunicaciones
definida en una tarjeta de comunicaciones.
• C1: Palabra de control 1.
• C2: Palabra de control 2.
• S: Primera palabra de enviar.
• R: Primera palabra de recibir.
@PMCR(260)
C1
C2
S
R
PMCR(260)
C1
C2
S
R
Soporte Técnico 247
PMCR(260)
10 + Nº de unidad Unidad de comunicaciones (SCU).
E1 Tarjeta interna (SCB).
Nº de puerto serie (puerto 1 o puerto 2)
Nº de puerto lógico (0÷7)
C1 0111 0001 1110 0001
C2 0000 0011 1110 0111 Nº de secuencia de comunicaciones.
S n Nº de palabras a enviar + 1
S1 Palabras a enviar.
S2
...
R n Nº de palabras recibidas + 1
R1 Palabras recibidas.
R2
...
Soporte Técnico 248
PMCR(260) Ejemplo
PMCR(260)
D00000
D00001
D00100
D01000
D00000 0000 0001 1110 0001
D00001 0000 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.
Soporte Técnico 249
SEND(090)
• Envía datos a un nodo de la red.
• S: Primera palabra a enviar (nodo local).
• D: Primera palabra a recibir (nodo remoto).
• C: Primera palabra de control.
@SEND(090)
S
D
C
SEND(090)
S
D
C
Soporte Técnico 250
SEND(090)
Byte bajo 0÷7 Byte alto 8÷15
C Número de palabras: 0001 hasta el máximo de la red.
C+1 Red destino 00÷7F Puerto serie 01÷04 (Host Link)
C+2 Unidad destino Nodo destino 00 al máximo
C+3 Nº de reintentos bits 8÷11: puerto lógico
12÷15: 0 con respuesta
8 sin respuesta
C+4 Tiempo de monitorización de la respuesta 0001÷FFFF (0.1÷6553.5 seg.)
Soporte Técnico 251
RECV(098)
• Pide datos de un nodo de la red y los
recibe.
• S: Primera palabra a enviar (nodo remoto).
• D: Primera palabra a recibir (nodo local).
• C: Primera palabra de control.
@RECV(098)
S
D
C
RECV(098)
S
D
C
Soporte Técnico 252
RECV(098)
Byte bajo 0÷7 Byte alto 8÷15
C Número de palabras: 0001 hasta el máximo de la red.
C+1 Red fuente 00÷7F Puerto serie 01÷04 (Host Link)
C+2 Unidad fuente Nodo fuente: 00 al máximo
C+3 Nº de reintentos bits 8÷11: puerto lógico
12÷15: 0 con respuesta
8 sin respuesta
C+4 Tiempo de monitorización de la respuesta 0001÷FFFF (0.1÷6553.5 seg.)
Soporte Técnico 253
CMND(490)
• Envía un comando FINS y recibe la
respuesta.
• S: Primera palabra del comando a enviar.
• D: Primera palabra de respuesta.
• C: Primera palabra de control.
@CMND(490)
S
D
C
CMND(490)
S
D
C
Soporte Técnico 254
CMND(490)
Byte bajo 0÷7 Byte alto 8÷15
C Número de Bytes del comando a enviar: 0002 hasta el máximo.
C+1 Número de Bytes del comando a recibir: 0002 hasta el máximo
C+2 Red fuente 00÷7F Puerto serie 01÷04 (Host Link)
C+3 Unidad fuente Nodo fuente: 00 al máximo
C+4 Nº de reintentos bits 8÷11: puerto lógico
12÷15: 0 con respuesta
8 sin respuesta
C+5 Tiempo de monitorización de la respuesta 0001÷FFFF (0.1÷6553.5 seg.)
Soporte Técnico 255
Cambio en Instrucciones
Instrucciones que ya no existen o
han sido modificadas
Soporte Técnico 256
Instrucciones no soportadas
SCAN Impone un tiempo mínimo de ciclo de programa.
LMSG Muestra un mensaje de 32 bits en la consola de programación.
TERM Coloca la consola de programación en modo terminal.
MPRF Refresco de unidades de alta densidad.
XFR2 Transferir bloque EM.
XDMR Leer banco de expansión EM.
INT Gestión de interrupciones.
CMCR Macro de la tarjeta PCMCIA.
DSW Entrada de interruptor digital.
TKY Entrada de teclado decimal.
HKY Entrada de teclado hexadecimal.
MTR Entrada de matriz.
7SEG Conversión a 7 segmentos.
Soporte Técnico 257
Instrucciones modificadas
FAL/FALS Alarma de fallos.
WSFT Shift de palabra.
PMCR Protocol Macro
MSG Mensaje.
TTIM Temporizador totalizador.
SEND/RECV Network Enviar y Recibir.
FCS Frame checksum.
SRCH Búsqueda.
MAX/MIN Encontrar máximo y mínimo.
SUM Suma.
PID Control PID.
IORD/IOWR Leer/Escribir unidades I/O especiales.

Más contenido relacionado

La actualidad más candente

Electronica digital materia 2
Electronica digital materia 2Electronica digital materia 2
Electronica digital materia 2Daniel Morales
 
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Miguel Brunings
 
Electrónica digital: Maquina de estado finitas (FSM´s)
Electrónica digital: Maquina de estado finitas (FSM´s)Electrónica digital: Maquina de estado finitas (FSM´s)
Electrónica digital: Maquina de estado finitas (FSM´s)SANTIAGO PABLO ALBERTO
 
Contador de 4 bytes con flip flop d (7474)
Contador de 4 bytes con flip flop  d (7474)Contador de 4 bytes con flip flop  d (7474)
Contador de 4 bytes con flip flop d (7474)alexis_meca
 
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Jomicast
 
Tema 8 Puertas lógicas y circuitos combinacionales
Tema 8 Puertas lógicas y circuitos combinacionalesTema 8 Puertas lógicas y circuitos combinacionales
Tema 8 Puertas lógicas y circuitos combinacionalesAntonio Ortega Valera
 
¿Sueñan los crackers con ordenadores cuánticos?
¿Sueñan los crackers con ordenadores cuánticos?¿Sueñan los crackers con ordenadores cuánticos?
¿Sueñan los crackers con ordenadores cuánticos?Gonzalo Álvarez Marañón
 
Electrónica digital: Análisis de diseño de circuitos secuenciales
Electrónica digital: Análisis de diseño de circuitos secuenciales Electrónica digital: Análisis de diseño de circuitos secuenciales
Electrónica digital: Análisis de diseño de circuitos secuenciales SANTIAGO PABLO ALBERTO
 
Disparo de los Flip Flop
Disparo de los Flip FlopDisparo de los Flip Flop
Disparo de los Flip FlopCesia Rebeca
 

La actualidad más candente (20)

Trabajo de electronica digital
Trabajo de electronica digitalTrabajo de electronica digital
Trabajo de electronica digital
 
Proyecto Mano Robotica
Proyecto Mano RoboticaProyecto Mano Robotica
Proyecto Mano Robotica
 
Electronica digital materia 2
Electronica digital materia 2Electronica digital materia 2
Electronica digital materia 2
 
Criptografía Cuántica: La última frontera
Criptografía Cuántica: La última fronteraCriptografía Cuántica: La última frontera
Criptografía Cuántica: La última frontera
 
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
 
Electrónica digital: Maquina de estado finitas (FSM´s)
Electrónica digital: Maquina de estado finitas (FSM´s)Electrónica digital: Maquina de estado finitas (FSM´s)
Electrónica digital: Maquina de estado finitas (FSM´s)
 
Contador de 4 bytes con flip flop d (7474)
Contador de 4 bytes con flip flop  d (7474)Contador de 4 bytes con flip flop  d (7474)
Contador de 4 bytes con flip flop d (7474)
 
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
 
Tema 8 Puertas lógicas y circuitos combinacionales
Tema 8 Puertas lógicas y circuitos combinacionalesTema 8 Puertas lógicas y circuitos combinacionales
Tema 8 Puertas lógicas y circuitos combinacionales
 
Circuitos secuenciales=u.o
Circuitos secuenciales=u.oCircuitos secuenciales=u.o
Circuitos secuenciales=u.o
 
Flip flop
Flip flopFlip flop
Flip flop
 
Omron03
Omron03Omron03
Omron03
 
¿Sueñan los crackers con ordenadores cuánticos?
¿Sueñan los crackers con ordenadores cuánticos?¿Sueñan los crackers con ordenadores cuánticos?
¿Sueñan los crackers con ordenadores cuánticos?
 
Divisores de frecuencia
Divisores de frecuenciaDivisores de frecuencia
Divisores de frecuencia
 
Omron02
Omron02Omron02
Omron02
 
Informe 4 digitales
Informe 4 digitalesInforme 4 digitales
Informe 4 digitales
 
Electrónica digital: Análisis de diseño de circuitos secuenciales
Electrónica digital: Análisis de diseño de circuitos secuenciales Electrónica digital: Análisis de diseño de circuitos secuenciales
Electrónica digital: Análisis de diseño de circuitos secuenciales
 
Expo flip flop
Expo flip flopExpo flip flop
Expo flip flop
 
Sd6
Sd6Sd6
Sd6
 
Disparo de los Flip Flop
Disparo de los Flip FlopDisparo de los Flip Flop
Disparo de los Flip Flop
 

Similar a Omron08

47835801 curso-plc-omron
47835801 curso-plc-omron47835801 curso-plc-omron
47835801 curso-plc-omronMoi Torres
 
Diapositiva de Estudio: PLC2.ppt
Diapositiva de Estudio:         PLC2.pptDiapositiva de Estudio:         PLC2.ppt
Diapositiva de Estudio: PLC2.pptjorgejvc777
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2Luis Zurita
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersmarco calderon layme
 
Juego de instrucciones: PIC 16F87x
Juego de instrucciones: PIC 16F87xJuego de instrucciones: PIC 16F87x
Juego de instrucciones: PIC 16F87xConstructora Kaizen
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2Luis Zurita
 
Microcontroladores - Configuración de puertos, bucles y saltos
Microcontroladores - Configuración de puertos, bucles y saltosMicrocontroladores - Configuración de puertos, bucles y saltos
Microcontroladores - Configuración de puertos, bucles y saltosmarco calderon layme
 
Logica digital, compuertas,
Logica digital, compuertas, Logica digital, compuertas,
Logica digital, compuertas, Gabriel Pérez
 
Practica. interpretacion de diagramas electrónicos.
Practica. interpretacion de diagramas electrónicos.Practica. interpretacion de diagramas electrónicos.
Practica. interpretacion de diagramas electrónicos.Wendoly Zamudio
 
Parcial t1 2010 sol
Parcial t1 2010 solParcial t1 2010 sol
Parcial t1 2010 solJair BG
 
Instrucciones para programar el PIC16F877 (1).pdf
Instrucciones para programar el PIC16F877 (1).pdfInstrucciones para programar el PIC16F877 (1).pdf
Instrucciones para programar el PIC16F877 (1).pdfssusere7e6cd
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesiDavid Narváez
 

Similar a Omron08 (20)

Omron01
Omron01Omron01
Omron01
 
47835801 curso-plc-omron
47835801 curso-plc-omron47835801 curso-plc-omron
47835801 curso-plc-omron
 
18 Timers
18 Timers18 Timers
18 Timers
 
Diapositiva de Estudio: PLC2.ppt
Diapositiva de Estudio:         PLC2.pptDiapositiva de Estudio:         PLC2.ppt
Diapositiva de Estudio: PLC2.ppt
 
Plc progr
Plc progrPlc progr
Plc progr
 
Plc intrucciones basicas
Plc intrucciones basicasPlc intrucciones basicas
Plc intrucciones basicas
 
El plc
El plcEl plc
El plc
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Juego de instrucciones: PIC 16F87x
Juego de instrucciones: PIC 16F87xJuego de instrucciones: PIC 16F87x
Juego de instrucciones: PIC 16F87x
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
Microcontroladores - Configuración de puertos, bucles y saltos
Microcontroladores - Configuración de puertos, bucles y saltosMicrocontroladores - Configuración de puertos, bucles y saltos
Microcontroladores - Configuración de puertos, bucles y saltos
 
Logica digital, compuertas,
Logica digital, compuertas, Logica digital, compuertas,
Logica digital, compuertas,
 
Taller cruce por cero
Taller cruce por ceroTaller cruce por cero
Taller cruce por cero
 
Practica. interpretacion de diagramas electrónicos.
Practica. interpretacion de diagramas electrónicos.Practica. interpretacion de diagramas electrónicos.
Practica. interpretacion de diagramas electrónicos.
 
Parcial t1 2010 sol
Parcial t1 2010 solParcial t1 2010 sol
Parcial t1 2010 sol
 
Instrucciones para programar el PIC16F877 (1).pdf
Instrucciones para programar el PIC16F877 (1).pdfInstrucciones para programar el PIC16F877 (1).pdf
Instrucciones para programar el PIC16F877 (1).pdf
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
 
SIMATIC S7
SIMATIC S7SIMATIC S7
SIMATIC S7
 

Último

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxCeciliaGuerreroGonza1
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 

Último (20)

codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
6° SEM30 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 

Omron08

  • 1. Soporte Técnico 1 Instrucciones de CS1 Nuevas instrucciones
  • 2. 2Soporte Técnico Índice • Formato instrucciones • Direccionamientos • Tareas • Interrupciones • Temporizadores • Bloques de programa • Tablas de datos • Cadenas de caracteres • Saltos • Instrucciones de Lazo FOR-NEXT • Desplazar/Rotar • Increment/Decrement • Comparación • Conversión • Coma Flotante • Calendario • Ficheros de Memoria • Control de datos • Comunicaciones • Cambios en Intrucc.
  • 3. Soporte Técnico 3 Formato instrucciones Flancos de subida y bajada Refresco inmediato
  • 4. Soporte Técnico 4 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écnico 5 Ejemplo de Formatos % LD 0000.00 Se activa durante un ciclo de programa con el flanco de bajada de 0000.00 LD 0000.00 % SET 0001.00 Se ejecuta con el flanco de bajada de 0000.00 !@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écnico 6 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écnico 7 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. 0010.06
  • 8. Soporte Técnico 8 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écnico 9 SETA(530) RSTA(531) @SETA(530) W000 &4 &36 @RSTA(531) W000 &4 &36 W000 0000 0000 0000 1111 W001 0000 0000 0000 0000 W002 1111 1111 0000 0000 W000 1111 1111 1111 0000 W001 1111 1111 1111 1111 W002 0000 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
  • 11. Soporte Técnico 11 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écnico 12 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écnico 13 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écnico 14 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écnico 15 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écnico 16 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écnico 17 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 IR0 0000 0195
  • 18. Soporte Técnico 18 Tareas División del programa en tareas
  • 19. Soporte Técnico 19 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écnico 20 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écnico 21 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écnico 22 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écnico 23 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écnico 24 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écnico 25 TKON(820) • N: debe ser una constante comprendida entre #0 y #31. Debe Existir la tarea N. • Si la instrucción TKON(820) es ejecutada desde la tarea cíclica m, la tarea N se ejecutará según: »m<N: en el mismo ciclo de scan. »m>N: en el siguiente ciclo de scan. • Si ya se está ejecutando la tarea N, la instrucción TKON(820) que activa la tarea N se trata como NOP(000).
  • 26. Soporte Técnico 26 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écnico 27 TKOF(821) • N: debe ser una constante comprendida entre #0 y #31. Debe existir la tarea N. • Si la instrucción TKOF(821) es ejecutada desde la tarea cíclica m, la tarea N se pondrá en stand by según: »m<N: en el mismo ciclo de scan. »m>N: en el siguiente ciclo de scan.
  • 28. Soporte Técnico 28 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.
  • 30. Soporte Técnico 30 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écnico 31 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écnico 32 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. N Entrada S 0 Unidad interrupción 0 Bits 0÷7 máscara de interrupcion 100÷107 1 Unidad interrupción 1 Bits 0÷7 máscara de interrupcion 108÷115 2 Unidad interrupción 2 Bits 0÷7 máscara de interrupcion 116÷123 3 Unidad interrupción 3 Bits 0÷7 máscara de interrupcion 124÷131 4 Programada 2 5 Programada 3 0000: Enmascarar interrupción. 0001÷270F: Intervalo de interrupción.
  • 33. Soporte Técnico 33 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écnico 34 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écnico 35 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écnico 36 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écnico 37 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
  • 38. Soporte Técnico 38 CLI(691) Ejemplo CLI(691) #2 #0048 Resetea las entradas grabadas 3 y 6 de la unidad de interrupción 2. Entrada 7654 3210 0000 0000 0100 1000 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écnico 39 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écnico 40 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écnico 41 DI(693) y EI(694) Ejemplo DI EI DI END 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écnico 42 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écnico 43 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écnico 44 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écnico 45 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écnico 46 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écnico 47 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
  • 49. Soporte Técnico 49 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écnico 50 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écnico 51 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écnico 52 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écnico 53 TIML(542) D1 0000 0000 0000 000 1 Flag de finalización S+1 S Tiempo total SV debe estar entre 0 y 9999 9999 D2+1 D2 Valor 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écnico 54 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écnico 55 MTIM(543) D1 0000 00 0 0 1 1 1 1 1 1 1 1 Flags de finalización de cada SV Flag de reset Flag de pausa D2 Valor del PV del temporizador S S+1 S+2 S+3 S+4 S+5 S+6 S+7 Valores de los SV de cada salida Cuando el PV alcanza el valor de cada SV se activa el flag correspondiente al SV SV 1 SV2 Flag de finalización 1 Flag de finalización 2 PV
  • 56. Soporte Técnico 56 Bloques de Programa En mnemónico
  • 57. Soporte Técnico 57 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écnico 58 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écnico 59 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écnico 60 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écnico 61 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écnico 62 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écnico 63 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 A B C A C 0.01 ON 0.01 OFF
  • 64. Soporte Técnico 64 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 C CC B
  • 65. Soporte Técnico 65 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 C CC B
  • 66. Soporte Técnico 66 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 C CC B
  • 67. Soporte Técnico 67 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 C CC B
  • 68. Soporte Técnico 68 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écnico 69 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 A B C A B B B C B
  • 70. Soporte Técnico 70 Tablas de datos Tablas basadas en pilas Tablas basadas en registros
  • 71. Soporte Técnico 71 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écnico 72 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écnico 73 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écnico 74 SSET(630) Ejemplo SSET(630) D00000 &10 D00000 0009 D00001 0001 D00002 0004 D00003 0001 D00004 0000 D00005 0000 D00006 0000 D00007 0000 D00008 0000 D00009 0000 Dirección donde apunta el puntero Última dirección de la tabla en binario Datos Puntero
  • 75. Soporte Técnico 75 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écnico 76 PUSH(632) Ejemplo D00000 0009 D00001 0001 D00002 0006 D00003 0001 D00004 1234 D00005 5678 D00006 9012 D00007 0000 D00008 0000 D00009 0000 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écnico 77 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écnico 78 FIFO(633) Ejemplo 0009 0001 0006 0001 5678 9012 9012 0000 0000 0000 Dirección donde apunta el puntero Puntero - 1 Puntero D00000 0009 D00001 0000 D00002 0007 D00003 0000 D00004 1234 D00005 5678 D00006 9012 D00007 0000 D00008 0000 D00009 0000 Tabla FIFO(633) D00000 W000 W000 1234 Última dirección de la tabla en binario
  • 79. Soporte Técnico 79 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écnico 80 LIFO(364) Ejemplo 0009 0001 0005 0001 1234 5678 9012 0000 0000 0000 Dirección donde apunta el puntero Puntero - 1 Puntero D00000 0009 D00001 0000 D00002 0006 D00003 0000 D00004 1234 D00005 5678 D00006 9012 D00007 0000 D00008 0000 D00009 0000 Tabla LIFO(634) D00000 W000 W000 9012 Última dirección de la tabla en binario
  • 81. Soporte Técnico 81 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écnico 82 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écnico 83 DIM(631) Ejemplo @DIM(631) &12 &5 &3 D00000 D00000 D00004 D00005 D00009 D00010 D00014 Registro 2 Registro 3 Registro 1 5 Palabras 5 Palabras 5 Palabras Tabla número 12 Registros de 5 palabras 3 Registros Empieza en la dirección D00000
  • 84. Soporte Técnico 84 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écnico 85 SETR(635) Ejemplo @SETR(635) &12 &2 IR11 D00000 D00004 D00005 D00009 D00010 D00014 Registro 2 Registro 3 Registro 1 5 Palabras 5 Palabras 5 Palabras IR11 D00005 Tabla 12 Registro 2 Tabla 12
  • 86. Soporte Técnico 86 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écnico 87 GETR(636) Ejemplo @GETR(636) &12 IR11 W000 D00000 D00004 D00005 D00009 D00010 D00014 Registro 2 Registro 3 Registro 1 5 Palabras 5 Palabras 5 Palabras W000 0002 Tabla 12 Registro índice 11 Nº de registro Tabla 12 IR11 D00005
  • 88. Soporte Técnico 88 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écnico 89 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écnico 90 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 IR00 D00104 DR00 0003 W000 000A W001 8000 Guarda el Nº de coincidencias 10 Palabras
  • 91. Soporte Técnico 91 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écnico 92 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écnico 93 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 IR00 D00101 W002 6589 W000 000A W001 C000Binario con signo Guarda la dirección en IR00 10 Palabras
  • 94. Soporte Técnico 94 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écnico 95 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écnico 96 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 IR00 D00101 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écnico 97 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écnico 98 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écnico 99 Cadenas de caracteres Instrucciones de texto
  • 100. Soporte Técnico 100 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écnico 101 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écnico 102 LEN$(650) Ejemplo @LEN$(664) W000 W100 W000 O M W001 R O W002 N W000 4F 4D W001 52 4F W002 4E 00 S W000 0006 D
  • 103. Soporte Técnico 103 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écnico 104 MOV$(664) Ejemplo W100 4F 4D W101 52 4F W102 4E 00 W000 O M W001 R O W002 N W000 4F 4D W001 52 4F W002 4E 00 S D @MOV$(664) W000 W100
  • 105. Soporte Técnico 105 +$(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écnico 106 +$(656) Ejemplo D00000 4F 4D D00001 52 4F D00002 4E 53 D00003 50 41 D00004 49 4E D00005 00 00 W000 4F 4D W001 52 4F W002 4E 00 W100 53 50 W101 41 49 W102 4E 00 S2 D @+$(656) W000 W100 D00000 & OMRONSPAIN OMRON SPAIN S1
  • 107. Soporte Técnico 107 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écnico 108 LEFT$(652) Ejemplo D LEFT$(652) W000 &5 D00000 OMRON D00000 4F 4D D00001 52 4F D00002 4E 00 OMRON SPAIN S1 W000 4F 4D W001 52 4F W002 4E 20 W002 53 50 W002 41 49 W002 4E 00
  • 109. Soporte Técnico 109 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écnico 110 RGHT$(653) Ejemplo D RGHT$(653) W000 &5 D00000 SPAIN D00000 53 50 D00001 41 49 D00002 4E 00 OMRON SPAIN S1 W000 4F 4D W001 52 4F W002 4E 20 W002 53 50 W002 41 49 W002 4E 00
  • 111. Soporte Técnico 111 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écnico 112 MID$(654) Ejemplo D ON SP D00000 4F 4E D00001 20 53 D00002 50 00 OMRON SPAIN S1 W000 4F 4D W001 52 4F W002 4E 20 W002 53 50 W002 41 49 W002 4E 00 @MID$(654) W000 &5 &4 D00000
  • 113. Soporte Técnico 113 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écnico 114 FIND$(660) Ejemplo D00000 4F 4D D00001 52 4F D00002 4E 53 D00003 50 41 D00004 49 4E D00005 00 00 W100 53 50 W101 41 49 W102 4E 00 S2S1 @FIND$(660) D00000 W100 W000 OMRONSPAIN SPAIN W000 0006 D
  • 115. Soporte Técnico 115 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écnico 116 RPLC$(661) Ejemplo D00100 4F 4D D00101 52 4F D00102 4E 20 D00103 53 55 D00104 52 00 D00105 00 00 W100 20 53 W101 55 52 W102 00 00 S2 D 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écnico 117 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écnico 118 DEL$(658) Ejemplo D OMRON SPAIN S1 W100 4F 4D W101 52 4F W102 4E 00 W102 00 00 W102 00 00 W102 00 00 @DEL$(658) W000 &6 &6 D00000 W000 4F 4D W001 52 4F W002 4E 20 W002 53 50 W002 41 49 W002 4E 00 OMRON
  • 119. Soporte Técnico 119 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écnico 120 XCGH$(665) Ejemplo W100 4F 4D W101 52 4F W102 4E 00 W000 4F 4D W001 52 4F W002 4E 00 Ex1 Ex2 @XCHG$(665) W000 W100
  • 121. Soporte Técnico 121 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écnico 122 CLR$(666) Ejemplo W100 00 00 W101 00 00 W102 00 00 W000 4F 4D W001 52 4F W002 4E 00 S S @CLR$(666) W000
  • 123. Soporte Técnico 123 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écnico 124 INS$(657) Ejemplo W100 20 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écnico 125 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écnico 126 Comparación de cadenas <>$(671) S1 S2 <$(672) S1 S2 >=$(675) S1 S2 <=$(673) S1 S2 =$(670) S1 S2 >$(674) S1 S2 S1 ≠ S2 S1 ≤ S2 longitud S1 = S2 S1 > S2 longitud S1 ≥ S2 longitud S1 < S2 longitud
  • 127. Soporte Técnico 127 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
  • 129. Soporte Técnico 129 Saltos JMP(4) CJP(510) CJPN(511) JMP0(515) JME(5) JME(5) JME(5) JME0(516) Condición OFF ON OFF OFF Nº máximo 1.024 en total Sin límite Tiempo ejecución No se ejecutan NOP(000) Estado de salidas Bits y palabras mantienen su estado anterior Temporizadores Continúan temporizando Bloques de programas Siempre ON OFF No permitido Tabla comparativa de los saltos y los saltos condicionales.
  • 130. Soporte Técnico 130 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écnico 131 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écnico 132 Instrucciones de lazo FOR, NEXT, BREAK
  • 133. Soporte Técnico 133 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écnico 134 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écnico 135 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écnico 136 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écnico 137 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 D00100 D00100 MOV
  • 138. Soporte Técnico 138 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écnico 139 FOR, NEXT y BREAK BREAK(514) C FOR(512) &5 A NEXT(513)
  • 140. Soporte Técnico 140 Desplazamiento y rotación De todos o N bits en una y dos palabras
  • 141. Soporte Técnico 141 Desplazamiento y rotación 1 Canal 2 Canales Desplazamiento ASL(025) ASLL(570) ASR(026) ASRL(571) Rotación ROL(027) ROLL(572) ROR(028) RORL(573) Rotación sin RLNC(574) RLNL(576) Carry RRNC(575) RRNL(577)
  • 142. Soporte Técnico 142 De N bits 1 Canal 2 Canales Desplazamiento NASL(580) NSLL(582) de N bits NASR(581) NSRL(583) Desplazamiento NSFL(578) de N bits como dato NSFR(579)
  • 143. Soporte Técnico 143 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écnico 144 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écnico 145 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écnico 146 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écnico 147 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 10 1 CY Perdidos
  • 148. Soporte Técnico 148 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écnico 149 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écnico 150 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écnico 151 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 10 1 CY Bits 3 a 12 Bits 3 a 12
  • 152. Soporte Técnico 152 Incrementar Decrementar Autoincremento y Autodecremento
  • 153. Soporte Técnico 153 ++(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écnico 154 --(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écnico 155 Binario Ejemplos --L(593) D00000 --(592) D00000 ++L(591) D00000 ++(590) D00000 D0 D0 001A -1 0019 D0 D0 0019 +1 001A D0 D1 D0 D1 001A 0000 -1 0019 FFFF D0 D1 D0 D1 0019 FFFF +1 001A 0000
  • 156. Soporte Técnico 156 ++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écnico 157 --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écnico 158 BCD Ejemplos --BL(597) D00000 --B(596) D00000 ++BL(595) D00000 ++B(594) D00000 D0 D0 0020 -1 0019 D0 D0 0019 +1 0020 D0 D1 D0 D1 0020 0000 -1 0019 9999 D0 D1 D0 D1 0019 9999 +1 0020 0000
  • 160. Soporte Técnico 160 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écnico 161 Comparación de palabras Símbolo Formato Longitud =(300) -: Sin signo -: 1 palabra =L(301) -: Sin signo L: 2 palabras =S(302) S: Con signo -: 1 palabra =SL(303) S: Con signo -: 2 palabras <>(305) -: Sin signo -: 1 palabra <>L(306) -: Sin signo L: 2 palabras <>S(307) S: Con signo -: 1 palabra <>SL(308) S: Con signo -: 2 palabras <(310) -: Sin signo -: 1 palabra <L(311) -: Sin signo L: 2 palabras <S(312) S: Con signo -: 1 palabra <SL(313) S: Con signo -: 2 palabras <=(315) -: Sin signo -: 1 palabra <=L(316) -: Sin signo L: 2 palabras <=S(317) S: Con signo -: 1 palabra <=SL(318) S: Con signo -: 2 palabras >(320) -: Sin signo -: 1 palabra >L(321) -: Sin signo L: 2 palabras >S(322) S: Con signo -: 1 palabra <SL(323) S: Con signo -: 2 palabras >=(325) -: Sin signo -: 1 palabra >=L(326) -: Sin signo L: 2 palabras >=S(327) S: Con signo -: 1 palabra >=SL(328) S: Con signo -: 2 palabras
  • 162. Soporte Técnico 162 Comparación Ejemplo Activa la salida 0000.00 si D00000 es menor que D00001 o D00002 es igual que D00003 <LS(313) D0000 D0002 0000.00 Activa la salida 0000.00 si D00000 y D00001 es menor que D00002 y D00003 Tiene en cuenta el signo. <(303) D0000 D0001 0000.00 =(300) D0002 D0003 =S(302) D0002 D0003 <S(312) D0000 D0001 0000.00 Activa la salida 0000.00 si D00000 es menor que D00001 y D00002 es igual que D00003 Tiene en cuenta el signo. LD AND OR
  • 163. Soporte Técnico 163 Instrucciones de conversión de datos SIGN, BINS, BISL, BCDS y BDSL
  • 164. Soporte Técnico 164 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écnico 165 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écnico 166 BINS(470) 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)
  • 167. Soporte Técnico 167 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écnico 168 BISL(472) 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)
  • 169. Soporte Técnico 169 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écnico 170 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écnico 171 Limitaciones BCDS y BDSL • En BCDS el dato S está limitada según C: • C=0 FC19 a FFFF y 0000 a 03E7 • C=1 F0C1 a FFFF y 0000 a 1F3F • C=2 FC19 a FFFF y 0000 a 270F • C=3 F831 a FFFF y 0000 a 270F • En BDSL el dato S está limitada según C: • C=0 FF67 6981 a FFFF FFFF y 0 a 0098 967F • C=1 FB3B 4C01 a FFFF FFFF y 0 a 04C4 B3FF • C=2 FF67 6981 a FFFF FFFF y 0 a 05F5 E0FF • C=3 FECE D301 a FFFF FFFF y 0 a 05F5 E0FF
  • 172. Soporte Técnico 172 Instrucciones en Coma Flotante Números reales en coma flotante.
  • 173. Soporte Técnico 173 Números en Coma Flotante • Se pueden expresar los números: • -∞ (e=255, f=0, s=0) • -3.402823·1038 ÷ -1.175494·10-38 • 0 (e=0) • 1.175494·10-38 ÷ 3.402823·1038 ∀∞ (e=255, f=0, s=1) • NaN (e=255, f≠0): Número no válido. • No es necesario conocer el formato de estos números, sólo que ocupan 32 bits.
  • 174. Soporte Técnico 174 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écnico 175 IEEE754 • Expresan números reales en 32 bits conforme al estándar IEEE754: • f: Mantisa 23 bits bit 0 al 22 • e: Exponente 8 bits bit 23 al 30 • s: Signo 1 bit bit 31 • (-1)s ·2e-127 ·(1+f·2-23 ) • 1#10000000#11000000000000000000000 • Signo: (-1)1 = -1 • Exponente: 2128-127 =21 =2 • Mantisa: 1+6291456·2-23 =1+0.75=1.75 • Resultado: -1.75·2= -3.5
  • 176. Soporte Técnico 176 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.
  • 177. Soporte Técnico 177 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écnico 178 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écnico 179 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écnico 180 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écnico 181 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écnico 182 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écnico 183 +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écnico 184 -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écnico 185 +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écnico 186 *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écnico 187 /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écnico 188 *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écnico 189 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écnico 190 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écnico 191 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écnico 192 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écnico 193 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écnico 194 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écnico 195 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écnico 196 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écnico 197 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écnico 198 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écnico 199 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écnico 200 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écnico 201 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écnico 202 PWR, SQRT Ejemplo PWR(840) D00000 D00002 D00100 D00100 1011 1111 0001 0000 D00101 0100 1001 0000 0001 96 =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écnico 203 EXP(467) • Calcula el exponencial (eS ) de un número en coma flotante (32 bits). El resultado está en coma flotante. • S: Primera palabra del exponente (-∞ ÷ ∞). • R: Primera palabra del resultado (0 ÷ ∞). • e2,718281828459. • El resultado siempre es positivo. EXP(467) S R @EXP(467) S R
  • 204. Soporte Técnico 204 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écnico 205 EXP, LOG Ejemplo D00100 1111 1000 0101 0100 D00101 0100 0000 1010 1101 e1 =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écnico 206 Instrucciones de calendario Fecha y hora
  • 207. Soporte Técnico 207 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écnico 208 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écnico 209 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écnico 210 DATE(735) Dirección Contenido A35100 ÷ A35107 Segundos 00 ÷ 59 A35108 ÷ A35115 Minutos 00 ÷ 59 A35100 ÷ A35207 Hora 00 ÷ 23 A35108 ÷ A35215 Día 01 ÷ 31 A35100 ÷ A35307 Mes 01 ÷ 12 A35108 ÷ A35315 Año 00 ÷ 99 A35100 ÷ A35407 Día Semana 00 ÷ 06 A35108 ÷ A35415 Minutos 00 ÷ 59 La fecha y hora se guardan en los registros auxiliares:
  • 211. Soporte Técnico 211 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écnico 212 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écnico 213 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écnico 214 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écnico 215 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écnico 216 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écnico 217 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écnico 218 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écnico 219 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écnico 220 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écnico 221 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écnico 222 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écnico 223 Ficheros de Memoria Lectura / Escritura de ficheros
  • 224. Soporte Técnico 224 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écnico 225 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écnico 226 FREAD(700) C 0000 0000 0001 0001 0: Tarjeta de memoria 1: Memoria EM 0: Leer datos 1: Leer número de palabras S1+3 S1+2 Palabra del fichero por la que se empieza a leer (en hexadecimal). S1+1 S1 Número de palabras del fichero que se quieren leer (en hexadecimal).
  • 227. Soporte Técnico 227 FREAD(700) S2: Primera palabra del nombre del fichero que se quiere leer. S2 A B C D X Y Z ABCDXYZ Directorio ABCD Nombre del fichero XYZ D: Dirección donde se guardan los datos del fichero leído. Si se lee el número de palabras se almacenan en D y D+1 D+1 D Número de palabras del fichero leído (en hexadecimal).
  • 228. Soporte Técnico 228 FREAD(700) Ejemplo @FREAD(700) #0000 D00200 D00300 D00400 0000.00 A343.13 Lee 10 palabras desde la 5 hasta la 14 del fichero ABCDXY de la tarjeta de memoria y las guarda en D00400 hasta D00409 D00200 5C 41 Directorio ABCD D00201 42 43 Fichero XY D00202 44 5C D00203 58 59 D00200 00 0A 10 palabras. D00201 00 00 D00202 00 05 Empieza en la palabra 5. D00203 00 00 10 5 Tarjeta de memoria ABCDXY D00400 D00409 Área DM
  • 229. Soporte Técnico 229 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écnico 230 FWRIT(701) C 0000 0000 0001 0001 0: Tarjeta de memoria 1: Memoria EM 0: Añadir al final 1: Sobrescribir D1+3 D1+2 Palabra del fichero por donde se empieza a escribir (en hexadecimal) sólo si se sobreescribe. D1+1 D1 Número de palabras de memoria que se quieren guardar (en hexadecimal).
  • 231. Soporte Técnico 231 FWRIT(701) D2: Primera palabra del nombre del fichero a escribir. D2 A B C D X Y Z ABCDXYZ 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écnico 232 FWRIT(701) Ejemplo @FWRIT(701) #0010 D00200 D00300 D00400 0000.01 A343.13 Guarda 10 palabras desde DM00400 hasta DM00409 en el fichero ABCDXY de la tarjeta de memoria empezando en la palabra (inicio del fichero + 5). D00200 5C 41 Directorio ABCD D00201 42 43 Fichero XY D00202 44 5C D00203 58 59 D00200 00 0A 10 palabras. D00201 00 00 D00202 00 05 Empieza en la palabra 5. D00203 00 00 10 5 Tarjeta de memoria ABCDXY D00400 D00409 Área DM
  • 233. Soporte Técnico 233 Control de datos Control de datos analógicos
  • 234. Soporte Técnico 234 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écnico 235 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écnico 236 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écnico 237 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écnico 238 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écnico 239 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écnico 240 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écnico 241 SCL2(486) P1 Offset P1+1 X P1+2 Y X Y Offset S (binario) R (BCD) El Offset puede ser - Positivo - Negativo - Cero
  • 242. Soporte Técnico 242 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écnico 243 SCL3(487) P1 Offset P1+1 X P1+2 Y P1+3 Límite superior P1+4 Lí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écnico 244 Comunicaciones Serie y Network PMCR, SEND, RECV, CMND
  • 245. Soporte Técnico 245 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écnico 246 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écnico 247 PMCR(260) 10 + Nº de unidad Unidad de comunicaciones (SCU). E1 Tarjeta interna (SCB). Nº de puerto serie (puerto 1 o puerto 2) Nº de puerto lógico (0÷7) C1 0111 0001 1110 0001 C2 0000 0011 1110 0111 Nº de secuencia de comunicaciones. S n Nº de palabras a enviar + 1 S1 Palabras a enviar. S2 ... R n Nº de palabras recibidas + 1 R1 Palabras recibidas. R2 ...
  • 248. Soporte Técnico 248 PMCR(260) Ejemplo PMCR(260) D00000 D00001 D00100 D01000 D00000 0000 0001 1110 0001 D00001 0000 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écnico 249 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écnico 250 SEND(090) Byte bajo 0÷7 Byte alto 8÷15 C Número de palabras: 0001 hasta el máximo de la red. C+1 Red destino 00÷7F Puerto serie 01÷04 (Host Link) C+2 Unidad destino Nodo destino 00 al máximo C+3 Nº de reintentos bits 8÷11: puerto lógico 12÷15: 0 con respuesta 8 sin respuesta C+4 Tiempo de monitorización de la respuesta 0001÷FFFF (0.1÷6553.5 seg.)
  • 251. Soporte Técnico 251 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écnico 252 RECV(098) Byte bajo 0÷7 Byte alto 8÷15 C Número de palabras: 0001 hasta el máximo de la red. C+1 Red fuente 00÷7F Puerto serie 01÷04 (Host Link) C+2 Unidad fuente Nodo fuente: 00 al máximo C+3 Nº de reintentos bits 8÷11: puerto lógico 12÷15: 0 con respuesta 8 sin respuesta C+4 Tiempo de monitorización de la respuesta 0001÷FFFF (0.1÷6553.5 seg.)
  • 253. Soporte Técnico 253 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écnico 254 CMND(490) Byte bajo 0÷7 Byte alto 8÷15 C Número de Bytes del comando a enviar: 0002 hasta el máximo. C+1 Número de Bytes del comando a recibir: 0002 hasta el máximo C+2 Red fuente 00÷7F Puerto serie 01÷04 (Host Link) C+3 Unidad fuente Nodo fuente: 00 al máximo C+4 Nº de reintentos bits 8÷11: puerto lógico 12÷15: 0 con respuesta 8 sin respuesta C+5 Tiempo de monitorización de la respuesta 0001÷FFFF (0.1÷6553.5 seg.)
  • 255. Soporte Técnico 255 Cambio en Instrucciones Instrucciones que ya no existen o han sido modificadas
  • 256. Soporte Técnico 256 Instrucciones no soportadas SCAN Impone un tiempo mínimo de ciclo de programa. LMSG Muestra un mensaje de 32 bits en la consola de programación. TERM Coloca la consola de programación en modo terminal. MPRF Refresco de unidades de alta densidad. XFR2 Transferir bloque EM. XDMR Leer banco de expansión EM. INT Gestión de interrupciones. CMCR Macro de la tarjeta PCMCIA. DSW Entrada de interruptor digital. TKY Entrada de teclado decimal. HKY Entrada de teclado hexadecimal. MTR Entrada de matriz. 7SEG Conversión a 7 segmentos.
  • 257. Soporte Técnico 257 Instrucciones modificadas FAL/FALS Alarma de fallos. WSFT Shift de palabra. PMCR Protocol Macro MSG Mensaje. TTIM Temporizador totalizador. SEND/RECV Network Enviar y Recibir. FCS Frame checksum. SRCH Búsqueda. MAX/MIN Encontrar máximo y mínimo. SUM Suma. PID Control PID. IORD/IOWR Leer/Escribir unidades I/O especiales.