2. PROGRAMACION MODULAR.
• DEFINICION:
• Es dividir una tarea compleja de programación en tareas de menor tamaño y
complejidad.
• VENTAJAS.
• Hace mas sencillo enfrentar la tarea completa.
• La programación se puede realizar coordinadamente entre varios
programadores.
• Permite realizar pruebas mas fácilmente.
• Permite reutilizar código que se necesita ejecutar varias veces dentro del
mismo programa.
• El mantenimiento y detección de fallas se realiza mas rápidamente.
3. PROGRAMACION MODULAR.
• STPEP 7 ofrece las siguientes herramientas para la estructuración de
programas.
FB (Bloque de Función)
El FB tiene asignada una área de almacenamiento. Si un FB es llamado, puede
tener un bloque de datos asignado (DB). Desde los datos de esta instancia, el
DB puede ser accedido a través de una llamada al FB. Un FB puede tener
asignados diferentes DBs. Tanto los FBs como los FCs pueden ser llamados
desde otro FB.
FC (Función)
Un FC no posee un área de datos asignada. Los datos locales de una función se
pierden tras finalizar la ejecución de la función. Tanto los FBs como los FCs
pueden ser llamados desde otro FB.
• NOTA: ambos tipos pueden ser: con parámetros y sin parámetros.
6. PROGRAMACION MODULAR.
Modularizacion de tareas:
• Las tareas parciales se
solucionan con sus propios
módulos.
• La asignación de
parámetros flexibiliza la
programación
Reutilización de los Módulos:
• Los Módulos pueden
llamarse
• tantas veces como se
necesite
• Restricciones:
• no se tiene acceso a
direcciones globales
9. PROGRAMACION MODULAR.
• Parámetros de Entrada (IN) solo en FBs, FCs, SFBs y SFCs Con
ayuda de los parámetros de entrada se pueden asignar datos
necesarios para el procesamiento del bloque.
• Parámetros de Salida (OUT) solo en FBs, FCs, SFBs y SFCs En los
parámetros de salida, los resultados del procesamiento del bloque
son depositados aquí.
• Parámetros de Entrada/Salida (IN_OUT) solo en FBs, FCs, SFBs y
SFCs En los parámetros de Entrada/Salida, los contenidos de estos
parámetros y el resultado del procesamiento del bloque depositado
en ellos mismos.
• Datos Estáticos (STAT) sólo en FBs y SFBs Los datos estáticos son
los datos locales a un bloque de función, los cuales son
almacenados en un bloque de datos de instancia y por tanto
preservados hasta el siguiente procesamiento del bloque.
• Datos Temporales (TEMP) en todos los bloques Los datos estáticos
son los datos locales a un bloque que almacenan valores durante el
proceso de dicho bloque en una pila de datos locales (L-Stack) y,
una vez ha terminado de procesarse el bloque, el contenido de
estas variables se pierde.
10. PROGRAMACION MODULAR.
• Los parámetros son canales para
transferir información:
– Parámetros de Entrada (In):
– Parámetros de Salida (Out):
• – Parámetros E/S (In/Out):
• Los parámetros de un módulo:
– Están en la sección de
código como variables
"locales"
– Pueden tener cualquier tipo
de dato
11. PROGRAMACION MODULAR: bloques de organización.
• Son los encargados de poner programa de usuario a disposición de
la CPU, es decir, nuestro programa debe estar incluido en un OB
para poder ser ejecutado por el Autómata
• Los OBs son llamados cíclicamente por el sistema operativo.
Nunca por otro módulo lógico . Un OB puede ser interrumpido
por otro OB de mayor prioridad.
• Están jerarquizados en prioridades y se dividen en dos tipos:
– Dedicados a tareas periódicas:
– OB1: Programa principal (mínima prioridad)
• OB10: Interrupción horaria
• OB35: Interrupción cíclica, etc.
– Dedicados a tratamiento de errores:
• OB40: Error hardware
• OB121 y 122: Error síncrono, etc.
13. PROGRAMACION MODULAR: funciones.
• 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.
• Las Funciones son bloques lógicos sin memoria
• Las variables temporales de las FCs se memorizan en la tabla de datos locales
14. PROGRAMACION MODULAR: funciones.
• Módulos parametrizables:
• – tantos parámetros de entrada,
salida, y entrada/salida como se
necesiten.
– sin memoria, p.e. sólo
variables temporales
– sin acceso a variables
globales y direcciones
absolutas
– con los mismos parámetros
de entrada devuelven el
mismo resultado
– Amplían el juego de
instrucciones del procesador
15. PROGRAMACION MODULAR: bloques de función.
• Módulos parametrizables:
– tantos parámetros de entrada,
salida y entrada/salida como se
necesiten
– con memoria, es decir, con
variables estáticas (tambié puede
haber temporales)
– Llamada con área de dato propia
(instancia)
• Aplicación:
– Funciones de temporización y
contadores
– Unidades de control de procesos
con estados internos
• calderas
• motores, válvulas, etc.
16. PROGRAMACION MODULAR: bloques de datos.
• Zonas de memoria para almacenamiento de datos organizados del programa
• No pierden la información cuando el programa los ha acabado de utilizar
• Existen DB´s de dos tipos:
– Globales: disponibles para cualquier módulo lógico del programa.
– De instancia: asignado a un módulo de función, por lo que sólo es
accesible por éste.
17. PROGRAMACION MODULAR: bloques de datos.
• Son remanentes: no pierden la información aunque se corte la alimentación
(en coherencia con el programa cargado en la CPU)
• Tras la creación de un DB, éste debe ser definido (rellenado) con las variables
que se desee.
– Tipo de variables:
• Simple (bool, byte, entero, palabra, doble palabra).
• Compuesto (STRING, DATE_AND_TIME, ARRAY).
• Estructuras.