Publicado el 12 de Abril del 2019
944 visualizaciones desde el 12 de Abril del 2019
446,3 KB
11 paginas
Creado hace 21a (16/12/2003)
Tema 6
Programación estructurada
DivDiv . Ingeniería de
. Ingeniería de
DivDiv . Ingeniería de
. Ingeniería de
Sistemas y Automática
Sistemas y Automática
Sistemas y Automática
Sistemas y Automática
Programación estructurada
Programación estructurada
11
Bibliografía
l Título: “Step7 Avanzado”
l Autor: José Martínez Torres
l Descargar de la página web
l Manual Siemens “Step7-AWL para S7-300 y S7-400”
l Manual Siemens “Step7-KOP para S7-300 y S7-400”
l Manual Siemens “Step7-FUP para S7-300 y S7-400”
l Título: “Automating with Step7 in STL and SCL”
l Autor: Hans Berger
l ISBN: 3-89578-140-1
Programación estructurada
Programación estructurada
22
1
Bibliografía
l Título: “Comunicaciones Industriales”
l Autores: V.Sempere, J. Silvestre, J.A. Martínez
l Editiorial : SPUPV (SPUPV-2002.213)
l Año:2002
Programación estructurada
Programación estructurada
33
Índice
l Módulos de STEP 7
l Módulos de Organización (OBs)
l Funciones (FCs)
l Módulos de Función (FBs)
l Llamada a módulos
l Acceso y Restricciones de los Parámetros de Paso
l Uso de los Parámetros EN/ENO
l Ejercicio: Funciones con Parámetros y sin
Parámetros
l Módulos de datos (DBs)
Programación estructurada
Programación estructurada
44
2
Módulos de STEP 7
l Módulos
l Los módulos son partes funcionales del programa de usuario. Se
diferencian en su función, uso y estructura. Los módulos representan el
código ejecutable del programa.
l El entorno STEP7 soporta los siguientes tipos de módulos:
l Módulos lógicos:
l OBs - Módulos de Organización
l FCs – Funciones
l FBs - Módulos de Función
l SFCs - Funciones de Sistema
l SFBs - Módulos de Función de Sistema
l Módulos de Datos:
l DBs - Módulos de Datos
l SDBs - Módulos de Datos de Sistema
l Tipos de Datos definidos por el Usuario:
l UDTs
Programación estructurada
Programación estructurada
55
Módulos de STEP 7
Programación estructurada
Programación estructurada
66
3
Módulos de Organización
(OBs)
l Módulos de Organización
l
Constituyen el interface entre la CPU y el programa. El sistema operativo llama a estos módulos de código para que
realicen distintas operaciones de acuerdo a su función.
l OB1
l
l
Es un módulo de código que trabaja cíclicamente, el OB1 se ejecuta en cada ciclo. Puede almacenar y ejecutar su
programa completo en el OB1, o bien puede almacenar su programa en diferentes módulos lógicos y utilizar el OB1
para llamarlos cuando sea necesario. Además del OB1, el sistema operativo puede llamar a otros OBs en respuesta a
ciertos eventos. Los OBs sólo pueden ser llamados por el sistema operativo, no por otros módulo lógicos.
El sistema operativo de la CPU del S7 ofrece 26 clases de priori dad (niveles de ejecución del programa). El sistema
operativo procesa los OBs de acuerdo a su prioridad. El OB1 (prioridad clase 1) tiene la prioridad más baja de todos
los OBs. Esto significa que todos los otros OBs pueden interrumpir la ejecución cíclica del OB1 si es necesario.
l Cada CPU del S7 soporta diferentes OBs y sus respectivas funciones. Los diferentes tipos de OB
realizan distintas funciones:
OB1
OB10
OB20
OB35
OB40
OB80 - 87
OB121,122
OB100
OB101
Programa principal
Interrupción Horaria
Interrupción de Retardo
Interrupción Cíclica
Interrupción Hardware
Error Asíncrono
Error Síncrono
Rearranque Completo
Rearranque
Ejecución en ciclos continuos
Empieza en un momento programado
Corre después de una demora programada
Se repite en intervalos programados
Corre al detectarse un error en un módulo
Se ejecuta si hay errores asíncronos
Se ejecuta si hay errores síncronos
Se ejecuta al pasar la CPU de STOP a RUN
Se ejecuta si hay un rearranque de la CPU
Programación estructurada
Programación estructurada
77
Módulos de Organización
(OBs)
Módulos de Organización (OBs)
El sistema operativo
llama a otros OBs
para utilizarlos:
OB1
OB1
Programa Principal
Programa Principal
Ejecución cíclica
Ejecución cíclica
hasta ser interrumpido
hasta ser interrumpido
por un OB con una más
por un OB con una más
alta prioridad.
alta prioridad.
Una vez interrumpido
Una vez interrumpido
por el sistema operativo
por el sistema operativo
el OB1 rompe su ciclo
el OB1 rompe su ciclo
y ejecuta el OB
y ejecuta el OB
requerido.
requerido.
Ejemplo de OB10:
Ejemplo de OB10:
Ejecuta este módulo
Ejecuta este módulo
cada minuto.
cada minuto.
Empieza a las 9:00
Empieza a las 9:00
Ejemplo de OB20:
Ejemplo de OB20:
Ejecuta este módulo
Ejecuta este módulo
2.35” después de
2.35” después de
detectar un evento
detectar un evento
Ejemplo de OB82:
Ejemplo de OB82:
Ejecuta este módulo
Ejecuta este módulo
si hay un cortocircuito
si hay un cortocircuito
en la entrada
en la entrada
analógica PEW532
analógica PEW532
Programación estructurada
Programación estructurada
88
4
Funciones (FCs)
Funciones (FCs)
q Las Funciones son módulos de código que se ejecutan al ser
llamadas desde otro módulo. Cuando se la llama, la función actúa
como una subrutina del programa. Cuando termina de ejecutar su
código, el control se devuelve al módulo y al segmento desde el
cual fue llamada.
Programa Principal
OB1
Módulo Subrutina
FC
Ejecución
del programa
Instrucción que llama
a otro módulo
Ejecución del
Programa
Programación estructurada
Programación estructurada
99
Funciones (FCs)
l FC sin parámetros:
l Las funciones (FCs) actúan como subrutinas del módulo de
código que las llama. Si no se pasa ningún valor (parámetro)
desde el módulo que realiza la llamada, la FC ejecuta su
código con sus propios valores.
Segmento 1 :
Segmento 1 :
L MD10
L MD10
L MD20
L MD20
+R
+R
L MD40
L MD40
/R
/R
RND+
RND+
T MW0
T MW0
Programación estructurada
Programación estructurada
1010
5
Funciones (FCs)
l FC con parámetros:
l En las Funciones (FC), los valores (parámetros) pasados
desde otro módulo, se pueden usar con el nombre de
variable local. Los valores se almacenan en la pila L, que
está dinámicamente asignada en la memoria local. Una
vez que acaba la ejecución de la FC, los valores
almacenados en la pila L se pierden.
0.0
4.0
8.0
valor_A
valor_B
valor_C
real
real
real
temperatura 1
temperatura 2
temperatura 3
Segmento 1 :
L valor_A
L valor_B
+R
L valor_C
/R
RND+
T MW0
Programación estructurada
Programación estructurada
1111
Módulos de Función (FBs)
Módulos de Función (FBs)
qUn Módulo de Función (FB) tiene un módulo adicional de memoria
asociado a él. Un Módulo de Datos (DB) mantiene una copia de los
parámetros que van a pasar al área de datos locales. Después de la
ejecución del FB, se borra el área de memoria local, pero el DB
asociado retiene sus valores.
Llamada a un
módulo con los
parámetros
actuales
Ejemplo:
Call FB1,DB10
Copia la parte de
declaración local del FB
DB10
FB1
Área de
Área de
Declaración Local
Declaración Local
Sección de Código
del módulo llamado
usando los valores
del área de
memoria local.
Programación estructurada
Programación estructurada
1212
6
Módulos de Función (FBs)
l FB con Parámetros (Con DB a Instancia)
l Un Módulo de Función es un módulo lógico con un área de
memoria asociada en forma de módulo de datos “a
instancia”.
l Los parámetros pasados al área de memoria local del FB
se almacenan también en el DB a instancia. Los datos
almacenados en el DB se mantienen aunque el FB termine.
l El DB que está asociado a un FB debe tener la misma
estructura de datos que el área de declaración local.
l Si utiliza el mismo DB cada vez que llama al FB, sólo
retendrá el último (el más reciente) conjunto de datos que
pasó al FB.
OB1
Call FB1,DB10
Pila L
Sección de
código del
FB1
DB10
La última/única y
copia de los
parámetros
Programación estructurada
Programación estructurada
1313
Módulos de Función (FBs)
l Si quiere mantener muestras separadas de
los datos, puede asociar un DB diferente
cada vez que llame a un FB.
OB1
Call FB1,DB10
Call FB1,DB12
Pila L
Sección de
código del
FB1
DB10
1ª copia
DB12
2ª copia
Programación estructurada
Programación estructurada
1414
7
Llamada a módulos
Llamada a Módulos
Módulo que llama
(OB, FB, FC, SFB, SFC)
Ejecución del
Programa
Instrucción que llama
a otro módulo
Ejecución del
Programa
Instrucción que llama
a otro módulo
Módulo llamado
(FB, FC, SFB, SFC)
Ejecución del
Programa
(FB, FC, SFB, SFC)
Ejecución del
Programa
(FB, FC, SFB, SFC)
Programación estructurada
Programación estructurada
1515
Llamada a módulos
l La instrucción Call consigue que los módulos
lógicos estructurados “se despierten”.
l Como se ve en el diagrama anterior, cuando el programa
llama al segundo módulo, éste ejecuta todas sus
instrucciones.
l Una vez que el módulo llamado ha terminado, el que hizo
la llamada reasume la ejecución del programa continuando
por la línea siguiente a la instrucción Call.
l Llamada a una Función en AWL: Call FC100
(sin parámetros)
l Llamada a una Función en FUP/KOP:
(sin parámetros)
FC100
EN
ENO
Programación estructurada
Programación estructurada
1616
8
Llamada a módulos
l Llamada a una Función con parámetros en AWL:
Call FC20
Call FB30,DB10
Arranque:=MW20
Pulsador:=PEW352
Total:=AW20
Arranque:=MW20
Pulsador:=PEW352
Total:=AW20
l Llamada a una Función con parámetros en
FUP/KOP:
FC20
ENO
EN
Arranque
Pulsador Total
DB10
FB30
ENO
EN
Arranque
Pulsador Total
Programación estructurada
Programación estructurada
1717
Acceso y Restricciones de los
Parámetros de Paso
l Acceso y restricciones de los Parámetros de
Paso
Acceso y Restricciones
de los Parámetros de Paso
Llamada a módulo (FC, FB)
Módulo llamado (FC, FB)
Tabla de Declaración
Tabla de Declaración
Valor_1
Valor_2
Valor_Total
Input
Output
In/Out
Call FC10
Medida_1:=Valor_1
Medida_2:=Valor_2
Valor_Total:=Medida_Total
Medida_1
Medida_2
Medida_Total
Input
Output
In/Out
Paso de Parámetros de un módulo lógico a otro
Programación estructurada
Programación estructurada
1818
9
Acceso y Restricciones de
Comentarios de: Tema 6 - Programación estructurada (0)
No hay comentarios