Está en la página 1de 28

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 Prestaciones eléctricas, mecánicas y funcionales


y ensayos de los Información a suministrar por el fabricante
equipos Ensayos y verificaciones

Parte 3 Lenguajes de Estructura del software de los PLC/API


programación 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 funciones FBD FBD/FUP
Function Block Diagram 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 SCL
Structured Text Structured Control Language
Gráfico secuencial SFC GRAPH7
Sequential Function Chart
Diagrama de bloques CFC
Continuous Function Chart
Diagrama de gráfico HIGRAPH7
de estados

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 • FBD / FUP
•Segmentos • LAD / KOP
•Comentarios • STL / AWL
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
Parámetro
Parte operacional Operando Identificador del operando
Dirección relativa de la instrucción en el
Identificación Parámetro módulo respectivo

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


Constantes L Datos locales temporales
Módulos OB, FB, FC Para estructurar el programa
SFB, SFC
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 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 dividido en áreas: Programa Estructurado:


Todas la instrucciones Las instrucciones para funciones Las funciones reutilizables son
están contenidas en un individuales están contenidas en cargadas en módulos individuales.
módulo (normalmente módulos individuales. El OB1 El OB1 (u otros módulos) llaman a
en el módulo de llama a los módulos individuales estos módulos y les pasan datos
organización, OB1) sucesivamente. 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 OB1: ejemplo de un simple


módulo lineal en AWL
Segmento 1: motor marcha/paro
I 0.0 Segmento 1: motor on/off
>=1
A(
Q 4.0 & O I 0.0
O Q 4.0
Q 4.0 )
AN I 0.1
I 0.1 = = Q 4.0

Segmento 2: Seguridad y señales de aviso Segmento 2: Seguridad y


señales de aviso
I 0.2 &
A I 0.2
I 0.3 AN I 0.3
Q 4.1 AN I 0.4
I 0.4 = = Q 4.1
Programación Lineal. Ejemplo

Programación Dividida
FC >=1
OB1 &
=
Ingrediente_A
(CALL)

Ingrediente_B &
(CALL)
>=1
FC =
Mezclador
(CALL)

>=1
Descarga
(CALL) FC &
=

>=1
FC =
Ejecución de un Programa Dividido

Programa principal OB Módulo subrutina FC

Procesamiento
del programa
Procesamiento
Instrucción que llaman del programa
otros módulos

Fin de módulo

Programa Dividido. Control de nivel


Programación Estructurada I

FC FB
OB1
Sistema Operativo
FB FC

SFC

SFB

Otros
OBs

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 Llamar al

..
módulo 32 módulo X

..
Procesar
. Retornar
Módulo 10
Retornar
Retornar
módulo 10
Retornar
Retornar

Nivel1 Nivel2 Nivel3 Niveles 4..7 Nivel 8

División Tecnológica de un Programa

Inicio
del OB 1 FB 10
ciclo
Tren CINTA A

CALL FB 10 CALL FC 50
Sistema operativo

FC 50

DB inst. 10 Acciona-
miento
FB 20
CINTA B
CALL FB 20
CALL FC 50

DB inst. 2
Tipos de Módulos de Programa
Ciclo

Tiempo OB
FB FC SFB
Módulo de
Proceso Organización

Error FB FB SFC

Bloques CPU 315 CPU 315-2DP


Tamaño
Modos de operación del sistema
Mód. de organización (OB) 13 14 8 Kby
Módulo de función (FB) 128 128 (0-127) 8 Kby
Leyenda:
Función (FC) 128 128 (0-127) 8 Kby
Módulo de Módulo de datos (DB) 127 127(1-127) 8 Kby
datos de
Función del sistema (SFC) 48 53
instancia
Mód. func. sistema (SFB) 7 7

Módulos del Sistema

Tipo de Módulo Características

Función del - Integrados en el sistema operativo de la CPU


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

Módulos de
Funciones - Integrados en el sistema operativo de la CPU
del Sistema - Un usuario puede llamar esta función
(SFB) (sin memoria).

Dato de Sistema - Módulo de datos para datos de configuración


(SDB) y parámetros
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 - Módulos con memoria que puede programar el usuario


función (FB) - 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 - Estructurado, almacenamiento de datos locales (DB instan.)


(DB) - Estructurado, almacenamiento de datos globales
(válido en todo el programa)

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 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

Sistema operativo Programa de usuario

Conectar

Programa
Ciclo
principal
Ejecución Cíclica II

Sistema operativo Programa de usuario


Conectar Programa
de usuario

Programa
Ciclo principal

Interrup- Programa
Alarma de alarma
ción

Interrup- Tratamiento
Error ción de errores

Secuencia y Profundidad de Anidamiento

Profundidad de anidamiento
Inicio
del
ciclo
OB 1 FB 1 FC 1
Sistema operativo

DB inst. 1

FB 2 FB 1 SFC 1

DB inst. 2 DB inst. 1

DB 1
FC 1
Llamadas a los Módulos

Llamada de un módulo Módulo llamado


(OB, FB, FC) (FB, FC, SFB, SFC)

Ejecución
del programa
Ejecución
Instrucción que llama a
del programa
otro módulo

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 DB 202: Motor_2


Parámetros formales Parámetros actuales (reales)

Arranque: INT IN Entero (16 bits): Arranque


Revoluciones: INT IN Entero (16 bits): Revoluciones
Historial: DT IN_OUT
Tiempo efec.: TIME IN_OUT 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 DB
Acceso desde
global
todos los bloques
(DB 20)
FC 11

DB de instancia Acceso sólo desde


FC 12 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

CALL FB7, DB45


STL/AWL
Start: = I 1.0
Stop: = I 1.1 Llamada al FB7 (a través del
Longitud := MW20 módulo de datos de instancia
FB parámetro formal
DB45) y asignación de parámetros.
Ejecutar: = M2.1
Dirección actual de los datos
(parámetro vigente)

FBD/FUP DB45
FB7 Llamada al FB7 (a través del
EN ENO módulo de datos de instancia
DB45) y asignación de parámetros.
I 1.0 Start ejecutar M2.1
I 1.1 Stop
Dirección actual MW20 Longitud
de los datos 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 LT a b

Botón de la selección
del tanque 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


Lectura del estado de las señales de los módulos
guardando los datos en la tabla de la imagen de Módulo OB 1
proceso de entradas (PII)
A I 0.1
Ejecución del programa en el OB1 (procesamiento A I 1.1
CPU ciclo de scan

= Q 4.0
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 de salida
Imagen del Proceso
I2.0 I2.7 I0.5 I03 Q4.4

Q4.3

PII PIQ
Byte 0 Programa Byte 0
Byte 1 de usuario Byte 1
Byte 2 1 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 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
CON Arranque
•comprobación e inicialización de valores
•condiciones de arranque
Procesamiento Cíclico
•procesamiento normal. OB1
Alarma Alarma de Proceso
del proceso •gobierno por interrupciones
Alarma Alarma cíclica
cíclica •periodos de tiempo predeterminados
•importante en lazos regulación
Alarma
horaria Alarma horaria
Alarma
de retardo Alarma de retardo
Tratamiento de Error
Alarma
•en función de fallos
por errores
•sólo en algunas gamas

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 S.O. A I 1.0 PIQ PII
= Q 4.0
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
Retardo de
los módulos
de entrada
1
I 1.0 0

1
Q 4.0 0
tiempo

Ejecución del programa


PII S.O. A I 1.0 PIQ PII
= Q 4.0

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

También podría gustarte