Comparar (CMP)
Esta información corresponde a los controladores
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 y ControlLogix 5590. Las diferencias de controladores se indican cuando corresponda.Se define le expresión CMP usando operadores, etiquetas y valores inmediatos. Se usa paréntesis ( ) para definir secciones en las expresiones más complejas.
La ventaja de la instrucción CMP es que permiten integrar expresiones complejas en una sola instrucción.
Al evaluar la expresión, todos los operandos del tipo no REAL se convertirán a REAL antes de realizar los cálculos si alguna de las siguientes condiciones es verdadera.
- Cualquier operando en la expresión es REAL.
- La expresión contiene SIN, COS, TAN, ASIN, ACOS, ATAN, LN, LOG, DEG o RAD.
Hay reglas para operadores admisibles en aplicaciones de seguridad. Consulte
Operadores válidos.
Idiomas disponibles
Diagrama de lógica de escalera

Bloque de funciones
Esta instrucción no está disponible en el bloque de funciones.
Texto estructurado
Esta instrucción no está disponible en texto estructurado.
Operandos
Estos son operandos de la instrucción CMP.
IMPORTANTE:
Puede ocurrir un funcionamiento inesperado si:
- Los operandos de etiqueta de salida se sobrescriben.
- Los miembros de un operando de estructura se sobrescriben.
- A no ser que se especifica, los operandos de estructura son compartidos por varias instrucciones.
Existen reglas de conversión de datos para utilizar diversos tipos de datos numéricos en una instrucción. Consulte Conversiones de datos.
Diagrama de lógica de escalera
El siguiente es el operando del Diagrama de escalera.
Operando | Tipo de datos Controladores CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 y GuardLogix 5570 | Tipo de datos Controladores CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580 y ControlLogix 5590 | Formato | Descripción |
|---|---|---|---|---|
Expression | SINT INT DINT REAL Tipo de cadena | SINT INT DINT LINT USINT UINT UDINT ULINT REAL LREAL Tipo de cadena | etiqueta inmediato | Una expresión que consiste en etiquetas y/o valores inmediatos separados por operadores |
Formato de expresiones
Se deben proporcionar uno o dos operandos (etiquetas o valores inmediatos) para cada uno de los operadores usados en una expresión. Se usa la siguiente tabla para dar formato a los operadores y operandos dentro de una expresión.
Para operadores que operan en: | Se usa este formato: | Ejemplo |
|---|---|---|
Un operando | operador(operando) | ABS(etiqueta) |
Dos operandos | operand_a operador operand_b | tag_b + 5 tag_c AND tag_d (tag_e**2) MOD (tag_f / tag_g) |
Determinar el orden de operación
Las instrucciones para llevar a cabo las operaciones en la expresión están en el orden prescrito, no necesariamente en el orden en que aparecen. Se puede especificar el orden de la operación agrupando los términos en paréntesis, lo que obligará a la instrucción a realizar las operaciones dentro los paréntesis antes que las suyas.
Las operaciones del mismo orden se realizarán de izquierda a derecha.
Order | Operación |
|---|---|
1 | ( ) |
2 | ABS, ACOS, ASIN, ATAN, COS, DEG, BCD_TO, IsINF, IsNAN, LN, LOG, RAD, SIN, SQRT, TAN, TO_BCD, TRUNC |
3 | ** |
4 | - (negar), NOT, ! |
5 | *, /, MOD |
6 | - (restar), + |
7 | AND |
8 | XOR |
9 | OR |
10 | <, <=, >, >=, =, <> |
11 | && |
12 | ^^ |
13 | || |
Uso de cadenas en una expresión
Para usar cadenas de caracteres ASCII en una expresión, siga estas pautas:
- Una expresión puede comparar dos etiquetas de cadenas.
- No se pueden introducir caracteres ASCII directamente en la expresión.
- Se permiten los siguientes operandos:OperadorDescripción=Igual<Menor que<=Menor o igual que>Mayor que>=Mayor o igual que<>No igual
- Las cadenas son iguales si sus caracteres coinciden.
- Los caracteres ASCII distinguen entre mayúsculas y minúsculas. La mayúscula A ($41) no es equivalente a la minúscula a ($61).
- Lo que determina si una cadena es mayor o menor que otra son los valores hexadecimales de los caracteres.
- Cuando las dos cadenas se ordenan como en un directorio telefónico, el orden de las cadenas determina cuál es superior.

Afecta a las marcas de estado matemáticas
Controladores | Afecta a las marcas de estado matemáticas |
Controladores CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380 y GuardLogix 5580 | No |
Controladores CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 y GuardLogix 5570 | La instrucción CMP afecta a las marcas de estado matemático si la expresión contiene un operador (como +, −, *, /) que afecte a las marcas de estado matemático. |
Consulte Marcas de estado matemático.
Fallos mayores/menores
No es específico para esta instrucción. Consulte Índice a través de matrices para ver si hay fallos de indexación de matrices.
Ejecución
Diagrama de lógica de escalera
Condición/estado | Acción realizada |
|---|---|
Pre-escaneado | N/A. |
La condición de entrada de renglón es falsa | Establecer la condición de salida de reglón a condición de entrada de reglón |
La condición de entrada de renglón es verdadera | Establecer la condición de salida de reglón a condición de entrada de reglón si la expresión se evalúa como falsa La condición de salida de reglón se borra a falsa |
Post-escaneado | N/A |
Ejemplo
Diagrama de lógica de escalera

Si value_1 es igual a value_2, light_a se establece en verdadero. Si value_1 no es igual a value_2, light_a se establece en falso.
Entregue su opinión