SlideShare una empresa de Scribd logo
Unidad I: Medición de temperatura
TIA Portal
Bloques
Ing. Armando Sarco Montiel
Armando Sarco Montiel
Profesional en Ingeniería Electrónica, especialista en
Instrumentación, Automatización y Control Industrial por
Tecsup, También concluyó la maestría en Ingeniería de Control
y Automatización, por la Pontificia Universidad Católica del
Perú; Realizó cursos en la Universidad de Esslingen of Applied
Sciences de Alemania, en Automatización Industrial por parte
de SIEMENS, concluyó con éxito el FabAcademy dictado por
Neil Gershenfeld director del Centro de Bits y Átomos del MIT,
en fabricación digital. Tiene amplia experiencia profesional en
el área de ingeniería para el desarrollo de proyectos en
automatización industrial, automatización de edificios,
refrigeracion industrial, sistemas contra incendios y seguridad
electrónica; Trabajó en importantes proyectos de
automatización en empresas como Backus, Volcan, Pesquera
Diamante, Hotel Marriott, Hotel Sheraton, Hipermercados
Tottus, Cencosud, supermercados peruanos, entre otras.
Actualmente trabaja para el departamento de Electricidad y
Electrónica en Tecsup-Lima.
Correo electrónico: asarco@pucp.pe
Docente
Queda prohibida, sin la autorización de Armando
Sarco Montiel, la reproducción total o parcial de este
material por cualquier medio o procedimiento, y el
tratamiento informático, bajo sanciones establecidas
en la ley.
Bloques de programa Unidad 4
La automatización industrial es un área muy extensa
que comprende, la parte de instrumentación, control
y supervisión industrial, en este módulo veremos de
La programación de los PLC’s de Siemens y la
plataforma TIA Portal
Introducción
Bloques de programa Unidad 4
Identificar los diferentes tipos de bloques de
programa, realizar la selección correcta y hacer
aplicaciones.
Objetivos
Bloques de programa Unidad 4
1. Bloques del sistema
2. Tipos de bloques
2.1. Bloques de Organización
2.2. Funciones FC
2.3. Bloque de Funciones FB
2.4 Bloque de datos DB
3. Conversión de datos
4. Aplicaciones con OB, FC, FB y DB
Temario
Bloques de programa Unidad 4
1. Bloques del sistema
Es posible tener varias alarmas de proceso y de tiempo
Bloques de programa Unidad 4
2. Tipos de bloques
Bloques de programa Unidad 4
Bloques El sistema de automatización proporciona distintos tipos de bloques donde se guardarán tanto el programa como los datos
correspondientes. Dependiendo de la exigencia del proceso el programa estará estructurado en diferentes bloques.
OBs Los bloques de organización constituyen la interfaz entre el sistema operativo y el programa de usuario. El programa completo
puede distribuirse bien en OBs llamados cada ciclo del sistema operativo (programación lineal) o bien en varios bloques (programa
estructurado).
FC Una función (FC) contiene una funcionalidad parcial del programa. Es posible programar funciones parametrizables de forma que
cuando se llame a esa función se puedan pasar sus parámetros. Este tipo de funciones son adecuadas para la programación de
funciones complejas que se repitan con frecuencia, como por ejemplo cálculos.
FB Los bloques de función proporcionan desde el punto de vista de la programación las mismas posibilidades que las funciones. Un
FB ofrece la posibilidad de transferir parámetros en el programa de usuario. Por ello, los bloques de función son adecuados para
programar funciones complejas que se repiten con frecuencia, como regulaciones o la selección del modo de operación. Puesto que
un FB tiene memoria (bloque de datos instancia), es posible acceder a sus parámetros en todo momento y en cualquier punto del
programa de usuario.
Bloques de datos Los bloques de datos (DB) son áreas de datos del programa estructurado en el que se gestiona los datos de
usuario.
Operaciones permitidas
En la totalidad de los bloques (FB, FC y OB) se disponen las mismas operaciones de programación.
2. Tipos de bloques
Bloques de programa Unidad 4
2.1 Bloques de organización OB’s
Los bloques de organización (OB) constituyen la interfaz entre el
sistema operativo del controlador (CPU) y el programa de
usuario. Estos bloques son llamados por el sistema operativo y
controlan los procesos siguientes:
● Ejecución cíclica (p. ej., OB1)
● Comportamiento en arranque del controlador
● Ejecución del programa controlada por alarmas
● Tratamiento de errores
En un proyecto debe existir por lo menos un bloque de
organización para la ejecución cíclica del programa. Para llamar
un OB se necesita un evento de arranque, como se muestra en
la Figura 1. Los distintos OB tienen prioridades definidas, p. ej.,
para que un OB82 pueda interrumpir el OB1 cíclico con fines de
tratamiento de errores.
Funciones:
● Interfaz entre el sistema operativo y el programa de usuario
● Los OBs son programables por el usuario, de este modo el
comportamiento de la CPU es preciso y determinado
● Los bloques de organización pueden ser llamados por el
sistema operativo para los siguientes eventos:
○ Arranque
○ Procesamiento cíclico
○ Procesamiento por alarmas
○ Manejo de errores
Bloques de programa Unidad 4
OBs de arranque: serán procesados una vez cuando se cambia el modo de funcionamiento de la CPU de STOP a RUN. Después de
ejecutar el OB de arranque se ejecuta el OB cíclico.
OBs cíclicos: son ejecutados de forma cíclica. Son los bloques de código de dónde parte el programa, desde ellos se puede llamar a
otros módulos.
OBs de alarma de retardo: interrumpen el programa cíclico durante un tiempo definido. El tiempo de retardo se especifica en los
parámetros de entrada de la instrucción SRT_DINT.
OBs de alarma cíclica: interrumpen el programa cíclico a intervalos de tiempo definidos. Este intervalo se puede establecer en este
cuadro de diálogo o en las propiedades de la OB.
OBs de alarma de proceso: interrumpen el programa cíclico debido a un evento de hardware. El evento se define en las propiedades de
hardware.
OBs de error de tiempo: interrumpen el programa cíclico cuando se excede el máximo tiempo de ciclo. Este tiempo de ciclo máximo se
define en las propiedades de la CPU.
OBs de alarma de diagnóstico: interrumpe el programa cíclico cuando un módulo, para el que se ha habilitado el diagnóstico, detecta
una alarma de diagnóstico.
2.2.1 Tipos de bloques de organización OB’s
Bloques de programa Unidad 4
2.1.2 Eventos que arrancan un OB
Eventos
El sistema operativo de las CPUs S7-1200 se basa en eventos. Hay que distinguir entre dos tipos de eventos:
● Eventos que pueden iniciar un OB
● Eventos que no pueden iniciar ningún OB
Un evento que puede iniciar un OB provoca la reacción siguiente tras su aparición:
● Si se ha asignado un OB al evento, se llama dicho OB. Si por el momento no es posible llamar el OB, el evento se
incorpora a una cola de espera de acuerdo con su prioridad.
● Si no se ha asignado ningún OB al evento, se ejecuta la reacción del sistema predeterminada.
Un evento que no puede iniciar ningún OB provoca la reacción del sistema predeterminada para la clase de evento
correspondiente tras su aparición.
Por consiguiente, la ejecución del programa de usuario se basa en eventos, en la asignación de OBs a los eventos y en el
código que está dentro de los OBs o que se llama desde allí.
La tabla siguiente ofrece una vista general de los eventos que pueden iniciar un OB, junto con las clases de eventos y OBs
correspondientes. Está ordenada por la prioridad de los OBs. La prioridad 1 es la más baja.
Bloques de programa Unidad 4
2.1.2 Eventos que arrancan un OB
Clase de evento N° OB Cantidad Evento de Arranque Prioridad
de OB
Grupo de
prioridad
Programa cíclico 1, >=200 >= 1 Fin de arranque o fin del último OB de ciclo 1
1
Arranque 100, >= 200 >= 0 Transición STOP-RUN 1
Alarma de retardo >= 200 máx. 4 Tiempo de retardo finalizado 3
2
Alarma cíclica >= 200 máx. 4 Intervalo de tiempo equidistante finalizado 4
Alarma de proceso >= 200 máx. 50
● Flanco ascendente (máx. 16)
● Flanco descendente (máx. 16)
5
HSC: valor de contaje=valor de referencia (máx. 6)- HSC:
sentido de contaje modificado (máx. 6) - HSC: reset externo
(máx. 6)
6
Alarma de diagnóstico 82 0/1 El módulo ha detectado un error 9
Error de tiempo 80 0/1
● Tiempo de ciclo máximo rebasado por exceso
● Cola de espera desbordada
● Pérdida de alarma por sobrecarga de alarmas
26 3
Bloques de programa Unidad 4
2.1.3 Interrupción del programa cíclico
Bloques de programa Unidad 4
2.1.4 Imagen de proceso
Introducción: La CPU se ha reservado las
áreas de memoria para almacenar todas las
señales: El proceso de imagen de las entradas
(PAE) y la imagen de proceso de las salidas
(PAA). Durante la ejecución del ciclo, la CPU
tiene acceso a esta áreas de memoria, o
directamente en el módulos de entrada y de
salida.
PAE: La imagen de proceso de entradas es el
área de memoria dedicada para almacenar los
estados de todos los componentes. El sistema
operativo lee al comienzo de ciclo los estados
de los módulos y los escribe en la imagen de
proceso de entradas.
PAA: La imagen de proceso de salidas es el
área de memoria en la que los resultados de
las operaciones se almacenan en el programa.
La imagen se imprime al final del ciclo de los
módulos de salida.
Bloques de programa Unidad 4
Una función es un bloque se usuario que retorna solamente un dato de un tipo en específico cuando es
llamado o ejecutado.
Las funciones al contrario que los bloques de función no guardan el estado de las variables internas, por lo
cual, al llamar una función siempre con los mismos argumentos de entrada va a regresar exactamente el
mismo valor. Por esta razón las funciones no deben contener variables globales ni de direccionamiento.
● Bloques lógico sin memoria.
● Se utilizan para programar funciones complejas que se repiten con frecuencia.
● Los datos de las variables temporales se pierden tras haberse procesado la función.
● Para almacenar los datos de forma permanente, las funciones disponen de bloques de datos globales.
Aplicaciones
Las funciones se pueden usar para retornar un valor al bloque
donde fue llamado (funciones matemáticas); o ejecutar una
función técnica ( control simple de operaciones de un bit).
2.2 Funciones FC
Bloques de programa Unidad 4
Desarrolle una función para hallar la hipotenusa de un triángulo rectángulo.
2.2.1 Aplicaciones con funciones
Nombre Símbolos
Lado del cateto a L1
Lado del cateo b L2
Hipotenusa H
Bloques de programa Unidad 4
Crear el proyecto y agregar la función
2.2.1 Aplicaciones con funciones
Bloques de programa Unidad 4
Declarar las variables locales a utilizar "#”, para definir la interfaz
2.2.1 Aplicaciones con funciones
Procedimiento: Definir después de
agregar el bloque de función, la
interfaz del módulo. Se pide tener las
siguientes consideraciones:
Input: Información necesaria para
resolver la tarea en cada estación:
Output: Qué debe ser devuelto como
resultado de las operaciones internas:
(encendido, apagado o parpadeando).
InOut: También necesitará cierta
información que reciba el bloque y tras
procesarla devuelva:
Temp: Si es necesario, incluso la
memoria puede tener una duración de
un ciclo.
Bloques de programa Unidad 4
Implementar el programa en el FC “Hipotenusa”
2.2.1 Aplicaciones con funciones
Bloques de programa Unidad 4
Recuerda que solo los OB’s ejecutan programa, por lo que tenemos que llamar a nuestro FC “Hipotenusa” al OB1
2.2.1 Aplicaciones con funciones
Bloques de programa Unidad 4
Los bloques de función son bloques lógicos que depositan sus valores de forma permanente en
bloques de datos 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 instancia. Gracias a ello, continúan disponibles tras el procesamiento del bloque. También
puede llamar a un FB en repetidas ocasiones. Cada llamada puede tener su propia instancia o
puede tener varias instancias de una multiinstancia juntas.
● Bloques de código cuyos valores permanentes son almacenados en DBs de instancia, de
manera que tras el procesamiento éstos todavía están disponibles.
● Todos los parámetros de importación, exportación y tránsito son almacenados en DBs de
instancia; el DB de instancia es la “memoria“ de los FBs.
2.3 Bloque de función FB
Aplicaciones
Los bloques de función al guardar sus datos
después de cada ejecución son bastante usados
para ejecutar funciones complejas, o de ejecución
constante. como las resetas
Bloques de programa Unidad 4
2.3 Bloque de Función FB
Definición: La llamada de un bloque de
función se denomina instancia. A cada llamada
de un bloque de función que transfiere
parámetros se asigna un bloque de datos
instancia que sirve de memoria de datos. En
ella se depositan los parámetros actuales y los
datos estáticos del bloque de función.
El tamaño máximo de los bloques de datos
instancia varía en función de la CPU. Las
variables declaradas en el bloque de función
determinan la estructura del bloque de datos
instancia.
Ejemplo: La imagen del costado muestra la
interfaz de un FB con parámetros de entrada,
salida y tránsito. Además, la interfaz también
contiene variables estáticas y temporales. El
DB instancia se genera automáticamente de
acuerdo a las especificaciones de la interfaz en
el FB y éstas no se puede cambiar con el
editor.En el ejemplo sólo los parámetros y
variables estáticas se almacenan. Las variables
temporales se almacenan durante el tiempo de
ejecución en la pila de datos locales.
Bloques de programa Unidad 4
2.3.1 Agregar bloque
Para crear un bloque (OB, FB, FC ó DB ), proceda
del siguiente modo:
● Haga doble clic en el comando "Agregar nuevo
bloque".
● Se abre el diálogo "Agregar nuevo bloque".
● Haga clic en el botón:
○ "Bloque de organización (OB)“,
○ "Bloque de función (FB)",
○ "Función (FC)“ ó
○ "Bloque de datos (DB)“.
● Introduzca un nombre para el bloque.
● En la lista desplegable "Lenguaje", seleccione
el lenguaje de programación del nuevo bloque.
● Active el botón de opción "manual" si desea
asignar manualmente el número del bloque.
● Si opta por la asignación manual, introduzca el
número de bloque en el campo de entrada.
Bloques de programa Unidad 4
2.4 Bloque de datos DB
Descripción general: Los bloques de datos se utilizan para
guardar datos de usuario. Los bloques de datos ocupan espacio
en la memoria de usuario de la CPU. los bloques de datos
contienen datos variables (por ejemplo, los valores numéricos),
con los que trabaja el programa de usuario.
El programa de usuario puede tener acceso a los datos de un
bloque de datos a través de las operaciones de bit, byte,
palabra o doble palabra. El acceso puede ser de forma
simbólica o absoluta.
Ámbito: Los bloques de datos, en función de su contenido,
pueden ser utilizados de diferentes formas por el usuario. Se
distinguen:
● Bloques de datos globales: Contienen información a la
que pueden acceder todos los bloques del programa de
usuario.
● Bloques de datos de instancia: Siempre están
asociados a un FB. Los datos de estos DBs deberán ser
manejados solamente por el FB correspondiente. Los
bloques de datos de instancia son tratados en detalle en
el capítulo "Funciones y Bloques de Función”.
Crear DBs: Los DBs globales se crean ya sea en el editor del
programa o con una plantillas de datos UDT “tipo de datos
definido por el usuario" previamente definida.
Los bloques de datos de instancia se crean cuando se llama a
un bloque de función.
Bloques de programa Unidad 4
2.4.1 Tipos de datos
Bloques de programa Unidad 4
2.4.2 Tipos de datos simples
Estos son todos los tipos de datos que proporciona el lenguaje de programación de forma automática.
Bloques de programa Unidad 4
2.4.3 Tipos de datos compuestos: DTL, STRING
Tipos de datos compuestos: Los tipos de datos
compuestos definen grupos de datos que se
componen de otros tipos de datos. Las constantes no
se pueden utilizar como parámetros actuales para los
tipos de datos compuestos. Las direcciones
absolutas tampoco se pueden transferir como
parámetros actuales a los tipos de datos
compuestos.
Estos son los tipos de datos compuestos que existen:
DTL: Una variable del tipo de datos DTL tiene una
longitud de 12 bytes y almacena las indicaciones de
fecha y hora en una estructura predefinida.
STRING: Una variable del tipo de datos STRING
almacena varios caracteres en una cadena que
puede comprender 254 caracteres como máximo. La
longitud máxima de la cadena de caracteres de cada
variable puede especificarse entre corchetes tras la
palabra clave STRING (p. ej. STRING[4]). Si se omite
la indicación de la longitud máxima, se ajustará la
longitud estándar de 254 caracteres para la variable
en cuestión.
Una variable del tipo de datos STRING ocupa en la
memoria dos bytes más que la(s) longitud(es)
máxima(s) indicada(s).
Bloques de programa Unidad 4
2.4.3 Tipos de datos compuestos: DTL, STRING
ARRAY: El tipo de datos ARRAY representa un campo compuesto por un número fijo de componentes del mismo tipo de datos. Una
variable ARRAY puede reunir componentes de todos los tipos de datos simples. Los rangos de los componentes del campo se especifican
entre corchetes tras la palabra clave ARRAY. El valor límite inferior debe ser menor o igual al valor límite superior de un rango. Un campo
puede contener una dimensión.
STRUCT: Una variable del tipo de datos STRUCT almacena valores en una estructura compuesta por un número fijo de componentes. Los
distintos componentes de la estructura pueden tener diferentes tipos de datos. En una variable STRUCT no es posible anidar estructuras.
Una variable STRUCT comienza siempre en un byte con dirección par y ocupa la memoria hasta el siguiente límite de palabra.
Bloques de programa Unidad 4
Se puede insertar un nuevo bloque de datos
tal y como se muestra en la imagen.
La creación de un nuevo bloque de datos se
puede hacer desde la vista del portal o
desde la vista del proyecto.
DB - Global: Los bloques de datos globales se
utilizan para almacenar datos globales, es decir,
para el almacenamiento de datos en general
para los que todos los bloques del programa
(OB, FC, FB) tienen acceso.
Los bloques de datos globales los debe editar el
propio usuario, en donde cree las variables
necesarias para almacenar los datos.
DB - Instancia: Los bloques de datos de
instancia sirven como "área de almacenamiento
privado" o una “memoria” para un bloque de
función (FB). En DB de instancia se almacenan
los parámetros y variables estáticas del FB.
Los bloques de datos de instancia no son
editados por el usuario sino que los genera el
propio editor (véase el capítulo "Funciones y
Bloques de Función”).
2.4.4 Creación de bloques de datos
Bloques de programa Unidad 4
Remanencia: Para impedir pérdidas de datos en caso de un corte de alimentación, algunos datos pueden marcarse como
remanentes. Entonces se guardarán en un área de memoria remanente. Un área de memoria remanente es un área cuyo contenido
se conserva en caso de rearranque (en caliente), es decir, después de desconectar la tensión de alimentación y volverla a conectar
en una transición de STOP a RUN.
2.4.5 Bloques de datos: Valor inicial, valor actual
Bloques de programa Unidad 4
Para acceder a los elementos individuales de los DBs se hace con “Nombre_DB.Nombre_elemento”
Ejemplo de acceso a un elemento del DB
Al elemento “Activar_estacion" en el DB “Datos“, se tiene acceso de la forma siguiente:
“Datos. Activar_estacion”
Nombre local de la variable en el DB.
Nombre global del bloque de datos
2.4.6 Acceso a los datos del DB
Bloques de programa Unidad 4
Tarea: Debe crearse un bloque de datos "DB_OP (DB99) con las variables que aparecen en la imagen que más tarde servirá como
interfaz para el panel del operador.
Aplicación:
1. Inserte un nuevo bloques de datos “DB_OP” (DB99) como DB global.
2. Declare las variables mostradas en la diapositiva. En particular la variable TON "" de tipo "IEC_Timer", se utilizará más adelante
para almacenar los datos de instancia del temporizador IEC.
3. Ponga el valor inicial 3 a la variable Num_Debe.
4. Guarde el proyecto.
2.4.7 Aplicación con DB
Bloques de programa Unidad 4
En STEP 7 (TIA Portal), puede usar las funciones de conversión de la paleta "Instrucciones" para convertir los contenidos de las
variables a los tipos de datos seleccionados para S7-1200 / S7-1500.
3. Conversión de datos en TIA PORTAL
Conversión de los tipos de datos números INT, DINT, REAL y
BCD
STEP 7 (TIA Portal) proporciona la operación "CONV" (convertir)
para convertir los tipos de datos INT, DINT, REAL y BCD.
Después de parametrizar las entradas y salidas, puede convertir
los valores numéricos a continuación, por ejemplo.
● De Int a Int, DInt, Real, Bcd16, USint, UInt, UDint, SInt,
LReal y Char
● De DInt a Int, DInt, Real, Bcd32, USint, UInt, UDint, SInt,
LReal y Char
● De Real a Int, DInt, Real, USint, UInt, UDint, SInt y LReal
● De USint a Int, DInt, Real, USint, UInt, UDint, SInt, LReal
y Char
● De UInt a Int, DInt, Real, USint, UInt, UDint, SInt, LReal y
Char
● De UDint a Int, DInt, Real, USint, UInt, UDint, SInt, LReal
y Char
● De SInt a Int, DInt, Real, USint, UInt, UDint, SInt, LReal y
Char
● De LReal a Int, DInt, Real, USint, UInt, UDint, SInt y
LReal
● De Char a Int, DInt, USint, UInt, UDint, SInt y Char
● Desde BCD16 (16 bits) a Int,
● De BCD32 (32 bits) a DInt.
Bloques de programa Unidad 4
3. Conversión de datos en TIA PORTAL
Un valor numérico en el formato BCD debe convertirse primero en el tipo de datos Int o DInt antes de poder convertirlo en el tipo de
datos REAL, por ejemplo.
Si realiza una conversión de tipo de datos de Byte a SInt o de Byte a USInt, con la instrucción CONVERT debe configurar
manualmente el tipo de datos SInt o USInt en la entrada y salida.
Bloques de programa Unidad 4
3. Conversión de datos en TIA PORTAL
Conversión de tipos de datos STRING
La tabla siguiente contiene instrucciones para convertir el tipo de datos String. El procedimiento para programar esto es idéntico al
descrito en las instrucciones.
Instrucciones avanzadas Descripción
S_CONV Convertir cadena de caracteres
STRG_VAL Convertir cadena de caracteres en valor numérico
VAL_STRG Conversión de valor numérico en cadena de caracteres
Strg_TO_Char Convertir cadena de caracteres en matriz de CHAR
Char_TO_Strg Convertir matriz de caracteres CHAR a caracteres
ATH Convierte una cadena de caracteres ASCII a un número hexadecimal
HTA Convierte el número hexadecimal en una cadena de caracteres ASCII
Bloques de programa Unidad 4
3. Conversión de datos en TIA PORTAL
Conversión al formato de datos TIME
Utilizando la instrucción avanzada "T_CONV", convierte un valor numérico del tipo de datos INT en una marca de tiempo (TIME) y
viceversa. Debe convertir todos los demás tipos de datos (INT, REAL, BCD, ...) en el tipo de datos DINT antes de poder convertirlos
en el tipo de datos TIME. La instrucción "T_CONV" se encuentra en el editor de bloques en la paleta "Avanzado" en la carpeta
"Instrucciones avanzadas> Fecha y hora".
Bloques de programa Unidad 4
4 Aplicaciones con OB, FC, FB y DB
Ejercicio 1:
Desarrolle un bloque de función que sea capaz de calcular un tiempo estimado de mezclado para una
tolva que tiene entrada de 3 diferentes materiales. La entrada de los materiales es en Kg. La función
que representa ese cálculo es: Tiempo[seg]= mat1*0.5+mat2*2+mat3*0.75
El bloque debe tener como salidas el tiempo en formato TIME para ingresar a un temporizador y el
tiempo en segundos para su visualización.
Material 1
Material 2
Material 3
Bloques de programa Unidad 4
4 Aplicaciones con OB, FC, FB y DB
Ejercicio 1:
FORMATO DEL TIPO DE DATOS S5TIME (INTERVALO)
Si se introduce el intervalo con el tipo de datos S5TIME, sus entradas se guardarán en
formato BCD. La figura siguiente muestra el contenido del operando de tiempo, donde el valor
de tiempo es 127 y la base de tiempo es 1 s.
Con la siguiente sintaxis se puede cargar un valor de tiempo predefinido:
W#16#AXYZ
A = base de tiempo (es decir, intarvalo de tiempo o resoluci6n)
XYZ = valor de tiempo en formate BCD
Base de tiempo Base de tiempo en código binario
10 ms 00
100 ms 01
1 s 10
10 s 11
Bloques de programa Unidad 4
4 Aplicaciones con OB, FC, FB y DB
Ejercicio 1:
Bloques de programa Unidad 4
4 Aplicaciones con OB, FC, FB y DB
Ejercicio 1:
Bloques de programa Unidad 4
Referencias bibliográficas
● SITRAIN ST-MICRO1
● Hans Berger (2013). Automating with SIMATIC S7-1200, 2nd Edition
● SCE_ES_031-200 FB-Programming S7-1200_R1504
● https://support.industry.siemens.com/

Más contenido relacionado

Similar a TIA portal Bloques PLC Siemens______.pdf

Administración de Procesos
Administración de ProcesosAdministración de Procesos
Administración de Procesos
Israel Pilla
 
Programación estructurada plc_siemens_by_pgf
Programación estructurada plc_siemens_by_pgfProgramación estructurada plc_siemens_by_pgf
Programación estructurada plc_siemens_by_pgf
Paul Gálvez
 
lógica programable
lógica programablelógica programable
lógica programable
Arturo Iglesias Castro
 
PROGRAMACION DE MICROCONTROLADOR
PROGRAMACION DE MICROCONTROLADORPROGRAMACION DE MICROCONTROLADOR
PROGRAMACION DE MICROCONTROLADOR
Jorge Paredes Toledo
 
Presentación p.l.c.
Presentación p.l.c.Presentación p.l.c.
Presentación p.l.c.
Delington Marquez Mendez
 
Unidad 1 arquitectura
Unidad 1 arquitecturaUnidad 1 arquitectura
Unidad 1 arquitectura
Cynthia Ramirez
 
INFORME_CONCEPTO_PROCESO
INFORME_CONCEPTO_PROCESOINFORME_CONCEPTO_PROCESO
INFORME_CONCEPTO_PROCESO
Nelson Maldonado
 
Introducción Controlador Lógico Programable master
Introducción Controlador Lógico Programable masterIntroducción Controlador Lógico Programable master
Introducción Controlador Lógico Programable master
Alex Fernandez Chavez
 
Descripción de Módulos Funcionales del PLC (2).
Descripción de Módulos Funcionales del PLC (2).Descripción de Módulos Funcionales del PLC (2).
Descripción de Módulos Funcionales del PLC (2).
acpicegudomonagas
 
Automata
AutomataAutomata
Automata
Jorge Lopez
 
Ici unidad 05 tema 03_plc (1)
Ici unidad 05 tema 03_plc (1)Ici unidad 05 tema 03_plc (1)
Ici unidad 05 tema 03_plc (1)
sgeplc
 
Tema 8 programacion de pl cs lenguaje bloques funcionales
Tema 8 programacion de pl cs lenguaje bloques funcionalesTema 8 programacion de pl cs lenguaje bloques funcionales
Tema 8 programacion de pl cs lenguaje bloques funcionales
PLC AREA DE GRADO
 
Los plc
Los plcLos plc
administracion de entrada, salida y procesos
administracion de entrada, salida y procesosadministracion de entrada, salida y procesos
administracion de entrada, salida y procesos
Samir Barrios
 
B-Step7 Generalidades y conceptos basicos.pdf
B-Step7 Generalidades y conceptos basicos.pdfB-Step7 Generalidades y conceptos basicos.pdf
B-Step7 Generalidades y conceptos basicos.pdf
sap5576
 
102108144 plc-1-v2
102108144 plc-1-v2102108144 plc-1-v2
102108144 plc-1-v2
electroing
 
Funcionamiento plc
Funcionamiento plcFuncionamiento plc
Funcionamiento plc
Juan navarrete
 
Procesos
ProcesosProcesos
Gestion de nucleo
Gestion de nucleoGestion de nucleo
Gestion de nucleo
Lewuin Ocanto
 
Trabajo Martha Velasco Sistema Operativo
Trabajo Martha Velasco Sistema OperativoTrabajo Martha Velasco Sistema Operativo
Trabajo Martha Velasco Sistema Operativo
MACECIVE
 

Similar a TIA portal Bloques PLC Siemens______.pdf (20)

Administración de Procesos
Administración de ProcesosAdministración de Procesos
Administración de Procesos
 
Programación estructurada plc_siemens_by_pgf
Programación estructurada plc_siemens_by_pgfProgramación estructurada plc_siemens_by_pgf
Programación estructurada plc_siemens_by_pgf
 
lógica programable
lógica programablelógica programable
lógica programable
 
PROGRAMACION DE MICROCONTROLADOR
PROGRAMACION DE MICROCONTROLADORPROGRAMACION DE MICROCONTROLADOR
PROGRAMACION DE MICROCONTROLADOR
 
Presentación p.l.c.
Presentación p.l.c.Presentación p.l.c.
Presentación p.l.c.
 
Unidad 1 arquitectura
Unidad 1 arquitecturaUnidad 1 arquitectura
Unidad 1 arquitectura
 
INFORME_CONCEPTO_PROCESO
INFORME_CONCEPTO_PROCESOINFORME_CONCEPTO_PROCESO
INFORME_CONCEPTO_PROCESO
 
Introducción Controlador Lógico Programable master
Introducción Controlador Lógico Programable masterIntroducción Controlador Lógico Programable master
Introducción Controlador Lógico Programable master
 
Descripción de Módulos Funcionales del PLC (2).
Descripción de Módulos Funcionales del PLC (2).Descripción de Módulos Funcionales del PLC (2).
Descripción de Módulos Funcionales del PLC (2).
 
Automata
AutomataAutomata
Automata
 
Ici unidad 05 tema 03_plc (1)
Ici unidad 05 tema 03_plc (1)Ici unidad 05 tema 03_plc (1)
Ici unidad 05 tema 03_plc (1)
 
Tema 8 programacion de pl cs lenguaje bloques funcionales
Tema 8 programacion de pl cs lenguaje bloques funcionalesTema 8 programacion de pl cs lenguaje bloques funcionales
Tema 8 programacion de pl cs lenguaje bloques funcionales
 
Los plc
Los plcLos plc
Los plc
 
administracion de entrada, salida y procesos
administracion de entrada, salida y procesosadministracion de entrada, salida y procesos
administracion de entrada, salida y procesos
 
B-Step7 Generalidades y conceptos basicos.pdf
B-Step7 Generalidades y conceptos basicos.pdfB-Step7 Generalidades y conceptos basicos.pdf
B-Step7 Generalidades y conceptos basicos.pdf
 
102108144 plc-1-v2
102108144 plc-1-v2102108144 plc-1-v2
102108144 plc-1-v2
 
Funcionamiento plc
Funcionamiento plcFuncionamiento plc
Funcionamiento plc
 
Procesos
ProcesosProcesos
Procesos
 
Gestion de nucleo
Gestion de nucleoGestion de nucleo
Gestion de nucleo
 
Trabajo Martha Velasco Sistema Operativo
Trabajo Martha Velasco Sistema OperativoTrabajo Martha Velasco Sistema Operativo
Trabajo Martha Velasco Sistema Operativo
 

Último

Reanimacion cardiopulmonar neonatal 2024
Reanimacion cardiopulmonar neonatal 2024Reanimacion cardiopulmonar neonatal 2024
Reanimacion cardiopulmonar neonatal 2024
JOAQUIN LOPEZ RISCO
 
DISEÑO DE INSTALACIONES PARA PORCINOS, CUYES Y CONEJOS; MÉTODOS DE IDENTIFICA...
DISEÑO DE INSTALACIONES PARA PORCINOS, CUYES Y CONEJOS; MÉTODOS DE IDENTIFICA...DISEÑO DE INSTALACIONES PARA PORCINOS, CUYES Y CONEJOS; MÉTODOS DE IDENTIFICA...
DISEÑO DE INSTALACIONES PARA PORCINOS, CUYES Y CONEJOS; MÉTODOS DE IDENTIFICA...
AlissonSalao
 
Retroalimentación - Aspectos operativos - 25-06.pptx
Retroalimentación - Aspectos operativos - 25-06.pptxRetroalimentación - Aspectos operativos - 25-06.pptx
Retroalimentación - Aspectos operativos - 25-06.pptx
EdSpinoza1
 
S1 Diseño e Ingeniería Primaria de Subestaciones.pptx
S1 Diseño e Ingeniería Primaria de Subestaciones.pptxS1 Diseño e Ingeniería Primaria de Subestaciones.pptx
S1 Diseño e Ingeniería Primaria de Subestaciones.pptx
JoseAntonioSalazarHi1
 
Los cinco niveles de competencia dentro de un Estándar de Competencia Laboral...
Los cinco niveles de competencia dentro de un Estándar de Competencia Laboral...Los cinco niveles de competencia dentro de un Estándar de Competencia Laboral...
Los cinco niveles de competencia dentro de un Estándar de Competencia Laboral...
Jose Manuel de la Cruz Castro
 
CURSO GAS NATURAL 2024.ppt 2000000000000
CURSO GAS NATURAL 2024.ppt 2000000000000CURSO GAS NATURAL 2024.ppt 2000000000000
CURSO GAS NATURAL 2024.ppt 2000000000000
Javier96666
 
PPT SISTEMA INTEGRADO UTP-MAS-CLASS.pptx
PPT SISTEMA INTEGRADO UTP-MAS-CLASS.pptxPPT SISTEMA INTEGRADO UTP-MAS-CLASS.pptx
PPT SISTEMA INTEGRADO UTP-MAS-CLASS.pptx
DarlingAntn
 
Aplicacion-Del-Principio-de-Pascal-puente-Hidraulico.pptx
Aplicacion-Del-Principio-de-Pascal-puente-Hidraulico.pptxAplicacion-Del-Principio-de-Pascal-puente-Hidraulico.pptx
Aplicacion-Del-Principio-de-Pascal-puente-Hidraulico.pptx
dc77nwws7n
 
MATRIZ DE PARTES INTERESADAS-KMC CALIDAD.docx
MATRIZ DE PARTES INTERESADAS-KMC CALIDAD.docxMATRIZ DE PARTES INTERESADAS-KMC CALIDAD.docx
MATRIZ DE PARTES INTERESADAS-KMC CALIDAD.docx
alexander34816
 
recipientes sometidos a presión, pared gruesa y pared delgada
recipientes sometidos a presión, pared gruesa y pared delgadarecipientes sometidos a presión, pared gruesa y pared delgada
recipientes sometidos a presión, pared gruesa y pared delgada
cesamav
 
Casa Doble en la Weissenhofsiedlung.pdf
Casa Doble en la    Weissenhofsiedlung.pdfCasa Doble en la    Weissenhofsiedlung.pdf
Casa Doble en la Weissenhofsiedlung.pdf
yajuarezj
 
Nomenclatura Organica Hibridacion del Carbono ALCANOS (1).pdf
Nomenclatura Organica Hibridacion del Carbono ALCANOS (1).pdfNomenclatura Organica Hibridacion del Carbono ALCANOS (1).pdf
Nomenclatura Organica Hibridacion del Carbono ALCANOS (1).pdf
elcuybueno
 
EJEMPLO DIAPOSITIVAS ANALISIS DE PROBLEMAS QUE ENFRENTAN LAS ORGANIZACIONES E...
EJEMPLO DIAPOSITIVAS ANALISIS DE PROBLEMAS QUE ENFRENTAN LAS ORGANIZACIONES E...EJEMPLO DIAPOSITIVAS ANALISIS DE PROBLEMAS QUE ENFRENTAN LAS ORGANIZACIONES E...
EJEMPLO DIAPOSITIVAS ANALISIS DE PROBLEMAS QUE ENFRENTAN LAS ORGANIZACIONES E...
GABRIELISAACCHIRITOC
 
ingbio.pdf Pre san Marcos, Ranking 2024-I
ingbio.pdf Pre san Marcos, Ranking 2024-Iingbio.pdf Pre san Marcos, Ranking 2024-I
ingbio.pdf Pre san Marcos, Ranking 2024-I
FabricioHurtadoGutie
 
MECANICA DE LOS FLUIDOS 5 TRASLACION Y ROTACION DE MASAS LIQUIDAS. Ing. Aleja...
MECANICA DE LOS FLUIDOS 5 TRASLACION Y ROTACION DE MASAS LIQUIDAS. Ing. Aleja...MECANICA DE LOS FLUIDOS 5 TRASLACION Y ROTACION DE MASAS LIQUIDAS. Ing. Aleja...
MECANICA DE LOS FLUIDOS 5 TRASLACION Y ROTACION DE MASAS LIQUIDAS. Ing. Aleja...
JuanFranciscoConesa
 
plagas y enfermedades del cafe en la convencion.ppt
plagas y enfermedades del cafe en la convencion.pptplagas y enfermedades del cafe en la convencion.ppt
plagas y enfermedades del cafe en la convencion.ppt
adan yomar fenandez toro
 
CBR en laboratorio Mecanica de suelos, cbr
CBR en laboratorio Mecanica de suelos, cbrCBR en laboratorio Mecanica de suelos, cbr
CBR en laboratorio Mecanica de suelos, cbr
KenyoJhuniorAnguloZa
 
Las emociones en los centros de trabajo.pdf
Las emociones en los centros de trabajo.pdfLas emociones en los centros de trabajo.pdf
Las emociones en los centros de trabajo.pdf
Jose Manuel de la Cruz Castro
 
Apicultura (crianza de avejas en VRAEM.))
Apicultura (crianza de avejas en VRAEM.))Apicultura (crianza de avejas en VRAEM.))
Apicultura (crianza de avejas en VRAEM.))
ssuser79795c1
 
pliego tecnico normativo para tecnicos electricistas
pliego tecnico normativo para tecnicos electricistaspliego tecnico normativo para tecnicos electricistas
pliego tecnico normativo para tecnicos electricistas
SebastinVargasRamos
 

Último (20)

Reanimacion cardiopulmonar neonatal 2024
Reanimacion cardiopulmonar neonatal 2024Reanimacion cardiopulmonar neonatal 2024
Reanimacion cardiopulmonar neonatal 2024
 
DISEÑO DE INSTALACIONES PARA PORCINOS, CUYES Y CONEJOS; MÉTODOS DE IDENTIFICA...
DISEÑO DE INSTALACIONES PARA PORCINOS, CUYES Y CONEJOS; MÉTODOS DE IDENTIFICA...DISEÑO DE INSTALACIONES PARA PORCINOS, CUYES Y CONEJOS; MÉTODOS DE IDENTIFICA...
DISEÑO DE INSTALACIONES PARA PORCINOS, CUYES Y CONEJOS; MÉTODOS DE IDENTIFICA...
 
Retroalimentación - Aspectos operativos - 25-06.pptx
Retroalimentación - Aspectos operativos - 25-06.pptxRetroalimentación - Aspectos operativos - 25-06.pptx
Retroalimentación - Aspectos operativos - 25-06.pptx
 
S1 Diseño e Ingeniería Primaria de Subestaciones.pptx
S1 Diseño e Ingeniería Primaria de Subestaciones.pptxS1 Diseño e Ingeniería Primaria de Subestaciones.pptx
S1 Diseño e Ingeniería Primaria de Subestaciones.pptx
 
Los cinco niveles de competencia dentro de un Estándar de Competencia Laboral...
Los cinco niveles de competencia dentro de un Estándar de Competencia Laboral...Los cinco niveles de competencia dentro de un Estándar de Competencia Laboral...
Los cinco niveles de competencia dentro de un Estándar de Competencia Laboral...
 
CURSO GAS NATURAL 2024.ppt 2000000000000
CURSO GAS NATURAL 2024.ppt 2000000000000CURSO GAS NATURAL 2024.ppt 2000000000000
CURSO GAS NATURAL 2024.ppt 2000000000000
 
PPT SISTEMA INTEGRADO UTP-MAS-CLASS.pptx
PPT SISTEMA INTEGRADO UTP-MAS-CLASS.pptxPPT SISTEMA INTEGRADO UTP-MAS-CLASS.pptx
PPT SISTEMA INTEGRADO UTP-MAS-CLASS.pptx
 
Aplicacion-Del-Principio-de-Pascal-puente-Hidraulico.pptx
Aplicacion-Del-Principio-de-Pascal-puente-Hidraulico.pptxAplicacion-Del-Principio-de-Pascal-puente-Hidraulico.pptx
Aplicacion-Del-Principio-de-Pascal-puente-Hidraulico.pptx
 
MATRIZ DE PARTES INTERESADAS-KMC CALIDAD.docx
MATRIZ DE PARTES INTERESADAS-KMC CALIDAD.docxMATRIZ DE PARTES INTERESADAS-KMC CALIDAD.docx
MATRIZ DE PARTES INTERESADAS-KMC CALIDAD.docx
 
recipientes sometidos a presión, pared gruesa y pared delgada
recipientes sometidos a presión, pared gruesa y pared delgadarecipientes sometidos a presión, pared gruesa y pared delgada
recipientes sometidos a presión, pared gruesa y pared delgada
 
Casa Doble en la Weissenhofsiedlung.pdf
Casa Doble en la    Weissenhofsiedlung.pdfCasa Doble en la    Weissenhofsiedlung.pdf
Casa Doble en la Weissenhofsiedlung.pdf
 
Nomenclatura Organica Hibridacion del Carbono ALCANOS (1).pdf
Nomenclatura Organica Hibridacion del Carbono ALCANOS (1).pdfNomenclatura Organica Hibridacion del Carbono ALCANOS (1).pdf
Nomenclatura Organica Hibridacion del Carbono ALCANOS (1).pdf
 
EJEMPLO DIAPOSITIVAS ANALISIS DE PROBLEMAS QUE ENFRENTAN LAS ORGANIZACIONES E...
EJEMPLO DIAPOSITIVAS ANALISIS DE PROBLEMAS QUE ENFRENTAN LAS ORGANIZACIONES E...EJEMPLO DIAPOSITIVAS ANALISIS DE PROBLEMAS QUE ENFRENTAN LAS ORGANIZACIONES E...
EJEMPLO DIAPOSITIVAS ANALISIS DE PROBLEMAS QUE ENFRENTAN LAS ORGANIZACIONES E...
 
ingbio.pdf Pre san Marcos, Ranking 2024-I
ingbio.pdf Pre san Marcos, Ranking 2024-Iingbio.pdf Pre san Marcos, Ranking 2024-I
ingbio.pdf Pre san Marcos, Ranking 2024-I
 
MECANICA DE LOS FLUIDOS 5 TRASLACION Y ROTACION DE MASAS LIQUIDAS. Ing. Aleja...
MECANICA DE LOS FLUIDOS 5 TRASLACION Y ROTACION DE MASAS LIQUIDAS. Ing. Aleja...MECANICA DE LOS FLUIDOS 5 TRASLACION Y ROTACION DE MASAS LIQUIDAS. Ing. Aleja...
MECANICA DE LOS FLUIDOS 5 TRASLACION Y ROTACION DE MASAS LIQUIDAS. Ing. Aleja...
 
plagas y enfermedades del cafe en la convencion.ppt
plagas y enfermedades del cafe en la convencion.pptplagas y enfermedades del cafe en la convencion.ppt
plagas y enfermedades del cafe en la convencion.ppt
 
CBR en laboratorio Mecanica de suelos, cbr
CBR en laboratorio Mecanica de suelos, cbrCBR en laboratorio Mecanica de suelos, cbr
CBR en laboratorio Mecanica de suelos, cbr
 
Las emociones en los centros de trabajo.pdf
Las emociones en los centros de trabajo.pdfLas emociones en los centros de trabajo.pdf
Las emociones en los centros de trabajo.pdf
 
Apicultura (crianza de avejas en VRAEM.))
Apicultura (crianza de avejas en VRAEM.))Apicultura (crianza de avejas en VRAEM.))
Apicultura (crianza de avejas en VRAEM.))
 
pliego tecnico normativo para tecnicos electricistas
pliego tecnico normativo para tecnicos electricistaspliego tecnico normativo para tecnicos electricistas
pliego tecnico normativo para tecnicos electricistas
 

TIA portal Bloques PLC Siemens______.pdf

  • 1. Unidad I: Medición de temperatura TIA Portal Bloques Ing. Armando Sarco Montiel
  • 2. Armando Sarco Montiel Profesional en Ingeniería Electrónica, especialista en Instrumentación, Automatización y Control Industrial por Tecsup, También concluyó la maestría en Ingeniería de Control y Automatización, por la Pontificia Universidad Católica del Perú; Realizó cursos en la Universidad de Esslingen of Applied Sciences de Alemania, en Automatización Industrial por parte de SIEMENS, concluyó con éxito el FabAcademy dictado por Neil Gershenfeld director del Centro de Bits y Átomos del MIT, en fabricación digital. Tiene amplia experiencia profesional en el área de ingeniería para el desarrollo de proyectos en automatización industrial, automatización de edificios, refrigeracion industrial, sistemas contra incendios y seguridad electrónica; Trabajó en importantes proyectos de automatización en empresas como Backus, Volcan, Pesquera Diamante, Hotel Marriott, Hotel Sheraton, Hipermercados Tottus, Cencosud, supermercados peruanos, entre otras. Actualmente trabaja para el departamento de Electricidad y Electrónica en Tecsup-Lima. Correo electrónico: asarco@pucp.pe Docente
  • 3. Queda prohibida, sin la autorización de Armando Sarco Montiel, la reproducción total o parcial de este material por cualquier medio o procedimiento, y el tratamiento informático, bajo sanciones establecidas en la ley.
  • 4. Bloques de programa Unidad 4 La automatización industrial es un área muy extensa que comprende, la parte de instrumentación, control y supervisión industrial, en este módulo veremos de La programación de los PLC’s de Siemens y la plataforma TIA Portal Introducción
  • 5. Bloques de programa Unidad 4 Identificar los diferentes tipos de bloques de programa, realizar la selección correcta y hacer aplicaciones. Objetivos
  • 6. Bloques de programa Unidad 4 1. Bloques del sistema 2. Tipos de bloques 2.1. Bloques de Organización 2.2. Funciones FC 2.3. Bloque de Funciones FB 2.4 Bloque de datos DB 3. Conversión de datos 4. Aplicaciones con OB, FC, FB y DB Temario
  • 7. Bloques de programa Unidad 4 1. Bloques del sistema Es posible tener varias alarmas de proceso y de tiempo
  • 8. Bloques de programa Unidad 4 2. Tipos de bloques
  • 9. Bloques de programa Unidad 4 Bloques El sistema de automatización proporciona distintos tipos de bloques donde se guardarán tanto el programa como los datos correspondientes. Dependiendo de la exigencia del proceso el programa estará estructurado en diferentes bloques. OBs Los bloques de organización constituyen la interfaz entre el sistema operativo y el programa de usuario. El programa completo puede distribuirse bien en OBs llamados cada ciclo del sistema operativo (programación lineal) o bien en varios bloques (programa estructurado). FC Una función (FC) contiene una funcionalidad parcial del programa. Es posible programar funciones parametrizables de forma que cuando se llame a esa función se puedan pasar sus parámetros. Este tipo de funciones son adecuadas para la programación de funciones complejas que se repitan con frecuencia, como por ejemplo cálculos. FB Los bloques de función proporcionan desde el punto de vista de la programación las mismas posibilidades que las funciones. Un FB ofrece la posibilidad de transferir parámetros en el programa de usuario. Por ello, los bloques de función son adecuados para programar funciones complejas que se repiten con frecuencia, como regulaciones o la selección del modo de operación. Puesto que un FB tiene memoria (bloque de datos instancia), es posible acceder a sus parámetros en todo momento y en cualquier punto del programa de usuario. Bloques de datos Los bloques de datos (DB) son áreas de datos del programa estructurado en el que se gestiona los datos de usuario. Operaciones permitidas En la totalidad de los bloques (FB, FC y OB) se disponen las mismas operaciones de programación. 2. Tipos de bloques
  • 10. Bloques de programa Unidad 4 2.1 Bloques de organización OB’s Los bloques de organización (OB) constituyen la interfaz entre el sistema operativo del controlador (CPU) y el programa de usuario. Estos bloques son llamados por el sistema operativo y controlan los procesos siguientes: ● Ejecución cíclica (p. ej., OB1) ● Comportamiento en arranque del controlador ● Ejecución del programa controlada por alarmas ● Tratamiento de errores En un proyecto debe existir por lo menos un bloque de organización para la ejecución cíclica del programa. Para llamar un OB se necesita un evento de arranque, como se muestra en la Figura 1. Los distintos OB tienen prioridades definidas, p. ej., para que un OB82 pueda interrumpir el OB1 cíclico con fines de tratamiento de errores. Funciones: ● Interfaz entre el sistema operativo y el programa de usuario ● Los OBs son programables por el usuario, de este modo el comportamiento de la CPU es preciso y determinado ● Los bloques de organización pueden ser llamados por el sistema operativo para los siguientes eventos: ○ Arranque ○ Procesamiento cíclico ○ Procesamiento por alarmas ○ Manejo de errores
  • 11. Bloques de programa Unidad 4 OBs de arranque: serán procesados una vez cuando se cambia el modo de funcionamiento de la CPU de STOP a RUN. Después de ejecutar el OB de arranque se ejecuta el OB cíclico. OBs cíclicos: son ejecutados de forma cíclica. Son los bloques de código de dónde parte el programa, desde ellos se puede llamar a otros módulos. OBs de alarma de retardo: interrumpen el programa cíclico durante un tiempo definido. El tiempo de retardo se especifica en los parámetros de entrada de la instrucción SRT_DINT. OBs de alarma cíclica: interrumpen el programa cíclico a intervalos de tiempo definidos. Este intervalo se puede establecer en este cuadro de diálogo o en las propiedades de la OB. OBs de alarma de proceso: interrumpen el programa cíclico debido a un evento de hardware. El evento se define en las propiedades de hardware. OBs de error de tiempo: interrumpen el programa cíclico cuando se excede el máximo tiempo de ciclo. Este tiempo de ciclo máximo se define en las propiedades de la CPU. OBs de alarma de diagnóstico: interrumpe el programa cíclico cuando un módulo, para el que se ha habilitado el diagnóstico, detecta una alarma de diagnóstico. 2.2.1 Tipos de bloques de organización OB’s
  • 12. Bloques de programa Unidad 4 2.1.2 Eventos que arrancan un OB Eventos El sistema operativo de las CPUs S7-1200 se basa en eventos. Hay que distinguir entre dos tipos de eventos: ● Eventos que pueden iniciar un OB ● Eventos que no pueden iniciar ningún OB Un evento que puede iniciar un OB provoca la reacción siguiente tras su aparición: ● Si se ha asignado un OB al evento, se llama dicho OB. Si por el momento no es posible llamar el OB, el evento se incorpora a una cola de espera de acuerdo con su prioridad. ● Si no se ha asignado ningún OB al evento, se ejecuta la reacción del sistema predeterminada. Un evento que no puede iniciar ningún OB provoca la reacción del sistema predeterminada para la clase de evento correspondiente tras su aparición. Por consiguiente, la ejecución del programa de usuario se basa en eventos, en la asignación de OBs a los eventos y en el código que está dentro de los OBs o que se llama desde allí. La tabla siguiente ofrece una vista general de los eventos que pueden iniciar un OB, junto con las clases de eventos y OBs correspondientes. Está ordenada por la prioridad de los OBs. La prioridad 1 es la más baja.
  • 13. Bloques de programa Unidad 4 2.1.2 Eventos que arrancan un OB Clase de evento N° OB Cantidad Evento de Arranque Prioridad de OB Grupo de prioridad Programa cíclico 1, >=200 >= 1 Fin de arranque o fin del último OB de ciclo 1 1 Arranque 100, >= 200 >= 0 Transición STOP-RUN 1 Alarma de retardo >= 200 máx. 4 Tiempo de retardo finalizado 3 2 Alarma cíclica >= 200 máx. 4 Intervalo de tiempo equidistante finalizado 4 Alarma de proceso >= 200 máx. 50 ● Flanco ascendente (máx. 16) ● Flanco descendente (máx. 16) 5 HSC: valor de contaje=valor de referencia (máx. 6)- HSC: sentido de contaje modificado (máx. 6) - HSC: reset externo (máx. 6) 6 Alarma de diagnóstico 82 0/1 El módulo ha detectado un error 9 Error de tiempo 80 0/1 ● Tiempo de ciclo máximo rebasado por exceso ● Cola de espera desbordada ● Pérdida de alarma por sobrecarga de alarmas 26 3
  • 14. Bloques de programa Unidad 4 2.1.3 Interrupción del programa cíclico
  • 15. Bloques de programa Unidad 4 2.1.4 Imagen de proceso Introducción: La CPU se ha reservado las áreas de memoria para almacenar todas las señales: El proceso de imagen de las entradas (PAE) y la imagen de proceso de las salidas (PAA). Durante la ejecución del ciclo, la CPU tiene acceso a esta áreas de memoria, o directamente en el módulos de entrada y de salida. PAE: La imagen de proceso de entradas es el área de memoria dedicada para almacenar los estados de todos los componentes. El sistema operativo lee al comienzo de ciclo los estados de los módulos y los escribe en la imagen de proceso de entradas. PAA: La imagen de proceso de salidas es el área de memoria en la que los resultados de las operaciones se almacenan en el programa. La imagen se imprime al final del ciclo de los módulos de salida.
  • 16. Bloques de programa Unidad 4 Una función es un bloque se usuario que retorna solamente un dato de un tipo en específico cuando es llamado o ejecutado. Las funciones al contrario que los bloques de función no guardan el estado de las variables internas, por lo cual, al llamar una función siempre con los mismos argumentos de entrada va a regresar exactamente el mismo valor. Por esta razón las funciones no deben contener variables globales ni de direccionamiento. ● Bloques lógico sin memoria. ● Se utilizan para programar funciones complejas que se repiten con frecuencia. ● Los datos de las variables temporales se pierden tras haberse procesado la función. ● Para almacenar los datos de forma permanente, las funciones disponen de bloques de datos globales. Aplicaciones Las funciones se pueden usar para retornar un valor al bloque donde fue llamado (funciones matemáticas); o ejecutar una función técnica ( control simple de operaciones de un bit). 2.2 Funciones FC
  • 17. Bloques de programa Unidad 4 Desarrolle una función para hallar la hipotenusa de un triángulo rectángulo. 2.2.1 Aplicaciones con funciones Nombre Símbolos Lado del cateto a L1 Lado del cateo b L2 Hipotenusa H
  • 18. Bloques de programa Unidad 4 Crear el proyecto y agregar la función 2.2.1 Aplicaciones con funciones
  • 19. Bloques de programa Unidad 4 Declarar las variables locales a utilizar "#”, para definir la interfaz 2.2.1 Aplicaciones con funciones Procedimiento: Definir después de agregar el bloque de función, la interfaz del módulo. Se pide tener las siguientes consideraciones: Input: Información necesaria para resolver la tarea en cada estación: Output: Qué debe ser devuelto como resultado de las operaciones internas: (encendido, apagado o parpadeando). InOut: También necesitará cierta información que reciba el bloque y tras procesarla devuelva: Temp: Si es necesario, incluso la memoria puede tener una duración de un ciclo.
  • 20. Bloques de programa Unidad 4 Implementar el programa en el FC “Hipotenusa” 2.2.1 Aplicaciones con funciones
  • 21. Bloques de programa Unidad 4 Recuerda que solo los OB’s ejecutan programa, por lo que tenemos que llamar a nuestro FC “Hipotenusa” al OB1 2.2.1 Aplicaciones con funciones
  • 22. Bloques de programa Unidad 4 Los bloques de función son bloques lógicos que depositan sus valores de forma permanente en bloques de datos 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 instancia. Gracias a ello, continúan disponibles tras el procesamiento del bloque. También puede llamar a un FB en repetidas ocasiones. Cada llamada puede tener su propia instancia o puede tener varias instancias de una multiinstancia juntas. ● Bloques de código cuyos valores permanentes son almacenados en DBs de instancia, de manera que tras el procesamiento éstos todavía están disponibles. ● Todos los parámetros de importación, exportación y tránsito son almacenados en DBs de instancia; el DB de instancia es la “memoria“ de los FBs. 2.3 Bloque de función FB Aplicaciones Los bloques de función al guardar sus datos después de cada ejecución son bastante usados para ejecutar funciones complejas, o de ejecución constante. como las resetas
  • 23. Bloques de programa Unidad 4 2.3 Bloque de Función FB Definición: La llamada de un bloque de función se denomina instancia. A cada llamada de un bloque de función que transfiere parámetros se asigna un bloque de datos instancia que sirve de memoria de datos. En ella se depositan los parámetros actuales y los datos estáticos del bloque de función. El tamaño máximo de los bloques de datos instancia varía en función de la CPU. Las variables declaradas en el bloque de función determinan la estructura del bloque de datos instancia. Ejemplo: La imagen del costado muestra la interfaz de un FB con parámetros de entrada, salida y tránsito. Además, la interfaz también contiene variables estáticas y temporales. El DB instancia se genera automáticamente de acuerdo a las especificaciones de la interfaz en el FB y éstas no se puede cambiar con el editor.En el ejemplo sólo los parámetros y variables estáticas se almacenan. Las variables temporales se almacenan durante el tiempo de ejecución en la pila de datos locales.
  • 24. Bloques de programa Unidad 4 2.3.1 Agregar bloque Para crear un bloque (OB, FB, FC ó DB ), proceda del siguiente modo: ● Haga doble clic en el comando "Agregar nuevo bloque". ● Se abre el diálogo "Agregar nuevo bloque". ● Haga clic en el botón: ○ "Bloque de organización (OB)“, ○ "Bloque de función (FB)", ○ "Función (FC)“ ó ○ "Bloque de datos (DB)“. ● Introduzca un nombre para el bloque. ● En la lista desplegable "Lenguaje", seleccione el lenguaje de programación del nuevo bloque. ● Active el botón de opción "manual" si desea asignar manualmente el número del bloque. ● Si opta por la asignación manual, introduzca el número de bloque en el campo de entrada.
  • 25. Bloques de programa Unidad 4 2.4 Bloque de datos DB Descripción general: Los bloques de datos se utilizan para guardar datos de usuario. Los bloques de datos ocupan espacio en la memoria de usuario de la CPU. los bloques de datos contienen datos variables (por ejemplo, los valores numéricos), con los que trabaja el programa de usuario. El programa de usuario puede tener acceso a los datos de un bloque de datos a través de las operaciones de bit, byte, palabra o doble palabra. El acceso puede ser de forma simbólica o absoluta. Ámbito: Los bloques de datos, en función de su contenido, pueden ser utilizados de diferentes formas por el usuario. Se distinguen: ● Bloques de datos globales: Contienen información a la que pueden acceder todos los bloques del programa de usuario. ● Bloques de datos de instancia: Siempre están asociados a un FB. Los datos de estos DBs deberán ser manejados solamente por el FB correspondiente. Los bloques de datos de instancia son tratados en detalle en el capítulo "Funciones y Bloques de Función”. Crear DBs: Los DBs globales se crean ya sea en el editor del programa o con una plantillas de datos UDT “tipo de datos definido por el usuario" previamente definida. Los bloques de datos de instancia se crean cuando se llama a un bloque de función.
  • 26. Bloques de programa Unidad 4 2.4.1 Tipos de datos
  • 27. Bloques de programa Unidad 4 2.4.2 Tipos de datos simples Estos son todos los tipos de datos que proporciona el lenguaje de programación de forma automática.
  • 28. Bloques de programa Unidad 4 2.4.3 Tipos de datos compuestos: DTL, STRING Tipos de datos compuestos: Los tipos de datos compuestos definen grupos de datos que se componen de otros tipos de datos. Las constantes no se pueden utilizar como parámetros actuales para los tipos de datos compuestos. Las direcciones absolutas tampoco se pueden transferir como parámetros actuales a los tipos de datos compuestos. Estos son los tipos de datos compuestos que existen: DTL: Una variable del tipo de datos DTL tiene una longitud de 12 bytes y almacena las indicaciones de fecha y hora en una estructura predefinida. STRING: Una variable del tipo de datos STRING almacena varios caracteres en una cadena que puede comprender 254 caracteres como máximo. La longitud máxima de la cadena de caracteres de cada variable puede especificarse entre corchetes tras la palabra clave STRING (p. ej. STRING[4]). Si se omite la indicación de la longitud máxima, se ajustará la longitud estándar de 254 caracteres para la variable en cuestión. Una variable del tipo de datos STRING ocupa en la memoria dos bytes más que la(s) longitud(es) máxima(s) indicada(s).
  • 29. Bloques de programa Unidad 4 2.4.3 Tipos de datos compuestos: DTL, STRING ARRAY: El tipo de datos ARRAY representa un campo compuesto por un número fijo de componentes del mismo tipo de datos. Una variable ARRAY puede reunir componentes de todos los tipos de datos simples. Los rangos de los componentes del campo se especifican entre corchetes tras la palabra clave ARRAY. El valor límite inferior debe ser menor o igual al valor límite superior de un rango. Un campo puede contener una dimensión. STRUCT: Una variable del tipo de datos STRUCT almacena valores en una estructura compuesta por un número fijo de componentes. Los distintos componentes de la estructura pueden tener diferentes tipos de datos. En una variable STRUCT no es posible anidar estructuras. Una variable STRUCT comienza siempre en un byte con dirección par y ocupa la memoria hasta el siguiente límite de palabra.
  • 30. Bloques de programa Unidad 4 Se puede insertar un nuevo bloque de datos tal y como se muestra en la imagen. La creación de un nuevo bloque de datos se puede hacer desde la vista del portal o desde la vista del proyecto. DB - Global: Los bloques de datos globales se utilizan para almacenar datos globales, es decir, para el almacenamiento de datos en general para los que todos los bloques del programa (OB, FC, FB) tienen acceso. Los bloques de datos globales los debe editar el propio usuario, en donde cree las variables necesarias para almacenar los datos. DB - Instancia: Los bloques de datos de instancia sirven como "área de almacenamiento privado" o una “memoria” para un bloque de función (FB). En DB de instancia se almacenan los parámetros y variables estáticas del FB. Los bloques de datos de instancia no son editados por el usuario sino que los genera el propio editor (véase el capítulo "Funciones y Bloques de Función”). 2.4.4 Creación de bloques de datos
  • 31. Bloques de programa Unidad 4 Remanencia: Para impedir pérdidas de datos en caso de un corte de alimentación, algunos datos pueden marcarse como remanentes. Entonces se guardarán en un área de memoria remanente. Un área de memoria remanente es un área cuyo contenido se conserva en caso de rearranque (en caliente), es decir, después de desconectar la tensión de alimentación y volverla a conectar en una transición de STOP a RUN. 2.4.5 Bloques de datos: Valor inicial, valor actual
  • 32. Bloques de programa Unidad 4 Para acceder a los elementos individuales de los DBs se hace con “Nombre_DB.Nombre_elemento” Ejemplo de acceso a un elemento del DB Al elemento “Activar_estacion" en el DB “Datos“, se tiene acceso de la forma siguiente: “Datos. Activar_estacion” Nombre local de la variable en el DB. Nombre global del bloque de datos 2.4.6 Acceso a los datos del DB
  • 33. Bloques de programa Unidad 4 Tarea: Debe crearse un bloque de datos "DB_OP (DB99) con las variables que aparecen en la imagen que más tarde servirá como interfaz para el panel del operador. Aplicación: 1. Inserte un nuevo bloques de datos “DB_OP” (DB99) como DB global. 2. Declare las variables mostradas en la diapositiva. En particular la variable TON "" de tipo "IEC_Timer", se utilizará más adelante para almacenar los datos de instancia del temporizador IEC. 3. Ponga el valor inicial 3 a la variable Num_Debe. 4. Guarde el proyecto. 2.4.7 Aplicación con DB
  • 34. Bloques de programa Unidad 4 En STEP 7 (TIA Portal), puede usar las funciones de conversión de la paleta "Instrucciones" para convertir los contenidos de las variables a los tipos de datos seleccionados para S7-1200 / S7-1500. 3. Conversión de datos en TIA PORTAL Conversión de los tipos de datos números INT, DINT, REAL y BCD STEP 7 (TIA Portal) proporciona la operación "CONV" (convertir) para convertir los tipos de datos INT, DINT, REAL y BCD. Después de parametrizar las entradas y salidas, puede convertir los valores numéricos a continuación, por ejemplo. ● De Int a Int, DInt, Real, Bcd16, USint, UInt, UDint, SInt, LReal y Char ● De DInt a Int, DInt, Real, Bcd32, USint, UInt, UDint, SInt, LReal y Char ● De Real a Int, DInt, Real, USint, UInt, UDint, SInt y LReal ● De USint a Int, DInt, Real, USint, UInt, UDint, SInt, LReal y Char ● De UInt a Int, DInt, Real, USint, UInt, UDint, SInt, LReal y Char ● De UDint a Int, DInt, Real, USint, UInt, UDint, SInt, LReal y Char ● De SInt a Int, DInt, Real, USint, UInt, UDint, SInt, LReal y Char ● De LReal a Int, DInt, Real, USint, UInt, UDint, SInt y LReal ● De Char a Int, DInt, USint, UInt, UDint, SInt y Char ● Desde BCD16 (16 bits) a Int, ● De BCD32 (32 bits) a DInt.
  • 35. Bloques de programa Unidad 4 3. Conversión de datos en TIA PORTAL Un valor numérico en el formato BCD debe convertirse primero en el tipo de datos Int o DInt antes de poder convertirlo en el tipo de datos REAL, por ejemplo. Si realiza una conversión de tipo de datos de Byte a SInt o de Byte a USInt, con la instrucción CONVERT debe configurar manualmente el tipo de datos SInt o USInt en la entrada y salida.
  • 36. Bloques de programa Unidad 4 3. Conversión de datos en TIA PORTAL Conversión de tipos de datos STRING La tabla siguiente contiene instrucciones para convertir el tipo de datos String. El procedimiento para programar esto es idéntico al descrito en las instrucciones. Instrucciones avanzadas Descripción S_CONV Convertir cadena de caracteres STRG_VAL Convertir cadena de caracteres en valor numérico VAL_STRG Conversión de valor numérico en cadena de caracteres Strg_TO_Char Convertir cadena de caracteres en matriz de CHAR Char_TO_Strg Convertir matriz de caracteres CHAR a caracteres ATH Convierte una cadena de caracteres ASCII a un número hexadecimal HTA Convierte el número hexadecimal en una cadena de caracteres ASCII
  • 37. Bloques de programa Unidad 4 3. Conversión de datos en TIA PORTAL Conversión al formato de datos TIME Utilizando la instrucción avanzada "T_CONV", convierte un valor numérico del tipo de datos INT en una marca de tiempo (TIME) y viceversa. Debe convertir todos los demás tipos de datos (INT, REAL, BCD, ...) en el tipo de datos DINT antes de poder convertirlos en el tipo de datos TIME. La instrucción "T_CONV" se encuentra en el editor de bloques en la paleta "Avanzado" en la carpeta "Instrucciones avanzadas> Fecha y hora".
  • 38. Bloques de programa Unidad 4 4 Aplicaciones con OB, FC, FB y DB Ejercicio 1: Desarrolle un bloque de función que sea capaz de calcular un tiempo estimado de mezclado para una tolva que tiene entrada de 3 diferentes materiales. La entrada de los materiales es en Kg. La función que representa ese cálculo es: Tiempo[seg]= mat1*0.5+mat2*2+mat3*0.75 El bloque debe tener como salidas el tiempo en formato TIME para ingresar a un temporizador y el tiempo en segundos para su visualización. Material 1 Material 2 Material 3
  • 39. Bloques de programa Unidad 4 4 Aplicaciones con OB, FC, FB y DB Ejercicio 1: FORMATO DEL TIPO DE DATOS S5TIME (INTERVALO) Si se introduce el intervalo con el tipo de datos S5TIME, sus entradas se guardarán en formato BCD. La figura siguiente muestra el contenido del operando de tiempo, donde el valor de tiempo es 127 y la base de tiempo es 1 s. Con la siguiente sintaxis se puede cargar un valor de tiempo predefinido: W#16#AXYZ A = base de tiempo (es decir, intarvalo de tiempo o resoluci6n) XYZ = valor de tiempo en formate BCD Base de tiempo Base de tiempo en código binario 10 ms 00 100 ms 01 1 s 10 10 s 11
  • 40. Bloques de programa Unidad 4 4 Aplicaciones con OB, FC, FB y DB Ejercicio 1:
  • 41. Bloques de programa Unidad 4 4 Aplicaciones con OB, FC, FB y DB Ejercicio 1:
  • 42. Bloques de programa Unidad 4 Referencias bibliográficas ● SITRAIN ST-MICRO1 ● Hans Berger (2013). Automating with SIMATIC S7-1200, 2nd Edition ● SCE_ES_031-200 FB-Programming S7-1200_R1504 ● https://support.industry.siemens.com/