Download Principios de Programación en STEP7

Document related concepts

Sistema de control distribuido wikipedia , lookup

Módulo de núcleo wikipedia , lookup

Emulador wikipedia , lookup

Núcleo monolítico wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Transcript
Principios de Programación en
STEP7
Automatización Industrial
Índice
TEMA – Principios de Programación en STEP7
1. – Programas en la CPU
2. – Edición de Programas
2.1 – IEC 1131-3
2.2 – Instrucciones/Operandos/Módulos
3. – Estructura de Programas
4. – Tipos de Módulos
4.1 – Módulos de Sistema
4.2 – Módulos de Usuario
5. – Tipos de Procesamiento
6. – Tiempos de Ciclo y Respuesta
7. – Proyectos STEP7
Programas en la CPU
•
En una CPU corren dos programas
• Sistema operativo: Está contenido en cada CPU y organiza todas las funciones y
procesos de la CPU no relacionados con una tarea de control específica.
Entre sus funciones están:
• gestionar el arranque normal y completo del PLC/API
• actualizar la imagen del proceso de entradas y salidas
• llamar al programa de usuario
• detectar alarmas y llamar a los programas de atención a las mismas
• reconocer y tratar los errores
• administrar las áreas de memoria
• comunicar con unidades de programación y otros sistemas de supervisión
• Programa de usuario: Hay que crearlo y cargarlo la CPU. Contiene todas las funciones
necesarias para la tarea de control de una aplicación específica.
Entre las tareas del programa de usuario están:
• definir las condiciones de arranque (completo ó normal) de la CPU
• tratar datos del proceso (funciones combinatorias, valores analógicos, ....)
• reaccionar a alarmas
• tratamiento de perturbaciones en el funcionamiento normal del programa
La Norma IEC 1131 / EN-UNE 61131
Parte
Título
Contenidos
Parte 1
Información general
Definición de términos y glosario del PLC/API
Características funcionales del PLC/API
Parte 2
Especificaciones
y ensayos de los
equipos
Prestaciones eléctricas, mecánicas y funcionales
Información a suministrar por el fabricante
Ensayos y verificaciones
Parte 3 Lenguajes de
programación
Estructura del software de los PLC/API
Lenguajes de programación
Elementos del lenguaje
Parte 4
Guía para usuarios
Especificaciones y análisis del sistema
Aplicación y selección del PLC/API
Seguridad y protección, instalación y mantenimiento
Parte 5
Comunicaciones
Modelos, bloques de comunicación, mapeado en
protocolos ISO
Lenguajes de IEC 1131 - 3 / STEP7
Lenguaje
Diagrama de funciones
IEC 1131-3
FBD
Function Block Diagram
STEP 7
FBD/FUP
Function Block Diagram
Diagrama de contactos
LD
Ladder Diagram
LAD/KOP
Ladder Logic
Lista de instrucciones
IL
Instruction List
STL/AWL
Statement List
Texto estructurado
ST
Structured Text
SCL
Structured Control Language
Gráfico secuencial
SFC
Sequential Function Chart
GRAPH7
Diagrama de bloques
CFC
Continuous Function Chart
Diagrama de gráfico
de estados
HIGRAPH7
Funcionalidad del Software
• El entorno de programación permite desarrollar proyectos de control
y automatización con las siguiente funcionalidad:
– Crear la estructura de directorios necesaria para la gestión de cada proyecto
– Configurar el hardware del equipo
– Desarrollar programas off-line
– Cargar y descargar programas y datos en el PLC/API (on-line)
– Depurar el programa en fase de ejecución sin necesidad de interrumpir la
ejecución del programa (on-line)
– Realizar funciones de test o estado de variables y zonas de la memoria
– Realizar funciones de forzado de variables
– Elaborar documentos para la fase de mantenimiento posterior
– Analizar el estado y comportamiento de la CPU (pilas, tiempos, ...) y de los
módulos de señal asociados
Programas de Usuario
Bloque en el Programa de Usuario
STEP 7 permite estructurar el programa. Esto aporta las siguientes ventajas:
•
•
•
•
•
•
los programas se pueden dividir en bloques
se pueden estandarizar secciones individuales del programa
se simplifica la organización del programa
las modificaciones del programa pueden realizarse más fácilmente
se simplifica el test del programa, ya que puede ejecutarse por partes
se simplifica la puesta en servicio
Edición de un Programa
Programa
conjunto de todas las instrucciones y convenciones para el tratamiento de las
señales, por medio de las cuales se actúa sobre la instalación a controlar
(proceso), de acuerdo con unas órdenes de control
Estructura
Representación
•Técnica modular
•Segmentos
•Comentarios
• FBD / FUP
• LAD / KOP
• STL / AWL
Instrucción
Instrucción
unidad más pequeña autónoma del programa y constituye una orden de
trabajo para el procesador
Instrucción
002: A
Parte operacional
Operando
Identificación Parámetro
I 1.0
Operación
Operando
Parámetro
Identificador del operando
Dirección relativa de la instrucción en el
módulo respectivo
Operandos
OPERANDOS
Entradas
NEMONICO
FUNCION
I
Imagen del proceso de entradas (PII)
Salidas
Q
Imagen del proceso de salidas (PIQ)
Marcas
M
Para almacenar resultados binarios intermedios
Datos
D
Para almacenar resultados digitales intermedios
Tiempos
T
Funciones de tiempo (temporizadores)
Contadores
C
Funciones de cómputo (contadores)
Periferia
P
Para acceder directamente a la periferia
Locales
L
Datos locales temporales
Módulos
OB, FB, FC
SFB, SFC
Para estructurar el programa
Ejemplo de Programa
Esquema STL/AWL
Eléctrico
FBD/FUP
LAD/KOP
S1
S2
A I 0.0
AN I 0.1
= Q 4.5
I 0.0
&
I 0.0 I 0.1 Q 4.5
Q 4.5
I 0.1
=
H1
Estructuración de los Programas
• STEP 7 provee tres posibilidades para organizar un programa.
Programación
Lineal
Arranque
Programación
Dividida
Arranque
Programación
Estructurada
Arranque
Receta A
Receta B
OB1
OB1
Mezclador
FB1
OB1
FC2
FB2
Descarga
Programa Lineal:
Todas la instrucciones
están contenidas en un
módulo (normalmente
en el módulo de
organización, OB1)
Programa dividido en áreas:
Las instrucciones para funciones
individuales están contenidas en
módulos individuales. El OB1
llama a los módulos individuales
sucesivamente.
FC1
FC3
Programa Estructurado:
Las funciones reutilizables son
cargadas en módulos individuales.
El OB1 (u otros módulos) llaman a
estos módulos y les pasan datos
relevantes.
Estructura de Programa. Programación Lineal
OB1
1ª instrucción
2ª instrucción
..
..
..
.
última instrucción
Programación Lineal
OB1: Ejemplo de de un simple módulo lineal en FUP
Segmento 1: motor marcha/paro
I 0.0
>=1
Q 4.0
&
Q 4.0
I 0.1
=
Segmento 2: Seguridad y señales de aviso
I 0.2
&
I 0.3
Q 4.1
I 0.4
=
OB1: ejemplo de un simple
módulo lineal en AWL
Segmento 1: motor on/off
A(
O I 0.0
O Q 4.0
)
AN I 0.1
= Q 4.0
Segmento 2: Seguridad y
señales de aviso
A
AN
AN
=
I 0.2
I 0.3
I 0.4
Q 4.1
Programación Lineal. Ejemplo
Programación Dividida
FC
OB1
Ingrediente_A
Ingrediente_B
>=1
&
=
(CALL)
&
(CALL)
>=1
FC
Mezclador
Descarga
=
(CALL)
>=1
(CALL)
&
FC
=
>=1
FC
=
Ejecución de un Programa Dividido
Programa principal
OB
Módulo subrutina
Procesamiento
del programa
Instrucción que llaman
otros módulos
Procesamiento
del programa
Fin de módulo
Programa Dividido. Control de nivel
FC
Sistema Operativo
Programación Estructurada I
OB1
FC
FB
FB
FC
SFC
SFB
Otros
OBs
Programación Estructurada II
Motor
OB1
>=1
&
=
Descarga
>=1
&
=
&
=
=
Estructura del Programa
OB1
Módulo 7
Módulo 32
Procesar
módulo 7
Lamar al
módulo 32
..
..
.
Módulo R
...
Llamar al
módulo X
Retornar
Procesar
módulo 10
Retornar
Módulo 10
Retornar
Retornar
Retornar
Nivel1
Nivel2
Nivel3
Niveles 4..7
Nivel 8
División Tecnológica de un Programa
Sistema operativo
Inicio
del OB 1
ciclo
FB 10
Tren
CINTA A
CALL FB 10
CALL FC 50
FC 50
DB inst. 10
FB 20
CINTA B
CALL FB 20
CALL FC 50
DB inst. 2
Accionamiento
Tipos de Módulos de Programa
Ciclo
OB
Tiempo
Proceso
FB
FC
SFB
FB
FB
SFC
Módulo de
Organización
Error
Modos de operación del sistema
Leyenda:
Módulo de
datos de
instancia
Bloques
CPU 315
CPU 315-2DP Tamaño
Mód. de organización (OB)
13
14
8 Kby
Módulo de función (FB)
128
128 (0-127)
8 Kby
Función (FC)
128
128 (0-127)
8 Kby
8 Kby
Módulo de datos (DB)
127
127(1-127)
Función del sistema (SFC)
48
53
Mód. func. sistema (SFB)
7
7
Módulos de Usuario
Tipo de Módulo
Características
Organización (OB)
-
Interfase de usuario entre el sistema operativo y el programa
Prioridades establecidas de (1a 29)
Información especial de inicio en la pila de datos locales
Definen la estructura del programa de usuario
Módulo de
función (FB)
-
Módulos con memoria que puede programar el usuario
Parametrizable / retentiva
No parametrizable / retentiva
No parametrizable / no retentiva
Función (FC)
- Rutina de programa para funciones frecuentes.
- Un valor de retorno es transferido.
(Los parámetros deben ser asignados por la llamada.)
- No retentivo
- Parametrizable
Módulo de Datos
(DB)
- Estructurado, almacenamiento de datos locales (DB instan.)
- Estructurado, almacenamiento de datos globales
(válido en todo el programa)
Módulos del Sistema
Tipo de Módulo
Características
Función del
Sistema
(SFC)
- Integrados en el sistema operativo de la CPU
- Un usuario puede llamar esta función
(sin memoria).
Módulos de
Funciones
del Sistema
(SFB)
- Integrados en el sistema operativo de la CPU
- Un usuario puede llamar esta función
(con memoria).
Dato de Sistema
(SDB)
- Módulo de datos para datos de configuración
y parámetros
Módulos de Organización – OB´s (I)
Bloques de Organización (OB):
• Constituyen el interfaz entre el sistema operativo y el programa de usuario.
• Tienen prioridad.
• En las CPUs del S7 300 la prioridad de los OBs es fija
• Es posible asignar la misma prioridad a varios OBs
• Con prioridad “0” se desactiva el OB de alarmas
• Son llamados por el sistema operativo.
• Cada OB contine una información de arranque de 20 bytes de
datos locales que entrega al S.O. durante el arranque
• Controlan:
• El procesamiento cíclico
• El procesamiento controlado por alarmas del programa
• El comportamiento en el arranque del sistema de automatización
• El tratamiento de errores
Módulos de Organización – OB´s (II)
Tipo de Alarma
Módulo de organización
Ciclo libre
OB1
1
Alarmas horarias
OB 10 a OB 17
2
Alarmas de retardo
OB 20 a OB 23
de 3 a 6
Alarmas cíclicas
OB 30 a OB 38
de 7 a 15
Alarmas de Proceso
OB 40 a OB 47
de 16 a 23
Alarma de
multiprocesamiento
OB 60
25
Error de redundancia
OB 70 y OB 72
25 y 28
Errores asíncronos
OB 80 a OB 87
26
Ciclo no prioritario
OB 90
29
Arranque
OB 100 a OB 102
27
Errores síncronos
OB 121y OB 122
Prioridad
la del OB del error
Ejecución Cíclica I
Sistema operativo Programa de usuario
Conectar
Ciclo
Programa
principal
Ejecución Cíclica II
Sistema operativo Programa de usuario
Conectar
Programa
de usuario
Ciclo
Programa
principal
Alarma
Interrupción
Programa
de alarma
Error
Interrupción
Tratamiento
de errores
Secuencia y Profundidad de Anidamiento
Sistema operativo
Inicio
del
ciclo
Profundidad de anidamiento
OB 1
FB 1
FC 1
DB inst. 1
FB 2
DB inst. 2
FC 1
FB 1
SFC 1
DB inst. 1
DB 1
Llamadas a los Módulos
Llamada de un módulo
(OB, FB, FC)
Ejecución
del programa
Instrucción que llama a
otro módulo
Módulo llamado
(FB, FC, SFB, SFC)
Ejecución
del programa
Fin de módulo
Fases de la Ejecución Cíclica
El sistema operativo inicia el tiempo
de vigilancia del ciclo
La CPU escribe los valores de la PIQ
en los módulos de salida
La CPU lee el estado de las entradas en los
módulos de entrada y actualiza la PII
La CPU ejecuta el programa de usuario
Al final del ciclo, el S.O. realiza las tareas pendientes
(cargar y borrar módulos, recibir y enviar datos globales..)
Tiempo de Ciclo I
• El tiempo de ciclo es el tiempo que el S.O. necesita para:
• ejecutar el programa cíclico
• partes del programa que interrumpen al cíclico (ejecución otros OBs)
• actividades del sistema (p.e. actualización de imágenes, ..)
• El tiempo de ciclo se vigila
• El tiempo de ciclo no es igual para cada ciclo
Tiempo de Ciclo II
• La figura muestra la función del tiempo de vigilancia del ciclo en la
ejecución del programa en las CPUs
Funciones – FC´s
• Son módulos programables. Con parámetros absolutos o fromales
• Es un módulo lógico “sin memoria”
• Las variables temporales de FCs se memorizan en la pila de datos locales
• Los datos locales se pierden tras la ejcución de las FCs
• Para memorizar los datos, pueden utilizar módulos de datos globales.
•A los datos locales de una FC no se le pueden asignar valores iniciles
•Como una FC no tiene memoria, se han de indicar siempre parámetros actuales
•Las FCs se pueden utilizar para:
• devolver un valor de función al módulo invocante (p.e. Fun. Matemáticas)
• ejecutar una función tecnológica (p.e. Una combinación binaria)
Módulo de Función – FB´s
• Son módulos programables. Con parámetros absolutos o formales
• Es un módulo “con memoria”
• Tiene asigando un módulo de datos como memoria (DB de instancia)
• Los parámetros que se transfieren al FB y las varaiables estáticas, se
memorizan en el DB de instancia
• Las variables temporales se memorizan en la pila de datos locales
• Los datos del DB de instancia no se pierden al finalizar la ejecución del FB
• Los datos memorizados en la pila de datos locales se pierden al finalizar la
ejecución del FB
• Un FB contiene:
• un programa que se ejecuta cada vez que se le llama desde otro módulo
• facilitan la programación de funciones complejas de uso frecuente
FBs y DBs de Instancia
• A cada llamada de un FB que transfiere parámetros está asignado un DB
de instancia
• Un FB puede ejecutarse con diferentes DBs de instancia, luego se ejecuta
con diferentes valores para los parámetros con cada DB de instancia
FB 20: Motor
Parámetros formales
DB 202: Motor_2
Parámetros actuales (reales)
Arranque: INT IN
Revoluciones: INT IN
Historial: DT IN_OUT
Tiempo efec.: TIME IN_OUT
Entero (16 bits): Arranque
Entero (16 bits): Revoluciones
Fecha y hora (48 bits):
Puntero a dirección del historial
Tiempo (32 bits): Tiempo ejec.
Módulo de Datos Globales – DB´s
• Son módulos de datos. No contienen instrucciones STEP 7
• Contienen datos de usuario, datos variables con los que trabaja el programa
• Cualquier FB, FC o OB puede leer/escribir datos en un DB global
• El tamaño máximo de los DBs depende de las CPUs
• La estructura de los DBs de datos globales se puede definir discrecionalmente
• Los datos de un DB de datos globales no se borran al cerrar el DB o concluir
la ejecución del módulo de programa que lo utiliza
FC 10
FC 11
FC 12
DB
global
(DB 20)
Acceso desde
todos los bloques
DB de instancia Acceso sólo desde
FB 12
(DB 112)
Módulos del Sistema – SFB´s y SFC´s
• Son módulos ya programados que ofrecen las CPUs S7 a los usuarios
SFBs:
• Es un FB integrado en la CPU
• Forman parte del S.O.
• No se cargan como parte integrante del programa
• Al igual que los FBs, son módulos “con memoria”
• Hay que crear los DBs de instancia y cargarlos en la CPU como parte
intrgrante del programa.
• Las CPUs ofrecen SFBs:
• para la comunicación vía enlaces configurados
• para las funciones especiales
SFCs:
• Es una función programada integrada en la CPU
• Las SFC se pueden llamar desde el programa de usuario
• Forman parte del S.O.
• No se cargan como parte integrante del programa
• Al igual que las FCs, las SFCs son módulos “sin memoria”
• Las CPUs ofrecen SFCs para un conjunto muy amplio de aplicaciones
Tipos de Módulos de Datos
8 Bits
Byte de datos 0
El tamaño máximo de un módulo
en la CPU 314 es 8 Kbyte. La
cantidad máxima de memoria
disponible en un módulo de datos
depende de la CPU.
Byte de datos 8191
Llamada de Módulos – Asignación de Parámetros
STL/AWL
FB parámetro formal
CALL FB7, DB45
Start: = I 1.0
Stop: = I 1.1
Longitud := MW20
Ejecutar: = M2.1
Llamada al FB7 (a través del
módulo de datos de instancia
DB45) y asignación de parámetros.
Dirección actual de los datos
(parámetro vigente)
DB45
FBD/FUP
FB7
EN
Dirección actual
de los datos
I 1.0
I 1.1
MW20
Llamada al FB7 (a través del
módulo de datos de instancia
DB45) y asignación de parámetros.
ENO
Start
ejecutar
Stop
Longitud
M2.1
FB parámetro formal
Estructura del Módulo
Cabecera del Módulo
(36 Bytes)
Cuerpo del módulo :
Sección de declaración
y
Sección de programa
o
Datos
Interfase
Descripción breve
Ejemplo de Programación Estructurada
LT
LT
a
LT
Botón de la selección
del tanque
b
LT
0 0 0 0
LT A
Ingrediente
Ingrediente B
Procesamiento Cíclico del Programa
Inicia el módulo (OB 100), procesándose una vez
después de conectar la alimentación, por ejemplo
Módulo de entrada
Iniciando el tiempo de control de ciclo
CPU ciclo de scan
Lectura del estado de las señales de los módulos
guardando los datos en la tabla de la imagen de
proceso de entradas (PII)
Ejecución del programa en el OB1 (procesamiento
cíclico)
Eventos (tiempo de interrupción, interrupción de
proceso, etc.)
Llamada a otros módulos OBs, FBs, FCs, etc.
Escritura en la tabla de imagen de proceso de
salida (PIQ) en los módulos de salida.
Módulo OB 1
A I 0.1
A I 1.1
= Q 4.0
.
.
.
.
Módulo de salida
Imagen del Proceso
I2.0
I2.7
I0.5
I03
Q4.4
Q4.3
PII
Byte 0
Byte 1
Byte 2
.
.
.
.
PIQ
1
Programa
de usuario
A(
O I 2.0
O Q 4.3
)
AN I 2.7
AN I 0.5
AN I 0.3
= Q 4.4
Byte 0
Byte 1
Byte 2
.
.
.
.
1
Módulos de Organización de Alarmas
• Los OBs de alarmas permiten:
• ejecutar partes del programa dependientes del tiempo
• reaccionar eficazmente a señales externas al proceso
Tipo de Alarma
OBs de alarma
Aplicación
Alarma horaria
OB 10 a OB 17
Calcula el flujo de un proceso de
mezcla al final de un turno
Alarma de retardo
OB 20 a OB 23
Controla un ventilador para que
se pare 20 seg después de parar un
motor
Alarma cíclica
OB 30 a OB 38
Muestrear el valor de una señal para
el control de una planta
Alarma de proceso
OB 40 a OB 47
Notificar que se ha alcanzado el
valor máximo de un depósito
Ejecución de Programas – Tipos de Procesamiento
Arranque
CON
•comprobación e inicialización de valores
•condiciones de arranque
Procesamiento Cíclico
•procesamiento normal. OB1
Alarma
del proceso
Alarma de Proceso
Alarma
cíclica
Alarma cíclica
•gobierno por interrupciones
•periodos de tiempo predeterminados
•importante en lazos regulación
Alarma
horaria
Alarma
de retardo
Alarma horaria
Alarma de retardo
Tratamiento de Error
•en función de fallos
•sólo en algunas gamas
Alarma
por errores
Tiempo de Ciclo
Definición: El tiempo de ciclo es el tiempo que transcurre durante un
ciclo de programa. Está constituido por:
• Tiempo de ejecución del S.O.
• Tiempo de transferencia de las imágenes del proceso (PII, PIQ)
• Tiempo de ejecución del programa
• Temporizadores
• Funciones integradas
• Carga por alarmas
• Carga por comunicación (Profibus-DP, MPI)
S.O.
Programa
de usuario
Tiempo de ciclo
PII S.O.
Programa de usuario
A I 1.0
= Q 4.0
Interrupciones
por alarmas
PIQ PII
Tiempo de Respuesta
El tiempo de respuesta es el tiempo que transcurre entre el reconocimiento de una señal
de entrada y el cambio de estado de la señal de la salida correspondiente. Depende de:
• Tiempo de ciclo
• Retardo en las entradas y salidas
• Tiempos de rotación adicionales en la red Profibus
Tiempo de reacción
1
Retardo de
los módulos
de entrada
I 1.0 0
1
Q 4.0 0
tiempo
PII S.O.
Ejecución del programa
A I 1.0
PIQ
= Q 4.0
PII
Tiempo de Respuesta más Corto y más Largo
El tiempo de respuesta más corto se presenta cuando el estado de la
entrada observada cambia justo antes de la carga de la PII. En este caso
hay que tener en cuenta:
• Tiempo de retardo de la entradas
• Tiempo de actualización de la PII
• Tiempo de paso por el S.O.
• Tiempo del programa de usuario
• Tiempo de ejecución de los temporizadores
• Tiempo de actualización de la PIQ
• Retardo de las salidas
El tiempo de respuesta más largo se presenta cuando el estado de la
entrada observada cambia durante la carga de la PII. En este caso
el tiempo de respuesta es:
• tiempo de retardo de la entradas
• 2 x tiempo de actualización de la PII
• 2 x tiempo de paso por el S.O.
• 2 x tiempo del programa de usuario
• tiempo de ejecución de los temporizadores
• 2 x tiempo de actualización de la PIQ
• tiempo de retardo de las salidas
Módulos de Org. de Tarea no Prioritaria
• Si se ha definido un tiempo de ciclo mínimo y este es mayor que el tiempo de
ciclo real, al finalizar el programa cíclico la CPU dispone de tiempo de
ejecución.
• El tiempo disponible se utiliza para procesar el OB de tarea no prioritaria.
Módulo de Organización de Alarmas Cíclicas
• Los OBs de alarmas cíclicas permiten:
• ejecutar partes del programa en periodos de tiempo determinados
Estructura de un Proyecto S7
Programas S7/M7 (no asignados a ningún HW)
Programas de usuario con módulos S7:
OBs, FBs, FCs, DBs,.......
Fuentes AWL para programas de usuario
Estación HW de un S7 - 400
CPU programable de un S7-400
Programas S7/M7 (asignados a HW)
Programas de usuario (off-line)
Fuentes AWL
M7-FM programable
Módulos de STEP7
Seleccionar un Módulo para la Edición
• La herramienta Programar Módulo S7 (KOP, AWL) se puede utilizar para editar
módulos off-line (almacenados en el dispositivo de programación) o bien on-line
(módulos que están en la CPU).
Hay que indicar la opción deseada y seleccionar el módulo.
Partes de un Módulo
Tabla de
Declaración
de Variables
Sección de
Código