6-11-4 Comandos
Los comandos utilizados por el PLC son registros de 4 dígitos.
Los comandos se ajustan en el PLC mediante parámetros U20
a U67.
El PLC ejecuta el comando sobre el acumulador A de (32-bits) y la posición de memoria X (16-bits).
La mayor parte de los comandos pasan a través del acumulador para operar.
A continuación se presenta el listado de los comandos. El valor 00 implica la finalización del banco.
La ejecución de los comandos es secuencial desde el principio U20. Cada 2ms se ejecuta un banco,
pasando posteriormente al banco siguiente. En algunos comandos no se necesita un valor concreto
de la posición de memoria X, puesto que no es utilizado.
N
Comando
00h
NOP
01
LD
02
LD_U
03
LD32
04
ST_L
05
ST_H
06
ST32
07
BIT
08
SFT_R
09
SFT_L
0A
---
0B
ADD
0C
ADD32
0D
SUB
0E
SUB32
0F
MUL_L
10
MUL_H
11
DIV
12 al 14
---
15
AND
16
OR
17
XOR
18
NOT
19 al 1E
---
1F
CMP_EQ
20
CMP_NE
21
CMP_GT
22
CMP_LT
23
CMP_GE
24
CMP_LE
25
JMP
26
JMPC
27
JMPNC
28
NEG
29
ABS
2A
LIM_G
2B
LIM_L
2C al 2D
---
6. Funciones de control y ajuste de parámetros
Listado de comandos del PLC
Detalles
Fin del banco.
X es cargada con signo en A.
X es cargada sin signo en A.
X (i) y X (i+1) son cargadas como 32 bits.
Los 16 bits de menor peso de A se cargan en X.
Los 16 bits de mayor peso de A se cargan en X.
A es cargada en X (i) y X (i+1) como 32 bits.
Se obtiene el bit X de A.
A es rotada a la derecha X bits. (con signo)
A es rotada a la izquierda X bits. (con signo)
Sin función. (Uso futuro)
X es sumada a A.
X (i) y X (i+1) sumadas con A como 32 bits.
X se resta a A.
X (i) y X (i+1) restadas con A como 32 bits.
A es multiplicada por X. (32 bits de menor peso)
A es multiplicada por X. (32 bits de mayor peso)
A es dividida por X.
Sin función. (Uso futuro)
AND de A y X.
OR de A y X.
XOR de A y X.
Inversión de A (complemento a 2)
Sin función. (Uso futuro)
Si A=X, A=1. En caso contrario A=0.
Si A X, A=1. En caso contrario A=0.
Si A>X, A=1. En caso contrario A=0.
Si A<X, A=1. En caso contrario A=0.
Si A X, A=1. En caso contrario A=0.
Si A X, A=1. En caso contrario A=0.
Se añade X al puntero de programa.
Si A 0, X se añade al puntero de programa.
Si A=0, X se añade al puntero de programa.
Invierte el signo de A.
Valor absoluto de A.
Si A>X, se carga el valor de X (con signo)
Si A<X, se carga el valor de X (con signo)
Sin función. (Uso futuro)
6 – 193
0
1
C
8
Nº Comando
Posición Memoria
Expresión
Nº de pasos
indicación
Ninguna
A=X
A=X
A=X
X=(bajos)A
X=(altos)(A>>16)
X=A
A=(A & bit X)>>X
Shift Nº *
A=A>>X
18+103
Shift Nº *
A=A<<X
18+103
A=A+X
A=A+X
A=A-X
A=A-X
A=A*X
A=(A*X)>>16
A=A/X
A=A&X
A=A|X
A=A^X
A=¯A
A=(A==X)
A=(A!=X)
A=(A>X)
A=(A<X)
A=(A>=X)
A=(A<=X)
* Otro diferente 0
A=-A
A=ABS(A)
Si (A > X) A=X
Si (A < X) A=X
0
85
85
100
84
85
101
115
89
104
89
104
117
120
183
92
92
92
77
97
97
97
97
97
97
75
96
96
77
83
107
107