Вы находитесь на странице: 1из 28

de Programación en

Principios

STEP7
STEP7
Automatización Industrial
Automatización Industrial
Índice TEMA – Principios de Programación en STEP7 1. – Programas en la CPU 2.
Í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á
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
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 IEC 1131-3 STEP 7 Diagrama de
Lenguajes de IEC 1131 -
3 / STEP7
Lenguaje
IEC 1131-3
STEP 7
Diagrama de funciones
FBD
Function Block Diagram
FBD/FUP
Function Block Diagram
Diagrama de contactos
LD
LAD/KOP
Ladder Diagram
Ladder Logic
Lista de instrucciones
IL
STL/AWL
Instruction List
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
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,
módulos de señal asociados
)
y de los
Programas de Usuario Bloque en el Programa de Usuario STEP 7 permite estructurar el programa.
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
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
Instrucción
Instrucción
unidad más pequeña autónoma del programa y constituye una orden de
trabajo para el procesador
Operación
Instrucción
Operando
002:
A
I
1.0
Parte operacional
Operando
Identificación Parámetro
Parámetro
Identificador del operando
Dirección relativa de la instrucción en el
módulo respectivo
Operandos OPERANDOS NEMONICO FUNCION Entradas I Imagen del proceso de entradas (PII) Salidas Q Imagen
Operandos
OPERANDOS
NEMONICO
FUNCION
Entradas
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 FBD/FUP LAD/KOP Eléctrico S1 I 0.0 & A I 0.0
Ejemplo de Programa
Esquema
STL/AWL
FBD/FUP
LAD/KOP
Eléctrico
S1
I 0.0
&
A
I
0.0
I 0.0
I 0.1
Q 4.5
S2
AN
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
Estructuración de los Programas
• STEP 7 provee tres posibilidades para organizar un programa.
Programación
Programación
Programación
Lineal
Dividida
Estructurada
Arranque
Arranque
Arranque
Receta A
FC1
FB1
Receta B
OB1
OB1
OB1
FC2
Mezclador
FB2
Descarga
FC3
Programa Lineal:
Programa Estructurado:
Programa dividido en áreas:
Todas la instrucciones
están contenidas en un
módulo (normalmente
en el módulo de
organización, OB1)
Las instrucciones para funciones
individuales están contenidas en
módulos individuales. El OB1
llama a los módulos individuales
sucesivamente.
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 1ª instrucción 2ª instrucción última instrucción
Estructura de Programa. Programación Lineal 1ª instrucción 2ª instrucción última instrucción
Estructura de Programa. Programación Lineal 1ª instrucción 2ª instrucción última instrucción
Estructura de Programa. Programación Lineal 1ª instrucción 2ª instrucción última instrucción

Estructura de Programa.

Estructura de Programa. Programación Lineal 1ª instrucción 2ª instrucción última instrucción
Estructura de Programa. Programación Lineal 1ª instrucción 2ª instrucción última instrucción
Estructura de Programa. Programación Lineal 1ª instrucción 2ª instrucción última instrucción
Estructura de Programa. Programación Lineal 1ª instrucción 2ª instrucción última instrucción

Programación Lineal

Estructura de Programa. Programación Lineal 1ª instrucción 2ª instrucción última instrucción
Estructura de Programa. Programación Lineal 1ª instrucción 2ª instrucción última instrucción

1ª instrucción

2ª instrucción

última instrucción

OB1

OB1
OB1 . . . . . . .

.

.

.

.

.

.

.

OB1 . . . . . . .
OB1 . . . . . . .
Programación Lineal I I I I 0.0 >=1 Q 4.0 & I 0.1 = 0.2
Programación Lineal I I I I 0.0 >=1 Q 4.0 & I 0.1 = 0.2
Programación Lineal I I I I 0.0 >=1 Q 4.0 & I 0.1 = 0.2
Programación Lineal I I I I 0.0 >=1 Q 4.0 & I 0.1 = 0.2
Programación Lineal I I I I 0.0 >=1 Q 4.0 & I 0.1 = 0.2

Programación Lineal

I

I

I

I

0.0 >=1 Q 4.0 & I 0.1 = 0.2 & 0.3 Q 4.1 0.4 =
0.0
>=1
Q 4.0
&
I 0.1
=
0.2
&
0.3
Q 4.1
0.4
=
Q 4.0 & I 0.1 = 0.2 & 0.3 Q 4.1 0.4 = O I 0.0
Q 4.0 & I 0.1 = 0.2 & 0.3 Q 4.1 0.4 = O I 0.0

O

I

0.0

O

Q 4.0

)

AN

I

0.1

=

Q 4.0

A

I

0.2

AN

I

0.3

AN

I

0.4

=

Q 4.1

0.2 AN I 0.3 AN I 0.4 = Q 4.1 OB1: Ejemplo de de un si
0.2 AN I 0.3 AN I 0.4 = Q 4.1 OB1: Ejemplo de de un si
0.2 AN I 0.3 AN I 0.4 = Q 4.1 OB1: Ejemplo de de un si

OB1: Ejemplo de de un simple módulo lineal en FUP

Segmento 1: motor marcha/paro

Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0
Q 4.0

Q 4.0

Q 4.0
Q 4.0

Segmento 2: Seguridad y señales de aviso

OB1: ejemplo de un simple módulo lineal en AWL

Segmento 1: motor on/off A(

Segmento 2: Seguridad y señales de aviso

Programación Lineal. Ejemplo
Programación Lineal. Ejemplo
Programación Dividida FC OB1 Ingrediente_A (CALL) Ingrediente_B (CALL) FC Mezclador (CALL) Descarga (CALL) FC
Programación Dividida FC OB1 Ingrediente_A (CALL) Ingrediente_B (CALL) FC Mezclador (CALL) Descarga (CALL) FC
Programación Dividida FC OB1 Ingrediente_A (CALL) Ingrediente_B (CALL) FC Mezclador (CALL) Descarga (CALL) FC

Programación Dividida

Programación Dividida FC OB1 Ingrediente_A (CALL) Ingrediente_B (CALL) FC Mezclador (CALL) Descarga (CALL) FC
FC OB1 Ingrediente_A (CALL) Ingrediente_B (CALL) FC Mezclador (CALL) Descarga (CALL) FC FC
FC
OB1
Ingrediente_A
(CALL)
Ingrediente_B
(CALL)
FC
Mezclador
(CALL)
Descarga
(CALL)
FC
FC
(CALL) FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 &
(CALL) FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 &
>=1 & = & >=1 = >=1 & = >=1 =
>=1
&
=
&
>=1
=
>=1
&
=
>=1
=
FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 & =
FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 & =
FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 & =
FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 & =
FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 & =
FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 & =
FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 & =
FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 & =
FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 & =
FC Mezclador (CALL) Descarga (CALL) FC FC >=1 & = & >=1 = >=1 & =
Ejecución de un Programa Dividido Programa principal OB Módulo subrutina FC Procesamiento del programa
Ejecución de un Programa Dividido
Programa principal
OB
Módulo subrutina
FC
Procesamiento
del programa
Procesamiento
del programa
Instrucción que llaman
otros módulos
Fin de módulo
Programa Dividido. Control de nivel
Programa Dividido. Control de nivel
Programación Estructurada I FC FB OB1 FB FC SFC SFB Otros OBs Sistema Operativo
Programación Estructurada I
FC
FB
OB1
FB
FC
SFC
SFB
Otros
OBs
Sistema Operativo
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =

Programación Estructurada II

OB1

Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Motor >=1 & = Descarga
Motor
>=1
&
=
Descarga

>=1

&

& = =
&
=
=
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =

=

Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Programación Estructurada II OB1 Motor >=1 & = Descarga >=1 & & = = =
Estructura del Programa OB1 Módulo 7 Módulo 32 Módulo R Procesar módulo 7 Lamar al
Estructura del Programa
OB1
Módulo 7
Módulo 32
Módulo R
Procesar
módulo 7
Lamar al
Llamar al
módulo 32
módulo X
.
.
.
.
.
Retornar
Módulo 10
Procesar
Retornar
Retornar
módulo 10
Retornar
Retornar
Nivel1
Nivel2
Nivel3
Niveles 4
7
Nivel 8
División Tecnológica de un Programa Sistema operativo OB 1 Tren CALL FB 10 CALL FB
División Tecnológica de un Programa Sistema operativo OB 1 Tren CALL FB 10 CALL FB
División Tecnológica de un Programa Sistema operativo OB 1 Tren CALL FB 10 CALL FB
División Tecnológica de un Programa Sistema operativo OB 1 Tren CALL FB 10 CALL FB

División Tecnológica de un Programa

Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20

Sistema operativo

Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
OB 1 Tren CALL FB 10 CALL FB 20
OB 1
Tren
CALL FB 10
CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20 FB 10 CINTA A CALL
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20 FB 10 CINTA A CALL
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20 FB 10 CINTA A CALL
Sistema operativo OB 1 Tren CALL FB 10 CALL FB 20 FB 10 CINTA A CALL

FB 10

CINTA A

CALL FC 50

DB inst. 10

FB 20

CINTA B

CALL FC 50

DB inst. 2

FC 50

miento

Acciona-
Acciona-

Inicio

del

ciclo

Tipos de Módulos de Programa Ciclo OB Tiempo FB FC SFB Módulo de Proceso Organización
Tipos de Módulos de Programa
Ciclo
OB
Tiempo
FB
FC
SFB
Módulo de
Proceso
Organización
FB
FB
SFC
Error
Bloques
CPU 315
CPU 315-2DP
Tamaño
Modos de operación del sistema
13
14
8 Kby
128
128 (0-127)
8 Kby
Leyenda:
128
128 (0-127)
8 Kby
127
127(1-127)
8 Kby
Módulo de
datos de
48
53
instancia
Mód. de organización (OB)
Módulo de función (FB)
Función (FC)
Módulo de datos (DB)
Función del sistema (SFC)
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
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     Sistema Función del
Módulos del Sistema         Tipo de Módulo     Sistema Función del
Módulos del Sistema         Tipo de Módulo     Sistema Función del

Módulos del Sistema

Módulos del Sistema         Tipo de Módulo     Sistema Función del Un
Módulos del Sistema         Tipo de Módulo     Sistema Función del Un
Módulos del Sistema         Tipo de Módulo     Sistema Función del Un
Módulos del Sistema         Tipo de Módulo     Sistema Función del Un
Módulos del Sistema         Tipo de Módulo     Sistema Función del Un
     
 

Tipo de Módulo

   

Sistema

Función del

Un usuario puede llamar esta función (sin memoria).

Integrados en el sistema operativo de la CPU

(SFC)

 

Módulos de

Funciones

del Sistema

Un usuario puede llamar esta función (con memoria).

 

Integrados en el sistema operativo de la CPU

(SFB)

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
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 Prioridad Ciclo libre
Módulos de Organización
– OB´s (II)
Tipo de Alarma
Módulo de organización
Prioridad
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
OB 60
25
multiprocesamiento
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
la del OB del error
Ejecución Cíclica I Conectar Ciclo Programa principal Sistema operativo Programa de usuario
Ejecución Cíclica I Conectar Ciclo Programa principal Sistema operativo Programa de usuario
Ejecución Cíclica I Conectar Ciclo Programa principal Sistema operativo Programa de usuario

Ejecución Cíclica I

Ejecución Cíclica I Conectar Ciclo Programa principal Sistema operativo Programa de usuario
Conectar Ciclo
Conectar
Conectar
Ciclo
Ciclo
Conectar Ciclo
Conectar Ciclo
Conectar Ciclo
Ejecución Cíclica I Conectar Ciclo Programa principal Sistema operativo Programa de usuario

Programa

principal

Sistema operativo Programa de usuario

Ejecución Cíclica I Conectar Ciclo Programa principal Sistema operativo Programa de usuario
Ejecución Cíclica I Conectar Ciclo Programa principal Sistema operativo Programa de usuario
Ejecución Cíclica I Conectar Ciclo Programa principal Sistema operativo Programa de usuario
Ejecución Cíclica I Conectar Ciclo Programa principal Sistema operativo Programa de usuario
Ejecución Cíclica II Conectar Ciclo Alarma Error Programa de usuario ción ción Programa
Ejecución Cíclica II Conectar Ciclo Alarma Error Programa de usuario ción ción Programa
Ejecución Cíclica II Conectar Ciclo Alarma Error Programa de usuario ción ción Programa

Ejecución Cíclica II

Ejecución Cíclica II Conectar Ciclo Alarma Error Programa de usuario ción ción Programa

ConectarCiclo Alarma Error

Ciclo
Ciclo

Alarma

Error
Error
Conectar Ciclo Alarma Error
Programa

Programa

de usuario

Conectar Ciclo Alarma Error Programa de usuario ción ción
Conectar Ciclo Alarma Error Programa de usuario ción ción

ción

ción

Error Programa de usuario ción ción Programa de alarma Tratamiento de errores Sistema
Programa de alarma Tratamiento de errores
Programa
de alarma
Tratamiento
de errores

Sistema operativo Programa de usuario

Programa principal Interrup- Interrup-
Programa principal Interrup-
Programa
principal
Interrup-

Interrup-

Programa principal Interrup- Interrup-
de alarma Tratamiento de errores Sistema operativo Programa de usuario Programa principal Interrup- Interrup-
de alarma Tratamiento de errores Sistema operativo Programa de usuario Programa principal Interrup- Interrup-
de alarma Tratamiento de errores Sistema operativo Programa de usuario Programa principal Interrup- Interrup-
Secuencia y Profundidad de Anidamiento Profundidad de anidamiento Inicio del ciclo FB 1 OB 1
Secuencia y Profundidad
de Anidamiento
Profundidad de anidamiento
Inicio
del
ciclo
FB 1
OB 1
FC 1
DB inst. 1
FB 2
FB 1
SFC 1
DB inst. 2
DB inst. 1
DB 1
FC 1
Sistema operativo
Llamadas a los Módulos (OB, FB, FC) Ejecución del programa Instrucción que llama a otro
Llamadas a los Módulos (OB, FB, FC) Ejecución del programa Instrucción que llama a otro
Llamadas a los Módulos (OB, FB, FC) Ejecución del programa Instrucción que llama a otro
Llamadas a los Módulos (OB, FB, FC) Ejecución del programa Instrucción que llama a otro

Llamadas a los Módulos

(OB, FB, FC)

Ejecución

del programa

Instrucción que llama a otro módulo

Llamada de un módulo

Instrucción que llama a otro módulo Llamada de un módulo M ó d u l o

Módulo llamado

M ó d u l o l l a m a d o Ejecución Fin de

Ejecución

Fin de módulo

de un módulo M ó d u l o l l a m a d o

(FB, FC, SFB, SFC)

de un módulo M ó d u l o l l a m a d o

del programa

del programa
de un módulo M ó d u l o l l a m a d o
de un módulo M ó d u l o l l a m a d o
Fases de la Ejecución Cíclica El sistema operativo inicia el tiempo de vigilancia del ciclo
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.
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
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
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 •
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 FB 20: Motor Parámetros formales Arranque: INT IN
FBs • • y DBs de Instancia FB 20: Motor Parámetros formales Arranque: INT IN

FBs

y

DBs de Instancia

FB 20: Motor Parámetros formales

Arranque: INT IN Revoluciones: INT IN Historial: DT IN_OUT Tiempo efec.: TIME IN_OUT

INT IN Historial: DT IN_OUT Tiempo efec.: TIME IN_OUT Fecha y hora (48 bits): DB 202:
INT IN Historial: DT IN_OUT Tiempo efec.: TIME IN_OUT Fecha y hora (48 bits): DB 202:
INT IN Historial: DT IN_OUT Tiempo efec.: TIME IN_OUT Fecha y hora (48 bits): DB 202:
INT IN Historial: DT IN_OUT Tiempo efec.: TIME IN_OUT Fecha y hora (48 bits): DB 202:

Fecha y hora (48 bits):

DB 202: Motor_2 Parámetros actuales (reales)

 

Entero (16 bits): Arranque

Entero (16 bits): Revoluciones

Puntero a dirección del historial Tiempo (32 bits): Tiempo ejec.

 

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

con diferentes DBs de instancia, luego se ejecuta con diferentes valores para los pa rámetros con
Módulo de Datos Globales – DB´s • Son módulos de datos. No contienen instrucciones STEP
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
DB
Acceso desde
global
todos los bloques
(DB 20)
FC 11
Acceso sólo desde
FC 12
DB de instancia
(DB 112)
FB 12
Módulos del Sistema – SFB´s y SFC´s • Son módulos ya programados que ofrecen las
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 Byte de datos 0 Byte de datos 8191 El tamaño
Tipos de Módulos de Datos Byte de datos 0 Byte de datos 8191 El tamaño
Tipos de Módulos de Datos Byte de datos 0 Byte de datos 8191 El tamaño
Tipos de Módulos de Datos Byte de datos 0 Byte de datos 8191 El tamaño

Tipos de Módulos de Datos

Byte de datos 0

Byte de datos 8191

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.

en la CPU 314 es 8 Kbyte. La cantidad máxima de memoria disponible en un módulo
en la CPU 314 es 8 Kbyte. La cantidad máxima de memoria disponible en un módulo
en la CPU 314 es 8 Kbyte. La cantidad máxima de memoria disponible en un módulo
en la CPU 314 es 8 Kbyte. La cantidad máxima de memoria disponible en un módulo
8 Bits
8 Bits
Llamada de Módulos – Asignación de Parámetros STL/AWL FB parámetro formal CALL FB7, DB45 Start:
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)
FBD/FUP
DB45
FB7
EN
ENO
Llamada al FB7 (a través del
módulo de datos de instancia
DB45) y asignación de parámetros.
1.0
Start
I ejecutar
I
M2.1
1.1
Stop
Dirección actual
de los datos
MW20
Longitud
FB parámetro formal
Estructura del Módulo Cabecera del Módulo (36 Bytes) Cuerpo del módulo : Sección de declaración
Estructura del Módulo Cabecera del Módulo (36 Bytes) Cuerpo del módulo : Sección de declaración
Estructura del Módulo Cabecera del Módulo (36 Bytes) Cuerpo del módulo : Sección de declaración

Estructura del Módulo

Estructura del Módulo Cabecera del Módulo (36 Bytes) Cuerpo del módulo : Sección de declaración y
Estructura del Módulo Cabecera del Módulo (36 Bytes) Cuerpo del módulo : Sección de declaración y
Cabecera del Módulo (36 Bytes) Cuerpo del módulo : Sección de declaración y Sección de
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
Bytes) Cuerpo del módulo : Sección de declaración y Sección de programa o Datos Interfase Descripción
Bytes) Cuerpo del módulo : Sección de declaración y Sección de programa o Datos Interfase Descripción
Bytes) Cuerpo del módulo : Sección de declaración y Sección de programa o Datos Interfase Descripción
Ejemplo de Programación Estructurada LT a b LT LT Botón de la selección del tanque
Ejemplo de Programación
Estructurada
LT
a
b
LT
LT
Botón de la selección
del tanque
LT
0 0
0
0
LT
Ingrediente A
Ingrediente B
Procesamiento Cíclico del Programa Inicia el módulo (OB 100), procesándose una vez después de conectar
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
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)
Módulo OB 1
A I 0.1
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.
A I 1.1
= Q 4.0
.
.
.
.
Escritura en la tabla de imagen de proceso de
salida (PIQ) en los módulos de salida.
Módulo de salida
CPU ciclo de scan
Imagen del Proceso I2.0 I2.7 I0.5 I03 Q4.4 Q4.3 PII PIQ Programa Byte 0 Byte
Imagen del Proceso
I2.0
I2.7
I0.5
I03
Q4.4
Q4.3
PII
PIQ
Programa
Byte 0
Byte 0
Byte 1
de usuario
Byte 1
1
Byte 2
Byte 2
A(
.
.
O
I 2.0
.
1
.
O
Q 4.3
.
.
)
.
.
AN
I 2.7
AN
I 0.5
AN
I 0.3
=
Q 4.4
Módulos de Organización de Alarmas • Los OBs de alarmas permiten: • ejecutar partes del
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 CON Alarma del proceso Alarma cíclica Alarma horaria Alarma de retardo Alarma
Ejecución de Programas CON Alarma del proceso Alarma cíclica Alarma horaria Alarma de retardo Alarma
Ejecución de Programas CON Alarma del proceso Alarma cíclica Alarma horaria Alarma de retardo Alarma
Ejecución de Programas CON Alarma del proceso Alarma cíclica Alarma horaria Alarma de retardo Alarma

Ejecución de Programas

CON Alarma del proceso Alarma cíclica Alarma horaria Alarma de retardo Alarma por errores
CON
Alarma
del proceso
Alarma
cíclica
Alarma
horaria
Alarma
de retardo
Alarma
por errores
Alarma horaria Alarma de retardo Alarma por errores – Tipos de Procesamiento Arranque Procesamiento
Alarma horaria Alarma de retardo Alarma por errores – Tipos de Procesamiento Arranque Procesamiento
Alarma horaria Alarma de retardo Alarma por errores – Tipos de Procesamiento Arranque Procesamiento

Tipos de Procesamiento

Arranque

Procesamiento Cíclico

•procesamiento normal. OB1

Alarma de Proceso

•gobierno por interrupciones

Alarma cíclica

Alarma horaria Alarma de retardo

Tratamiento de Error •en función de fallos •sólo en algunas gamas

de Error •en función de fallos •sólo en algunas gamas •comprobación e inicialización de valores

•comprobación e inicialización de valores •condiciones de arranque

•periodos de tiempo predeterminados •importante en lazos regulación

Tiempo de Ciclo Definición: El tiempo de ciclo es el tiempo que transcurre durante un
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
Interrupciones
por alarmas
Programa de usuario
PII
PII
S.O.
A PIQ
I 1.0
= Q 4.0
Tiempo de Respuesta • • • I Tiempo de ciclo Retardo en las entradas y
Tiempo de Respuesta • • • I Tiempo de ciclo Retardo en las entradas y
Tiempo de Respuesta • • • I Tiempo de ciclo Retardo en las entradas y

Tiempo de Respuesta

I

Tiempo de Respuesta • • • I Tiempo de ciclo Retardo en las entradas y salidas
Tiempo de Respuesta • • • I Tiempo de ciclo Retardo en las entradas y salidas
Tiempo de Respuesta • • • I Tiempo de ciclo Retardo en las entradas y salidas
Tiempo de Respuesta • • • I Tiempo de ciclo Retardo en las entradas y salidas
Tiempo de Respuesta • • • I Tiempo de ciclo Retardo en las entradas y salidas
Tiempo de ciclo Retardo en las entradas y salidas Tiempos de rotación adicionales en la
Tiempo de ciclo
Retardo en las entradas y salidas
Tiempos de rotación adicionales en la red Profibus
Tiempo de reacción
Retardo de
los módulos
de entrada
1
1.0
0
1
Q 4.0
0
tiempo
Ejecución del programa
PII
PII
S.O.
A
I 1.0
PIQ
=
Q 4.0

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 Respuesta más Corto y más Largo El tiempo de respuesta más corto se
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
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
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
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
Módulos de STEP7
Seleccionar un Módulo para la Edición • La herramienta Programar Módulo S7 (KOP, AWL) se
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
Partes de un Módulo
Tabla de
Declaración
de Variables
Sección de
Código