Академический Документы
Профессиональный Документы
Культура Документы
• Direct Ethernet
– Sin utilizar switches, hubs, etc.
– Cable Ethernet estándar desde PC a USB
– IP addresses no es requerida
Connection Setup
• Conexión remota via USB
– Conexión directa a una CPU via USB pero sin opciones de programarla
– A través de esta CPU salimos por su puerto Ethernet/IP
– Se debe indicar la dirección IP de la CPU destino
Connection Setup
• Conexión ethernet via Via Hub
– Utilizado cuando multiples CPU’s son conectadas en la red
– IP address debe ser especificado
Execution
Una tarea de mayor prioridad priority 2
interrumpe una tarea de menor Low
prioridad
• Cuando la tarea de mayor prioridad finaliza, la tarea con el siguiente nivel de prioridad
comenzará a ejecutarse.
• Una tarea de alta prioridad puede interrupir a otra de menor prioridad dependiendo de
las especificaciones del controlador (Tiempo compartido).
2.Task del controlador NJ
2-1. Tipos de tareas
2-2. Especificaciones de Tareas
2-3. Prioridad de ejecución
2-4. Descripción de cada tarea
2-4-1. Tarea periódica primaria
2-4-2. Tarea periódica
2-4-3. Tarea por evento
2-1. Tipos de tareas
• El NJ-series Controller tiene los siguientes tres tipos de tareas.
Primary periodic task Ejecutada con máx prioiridad. Ejecutada siempre en el mimos 1 4 (fixed).
periodo como el control de motion o las comunicaciones periódicas
Ethercat.
Periodic task Ejecutada por un periodo fijo mientras la “Primary periodic task” no 0-3 16,17,18
se está ejecutando.
Event task Ejecutada una vez mediante una condición siempre que la “Primary 0-32 8 (fixed), 48
periodic task” no se está ejecutando. (fixed)
Tipos de condición:
・Instruction
・Expresión de una variable
・Entrada externa de un CJ-Serie
Manejo de tareas en NJ (Tiempo
compartido)
• La ejecución de una tarea con la más alta prioridad interrumpe una
tarea menor.
High
Execution
priority 0
Execution
priority 1
Execution
priority 2 Low
2-2. Especificaciones de tareas
Item Specification
Número de programas por tarea 128 max
Periodos para las Periodic task Deben ser múltiplos de enteros de los periodos de la Primary Periodic Task
Task periods of primary Task period of periodic task that can be set
periodic task
500μs 1ms, 2ms, 3ms, 4ms, 5ms, 8ms, 10ms, 15ms, 20ms, 25ms, 30ms, 40ms, 50ms, 60ms,
75ms, 100ms
1ms 1ms, 2ms, 3ms, 4ms, 5ms, 8ms, 10ms, 15ms, 20ms, 25ms, 30ms, 40ms, 50ms, 60ms,
75ms, 100ms
2ms 2ms, 4ms, 8ms, 10ms, 20ms, 30ms, 40ms, 50ms, 60ms, 100ms
4ms 4ms, 8ms, 20ms, 40ms, 60ms, 100ms
2-3. Prioridad de ejecución
High Number of tasks
4 Primary
1
(fixed) Periodic task
8 Event
32 max. (junto con las tareas de evento
(fixed) Task 0-32
(execution priority 48)).
Execution
Period
Priority 16 0-1
Task
(0 to 63)
Period
17 0-1
Task
Period
18 0-1
Task
48 Event
32 max. (junto con las tareas de evento
(fixed) Task 0-32
(execution priority 8)).
Low
2-4. Descripción de cada tarea
Specified period
System common
processing 1
processing 2
Output data
Output data
program
Processing
Processing
Processing
Processing
Input data
Input data
Control
Motion
Refresh Refresh
System common
System common
Output data
execution
processing 1
processing 2
Output data
Processing
Processing
Input data
execution
Processing
Processing
Input data
Execution of
Control
Motion
user program
MC
Añadir los
programas a
ejecutar.
2-4-2. Periodic task
• Ejecuta el programa de usuario cada periodo, este periodo es múltiplo del
periodo de la Prymari Periodic Task. Se utiliza para controles con periodos
diferentes a la Prymari.
Ejemplo: El control sincronizado requiere una respuesta rápida gestionada por la Prymari Periodic Task. El
resto de sistema de control es ejecutado por la Periodic Task.
Primary
Periodic task
Task period
Periodic task
Standby
Execution priority 16
EJEMPLO:
Configuración de tarea como una Periodic Task
Selección la
tarea y su
periodo
Añadir los
programas
ejecutados por la
tarea
2-4-3. Event task
• Ejecuta el programa solo una vez cuando se produce una condición.
Ejemplo: para procesos únicos como procesos iniciales y de control que requieren respuesta rápida ante
entradas externas.
• Se aplica una prioridad a cada tarea. (Prioridad 8 o 48)
– Cuando hay dos o más tareas de evento con la misma prioridad, estas se ejecutan según el orden de
activación de la condición.
– Cuando una o varias condiciones se ejecutan al mismo tiempo, las tareas se ejecutan segúun el orden de
registro
• El refresco I/O no puede ser ejecutada con una tarea de evento.
Primary
Periodic task
Execution condition
is met.
Event task User
Execution priority 8 PRG
Programación Event Task
• Permite la ejecución de POU cuando se produce la condición.
• El código de ejecucón se optimiza al ejecutar tareas solo cuando son necesarias y no de
forma continua por periodos.
• Hay dos niveles de prioridad: 8 y 48.
Definir
método de
disparo
Event Task Configuración
Task:Primary
Prog:”Main”
…
Task: “Event_Data”
Program:”Data Update”
3. Servicios del sistema
• Son tareas de fondo que la CPU ejecuta además de las de usuario.
OI UP MC OI UP MC OI UP MC OI UP MC OI UP MC
Primary
Periodic task
System
Service
Task period
Ni la Primary Periodic Task ni la
Periodic task OI UP Periodic Tasl de prioridad 16
Execution priority 16 detienen la ejecución
Task period
Periodic task
Pause
Execution priority 17
System
Service
El tiempo de ejecución de los servicios del
sistema no está asegurado.
Low Ejecuta los servicios del sistema,
suspendiendo la Periodic Task con
prioridad 17 o menor.
Como configurar los servicios del sistema
Como en el NJ las tareas tienen base de tiempos compartida, se debe asignar
un tiempo y ratio para los servicios:
RW RO
RW RO
4.2.Instrucciones de las tareas exclusivas
Utilizar las instrucciones de control de las tareas exclusivas (Lock /Unlock instruction) cuando se
escribe valores a las mismas variables desde varias tareas.
Ejemplo:
Task B con alta prioridad intentar ejecutar el programa de rango 1 mientras la tarea A esta ejecutando el
mismo programa de rango 1. El programa rango 1 no puede ser ejecutado dos o mas veces por otras
tareas al mismo tiempo. La ejecución por la tarea B es suspendida y la tarea A ejecuta el programa
primero.
El acceso a la
Program 1 variable
Gtable1
bloqueado
por el
programa2
Analogía: Proceso simple
Program
Local variables table
Allocation Program
Algorism
FUN
FB
入力変数 出力変数
Input Output
Local variables table Input Parameter
入力パラメータ Variables Variables Output Parameter
出力パラメータ
Array Input variables, Output variables, In-Out Variable, Local Variables, and Local variables or In-out variables to only the one-dimensional array is available.
External Variable to a three-dimensional array is available. The maximum size is 2048.
The maximum size is 65535. (REAL/DINT/UDINT/DWORD:1024)
(LREAL/LINT/ULINT/LWORD:512)
Structure Available in Input variables, Output variables, In-out variables, Local Available in Local variables or In-out variables.
variables, and External Variable
Enumeration Available in Input variables and the Output variables, and it is internal Not available
variables, and External Variable.
Union [Unit Ver.1.0] Not available
Available in Local variables, and External Variables.
[Unit Ver.1.1]
Available in Input variables, Output variables, In-out variables, Local
variables, and External variables.
3) Function (FUN)
• Una Funcion consta de un algoritmo y una parte de variables. En ningun caso
utilizaremos en una funcion variables que necesiten memorizar algun tipo de estado.
Algorithm
(* When the Input variables are omitted. *)
Instruction (FB
type excluded) Result := MAX(Value1, Value2);
FUN
(* EN/ENO can be included as parameters *)
Result := MAX( EN:=Trig, In1:=Value1, In2:=Value2, ENO=>Done);
Return value 1 • A value that FUN returns to the part that executed the FUN as a result of processing at the termination of the
Algorithm. All Basic data type variables and Enumeration data type variable can be specified. The array and
aggregates of Structure and aggregates of Union cannot be specified.
Remarks: As there are new for NJ series, there is no comparison with the CJ series.
2.Variable
2-1. Variables Globales
2-2. Variables Locales
2-3. Atributos
2-4. Direccion Fisica.
1) I/O port
2) Memory used for CJ units
2. Variable
Variable = (Nombre) + (Tipo) + (Atributo)
• Una Variable tiene atributos como el nombre y el tipo.
• Las variables en NJ pueden ser de muchos tipos , incluso tenemos la
posibilidad de crearnos tipos de variable a nuestra medida llamadas
Estructuras.
4-1. Variables Globales
• Variables Globales
– Es posible acceder a ellas desde cualquier POU
(Program, FB, and FUN).
Global variable
POU POU
External External
Local variable variable Local variable variable
2-1. Global variables
Las variables de los elementos conectados al NJ son
creadas automaticamente por el Sysmac Studio.
2-1. Global variables
• Ejemplo. Uso de Variables Globales en un POU
– Aceso a Global variables desde el POU atraves de tabla de variables
externas.
type
Local Externa Local Input Output In-Out Extern Local Input Outpu In-Out Extern
Variable l Variable Variabl Variabl Variable al Variable Variabl t Variable al
Variabl e e Variabl e Variab Variab
e e le le
Name Yes Yes No Yes Yes Yes Yes No Yes Yes Yes Yes No
Data type Yes Yes No Yes Yes Yes Yes No Yes Yes Yes Yes No
Initial Value Yes Yes No Yes Yes Yes No No Yes Yes Yes No No
Comment Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Network Yes No No No No No No No No No No No No
Published
Communications Write Yes No No No No No No No No No No No No
Disable
Basic data type variables aaa Yes Yes Yes(*1) Yes Yes Yes
Variable of array Aggregate bbb Yes Yes Yes(*1) Yes Yes Yes
specification
Unit of element bbb[2] No No No No No No
Structure Variable Aggregate ddd Yes Yes Yes(*1) Yes Yes Yes
Member ddd.xxx No No No No No No
Union Variable Aggregate eee Yes Yes No(*2) Yes Yes Yes
Member eee.word No No No(*2) No No No
Enumeration Variable ccc Yes Yes Yes(*1) Yes Yes Yes
Instance type variable instance No No No No No No
*1. The variable is cleared to zero when initial value is not set. Yes: can set No: can not set
*2. Initial value is always 0.
1) I/O port
2) Device variables
3) Memory used for CJ units
CPU Unit
Variable
CPU Unit
* Refer to Appendix 2-3 PLC Function Module (category: _CJB) and Functional classification: In relation of Auxiliary Area for CJ series in
NJ-series CPU Unit Software User’s Manual (W501).
Tipo de datos derivados
Derivative data type
• Tipos de datos definidos por datos básicos.
Element number 0 to 65535 (The start number for elements can be any number other than 0. )
Basic data type BOOL data type, Bit string type, Integer type, REAL numbers, Duration type, Date data Supported
type, Time data type, Date and time data type, and String type
Basic data type Integer type SINT, INT, DINT, USINT, UINT, and UDINT Supported
Note: Array variables are available.
Member
Height Structure Variable Box2
Width Member
Height
Depth
Height Structure Variable Box3
Width Member
Width Height
Depth
Depth Width
Depth
Como Tipo base: definición de la estructura
Se declara en el programa:
Same in ST:
Structure
– Especificaciones de la estructura:
Item Specification
Structure name Upper and lower cases of alphabets are not distinguished.
The same rules as for variable names apply as the prohibited characters and the limitation of the number
of characters.
Member's Data Types
Classification Data type Use
Basic data type BOOL data type, Bit string type, Integer type, REAL Possible
numbers, Duration type, Date data type, Time data type,
Date and time data type, and String type
Array specification of BOOL data type and Bit string type Not Possible
data
Array specification of integer type, REAL numbers, Possible
Duration type, Date data type, Time data type, Date and
time data type, and String type
Derivative data type Structure (See note) and Union and Enumeration Possible
Note: The reflexive or the circulating data can not be used.
(It causes an error at program check. )
Array specification of Structure, Union, and Enumeration Possible
POU Instance type Not Possible
Ejemplo. Define un Enumeration "Color“, y tres datos de "red", "yellow", y "green“ como sus enumerators
Data type definition
Enumeration # Member
Variable table
Variable name Data type
DiscColor Color
Enumeration
Especificaciones de la Enumeration
Item Specification
Enumerator Described in only alphanumeric characters. Upper and lower cases of alphabets are not distinguished. The characters you
name cannot use are the same as for variable names.
When an enumerator name is specified more than once, a compile error will occur.
When an enumerator name which is same as a variable name in the user program is specified, a compile error will occur.
Number of 1 to 2048
enumerators
• NOTAS:
• Ladder muestra los Enumerators, no sus valores.
• Es posible convertir números en enumeradores y viceversa
Ejercicio: Enumeration
• Usando el ejercicio de semáforo, crear enumeration con las luces estado
• Enumeration estados:
– GREEN
– YELLOW
– RED
– OFF_STATE: No activado.
– SERVICE: Cuando está parpadeando
Ejercicio: Enumeration
Especificar el rango
• Para limitar el rango de valores de la variable en los siguientes tipos de
entero.
Classification Data type
Integer type SINT, INT, DINT, LINT, USINT, UINT, UDINT, ULINT
Name Member
Variable table
Output : OUT16ACCESS; ByteData
WordData
WordData
Output.WordData := WORD#16#1234;
BoolData
External device NJ
Union Ejemplo:
Declaramos una unión:
Se utiliza en el programa:
• Enumeration _e_mcDirection:
Programación Básica Ladder
Reglas Ladder: Fundamentos…
•Los contactos y bobinas pueden insertarse por donde sea si la lógica tiene
sentido, pero ningún contacto puede insertarse en la parte más derecha de un
línea
Hasta 50 ramificaciones en
paralelo son permitidas por línea
Contactos , Bobinas e
Instrucciones de Secuencia
Contactos , Bobinas e Instrucciones de Secuencia
Contactos y Bobinas
Puedes negarlos, hacer flancos, Set, Reset, etc…
SET Bobina
Bobina
(o)
Flanco Ascendente
( @ ó Ctrl+May+U )
Contacto
Inverted Contact
(C) RESET
(/)
Bobina
Contactos , Bobinas e Instrucciones de Secuencia
R_TRIG, F_TRIG and Flancos
•IEC61131-3 define las funciones R_TRIG y F_TRIG para detectar flanco
ascendente (Rising)/descendente (Falling)
•NJ suporta tanto los flancos ascendente/descendente de OMRON como R_TRIG
(Up) y F_TRIG (Down)
• Operaciones más
complejas
• Dispone de variables
retentivas
• Varias salidas
• Es necesaria instancia
Contactos , Bobinas e Instrucciones de Secuencia
SR y RS : Set
•Estas funciones se utilizar para activa y desactivar el estado de un Bit
• SR: Prioridad al Set cuándo ambas entradas estan activas a la vez
• RS: Prioridad al Reset cuándo ambas entradas estan activas a la vez
Contactos , Bobinas e Instrucciones de Secuencia
SetBits/ResetBits
Declarando “InOut” cómo una Cadena de Bits, (BYTE, WORD, DWORD or LWORD ) ;
• SetBits: Activa “n” bits desde el nºbit “Pos” en la Cadena de Bits.
• ResetBits: Desactiva “n” bits desde el nºbit “Pos” en la Cadena de Bits.
Contactos , Bobinas e Instrucciones de Secuencia
SetABit/ResetABit
Declarando “InOut” como una Cadena de Bits, (BYTE, WORD, DWORD or LWORD ) ;
• SetABit: Activa el bit de la posición “Pos” en la Cadena de Bits.
• ResetABit: Desactiva el bit de la posición “Pos” en la Cadena de Bits
Contactos , Bobinas e Instrucciones de Secuencia
OutABit
Declarando “InOut” como Cadena de Bits, (BYTE, WORD, DWORD or LWORD ) ;
• OutABit Activa o Desactiva el bit de la posición “Pos” dependiendo del valor de
“BitVal”
Ejercicio: Programa básico en contactos
• Intenta introducir el siguiente código utilizando simplemente el ratón y el
las opciones del menú
• Haz lo mismo con el uso del teclado
Temporizadores
Temporizadores
Temporizadores Estándar
TON: Temporizador retraso a la conexión
TOF : Temporizador retraso a la desconexión
TP: Temporizador de pulso
Temporizadores Especiales
AcumulativeTimer: Temporizador Retentivo
Timer: Temporizador de 100ms
Temporizadores
• Instancia de un FB Temporizador consiste en:
Nombre_Instancia
Tipo_FB
BOOL BOOL
TIME TIME
T#10ms
In
Q
PT
ET
Temporizadores
TOF: Temporizador Retraso a la desconexión
•La salida (Q) es TRUE cuando la entrada (In) es TRUE y después de pasar ésta
a FALSE, y espera a que el tiempo transcurrido alcance el prefijado y entonces
pasa a FALSE
T#10ms
In
Q
PT
ET
Temporizadores
TP: Temporizador de pulso
•La salida (Q) pasa a TRUE con el flanco ascendente de la entrada (In)
•La salida (Q) pasa a FALSE cuando el tiempo transcurrido alcance el prefijado
T#10ms
In
Q
PT
ET
Temporizadores:
Timer: Temporizador de 100ms
•La salida (Q) es TRUE cuando el tiempo transcurrido alcance el prefijado
•La salida (Q) pasa a FALSE siempre que la entrada (In) pase a FALSE
•El tiempo transcurrido incrementa en pasos de 100 ms !
•La única razon de utilizar este temporizador frente al TON es reducir el
tiempo de ejecución
Temporizadores
Acumulation Timer: Temporizador Retentivo
•El Temporizador Retentivo inicia el contaje cuando la entrada (In) pasa a TRUE y
se detiene cuando la entrada (In) pasa a FALSE (el tiempo ET es retenido)
•La salida (Q) es TRUE cuando el tiempo transcurrido alcance el prefijado
•La salida (Q) y el tiempo transcurrido (ET) son reseteados al activar la entrada de
reset (Reset)
In
PT
ET
Q
Reset
Operación:
– Estado Modo Normal (Enable): 3s VERDE, 2s AMARILLO, 3s ROJO
– Estado Modo Servicio (Service): 1s parpadeo luz AMARILLA
– Enlace con el HMI las variables del semáforoLink the traffic light to
GreenLight, YellowLight, RedLight
Consejos:
– Utilice Temporizadores ( TON or TOF)
– Utilice la función Get1sClk() para el parpadeo
Programa semáforo
Contadores
Contadores
CTU, CTD: Contador Ascendente (Up), Contador Descendente (Down)
Contadores Estándar
CTU: Contador Ascendente (UP)
CTD: Contador Descendente(Down)
CTUD: Contador UP/DOWN
Nombre_Instancia Nombre_Instancia
CU
Reset
CV
Q
Contadores
CTD: Contador Descendente (Down)
•Cuando hay una transición de FALSE a TRUE en la entrada (CD) el Contador Decrementa
su valor de contaje (CV)
• La entrada (Load) cargará el Valor Prefijado (PV) en el Valor de Contaje (CV) y pondrá a
FALSE la salida (Q)
•La salida (Q) pasa a TRUE cuando el Valor de Contaje (CV) = 0
CD
Load
CV
Q
Contadores
CTUD: Contador Up/Down
Este Contador UP/DOWN incluye dos nuevas salidas: (QU) y (QD) para
indicar si se el Valor de Contaje (CV) ha alcanzado el máximo o mínimo
CU
CD
CV
QU
QD
Reset
Load
Contadores
Variantes de Contadores:
•NJ incluye algunas variaciones de CTU, CTD y CTUD
•Pueden utilizarse diferentes Tipos de Datos
DINT
CTU LINT
CTD _
UDINT
CTUD
ULINT
Ejemplos:
Ejercicio: Contador Up/Down
• Utiliza contador y enlázalo con I/O
Operación:
– Entrada NX_input 1 para uso contaje ascendente
– Entrada NX_input 2 para contaje descendente
– Entrada NX_input 3 para cargar un Preset del contador de 10
– Entrada NX_input 4 para Reset del contador de 0
– Cuando se alcance el valor 10, NX_Output1 se activa a ON
– Cuando se alcance el valor 0, NX_Output2 se activa a ON
Consejos:
– Utilice CTUD
– Utilice variables enlazadas a I/O
Contador Up/Down
Instrucciones Matemáticas
Instrucciones Matemáticas
• La serie NJ soporta un rango amplio de Funciones Matemáticas:
Ejemplo (ADD):
Instrucciones Matemáticas
ARITMÉTICA BÁSICA
• La mayoría de funciones Aritméticas Básicas soportan tipos de datos ANY_ELEMENTARY
ARITMÉTICA BÁSICA
ADD (+) : Suma
AddOU (+OU): Suma con Bit Overflow (desbordamiento)
SUB (-): Resta
SubOU (-OU): Resta con Bit Overflow (desbordamiento)
MUL (*): Multiplicación
MulOU (*OU): Multiplicación con Bit Overflow (desbordamiento)
DIV (/): División
MOD: Módulo (Resto)
ABS: Valor Absoluto
Inc* y Dec*: Incremento y Decremento de números enteros
*Retorna un BOOL
Instrucciones Matemáticas
¿ST o Ladder?
¿Qué Lenguaje de Programación es mejor: Ladder o ST?
Depende del usuario y de la aplicación…
Ejemplo de una
suma utilizando
ST in línea
Ejercicio: Operación Matemática
• Prueba de operaciones mátemáticas
Operación:
– Prueba resolver esta fórmula en LD y ST
Conclusión:
– ¿Qué lenguaje es más cómodo para una fórmula compleja, LD o ST ?
– Sacad vuestras propias conclusiones: pros & cons
Ejemplo Operaciones Matemáticas
Cadenas de Bits
Cadenas de Bits
• Los Tipos de Datos Cadenas de Bits son: BYTE, WORD, DWORD y LWORD.
XOR XORN
Cadenas de Bits
AND, OR, XOR XORN
• EJEMPLO
B1 1 0 1
B2 0 1 1
Resultado
0 0 1
Cadenas de Bits
AND, OR, XOR XORN
• Cuando el número de Parámetros de Entrada es mayor de 2 ise realiza de la
siguiente manera
L= Operación Lógica
Cadenas de Bits
NOT
• La instrucción NOT invierte el valor de la variable Booleana o de los bits
individuales de una cadena de bits
0 0 1 0 0 0 1 1
1 1 0 1 1 1 0 0
Cadenas de Bits
AryAnd, AryOr, AryXor, AryXorN
• Estas funciones realizan operaciones lógicas con Matrices de Cadenas
de Bits.
Ejemplo:
12 OR 2 14
17 OR 4 21
A[..] OR B[..] C[..]
Instrucciones Comparación
Instrucciones Comparación
• Las siguientes instrucciones se utilizan para comparar:
Instrucciones Comparación
EQ(=): Igual
NE(<>): Diferente
LT(<): Menor
LE(<=): Menor o igual
GT(>): Mayor
GE(>=): Mayor o igual
Cmp: Comparación
ZoneCmp: Comparación Zona
TableCmp: Comparación Tabla
AryCmp*: Comparación Matriz
AryCmp*V: Comparación Matriz a valor
MN<=In<=MX
Instrucciones Comparación
TableCmp
•TableCmp realiza Comparación de Zona de datos tabulares
•Los Datos Tabulares son una Tabla definida por una matriz de 2 dimensiones
•El Dato de Salida (AryOut) es una matriz de 1 dimensión
Table[0,n] <= In <= Table [1,n] AryOut[n]
300 <= <= 999 FALSE
17 <= 120 <= 500 TRUE
T[..] <= <= T[..] BOOL
Instrucciones Comparación
AryCmpqqq Comparación Matriz
•Compara dos matrices In1[ ] , In2[ ] y saca resultado en AryOut[ ]
•El número de elementos a comparar está determinado por el parámetro ‘Size’
qqq significa :
EQ (=)
NE(<>)
LT(<)
LE(<=)
GT(>)
GE(>=)
Instrucciones Comparación
AryCmpqqq Comparación Matriz
•Ejemplo: AryCmpEQ
qqq significa :
EQ (=)
NE(<>)
LT(<)
LE(<=)
GT(>)
GE(>=)
Instrucciones Comparación
AryCmpqqqV Comparación Matriz Valor
•Ejemplo: AryCmpEQV
A[..] EQ TestValue
C[..]
7 EQ False
13
13 EQ True
Transferencia de datos
Transferencia de datos
•Las instrucciones de Transferencia de Datos copian o mueven
bloques de datos.
•Las instrucciones de Transferencia de Datos son:
Transferencia de datos básicas Transferencia de datos Matriz
MOVE AryExchange
MoveBit AryMove
MoveDigit
TransBits
MemCopy
SetBlock
ExChange
Clear
Copy**ToNum
Copy**To**
CopyNumTo**
Transferencia de datos
MOVE
•La función MOVE copia el valor del parámetro In al parámetro Out.
• Cualquier elemento de Matriz (Array), Estructura y Unión cpuede ser usado
Ejemplo: 5 4 3 2 1 0
MyWORD=&34
1 0 0 0 1 0
(In)
5 4 3 2 1 0
MyWORD2=>3
0 0 1 0 0 0
(InOut)
InOutPos
Transferencia de datos
MoveDigit
•La función MoveDigit copia uno o más dígitos (Size), de una cadena de bits (In) empezando por un
dígito (InPos) a otra cadena de bits (InOut) a partir de un dígito (InOutPos).
Ejemplo: InPos
3 2 1 0
In 1 2 3 4
3 2 1 0
InOut 2 3 0 0
InOutPos
Transferencia de datos
TransBits
•La función TransBits copia uno o más bits (Size), de una cadena de bits (In) empezando por un bit
(InPos) a otra cadena de bits (InOut) a partir de un bit (InOutPos).
InPos
Ejemplo: In
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1 1
InOut
7 6 5 4 3 2 1 0
0 0 0 1 1 1 0 0
InOutPos
Transferencia de datos
MemCopy
•MemCopy copia dos o más elementos (Size) de una matriz (In) a otra matriz
(AryOut).
Ejemplo:
Size=3
In[0]
6 5 4 3 2 1 0
700 600 500 400 300 200 100
AryOut[2]
6 5 4 3 2 1 0
0 0 300 200 100 0 0
Transferencia de datos
SetBlock
•SetBlock relleta una cantidad de elementos (Size) de una matriz (AryOut) con un
valor (In).
Ejemplo:
In
100
AryOut[ ]
6 5 4 3 2 1 0
0 0 100 100 100 0 0
Size=3
Transferencia de datos
Exchange
•Los valores de dos variables (InOut1 y InOut2) son intercambiados
Transferencia de datos
AryXChange
•Intercambia los valores de una cantidad (Size) de elementos entra dos matrices (InOut1 y
InOut2)
Transferencia de datos
AryMove
•Anteriormente, hemos mencionado la función MemCopy, la cual copia dos o más elementos (Size) de
un elemento de una matriz (In) a otro elemento de otra matriz (AryOut).
•La instrucción AryMove es idéntica pero los tipos de datos de las matrices pueden ser diferentes
AryOut[ ]
6 5 4 3 2 1 0
0 0 300 200 100 0 0
Transferencia de datos
Clear
WORD
7 6 5 4 3 2 1 0
… 0 0 0 0 0 1 1 1
INT 7 6 5 4 3 2 1 0
… 0 0 0 0 0 1 1 1
LREAL … 0 0 0 0 0 1 1 1