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
Parte 1 Parte 2

Ttulo
Informacin general Especificaciones y ensayos de los equipos

Contenidos
Definicin de trminos y glosario del PLC/API Caractersticas funcionales del PLC/API Prestaciones elctricas, mecnicas y funcionales Informacin a suministrar por el fabricante Ensayos y verificaciones Estructura del software de los PLC/API Lenguajes de programacin Elementos del lenguaje Especificaciones y anlisis del sistema Aplicacin y seleccin del PLC/API Seguridad y proteccin, instalacin y mantenimiento Modelos, bloques de comunicacin, mapeado en protocolos ISO

Parte 3 Lenguajes de programacin Parte 4 Gua para usuarios

Parte 5

Comunicaciones

Lenguajes de IEC 1131 - 3 / STEP7


Lenguaje
Diagrama de funciones Diagrama de contactos Lista de instrucciones Texto estructurado Grfico secuencial Diagrama de bloques Diagrama de grfico de estados

IEC 1131-3
FBD Function Block Diagram LD Ladder Diagram IL Instruction List ST Structured Text SFC Sequential Function Chart

STEP 7
FBD/FUP Function Block Diagram LAD/KOP Ladder Logic STL/AWL Statement List SCL Structured Control Language GRAPH7 CFC Continuous Function Chart 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
Tcnica modular Segmentos Comentarios

Representacin
FBD / FUP LAD / KOP STL / AWL

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

Instruccin
002: A I 1.0

Operacin Operando

Parte operacional

Operando

Identificacin Parmetro

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

Operandos
OPERANDOS NEMONICO FUNCION

Entradas Salidas Marcas Datos Tiempos Contadores Periferia Locales Mdulos

I Q M D T C P L OB, FB, FC SFB, SFC

Imagen del proceso de entradas (PII) Imagen del proceso de salidas (PIQ) Para almacenar resultados binarios intermedios Para almacenar resultados digitales intermedios Funciones de tiempo (temporizadores) Funciones de cmputo (contadores) Para acceder directamente a la periferia Datos locales temporales Para estructurar el programa

Ejemplo de Programa
Esquema STL/AWL Elctrico
S1 S2 A I 0.0 AN I 0.1 = Q 4.5 I 0.0

FBD/FUP

LAD/KOP

&
Q 4.5

I 0.0 I 0.1 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
Receta A Receta B

Programacin Estructurada Arranque FB1 FC1 FC2 FB2 FC3


Programa Estructurado:
Las funciones reutilizables son cargadas en mdulos individuales. El OB1 (u otros mdulos) llaman a estos mdulos y les pasan datos relevantes.

OB1

OB1

OB1

Mezclador Descarga

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

Programa dividido en reas:


Las instrucciones para funciones individuales estn contenidas en mdulos individuales. El OB1 llama a los mdulos individuales sucesivamente.

Estructura de Programa. Programacin Lineal


OB1
1 instruccin 2 instruccin

. . . . . . .

ltima instruccin

Programacin Lineal
OB1: Ejemplo de de un simple mdulo lineal en FUP Segmento 1: motor marcha/paro OB1: ejemplo de un simple mdulo lineal en AWL Segmento 1: motor on/off A( O I 0.0 O Q 4.0 ) AN I 0.1 = Q 4.0 Segmento 2: Seguridad y seales de aviso A AN AN = I 0.2 I 0.3 I 0.4 Q 4.1

I 0.0 Q 4.0

>=1 &

Q 4.0 I 0.1
=

Segmento 2: Seguridad y seales de aviso

I 0.2 I 0.3 I 0.4

&

Q 4.1
=

Programacin Lineal. Ejemplo

Programacin Dividida
FC

OB1 Ingrediente_A Ingrediente_B Mezclador (CALL) (CALL)


FC

>=1 & =

& >=1 =

(CALL) >=1 (CALL)


FC

Descarga

& = >=1

FC

Ejecucin de un Programa Dividido


Programa principal OB Mdulo subrutina FC

Procesamiento del programa Instruccin que llaman otros mdulos Procesamiento del programa

Fin de mdulo

Programa Dividido. Control de nivel

Programacin Estructurada I

Sistema Operativo

OB1

FC FB SFC SFB

FB FC

Otros

OBs

Programacin Estructurada II
OB1 >=1 & =
Descarga Motor

>=1 & = & = =

Estructura del Programa


OB1
Procesar mdulo 7

Mdulo 7

Mdulo 32

Mdulo R

Procesar mdulo 10 Retornar

. . . . .

Lamar al mdulo 32

Llamar al mdulo X

...
Retornar

Retornar

Mdulo 10

Retornar

Retornar Nivel1 Nivel2 Nivel3 Niveles 4..7 Nivel 8

Divisin Tecnolgica de un Programa


Inicio del OB 1 ciclo

FB 10 CINTA A CALL FC 50 FC 50
DB inst. 10

Tren

CALL FB 10

Sistema operativo

Accionamiento

FB 20 CINTA B CALL FB 20 CALL FC 50

DB inst. 2

Tipos de Mdulos de Programa


Ciclo Tiempo Proceso Error
Modos de operacin del sistema

OB Mdulo de Organizacin

FB

FC

SFB

FB
Bloques

FB
CPU 315

SFC
CPU 315-2DP Tamao

Md. de organizacin (OB) Mdulo de funcin (FB)

13 128 128 127 48 7

14 128 (0-127) 128 (0-127) 127(1-127) 53 7

8 Kby 8 Kby 8 Kby 8 Kby

Leyenda:
Mdulo de datos de instancia

Funcin (FC) Mdulo de datos (DB) Funcin del sistema (SFC) Md. func. sistema (SFB)

Mdulos de Usuario
Tipo de Mdulo
Organizacin (OB) -

Caractersticas
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 Mdulos con memoria que puede programar el usuario Parametrizable / retentiva No parametrizable / retentiva No parametrizable / no retentiva

Mdulo de funcin (FB)

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 - Estructurado, almacenamiento de datos locales (DB instan.) - Estructurado, almacenamiento de datos globales (vlido en todo el programa)

Mdulo de Datos (DB)

Mdulos del Sistema


Tipo de Mdulo Funcin del Sistema (SFC) Mdulos de Funciones del Sistema (SFB) Dato de Sistema (SDB) Caractersticas - Integrados en el sistema operativo de la CPU - Un usuario puede llamar esta funcin (sin memoria). - Integrados en el sistema operativo de la CPU - Un usuario puede llamar esta funcin (con memoria). - Mdulo de datos para datos de configuracin 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
Ciclo libre Alarmas horarias Alarmas de retardo Alarmas cclicas Alarmas de Proceso Alarma de multiprocesamiento Error de redundancia Errores asncronos Ciclo no prioritario Arranque Errores sncronos Mdulo de organizacin OB1 OB 10 a OB 17 OB 20 a OB 23 OB 30 a OB 38 OB 40 a OB 47 OB 60 OB 70 y OB 72 OB 80 a OB 87 OB 90 OB 100 a OB 102 OB 121y OB 122 Prioridad 1 2 de 3 a 6 de 7 a 15 de 16 a 23 25 25 y 28 26 29 27 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 Programa principal Interrupcin Interrupcin Programa de alarma Tratamiento de errores

Ciclo Alarma

Error

Secuencia y Profundidad de Anidamiento


Inicio del ciclo Profundidad de anidamiento

OB 1

FB 1
DB inst. 1

FC 1

Sistema operativo

FB 2
DB inst. 2

FB 1
DB inst. 1

SFC 1

FC 1

DB 1

Llamadas a los Mdulos


Llamada de un mdulo
(OB, FB, FC)

Mdulo llamado
(FB, FC, SFB, SFC)

Ejecucin del programa


Instruccin que llama a otro mdulo

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


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

DB 202: Motor_2 Parmetros actuales (reales)


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:

SFCs:

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

FBD/FUP
EN I 1.0 I 1.1 MW20

DB45
FB7 ENO
Llamada al FB7 (a travs del mdulo de datos de instancia DB45) y asignacin de parmetros.

Direccin actual de los datos

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

LT

LT A Ingrediente
Ingrediente B

Procesamiento Cclico del Programa


Inicia el mdulo (OB 100), procesndose una vez despus de conectar la alimentacin, por ejemplo 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 proceso de entradas (PII) CPU ciclo de scan 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 entrada

Mdulo de salida

Imagen del Proceso


I2.0 I2.7 I0.5 I03

Q4.4

Q4.3

PII
Byte 0 Byte 1 Byte 2 . . . .
1

PIQ
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
Alarma horaria

OBs de alarma
OB 10 a OB 17

Aplicacin
Calcula el flujo de un proceso de mezcla al final de un turno Controla un ventilador para que se pare 20 seg despus de parar un motor Muestrear el valor de una seal para el control de una planta Notificar que se ha alcanzado el valor mximo de un depsito

Alarma de retardo

OB 20 a OB 23

Alarma cclica Alarma de proceso

OB 30 a OB 38 OB 40 a OB 47

Ejecucin de Programas Tipos de Procesamiento


CON

Arranque
comprobacin e inicializacin de valores condiciones de arranque

Procesamiento Cclico
procesamiento normal. OB1 Alarma del proceso Alarma cclica Alarma horaria Alarma de retardo Alarma por errores

Alarma de Proceso
gobierno por interrupciones

Alarma cclica
periodos de tiempo predeterminados importante en lazos regulacin

Alarma horaria Alarma de retardo


Tratamiento de Error en funcin de fallos 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

PII S.O.

Programa de usuario A I 1.0 = Q 4.0

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

I 1.0 0
1 tiempo Ejecucin del programa A I 1.0 PIQ = Q 4.0

Q 4.0 0

PII S.O.

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

También podría gustarte