Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OB1
Programación
FB
estructurada
DB
1. Programación estructurada OB FB FC
″Motor″
FB
2. Bloques de organización OB ″Motor″
FC
3. Bloques de función FC DB
instancia única
FB ″Motor_2″
DB Modbus
4. Bloques de función FB multi-instancia COMM
″Motor_1″
5. Bloques de datos
6. Ejemplos
OB1
Bloque de
Organización
FB
Bloquede
Al crear el programa de usuario para las Función
FC Función
OB (bloques de organización)
Concepto de
bloques FC (función)
No tiene bloque de datos de instancia
Concepto de
bloques FB (bloque de función) tiene un bloque de
datos de instancia para almacenamiento
temporal
1. Programación estructurada
2. Bloques de organización OB OB
3. Bloques de función FC
4. Bloques de función FB
5. Bloques de datos
6. Ejemplos
1. Programación estructurada
2. Bloques de organización OB
FC
3. Bloques de función FC
4. Bloques de función FB
5. Bloques de datos
6. Ejemplos
Las funciones (FC) son bloques lógicos sin memoria. No poseen una
memoria de datos que permita almacenar valores de parámetros de bloque. Bloque deFunción
Una función contiene un programa que se ejecuta cada vez que la función
es llamada por otro bloque lógico. Las funciones se pueden utilizar, p. ej.,
para los siguientes fines:
o Funciones matemáticas, que devuelven un resultado en función
de los valores de entrada.
o Funciones tecnológicas, como controles individuales con
operaciones lógicas binarias.
DB
1. Programación estructurada
2. Bloques de organización OB
FB
3. Bloques de función FC
4. Bloques de función FB
5. Bloques de datos
6. Ejemplos
Pueden haber muchos DBs para un solo FB. (“Bloque de datos multi-
instancia”, )
Los bloques de función se ejecutan cada vez que es llamado por otro bloque
lógico. Un bloque de 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. Programación estructurada
2. Bloques de organización OB
3. Bloques de función FC
4. Bloques de función FB
5. Bloques de datos
6. Ejemplos
Así, los bloques de datos contienen datos variables con los que
trabaja el programa de usuario.
Asignación de variables:
OB 1 FB 1 DB 10
Call FB1, DB10 DB de Instancia Para poder utilizar los bloques,
Datos locales
sólo al FB1 primero deberán ser generados.
Existe la posibilidad de generar esos
FCs y FBs en forma de bloques
estándar bajo el uso de variables
BE internas.
OB = Bloque de Organización
FB = Bloque de Función Cualquier FC puede llamarse tantas
FC 2 FC = Función
DB = Bloque de Datos veces como se quiera, mientras que
UC FC2
cada llamada a un FB exige de un
DB de instancia diferente.
BE
Iniciar el simulador PLCSIM, crear nuevo proyecto y agregar las variables a simular:
Observar el programa
Asignación de variables:
Variables:
• FB1: Belt
Compilar:
Cargar:
Observar el programa
Los datos diferentes para cada motor, por ejemplo: velocidad, tiempo de arranque, tiempo de operación, son almacenados
en los diferentes bloques de instancia DB10 y DB11
Nota: Algunas instrucciones tales como timers y counters se comportan como bloques de función. Si son
llamados, ellos también representan instancias y necesitan asignación de memoria; en forma de bloque de datos de
instancia
© J. Duque - UTB 2020
Ejemplo de uso de Bloques de datos DB multi-instancia
En este ejemplo, se añade un contador de botellas al bloque de función que ya contiene el control de la cinta dependiente del modo de
operación.
Con este banda, 6 botellas se van a transportar a una caja. Cuando la caja está llena, la cinta se detiene y la caja se debe cambiar.
Con el pulsador S1 se activa el modo Manual y con el pulsador S2 el modo Automático. Cuando opera en modo Manual, el motor
opera mientras se tenga pulsado el pulsador S3 ( S4 no debe activarse). En modo automático, el motor arranca cuando se pulsa S3 y
se para cuando se pulsa S4
Asignación de variables:
Para realizar los cambios, abra ‘Belt [FB1] "el bloque con un doble click (* Belt[FB1])
En primer lugar, añadir dos líneas en la interfaz de las variables de entrada (* Interfaz * Entrada de línea * Añadir fila)
Input:
sensor_bottle Sensor bottle counter
reset_counter Reset counter/new case
Ahora podemos empezar a cambiar el programa. Se necesita un contador regresivo 'CCD'. Se encuentra en
'Instrucciones' en 'Contadores' .
Ahora, inserte primero una AND entre OR y la asignación, a continuación, arrastre la barra 'CCD' para el segundo
contacto de la función AND (* & * CTD)
Necesitamos la memoria para la función de contador. Aquí, el bloque de función pone a disposición en el bloque de datos
de instancia como "Multi-Instancia, sin generar una nueva instancia del bloque de datos (* Multi-Instancia * OK)
Ahora, conecte el contador descendente 'CTD' con el valor especificado 6 para las 6 botellas y conectar la entrada
de 'CD‘ a '# sensor_bottle', y la entrada de 'carga' a '# reset_counter’. A continuación, negar el segundo
contacto de la función AND.
Ahora, se abre el bloque de 'Main [OB1] "para actualizar la llamada de 'Belt [FB1]’ en
el bloque (* Main [OB1])
Salve el proyecto
Simule el modo manual: la salida Q0.0 se activa sólo mientras se pulsa S3_start, al soltar se apaga
Simule el modo automático: la salida Q0.0 queda retenida al pulsar S3_start y se apaga al pulsar stop