Está en la página 1de 28

Principios de Programacin en

STEP7

Automatizacin Industrial

ndice
TEMA Principios de Programacin en STEP7
1. Programas en la CPU
2. Edicin de Programas
2.1 IEC 1131-3
2.2 Instrucciones/Operandos/Mdulos
3. Estructura de Programas
4. Tipos de Mdulos
4.1 Mdulos de Sistema
4.2 Mdulos 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 especfica.
Entre sus funciones estn:
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 atencin a las mismas
reconocer y tratar los errores
administrar las reas de memoria
comunicar con unidades de programacin y otros sistemas de supervisin

Programa de usuario: Hay que crearlo y cargarlo la CPU. Contiene todas las funciones
necesarias para la tarea de control de una aplicacin especfica.
Entre las tareas del programa de usuario estn:
definir las condiciones de arranque (completo normal) de la CPU
tratar datos del proceso (funciones combinatorias, valores analgicos, ....)
reaccionar a alarmas
tratamiento de perturbaciones en el funcionamiento normal del programa

La Norma IEC 1131 / EN-UNE 61131

Parte Ttulo Contenidos


Parte 1 Informacin general Definicin de trminos y glosario del PLC/API
Caractersticas funcionales del PLC/API

Parte 2 Especificaciones Prestaciones elctricas, mecnicas y funcionales


y ensayos de los Informacin a suministrar por el fabricante
equipos Ensayos y verificaciones

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


programacin Lenguajes de programacin
Elementos del lenguaje

Parte 4 Gua para usuarios Especificaciones y anlisis del sistema


Aplicacin y seleccin del PLC/API
Seguridad y proteccin, instalacin y mantenimiento

Parte 5 Comunicaciones Modelos, bloques de comunicacin, 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
Grfico secuencial SFC GRAPH7
Sequential Function Chart
Diagrama de bloques CFC
Continuous Function Chart
Diagrama de grfico HIGRAPH7
de estados

Funcionalidad del Software


El entorno de programacin permite desarrollar proyectos de control
y automatizacin con las siguiente funcionalidad:
Crear la estructura de directorios necesaria para la gestin 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 ejecucin sin necesidad de interrumpir la
ejecucin 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
mdulos de seal 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 organizacin del programa
las modificaciones del programa pueden realizarse ms fcilmente
se simplifica el test del programa, ya que puede ejecutarse por partes
se simplifica la puesta en servicio

Edicin de un Programa

Programa
conjunto de todas las instrucciones y convenciones para el tratamiento de las
seales, por medio de las cuales se acta sobre la instalacin a controlar
(proceso), de acuerdo con unas rdenes de control

Estructura Representacin
Tcnica modular FBD / FUP
Segmentos LAD / KOP
Comentarios STL / AWL
Instruccin

Instruccin
unidad ms pequea autnoma del programa y constituye una orden de
trabajo para el procesador

Operacin
Instruccin Operando
002: A I 1.0
Parmetro
Parte operacional Operando Identificador del operando
Direccin relativa de la instruccin en el
Identificacin Parmetro mdulo 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 cmputo (contadores)

Periferia P Para acceder directamente a la periferia


Locales L Datos locales temporales
Mdulos OB, FB, FC Para estructurar el programa
SFB, SFC
Ejemplo de Programa

Esquema STL/AWL FBD/FUP LAD/KOP


Elctrico

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

Estructuracin de los Programas


STEP 7 provee tres posibilidades para organizar un programa.
Programacin Programacin Programacin
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
estn contenidas en un individuales estn contenidas en cargadas en mdulos individuales.
mdulo (normalmente mdulos individuales. El OB1 El OB1 (u otros mdulos) llaman a
en el mdulo de llama a los mdulos individuales estos mdulos y les pasan datos
organizacin, OB1) sucesivamente. relevantes.
Estructura de Programa. Programacin Lineal

OB1
1 instruccin

2 instruccin

..
..
..
.
ltima instruccin

Programacin Lineal

OB1: Ejemplo de de un simple mdulo lineal en FUP OB1: ejemplo de un simple


mdulo 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 seales de aviso Segmento 2: Seguridad y


seales 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
Programacin Lineal. Ejemplo

Programacin Dividida
FC >=1
OB1 &
=
Ingrediente_A
(CALL)

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

>=1
Descarga
(CALL) FC &
=

>=1
FC =
Ejecucin de un Programa Dividido

Programa principal OB Mdulo subrutina FC

Procesamiento
del programa
Procesamiento
Instruccin que llaman del programa
otros mdulos

Fin de mdulo

Programa Dividido. Control de nivel


Programacin Estructurada I

FC FB
OB1
Sistema Operativo
FB FC

SFC

SFB

Otros
OBs

Programacin Estructurada II

OB1 Motor

>=1
&
=

Descarga

>=1
&
=
&
=

=
Estructura del Programa

OB1 Mdulo 7 Mdulo 32 Mdulo R

Procesar
mdulo 7
Lamar al Llamar al
...
..
mdulo 32 mdulo X

..
Procesar
. Retornar
Mdulo 10
Retornar
Retornar
mdulo 10
Retornar
Retornar

Nivel1 Nivel2 Nivel3 Niveles 4..7 Nivel 8

Divisin Tecnolgica 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 Mdulos de Programa
Ciclo

Tiempo OB
FB FC SFB
Mdulo de
Proceso Organizacin

Error FB FB SFC

Bloques CPU 315 CPU 315-2DP Tamao


Modos de operacin del sistema Md. de organizacin (OB) 13 14 8 Kby
Mdulo de funcin (FB) 128 128 (0-127) 8 Kby

Leyenda: Funcin (FC) 128 128 (0-127) 8 Kby


Mdulo de datos (DB) 127 127(1-127) 8 Kby
Mdulo de
datos de Funcin del sistema (SFC) 48 53
instancia Md. func. sistema (SFB) 7 7

Mdulos de Usuario
Tipo de Mdulo Caractersticas
Organizacin (OB) - Interfase de usuario entre el sistema operativo y el programa
- Prioridades establecidas de (1a 29)
- Informacin especial de inicio en la pila de datos locales
- Definen la estructura del programa de usuario

Mdulo de - Mdulos con memoria que puede programar el usuario


funcin (FB) - Parametrizable / retentiva
- No parametrizable / retentiva
- No parametrizable / no retentiva

Funcin (FC) - Rutina de programa para funciones frecuentes.


- Un valor de retorno es transferido.
(Los parmetros deben ser asignados por la llamada.)
- No retentivo
- Parametrizable

Mdulo de Datos - Estructurado, almacenamiento de datos locales (DB instan.)


(DB) - Estructurado, almacenamiento de datos globales
(vlido en todo el programa)
Mdulos del Sistema

Tipo de Mdulo Caractersticas

Funcin del - Integrados en el sistema operativo de la CPU


Sistema - Un usuario puede llamar esta funcin
(SFC) (sin memoria).

Mdulos de
Funciones - Integrados en el sistema operativo de la CPU
del Sistema - Un usuario puede llamar esta funcin
(SFB) (con memoria).

Dato de Sistema - Mdulo de datos para datos de configuracin


(SDB) y parmetros

Mdulos de Organizacin OBs (I)


Bloques de Organizacin (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 informacin de arranque de 20 bytes de
datos locales que entrega al S.O. durante el arranque
Controlan:
El procesamiento cclico
El procesamiento controlado por alarmas del programa
El comportamiento en el arranque del sistema de automatizacin
El tratamiento de errores
Mdulos de Organizacin OBs (II)
Tipo de Alarma Mdulo de organizacin 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 cclicas 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 asncronos OB 80 a OB 87 26
Ciclo no prioritario OB 90 29
Arranque OB 100 a OB 102 27
Errores sncronos OB 121y OB 122 la del OB del error

Ejecucin Cclica I

Sistema operativo Programa de usuario

Conectar

Programa
Ciclo
principal
Ejecucin Cclica II

Sistema operativo Programa de usuario


Conectar Programa
de usuario

Programa
Ciclo principal

Interrup- Programa
Alarma de alarma
cin

Interrup- Tratamiento
Error cin 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 Mdulos

Llamada de un mdulo Mdulo llamado


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

Ejecucin
del programa
Ejecucin
Instruccin que llama a
del programa
otro mdulo

Fin de mdulo

Fases de la Ejecucin Cclica

El sistema operativo inicia el tiempo


de vigilancia del ciclo

La CPU escribe los valores de la PIQ


en los mdulos de salida

La CPU lee el estado de las entradas en los


mdulos 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 mdulos, 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 cclico
partes del programa que interrumpen al cclico (ejecucin otros OBs)
actividades del sistema (p.e. actualizacin de imgenes, ..)

El tiempo de ciclo se vigila


El tiempo de ciclo no es igual para cada ciclo

Tiempo de Ciclo II
La figura muestra la funcin del tiempo de vigilancia del ciclo en la
ejecucin del programa en las CPUs
Funciones FCs
Son mdulos programables. Con parmetros absolutos o fromales

Es un mdulo lgico sin memoria

Las variables temporales de FCs se memorizan en la pila de datos locales

Los datos locales se pierden tras la ejcucin de las FCs

Para memorizar los datos, pueden utilizar mdulos 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 parmetros actuales

Las FCs se pueden utilizar para:


devolver un valor de funcin al mdulo invocante (p.e. Fun. Matemticas)
ejecutar una funcin tecnolgica (p.e. Una combinacin binaria)

Mdulo de Funcin FBs


Son mdulos programables. Con parmetros absolutos o formales

Es un mdulo con memoria

Tiene asigando un mdulo de datos como memoria (DB de instancia)

Los parmetros que se transfieren al FB y las varaiables estticas, 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 ejecucin del FB

Los datos memorizados en la pila de datos locales se pierden al finalizar la


ejecucin del FB

Un FB contiene:
un programa que se ejecuta cada vez que se le llama desde otro mdulo
facilitan la programacin de funciones complejas de uso frecuente
FBs y DBs de Instancia
A cada llamada de un FB que transfiere parmetros est asignado un DB
de instancia

Un FB puede ejecutarse con diferentes DBs de instancia, luego se ejecuta


con diferentes valores para los parmetros con cada DB de instancia

FB 20: Motor DB 202: Motor_2


Parmetros formales Parmetros 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 direccin del historial
Tiempo (32 bits): Tiempo ejec.

Mdulo de Datos Globales DBs


Son mdulos 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 tamao mximo 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 ejecucin del mdulo de programa que lo utiliza

FC 10 DB
Acceso desde
global
todos los bloques
(DB 20)
FC 11

DB de instancia Acceso slo desde


FC 12 FB 12
(DB 112)
Mdulos del Sistema SFBs y SFCs
Son mdulos 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 mdulos 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 comunicacin va enlaces configurados
para las funciones especiales
SFCs:
Es una funcin 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 mdulos sin memoria
Las CPUs ofrecen SFCs para un conjunto muy amplio de aplicaciones

Tipos de Mdulos de Datos


8 Bits

Byte de datos 0

El tamao mximo de un mdulo


en la CPU 314 es 8 Kbyte. La
cantidad mxima de memoria
disponible en un mdulo de datos
depende de la CPU.

Byte de datos 8191


Llamada de Mdulos Asignacin de Parmetros

CALL FB7, DB45


STL/AWL
Start: = I 1.0
Stop: = I 1.1 Llamada al FB7 (a travs del
FB parmetro formal Longitud := MW20 mdulo de datos de instancia
DB45) y asignacin de parmetros.
Ejecutar: = M2.1
Direccin actual de los datos
(parmetro vigente)

FBD/FUP DB45
FB7 Llamada al FB7 (a travs del
EN ENO mdulo de datos de instancia
DB45) y asignacin de parmetros.
I 1.0 Start ejecutar M2.1
I 1.1 Stop
Direccin actual MW20 Longitud
de los datos FB parmetro formal

Estructura del Mdulo

Cabecera del Mdulo


(36 Bytes)

Cuerpo del mdulo :

Seccin de declaracin
y
Seccin de programa
o
Datos
Interfase
Descripcin breve
Ejemplo de Programacin Estructurada

LT LT LT a b

Botn de la seleccin
del tanque LT

0 0 0 0

LT A
Ingrediente
Ingrediente B

Procesamiento Cclico del Programa


Inicia el mdulo (OB 100), procesndose una vez
despus de conectar la alimentacin, por ejemplo Mdulo de entrada

Iniciando el tiempo de control de ciclo


Lectura del estado de las seales de los mdulos
guardando los datos en la tabla de la imagen de Mdulo OB 1
proceso de entradas (PII)
A I 0.1
Ejecucin del programa en el OB1 (procesamiento A I 1.1
CPU ciclo de scan

= Q 4.0
cclico) .
Eventos (tiempo de interrupcin, interrupcin de .
proceso, etc.) .
.
Llamada a otros mdulos OBs, FBs, FCs, etc.

Escritura en la tabla de imagen de proceso de


salida (PIQ) en los mdulos de salida. Mdulo 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

Mdulos de Organizacin de Alarmas


Los OBs de alarmas permiten:
ejecutar partes del programa dependientes del tiempo
reaccionar eficazmente a seales externas al proceso

Tipo de Alarma OBs de alarma Aplicacin


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 despus de parar un
motor

Alarma cclica OB 30 a OB 38 Muestrear el valor de una seal para


el control de una planta

Alarma de proceso OB 40 a OB 47 Notificar que se ha alcanzado el


valor mximo de un depsito
Ejecucin de Programas Tipos de Procesamiento
CON Arranque
comprobacin e inicializacin de valores
condiciones de arranque
Procesamiento Cclico
procesamiento normal. OB1
Alarma Alarma de Proceso
del proceso gobierno por interrupciones
Alarma Alarma cclica
cclica periodos de tiempo predeterminados
importante en lazos regulacin
Alarma
horaria Alarma horaria
Alarma
de retardo Alarma de retardo
Tratamiento de Error
Alarma
en funcin de fallos
por errores
slo en algunas gamas

Tiempo de Ciclo
Definicin: El tiempo de ciclo es el tiempo que transcurre durante un
ciclo de programa. Est constituido por:

Tiempo de ejecucin del S.O.


Tiempo de transferencia de las imgenes del proceso (PII, PIQ)
Tiempo de ejecucin del programa
Temporizadores
Funciones integradas
Carga por alarmas
Carga por comunicacin (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 seal
de entrada y el cambio de estado de la seal de la salida correspondiente. Depende de:
Tiempo de ciclo
Retardo en las entradas y salidas
Tiempos de rotacin adicionales en la red Profibus

Tiempo de reaccin
Retardo de
los mdulos
de entrada
1
I 1.0 0

1
Q 4.0 0
tiempo

Ejecucin del programa


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

Tiempo de Respuesta ms Corto y ms Largo


El tiempo de respuesta ms 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 actualizacin de la PII
Tiempo de paso por el S.O.
Tiempo del programa de usuario
Tiempo de ejecucin de los temporizadores
Tiempo de actualizacin de la PIQ
Retardo de las salidas

El tiempo de respuesta ms 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 actualizacin de la PII
2 x tiempo de paso por el S.O.
2 x tiempo del programa de usuario
tiempo de ejecucin de los temporizadores
2 x tiempo de actualizacin de la PIQ
tiempo de retardo de las salidas
Mdulos de Org. de Tarea no Prioritaria
Si se ha definido un tiempo de ciclo mnimo y este es mayor que el tiempo de
ciclo real, al finalizar el programa cclico la CPU dispone de tiempo de
ejecucin.

El tiempo disponible se utiliza para procesar el OB de tarea no prioritaria.

Mdulo de Organizacin de Alarmas Cclicas


Los OBs de alarmas cclicas permiten:
ejecutar partes del programa en periodos de tiempo determinados
Estructura de un Proyecto S7
Programas S7/M7 (no asignados a ningn HW)
Programas de usuario con mdulos S7:
OBs, FBs, FCs, DBs,.......
Fuentes AWL para programas de usuario
Estacin 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

Mdulos de STEP7
Seleccionar un Mdulo para la Edicin
La herramienta Programar Mdulo S7 (KOP, AWL) se puede utilizar para editar
mdulos off-line (almacenados en el dispositivo de programacin) o bien on-line
(mdulos que estn en la CPU).
Hay que indicar la opcin deseada y seleccionar el mdulo.

Partes de un Mdulo

Tabla de
Declaracin
de Variables

Seccin de
Cdigo

También podría gustarte