Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Infoplc Net 1756 pm007 en P PDF
Infoplc Net 1756 pm007 en P PDF
controladores Logix5000
Manual de programación
(Números de catálogo 1756 ControlLogix,
1769 CompactLogix, 1789 SoftLogix,
1794 FlexLogix, PowerFlex 700S con
DriveLogix)
Información importante para el usuario
Los equipos de estado sólido tienen características de funcionamiento distintas de las de los equipos electromecánicos. La publicación
Safety Guidelines for the Application, Installation and Maintenance of Solid State Controls (publicación SGI-1.1 disponible en su
oficina local de ventas de Rockwell Automation o en línea en http://literature.rockwellautomation.com) describe algunas diferencias
importantes entre los equipos de estado sólido y los dispositivos electromecánicos de lógica cableada. Debido a esta diferencia y también
a la gran variedad de usos de los equipos de estado sólido, toda persona encargada de la aplicación de estos equipos debe asegurarse de
la idoneidad de cada una de las aplicaciones concebidas con ellos.
En ningún caso Rockwell Automation, Inc. será responsable ni asumirá ninguna obligación por daños indirectos o consecuentes que
resulten del uso o de la aplicación de estos equipos.
Los ejemplos y los diagramas de este manual se incluyen únicamente con fines ilustrativos. Debido a las numerosas variables y los
muchos requisitos asociados con cualquier instalación en particular, Rockwell Automation, Inc. no puede asumir responsabilidad u
obligación alguna por el uso de estos equipos basado en ejemplos y diagramas.
Rockwell Automation, Inc. no asume ninguna obligación de patente con respecto al uso de la información, los circuitos, los equipos o el
software descritos en este manual.
Se prohibe la reproducción total o parcial del contenido de este manual sin la autorización por escrito de Rockwell Automation, Inc.
Este manual contiene notas de seguridad en todas las situaciones en que se estimen necesarias.
Identifica información sobre prácticas o circunstancias que pueden provocar una explosión en un
ADVERTENCIA
ambiente peligroso, lo que podría causar lesiones personales o la muerte, daños materiales o
pérdidas económicas.
IMPORTANTE Identifica información importante para la correcta aplicación y comprensión del producto.
Identifica información sobre prácticas o circunstancias que podrían provocar lesiones personales
ATENCIÓN
o la muerte, daños materiales o pérdidas económicas. Los mensajes de Atención le ayudan a
identificar y evitar un peligro, y a reconocer las consecuencias.
PELIGRO Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o un
DE CHOQUE motor) para advertir sobre la posible presencia de voltaje peligroso.
PELIGRO Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o un
DE QUEMADURA motor) para advertir sobre superficies que podrían estar a temperaturas peligrosas.
Allen-Bradley, Rockwell Automation, and TechConnect son marcas comerciales de Rockwell Automation, Inc.
Las marcas comerciales no pertenecientes a Rockwell Automation son propiedad de sus respectivas empresas.
Contenido
Prefacio Propósito de este manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Cómo usar ese manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Capítulo 1
Programación de texto Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
estructurado Asignaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Especifique una asignación no retentiva. . . . . . . . . . . . . . . . . . . . . . 9
Asigne un carácter ASCII a una cadena.. . . . . . . . . . . . . . . . . . . . . 10
Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Use operadores y funciones aritméticas . . . . . . . . . . . . . . . . . . . . . 12
Use operadores con relaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Use operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Use operadores bit a bit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Determine el orden de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Construcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Algunas palabras clave están reservadas para uso futuro. . . . . . . . 18
IF...THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
CASE...OF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
FOR…DO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
WHILE…DO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
REPEAT…UNTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Servicio de asistencia técnica de Rockwell Automation . . . . . . . . . . . . 36
Asistencia para la instalación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Devolución de productos nuevos . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Propósito de este manual Este manual muestra cómo programar los controladores Logix5000 con el
lenguaje de programación de texto estructurado. Este manual es uno de un
conjunto de manuales relacionados que muestran los procedimientos comunes
para programar y operar los controladores Logix5000. Para obtener una lista
completa de manuales de procedimientos comunes, consulte el documento
Manual de programación de procedimientos comunes de los controladores
Logix5000, publicación 1756-PM001.
Cómo usar ese manual Algunas secciones tienen un formato distinto al resto del texto.
Notas:
Asignaciones Use una asignación para cambiar el valor almacenado dentro de un tag. Una
asignación tiene esta sintaxis:
tag := expression ;
donde:
Componente Descripción
tag Representa el tag que está obteniendo el nuevo valor.
El tag debe ser de tipo BOOL, SINT, INT, DINT o REAL.
:= Es el símbolo de asignación.
expresión Representa el nuevo valor que se va a asigna al tag.
Si el tag es de este tipo de Use este tipo de expresión
datos
BOOL Expresión BOOL
SINT Expresión numérica
INT
DINT
REAL
; Termina la asignación.
El tag retiene el valor asignado hasta que otra asignación cambia el valor.
La expresión puede ser simple, como un valor inmediato u otro nombre de tag,
o la expresión puede ser compleja e incluir varios operadores y/o funciones.
donde:
Componente Descripción
tag Representa el tag que está obteniendo el nuevo valor.
El tag debe ser de tipo BOOL, SINT, INT, DINT o REAL.
[:=] Es el símbolo de asignación no retentiva.
expression Representa el nuevo valor que se va a asignar al tag.
Si el tag es de este tipo de Use este tipo de expresión
datos
BOOL Expresión BOOL
SINT Expresión numérica
INT
DINT
REAL
; Termina la asignación.
Expresiones Una expresión es el nombre de un tag, una ecuación o una comparación. Para
escribir una expresión, use uno de estos elementos.
• Nombre de tag que almacene el valor (variable)
• Número que usted introduce directamente en una expresión (valor
inmediato)
• Funciones, tales como: ABS, TRUNC
• Operadores, tales como: +, -, <, >, And, Or
A medida que usted escriba las expresiones, siga estas reglas generales.
Por ejemplo:
Si la comparación es El resultado es
Verdadera 1
Falsa 0
Por ejemplo:
Si la comparación es El resultado es
Verdadera 1
Falsa 0
Por ejemplo:
Los operadores bit a bit manipulan los bits dentro de un valor basado en dos
valores.
Por ejemplo:
Orden Operación
1. ()
2. función (…)
3. **
4. - (cambiar signo)
5. NOT
6. *, /, MOD
7. +, – (restar)
8. <, <=, >, >=
9. =, <>
10. &, AND
11. XOR
12. OR
Instrucciones Los enunciados de texto estructurado también pueden ser instrucciones. Una
instrucción de texto estructurado se ejecuta cada vez que se escanea. Una
instrucción de texto estructurado dentro de una construcción se ejecuta cada
vez que las condiciones de la construcción son verdaderas. Si las condiciones
de la construcción son falsas, los enunciados dentro de la construcción no se
escanean. No existe una condición de renglón o transición de estado que active
la ejecución.
END_IF;
osri_1.InputBit := tag_xic;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
ABL(0,serial_control);
END_IF;
• GOTO
• REPEAT
IF...THEN Use IF…THEN para hacer algo si o cuando ocurra una condición específica.
Operandos:
Texto estructurado
IF bool_expression THEN
Operando Tipo Formato Introduzca
<enunciado>;
END_IF; bool_ BOOL Tag Expresión o tag BOOL que evalúa
expression Expresión respecto a un valor BOOL (expresión
BOOL)
IF bool_expression1 THEN
<enunciado >; Enunciados a ejecutarse cuando
bool_expression1 es verdadera
.
.
.
ELSIF bool_expression2 THEN
Opcional
<enunciado>; Enunciados a ejecutarse cuando
bool_expression2 es verdadera
.
.
.
ELSE
Opcional
<enunciado>; Enunciados a ejecutarse cuando
ambas expresiones son falsas
.
.
.
END_IF;
2. Para hacer algo cuando todas las condiciones IF o ELSIF son falsas,
añada un enunciado ELSE.
Indicadores de estado
aritméticos: No afectados
Ejemplo 1: IF…THEN
Ejemplo 2: IF…THEN…ELSE
[:=] le indica al controlador que restablezca la luz cada vez que el controlador:
• entre al modo marcha.
• deje el paso de un SFC si usted configura el SFC para restablecimiento
automático (esto se aplica sólo si usted incorpora la asignación en la
acción del paso, o si usa la acción para llamar a una rutina de texto
estructurado mediante una instrucción JSR).
Ejemplo 3: IF…THEN…ELSIF
Ejemplo 4: IF…THEN…ELSIF…ELSE
CASE...OF Use CASE para seleccionar qué hacer en base a un valor numérico.
Operandos:
Texto estructurado
CASE numeric_expression OF
Operando Tipo Formato Introduzca
selector1: statement;
selectorN: statement; numeric_ SINT Tag Tag o expresión que evalúa a un número
expression INT Expresión (expresión numérica)
ELSE DINT
statement; REAL
END_CASE; selector SINT Inmediato El mismo tipo que numeric_expression
INT
DINT
REAL
CASE numeric_expression OF
selector1 : <enunciado>; Enunciados a ejecutarse cuando
. numeric_expression = selector1
.
.
selector2 : <enunciado>; Enunciados a ejecutarse cuando
Especifique todos los numeric_expression = selector2
valores de selector .
alternativos (rutas) que .
necesite .
selector3 : <enunciado>; Enunciados a ejecutarse cuando
. numeric_expression = selector3
.
.
ELSE
<enunciado>; Enunciados a ejecutarse cuando
opcional . numeric_expression ¼ de
cualquier selector
.
.
END_CASE;
Indicadores de estado
aritméticos: No afectados
Ejemplo
Ejemplo
[:=] le indica al controlador que también restablezca los tags de salida cada vez
que el controlador:
• entre al modo marcha.
• deje el paso de un SFC si usted configura el SFC para restablecimiento
automático (esto se aplica sólo si usted incorpora la asignación en la
acción del paso, o si usa la acción para llamar a una rutina de texto
estructurado mediante una instrucción JSR).
FOR…DO Use el lazo FOR…DO para hacer algo un número específico de veces, antes
de hacer otra cosa.
Operandos:
Texto estructurado
FOR count:= initial_value TO final_value BY
increment DO Operando Tipo Formato Descripción
<statement>; count SINT Tag Tag para almacenar la posición de
END_FOR; INT conteo a medida que se ejecuta
DINT FOR…DO
initial_ value SINT Tag Debe evaluar con respecto a un número.
INT Expresión Especifica el valor inicial para el conteo.
DINT Inmediato
final_ value SINT Tag Especifica el valor final para el conteo, el
INT Expresión cual determina cuándo salir del lazo.
DINT Inmediato
increment SINT Tag (opcional) Valor a incrementar el conteo
INT Expresión cada vez a través del lazo
DINT Inmediato
Si usted no especifica un incremento, el
conteo se incrementa en un valor de 1.
IMPORTANTE Asegúrese de no iterar dentro del lazo demasiadas veces en un solo escán.
• El controlador no ejecuta ningún otro enunciado en la rutina mientras
no se complete el lazo.
• Si el tiempo que se requiere para completar el lazo es mayor que el
temporizador de control (watchdog) para la tarea, se produce un fallo
mayor.
• Considere usar una construcción diferente, por ejemplo IF...THEN.
No no
enunciado 1 enunciado 1
enunciado 2 enunciado 2
enunciado 3 enunciado 3
enunciado 4 enunciado 4
… … Sí
¿Salir ?
Resto de la rutina
No
Resto de la rutina
El lazo FOR…DO se ejecuta un número Para detener el lazo antes de que el conteo llegue al
específico de veces. último valor, use un enunciado EXIT.
Indicadores de estado
aritméticos: No afectados
Condiciones de fallo:
Ejemplo 1:
Ejemplo 2:
WHILE…DO Use el lazo WHILE…DO para continuar haciendo algo, siempre y cuando
ciertas condiciones sean verdaderas.
Operandos:
Texto estructurado
WHILE bool_expression DO
Operando Tipo Formato Introduzca
<statement>;
END_WHILE; bool_ BOOL Tag Expresión o tag BOOL que evalúa
expression Expresión respecto a un valor BOOL
IMPORTANTE Asegúrese de no iterar dentro del lazo demasiadas veces en un solo escán.
• El controlador no ejecuta ningún otro enunciado en la rutina mientras
no se complete el lazo.
• Si el tiempo que se requiere para completar el lazo es mayor que el
temporizador de control (watchdog) para la tarea, se produce un fallo
mayor.
• Considere usar una construcción diferente, por ejemplo IF...THEN.
WHILE bool_expression1 DO
<statement>; Enunciados a ejecutarse mientras
bool_expression1 es verdadera
IF bool_expression2 THEN
EXIT; Si existen condiciones en las que usted
Opcional desee salir del lazo anticipadamente, use
END_IF; otros enunciados, tal como la construcción
IF...THEN, para condicionar un enunciado
EXIT
END_WHILE;
Mientras bool_expression es verdadero, el Para detener el lazo antes de que las condiciones
controlador ejecuta sólo los enunciados dentro sean verdaderas, use un enunciado EXIT.
del lazo WHILE…DO.
Indicadores de estado
aritméticos: No afectados
Condiciones de fallo:
Ejemplo 1:
Ejemplo 2:
REPEAT…UNTIL Use el lazo REPEAT…UNTIL para continuar haciendo algo hasta que las
condiciones sean verdaderas.
Operandos:
Texto estructurado
REPEAT
Operando Tipo Formato Introduzca
<statement>;
UNTIL bool_expression bool_ BOOL Tag Expresión o tag BOOL que evalúa
expression Expresión respecto a un valor BOOL (expresión
END_REPEAT; BOOL)
IMPORTANTE Asegúrese de no repetir dentro del lazo demasiadas veces en un solo escán.
• El controlador no ejecuta ningún otro enunciado en la rutina mientras
no se complete el lazo.
• Si el tiempo que se requiere para completar el lazo es mayor que el
temporizador de control (watchdog) para la tarea, se produce un fallo
mayor.
• Considere usar una construcción diferente, por ejemplo IF...THEN.
REPEAT
<statement>; Enunciados a ejecutarse mientras
bool_expression1 es falsa
IF bool_expression2 THEN
EXIT; Si existen condiciones en las que usted
Opcional desee salir del lazo anticipadamente, use
END_IF; otros enunciados, tal como la construcción
IF...THEN, para condicionar un enunciado
EXIT.
UNTIL bool_expression1
END_REPEAT;
Resto de la rutina
Mientras bool_expression sea falso, el controlador Para detener el lazo antes de que las condiciones
ejecuta sólo los enunciados dentro del lazo sean falsas, use un enunciado EXIT.
REPEAT…UNTIL.
Indicadores de estado
aritméticos: No afectados
Condiciones de fallo:
Ejemplo 1:
Ejemplo 2:
Por ejemplo:
Formato Ejemplo
//comentario Al comienzo de una línea
//Check conveyor belt direction
IF conveyor_direction THEN...