You are on page 1of 51

Lenguajes de Programación

Controladores Logicos
Programables II
Índice

1. Estructura RSLogix 5000


2. Tareas del Controlador Cont.
3. Programas del Controlador Cont.
4. Lenguajes de programación
Objetivos
• Entender Claramente la estructura de
Programación de la Familia Logix
• Conocer los diferentes lenguajes de
Programación
• Reconocer los tipos de aplicaciones donde
emplear cada lenguaje de Programación.
Programación de Controladores PAC
CompactLogix / ControlLogix
Programa de Control

• Programa
– Instrucciones para indicar entradas y determinar salidas
• Normalmente, Diagrama de Escalera (Relé):

Botón de incio Luz

• Programas pueden ser escritos en otros lenguajes:


– Bloques de Funciones, Texto Estructurado
• Variables
– Ejemplos
• “Botón de incio” es direccionado a una entrada digital
• “Luz” es direccionada a una salida digital

5
Direccionamiento E/S

Ejemplo de
Nombre
Descriptivo

Botón de inicio Luz


_IO_Embedded_Digital_Input_0 _IO_Embedded_Digital_Output_0

Ejemplo de
direccionamie
nto del
sistema

6
El Concepto Logix OS
RSLogix5000
LD, FBD, ST, SFC

Programas de Aplicación
API (Conjunto de Instrucciones)
Booleano, Archivo, Computar, Movimiento,
Procesos, Variadores, Comunicaciones,
Diagnósticos
Núcleo de Sistema Operativo
Manejo de Memoria, Manejo de Tareas
Servicios de Comunicación

HAL (Interface con Hardware)


Procesadores, Comunicaciones a Bordo,
Backplane
Etiquetas: TAGS

• Nombre genérico que almacena un dato. En


Logix se utiliza el Tag para direccionar un dato
(variables).
• Nombre para un área de la memoria del
controlador donde el dato es almacenado.
• Los Tags son mecanismos para distribuir
memoria, referencian datos de la lógica y de
monitoreo. La mínima distribución de memoria
para un Tag es de 4 bytes

8
Etiquetas: TAGS

9
Tareas: TASKS

10
Tareas: TASKS

Tipos Ejecució Prioridade


n s

11
Estructura

12
Sistema Operativo Logix5000
• Logix5000 utiliza un
sistema operativo Logix5000 Controller

multitarea basado en System Task Program

símbolos Motion Task


Fault Task
Program

– Modelo de tareas que User Task


User Task
Configuration
Program

Program
cumple con User Task
Configuration
Status
Configuration
Program

IEC61131-3 Status
Password
Status
Password
Program

• Soporte para hasta 32


Main Routine
Watchdog

Local Data
tareas separadas array[x]
I/O Data

• Las tareas periódicas / float


int struct
subroutine
subroutine
--| |------( )--
eventos soportan 15
struct array[x]
subroutine
--| |------( )--
subroutine
--| |------( )--
--| |------( )--

Niveles de Prioridad Global Data


struct array[x]
Fault Routine

• Cada tarea puede array[x,y,z]


if A=12 then B

invocar hasta 32
Programas
Características de Datos de Controlador
Nombre Simbólico Descripción
• Soporte de tipos de datos
definidos por IEC61131
• Direccionamiento Simbólico Tipo de tag

(Tag) Tipo de Datos


• Estructuras que proporcionan Espacio para
Nombre
encapsulamiento de datos
• Las tablas de datos con
diferentes “alcances” Formato de Display

proporciona aislamiento entre


programas Tipos de Datos
Soportados

• Arreglos de datos (1,2,3 (Atómico, estructuras de


producto y estructuras
dimensional) definidas por el usuario)

• Tags con Características


Avanzadas Matrices
Tridimensionales
Direccionamiento Simbólico en el Controlador
• Los datos y las E/S son direccionadas utilizando Dirección Simbólica que cumple con
IEC61131-3
• Almacenados en el Controlador para permitir acceso a datos a través de la red a
través Nombres de Tag
• Los datos pueden ser referenciados utilizando tag “Alias”
– Proporciona flexibilidad para dar nombre a los datos de forma diferente,
dependiendo de su uso
– Permite que el programa sea desarrollado sin conocer la distribución de las E/S o
la memoria
• Nombre de Tag Tecleo
anticipado de
– Nombres de Tag de 40 caracteres (Igual que RSView) nombre de Tag

• 1er caracter comienza con Alpha o “_”


• Los siguientes 39 caracteres Alpha, Numéricos o “_”
Descripción
– No son sensibles a mayúsculas o minúsculas
• Descripción de Tag/Comentario Referencia de Tag
– 120 caracteres dan Referencia de Base
una descripción más
Sugerencia de Herramienta
significativa
– Almacenada fuera de línea en disco
• El Tecleo Anticipado / Auto-llenado de
Tag optimiza el proceso de desarrollo
Logix Facilita la Ingeniería Coincidente
Enfoque de Sistema de Enfoque
Reducción Ahorro adicional de
Estimada en 25 - 25% en tiempo
Control Típico Logix
40% del esfuerzo en recurrente de
diseño inicial ... ingeniería
Diseño de Distribución de Sistema Diseño de
Distribución
Funcionamiento y colocación Funcionamiento y colocación de Sistema
De Dispositivo Eléctrico De Dispositivo Eléctrico

Diseño Eléctrico
Desarrollo
Diseño Eléctrico
Direcciones I/O de todos Direcciones I/O
de Programa
los Dispositivos de todos los
Dispositivos
Desarrollo de Programa

Arranque
Arranque de Máquina de Máquina
Estructuras y Matrices de Estructuras
• Crée tipos de datos definidos por usuario que imitan a sus
dispositivos
• Crée nombres de tags para memoria según lo requiera sin el lastre
del direccionamiento de la memoria física
• Proporciona código auto-documentado que es más fácil de
desarrollar y mantener
• Utilice matrices para guardar tablas de información en hasta 3
dimensiones (como en la vida real)
– ejemplo: Cuarto de tanques con 4 hileras de tanques, 3 al fondo,
dos tanques de altura de estiba
ROW

HEIGHT
Soporte Multi-Lenguaje RSLogix 5000
• Totalmente integrado con otros lenguajes dentro de RSLogix 5000
– Existe como parte de RSLogix 5000, utiliza la base de datos existente,
estructura, de menú, organizador de controlador, configuración de E/S,
etc.
– Disponible como una opción a versiones mini y estándar e incluido con
Professional
• Las rutinas LD, FBD, SFC, ST pueden coexistir con otros tipos de rutina
en el mismo controlador
– Una rutina de cualquier lenguaje
puede llamar a otras rutinas
SFC, ST, LD o FBD
• Funciona con la herramienta Logix5000
para soportar carga/descarga de
rutinas desde el procesador
– Todos los lenguajes son nativos a
Logix5000
• Lenguajes que cumplen con
IEC61131-3
IEC 1131-3
http://www.software.rockwell.com/corporate/reference/iec11
31/

IEC 1131-3 is the international standard for


programmable controller programming languages.
As such, it specifies the syntax, semantics and
display for the following suite of PLC programming
languages:
• Ladder diagram (LD)
• Sequential Function Charts (SFC)
• Function Block Diagram (FBD)
• Structured Text (ST)
• Instruction List (IL)
IEC 1131-3
Lógica Escalera.
• Típicamente usado para el control On / Off
como el control de bombas o motores etc…

21
Bloques de Función
• Típicamente usados para Control Regulatorio
como el control PID.
• La Configuración es realizada Gráficamente.
• Los Datos pueden ser observados y
manipulados en línea.
Bloques de Función.
Bloques de Función.
Structured Text
Benefits of Structured Text
• People trained in computer languages can easily program
control logic
• Symbols make the programs easy to understand
• PowerText facilitates system debugging and application
commissioning
• Programs can be created in any text editor
• Runs as fast as ladder logic
Structured Text ConstructsBit / Word assignment
• IF-THEN-ELSE
• CASE
• FOR-NEXT
• WHILE
• REPEAT
• Ladder equivalent instructions
Texto Estructurado
• Similar al PASCAL, C
• Típicamente usado para cálculos matemáticos,
funciones de “For/Next” lazos o aplicaciones de
funciones, “If/Then/Else”.
Texto Estructurado.
Arithmetic Operators
Functions
Logical Operators
Use Bitwise Operators
IF THEN
IF THEN ELSE
Structured Text Examples
Example 1 (Sorting machine)
IF (LIMIT_SWITCH_1 AND BOX_PRESENT) THEN
GATE1 := OPEN;
GATE2 := CLOSE;
ELSIF ((LIMIT_SWITCH_2 OR (WEIGHT <> SETPOINT)))
THEN
GATE1 := CLOSE;
GATE2 := OPEN;
ELSIF (LIMIT_SWITCH_3 XOR LIMIT_SWITCH_4) THEN
GATE1 := OPEN;
GATE2 := OPEN;
ELSE
GATE1 := CLOSE;
GATE2 := CLOSE;
END_IF;
Example 2 (Split-range temperature control, with
deadband)
CASE(TEMPERATURE) OF
0 .. 120 :
HEAT_VALVE := OPEN;
COOL_VALVE := CLOSE;
150 .. 32767 :
HEAT_VALVE := CLOSE;
COOL_VALVE := CLOSE;
ELSE
HEAT_VALVE := CLOSE;
COOL_VALVE := CLOSE;
END_CASE;
PID (CONTROL_BLOCK, TANK_#27_TEMPERATURE, TIEBACK,
COOLANT_VALVE);
Example 3 (Computational examples)
POWER := (CURRENT ** 2.0) * RESISTANCE;
F8:1 := ((N7:1 * 3.1428571) + (N7:3 / N7:4));
F8:0 := ( SIN (ANGLE)) MOD 6.0;
Example 4 (If-Then-Else example)
IF I:000/0 AND !I:001/5 THEN
N7:0 := 1;
ELSIF i:000/2 OR (N7:5 <> (N7:6 * N7:2)) THEN
N7:0 :=2;
ELSIF !I001/4 THEN
N7:0 := 3;
ELSE
N7:0 :=4;
END_IF;
Example 5 (For-Next examples)
FOR N7:0 := 10 TO 0 BY -1 DO
N7:4 := N7:4 + 1;
END_FOR;

FOR N7:1 := 0 TO 10 DO
N7:1 := N7:1 + 1;
END_FOR;
Example 6 (While example)
WHILE I:000/0 AND (I:001/0 OR !I:002/1) DO
N7:0 := N7:0 + 1;
END_WHILE;
Example 7 (Case example)
CASE N7:12 OF
0:
N7:1 := 1;
1, 9:
N7:1 := 2;
2..4:
N7:1 := 3;
10, 5..8:
N7:1 := 4;
ELSE
N7:1 :=5;
END_CASE;
Diagrama Secuencial.
Típicamente usado para aplicaciones
tipo Batch.
Diagrama Secuencial.
SFC --- GRAFCET
Toma de decisiones
if else
Divergencia, Convergencia
Salto de secuencia (if) Divergence of Sequence Selection
Skip Sequence in an SFC
Convergence of Sequence Selection
Secuencia simultanea
Simultaneous Convergence of Sequence
Simultaneous Convergence of a Sequence in an SFC
Ciclo de secuencia
Sequence Loop in an SFC
do
{

} while(D)
Action

You might also like