Вы находитесь на странице: 1из 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
y ensayos de los
equipos

Prestaciones elctricas, mecnicas y funcionales


Informacin a suministrar por el fabricante
Ensayos y verificaciones

Parte 3 Lenguajes de
programacin

Estructura del software de los PLC/API


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

Grfico secuencial

SFC
Sequential Function Chart

GRAPH7

Diagrama de bloques

CFC
Continuous Function Chart

Diagrama de grfico
de estados

HIGRAPH7

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

FBD / FUP
LAD / KOP
STL / AWL

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

Operacin
Operando

Instruccin
002: A

Parte operacional

Operando

Identificacin Parmetro

I 1.0

Parmetro
Identificador del operando
Direccin relativa de la instruccin en el
mdulo respectivo

Operandos
OPERANDOS

Entradas

NEMONICO

FUNCION

Imagen del proceso de entradas (PII)

Salidas

Imagen del proceso de salidas (PIQ)

Marcas

Para almacenar resultados binarios intermedios

Datos

Para almacenar resultados digitales intermedios

Tiempos

Funciones de tiempo (temporizadores)

Contadores

Funciones de cmputo (contadores)

Periferia

Para acceder directamente a la periferia

Constantes

Datos locales temporales

Mdulos

OB, FB, FC
SFB, SFC

Para estructurar el programa

Ejemplo de Programa

Esquema STL/AWL
Elctrico

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

Estructuracin de los Programas


STEP 7 provee tres posibilidades para organizar un programa.
Programacin
Lineal
Arranque

Programacin
Dividida
Arranque

Programacin
Estructurada
Arranque

Receta A

FB1

FC1

Receta B

OB1

OB1

OB1
Mezclador

FC2
FB2

Descarga

FC3

Programa Lineal:

Programa dividido en reas:

Programa Estructurado:

Todas la instrucciones
estn contenidas en un
mdulo (normalmente
en el mdulo de
organizacin, OB1)

Las instrucciones para funciones


individuales estn contenidas en
mdulos individuales. El OB1
llama a los mdulos individuales
sucesivamente.

Las funciones reutilizables son


cargadas en mdulos individuales.
El OB1 (u otros mdulos) llaman a
estos mdulos y les pasan datos
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

>=1

Q 4.0

&

Q 4.0
I 0.1

Segmento 2: Seguridad y seales de aviso

I 0.2

&

I 0.3

Q 4.1

I 0.4

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
seales de aviso
A
AN
AN
=

I 0.2
I 0.3
I 0.4
Q 4.1

Programacin Lineal. Ejemplo

Programacin Dividida
FC

>=1

OB1
Ingrediente_A
Ingrediente_B

&
=
(CALL)
&

(CALL)

>=1

FC

Mezclador

Descarga

(CALL)
>=1
(CALL)

&

FC

>=1
FC

Ejecucin de un Programa Dividido


Programa principal

OB

Mdulo subrutina

Procesamiento
del programa
Instruccin que llaman
otros mdulos

Procesamiento
del programa

Fin de mdulo

Programa Dividido. Control de nivel

FC

Sistema Operativo

Programacin Estructurada I

OB1

FC

FB

FB

FC

SFC
SFB
Otros

OBs

Programacin Estructurada II
Motor

OB1
>=1

&
=

Descarga

>=1
&
=
&
=
=

Estructura del Programa


OB1

Mdulo 7

Mdulo 32

Procesar
mdulo 7
Lamar al
mdulo 32

..
..
.

Mdulo R

...

Llamar al
mdulo X

Retornar

Procesar
mdulo 10
Retornar

Mdulo 10

Retornar

Retornar

Retornar
Nivel1

Nivel2

Nivel3

Niveles 4..7

Nivel 8

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


Ciclo
OB

Tiempo
Proceso

FB

FC

SFB

FB

FB

SFC

Mdulo de
Organizacin

Error
Modos de operacin del sistema

Bloques
Tamao

CPU 315 CPU 315-2DP

Md. de organizacin (OB)


Mdulo de funcin (FB)

Leyenda:
Mdulo de
datos de
instancia

13 14
128

8 Kby

128 (0-127)

8 Kby

Funcin (FC)

128

128 (0-127)

8 Kby

Mdulo de datos (DB)

127

127(1-127)

8 Kby

Funcin del sistema (SFC) 48


Md. func. sistema (SFB)

53
7 7

Mdulos del Sistema


Tipo de Mdulo

Caractersticas

Funcin del
Sistema
(SFC)

- Integrados en el sistema operativo de la CPU


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

Mdulos de
Funciones
del Sistema
(SFB)

- Integrados en el sistema operativo de la CPU


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

Dato de Sistema
(SDB)

- Mdulo de datos para datos de configuracin


y parmetros

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
funcin (FB)

- Mdulos con memoria que puede programar el usuario


- 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
(DB)

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


- Estructurado, almacenamiento de datos globales
(vlido en todo el programa)

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

Ciclo libre

OB1

Alarmas horarias

OB 10 a OB 17

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
multiprocesamiento

OB 60

25

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

Prioridad

la del OB del error

Ejecucin Cclica I
Sistema operativo Programa de usuario
Conectar

Ciclo

Programa
principal

Ejecucin Cclica II
Sistema operativo Programa de usuario
Conectar

Programa
de usuario

Ciclo

Programa
principal

Alarma

Interrupcin

Programa
de alarma

Error

Interrupcin

Tratamiento
de errores

Secuencia y Profundidad de Anidamiento


Profundidad de anidamiento

Inicio
del
ciclo

Sistema operativo

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 Mdulos


Llamada de un mdulo
(OB, FB, FC)

Ejecucin
del programa
Instruccin que llama a
otro mdulo

Mdulo llamado
(FB, FC, SFB, SFC)

Ejecucin
del programa

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

DB 202: Motor_2
Parmetros 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 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
FC 11
FC 12

DB
global
(DB 20)

Acceso desde
todos los bloques

DB de instancia Acceso slo desde


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


STL/AWL
FB parmetro formal

CALL FB7, DB45


Start: = I 1.0
Stop: = I 1.1
Longitud := MW20
Ejecutar: = M2.1

Llamada al FB7 (a travs del


mdulo de datos de instancia
DB45) y asignacin de parmetros.

Direccin actual de los datos


(parmetro vigente)

DB45

FBD/FUP

FB7
EN

Direccin actual
de los datos

I 1.0
I 1.1
MW20

Llamada al FB7 (a travs del


mdulo de datos de instancia
DB45) y asignacin de parmetros.

ENO

Start
ejecutar
Stop
Longitud

M2.1
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

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

CPU ciclo de scan

Lectura del estado de las seales de los mdulos


guardando los datos en la tabla de la imagen de
proceso de entradas (PII)
Ejecucin del programa en el OB1 (procesamiento
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 OB 1
A I 0.1
A I 1.1
= Q 4.0
.
.
.
.

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

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


Arranque

CON

comprobacin e inicializacin de valores


condiciones de arranque

Procesamiento Cclico
procesamiento normal. OB1
Alarma
del proceso

Alarma de Proceso

Alarma
cclica

Alarma cclica

gobierno por interrupciones


periodos de tiempo predeterminados
importante en lazos regulacin

Alarma
horaria
Alarma
de retardo

Alarma horaria
Alarma de retardo
Tratamiento de Error
en funcin de fallos
slo en algunas gamas

Alarma
por errores

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

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

Q 4.0 0
tiempo

PII S.O.

Ejecucin del programa


A I 1.0
PIQ
= Q 4.0

PII

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