Está en la página 1de 257

Soporte Tcnico 1

Instrucciones de CS1
Nuevas instrucciones
Soporte Tcnico 2
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
Comparacin
Conversin
Coma Flotante
Calendario
Ficheros de Memoria
Control de datos
Comunicaciones
Cambios en Intrucc.
Soporte Tcnico 3
Formato instrucciones
Flancos de subida y bajada
Refresco inmediato
Soporte Tcnico 4
Formato de instrucciones
Flanco de subida @
La instruccin se ejecuta con el flanco de subida de
la condicin de ejecucin.
La entrada se activa con el flanco de subida.
Flanco de bajada %
La instruccin se ejecuta con el flanco de bajada de
la condicin de ejecucin.
La entrada se activa con el flanco de bajada.
Refresco inmediato !
La instruccin hace un refresco de las variables al
ejecutarse.
Puede combinar el flanco de subida o bajada.
Soporte Tcnico 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 Tcnico 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: Nmero de bit.
TSTN es la instruccin negada de TST.
TSTN(351)
S
N
TST(350)
S
N
Soporte Tcnico 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 Tcnico 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: Nmero de bits.
@SETA(530)
D
N1
N2
SETA(530)
D
N1
N2
@RSTA(531)
D
N1
N2
RSTA(531)
D
N1
N2
Soporte Tcnico 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 Tcnico 10
Direccionamientos
Addessing
Soporte Tcnico 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(-)
Direccin en BCD (*D, *E, *En_)
Direccin en Binario (@D, @E, @En_)
Indirecto Indexado (IR)
,IR0
+234,IR0
DR0,IR0
,IR0++
Soporte Tcnico 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 direccin(BCD)indicada en D00000
Soporte Tcnico 13
Ejemplos
MOV(21)
W000 Directo
@D00000 Indirecto Binario
MOV(21) Escribe 1A en la direccin indicada en (IR0+DR0)
#1A Inmediato
DR0,IR0 Indexado
Escribe el contenido de W000 en la
direccin (Binaria) indicada en D00000
MOV(21) Escribe 1A en la direccin indicada en IR0
#1A Inmediato
,IR0 Indexado
MOV(21) Escribe 1A en la direccin indicada en (IR0+23)
#1A Inmediato
+23,IR0 Indexado
Soporte Tcnico 14
Ejemplos
MOV(21)
#1A Inmediato
,--IR0 Indexado
Escribe 1A en la direccin indicada en (IR0-2)
y disminuye IR0 dos unidades
MOV(21)
#1A Inmediato
,-IR0 Indexado
Escribe 1A en la direccin indicada en (IR0-1)
y disminuye IR0 una unidad
MOV(21)
#1A Inmediato
,IR0++ Indexado
Escribe 1A en la direccin indicada en IR0
y aumenta IR0 dos unidades
MOV(21)
#1A Inmediato
,IR0+ Indexado
Escribe 1A en la direccin indicada en IR0
y aumenta IR0 una unidad
Soporte Tcnico 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 direccin.
@MOVR(560)
S
D
MOVR(560)
S
D
Soporte Tcnico 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 Tcnico 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 nmero de temporizador T0000 en el
registro ndice IR0
IR0 0000 0195
Soporte Tcnico 18
Tareas
Divisin del programa en tareas
Soporte Tcnico 19
Programa y Tareas
Dentro de un mismo PLC se puede repartir
un programa en tareas cclicas o de
interrupcin.
Tarea Cclica 31
Tarea Interrupcin Programada 02
Tarea Cclica 01
Tarea Cclica 02
Tarea Cclica 00
Tarea interrupcin I/O 107
Soporte Tcnico 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
cclica 01
Tarea
cclica 02
Tarea
cclica 03
Tarea
cclica 00
Programa B
00-02-03
Programa A
00-01-03
Soporte Tcnico 21
Tarea cclica
Se pueden programar 32 tareas cclicas
0031.
Estas tareas se ejecutan por orden de
numeracin: La tarea 00 es la inicial, luego
la 01, ... hasta la 31 que es la ltima.
Cada una de estas tareas acaba con la
instruccin 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 Tcnico 22
CX-Programer
Se pueden utilizar dos clases de smbolos
(variables):
Globales:
Sirven para todas las tareas (cclicas y de
interrupcin) y no se pueden duplicar los nombres.
Son nicas para cada PLC.
Locales:
Slo tienen validez en la tarea donde se han
creado, bien sea cclica o de interrupcin.
Estas variables se pueden repetir en otras tareas,
pero nunca en la misma tarea.
Soporte Tcnico 23
Control de Tareas
Existen dos tipos de tareas:
Tareas cclicas: Se ejecutan segn est su flag
de ejecucin TK00 a TK31. Una vez por ciclo
de scan y en orden segn su nmero de tarea.
Tareas de interrupcin: Se ejecutan cuando se
cumple la condicin de interrupcin,
independientemente del ciclo de scan.
Para controlar qu tareas cclicas se
ejecutan en un ciclo de scan se utilizan las
instrucciones TKON(820) y TKOF(821).
Soporte Tcnico 24
TKON (820)
Permite que se ejecute la tarea cclica,
pone a 1 el flag de la tarea TK00 a TK31.
Slo se puede ejecutar esta instruccin
desde una tarea cclica, de otro modo da
un error ER a 1.

@TKON(820)
N
TKON(820)
N
Soporte Tcnico 25
TKON(820)
N: debe ser una constante comprendida
entre #0 y #31. Debe Existir la tarea N.
Si la instruccin TKON(820) es ejecutada
desde la tarea cclica m, la tarea N se
ejecutar segn:
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
instruccin TKON(820) que activa la tarea
N se trata como NOP(000).
Soporte Tcnico 26
TKOF (821)
Pone en stand by la tarea cclica, pone a 0
el flag de la tarea TK00 a TK31.
Se puede ejecutar esta instruccin desde
una tarea cclica o desde una tarea de
interrupcin.
@TKOF(821)
N
TKOF(821)
N
Soporte Tcnico 27
TKOF(821)
N: debe ser una constante comprendida
entre #0 y #31. Debe existir la tarea N.
Si la instruccin TKOF(821) es ejecutada
desde la tarea cclica m, la tarea N se
pondr en stand by segn:
m<N: en el mismo ciclo de scan.
m>N: en el siguiente ciclo de scan.
Soporte Tcnico 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 cclicas 00 y 03 estn prefijadas para que se
ejecuten al arrancar el PLC.
Soporte Tcnico 29
Interrupciones
Control de interrupciones
Soporte Tcnico 30
Control de Interrupciones
Existen 4 tipos de interrupciones:
Fallo de alimentacin (Tarea Int. 1)
Programadas en el tiempo (Tareas Int. 2, 3)
Unidades de interrupcin 03 (Tareas Int. 100131)
Entradas externas (Tareas Int. 0 255)
La interrupcin de fallo de alimentacin no
se puede controlar mediante instrucciones.
Las instrucciones para controlar
interrupciones son:
MSKS(690), MSKR(692), CLI(691), EI(694), DI(693)
Soporte Tcnico 31
MSKS(690)
Enmascarar interrupciones:
Unidades de interrupcin (ON/OFF).
Programadas en el tiempo (tiempo/OFF).
N:Identificador de interrupcin(#0#5).
S:Datos de enmascaramiento o de
temporizacin.
MSKS(690)
N
S
@MSKS(690)
N
S
Soporte Tcnico 32
MSKS(690) - N y S
Explicacin de los parmetros N y S
N: Constante #0#5
S: Valor constante o de cualquier rea de datos
excepto Registro ndice.
N Entrada S
0 Unidad interrupcin 0 Bits 07 mscara de interrupcion 100107
1 Unidad interrupcin 1 Bits 07 mscara de interrupcion 108115
2 Unidad interrupcin 2 Bits 07 mscara de interrupcion 116123
3 Unidad interrupcin 3 Bits 07 mscara de interrupcion 124131
4 Programada 2
5 Programada 3
0000: Enmascarar interrupcin.
0001270F: Intervalo de interrupcin.
Soporte Tcnico 33
MSKS(690)- N y S
N es la entrada de interrupcin:
Unidad de interrupcin (0,1,2,3).
Interrupcin programada (2, 3).
Los valores 1 de S enmascaran las tareas
de interrupcin asociadas a la entrada N.
Si N es 4 5 se tratan de tareas de
interrupcin 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 interrupcin.
Soporte Tcnico 34
MSKS(690) Ejemplo
MSKS(690)
#0
#00FE
Desenmascara la entrada 0 de la unidad
de interrupcin 0.
MSKS(690)
#4
#0000
Enmascara la tarea de interrupcin
programada 2.
MSKS(690)
#5
#03E8
Sita el intervalo de la tarea de interrupcin
programada 3 a 10 s (Tiempo 10 ms).
Soporte Tcnico 35
MSKR(692)
Lee los parmetros de la interrupcin
introducidos con la instruccin anterior
MSKS(690).
N: Identificador de interrupcin. 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 Tcnico 36
CLI(691)
Borra o retiene(guarda) las interrupciones
acumuladas o programa el intervalo de las
interrupciones programadas.
Esta instruccin se usa para controlar las
interrupciones simultneas.
N y S tienen el mismo significado que en
MSKS(690).
CLI(691)
N
S
@CLI(692)
N
S
Soporte Tcnico 37
CLI(691)
Cuando se estn ejecutando interrupciones
encadenadas, es posible guardar las
interrupciones menos prioritarias que haba
antes de la actual (ms prioritaria).
No se registrarn las nuevas interrupciones
de una tarea de interrupcin si est
guardada con la instruccin CLI(691).
Para las interrupciones programadas se les
puede asignar otro intervalo para que no
interfieran con la actual.
Soporte Tcnico 38
CLI(691) Ejemplo
CLI(691)
#2
#0048
Resetea las entradas grabadas 3 y 6 de la
unidad de interrupcin 2.
Entrada 7654 3210
0000 0000 0100 1000
CLI(690)
#5
#1388
Sita el intervalo de la tarea de interrupcin
programada 3 a 50 s (Tiempo 10 ms).
Soporte Tcnico 39
DI(693)
Deshabilita la ejecucin de todas las tareas
de interrupcin, excepto la de Fallo de
alimentacin.
No se puede ejecutar en tareas de
interrupcin.
DI(693)
@DI(693)
Soporte Tcnico 40
EI(694)
Habilita la ejecucin de todas las tareas de
interrupcin, que fueron deshabilitadas con
la instruccin DI(693).
No se puede ejecutar en tareas de
interrupcin.
EI(694)
@EI(694)
Soporte Tcnico 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 Tcnico 42
Ejemplo Interrupciones
Seguidamente se muestra un ejemplo de
tareas de interrupciones de:
Fallo de alimentacin (Int. 1)
Interrupcin programada (Int. Prog. 2)
Interrupcin de unidad de interrupcin (Int. 100)
Interrupcin de una COMBOARD (Int. 15)
Se muestra el programa y los cambios que
son necesarios en el PC-SETUP.
Soporte Tcnico 43
Ejemplo Interrupciones 1
A200.11

First Cycle
MSKS(690)
0
#00FE
MSKS(690)
4
&1000
Tiempo de Interrupcin programada 02 es de:
1000 x 10ms = 10s
Desenmascara la Entrada 0 de la Unidad de Interrupcin 0
Programa principal de la tarea 00
END(001)
Tarea principal: Tarea cclica 00
Soporte Tcnico 44
Ejemplo Interrupciones 2
CF113

P_On
++(590)
D00000
DM00000 cuenta las veces que ha ocurrido
un fallo de alimentacin
END(001)
Tarea Interrupcin de fallo de alimentacin:
Es necesario desde PC-SETUP (consola 255):
Habilitar la interrupcin
Tiempo de deteccin de fallo de alimentacin
Soporte Tcnico 45
Ejemplo Interrupciones 3
CF113

P_On
++(590)
D00010
DM00010 cuenta las veces que se ha ejecutado
la interrupcin programada 02
END(001)
Tarea Interrupcin Programada 02:
Es necesario desde PC-SETUP (consola 195):
Unidad de tiempo de las interrupciones programadas.
Soporte Tcnico 46
Ejemplo Interrupciones 4
CF113

P_On
++(590)
D00020
DM00020 cuenta las veces que se ha ejecutado
la tarea de interrupcin 100
END(001)
Tarea Interrupcin 100:
Es la tarea de interrupcin de la Entrada 0 de la unidad de
interrupcin 0.
Soporte Tcnico 47
Ejemplo Interrupciones 5
++(590)
D00030
DM00030 cuenta las veces que se ha ejecutado
la tarea de interrupcin 15
END(001)
Tarea Interrupcin 15:
Es necesario asignar el nmero de interrupcin
en la unidad que provoca la interrupcin.
PMCR(260)
#11E1
#1
D00100
D00200
CF113

P_On
Devuelve un mensaje segn un protocolo de la COMBOARD
Soporte Tcnico 48
Temporizadores
Nuevos temporizadores
Soporte Tcnico 49
Temporizadores
Tiene 4.096 temporizadores y 4.096
contadores independientes entre s, en dos
reas.
T0000 T4095
C0000 C4095
Prestar atencin 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 alimentacin o pasar a
PROGRAM.
Soporte Tcnico 50
CNR(545)
Resetea los contadores o temporizadores
dentro del rango N1 - N2.
N1: Direccin inicial del rango.
N2: Direccin 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 Tcnico 51
TMHH(540)
Temporizador de 1ms. Temporiza S
milisegundos.
N: Nmero de temporizador.
S: Tiempo.
El PV y el flag de finalizacin se refrescan
cada 1ms.
TMHH(540)
N
S
Soporte Tcnico 52
TIML(542)
Temporizador de 9999 999.9 segundos.
D1: Flag de Finalizacin.
D2: Primera palabra del PV.
S: Primera palabra de SV.
No necesita nmero de temporizador, por
eso en necesario reservar palabras para el
PV y el flag de finalizacin.
TIML(540)
D1
D2
S
Soporte Tcnico 53
TIML(542)
D1 0000 0000 0000 000 1
Flag de finalizacin
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 finalizacin estn en reas de datos, por tanto se refrescan
cada vez que se ejecuta la instruccin.
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 Tcnico 54
MTIM(543)
Temporizador incremental de 0.1s y 8
salidas.
D1: Palabra de flags de finalizacin.
D2: Palabra del PV.
S: Primera palabra de los SV.
No utiliza nmero de temporizador.
MTIM(543)
D1
D2
S
Soporte Tcnico 55
MTIM(543)
D1 0000 00 0 0 1 1 1 1 1 1 1 1
Flags de finalizacin 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 finalizacin 1
Flag de finalizacin 2
PV
Soporte Tcnico 56
Bloques de Programa
En mnemnico
Soporte Tcnico 57
Bloque de Programa
Conjunto de instrucciones que se ejecutan
bajo una misma condicin de ejecucin.
Se pueden hacer hasta 128 bloques de
programa.
Slo se pueden utilizar una vez.
Los bloques de programa que no se
ejecutan no consumen tiempo de ejecucin.
Las instrucciones se escriben en
mnemnico.
Soporte Tcnico 58
Bloque de Programa
La nica instruccin que se programa en
diagrama de contactos es BPRG(096). El
resto se inserta en un bloque de programa
en mnemnico.
La ltima instruccin del bloque debe ser
BEND.
No se pueden evaluar condiciones dentro
de un bloque de programa, excepto en
instrucciones especiales (IF).
Soporte Tcnico 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 Tcnico 60
BPRG(096) y BEND(801)
BPRG(096): Comienzo del bloque de
programa n.
n: nmero de bloque de programa (0n127).
BEND(801): ltima instruccin del bloque
de programa en mnemnico.
BPRG(096)
n
Soporte Tcnico 61
BPPS(811) y BPRS(812)
BPPS(811): Para la ejecucin del bloque
de programa N desde otro bloque de
programa.
BPRS(812): Reanuda la ejecucin del
bloque de programa N desde otro bloque
de programa.
N: Nmero de bloque de programa (0n127).
Soporte Tcnico 62
IF(802), ELSE(803), IEND(804)
IF (NOT): Puede llevar operando B o
utilizar una condicin de ejecucin anterior.
ELSE: Se ejecuta si no es cierta la
condicin de la instruccin IF.
IEND: Final de la instruccin IF.
Se pueden anidar hasta 254 IFs.
IF
Se ejecuta A Se ejecuta B
IEND
SI
NO
IF
A
ELSE
B
IEND
Soporte Tcnico 63
EXIT(806), EXIT NOT(806)
Sale del bloque de programa.
Puede llevar operando o utilizar la
condicin de ejecucin anterior.
EXIT sale si la condicin 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 Tcnico 64
WAIT(805), WAIT NOT(805)
Para la ejecucin del resto del bloque de
programa hasta que cambia la condicin
de ejecucin.
Puede llevar operando o utilizar la
condicin de ejecucin anterior.
LD 0.00
BPRG #1
A
WAIT 0.01
B
BEND
C
0.01
OFF
0.01
ON
0.01
OFF
A
C C C
B
Soporte Tcnico 65
TIMW(813)
Retrasa la ejecucin del resto del bloque
hasta que se cumpla el tiempo especificado
en SV del temporizador N.
N: Nmero de temporizador (0N4095).
SV: Tiempo a contar (0SV999.9s).
LD 0.00
BPRG #1
A
TIMW #1 &10
B
BEND
C
1 seg.
A
C C C
B
Soporte Tcnico 66
TIMHW(815)
Retrasa la ejecucin del resto del bloque
hasta que se cumpla el tiempo especificado
en SV del temporizador rpido N.
N: Nmero de temporizador (0N4095).
SV: Tiempo a contar (0SV99.99s).
LD 0.00
BPRG #1
A
TIMHW #1 &100
B
BEND
C
1 seg.
A
C C C
B
Soporte Tcnico 67
CNTW(814)
Retrasa la ejecucin del resto del bloque
hasta que se la cuenta de I llegue a SV del
contador N.
N: Nmero de contador (0N4095).
SV: Pulsos a contar (0SV9999).
I: Entrada de pulsos a contar.
LD 0.00
BPRG #1
A
CNTW #1 &100 0.01
B
BEND
C
100
A
C C C
B
Soporte Tcnico 68
LOOP(809), LEND(810) NOT
Repiten una serie de instrucciones entre
LOOP y LEND (LEND NOT) hasta que la
condicin de LEND sea cierta.
LEND puede llevar operando o utilizar la
condicin de ejecucin anterior.
Dentro de un lazo LOOP no se refrescan
las salidas. Utilizar IOREF(184).
Puede sobrepasar el tiempo mximo de
ciclo y dar un error.
No se puede anidar LOOP dentro de otro.
Soporte Tcnico 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 Tcnico 70
Tablas de datos
Tablas basadas en pilas
Tablas basadas en registros
Soporte Tcnico 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 Tcnico 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 ms antiguo) o en orden
LIFO (el ms nuevo).
Las 4 primeras palabras de la tabla estn
reservadas para la direccin de la ltima
palabra y la direccin a la que apunta el
puntero.
Soporte Tcnico 73
SSET(630)
Define una pila (stack) de:
TB: Primera direccin de la tabla.
N: N de palabras.
Las dos primeras palabras TB y TB+1
contienen la direccin de la ltima palabra
de la tabla. Las dos siguientes contienen la
direccin donde apunta el puntero.
Resetea todos los registros de la tabla a 0.
SSET(630)
TB
N
@SSET(630)
TB
N
Soporte Tcnico 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
Direccin donde
apunta el puntero
ltima direccin de la tabla
en binario
Datos
Puntero
Soporte Tcnico 75
PUSH(632)
Escribe una palabra en la pila, en la
direccin donde apunta el puntero e
incrementa en uno la direccin del puntero.
TB: Direccin 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 Tcnico 76
PUSH(632) Ejemplo
D00000 0009
D00001 0001
D00002 0006
D00003 0001
D00004 1234
D00005 5678
D00006 9012
D00007 0000
D00008 0000
D00009 0000
Direccin donde
apunta el puntero
Tabla
Puntero + 1
@PUSH(632)
D00000
#9012
Puntero
Escribe 9012 en la tabla que empieza en D00000
direccin donde punta el puntero D00006.
ltima direccin de la tabla
en binario
Soporte Tcnico 77
FIFO(633)
First In First Out.
Lee la primera palabra escrita en la pila (la
ms antigua),la escrita en TB+4. Sube
todos los datos de la pila una palabra y
decrementa en uno el puntero.
TB: Direccin de la pila.
D: Palabra destino de la lectura.
FIFO(633)
TB
D
@FIFO(633)
TB
D
Soporte Tcnico 78
FIFO(633) Ejemplo
0009
0001
0006
0001
5678
9012
9012
0000
0000
0000
Direccin 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 direccin de la tabla
en binario
Soporte Tcnico 79
LIFO(634)
Last In First Out.
Lee la ltima palabra escrita en la pila y
decrementa en uno el puntero.
TB: Direccin de la pila.
D: Palabra destino de la lectura.
LIFO(634)
TB
D
@LIFO(634)
TB
D
Soporte Tcnico 80
LIFO(364) Ejemplo
0009
0001
0005
0001
1234
5678
9012
0000
0000
0000
Direccin 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 direccin de la tabla
en binario
Soporte Tcnico 81
Tablas de registros
Se pueden guardar hasta 16 tablas 015.
Un registro puede contener ms de una
palabra.
Se usan en combinacin con los registros
ndice IR0IR15.
Para trabajar con tablas es necesario
definirlas primero con DIM(631).
Soporte Tcnico 82
DIM(631)
Crea una tabla en el rea de memoria de:
N: Nmero de tabla.
LR: Longitud de cada registro.
NR: nmero de registros.
TB: Direccin del primer registro de la tabla.
DIM(631)
N
LR
NR
TB
@DIM(631)
N
LR
NR
TB
Soporte Tcnico 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 nmero 12
Registros de 5 palabras
3 Registros
Empieza en la direccin D00000
Soporte Tcnico 84
SETR(635)
Escribe la direccin del registro nmero R
de la tabla nmero N en el registro ndice
D.
N: Nmero de tabla (constante).
R: Nmero de registro.
D: Registro ndice.
@SETR(635)
N
R
D
SETR(635)
N
R
D
Soporte Tcnico 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 Tcnico 86
GETR(636)
Escribe en D el nmero de registro de la
tabla N cuya direccin est guardada en el
registro ndice IR.
N: Nmero de tabla (constante).
IR: Nmero de registro.
D: Palabra donde se guarda el nmero de registro.
@GETR(636)
N
IR
D
GETR(636)
N
IR
D
Soporte Tcnico 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 Tcnico 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 direccin de la palabra
que coincide y en DR00 el nmero de
coincidencias.
@SRCH(181)
C
R1
Cd
SRCH(181)
C
R1
Cd
Soporte Tcnico 89
SRCH(181)
X 000 0000 0000 0000
0: No muestra el nmero de coincidencias DR00 intacto.
1: Muestra el nmero de coincidencias en DR00.
Nmero de palabras
en el rango
C

C+1
Rango de bsqueda
R1+(C-1)
R1
Soporte Tcnico 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 Tcnico 91
MAX(182)
Busca el mximo 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 direccin de la palabra
que coincide y en D el valor mximo.
@MAX(182)
C
R1
D
MAX(182)
C
R1
D
Soporte Tcnico 92
MAX(182)
X Y 00 0000 0000 0000
0: No muestra la direccin en IR00.
1: Muestra la direccin en IR00.
Nmero de palabras
en el rango
C

C+1
Rango de bsqueda
R1+(C-1)
R1
0: Datos en binario sin signo.
1: Datos en binario con signo.
Soporte Tcnico 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 C000 Binario con signo
Guarda la direccin en IR00
10 Palabras
Soporte Tcnico 94
MIN(183)
Busca el mnimo 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 direccin de la palabra
que coincide y en D el valor mnimo.
@MIN(183)
C
R1
D
MIN(183)
C
R1
D
Soporte Tcnico 95
MIN(183)
X Y 00 0000 0000 0000
0: No muestra la direccin en IR00.
1: Muestra la direccin en IR00.
Nmero de palabras
en el rango
C

C+1
Rango de bsqueda
R1+(C-1)
R1
0: Datos en binario sin signo.
1: Datos en binario con signo.
Soporte Tcnico 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 C000 Binario con signo
Guarda la direccin en IR00
10 Palabras
Pone el flag de negativo a 1: N=1
porque 8778 es negativo.
Soporte Tcnico 97
SWAP(637)
Intercambia los bytes derecho e izquierdo
de las palabras del rango seleccionado.
N: Nmero de palabras del rango.
R1: Primera palabra del rango.
SWAP(637)
N
R1
@SWAP(637)
N
R1
Soporte Tcnico 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 Tcnico 99
Cadenas de caracteres
Instrucciones de texto
Soporte Tcnico 100
Cadenas de caracteres
Las cadenas de caracteres, son tratadas
como cdigo ASCII de 8 bits.
Se considera que pertenece a una cadena
de caracteres todos los datos que hay
desde la direccin inicial hasta que
encuentra el cdigo NUL (00 HEX).
Las cadenas se leen byte izquierdo, byte
derecho y de menor a mayor direccin.
La longitud mxima de caracteres es de
4.095 + el carcter NUL.
Soporte Tcnico 101
LEN$(650)
Calcula la longitud de la cadena de la
posicin S (hasta NUL) y guarda el
resultado en D.
S: Primera palabra de la cadena.
D: Posicin donde guarda el resultado.
La longitud mxima es de 4.095 bytes.
LEN$(650)
S
D
@LEN$(650)
S
D
Soporte Tcnico 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 Tcnico 103
MOV$(664)
Copia una cadena de caracteres de la
posicin S (hasta NUL) a la D. Tambin
copia el carcter NUL.
S: Primera palabra de la cadena a copiar.
D: Posicin donde se copia la cadena.
La longitud mxima es de 4.095 bytes.
MOV$(664)
S
D
@MOV$(664)
S
D
Soporte Tcnico 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 Tcnico 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: Posicin donde se copia la cadena.
La longitud mxima es de 4.095 bytes.
@+$(656)
S1
S2
D
+$(656)
S1
S2
D
Soporte Tcnico 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
&
OMRON SPAIN
OMRON SPAIN
S1
Soporte Tcnico 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: Nmero de caracteres a recuperar.
D: Posicin donde se copia la cadena.
La longitud mxima es de 4.095 bytes.
LEFT$(652)
S1
S2
D
@LEFT$(652)
S1
S2
D
Soporte Tcnico 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 Tcnico 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: Nmero de caracteres a recuperar.
D: Posicin donde se copia la cadena.
La longitud mxima es de 4.095 bytes.
RGHT$(653)
S1
S2
D
@RGHT$(653)
S1
S2
D
Soporte Tcnico 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 Tcnico 111
MID$(654)
Recupera la cadena de S2 caracteres de la
cadena S1 empezando en el carcter
nmero S3 y guarda el resultado en D.
S1: Primera palabra de la cadena.
S2: Nmero de caracteres a recuperar.
S3: Posicin inicial de la cadena S1.
D: Posicin donde se copia la cadena.
MID$(654)
S1
S2
S3
D
@MID$(654)
S1
S2
S3
D
Soporte Tcnico 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 Tcnico 113
FIND$(660)
Busca la cadena S2 en la S1 y guarda el
nmero de carcter desde el principio de
S1 en D.
S1: Primera palabra de la primera cadena.
S2: Primera palabra de la segunda cadena.
D: Posicin donde se guarda el N de carcter.
@FIND$(660)
S1
S2
D
FIND$(660)
S1
S2
D
Soporte Tcnico 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
S2 S1
@FIND$(660)
D00000
W100
W000
OMRON SPAIN
SPAIN
W000 0006
D
Soporte Tcnico 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: Nmero de caracteres.
S4: Posicin inicial.
D: Posicin donde se guarda el N de carcter.
RPLC$(661)
S1
S2
S3
S4
D
@RPLC$(661)
S1
S2
S3
S4
D
Soporte Tcnico 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 Tcnico 117
DEL$(658)
Borra S2 caracteres de S1 empezando
desde S3 y guarda el resultado en D.
S1: Primera palabra de la cadena.
S2: Nmero de caracteres a borrar.
S3: Posicin para borrar de la cadena S1.
D: Posicin donde se guarda la cadena.
DEL$(658)
S1
S2
S3
D
@DEL$(658)
S1
S2
S3
D
Soporte Tcnico 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 Tcnico 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 mxima es de 4.095 bytes.
Ex1 y Ex2 no se pueden solapar.
XCHG$(665)
Ex1
Ex2
@XCHG$(665)
Ex1
Ex2
Soporte Tcnico 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 Tcnico 121
CLR$(666)
Borra la cadena S. Escribe el carcter NUL
en toda la cadena S.
S: Primera palabra de la cadena a borrar.
CLR$(666)
S
@CLR$(666)
S
Soporte Tcnico 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 Tcnico 123
INS$(657)
Inserta S2 en S1 a partir del carcter
N S3 y la escribe en D.
S1: Primera palabra de la primera cadena.
S2: Primera palabra de la segunda cadena.
S3: Nmero de caracteres.
D: Posicin donde se guarda el N de carcter.
INS$(657)
S1
S2
S3
D
@INS$(657)
S1
S2
S3
D
Soporte Tcnico 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 Tcnico 125
Comparacin de cadenas
Se pueden comparar dos cadenas de
caracteres en cdigo 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 Tcnico 126
Comparacin 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 Tcnico 127
Comparacin Ejemplo
>$(674)
D00000
W000
0001.02
=$(670)
D00000
W000
0000.00
0000.02
<$(672)
D00000
W000
0001.01
0000.01
AND
OR
LD
Soporte Tcnico 128
Saltos
Saltos condicionales
Soporte Tcnico 129
Saltos
JMP(4) CJP(510) CJPN(511) JMP0(515)
JME(5) JME(5) JME(5) JME0(516)
Condicin OFF ON OFF OFF
N mximo 1.024 en total Sin lmite
Tiempo ejecucin No se ejecutan NOP(000)
Estado de salidas Bits y palabras mantienen su estado anterior
Temporizadores Continan temporizando
Bloques de programas Siempre ON OFF No permitido
Tabla comparativa de los saltos y los saltos condicionales.
Soporte Tcnico 130
CJP(510)/CJPN(511)
CJP(510): Salta hasta el primer JME(005)
cuando la condicin de ejecucin es ON.
CJPN(511): Salta hasta el primer JME(005)
cuando la condicin de ejecucin es OFF.
N: Nmero de salto.
Las instrucciones intermedias no se
ejecutan. No consumen tiempo.
CJPN(511)
N
CJP(510)
N
JME(005)
N
Soporte Tcnico 131
JMP0(515)/JME0(516)
Salta hasta JME0 cuando la condicin de
ejecucin es OFF.
Las instrucciones intermedias se ejecutan
como NOP(000).
Se pueden poner tantas como se quiera,
no hay lmite.
JME0(516)
JMP0(515)
Soporte Tcnico 132
Instrucciones de lazo
FOR, NEXT, BREAK
Soporte Tcnico 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 Tcnico 134
FOR(512) y NEXT(513)
Las instrucciones que hay entre FOR y
NEXT se ejecutan N veces dentro del
mismo ciclo.
N: Nmero de veces que se repiten las
instrucciones.
FOR(512)
S
NEXT(513)
Instrucciones
repetidas
N veces
Soporte Tcnico 135
FOR(512) y NEXT(513)
Estas instrucciones no necesitan una
condicin de ejecucin. 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 Tcnico 136
FOR(512) y NEXT(513)
FOR(512)
&2
NEXT(513)
C
FOR(512)
&3
A
NEXT(513)
B
Las instrucciones se
ejecutan segn el orden
ABBC-ABBC-ABBC
Soporte Tcnico 137
FOR-NEXT Ejemplo
MOV(021)
D00100
@D00200
FOR(512)
&3
NEXT(513)
Transfiere el contenido de D00100
a la direccin almacenada en D00200
e incrementa la direccin.
++
D00200
D00100
D00200
#0000
D00100
D00100
D00100
MOV
Soporte Tcnico 138
BREAK(514)
Salta a la siguiente instruccin NEXT y
finaliza el bucle FOR-NEXT actual.
En el caso de bucles FOR-NEXT anidados,
es necesario una instruccin BREAK para
cada bucle.
Las instrucciones siguientes hasta el
prximo NEXT se tratan como NOP.
BREAK(514)
Soporte Tcnico 139
FOR, NEXT y BREAK
BREAK(514)
C
FOR(512)
&5
A
NEXT(513)
Soporte Tcnico 140
Desplazamiento
y rotacin
De todos o N bits en una y dos
palabras
Soporte Tcnico 141
Desplazamiento y rotacin
1 Canal 2 Canales
Desplazamiento ASL(025) ASLL(570)
ASR(026) ASRL(571)
Rotacin ROL(027) ROLL(572)
ROR(028) RORL(573)
Rotacin sin RLNC(574) RLNL(576)
Carry RRNC(575) RRNL(577)
Soporte Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 1
0
1
CY
Perdidos
Soporte Tcnico 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 Tcnico 149
NSFL(578)
Desplaza N bits de D a la izquierda
empezando por el bit C.
D: Palabra dato.
C: Bit de comienzo.
N: Nmero 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 Tcnico 150
NSFR(579)
Desplaza N bits de D a la derecha
empezando por el bit C.
D: Palabra dato.
C: Bit de comienzo.
N: Nmero 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 Tcnico 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 1
0
1
CY
Bits 3 a 12
Bits 3 a 12
Soporte Tcnico 152
Incrementar Decrementar
Autoincremento y Autodecremento
Soporte Tcnico 153
++(590) ++L(591)
++ incrementa en binario la palabra de 4
dgitos Wd en una unidad.
++L incrementa en binario la palabra de 8
dgitos Wd en una unidad.
Wd: Palabra a incrementar
@++L(591)
Wd
++L(591)
Wd
@++(590)
Wd
++(590)
Wd
Soporte Tcnico 154
--(592) --L(593)
-- decrementa en binario la palabra de 4
dgitos Wd en una unidad.
--L decrementa en binario la palabra de 8
dgitos Wd en una unidad.
Wd: Palabra a incrementar
@--L(593)
Wd
--L(593)
Wd
@--(592)
Wd
--(592)
Wd
Soporte Tcnico 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 Tcnico 156
++B(594) ++BL(595)
++B incrementa en BCD la palabra de 4
dgitos Wd en una unidad.
++BL incrementa en BCD la palabra de 8
dgitos Wd en una unidad.
Wd: Palabra a incrementar
@++BL(595)
Wd
++BL(595)
Wd
@++B(594)
Wd
++B(594)
Wd
Soporte Tcnico 157
--B(596) --BL(597)
--B decrementa en BCD la palabra de 4
dgitos Wd en una unidad.
--BL decrementa en BCD la palabra de 8
dgitos Wd en una unidad.
Wd: Palabra a incrementar
@--BL(597)
Wd
--BL(597)
Wd
@--B(596)
Wd
--B(596)
Wd
Soporte Tcnico 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 Tcnico 159
Comparacin
=, <, <=, >, >=, <>
Soporte Tcnico 160
Comparacin 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.
Smbolo & Opciones
S1
S2
Soporte Tcnico 161
Comparacin de palabras
Smbolo 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 Tcnico 162
Comparacin 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 Tcnico 163
Instrucciones de conversin
de datos
SIGN, BINS, BISL, BCDS y BDSL
Soporte Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 instruccin inversa a BINS(470)
@BCDS(471)
C
S
R
BCDS(471)
C
S
R
Soporte Tcnico 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 instruccin inversa a BINS(470)
@BDSL(473)
C
S
R
BDSL(473)
C
S
R
Soporte Tcnico 171
Limitaciones BCDS y BDSL
En BCDS el dato S est limitada segn 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 segn 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 Tcnico 172
Instrucciones en
Coma Flotante
Nmeros reales en coma flotante.
Soporte Tcnico 173
Nmeros en Coma Flotante
Se pueden expresar los nmeros:
- (e=255, f=0, s=0)
-3.40282310
38
-1.17549410
-38

0 (e=0)
1.17549410
-38
3.40282310
38

(e=255, f=0, s=1)
NaN (e=255, f0): Nmero no vlido.
No es necesario conocer el formato de
estos nmeros, slo que ocupan 32 bits.
Soporte Tcnico 174
Precauciones Coma Flotante
Las operaciones indeterminadas 0.0/0.0,
/, - dan como resultado NaN.
Overflow () y Underflow (0). Es ms
peligroso el Overflow al convertir el
resultado a entero (binario con signo).
Los decimales se truncan al convertirlos a
entero (binario con signo).
Cualquier operacin con un NaN como
operando da como resultado NaN.
Soporte Tcnico 175
IEEE754
Expresan nmeros reales en 32 bits
conforme al estndar 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
2
e-127
(1+f2
-23
)
1#10000000#11000000000000000000000
Signo: (-1)
1
= -1
Exponente: 2
128-127
=2
1
=2
Mantisa: 1+62914562
-23
=1+0.75=1.75
Resultado: -1.752= -3.5
Soporte Tcnico 176
Instrucciones Coma Flotante
Se pueden realizar las siguientes:
Conversin: FIX, FIXL, FLT, FLTL
Operaciones: +F, -F, *F, /F, SQRT, PWR
Conversiones angulares: RAD, DEG
Angulares: SIN, COS, TAN, ASIN, ACOS, ATAN
En base e: LOG, EXP
Los operandos deben ser N
os
en
formato coma flotante IEEE754.
No es necesario conocer este formato,
slo que ocupan 32 bits.
Soporte Tcnico 177
FIX(450)
Convierte un nmero en coma flotante a un
entero (binario con signo) de 16 bits.
S: Primera palabra de nmero 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 Tcnico 178
FIXL(451)
Convierte un nmero en coma flotante a un
entero (binario con signo) de 32 bits.
S: Primera palabra de nmero en coma flotante.
R: Primera palabra donde se guarda el resultado.
La parte decimal es truncada (-3.5 -3)
Rango de -2.147.482.6482.147.482.647.
FIXL(451)
S
R
@FIXL(451)
S
R
Soporte Tcnico 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 Tcnico 180
FLT(452)
Convierte un nmero entero (binario con
signo) de 16 bits en formato de coma
flotante de 32 bits.
S: Palabra del nmero entero.
R: Primera palabra del resultado.
Rango de -32.768 32.767.
FLT(452)
S
R
@FLT(452)
S
R
Soporte Tcnico 181
FLTL(453)
Convierte un nmero entero (binario con
signo) de 32 bits en formato de coma
flotante de 32 bits.
S: Primera palabra del nmero entero.
R: Primera palabra del resultado.
Rango de -2.147.482.6482.147.482.647.
Nmeros > 16.777.215 pierden precisin.
FLTL(453)
S
R
@FLTL(453)
S
R
Soporte Tcnico 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 Tcnico 183
+F(454)
Suma 2 nmeros 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+nmero=NaN.
@+F(454)
Au
Ad
R
+F(454)
Au
Ad
R
Soporte Tcnico 184
-F(455)
Resta 2 nmeros 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-nmero=NaN, nmero-NaN=NaN.
@-F(455)
Mi
Su
R
-F(455)
Mi
Su
R
Soporte Tcnico 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 Tcnico 186
*F(456)
Multiplica 2 nmeros 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
NaNnmero=NaN.
@*F(456)
Md
Mr
R
*F(456)
Md
Mr
R
Soporte Tcnico 187
/F(457)
Multiplica 2 nmeros 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/nmero=NaN, nmero/NaN=NaN.
@/F(457)
Dd
Dr
R
/F(457)
Dd
Dr
R
Soporte Tcnico 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 Tcnico 189
RAD(458)
Convierte un nmero 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 frmula: Radianes=Grados/180
RAD(458)
S
R
@RAD(458)
S
R
Soporte Tcnico 190
DEG(459)
Convierte un nmero 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 frmula: Grados=Radianes180/
DEG(459)
S
R
@DEG(459)
S
R
Soporte Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 196
ASIN(463)
Calcula arco seno de un nmero en coma
flotante (32 bits). El resultado est en coma
flotante.
S: Primera palabra del nmero (-11).
R: Primera palabra del ngulo (radianes).
El resultado est entre -/2 y /2.
ASIN(463)
S
R
@ASIN(463)
S
R
Soporte Tcnico 197
ACOS(464)
Calcula arco coseno de un nmero en
coma flotante (32 bits). El resultado est en
coma flotante.
S: Primera palabra del nmero (-11).
R: Primera palabra del ngulo (radianes).
El resultado est entre -/2 y /2.
ACOS(464)
S
R
@ACOS(464)
S
R
Soporte Tcnico 198
ATAN(465)
Calcula arco tangente de un nmero en
coma flotante (32 bits). El resultado est en
coma flotante.
S: Primera palabra del nmero (- ).
R: Primera palabra del ngulo (radianes).
El resultado est entre -/2 y /2.
ATAN(465)
S
R
@ATAN(465)
S
R
Soporte Tcnico 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 Tcnico 200
SQRT(466)
Calcula la raz cuadrada de un nmero 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 Tcnico 201
PWR(840)
Eleva un nmero 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)
Nracional
dan error.
@PWR(840)
B
E
R
PWR(840)
B
E
R
Soporte Tcnico 202
PWR, SQRT Ejemplo
PWR(840)
D00000
D00002
D00100
D00100 1011 1111 0001 0000
D00101 0100 1001 0000 0001 9
6
=531.441
D00000 0000 0000 0000 0000
D00001 0100 0001 0001 0000 9
D00002 0000 0000 0000 0000
D00003 0100 0000 1100 0000 6
D00100 0000 0000 0000 0000
D00101 0100 0000 0100 0000 9=3
@SQRT(466)
D00000
D00100
Soporte Tcnico 203
EXP(467)
Calcula el exponencial (e
S
) de un nmero
en coma flotante (32 bits). El resultado est
en coma flotante.
S: Primera palabra del exponente (- ).
R: Primera palabra del resultado (0 ).
e2,718281828459.
El resultado siempre es positivo.
EXP(467)
S
R
@EXP(467)
S
R
Soporte Tcnico 204
LOG(468)
Calcula el logaritmo natural (lnS) de un
nmero 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 Tcnico 205
EXP, LOG Ejemplo
D00100 1111 1000 0101 0100
D00101 0100 0000 1010 1101 e
1
=2.71828
D00000 0000 0000 0000 0000
D00001 0011 1111 1000 0000 1
@EXP(467)
D00000
D00100
@LOG(468)
D00000
D00100
D00100 0000 0000 0000 0000
D00101 0000 0000 0000 0000 L1 = 0
Soporte Tcnico 206
Instrucciones de calendario
Fecha y hora
Soporte Tcnico 207
Instrucciones de Calendario
La primera vez que se utiliza el PLC es
necesario insertar la batera.
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 instruccin DATE.
Todos los datos se introducen en cdigo
BCD.
Soporte Tcnico 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 Tcnico 209
DATE(735)
S 0101 1001 0101 1001
Segundos 00 59
Minutos 00 59
S+1 0011 0001 0010 0011
Hora 00 23
Da 01 31
S+2 1001 1001 0001 1100
Mes 01 12
Ao 00 99
S+3 0000 0000 0000 0110
Da semana 00(Domingo) 06(Sbado)
Siempre 0
Soporte Tcnico 210
DATE(735)
Direccin Contenido
A35100 A35107 Segundos 00 59
A35108 A35115 Minutos 00 59
A35100 A35207 Hora 00 23
A35108 A35215 Da 01 31
A35100 A35307 Mes 01 12
A35108 A35315 Ao 00 99
A35100 A35407 Da Semana 00 06
A35108 A35415 Minutos 00 59
La fecha y hora se guardan en los registros auxiliares:
Soporte Tcnico 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 Mircoles
Soporte Tcnico 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 Tcnico 213
CADD(730)
C 0101 1001 0101 1001
Segundos 00 59
Minutos 00 59
C+1 0011 0001 0010 0011
Hora 00 23
Da 01 31
C+2 1001 1001 0001 1100
Mes 01 12
Ao 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 Tcnico 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 Tcnico 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 Tcnico 216
CSUB(731)
C 0101 1001 0101 1001
Segundos 00 59
Minutos 00 59
C+1 0011 0001 0010 0011
Hora 00 23
Da 01 31
C+2 1001 1001 0001 1100
Mes 01 12
Ao 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 Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 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 Tcnico 223
Ficheros de Memoria
Lectura / Escritura de ficheros
Soporte Tcnico 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)
Parmetros (.STD)
Memoria (.IOM)
Smbolos (.SYM)
Comentarios (.CMT)
Con instrucciones slo se pueden
Leer/Escribir ficheros de memoria (.IOM).
Soporte Tcnico 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 Tcnico 226
FREAD(700)
C 0000 0000 0001 0001
0: Tarjeta de memoria
1: Memoria EM
0: Leer datos
1: Leer nmero de palabras
S1+3 S1+2
Palabra del fichero por la que se
empieza a leer (en hexadecimal).
S1+1 S1
Nmero de palabras del fichero que
se quieren leer (en hexadecimal).
Soporte Tcnico 227
FREAD(700)
S2: Primera palabra del nombre del fichero que se quiere leer.
S2 \ A
B C
D \
X Y
Z
\ABCD\XYZ
Directorio ABCD
Nombre del fichero XYZ
D: Direccin donde se guardan los datos del fichero ledo.
Si se lee el nmero de palabras se almacenan en D y D+1
D+1 D
Nmero de palabras del fichero
ledo (en hexadecimal).
Soporte Tcnico 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
\ABCD\XY 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
\ABCD\XY
D00400

D00409
rea DM
Soporte Tcnico 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 Tcnico 230
FWRIT(701)
C 0000 0000 0001 0001
0: Tarjeta de memoria
1: Memoria EM
0: Aadir al final
1: Sobrescribir
D1+3 D1+2
Palabra del fichero por donde se
empieza a escribir (en hexadecimal)
slo si se sobreescribe.
D1+1 D1
Nmero de palabras de memoria que
se quieren guardar (en hexadecimal).
Soporte Tcnico 231
FWRIT(701)
D2: Primera palabra del nombre del fichero a escribir.
D2 \ A
B C
D \
X Y
Z
\ABCD\XYZ
Directorio ABCD
Nombre del fichero XYZ
S: Primera direccin de memoria a guardar en el fichero.
Si se guardan ms palabras de las que hay en ese rea de memoria,
se contina guardando palabras del rea siguiente.
S
Direccin de la primera palabra de memoria
que se quiere guardar.
Soporte Tcnico 232
FWRIT(701) Ejemplo
@FWRIT(701)
#0010
D00200
D00300
D00400
0000.01 A343.13
Guarda 10 palabras desde DM00400 hasta DM00409
en el fichero \ABCD\XY de la tarjeta de memoria
empezando en la palabra (inicio del fichero + 5).
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
\ABCD\XY
D00400

D00409
rea DM
Soporte Tcnico 233
Control de datos
Control de datos analgicos
Soporte Tcnico 234
LMT(680)
Limita los valores mximo C+1 y mnimo C
de una palabra S.
S: Palabra dato.
C: Primera palabra de los lmites.
D: Palabra donde se guarda el resultado.
@LMT(680)
S
C
D
LMT(680)
S
C
D
Soporte Tcnico 235
LMT(680) Ejemplo
@LMT(680)
D00000
D00001
D00100
D
(binario)
S
(binario)
Lmite Inferior C
Lmite Superior C+1
El lmite inferior puede ser positivo o negativo.
El lmite superior debe ser mayor que el inferior.
C: Lmite inferior
C+1: Lmite superior
Soporte Tcnico 236
BAND(681)
Crea una banda muerta en el dato de
entrada S.
S: Palabra dato.
C: Primera palabra de los lmites.
D: Palabra donde se guarda el resultado.
@BAND(681)
S
C
D
BAND(681)
S
C
D
Soporte Tcnico 237
BAND(681) Ejemplo
BAND(681)
D00000
D00001
D00100
El lmite inferior puede ser positivo o negativo.
El lmite superior debe ser mayor que el inferior.
C: Lmite inferior
C+1: Lmite superior
D
(binario)
S
(binario)
Lmite Inferior C
Lmite Superior C+1
Soporte Tcnico 238
ZONE(682)
Crea una zona muerta en el dato de salida
D.
S: Palabra dato.
C: Primera palabra de los lmites.
D: Palabra donde se guarda el resultado.
@ZONE(682)
S
C
D
ZONE(682)
S
C
D
Soporte Tcnico 239
ZONE(682) Ejemplo
ZONE(682)
D00000
D00001
D00100
El lmite inferior puede ser positivo o negativo.
El lmite superior debe ser mayor que el inferior.
C: Lmite inferior
C+1: Lmite superior
D
(binario)
S
(binario)
Lmite Inferior C
Lmite Superior C+1
Soporte Tcnico 240
SCL2(486)
Convierte una palabra binario con signo en
otra BCD con signo, siguiendo una funcin
lineal. Offset en binario.
S: Palabra dato binario.
P1: Primera palabra de los lmites.
R: Palabra donde se guarda el resultado BCD.
@SCL2(486)
S
P1
R
SCL2(486)
S
P1
R
Soporte Tcnico 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 Tcnico 242
SCL3(487)
Convierte una palabra BCD con signo S en
otra binario con signo R, siguiendo una
funcin lineal. Offset en BCD.
S: Palabra dato BCD.
P1: Primera palabra de los lmites.
R: Palabra donde se guarda el resultado binario.
@SCL3(487)
S
P1
R
SCL3(487)
S
P1
R
Soporte Tcnico 243
SCL3(487)
P1 Offset
P1+1 X
P1+2 Y
P1+3 Lmite superior
P1+4 Lmite inferior
El Offset puede ser
- Positivo
- Negativo
- Cero
X
Y
Offset
S
(BCD)
R
(binario)
Lmite inferior
Lmite superior
Soporte Tcnico 244
Comunicaciones
Serie y Network
PMCR, SEND, RECV, CMND
Soporte Tcnico 245
Comunicaciones
Incorpora 8 puertos lgicos. Esto permite
gestionar 8 comunicaciones a la vez sin
inferencias.
Puede manejar 16 unidades de
comunicacin (SCU) + 1 tarjeta de
comunicacin 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 Tcnico 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 Tcnico 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 lgico (07)
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 Tcnico 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 fsico).
Ocupa el puerto lgico 0.
Soporte Tcnico 249
SEND(090)
Enva 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 Tcnico 250
SEND(090)
Byte bajo 07 Byte alto 815
C Nmero de palabras: 0001 hasta el mximo de la red.
C+1 Red destino 007F Puerto serie 0104 (Host Link)
C+2 Unidad destino Nodo destino 00 al mximo
C+3 N de reintentos bits 811: puerto lgico
1215: 0 con respuesta
8 sin respuesta
C+4 Tiempo de monitorizacin de la respuesta 0001FFFF (0.16553.5 seg.)
Soporte Tcnico 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 Tcnico 252
RECV(098)
Byte bajo 07 Byte alto 815
C Nmero de palabras: 0001 hasta el mximo de la red.
C+1 Red fuente 007F Puerto serie 0104 (Host Link)
C+2 Unidad fuente Nodo fuente: 00 al mximo
C+3 N de reintentos bits 811: puerto lgico
1215: 0 con respuesta
8 sin respuesta
C+4 Tiempo de monitorizacin de la respuesta 0001FFFF (0.16553.5 seg.)
Soporte Tcnico 253
CMND(490)
Enva 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 Tcnico 254
CMND(490)
Byte bajo 07 Byte alto 815
C Nmero de Bytes del comando a enviar: 0002 hasta el mximo.
C+1 Nmero de Bytes del comando a recibir: 0002 hasta el mximo
C+2 Red fuente 007F Puerto serie 0104 (Host Link)
C+3 Unidad fuente Nodo fuente: 00 al mximo
C+4 N de reintentos bits 811: puerto lgico
1215: 0 con respuesta
8 sin respuesta
C+5 Tiempo de monitorizacin de la respuesta 0001FFFF (0.16553.5 seg.)
Soporte Tcnico 255
Cambio en Instrucciones
Instrucciones que ya no existen o
han sido modificadas
Soporte Tcnico 256
Instrucciones no soportadas
SCAN Impone un tiempo mnimo de ciclo de programa.
LMSG Muestra un mensaje de 32 bits en la consola de programacin.
TERM Coloca la consola de programacin en modo terminal.
MPRF Refresco de unidades de alta densidad.
XFR2 Transferir bloque EM.
XDMR Leer banco de expansin EM.
INT Gestin 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 Conversin a 7 segmentos.
Soporte Tcnico 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 Bsqueda.
MAX/MIN Encontrar mximo y mnimo.
SUM Suma.
PID Control PID.
IORD/IOWR Leer/Escribir unidades I/O especiales.

También podría gustarte