Anda di halaman 1dari 16

1- TIPOS DE BLOQUES EN SIMATIC-1200

 Para SIMATIC S7-1200, el programa se escribe en los llamados bloques. De


manera estándar está disponible el bloque de organización Main [OB1].
 Este representa la interfaz del sistema operativo de la CPU y, a su vez, este
último lo abre automáticamente y lo ejecuta de forma cíclica.
 En el caso de tareas de control amplias, se subdivide el programa en
bloques de programa más pequeños, abarcables y ordenados por
funciones.
 Estos bloques son llamados desde los bloques de organización. Al llegar al
fin de bloque se vuelve a saltar al bloque de organización que llama. Más
concretamente, a la fila situada detrás de la llamada.
1.1- Programación Lineal

 En la programación lineal se guardan las instrucciones en un bloque y se


ejecutan en el orden en el que se han guardado en la memoria de
programa. Al llegar al fin del programa (fin de bloque), vuelve a comenzar
la ejecución del programa desde el principio.
 Esto se denomina ejecución cíclica.
 El tiempo que necesita un dispositivo para ejecutar una vez todas las
instrucciones se denomina tiempo de ciclo.
 La ejecución lineal del programa se utiliza normalmente para
controladores sencillos, no demasiado amplios, y se puede implementar en
un único bloque de organización (OB).
Fig 1. Programación Lineal
1.2- Programación Estructurada

 En el caso de tareas de control amplias, se subdivide el programa en


bloques de programa más pequeños, abarcables y ordenados por
funciones. Esto presenta la ventaja de permitir la comprobación de las
partes del programa de forma independiente y ejecutarlas como una
función global durante el funcionamiento.
 Los bloques de programa deben ser llamados por el bloque de orden
superior. Si se detecta un fin de bloque (BE), el programa continuará
ejecutándose en el bloque que llama, detrás de la llamada.
Fig 2. Programación Estructurada
1.3- Bloques de Usuario
Para la programación estructurada existen los siguientes bloques de usuario:
 OB (bloque de organización):
Un OB es llamado por el sistema operativo de forma cíclica y constituye la interfaz entre el programa
de usuario y el sistema operativo. En este OB, se comunica a la unidad de control del sistema de
automatización qué bloques de programa debe ejecutar a través de comandos de llamada de bloque.
 FB (bloque de función):
El FB necesita un área de memoria asignada para cada llamada (instancia). Al llamar a un FB se le
puede asignar, p. ej., un bloque de datos (DB) como bloque de datos instancia. A los datos de este DB de
instancia se accede a través de las variables del FB.
Si se llama varias veces a un FB, se le deben asignar distintas áreas de memoria.
En un bloque de función también pueden ser llamados otros FB y FC.
 FC (función):
Un FC no tiene ningún área de memoria asignada. Los datos locales de una función se pierden tras
ejecutar la función.
En una función también pueden ser llamados otros FB y FC.
 DB (bloque de datos):
Los DB se utilizan para proporcionar espacio de memoria para las variables de datos. Existen dos tipos
de bloques de datos. DB globales, en los que todos los OB, FB y FC pueden leer los datos almacenados o
incluso escribir datos en los DB; y DB de instancia, que están asignados a un FB determinado
1.3.1- Bloques de Organización
Controlan los procesos siguientes: a)Ejecución cíclica del programa,
b)Ejecución del programa controlada por alarmas y c)Tratamiento de errores
 OB de arranque, OB de ciclo, OB de error de tiempo y OB de diagnóstico:
Estos bloques de organización pueden insertarse y programarse
fácilmente en el proyecto. No es necesario parametrizar ni llamar a estos
bloques de organización.
 OB de alarma de proceso y OB de alarma cíclica:
Estos bloques de organización se deben parametrizar tras insertarlos en el
programa. Además, durante el tiempo de ejecución, los OB de alarma de
proceso se pueden asociar a un evento mediante la instrucción ATTACH y
desasociar nuevamente con DETACH.
 OB de alarma de retardo:
El OB de alarma de retardo se puede insertar y programar en el proyecto.
Además, es preciso llamarlo en el programa de usuario mediante la
instrucción SRT_DINT. No es necesario parametrizarlo.
1.3.2- Funciones
Una función contiene un programa que se ejecuta cada vez que la función es
llamada por otro bloque lógico.
Las funciones (FC) son bloques lógicos sin memoria. Los datos de las variables
temporales se pierden tras haberse procesado la función. Para guardar datos de
forma permanente, las funciones pueden utilizar bloques de datos globales.
Las funciones se pueden utilizar p. ej. para los siguientes fines:
 Devolver valores de función al bloque invocante, p. ej. en funciones
matemáticas
 Ejecutar funciones tecnológicas, p. ej. controles individuales con operaciones
lógicas binarias

Una función también se puede llamar varias veces en diferentes puntos de un


programa. Esto facilita la programación de funciones complejas que se repiten
con frecuencia.
1.3.3- Bloques de Funcion

 Los bloques de función contienen subprogramas que se ejecutan cada


vez que un bloque de función es llamado por otro bloque lógico.
 Los bloques de función son bloques lógicos que depositan sus valores de
forma permanente en bloques de datos de instancia, de modo que siguen
disponibles tras procesar el bloque.
 Los parámetros de entrada, salida y entrada/salida se depositan de forma
permanente en bloques de datos de instancia. Gracias a ello, continúan
disponibles tras el procesamiento del bloque. Por este motivo, se conocen
también como bloques con "memoria".
1.3.4- Bloques de Datos

 Al contrario que los bloques lógicos, los bloques de datos no contienen


instrucciones, sino que sirven para almacenar datos de usuario. Por tanto,
los bloques de datos contienen datos variables, con los que trabaja el
programa de usuario.
 Los bloques de datos globales almacenan datos de usuario utilizables
desde todos los demás bloques.
 El tamaño máximo de los bloques de datos varía en función de la CPU. La
estructura de bloques de datos globales puede definirse a discreción.
 Algunos ejemplos de aplicación son:
- Guardar la información en un sistema de almacenamiento. "¿Dónde está cada
producto?"
- Guardar recetas de determinados productos.
EJERCICIO (Planteamiento)
Si se deben crear bloques que funcionen prácticamente como "caja negra" en
cualquier programa, tienen que programarse utilizando variables. En estos casos,
se aplica la norma de que en estos bloques no se deben utilizar entradas/salidas,
marcadores, etc. direccionados. Dentro del bloque solo se utilizan variables y
constantes.
En el siguiente ejemplo se debe crear un bloque de función con declaración de
variables que contenga un control de cinta dependiente del modo de operación.
Para ello, puede seleccionarse el modo de operación "Manual" con el pulsador
"S1" y el modo "Automático" con el pulsador "S2".
En el modo de operación "Manual", el motor estará conectado mientras esté
accionado el pulsador "S3", mientras que el pulsador "S4" no debe estar
accionado.
En el modo de operación "Automático", con el pulsador "S3" debe poder
conectarse el motor de la cinta, y con el pulsador "S4" (contacto NC), debe poder
desconectarse.
EJERCICIO (Datos)
Lista de asignación:
Dirección Símbolo Comentario
%E 0.0 S1 Pulsador modo de operación manual S1 NO
%E 0.1 S2 Pulsador modo de operación automático S2 NO
%E 0.2 S3 Pulsador ON S3 NO
%E 0.3 S4 Pulsador OFF S4 NC
%A 0.2 M1 Motor de la cinta M1
Nota:
En este caso, el pulsador OFF S4 es un contacto NC, para garantizar la seguridad
en caso de rotura de hilo. Esto significa que el equipo se detiene
automáticamente en caso de rotura de hilo con este pulsador. De lo contrario, ya
no se podría detener en caso de rotura de hilo. Por este motivo, en la tecnología
de control deben ejecutarse todos los interruptores o pulsadores de parada o
desconexión como contactos NC.
EJERCICIO (Datos FC)

 Parámetros de bloque que forman la interfaz del bloque para la llamada


en el programa.
EJERCICIO (Datos FC)

 Datos locales que sirven para almacenar resultados intermedios.


EJERCICIO (Datos FC)
EJERCICIO (Código)

Anda mungkin juga menyukai