View
235
Download
2
Category
Preview:
Citation preview
Automatización Industrial
Principios de Programación en STEP7
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
Índice
• 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 funcionesnecesarias 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
Programas en la CPU
Parte Título Contenidos
Parte 1 Información general Definición de términos y glosario del PLC/APICaracterísticas funcionales del PLC/API
Parte 2 Especificaciones Prestaciones eléctricas, mecánicas y funcionalesy ensayos de los Información a suministrar por el fabricanteequipos Ensayos y verificaciones
Parte 3 Lenguajes de Estructura del software de los PLC/APIprogramación Lenguajes de programación
Elementos del lenguaje
Parte 4 Guía para usuarios Especificaciones y análisis del sistemaAplicación y selección del PLC/APISeguridad y protección, instalación y mantenimiento
Parte 5 Comunicaciones Modelos, bloques de comunicación, mapeado enprotocolos ISO
La Norma IEC 1131 / EN-UNE 61131
Lenguaje IEC 1131-3 STEP 7Diagrama de funciones FBD FBD/FUP
Function Block Diagram Function Block Diagram
Diagrama de contactos LD LAD/KOPLadder Diagram Ladder Logic
Lista de instrucciones IL STL/AWLInstruction List Statement List
Texto estructurado ST SCLStructured Text Structured Control Language
Gráfico secuencial SFC GRAPH7Sequential Function Chart
Diagrama de bloques CFCContinuous Function Chart
Diagrama de gráfico HIGRAPH7de estados
Lenguajes de IEC 1131 - 3 / STEP7
• El entorno de programación permite desarrollar proyectos de controly 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
Funcionalidad del Software
Programas 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
Bloque en el Programa de Usuario
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
•Técnica modular•Segmentos•Comentarios
Representación
• FBD / FUP• LAD / KOP• STL / AWL
Edición de un Programa
Instrucción
Operando
Instrucción
unidad más pequeña autónoma del programa y constituye una orden de trabajo para el procesador
OperaciónOperando
002: A I 1.0ParámetroIdentificador del operando
Dirección relativa de la instrucción en elmódulo respectivo
Parte operacional
Identificación Parámetro
Instrucción
Marcas M Para almacenar resultados binarios intermedios
Datos D Para almacenar resultados digitales intermedios
OPERANDOS NEMONICO FUNCION
Entradas I Imagen del proceso de entradas (PII)
Salidas Q Imagen del proceso de salidas (PIQ)
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 Para estructurar el programaSFB, SFC
Operandos
H1
S2
S1
A I 0.0AN I 0.1= Q 4.5
Q 4.5I 0.1
I 0.0Q 4.5I 0.1I 0.0
EsquemaEléctrico
STL/AWL FBD/FUP LAD/KOP
&
=
Ejemplo de Programa
• STEP 7 provee tres posibilidades para organizar un programa. Programación
LinealProgramación
DivididaProgramaciónEstructurada
Programa Lineal:Todas la instruccionesestán contenidas en unmódulo (normalmenteen el módulo deorganización, OB1)
Programa dividido en áreas:Las instrucciones para funcionesindividuales están contenidas enmódulos individuales. El OB1llama a los módulos individualessucesivamente.
Programa Estructurado:Las funciones reutilizables soncargadas en módulos individuales.El OB1 (u otros módulos) llaman a estos módulos y les pasan datosrelevantes.
OB1
Arranque
FB1 FC1
FB2FC2
FC3
OB1
Arranque
OB1
Arranque
Receta A
Receta B
Mezclador
Descarga
Estructuración de los Programas
1ª instrucción
2ª instrucción
última instrucción
OB1
......
.
Estructura de Programa. Programación Lineal
OB1: Ejemplo de de un simple módulo lineal en FUP
Segmento 1: motor marcha/paro
Segmento 2: Seguridad y señales de aviso
OB1: ejemplo de un simplemódulo lineal en AWL
Segmento 1: motor on/off
Segmento 2: Seguridad y señales de aviso
I 0.0
Q 4.0
Q 4.0
&I 0.2
I 0.3
>=1
=
&
I 0.1
I 0.4Q 4.1
=
A(O I 0.0O Q 4.0)AN I 0.1= Q 4.0
A I 0.2AN I 0.3AN I 0.4= Q 4.1
Programación Lineal
Programación Lineal. Ejemplo
(CALL)
(CALL)
(CALL)
(CALL)
Ingrediente_A
Ingrediente_B
Mezclador
Descarga
OB1FC
FC
FC
FC
>=1
=&
>=1=
&
>=1
=&
>=1=
Programación Dividida
Programa principal Módulo subrutina
Procesamientodel programa
Procesamientodel programaInstrucción que llaman
otros módulos
Fin de módulo
OB FC
Ejecución de un Programa Dividido
Programa Dividido. Control de nivel
Sis
tem
a O
pera
tivo
OB1 FC
FB FC
FB
SFC
SFB
OtrosOBs
Programación Estructurada I
Motor
Descarga
OB1
>=1
=&
>=1
=&
=&
=
Programación Estructurada II
Procesarmódulo 7
OB1 Módulo 7
Lamar almódulo 32.....
Módulo 32
Llamar almódulo X
Módulo R
Retornar
Retornar Retornar
...
Nivel1 Nivel2 Nivel3 Niveles 4..7 Nivel 8
Retornar
Módulo 10
Retornar
Procesarmódulo 10
Estructura del Programa
Sist
ema
oper
ativ
o
Iniciodel
cicloOB 1 FB 10
FB 20
FC 50
DB inst. 10
DB inst. 2
Tren
CALL FB 10
CALL FB 20
CINTA A
CALL FC 50
CINTA B
CALL FC 50
Acciona-miento
División Tecnológica de un Programa
FB
FB
FB
FC
SFC
SFB
Módulo dedatos deinstancia
Leyenda:
OB
Módulo deOrganización
Ciclo
Tiempo
Proceso
Error
Modos de operación del sistemaBloques CPU 315 CPU 315-2DP Tamaño
Mód. de organización (OB) 13 14 8 Kby
Módulo de función (FB) 128 128 (0-127) 8 Kby
Función (FC) 128 128 (0-127) 8 Kby
Módulo de datos (DB) 127 127(1-127) 8 Kby
Función del sistema (SFC) 48 53
Mód. func. sistema (SFB) 7 7
Tipos de Módulos de Programa
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 usuariofunció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 Usuario
Tipo de Módulo Características
Función del - Integrados en el sistema operativo de la CPUSistema - Un usuario puede llamar esta función(SFC) (sin memoria).
Módulos deFunciones - Integrados en el sistema operativo de la CPU del Sistema - Un usuario puede llamar esta función (SFB) (con memoria).
Dato de Sistema - Módulo de datos para datos de configuración(SDB) y parámetros
Módulos del Sistema
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 (I)
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 25multiprocesamiento
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
Módulos de Organización – OB´s (II)
Sistema operativo
Conectar
ProgramaprincipalCiclo
Programa de usuario
Ejecución Cíclica I
Sistema operativo
Conectar
ProgramaprincipalCiclo
Programa de usuario
Programa de usuario
Alarma
Error
Interrup-ción
Interrup-ción
Programa de alarma
Tratamiento de errores
Ejecución Cíclica II
Sist
ema
oper
ativ
o
Iniciodel
cicloOB 1 FB 1 FC 1
FB 2 FB 1 SFC 1
FC 1 DB 1
Profundidad de anidamiento
DB inst. 1
DB inst. 2 DB inst. 1
Secuencia y Profundidad de Anidamiento
Llamada de un módulo Módulo llamado
(OB, FB, FC) (FB, FC, SFB, SFC)
Ejecucióndel programa
Ejecucióndel programaInstrucción que llama a
otro módulo
Fin de módulo
Llamadas a los Módulos
El sistema operativo inicia el tiempo de vigilancia del ciclo
La CPU escribe los valores de la PIQen los módulos de salida
La CPU lee el estado de las entradas en losmó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..)
Fases de la Ejecución Cíclica
• 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 I
• La figura muestra la función del tiempo de vigilancia del ciclo en laejecución del programa en las CPUs
Tiempo de Ciclo II
• 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)
Funciones – FC´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, sememorizan 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 laejecució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
Módulo de Función – FB´s
• 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 ejecutacon diferentes valores para los parámetros con cada DB de instancia
Arranque: INT INRevoluciones: INT INHistorial: DT IN_OUTTiempo efec.: TIME IN_OUT
FB 20: MotorParámetros formales
Entero (16 bits): Arranque
Entero (16 bits): Revoluciones
Fecha y hora (48 bits):Puntero a dirección del historialTiempo (32 bits): Tiempo ejec.
DB 202: Motor_2Parámetros actuales (reales)
FBs y DBs de Instancia
• 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 concluirla ejecución del módulo de programa que lo utiliza
FC 10 DB global
(DB 20)FC 11
FC 12 DB de instancia(DB 112)
Acceso desde todos los bloques
Acceso sólo desde FB 12
Módulo de Datos Globales – DB´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
Módulos del Sistema – SFB´s y SFC´s
Byte de datos 0
Byte de datos 8191
8 Bits
El tamaño máximo de un móduloen la CPU 314 es 8 Kbyte. La cantidad máxima de memoriadisponible en un módulo de datosdepende de la CPU.
Tipos de Módulos de Datos
EN ENOFB7DB45
Llamada al FB7 (a través delmódulo de datos de instancia DB45) y asignación de parámetros.
CALL FB7, DB45Start: = I 1.0Stop: = I 1.1Longitud := MW20Ejecutar: = M2.1
FB parámetro formal
Dirección actual de los datos(parámetro vigente)
Llamada al FB7 (a través delmódulo de datos de instancia DB45) y asignación de parámetros.
Dirección actualde los datos FB parámetro formal
I 1.0I 1.1MW20
StartStopLongitud
ejecutar M2.1
STL/AWL
FBD/FUP
Llamada de Módulos – Asignación de Parámetros
Cabecera del Módulo(36 Bytes)
Cuerpo del módulo :
Sección de declaracióny
Sección de programao
Datos
InterfaseDescripción breve
Estructura del Módulo
a b
Botón de la seleccióndel tanque
0 0 0 0
Ingrediente AIngrediente B
LTLT
LT
LT
LT
Ejemplo de Programación Estructurada
Inicia el módulo (OB 100), procesándose una vez después de conectar la alimentación, por ejemplo
Iniciando el tiempo de control de ciclo
Lectura del estado de las señales de los módulosguardando los datos en la tabla de la imagen de proceso de entradas (PII)
Ejecución del programa en el OB1 (procesamientocí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 desalida (PIQ) en los módulos de salida.
Módulo de entrada
CPU
cic
lo d
e sc
an
Módulo de salida
A I 0.1A I 1.1= Q 4.0
.
.
.
.
Módulo OB 1
Procesamiento Cíclico del Programa
I2.0
Q4.3
I2.7 I0.5 I03 Q4.4
1
PII PIQByte 0Byte 1Byte 2....
Byte 0Byte 1Byte 2....
A(O I 2.0O Q 4.3)AN I 2.7AN I 0.5AN I 0.3= Q 4.4
Programade usuario
1
Imagen del Proceso
Tipo de Alarma OBs de alarma Aplicación
Alarma horaria OB 10 a OB 17 Calcula el flujo de un proceso demezcla 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 parael 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
• Los OBs de alarmas permiten:• ejecutar partes del programa dependientes del tiempo• reaccionar eficazmente a señales externas al proceso
Módulos de Organización de Alarmas
CON
Alarma
Alarma
Alarma
del procesoAlarma de Proceso•gobierno por interrupciones
Procesamiento Cíclico•procesamiento normal. OB1
Arranque•comprobación e inicialización de valores•condiciones de arranque
Alarma cíclica•periodos de tiempo predeterminados•importante en lazos regulación
Tratamiento de Error•en función de fallos•sólo en algunas gamas
cíclica
Alarmahoraria Alarma horariaAlarmade retardo Alarma de retardo
por errores
Ejecución de Programas – Tipos de Procesamiento
Definición: El tiempo de ciclo es el tiempo que transcurre durante unciclo 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)
Programa de usuarioA I 1.0= Q 4.0
Tiempo de ciclo
PII S.O. PIQ PII
S.O.Programade usuario
Interrupcionespor alarmas
Tiempo de Ciclo
El tiempo de respuesta es el tiempo que transcurre entre el reconocimiento de una señalde 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
Ejecución del programaA I 1.0= Q 4.0
Tiempo de reacciónRetardo delos módulosde entrada
10
10
I 1.0
Q 4.0tiempo
PII S.O. PIQ PII
Tiempo de Respuesta
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 casohay 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
Tiempo de Respuesta más Corto y más Largo
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 casoel 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
• 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ódulos de Org. de Tarea no Prioritaria
• Los OBs de alarmas cíclicas permiten:• ejecutar partes del programa en periodos de tiempo determinados
Módulo de Organización de Alarmas Cíclicas
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
CPU programable de un S7-400Programas S7/M7 (asignados a HW)Programas de usuario (off-line)
Estación HW de un S7 - 400
M7-FM programable
Fuentes AWL
Estructura de un Proyecto S7
Módulos de STEP7
• 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.
Seleccionar un Módulo para la Edición
Tabla deDeclaraciónde Variables
Sección deCódigo
Partes de un Módulo
Recommended