Sunteți pe pagina 1din 145

CONTENIDO

1 Automatización Industrial
1.1 Acondicionamiento de señales
1.2 Etapa de Control
1.3 PLC
1.3.1 ¿Qué es un PLC?
1.3.2 El objetivo del PLC en la industria.
1.3.3 Arquitectura de un PLC.
1.3.4 Tipos de PLC
2 Entorno de programación FPWIN
2.1 IEC 61131-3
2.2 Introducción al FPWIN
2.3 Estructura de un proyecto
2.3.1 POU's
2.3.2 Tipos de datos
2.3.3 Interfaz de programación
2.4 Lenguajes de programación FPWIN
2.4.1 Lista de instrucciones (IL)
2.4.2 Texto Estructurado (ST)
2.4.3 Diagrama de bloques de funciones (FBD)
2.4.4 Diagrama de escalera (LD)
2.4.5 Diagrama secuencial de funciones (SFC)
2.5 Variables y Tipos de Variables
2.5.1 Variables Globales
2.5.2 Variables Locales. Cabecera de la POU:
2.5.3 Creación de Variables
2.5.4 Declaración de Variables
2.6 Ejecución de programas
2.6.1 Modo Online
2.6.2 Modo Online-Run
2.7 Escribir valores
3 Programación en diagrama de escalera
3.1 Conceptos básicos
3.2 Comparación con diagrama eléctrico
3.3 Conexiones en Serie y en Paralelo
3.4 Funciones básicas
3.5 Funciones Biestables
3.5.1 Bobinas SET y RESET
3.5.2 Temporizadores
3.5.3 Contadores
3.5.4 Trigger
3.6 Bloques con ENABLE
3.6.1 Bloques Enable para Mover datos
3.6.2 Bloques Enable Temporizadores y Contadores
4 Entorno de programación GTWIN
4.1 Introducción al GTWIN
4.2 Estructura de un proyecto
4.2.1 Crear un Nuevo Proyecto
4.2.2 Árbol de Pantallas
4.2.3 Librería de Partes
4.2.4 Barra de Herramientas
4.3 Configurar Pantalla de Inicio
4.4 Direccionamiento de variables al PLC
4.4.1 Direccionamiento Botones:
4.4.2 Direccionamiento Entradas de Texto
4.4.3 Direccionamiento Lámparas.
4.4.4 Gráficos
4.4.5 Mensajes
5 Programación en diagrama de bloques
5.1 Operadores básicos
5.1.1 AND
5.1.2 OR
5.1.3 NOT
5.1.4 XOR
5.1.5 Ejemplo de un programa en diagrama de bloques de funciones
5.2 Operadores de comparación
5.3 Operadores computacionales
5.4 Funciones básicas
5.5 I/O analógicas
5.5.1 Entradas analógicas
5.5.2 Salidas analógicas
5.5.3 Bloque Lectura escritura Análogo FP0R
5.6 Bloques con ENABLE
5.6.1 Bloques Enable para Mover datos
5.6.2 Bloques Enable Temporizadores y Contadores
6 Funciones y Bloques de Función
6.1.1 Procedimiento para la Creación de Funciones y Bloques de Función
6.1.2 Llamamiento a Funciones
6.1.3 Llamamiento a Bloques de Función
6.2 Diferencias. Pros y Contras entre FN y FB
6.2.1 Características Funciones.
6.2.2 Características Bloques de Función
7 COMUNICACIÓN MODBUS RTU:
7.1 DEFINICIÓN
7.2 MODBUS RTU 485 EN FPWIN
7.2.1 Función Master Modbus RTU
7.2.2 Función esclava Modbus RTU
7.3 ACCESO DE DATOS MODBUS
7.4 COMANDOS MODBUS COMPATIBLES
7.5 DIRECCIÓN MODBUS Y DIRECCIONAMIENTO FP0R
7.6 PASOS PARA REALIZAR LA COMUNICACIÓN
8 GUIA DE PRACTICAS FPWIN Y GTWIN
8.1 Práctica 1: Conexión USB serial con PLC.
8.2 Práctica 2: Creación de un programa básico en los cinco lenguajes de programación
8.3 Práctica 3: Control de luz de escalera
8.4 Práctica 4: Control de dispositivo Punzonador.
8.5 Práctica 5: Control de encendido y apagado de 3 Motores
8.6 Práctica 6: Contador de Producto en Banda transportadora.
8.7 Práctica 7: Control de tolva y banda transportadora separadora.
8.8 Práctica 8: Visualización y manejo de datos de contadores y temporizadores
8.9 Práctica 9: Control de ventilación en túnel vehicular.
8.10 Práctica 10: Lectura y Acondicionamiento de señal de sensor análogo.
8.11 Práctica 11: Acondicionamiento Sensor de Humedad.
8.12 Practica 12: Modbus RTU, Comunicación entre PLC y BTC
8.13 Práctica Final
9 SOLUCIONARIO DE PRACTICAS FPWIN Y GTWIN
9.1 Práctica 1: Conexión USB serial con PLC.
9.2 Práctica 2: Creación de un programa básico en los cinco lenguajes de programación
9.2.1 Crear un proyecto
9.2.2 Conexión USB (GT)
9.2.3 Crear un programa en LD
9.2.4 Crear un programa en FBD
9.2.5 Crear un programa en ST
9.2.6 Crear un programa en SFC
9.2.7 Crear un programa en IL
9.3 Práctica 3: Control de luz de escalera
9.4 Práctica 4: Control de dispositivo Punzonador.
9.5 Práctica 5: Control de encendido y apagado de 3 Motores
9.6 Práctica 6: Contador de Producto en Banda transportadora.
9.7 Práctica 7: Control de tolva y banda transportadora separadora.
9.8 Práctica 8: Visualización y manejo de datos de contadores y temporizadores
9.9 Práctica 9: Control de ventilación en túnel vehicular.
9.10 Práctica 10: Lectura y Acondicionamiento de señal de sensor análogo.
9.11 Práctica 11: Acondicionamiento Sensor de Humedad.
9.12 Practica 12: Modbus RTU 485
9.13 Practica Final
1. Automatización Industrial

El objetivo de la automatización industrial se centra en dar autonomía a diversos procesos industriales,


haciendo que la participación de fuerza física humana sea mínima y la de inteligencia artificial máxima.

Lo que se busca con la Automatización industrial es generar la mayor cantidad de producto, en el menor
tiempo posible, con el fin de reducir los costos y garantizar una uniformidad en la calidad.

La Automatización Industrial es posible gracias a la unión de distintas tecnologías. El primer escalón de la


automatización es la instrumentación ya que permita la medición de variables como la materia en sus
diferentes estados, gases, sólidos y líquidos, (eso quiere decir que medimos cosas como el volumen, el peso,
la presión etc.). Por otro lado se tiene a la olehidraulica, la neumática, los servos y los motores que son los
encargados del movimiento.

Para poder unir a todas las partes se debe contar con un sistemas de comunicación que enlace todo
directamente con los Controladores Lógicos Programables o por sus siglas PLC que son los encargados de
controlar la toma decisiones de acuerdo a una programación pre establecida.

La Automatización Industrial la encontramos en muchos sectores de la economía, como en la Fabricación de


Alimentos, Productos Farmacéuticos, Productos Químicos, en la Industria Gráfica, Petrolera, Automotriz,
Plásticos, Telecomunicaciones entre otros, sectores en los cuales generan grandes beneficios. No solo se
aplica a maquinas o fabricación de productos, también se aplica la gestión de procesos, de servicios, a
manejo de la información, a mejorar cualquier proceso que con lleven a un desempeño más eficiente,
desde la instalación, mantenimiento, diseño, contratación e incluso la comercialización.
Existen tres etapas en un sistema automático:

• Etapa de acondicionamiento de señales.- Es la lectura de distintos sensores que convierten una


variable física en una señal eléctrica.

• Etapa de control.- Es la que comanda distintos actuadores (salidas) en función de la información


obtenida (entradas).

• Etapa de potencia.- Es la etapa que se encarga de realizar un trabajo por medio de la


transformación de algún tipo de energía.

1.1 Acondicionamiento de señales

Muchas aplicaciones implican medidas ambientales o mecánicas mediante sensores, como es el caso de la
temperatura y las vibraciones. Estos sensores, a su vez, requieren el acondicionamiento de las señales antes
de que un dispositivo de adquisición de datos pueda medir con eficacia y precisión la señal. El
acondicionamiento de señal es uno de los componentes más importantes de un sistema automatizado; ya
que, sin la optimización de las señales del mundo real para el digitalizador que se esté utilizando, no se
puede confiar en la exactitud de la medida.
1.2 Etapa de Control

El control es una parte grande de la automatización ya que abarca tres puntos:

• Captación de información:

Esta primera fase se ocupa de la recolección de los datos iniciales sobre los que trabajará posteriormente la
computadora que se encarga de la automatización del proceso. Para ello, se hace uso tanto de sensores
como de acondicionadores para pasar a captar esta información y posteriormente procesarla.

• Procesado:

En esta fase, los datos recopilados han pasado al ordenador encargado de analizarlos e interpretarlos. Se
trata de la fase menos visible ya que se realiza a través del procesamiento de software. Sin embargo, es de
vital importancia, dado que será la que determinará qué habrá que hacer en cada caso.

• Decisión:

Una vez que la información ha sido obtenida y procesada, la computadora toma una decisión y elabora la
respuesta que los sistemas automatizados deben tomar para responder con una solución adecuada a las
necesidades de cada caso y en cada momento.

1.3 PLC
1.3.1 ¿Qué es un PLC?
El PLC es un controlador lógico programable, y se lo llama así por sus siglas en inglés. Es un computador
robusto de uso industrial. Este computador está diseñado para resistir rangos de temperatura amplios, ser
inmune al ruido eléctrico, y tener cierta resistencia a la vibración y al impacto.

1.3.2 El objetivo del PLC en la industria.


Un PLC está diseñado para controlar en tiempo real y en ambiente de tipo industrial, procesos secuenciales,
automatizando distintos sistemas.

Algunas de las ventajas que estos equipos poseen son el ahorro de tiempo en la elaboración de proyectos,
permitir realizar modificaciones sin costos adicionales, un tamaño reducido y su mantenimiento es de bajo
costo.

1.3.3 Arquitectura de un PLC.


Los elementos que integran un PLC son:

• Fuente de alimentación

• Unidad central de proceso

• Módulos de entrada/salida digitales y analógicas

• Módulos especiales

• Dispositivo de programación

1.3.4 Tipos de PLC

1.3.4.1 PLC tipo Nano


Es un PLC de tipo compacto que integra todos sus componentes (fuente, CPU, módulos I/O, etc) y se utiliza
en procesos no muy complejos. Tiene un número reducido de entradas y salidas que comprenden un
número máximo aproximado a 100.

1.3.4.2 PLC tipo Compacto


Su estructura es similar a la de los PLC Nano con la diferencia que este tiene una mayor cantidad de
entradas y salidas. También tiene más elementos de trabajo como módulos especiales de conteo rápido,
módulos de entradas para termocuplas, módulos de interfaces de comunicación, entradas y salidas
analógicas de voltaje y corriente, etc.
1.3.4.3 PLC tipo Modular
La principal ventaja y característica de estos equipos es que nos permiten utilizar las entradas y salidas
necesarias facilitándonos la ampliación de nuestro proceso sin necesidad de cambios grandes en su
estructura de hardware y software.
2 Entorno de programación FPWIN
FPWIN es un software de programación según el estándar internacional IEC61131-3. En la cual se permite
programar cualquier autómata de la serie FP de Panasonic.

Algunas de las ventajas de FPWIN son:

• Gracias al estándar IEC 61131-3, FPWIN es flexible y compatible con todo tipo de problemas de
control industrial.

• Puesta en funcionamiento y programación sencillas

• 5 lenguajes de programación (lista de instrucciones, diagrama de contactos, diagrama de bloques


de funciones, diagrama secuencial de funciones, texto estructurado)

• Navegador bien estructurado que proporciona una visión efectiva de las POUs (Programming
Organization Units), de las tareas, de los registros del sistema, etc. que simplica la gestión del proyecto

• Reutilizar las funciones y los bloques de funciones ahorra tiempo de programación y de depuración.

• Se pueden forzar a ON/OFF las entradas y las salidas desde el PC

• Comentarios extensos- documentación online creada a partir del programa


2.1 IEC 61131-3

Es el estándar internacional para controladores lógico programables realizado por la Comisión


Electrotécnica Internacional. Esta normativa integra lenguajes de programación modernos y bien conocidos
en la industria de la automatización. Permite integrar equipos de diferentes marcas ya que es
independiente de un solo fabricante. Gracias a esto se incrementa la reutilización de los códigos realizados.

Esta normativa define:

• La estructura de un proyecto.

• La sintaxis y semántica de los 5 diferentes lenguajes con los que se puede trabajar: IL, ST, FBD, LD y

SFC.

• Los tipos de bloques de funciones, programas, etc.

• La declaración de variables.

2.2 Introducción al FPWIN

El software de programación FPWIN es una potente herramienta de ingeniería con la que se pueden realizar
controles industriales complejos debido a su flexibilidad en cuanto a programación se refiere. Se puede
crear funciones y bloques de funciones personalizados que pueden ser escritos y utilizados en cualquiera de
los 5 lenguajes de programación que dispone.

2.3 Estructura de un proyecto


Un proyecto en FPWIN consiste en POUs (unidades de organización del programa), similares a las funciones
en lenguaje C. Este proyecto se ejecuta cíclicamente.
Un proyecto se compone de:

2.3.1 POU's

Es una secuencia de líneas de código. Existen tres tipos: programas, bloques de funciones y funciones.

• Programas: Es el programa principal que integrará a los distintos objetos creados.

• Bloques de Funciones: Es un bloque con varias entradas y una o más salidas. Tiene memoria
estática por lo que cada bloque de función debe ser declarado con una variable.

• Funciones: En un bloque con varias entradas y solo una salida. No tiene memoria estática.

2.3.2 Tipos de datos

Existen distintos tipos de datos estandarizados en la norma IEC 61131-3. A continuación se detallan algunos
de estos.
Tipo de Variable Observaciones
Booleano BOOL Relé interno del PLC. Ocupa 1 bit. Su valor puede variar entre 0 y 1.
Registro interno del PLC en formato de número entero con signo. Ocupa 16
Entero con signo INT
bits. Su valor puede variar entre -32768 y +32767.
Registro interno del PLC en formato de número entero sin signo. Ocupa 16
Entero sin signo UIN
bits. Su valor puede variar entre 0 y +65536.
Registro interno del PLC en formato de número entero con signo. Ocupa 32
Doble Entero con signo DINT 9 9
bits. Su valor puede variar entre -2,15x10 y +2,15x10 .
Registro interno del PLC en formato de número entero sin signo. Ocupa 32
Doble Entero sin signo UDINT
bits. Su valor puede variar entre 0 y +4,29x10 9.
Registro interno del PLC en formato hexadecimal. Ocupa 16 bits. Su valor
Palabra WORD
puede variar entre 16#0000 y 16#FFFF.
Registro interno del PLC en formato hexadecimal. Ocupa 32 bits. Su valor
Doble Palabra DWORD
puede variar entre 16#00000000 y 16#FFFFFFFF.
Registro interno del PLC en formato de número real. Ocupa 32 bits. Según
Real REAL
el estándar IEC754.

2.3.3 Interfaz de programación

Aquí es donde se va a integrar todos los objetos de programación, funciones, bloques de función y variables.
Para familiarizarnos con este tema, resolver Práctica 1: Conexión USB serial con PLC.

2.4 Lenguajes de programación FPWIN


Existen cinco lenguajes de programación dentro de FPWIN basados en la normativa IEC 61131-3.

2.4.1 Lista de instrucciones (IL)

• Lenguaje de texto.

• Lenguaje parecido al ensamblador.

• No se puede realizar programación estructurada.

2.4.2 Texto Estructurado (ST)


• Lenguaje de texto.

• Lenguaje de programación de alto nivel.

• Es el lenguaje recomendado para la ejecución de condicionales y bucles.


2.4.3 Diagrama de bloques de funciones (FBD)
• Lenguaje gráfico orientado a redes.

• Es muy fácil de entenderlo.

• Consiste en bloques y operadores.

2.4.4 Diagrama de escalera (LD)


• Lenguaje gráfico orientado a redes.

• Utilizado en casi todos los PLC clásicos.

• Trabaja bien con expresiones booleanas.

• Difícil de programar con valores analógicos.

2.4.5 Diagrama secuencial de funciones (SFC)

• Lenguaje gráfico.

• Este lenguaje ayuda a estructurar un programa.

• No se puede convertir a otros lenguajes.


2.5 Variables y Tipos de Variables

Las variables representan un espacio de memoria dentro de nuestro PLC y estas pueden ser leídas y escritas
para almacenar valores. FPWIN cuenta con un asistente para la declaración de variables. Es recomendado
su uso para evitar errores facilitándonos el trabajo de manera inicial.

Algunos de los beneficios del uso de variables, en contra del uso del direccionamiento directo de los
elementos del PLC, son los siguientes:

• Reduce los errores de programación.

• Las variables permiten dar información al usuario de su significado y uso y forman parte de la
documentación del proyecto.

• Fácilmente seleccionables y utilizables a lo largo de la programación. Facilitan de forma


importante la legibilidad del proyecto, incluso por personal ajeno a la misma.

• El compilador utiliza las direcciones libres de forma automática y compacta. Por lo tanto, no es
necesario el control de las direcciones libres en el PLC.

• Las opciones asociadas al uso de variables como son: Renombrar, Ir a la Declaración, Borrar Variables no

Usadas, Abrir Referencias Cruzadas, etc. facilitan en gran medida la depuración de la aplicación.
2.5.1 Variables Globales
Es importante memorizar los siguientes conceptos

Componentes de las variables globales

Componentes en la declaración de una variable global:

CLASE: Tipo de variable entre Var_Global, Var_Global_Retain y Var_Global_Constant

Las variables de este tipo son aquellas que pierden su valor al apagar la CPU.

Aquellas que mantienen su valor al apagar la CPU.

No ocupan direcciones de memoria y su valor es constante

Nota: Para que una variable sea de retención, los PLCs normalmente requieren de una batería externa (o
interna para el AFP0RT).

IDENTIFICADOR: Nombre de la variable

DIRECCIÓN FP: Área de memoria en notación Panasonic (Ejemplo X0)

DIRECCIÓN IEC: Área de memoria en notación IEC61131 (Ejemplo %IX0.0)

TIPO: Seleccionar entre los diferentes tipos de variables como: INT, BOOL, etc.

Los posibles tipos de variables y su rango de valores son los siguientes:


De ellas, las más básicas y las más utilizadas son:
Tipo de Variable Observaciones
Booleano BOOL Relé interno del PLC. Ocupa 1 bit. Su valor puede variar entre 0 y 1.
Registro interno del PLC en formato de número entero con signo. Ocupa 16
Entero con signo INT
bits. Su valor puede variar entre -32768 y +32767.
Registro interno del PLC en formato de número entero sin signo. Ocupa 16
Entero sin signo UIN
bits. Su valor puede variar entre 0 y +65536.
Registro interno del PLC en formato de número entero con signo. Ocupa 32
Doble Entero con signo DINT 9 9
bits. Su valor puede variar entre -2,15x10 y +2,15x10 .
Registro interno del PLC en formato de número entero sin signo. Ocupa 32
Doble Entero sin signo UDINT 9
bits. Su valor puede variar entre 0 y +4,29x10 .
Registro interno del PLC en formato hexadecimal. Ocupa 16 bits. Su valor
Palabra WORD
puede variar entre 16#0000 y 16#FFFF.
Registro interno del PLC en formato hexadecimal. Ocupa 32 bits. Su valor
Doble Palabra DWORD
puede variar entre 16#00000000 y 16#FFFFFFFF.
Registro interno del PLC en formato de número real. Ocupa 32 bits. Según
Real REAL
el estándar IEC754.

2.5.2 Variables Locales. Cabecera de la POU:


Las variables locales son aquellas que se definen en la cabecera de la POU. Están compuestas por las
variables globales que se utilizan en esta POU (llamadas como Var_External, Var_External_Retain y
Var_External_Constant según proceda) y por las variables locales que afectan solamente a esta POU y no es
necesario direccionar porque no se van a monitorizar.

Sus campos de declaración son los mismos que los de las variables globales salvo que no dispone de los
campos Dirección FP, Dirección IEC.

2.5.3 Creación de Variables


Si se desea crear una nueva variable dentro de un POU, ir al menú HERRAMIENTAS y seleccionar la opción
Nueva Variable o pulsar Alt+N.

Inmediatamente se abrirá la ventana de declaración de variables.


En esta ventana se puede definir la clase de variable, el nombre de la variable, el tipo de variable, valor
inicial, y se puede añadir un comentario acerca de la variable.

Las variables creadas, se muestran en la ventana de declaración de variables en la parte superior del área de
trabajo del objeto en el que se trabaje.

Si no se quiere utilizar el asistente de declaración de variables, su puede hacerlo manualmente. En la


ventana de declaración de variables, escribir el nombre y el tipo de dato dentro de la clase de dato
requerido.

2.5.4 Declaración de Variables

Es aconsejable declarar las variables con un nombre que de la máxima información al programador. De
esta forma el programa será mucho más legible y será más sencillo localizar una variable en el proyecto.
A continuación se muestra una tabla con una serie de recomendaciones a la hora de declarar los distintos
tipos de variables. De esta forma se facilitará enormemente localizar una variable en programas largos
con muchas variables.

Prefijo Significado
g_ Variable Global
a Array
b Booleano
x Entrada Digital
y Salida Digital
wx Entrada Analógica
wy Salida Analógica
i Entero con signo
u Entero sin signo
di Doble Entero con signo
du Doble Entero sin signo
w Palabra
dw Doble Palabra
bcd Dato en BCD
r Real
s String
t Time
dt Date and Time
d Date
tod Time Of Day
dut Data Unit Type
fb Function Block

Así por ejemplo es muy fácil localizar variables tales como:


g_xSensor_Caja, g_wyVelocidad_Variador, g_iVehiculos_Contados,…

2.6 Ejecución de programas


FPWIN maneja dos modos de trabajo con los programas realizados, modo online y modo online-run.

2.6.1 Modo Online


En este modo las salidas físicas del PLC permanecen inactivas mientras el programa se está ejecutando, es
un modo en el cual el programador puede probar el funcionamiento del programa sin tener necesariamente
que activar sus salidas y afectar al proceso.

2.6.2 Modo Online-Run


En este modo se manda a correr el programa dentro del PLC habilitando sus salidas físicas, tanto en el modo
online como el modo online-run se puede visualizar los cambios en las variables y el funcionamiento del
programa dentro del PLC.

2.7 Escribir valores


Cuando este corriendo el programa, dar doble clic sobre las variables para que cambien de estado.
Ahora el estado de la variable cambiará a alto y se cerrará el circuito activando también la bobina.

Una forma alternativa de realizar la escritura de valores en variables es en la cabecera dar click derecho y
seleccionar monitorizar cabecera.

Se visualiza los valores en hexadecimal, si se requiere observar en decimal se da click derecho al valor que
se desea visualizar mostrar y se elige decimal

Para familiarizarnos con este tema, resolver Práctica 2: Creación de un programa básico.
3 Programación en diagrama de escalera

3.1 Conceptos básicos


Es un lenguaje gráfico derivado de la lógica de relés. Trabaja con símbolos que representan contactos,
bobinas, etc. Estos diagramas describen distintos tipos de operaciones eléctricas y se utilizan para facilitar
un sistema de control.

La línea vertical de la izquierda representa la tensión y la línea vertical derecha representa el neutro o la
tierra con el que se cerrará el circuito.

Los símbolos básicos de un diagrama de escalera según la normativa IEC 61131-3 presentes en FPWIN son
los siguientes:

Contacto normalmente abierto

Contacto normalmente cerrado

Contacto normalmente abierto en paralelo

Contacto normalmente cerrado en paralelo

Bobina

Estos contactos nos permiten trabajar con entradas y salidas digitales dada a su característica de crear
controles todo o nada.
3.2 Comparación con diagrama eléctrico

Los diagramas de escalera se caracterizan por su similitud con los diagramas eléctricos. La diferencia es la
orientación de las líneas de tensión y neutro, en diagramas eléctricos horizontales y en diagramas de
escalera verticales. Basándonos en los conocimientos de diagramas eléctricos es más fácil entender la
programación en este lenguaje.

En el siguiente diagrama hay tres pulsadores. Dos en paralelo normalmente abiertos y uno en serie
normalmente cerrado. La salida es una lámpara indicadora.

Aquí hay dos contactos normalmente abiertos en paralelo y uno normalmente cerrado en serie. A estos
contactos se les asignará una variable direccionada a dos entradas digitales. La salida es una bobina, esta
también estará asignada a la variable correspondiente a la salida digital.

3.3 Conexiones en Serie y en Paralelo


Para realizar conexiones en serie o en paralelo dentro de un diagrama de escalera, es necesario conocer
bien las funciones de la barra de instrucciones.

Para insertar dos contactos en serie se presiona el ícono de contacto y se mantiene presionado ctrl, de
esta forma se insertan varios contactos.
Para insertar dos contactos en paralelo, es necesario primero agregar dos contactos, uno encima del otro y

seleccionar o simplemente dibujar la línea con

Para familiarizarnos con la programación en diagrama de escalera, resolver Práctica 3: Control de luz de
escalera.

3.4 Funciones básicas


Las funciones más complejas como temporizadores, contadores u otras, se representan en formato de
bloques. Estos también están normalizados según la IEC 61131-3. Algunas de ellas se explican a
continuación.

3.5 Funciones Biestables

Estas funciones nos permiten mantener en uno de los dos estados durante un tiempo indefinido sin le
presencia de perturbaciones. La más utilizada es el Set/Reset.

3.5.1 Bobinas SET y RESET

En diagrama de escalera tenemos bobinas con la funcionalidad SET y RESET. Cuando se activa una bobina
SET, esta se quedará en este estado hasta que una bobina RESET correspondiente sea activada. En estas
bobinas el RESET tiene prioridad. Con estas bobinas podemos realizar enclavamientos.

En esta red podemos ver una bobina SET y RESET que son activados con interruptores o contactos.
Cuando se activa la bobina SET se mantendrá en alto a pesar de que el interruptor se haya apagado.

Contacto Set ON

Contacto Set OFF

Cuando activamos la bobina RESET se mantendrá en bajo a pesar de que el interruptor se haya apagado.

Contacto
Reset ON

Contacto
Reset OFF
De igual forma se tienen bloques que reúnen las dos características, se los puede encontrar en la paleta de
instrucciones:

La entrada S haría la función SET, y la entrada R haría la función Reset de la bobina salida.

Para familiarizarnos con el uso de funciones biestables, resolver Práctica 4: Control de dispositivo
Punzonador.
3.5.2 Temporizadores
Estas funciones, al alcanzar cierto valor de tiempo, activan un contacto interno. Este valor se declara por el
usuario y es conocido como preset time (PT). Las condiciones para que empiece la cuenta se las indica en la
entrada (IN). La salida (Q) actuará dependiendo del tipo de temporizador.

El valor de tiempo se lo ingresa en el siguiente formato:

T#3s tres segundos

T#2h45m dos horas y cuarenta y cinco minutos

T#50ms cincuenta milisegundos

3.5.2.1 Timer On (TON)


Este es un temporizador de retardo a la conexión es decir, al detectar un flanco de subida en la entrada (IN),
empezará la cuenta hasta alcanzar el tiempo predeterminado (PT), activará la salida (Q). Si la duración de la
entrada (IN) es menor que la del tiempo seteado, la salida se mantendrá en cero.

3.5.2.2 Timer Off (TOF)


Este es un temporizador de retardo a la desconexión es decir, al detectar un flanco de bajada en la entrada
(IN), empezará la cuenta hasta alcanzar el tiempo predeterminado (PT), y desactivará la salida (Q). La salida
cambia a alto cada vez que detecta una entrada en alto.
3.5.2.3 Pulse Timer (TP)
Este temporizador se activa con un pulso en su entrada (IN) y activará la salida (Q) durante un tiempo
predeterminado (PT).

Para seleccionar cualquiera de estos bloques se los buscará en la paleta de instrucciones con el nombre del
bloque o en la carpeta de instrucciones temporizador CT.
Sobre el bloque se ingresa el nombre correspondiente a la variable con la que se llamara a esta función. Por
ejemplo TP1 al dar enter se selecciona el tipo de función que se asignará a la variable.

Para familiarizarnos con el uso de temporizadores, resolver Práctica 5: Control encendido de 3 motores.

3.5.3 Contadores

Esta función permite contabilizar cuántas veces se recibe una entrada de modo que al llegar a un valor
predeterminado se active una salida. De la misma manera se puede utilizar el valor de la cuenta como una
variable de salida.

3.5.3.1 Contador CTU

Este contador incrementará una unidad cada vez que se detecte un flanco de subida en la entrada CU. El
valor de la cuenta es reiniciado desde la entrada reset (R). Se puede incluir un valor predeterminado de
forma que al alcanzarlo se activará una salida (Q). El valor actual de la cuenta también se lo puede obtener
como un entero (INT) desde CV.
3.5.3.2 Contador CTD
Este contador decrementará una unidad cada vez que se detecte un flanco de subida en la entrada CU. El
valor de la cuenta es reiniciado desde la entrada reset (R). El valor inicial de la cuenta se los ingresa desde
PV. El valor actual de la cuenta también se lo puede obtener como un entero (INT) desde CV. La salida (Q) se
activará cuando la cuenta llegue a cero.

3.5.3.3 Contador CTUD


Este contador puede trabajar como CTD y como CTU al mismo tiempo. Tendrá dos salidas, una cuando la
cuenta llega a cero y otra cuando llegue al valor predeterminado (PV). También tiene dos entradas, con las
que incrementará (CU) y decrementará (CD) respectivamente. La entrada LD permite volver al valor
predeterminado.

Para seleccionar un bloque de contadores, se realiza un proceso muy parecido al de los bloques
temporizadores. Seleccionaremos el bloque de la paleta de instrucciones.

Al seleccionarlo, se le asignará un nombre para luego seleccionar sus características.


3.5.4 Trigger
Estas funciones detectan flancos de subida o de bajada para activar una salida.

3.5.4.1 Flanco de subida (R_TRIG)


La salida (Q) se mantendrá en falso mientras la entrada (CLK) sea falsa. Apenas se haga verdadera la entrada,
la salida cambiará de estado a verdadero pero volverá a falso hasta detectar otro flanco de subida.

3.5.4.2 Flanco de bajada (F_TRIG)


La salida (Q) se mantendrá en falso mientras la entrada (CLK) sea verdadera. Apenas se haga falsa la entrada,
la salida cambiará de estado a verdadero pero volverá a falso hasta detectar otro flanco de bajada.

También se lo puede realizar cambiando el tipo de contacto, dando doble click en el contacto y cambiando
sus características a las deseadas

Para familiarizarnos con los bloques de contadores y bloques Trigger en diagrama de escalera, resolver
Práctica 6: Contador de producto en Banda Transportadora.
3.6 Bloques con ENABLE
Dentro de los diagrama de escalera se puede utilizar bloques con ENABLE. Estos bloques nos permiten
trabajar con diferentes operadores y funciones. Son iguales a los bloques comunes, pero cuentan con una
entrada adicional con la nomenclatura EN (enable). El ENABLE controla de forma booleana la activación o
desactivación del bloque. Si la entrada correspondiente a EN esta en alto, el bloque realizará la operación
asignada, en caso contrario no trabajará. Los operadores más comunes son suma (ADD), resta (SUB),
multiplicación (MUL), etc.

Este ejemplo si EN esta en alto va a realizar la suma entre los valores que van a sumando1 y sumando2.

3.6.1 Bloques Enable para Mover datos

Este bloque sirve para mover datos fijos o variables a nuevas variables dentro de la programación; este
bloque es útil para poder pasar valores fijos a datos variables de temporizadores o contadores.

El uso más común de este bloque es para poder resetear valores en bloques de función que no contengan
reset como por ejemplo temporizadores o bloques de función creados por el programador.
3.6.2 Bloques Enable Temporizadores y Contadores

Se pueden tener bloques de temporizadores con habilitación, para poder seleccionar este tipo de bloque se
debe dar clic derecho en la función y seleccionar la función de Enable.

Para integrar los conocimientos adquiridos en diagrama de escalera, resolver Práctica 7: Control de una
tolva y banda transportadora separadora.
4 Entorno de programación GTWIN
GTWIN es un software de creación de pantallas diseñado para la serie GT. Con GTWIN se puede diseñar
pantallas y descargarlas a un panel táctil GT. Asimismo puede componer mensajes o gráficos. GTWIN
contiene gran cantidad de objetos predefinidos que le facilitarán el diseño rápido y sencillo de sus pantallas,
entre los cuales se incluyen, interruptores, indicadores luminosos, relojes, teclados, etc. Sólo necesita
arrastrarlos y colocarlos en su pantalla.

Ventajas de GTWIN :

• Transferencia de recetas entre el PC, pantalla GT y el PLC

• Editor Bitmap

• Las fuentes incluyen una fuente TrueType de GTWIN. así como todas las fuentes Windows
instaladas en el PC.

• Función multilenguaje disponible

• Funciones de seguridad como niveles de seguridad y contraseñas


Menú y cuadros de diálogo multilenguaje

La interfaz de usuario gráfica está disponible en inglés, alemán, italiano, español, francés, japonés y chino
simplificado.

Gráficos:

Se puede crear pantallas fácilmente tan solo arrastrando objetos de la librería y soltándolos en el
lugar deseado. Los botones 3D con visibilidad y manejabilidad mejorada permiten crear pantallas
profesionales.

Librerías con objetos intuitivos

Existen numerosas librerías de objetos intuitivos disponibles que, además, son de fácil accesibilidad.
4.1 Introducción al GTWIN
El software de programación GTWIN es una herramienta de ingeniería versátil y de uso sencillo con la que
se pueden realizar visualizaciones de procesos industriales de una forma flexible y de fácil orientación. Se
puede crear recetas y recetarios con los cuales el operario puede parametrizar un sistema de forma sencilla.

4.2 Estructura de un proyecto

La estructura de un proyecto en GTWIN consiste en un explorador colocado a la derecha de la interfaz que


contiene las pantallas creadas por el usuario, en la parte izquierda se tiene el explorador de objetos que se
pueden insertar, se tienen objetos tanto monocromáticos como a color. El direccionamiento de variables del
PLC a la visualización de la pantalla es sencillo ya que simplemente se selecciona el tipo de PLC con el que se
va a trabajar y se debe apuntar a su dirección de memoria.

4.2.1 Crear un Nuevo Proyecto

Al abrir la interfaz de GTWIN tenemos el siguiente cuadro de dialogo

Al presionar Open Existing File, podremos navegar en nuestro computador para poder abrir proyectos
anteriores.
Al presionar Read From GT se podrá subir la información que está actualmente en la pantalla GT:

En esta ventana se selecciona todos los parámetros que se desea obtener de la pantalla, como un ejemplo
si se desea leer los datos de una pantalla GT03 en comunicación se deberá elegir lo siguiente:

Ya que este tipo de pantalla se comunica por USB serial al computador. Una vez realizado esto simplemente
se da en OK y se leerán los datos de la pantalla.
Al presionar Create New File aparece el siguiente dialogo de selección de modelo de pantalla y PLC con el
que se va a comunicar:

Modelo GT:
Permite seleccionar el modelo de GT de la lista desplegable del cuadro de texto.

Modelo PLC:

Permite seleccionar el modelo de PLC de la lista desplegable del cuadro de texto. Observe que algunos PLCs
de otros fabricantes podrían no funcionar con todos los modelos de GT.

Conservar Configuración Actual

Seleccione esta casilla de verificación para que la próxima vez que cree un nuevo proyecto, aparezcan como
predeterminados los modelos de GT y PLC seleccionados.

El siguiente cuadro que aparecerá es el de selección del área de comunicación:


Esta palabra que se selecciona servirá a futuro para poder manejar ciertos parámetros de la pantalla, a
continuación se describen los Bits asignados a cada función específica de la pantalla.

4.2.2 Árbol de Pantallas

Se tiene tres tipos de visualizaciones del árbol donde se encuentran las pantallas creadas:
En este árbol podemos seleccionar las pantallas tanto normales o base, pantallas de Login, pantallas de
teclado:

Pantallas Base: Son las pantallas en las que se van a programar los controles normales como pulsadores,
visualización de datos, graficos, etc.

Pantallas de Login: Este tipo de pantallas se utilizan para poder ingresar usuarios y contraseñas para poder
acceder a los diferentes niveles de seguridad de la pantalla.

Pantalla de teclado: En estas pantallas se dibujaran los diferentes teclados que se van a utilizar en la
visualización, por ejemplo para ciertas entradas de datos se necesitará un teclado decimal o un teclado
hexadecimal.

4.2.3 Librería de Partes

En esta parte el programador dispone de todos los símbolos y controles que este HMI puede manejar.

Puede tener controles como botones normales, botones de función, entradas de texto, teclados, lámparas,
Botones 3D, etc.
4.2.4 Barra de Herramientas

En esta Barra se tiene objetos para dibujar, selección de lenguaje, y la barra para descargar el programa a la
pantalla.

4.3 Configurar Pantalla de Inicio

Se debe crear una nueva pantalla, en esta se deberá insertar todo lo que se va a mostrar en la pantalla de
inicio, por ejemplo un Logotipo.
Después se debe ir a System Settings start-up Screen aquí se seleccionará el número de la pantalla
creada y el tiempo que va a aparecer.

4.4 Direccionamiento de variables al PLC

Para direccionar variables al PLC se debe dar doble clic al elemento que se quiere vincular con una variable
y se debe dirigir a basic settup.

4.4.1 Direccionamiento Botones:

Se debe poner la dirección de memoria donde está la variable que se va a vincular en la opción Result
Output, en este caso es la dirección de registro R100.

Se elige cual es la acción que se desea para ese elemento, por ejemplo Momentary para cambiar el estado
de 0 a 1 mientras se esté pulsando el botón.
4.4.2 Direccionamiento Entradas de Texto

Se debe poner la dirección de memoria donde está la variable que se va a vincular en la opción Reference
device, en este caso es la dirección de registro DT100.

Es muy importante seleccionar el tipo de dato que se va a leer, en este caso se va a leer un dato tipo
decimal con 5 dígitos, después se selecciona el formato y tamaño de la letra.
4.4.2.1 Inserción de Teclado

Para cada Entrada de Texto se debe seleccionar un teclado, el primer paso es dibujar un teclado, es aquí
donde se tiene dos opciones, dibujar el teclado en la misma pantalla donde está la entrada de texto, o
llamar a una pantalla de teclado. Para realizar esta selección se debe ir a la pestaña input y seleccionar el
método de entrada que se desee.

Para este ejemplo se está seleccionando a la pantalla 1 de teclado cuando se presione en la entrada de
texto. Para poder crear una pantalla de teclado se deberá crear una pantalla de teclado en el árbol de
pantallas de teclado.

Para familiarizarnos con este tema, resolver Práctica 8: Visualización y manejo de datos de contadores y
temporizadores.
4.4.3 Direccionamiento Lámparas.

Este tipo de objetos sirven para mostrar el estado de los bits de una variable.

Para direccionar la variable al PLC lo único que hay que hacer es dar doble clic al elemento y poner la
dirección de la variable del PLC que se desea mostrar.

En este ejemplo se direccionó a la variable R100; este objeto cambiara su estado cuando el bit R100
también lo haga.

4.4.4 Gráficos

Los gráficos en GTWIN son gráficos de fácil uso ya que solamente se debe crear la variable que se va a
monitorear y se lo añade al grafico que deseemos. Para esto se debe ir a System Settings -> Line graph.
Se añade la variable que se va a monitorear y se la direcciona a una variable del PLC, en el siguiente ejemplo
se crea la variable SENSOR TEMPERATURA y se lo direcciona a la variable DT100 del PLC, como se puede
observar solo se puede direccionar este tipo de variables datos Enteros del PLC.

Una vez realizado esto, se pasa a crear un gráfico de líneas en el HMI.

Al dar doble clic en el grafico tenemos el setteo del mismo, en el cual seleccionaremos el grafico que se va a
desplegar, y el modo de mostrar estos datos.
También se puede dar limites a los ejes en la pestaña Element Setup, en el siguiente ejemplo los límites son
30 y -20.

Es muy útil también poner líneas fijas, esto puede ayudar a la gráfica poner límites de Set Point o límites de
alarma.
Se debe poner los limites exactamente en los que esta la línea en la que se requiere poner el límite, ya que
de otra forma se escalará los valores y la línea fija no estará posicionada en un valor real.

4.4.5 Mensajes

Este es un tipo de objeto que permite mostrar un mensaje dependiendo de los bits dentro de una palabra
de control.

Para poder utilizarlo se debe direccionar a una variable del PLC que será la palabra de control, en el
siguiente ejemplo esta palabra es la WR0 y el bit por donde va a empezar la lectura será el 0.

Para cambiar el contenido de los diferentes mensajes se debe ir a la pestaña Character Type, como se puede
observar cada espacio tiene un mensaje, como la palabra de control es una palabra de 16 bits se puede
crear 16 mensajes, es decir uno por cada bit.
Bit 0 Bit 1 Bit 2 Bit 4…. Mensaje N°
0 0 0 0 0
1 0 0 0 1
0 1 0 0 2
1 1 0 0 3

Para familiarizarnos con Mensajes y gráficos lineales se realizará posteriormente la Práctica 10: Lectura y
Acondicionamiento de señal de sensor análogo. Cuando se pase a la parte de programación en bloques.
5 Programación en diagrama de bloques
Es un lenguaje gráfico de programación conocido como FBD por sus siglas en inglés. Está estandarizado por
la IEC 61131-3 y adaptado para su uso en FPWIN se caracteriza por ser fácil de usar y sus bloques fáciles de
entender.

Las funciones pre programadas o los bloques de funciones hacen posible resolver tareas complejas sin la
necesidad de mayores conocimientos sobre programación.

5.1 Operadores básicos

5.1.1 AND
Es un operador lógico digital que implementa la conjunción lógica. Su tabla de verdad es la siguiente:

X Y X AND Y
0 0 0
0 1 0
1 0 0
1 1 1

Este bloque es el predeterminado cuando se selecciona uno nuevo desde la paleta de instrucciones, en la
carpeta instrucciones booleanas.
5.1.2 OR
Es un operador lógico digital que implementa la disyunción lógica. Su tabla de verdad es la siguiente:

X Y X OR Y
0 0 0
0 1 1
1 0 1
1 1 1
Este bloque es el predeterminado cuando se selecciona uno nuevo desde la paleta de instrucciones, en la
carpeta instrucciones booleanas.

5.1.3 NOT
Es un operador lógico digital que implementa la negación lógica. Su tabla de verdad es la siguiente:

X NOT X
0 1
1 0

5.1.4 XOR
Es un operador lógico digital que implementa una disyunción exclusiva. Su tabla de verdad es la siguiente:

A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

5.1.5 Ejemplo de un programa en diagrama de bloques de funciones


Para empezar con la programación en FBD se va a crear un programa utilizando bloques básicos y así
entender el funcionamiento de este lenguaje.

Una vez creado el programa en diagrama de bloques se tiene la siguiente pantalla. En el recuadro trazado
con líneas entre cortadas se deberá colocar el primer bloque. Para esto se busca el ícono de bloques en la
paleta de instrucciones.

El bloque a escoger es el operador AND; al lado izquierdo del bloque escribir las variables de entrada y al
derecho escribir la variable de salida. Para este ejemplo utilizar dos variables booleanas globales
direccionadas a las dos primeras entradas digitales y una variable booleana global direccionada a la primera
salida digital.
Ahora se creará una red nueva. En esta repetir el mismo bloque con las mismas entradas. La diferencia
entre la primera línea y la segunda será que la entrada 2 estará negada.

Ahora insertar una nueva línea en la que se utilizará un operador OR para relacionar las dos variables
salida1, salida2 y una entrada adicional más que se llamara entrada2. La salida será una variable boolena
global direccionada a la segunda salida digital y la llamaremos salida3, (para añadir más entradas se pulsa
con el puntero del mouse en la esquina inferior derecha del bloque y se lo arrastra).
El programa quedará de la siguiente forma.

La programación en bloques es similar a la programación ladder solamente se debe tener en cuenta las
siguientes conversiones.

Para familiarizarnos con la programación en diagrama de bloques, resolver Práctica 9: Control de ventilación
en tunel vehicular.
5.2 Operadores de comparación

Mayor (GT)
resultado_1 = 1, si operador_A > operador_B

Mayor o igual (GE)


resultado_2 = 1, si operador_A >= operador_B

Igual (EQ)
resultado_3 = 1, si operador_A = operador_B

Menor o igual (LE)


resultado_4 = 1, si operador_A <= operador_B

Menor (LT)
resultado_5 = 1, si operador_A < operador_B

No igual (NE)
resultado_6 = 1, si operador_A ≠ operador_B

Estos bloques se los encuentra en la paleta de instrucciones, en la carpeta instrucciones de comparación.

5.3 Operadores computacionales


Existen varios operadores computacionales dentro de la normalización IEC 61131-3 por lo que también
están presentes en el programa FPWIN.

Suma

Resta

Multiplicación

División

Para la implementación de estos bloques es importante seguir las reglas básicas del algebra. Por ejemplo,
las multiplicaciones se realizan antes que las sumas.
5.4 Funciones básicas
Las funciones explicadas en la programación de diagramas de escalera, como temporizadores y contadores,
son las mismas que se trabajan en los diagramas de bloques.

5.5 I/O analógicas


Las señales analógicas permiten conocer la proporción en la que está actuando un elemento o sus
características sensadas. Dentro de la instrumentación industrial, una gran parte de sensores trabajan de
forma analógica. Mediante conversiones se puede obtener en las unidades deseadas la transformación de
una señal eléctrica.

Las señales analógicas son convertidas a valores digitales desde los módulos especiales de entrada y salida.
Los valores que entregan estos módulos son secuencias de bits de longitudes diferentes dependiendo de la
resolución con la que trabaje el equipo. Dependiendo de la longitud de la secuencia de bits, los cambios
entre los valores serán más o menos sensibles.

5.5.1 Entradas analógicas


Se puede realizar conversiones de los valores entregados por los módulos analógicos. Mediante el uso de
bloques de conversión de tipo de datos y bloques operadores como suma, resta, multiplicación y división se
realizan las operaciones necesarias para obtener el valor real de voltaje que ha ingresado.

Por lo que se recibe un dato de tipo WORD desde un sensor. Este será un valor desde 0 a 4000 (resolución
12 bits) equivalentes al voltaje de 0 a 10 VDC.
5.5.2 Salidas analógicas
Si se quiere entregar cierto valor de voltaje desde el módulo de salida analógica, se debe convertir ese valor
dependiendo del tipo de dato con el que trabaje la tarjeta.

Por lo que se envía un dato del tipo WORD desde el PLC hacia otro elemento el cual estará en un rango
entre 0 y 4000 para el FPX y 16000 para el FP0R representando un voltaje desde 0 a 10[V] o el valor que se
configure.

5.5.3 Bloque Lectura escritura Análogo FP0R

Debido a la alta resolución de este canal análogo se debe utilizar un bloque para su lectura, como se puede
apreciar en la siguiente imagen se puede tener varias configuraciones analógicas:

Descripción de entradas y salidas de este bloque:

1.-iIOWordOffset (INT)

Establece el offset de la primera dirección WX/WY del módulo analógico según su posición de instalación.

2.-iOutChannel0, iOutChannel1 (INT)

Establece el rango del valor digital a convertir y la salida proporcionada

Límites:

para +- Rango -8000 a 8000

para + Rango 0 a 16000


3.-iOutChannel0_Config, iOutChannel1_Config (INT)

Configuration of output channels 0–1:

0: -10 a +10V / 0 a 20mA

1: -5 a +5V / 4 a 20mA

2: 0 a 10V

3: 0 a 5V

4.-iInChannel0_Config, iInChannel1_Config, iInChannel2_Config, iInChannel3_Config (INT)

Configuration of input channels 0–3:

0 = -10 a +10V

1 = -5 a +5V

2 = 0 a 10V

3 = 0 a 5V / 0 a 20mA

Ejemplo:
5.6 Bloques con ENABLE
Dentro de la programación en bloques se puede utilizar bloques con ENABLE. Estos bloques nos permiten
trabajar con diferentes operadores y funciones. Son iguales a los bloques comunes, pero cuentan con una
entrada adicional con la nomenclatura EN (enable). El ENABLE controla de forma booleana la activación o
desactivación del bloque. Si la entrada correspondiente a EN esta en alto, el bloque realizará la operación
asignada, en caso contrario no trabajará. Los operadores más comunes son suma (ADD), resta (SUB),
multiplicación (MUL), etc.

Este ejemplo si EN esta en alto va a realizar la suma entre los valores que van a sumando1 y sumando2.

5.6.1 Bloques Enable para Mover datos

Este bloque sirve para mover datos fijos o variables a nuevas variables dentro de la programación; este
bloque es útil para poder pasar valores fijos a datos variables de temporizadores o contadores.

El uso más común de este bloque es para poder resetear valores en bloques de función que no contengan
reset como por ejemplo temporizadores o bloques de función creados por el programador.
5.6.2 Bloques Enable Temporizadores y Contadores

Se pueden tener bloques de temporizadores con habilitación, para poder seleccionar este tipo de bloque se
debe dar clic derecho en la función y seleccionar la función de Enable.

Para familiarizarnos con los módulos de entrada y salida analógica del PLC y operadores, resolver Práctica
10: Lectura y acondicionamiento sensor analogo.
6.1 Funciones y Bloques de Función

A continuación se explica cómo crear una función y un bloque de función, diferencias entre ambas, cuándo
se debe utilizar cada una, así como sus ventajas e inconvenientes.

Para ello se partirá del siguiente ejemplo: Cálculo de la hipotenusa en un triángulo rectángulo.

El uso de las funciones y bloques de funciones es aconsejable cuando se prevé que el código que se va a
desarrollar se va a poder reutilizar en futuros programas o aplicaciones.
En ambos casos, la creación de una función o bloque de función consiste “en encapsular” un determinado
código de programa para su reutilización en el mismo o diferente proyecto.

6.1.1 Procedimiento para la Creación de Funciones y Bloques de Función

1. Para crear una función o bloque de función, primero se ha de crear un programa estándar con el código nece-
sario y comprobar su funcionamiento.

rHipotenusa:=SQRT(rCateto_1*rCateto_1 + rCateto_2**2);

2. Una vez comprobado que funciona adecuadamente, se cierra la zona de edición del programa para poder
modificar sus propiedades y convertirlo a FN (función) o FB (bloque de función).

3. Se selecciona la POU a convertir y haciendo un clic con el botón derecho del ratón seleccionamos Propiedades
de la POU.

4. Convertir la POU de programa a FN o a FB tal y cómo se indica a continuación:


5.- Se seleccionan las variables de entrada, salida o entrada-salida.

Se hace doble clic sobre el icono de FUN o FB para editar el bloque de función y se configuran las variables
necesarias como variables de entrada VAR_INPUT, variables de salida VAR_OUTPUT o variables de entrada-
salida VAR_IN_OUT.

• Variables de entrada: Aquellas variables que serán transferidas desde el flujo normal del programa al
interior de la función y que son las necesarias para poder realizar las acciones propias de la función. Al fina-
lizar la ejecución de la función, su valor sigue siendo el mismo (Cateto_1 y Cateto_2).

• Variables de salida: Aquellas variables calculadas en el interior de la función. Al finalizar la ejecución de la


función, su valor se verá sobrescrito (hipotenusa).

• Variables de entrada-salida: Aquellas variables que serán transferidas desde el flujo normal del programa
al interior de la función y que son las necesarias para poder realizar las acciones propias de la función.
Además al finalizar la ejecución de la función o del bloque de función, su valor se sobrescribe.
6.1.2 Llamamiento a Funciones

Ahora se puede usar la fnHIPOTENUSA de la lista estándar de funciones como cualquier otra con la siguien-
te apariencia:

Se observa que la función actual dispone de 2 salidas. Esto se debe a que el propio nombre de la función es
una VAR_OUTPUT de la misma.

El motivo de asignar una salida a la función es porque se asume que las funciones se utilizan en tareas sen-
cillas y se entiende que su propio nombre define su acción (ejemplo, sumar, restar, hipotenusa).

En este ejemplo, al convertir la POU de programa a función, se ha definido una salida del tipo REAL y se ha
definido una variable rHipotenusa como VAR_OUTPUT.

El interior actual de la función es:

rHipotenusa:=SQRT(rCateto_1*rCateto_1 + rCateto_2**2);

Dado que en el ejemplo anterior no se ha asignado ningún valor a la variable fnHIPOTENUSA dentro de la
función, fnHIPOTENUSA valdrá siempre 0 mientras que rHipotenusa_1_2 será el resultado esperado.

La función Hipotenusa correctamente realizada se puede obtener de 2 formas:

1.- Seleccionar VOID (vacío) como tipo de variable de salida a la hora de crear la función:

En este caso se visualiza el nombre de la salida de la función.


2.- Seleccionar el tipo de salida (REAL en este caso) como tipo de variable de salida a la hora de crear la
función o convertir la POU a función y modificar el código de programa usando el nombre de la función
como VAR_OUTPUT.

6.1.3 Llamamiento a Bloques de Función

Si se ha creado un bloque de función, se puede usar la función fbHIPOTENUSA como cualquier otra del
FPWIN Pro, teniendo la siguiente apariencia:

Se observa que las FB requieren ser definidas (fbEJEMPLO_1) como variables normalmente locales. El tipo
de una variable FB es del mismo nombre con el que se ha llamada al bloque de función, así para el caso de
la hipotenusa se definirá del tipo fbHIPOTENUSA.
6.2 Diferencias. Pros y Contras entre FN y FB

6.2.1 Características Funciones.

1.- Una función es como UN SALTO A SUBRUTINA*. Al ser llamada a lo largo de un programa, es como si se
tratase de una interrupción. Interrumpe la ejecución del programa, salta a donde se encuentra el código de
la función, lo ejecuta y vuelve donde estaba.

2.- Se utiliza para ahorrar código de programa. Si se llama 100 veces a una función el código de programa
ocupado será del tamaño de una única función.

3.- Todas sus variables internas se ven sobrescritas cada vez que es llamada, es por ello que no se pueden
utilizar dentro de ellas otras funciones como temporizadores, contadores ni cualquier otro bloque de fun-
ciones (PID, etc). Si se llama varias veces a una función con las mismas variables de entrada, se obtiene
siempre el mismo resultado.
4.- Normalmente se utiliza para códigos sencillos * SUBRUTINA: grupo de instrucciones escritas por separa-
do del programa principal para realizar una función que puede ser usada repetidamente por el programa
principal.

6.2.2 Características Bloques de Función

1.- Un bloque de función es como COPIAR Y PEGAR todo el código de la FB cuando es llamada. Las variables
internas no se ven sobrescritas cuando llamamos varias veces a un bloque de función dado que sus varia-
bles internas de trabajo son:

Nombre_de_función.Variable_del_Bloque fbEjemplo_1.rCateto_1

Si se llama varias veces a un bloque de función con las mismas variables de entrada, no se tiene porque
obtener siempre el mismo resultado.

2.- No sirve para ahorrar código. Se utiliza principalmente en los siguientes casos:

2.1 Cuando se necesita introducir un bloque de función dentro de otra función (un caso muy típico
es el uso de temporizadores dentro de una función).

2.3 En aquellos proyectos en los que existan muchos elementos idénticos de control. Ejemplo: una
bodega de vinos en las que hay 50 cubas de fermentación. El proceso de fermentación es idéntico
para todos ellos si bien varían simplemente las condiciones actuales de cada una y sus consignas. En
el caso de ampliar la funcionalidad de la cuba de fermentación, bastará con cambiar el bloque de
función para que afecte a todas las cubas.

3.- Se suele utilizar para códigos de programa de longitud y complicación media/alta para clarificar su fun-
cionamiento de un programa.

Para familiarizarnos con la programación de funciones y bloques de función, resolver Práctica 11:
Acondicionamiento Sensor de Humedad.
7 COMUNICACIÓN MODBUS RTU:

7.1 DEFINICIÓN

Modbus RTU es un protocolo serie abierto (RS-232 o RS-485) basado en una arquitectura
maestro/esclavo o cliente/servidor. El protocolo interconecta equipos de campo como: sensores,
actuadores y controladores que se usa ampliamente en la automatización de procesos y
fabricación de productos. El protocolo Modbus RTU funciona de la siguiente forma:

La estación maestra envía instrucciones (mensajes de comando) a las estaciones esclavas y las
estaciones esclavas responden (mensajes de respuesta) según la instrucción recibida. La estación
maestra tiene acceso de lectura y escritura para un máximo de 99 estaciones esclavas.

7.2 MODBUS RTU 485 EN FPWIN

FPWIN cuenta con bloques de comunicación con los cuales se puede pasar información con
dispositivos que cuenten con comunicación Modbus RS485. Estos bloques facilitan tanto la
comunicación como la programación de aplicaciones con este tipo de comunicación ya que son
bloques intuitivos y no son complicados de manejar.
7.2.1 Función Master Modbus RTU

Mediante las instrucciones F145_WRITE y F146_READ se permite la escritura y la lectura de datos


de varias estaciones esclavas. La estación maestra puede acceder a cada unidad esclava
individualmente o a todas ellas a la vez.

7.2.2 Función esclava Modbus RTU

Si las unidades esclavas reciben un mensaje de comando procedente de la unidad maestra, éstas
responden en consecuencia. No ejecutar las instrucciones F145_WRITE o F146_READ si la unidad
se utiliza como unidad esclava
7.3 ACCESO DE DATOS MODBUS
Los datos disponibles por medio de Modbus son almacenados, en general, en uno de los cuatro
bancos de datos o rangos de dirección: bobinas, entradas discretas, registros de retención y
registros de entrada.. Estos bancos de datos definen el tipo y los derechos de acceso de los datos
contenidos. Los dispositivos esclavos tienen acceso directo a estos datos, los cuales son alojados
localmente en los dispositivos. Los datos disponibles por medio de Modbus generalmente son un
subconjunto de la memoria principal del dispositivo. En contraste, los maestros Modbus deben
solicitar el acceso a estos datos a través de diversos códigos de función.

7.4 COMANDOS MODBUS COMPATIBLES


Los comandos Modbus son comandos con los cuales se realiza un pedido de información o un
envío de información desde el dispositivo maestro, a continuación se detalla los comandos
compatibles para los PLC Panasonic:
7.5 DIRECCIÓN MODBUS Y DIRECCIONAMIENTO FP0R

Ya que los PLC de Panasonic también pueden ser esclavos se tiene un direccionamiento de
variables en Modbus, esto quiere decir que podemos leer y escribir en el PLC cuando está
configurado como esclavo. Las áreas que se pueden leer y escribir son:

7.6 PASOS PARA REALIZAR LA COMUNICACIÓN


Para poder realizar la comunicación Modbus se debe inicialmente seleccionar el puerto de
comunicación y configurar el mismo. A continuación se muestra un ejemplo de cómo realizar esto.
Se selecciona para este ejemplo el COM1 con la siguiente configuración:

Con esta comunicación estamos habilitando al PLC como Modbus Master con estación número 1.

Se debe insertar en la programación el bloque Modbus para poder leer y enviar datos a un esclavo
Modbus, en este caso el bloque es el F145F146_Modbus_Master.

Este bloque es un bloque con activación (Enable) por lo que para que funcione se debe habilitar
con alguna condición, en este caso se lo habilitará con un contacto enviar_frecuencia (como un
ejemplo para comunicar al PLC con un variador de velocidad y enviar el dato de frecuencia al
variador de velocidad).
Para indicar el puerto con el que se va a comunicar el PLC con el esclavo seleccionamos la variable
del sistema SYS_COM1_PORT.

Se va a comunicar con el esclavo de dirección 2 (SlaveAddress) .


Además se va a escribir los registros con Function code Preset_Register.

Finalmente se direcciona al bloque de función hacia el registro y numero de registros que se van a
escribir; en este ejemplo StartRegister=507, NumberOfRegisters=1. Es decir se va a escribir
comenzando desde el registro 507 un solo registro.
Finalmente se declara la variable interna del PLC en la que se van a escribir los valores que se
trasladarán al esclavo Modbus, en este caso sería MasterData=Velocidad_BandaIngreso.

Para familiarizarnos con la programación de funciones y bloques de función, resolver Practica 12:
Modbus RTU, Comunicación entre PLC y BTC.
8 GUIA DE PRACTICAS FPWIN Y GTWIN
8.1 Práctica 1: Conexión USB serial con PLC.

Objetivo general

• Conexión de los dispositivos mediante instalación de drivers USB.

Objetivo didáctico

• Instalar driver USB Serial para conexión entre PC y pantalla GT.

Ejercicio planteado

Verificar que la conexión USB serial entre el computador y el PLC Panasonic sea el correcto, si no
está instalador el driver USB serial se deberá proceder a instalarlo correctamente.
8.2 Práctica 2: Creación de un programa básico en los cinco lenguajes de
programación

Objetivo general

• Crear un proyecto y programa básico en FPWIN basándose en los pasos descritos en esta
práctica para familiarizarnos con el entorno de programación y sus lenguajes.

Objetivo didáctico

• Identificar las partes del proyecto en el entorno de programación.

• Configurar los parámetros de comunicación para descargar programas al PLC.

• Crear variables globales y locales.

• Realizar un programa simple en los cinco lenguajes de programación.

Descripción del ejercicio:

Crear un programa en el cual por medio de una entrada del módulo se pueda encender una salida
del mismo, se debe crear este proyecto con cada uno de los lenguajes de programación contenidos
en el software FPWIN.
8.3 Práctica 3: Control de luz de escalera

Objetivo general

Realizar un programa en diagrama de escalera para controlar el encendido y apagado de una


lámpara en una escalera.

Objetivo didáctico

• Crear un proyecto en diagrama de escalera.


• Utilización de contactos normalmente abiertos y normalmente cerrados.
• Asignar correctamente las I/O de nuestro PLC en nuestro programa.
• Reconocer entradas y salidas digitales en nuestra estación de trabajo.

Ejercicio planteado

Se tiene interruptores en el comienzo y en el final de la escalera. Desde cualquiera de los dos se


puede encender o apagar la lámpara. Existirá una llave principal que podrá activar o desactivar el
sistema de iluminación. Además se tendrá un sensor de luz para que las luces se apaguen cuando
el sensor dé un valor análogo de 2000 en la programación del PLC.
Descripción del ejercicio
• Dentro del proyecto prácticas, crear un nuevo objeto en diagrama de escalera con el
nombre practica_3.
• Los nombres de las variables son:

Nombre Tipo Dirección


Switch abajo s_abajo BOOL X6
Switch Arriba s_arriba BOOL X7
Llave de seguridad llave BOOL X0
Lámpara lámpara BOOL Y0
Sensor de Luz I_wxAnalogo INT WX10
8.4 Práctica 4: Control de dispositivo Punzonador.

Objetivo general

• Realizar un programa para simular el funcionamiento de un proceso utilizando funciones


biestables.

Objetivo didáctico

• Reconocer los elementos acordes para el trabajo de funciones biestables en diagrama de


escalera.

Ejercicio planteado

Al oprimir simultáneamente un pulsador y un pedal se activará el vástago de un cilindro que


empujará rápidamente un punzón de corte realizando un corte en un cierto material, cuando
termine de cortar el material, el cilindro llegará a una posición en la que un final de carrera avisará
el término del corte, en este momento se activa el retorno del vástago desactivando la condición
inicial de activación de vástago hasta llegar a otro final de carrera en el cual avisará la llegada del
mismo a la posición inicial desactivando todo el sistema.
Descripción del ejercicio

• Dentro del proyecto prácticas, crear un nuevo objeto en diagrama de escalera con el
nombre practica_4.

• Los nombres de las variables serán:

Nombre Tipo Dirección


Pulsador 1 de arranque b_xpulsador1 BOOL X0
Pulsador 2 de arranque b_xpulsador2 BOOL X1
Final de carrera 1 b_xfinal1 BOOL X2
Final de carrera 2 b_xfinal2 BOOL X3
Activación vástago b_yact_vastago BOOL Y0
Retorno vástago b_ydesact_vastago BOOL Y1
8.5 Práctica 5: Control de encendido y apagado de 3 Motores

Objetivo general

• Realizar un programa para controlar el encendido y apagado de motores.

Objetivo didáctico

• Reconocer los bloques de temporizadores necesarios para la práctica.


• Escribir correctamente los parámetros de tiempo.
• Declarar correctamente variables locales desde la ventana de declaración.

Ejercicio planteado

Se necesita controlar tres motores:

- El Motor 1 debe encenderse por 6 segundos apenas se pulse el botón de encendido


- El Motor 2 se encenderá 4 segundos después de que el Motor 1 ya esté enciendo.
- El Motor 3 se encenderá junto con el Motor 2 pero se apagará 5 segundos después de
que el Motor 2 se apague.
- El apagado del sistema solo se podrá ejecutar cuando la secuencia inicial haya terminado,
es decir el Motor 2 y 3 estén encendidos y el Motor 1 esté apagado

Se contará con un botón de arranque, un botón de paro y un pulsador de emergencia que parará
todos los motores en el estado en el que estén y reseteara a los temporizadores.
Descripción del ejercicio

• Dentro del proyecto prácticas, crear un nuevo objeto en diagrama de escalera con el
nombre practica_5.

• Los nombres de las variables serán:

Nombre Tipo Dirección


Pulsador 1 de arranque b_xPulsador1 BOOL X0
Pulsador 2 de paro b_xPulsador2 BOOL X1
Pulsador 3 de emergencia b_xEmergencia BOOL X2
Motor 1 b_yMotor1 BOOL Y0
Motor 2 b_yMotor2 BOOL Y1
Motor 3 b_yMotor3 BOOL Y2
8.6 Práctica 6: Contador de Producto en Banda transportadora.
Objetivo general

• Realizar un programa para configurar contadores en una banda transportadora.

Objetivo didáctico

• Reconocer los bloques contadores necesarios para la práctica.

• Utilizar salidas de bloques de contadores en diferentes partes de la programación.

• Utilizar bloques de detección de flancos

Ejercicio planteado

Se tienen una banda transportadora de botellas plásticas, la cual tiene dos sensores que detectan
el paso de cada botella.
- El primer sensor está asociado a un contador de botellas, cuenta botellas en buen estado.
- El segundo sensor está asociado a un contador que cuenta botellas en mal estado.

Realizar un programa en el cual se active una banda transportadora con un pulsador de arranque y
se apague con un pulsador de paro. Se debe encender una alarma cuando el conteo de botellas en
mal estado sea superior a 5, y se debe detener la banda transportadora por 4 segundos cuando el
conteo de botellas en buen estado sea 8 para su respectivo empaquetado, cuando la banda se
pare ya sea por el pulsador de paro o porque llego a las 8 botellas en buen estado se debe resetear
los contadores para comenzar un nuevo proceso.
Descripción del ejercicio

• Dentro del proyecto prácticas, crear un nuevo objeto en diagrama de escalera con el
nombre practica_6.

• Los nombres de las variables serán:

Nombre Tipo Dirección


Pulsador 1 de arranque b_xpulsador1 BOOL X0
Pulsador 2 de paro b_xpulsador2 BOOL X1
Sensor Botellas Mal b_xMal_estado BOOL X2
estado
Sensor Botellas Buen b_xBuen_estado BOOL X3
estado
Banda transportadora b_yBanda BOOL Y0
Alarma b_yAlarma BOOL Y1
8.7 Práctica 7: Control de tolva y banda transportadora separadora.
Objetivo general

• Realizar un programa para controlar el llenado y almacenamiento de cajas.

Objetivo didáctico

• Reconocer y seleccionar los bloques de temporizadores necesarios.

• Reconocer y seleccionar los bloques de contadores necesarios.

• Reconocer y seleccionar los bloques trigger necesarios.

• Escribir correctamente los parámetros para los bloques utilizados.

Ejercicio planteado

Realizar un programa para controlar el llenado y almacenamiento de cajas. Se tiene un interruptor


con el que se encenderá la línea de producción. La banda transportadora impulsada por un motor,
transportará cajas deteniéndose cuando sea detectada por un sensor. Cuando se detiene la caja,
se abrirá la puerta de la tolva y se cerrará cuando transcurra cierto tiempo de llenando. Pasado
este tiempo, se activará de nuevo la banda transportadora retirando la caja de su posición y
repitiendo el proceso cuando se detecte otra caja nuevamente.

Esta banda transportadora debe separa las cajas en dos caminos enviando cinco cajas por el
camino A y tres cajas por el camino B.
Descripción del ejercicio

• Dentro del proyecto crear un nuevo objeto en diagrama de escalera con el nombre
practica_7.

• Los nombres de las variables serán:

Nombre Tipo Dirección


Encendido b_xEncendido BOOL X0
Paro b_xParo BOOL X1
Sensor Tolva b_xsensor1 BOOL X7
Llave de seguridad b_xLlave BOOL X6
Motor banda Principal b_yBanda1 BOOL Y0
Motor Banda A o B b_BandaAoB BOOL Y2
Motor Apertura Tolva b_yTolva BOOL Y1

• La puerta separadora envía cajas por el camino A cuando está en estado bajo y por el
camino B cuando está en estado alto.

• El tiempo en el que caerá material de la tolva a la caja será de 3 segundos.

• Todo bloque dentro del programa tanto de conteo, temporización y otros debe ser del tipo
Enable y debe ser habilitado por una llave de seguridad.
8.8 Práctica 8: Visualización y manejo de datos de contadores y
temporizadores

Objetivo general

• Realizar un programa en GTWIN y direccionar variables a contadores y temporizadores


dentro del PLC.

Objetivo didáctico:

• Direccionar correctamente las variables del PLC en la Pantalla GT.

• Manipular variables de temporizadores y contadores desde HMI.

Ejercicio planteado

• Realizar un programa que contenga un contador ascendente-descendente en el cual se


pueda contar ascendentemente y descendentemente con cuatro pulsadores, dos físicos y
dos de HMI. Cuando el contador llegue a 6 se activa un temporizador al encendido de 3
segundos que prendera una salida del módulo, de igual forma si el contador pase de 0 a 1
se activa otro temporizador al apagado que dura 4 segundos y activa otra salida diferente
del módulo. Visualizar en la pantalla principal del HMI pulsadores, salidas, conteo, tiempo
transcurrido en temporizadores.

• Crear una pantalla secundaria en la cual se pueda modificar los valores del tiempo de cada
temporizador y del contador, para el primer temporizador crear un teclado en la misma
pantalla, para el temporizador 2 crear una pantalla de teclado, en el set del contador
puede poner un teclado a su elección.

Descripción del ejercicio

• Dentro del proyecto prácticas, crear un nuevo objeto con el nombre practica_8.

Nombre Tipo Dirección


Pulsador Ascendente b_xAscendente BOOL X0
Pulsador Descendente b_xDescendente BOOL X1
Pulsador Reset b_xReset BOOL X2
Salida 1 b_ySalida1 BOOL Y0
Salida 2 b_ySalida2 BOOL Y1
HMI Ascendente b_hmiAscendente BOOL R0
HMI Descendente b_hmiDescendente BOOL R1
HMI temporizador 1 i_hmiTemp_1 INT DT3
HMI temporizador 2 i_hmiTemp_2 INT DT4
HMI Contador i_hmiConteo INT DT2
HMI Valor i_hmiTON1 INT DT5
temporizador1
HMI Valor i_hmiTOF1 INT DT6
temporizador1
HMI Valor Contador i_hmiCTUD1 INT DT7
HMI Reset b_hmiReset BOOL R2

• El sistema debe tener un botón de Reset para el contador tanto en el HMI como
físicamente.
• Crear botón de función para el cambio entre pantallas.
• Además se debe declarar a la variable del tiempo del Temporizador 1 como variable de
retención.
• Se puede seguir la siguiente guía:
8.9 Práctica 9: Control de ventilación en túnel vehicular.
Objetivo general

• Realizar un programa en diagrama de bloques para controlar el encendido de ventiladores


dentro de un túnel vehicular en función de la respuesta de tres detectores de humo.

Objetivo didáctico

• Utilizar bloques lógicos correctamente dentro del programa.

• Asignar y aumentar entradas necesarias en cada bloque.

• Negar correctamente entradas de bloques.

Ejercicio planteado

Se tiene tres detectores de humo y tres ventiladores dentro de un túnel vehicular. Cada vez que
uno de los detectores se activa, se debe encender el primer ventilador. Si se activan dos
detectores, se activará solo el segundo y tercer ventilador. Si todos los sensores se activan, todos
los ventiladores deben encenderse.

Descripción del ejercicio

• Dentro del proyecto prácticas, crear un nuevo objeto en diagrama de bloques con el
nombre practica_11.

• Crear una visualización en la cual se pueda ver el cambio de estado de sensores y


ventiladores

• Los nombres de las variables locales serán:

Nombre Tipo Dirección


Sensor 1 b_xhumo_1 BOOL X7
Sensor 2 b_xhumo_2 BOOL X6
Sensor 3 b_xhumo_3 BOOL X5
Ventilador 1 b_yvent_1 BOOL Y0
Ventilador 2 b_yvent_2 BOOL Y1
Ventilador 3 b_yvent _3 BOOL Y2
8.10 Práctica 10: Lectura y Acondicionamiento de señal de sensor
análogo.

Objetivo general

• Realizar un programa en diagrama de bloques para leer un sensor que mide en °F y


transformar este dato en °C.

Objetivo didáctico:

• Utilizar correctamente los operadores de comparación.

• Utilizar correctamente operadores matemáticos.

Ejercicio planteado

Se deberá leer la entrada análoga que simulará un sensor de temperatura de 0-10V con el
potenciómetro del módulo de entrenamiento; el sensor tiene un rango de 0-100°F. Realizar un
programa para leer el valor del sensor en °C y cuando el sensor mida una temperatura de 20°C
active una alarma que se prenda y se apague intermitentemente cada 3 segundos.
Descripción del ejercicio

• Dentro del proyecto prácticas, crear un nuevo objeto en diagrama de bloques con el
nombre practica_9.

• Realizar una visualización en una gráfica del valor del sensor en °C, cuando el valor de
temperatura sobrepase los 20 °C aparecer un mensaje de sobre-temperatura.

• Los nombres de las variables serán:

Nombre Tipo Dirección


Alarma b_yAlarma BOOL Y0
Sensor análogo i_wxSensor_analogo INT WX10
Grados Centígrados i_hmiCentigrados Real DDT0

• La fórmula de conversión de grados Fahrenheit a centígrados es:


8.11 Práctica 11: Acondicionamiento Sensor de Humedad.

Objetivo general

• Realizar un programa utilizando Funciones y Bloques de Función para leer un sensor de


humedad y disparar una alarma.

Objetivo didáctico:

• Utilizar correctamente funciones y Bloques de función.

• Realizar el llamamiento correcto.

• Utilizar cualquier lenguaje de programación para definir funciones y bloques de función

Ejercicio planteado

Se deberá leer la entrada análoga que simulará un sensor de humedad de 0-10V con el
potenciómetro del módulo de entrenamiento; el sensor tiene un rango de 0-100% de humedad.
Realizar una Función para leer el valor del sensor en porcentaje de humedad. Realizar un programa
para asignar este valor y mandarlo al HMI. Crear un bloque de función de alarma para cuando el
sensor mida la humedad ambiente de 50% active una alarma que se prenda y se apague
intermitentemente cada 3 segundos.
Descripción del ejercicio

• Dentro del proyecto prácticas, crear un nuevo objeto en diagrama de bloques con el
nombre practica_9.

• Realizar una visualización en la cual se pueda observar el valor de humedad y la alarma de


humedad superada deberá disparar una señal sonora.

• Los nombres de las variables serán:

Nombre Tipo Dirección


Alarma b_yAlarma BOOL Y0
Sensor análogo i_wxSensor INT WX10
Valor para el HMI de r_hmiHumedad Real DDT10
humedad
Valor para el HMI de i_hmiBargraph INT DT12
barra grafica
Bit de activación señal b_hmiSonido BOOL RF
sonora HMI
8.12 Practica 12: Modbus RTU, Comunicación entre PLC y BTC

Objetivo general

• Conexión de los dispositivos mediante Modbus RTU serial 485.

Objetivo didáctico

• Uso correcto de bloques de comunicación Modbus de lectura y escritura.

• Configuración adecuada de puerto de comunicación.

Ejercicio planteado

Leer el registro 128 del controlador de proceso BTC cada segundo, este registro es el que muestra
el valor de proceso de este dispositivo, y además escribir en el registro 0 ( registro de set point)
cuando se active un switch del módulo.

Realizar una visualización simple en el HMI para leer y escribir estos datos.

Descripción del ejercicio


• Los nombres de las variables son:
Nombre Tipo Dirección
Dato Leido HMI i_hmiDatoLeido INT DT10
Datos escrito HMI i_hmiDatoEscrito INT DT20
Switch de escritura b_xEntrada1 BOOL X7

• Los datos del controlador de proceso tienen un desfase de 19999, tener en cuenta
este dato al momento de leer y enviar los datos.
8.13 Práctica Final

Objetivo general

• Manejar todos los conocimientos aprendidos durante el curso aplicándolos a un ejercicio


práctico.

Objetivo didáctico

• Utilizar entrada análoga.

• Utilizar funciones.

• Utilizar temporizadores y funciones biestables.

• Utilizar Funciones y llamarlas a programa principal.

Ejercicio planteado.

Se tiene un clasificador de monedas con dos pistones, el pistón 1 empuja las monedas de una torre
donde se almacenan las monedas. El pistón 2 empuja las monedas cuando llegan a un final de
carrera. De igual forma la torre de monedas tiene un sensor que detecta la falta de monedas.

Detección
Monedas 1

Detección Final 1
Monedas 2
Pistón 1

Final 2

Pistón 2
Realizar un programa en el cual el pistón 1 empuje las monedas hasta que lleguen al sensor de
detección de monedas 2, apenas detecte monedas debe dejar de funcionar el pistón 1 y se debe
accionar el pistón 2 para que empuje las monedas a la bandeja de salida, cuando el pistón 2
regrese a su posición inicial el pistón 1 debe entrar nuevamente a funcionar hasta que se termine
las monedas en la torre.

Descripción del ejercicio

• Realizar el control de los pistones por medio de temporizadores ya que son


pistones con retorno a muelle, es decir temporizar la activación y la desactivación
de cada pistón.

• Controlar el tiempo de los temporizadores con la entrada análoga, es decir cada


temporizador debe ir de 0 segundos (o voltios) a 10 segundos (10 voltios)

• Realizar una visualización en la pantalla para poder dar inicio, paro, patalla de
movimientos manuales de pistones, visualizar conteo de monedas, visualizar
tiempo de pistones.

• Realizar una alarma cuando el conteo de monedas sea 10, este valor debe ser
configurable posteriormente en la pantalla.

Nombre Tipo Dirección


Detección de monedas 1 b_xSensTorre BOOL X4
Detección de monedas 2 b_xDetMonedas BOOL X6
Sensor Pistón 1 b_xFinPiston1 BOOL X3
Sensor Pistón 2 b_xFinPiston2 BOOL X5
Pistón 1 b_yPiston1 BOOL Y0
Pistón 1 b_yPiston1 BOOL Y0
Alarma b_yAlarma BOOL Y5
9 SOLUCIONARIO DE PRACTICAS FPWIN Y GTWIN
9.1 Práctica 1: Conexión USB serial con PLC.

Desarrollo de Práctica

Una vez instalados los programas FPWIN y GTWIN procedemos a conectar el cable USB del módulo
al computador y verificamos si el driver del cable USB se instaló correctamente dirigiéndonos a
administrador de dispositivos en el panel de control del PC.

Si el driver no se instaló deberemos instalarlo manualmente dando clic derecho en el nombre del
controlador que no se instaló, en este caso sería GT series Programable Display y Actualizar
software del controlador, después en buscar controlador en el equipo.
Una vez realizado esto buscamos el instalador en la carpeta C:\Program Files (x86)\Panasonic-ID
SUNX Terminal y damos a siguiente y esperamos a que se instale.
9.2 Práctica 2: Creación de un programa básico en los cinco lenguajes de
programación

Desarrollo de la Práctica

9.2.1 Crear un proyecto


Una vez abierto el programa FPWIN vamos a nuevo proyecto y seleccionamos
el modelo de PLC con el que vamos a trabajar, asignamos un nombre al programa que
desarrollaremos y seleccionamos el lenguaje con el que se va a trabajar.

Para guardar el proyecto presionar en la barra de menú. El nombre para el primer proyecto será
prácticas y se sugiere guardarlo en una carpeta independiente.
9.2.2 Conexión USB (GT)
En la barra de menú buscar la opción Online, buscamos Parámetros de Comunicación

El módulo de entrenamiento tiene la conexión USB directa a la pantalla y la pantalla se comunica


por puerto serial 485, esto quiere decir que se va a programar al PLC a través de la pantalla GT. Es
por esta razón que seleccionamos la opción USB(GT).
Si solo se va a programar el PLC sin la pantalla deberemos escoger la opción C-NET y dejar los
demás parámetros por default ya que detecta automáticamente la configuración de la
comunicación serial entre PLC y PC.

9.2.3 Crear un programa en LD

Para crear el primer programa es necesario abrir el POU para la programación. Para esto se debe
entrar en la carpeta POUs dentro del organizador de objetos. Ahora seleccionar el archivo llamado
PLC (PRG) haciendo doble clic sobre él.

En la primera red agregar un contacto normalmente abierto desde la barra de instrucciones, o


presionar desde el teclado el número 2. Asignar el nombre b_xpulsador1. Al dar enter se abrirá el
asistente de creación de variables, declarar la variable como variable global y la direccionar a X0
que es la primera entrada del PLC.
Ahora agregar una bobina que trabajará con una salida digital (b_ysalida1). Para asignar esta
variable a la bobina, se realiza el mismo procedimiento realizado con el contacto.

En esta red, cuando se cierre el contacto normalmente abierto, se activará la bobina conectada en
serie. Se prosigue con la compilación del programa para verificar si existen errores en el mismo

dando clic en el icono , una vez comprobado que no existan erroes, en el menú Online se
selecciona Modo Online, de esta forma el archivo ejecutable se guarda en la memoria del PLC.
9.2.4 Crear un programa en FBD

Insertar un bloque de función biestable set ubicado en la paleta de instrucciones con el nombre
SR1 y se lo declara como variable local.

Crear las variables b_xEntrada1 y b_ySalida1 pulsando alt+N y se lo declarará como variable global
y se los direccionará a las entradas y salidas de la siguiente manera:

Una vez creadas las variables se debe crear la lógica de la siguiente forma:

Este bloque realiza el Set y el Reset de la variable de salida b_ySalida1 mediante la entrada
b_xEntrada1, cuando X0 está en 1 se encenderá la salida Y0, y cuando X0 está en 0 la salida Y0
estará apagada.
9.2.5 Crear un programa en ST

Este lenguaje es netamente de texto y utiliza sentencias para poder realizar la lógica que
compondrá un programa. Para este sencillo ejemplo se utilizará la sentencia condicional IF.

El primer paso es crear las variables b_xEntrada1 y b_ySalida1 pulsando alt+N y se lo declarará
como variable global y se los direccionará a las entradas y salidas de la siguiente manera:

Una vez realizado esto pondremos el texto de la sentencia IF.

El texto que se utiliza significa lo siguiente

1.- Primera Línea: Si la variable booleana b_xEntrada1 tiene un valor de 1 entonces realizar.

2.- Segunda Línea: poner el valor de 1 en la variable b_ySalida1.

3.- Tercera Línea: realizar lo siguiente si la condición b_xEntrada1 no existe.

4.- Cuarta Línea: poner el valor de 0 en la variable b_ySalida1.

5.- Quinta Línea: terminar la sentencia condicional IF.


9.2.6 Crear un programa en SFC

SFC es un lenguaje de programación orientado a pasos, se utiliza solo en procesos industriales


secuenciales.

El primer paso es crear las variables b_xEntrada1 y b_ySalida1 pulsando alt+N y se lo declarará
como variable global y se los direccionará a las entradas y salidas de la siguiente manera:

Una vez realizado esto se creará los pasos secuenciales de un programa, para este ejemplo se
realizará dos pasos, el primero para encender la salida y el segundo para apagar la salida. Las
condiciones para pasar de un paso a otro serán dadas por la entrada digital.

Para insertar pasos y transiciones se debe dar clic derecho insertar -> paso y transición.
Se debe crear Acciones para poder vincularlas a los pasos, se creará dos acciones, una de
encendido y otra de apagado

Encender:

Apagar:

Estas acciones se pueden realizar en cualquier lenguaje de programación, para este ejemplo se
utilizó ladder.
Para asociar estas acciones con los pasos se debe dar doble clic en el paso y poner el nombre de la
acción.

El funcionamiento de este programa es el siguiente:

1.- Verificar que la condición x_bEntrada 1 sea verdadera, si es asi se procede con la programación
contenida en el paso 1 (Encender_salida1).

2.- La programación del paso 1 es simplemente poner Set a la salida 1.

3.- Verificar que la condición x_bEntrada 1 sea falsa, si es asi se procede con la programación
contenida en el paso 2 (Apagar_salida1).

4.- La programación del paso 2 es simplemente poner Reset a la salida 1.

5.- Pasar al inicio.


9.2.7 Crear un programa en IL

Este es un lenguaje de programación en texto en el cual se dan órdenes por cada línea de
programación.

El primer paso es crear las variables b_xEntrada1 y b_ySalida1 pulsando alt+N y se lo declarará
como variable global y se los direccionará a las entradas y salidas de la siguiente manera:

Una vez realizado esto se realiza la programación.

El funcionamiento de este programa es el siguiente:

1.- Cargar el dato que está contenido en b_xEntrada1 (LD->Load).

2.- Guardar el dato cargado en la variable b_xSalida1 (ST->Storage).


9.3 Práctica 3: Control de luz de escalera

Desarrollo de la Práctica

Para poder desarrollar este tipo de problemas en los que se tiene solo condiciones booleanas el
primer paso es plantear una tabla de verdad con la cual se pueda tener una guía de programación.

ENTRADAS SALIDA
switch 1 switch 2 Lampara
1 0 1
0 1 1
0 0 0
1 1 0
Llave o Luz
1 0

Se procede a plasmar la tabla de verdad en la programación, se comienza con las condiciones que
van a prender la lámpara.
Después con las condiciones que pagan a la lámpara que activan a una bobina auxiliar que va a
ayudar con la desactivación de la lámpara.

Agregamos un contacto NC de la bobina auxiliar para que apague a la lámpara.

Finalmente se debe colocar la lógica para leer el valor análogo de luz y apagar las luces cuando
haya superado un límite de 2000.

Se añade un contacto más a la bobina auxiliar.


9.4 Práctica 4: Control de dispositivo Punzonador.

Desarrollo de la Práctica

• Crear las variables con los siguientes nombres y direccionamientos:

Nombre Tipo Dirección


Pulsador 1 de arranque b_xpulsador1 BOOL X0
Pulsador 2 de arranque b_xpulsador2 BOOL X1
Final de carrera 1 b_xfinal1 BOOL X2
Final de carrera 2 b_xfinal2 BOOL X3
Activación vástago b_yact_vastago BOOL Y0
Retorno vástago b_ydesact_vastago BOOL Y1

Se debe crear la primera condición de activación de vástago con dos pulsadores a la vez.

Para poder cambiar la bobina a una bobina tipo set se debe dar doble clic en la misma y
seleccionar SET:

La segunda condición es la de detener la señal de avance del vástago cuando llegue al final de
carrera y activar la señal de retorno del mismo, por lo que la programación seria la siguiente:
Finalmente se debe desactivar la señal de retorno del vástago cuando llegue al final de carrera
inicial.
9.5 Práctica 5: Control de encendido y apagado de 3 Motores

Desarrollo de la Práctica

• Crear las variables con los siguientes nombres y direccionamientos:

Nombre Tipo Dirección


Pulsador 1 de arranque b_xpulsador1 BOOL X0
Pulsador 2 de paro b_xpulsador2 BOOL X1
Pulsador 3 de emergencia b_xfinal1 BOOL X2
Motor 1 b_xfinal2 BOOL Y0
Motor 2 b_yact_vastago BOOL Y1
Motor 3 b_ydesact_vastago BOOL Y2

Para la primera condición se debe crear un timer de tipo pulso que encienda el motor 1 por seis
segundos:

Se debe agregar un temporizador al encendido para que los motores 2 y 3 se enciendan 4


segundos después de haberse prendido el motor 1.

Se debe agregar un temporizador al apagado para que el motor 3 se apague 5 segundos después
de que el motor 2 se haya apagado.
- Se continua con la programación de seguridad, la primera sentencia de seguridad dice que:

“El apagado del sistema solo se podrá ejecutar cuando la secuencia inicial haya terminado,
es decir el Motor 2 y 3 estén encendidos y el Motor 1 esté apagado”.

Para esto se usará una bobina auxiliar:

Realizamos el reseteo de los temporizadores manipulando los valores de PT utilizando el


bloque para mover datos:

Para que estos valores vuelvan después de haber pasado la emergencia se debe volver a
establecer los mismos valores:
Finalmente pondremos la lógica que inhabilite las salidas y entradas al proceso.
9.6 Práctica 6: Contador de Producto en Banda transportadora.

Desarrollo de la Práctica

• Crear las variables con los siguientes nombres y direccionamientos:

Nombre Tipo Dirección


Pulsador 1 de arranque b_xpulsador1 BOOL X0
Pulsador 2 de paro b_xpulsador2 BOOL X1
Sensor Botellas Mal b_xMal_estado BOOL X2
estado
Sensor Botellas Buen b_xBuen_estado BOOL X3
estado
Banda transportadora b_yBanda BOOL Y0
Alarma b_yAlarma BOOL Y1

Para la primera condición se activará la banda transportadora con el pulsador de encendido y se


apaga con otro pulsador de apagado.

La siguiente condición es la del contador de botellas en mal estado, cuando este contador llega a 5
se enciende una alarma. También se debe resetear con el pulsador de apagado.
La siguiente condición es la del contador de botellas en buen estado, cuando este contador llega a
8 suceden 3 eventos:
1.-Resetea los contadores.

2.- Apaga a la banda transportadora (Añadir a la segunda línea del programa).

3.- Activa un timer de 4 segundos (Se debe crear una variable auxiliar para activar el timer).
Pasados los cuatro segundos se debe encender la banda de nuevo y se debe resetear la variable
auxiliar creada para activar el timer, asi que se añade a la primera línea de programación lo
siguiente:

Se debe añadir una última línea de seguridad para desactivar este auxiliar en caso de pulsar el
apagado.
9.7 Práctica 7: Control de tolva y banda transportadora separadora.

Desarrollo de la Práctica

• Crear las variables con los siguientes nombres y direccionamientos:

Nombre Tipo Dirección


Encendido b_xEncendido BOOL X0
Paro b_xParo BOOL X1
Sensor Tolva b_xsensor1 BOOL X7
Llave de seguridad b_xLlave BOOL X6
Motor banda Principal b_yBanda1 BOOL Y0
Motor Banda A o B b_BandaAoB BOOL Y2
Motor Apertura Tolva b_yTolva BOOL Y1

Para la primera condición se activará la banda transportadora con el pulsador de encendido y se


apaga con otro pulsador de apagado, se debe utilizar un bloque con enable para poder ligarlo a la
llave de seguridad.
La siguiente condición sucede cuando la caja llega al sensor, aquí suceden dos eventos:

1.- Se enciende por 3 segundos el actuador que abrirá la tolva de alimentación.

2.-Se apaga la banda transportadora (Se añade lo siguiente a la primera línea del programa).

La siguiente condición sucede cuando el temporizador llega a 3 segundos y la banda se vuelve a


prender (Se añade lo siguiente a la primera línea del programa).
El siguiente paso es añadir 2 contadores para la activación de la guía para la banda transportadora
A o B.

Se resetea los contadores cuando los dos han superado el valor de conteo por medio de una
bobina auxiliar.

Así mismo el funcionamiento de cada contador es excluyente ya que cuando uno está contando el
otro no puede contar.
9.8 Práctica 8: Visualización y manejo de datos de contadores y
temporizadores

Desarrollo de la Práctica

• Crear las variables con los siguientes nombres y direccionamientos:

Nombre Tipo Dirección


Pulsador Ascendente b_xAscendente BOOL X0
Pulsador Descendente b_xDescendente BOOL X1
Pulsador Reset b_xReset BOOL X2
Salida 1 b_ySalida1 BOOL Y0
Salida 2 b_ySalida2 BOOL Y1
HMI Ascendente b_hmiAscendente BOOL R0
HMI Descendente b_hmiDescendente BOOL R1
HMI temporizador 1 i_hmiTemp_1 INT DT3
HMI temporizador 2 i_hmiTemp_2 INT DT4
HMI Contador i_hmiConteo INT DT2
HMI Valor i_hmiTON1 INT Variable de retención
temporizador1 automático
HMI Valor i_hmiTOF1 INT DT6
temporizador1
HMI Valor Contador i_hmiCTUD1 INT DT7
HMI Reset b_hmiReset BOOL R2
Se debe crear una pantalla principal en GTWIN con tres botones, cuatro indicadores de datos, y
dos lámparas. Además crear una pantalla secundaria para ingreso de datos de contador y
temporizadores, uno de estos debe tener un teclado en una pantalla distinta por lo que se debe
crear una pantalla de teclado. El proyecto debe quedar de la siguiente forma:

Para poder crear un botón que cambie de pantalla se debe crear un botón de función y
configurarlo con la pantalla a la cual se requiere cambiar:
Para crear una pantalla de teclado se debe ir al árbol de pantallas de teclado y crear una pantalla y
agregar un teclado.

Para asignar esta pantalla a una entrada de datos debemos ir a la configuración de la entrada de
datos y configurar la entrada para que se direccione a esta pantalla.
De igual forma se debe direccionar a los teclados en la propia pantalla pero seleccionando Keboard
Parts y el número que le corresponde.

Ahora en FPWIN se debe crear las variables indicadas anteriormente.

Para crear una variable de retención se debe configurar a la variable de la siguiente forma:

Una vez realizado esto se debe aumentar la memoria de retención, por lo que se debe ir al menú
de memoria de retención:
Después se procede a que el compilador le asigne un espacio de memoria a la variable.

Se procede a crear un contador ascendente descendente con las condiciones dadas:

Se procede a crear dos temporizadores que se activarán con las condiciones de conteo alto o
conteo bajo según corresponda:
Para poder visualizar la variable de retención en el HMI se debe poner la dirección que el
compilador de FPWIN asignó a la misma en este ejemplo se asignó el espacio de memoria DT6781.
9.9 Práctica 9: Control de ventilación en túnel vehicular.

Desarrollo de la Práctica

• Crear las variables con los siguientes nombres y direccionamientos:

Nombre Tipo Dirección


Sensor 1 b_xhumo_1 BOOL X7
Sensor 2 b_xhumo_2 BOOL X6
Sensor 3 b_xhumo_3 BOOL X5
Ventilador 1 b_yvent_1 BOOL Y0
Ventilador 2 b_yvent_2 BOOL Y1
Ventilador 3 b_yvent _3 BOOL Y2

Se debe crear una pantalla en GTWIN de la siguiente forma:


Para resolveré la programación se debe plantear una tabla de verdad con respecto de las
condiciones planteadas.

ENTRADAS SALIDAS
Ventilador Ventilador Ventilador
sensor 1 sensor 2 sensor 3
1 2 3
1 0 0 1 0 0
0 1 0 1 0 0
0 0 1 1 0 0
1 1 0 0 1 1
0 1 1 0 1 1
1 0 1 0 1 1
1 1 1 1 1 1

Ahora se procede a programar la primera condición:

ENTRADAS SALIDAS
Ventilador Ventilador Ventilador
sensor 1 sensor 2 sensor 3
1 2 3
1 0 0 1 0 0
0 1 0 1 0 0
0 0 1 1 0 0

Procedemos a programar la segunda condición:

ENTRADAS SALIDAS
Ventilador Ventilador Ventilador
sensor 1 sensor 2 sensor 3
1 2 3
1 1 0 0 1 1
0 1 1 0 1 1
1 0 1 0 1 1
Procedemos a programar la tercera condición:

ENTRADAS SALIDAS
Ventilador Ventilador Ventilador
sensor 1 sensor 2 sensor 3
1 2 3
1 1 1 1 1 1

La variable auxiliar la debemos llevar a la activación anterior de las variables.


9.10 Práctica 10: Lectura y Acondicionamiento de señal de sensor
análogo.

Desarrollo de la Práctica

• Crear las variables con los siguientes nombres y direccionamientos:

Nombre Tipo Dirección


Alarma b_yAlarma BOOL Y0
Sensor análogo i_wxSensor_analogo INT WX10
Grados Centígrados i_hmiCentigrados Real DDT0

Se debe crear una pantalla que se vea de la siguiente forma:

Debe contener un objeto Line Graph, un objeto de mensaje, y un objeto de datos:


La configuración del mensaje es el siguiente:

Para el grafico se debe seleccionar la señal a monitorizar en System Settings:


En este ejemplo se monitorizará la variable DT100 que será la variable ya convertida a grados
centígrados. Una vez realizado esto se configura el grafico.
Para la programación se comenzará obteniendo el valor de la entrada análoga 1 y se lo convertirá a
grados Fahrenheit.

Se realiza esta multiplicación ya que la resolución del canal análogo es 4000 bits, y el rango de 0-
10Vdel sensor sería 0-100 grados Fahrenheit por lo que para pasar de bits a grados Farenheit se
debe hacer una regla de tres:
100
ℎ ℎ = = 0.025
4000
Ahora se realiza la conversión a grados centígrados.
La fórmula de conversión de grados Fahrenheit a centígrados es:

El ultimo paso es el de crear la lógica de la alarma:


9.11 Práctica 11: Acondicionamiento Sensor de Humedad.

Desarrollo de la Práctica

• Crear las variables con los siguientes nombres y direccionamientos:

Nombre Tipo Dirección


Alarma b_yAlarma BOOL Y0
Sensor análogo i_wxSensor INT WX10
Valor para el HMI de r_hmiHumedad Real DDT10
humedad
Valor para el HMI de i_hmiBargraph INT DT12
barra grafica
Bit de activación señal b_hmiSonido BOOL RF
sonora HMI

Crear una pantalla como la siguiente:


En la programación se realizará una función y un bloque de función.
Para poder crear un bloque de función se debe dar clic derecho en POU´s y seleccionar nuevo POU

El bloque de función es el siguiente:


Se utiliza la variable de pulsos del sistema para no tener que realizar la lógica con timers.

De igual forma se creará una función para convertir el valor en bits de la entrada análoga a
porcentaje de humedad

Ya que la operación que se realizará dentro de esta función es una división el valor que va a
entregar es de tipo Real.

En el programa principal en la primera línea se llamará a la función para poder leer los datos del
sensor, llamamos a la función seleccionándolo de la librería de funciones.
Se debe asignar una variable adicional que se llamará humedad1 ya que es una variable necesaria
para el procesamiento de datos dentro del PLC.
La segunda línea del programa principal será la lógica para activar el bloque de función. De igual
forma buscaremos al bloque de función en la librería de funciones.

A los bloques de función se debe poner un nombre ya que pueden utilizarse para varios propósitos
en diferentes partes de un programa principal, y también se puede utilizar sus variables internas
llamándolas de la siguiente forma:

Nombre_de_Bloque_funcion.Nombre_Variable_Interna
9.12 Practica 12: Modbus RTU 485

Desarrollo de la Práctica

• Crear las variables con los siguientes nombres y direccionamientos:

Nombre Tipo Dirección


Dato Leido HMI i_hmiDatoLeido INT DT10
Datos escrito HMI i_hmiDatoEscrito INT DT20
Switch de escritura b_xEntrada1 BOOL X7

Se debe configurar el puerto de comunicación 1 (COM1) con el protocolo Modbus su número de


estación y la configuración de comunicación serial.

Insertar el bloque de lectura-escritura Modbus que se encuentra en la librería de funciones .


Se configura a este bloque de la siguiente forma:

Las variables sys_bPulse1s, SYS_COM1_PORT y SYS_MODBUS_03_READ_HOLDING_REGISTERS son


variables del Sistema:
sys_bPulse1s.- da un pulso con period de 1 segundo, es decir 1 segundo en ON y un Segundo en
OFF.
SYS_COM1_PORT.- Variable del Sistema para indicar que se va a utilizar al COM1 para
comunicarse.
SYS_MODBUS_03_READ_HOLDING_REGISTERS.- Variable del Sistema para indicar el modo de
comunicación Modbus ( leer registros tipo Holding).

Se coloca también al esclavo del cual vamos a leer sus datos (Slave Address).
El registro de inicio en el que se va a comenzar a leer los datos (Start Register)
El número de registros que van a ser leídos (Number of Registers)
Finalmente se direcciona esta variable leída a una variable interna del PLC (Master data), en este
caso se almacenará en la variable Dato_Leido.
Se debe realizar la lógica para leer este dato de forma adecuada ya que el BTC nos da un dato con
un desfase de 19999:
El siguiente paso es insertar el bloque de escritura:

Finalmente la lógica para escribir de forma adecuada.

Realizamos la visualización en el HMI:


9.13 Practica Final

Desarrollo de la Práctica

• Crear las variables con los siguientes nombres y direccionamientos:

Nombre Tipo Dirección


Pulsador inicio b_xStart BOOL X0
Pulsador Paro b_xParo BOOL X1
Detección de monedas 1 b_xSensTorre BOOL X4
Detección de monedas 2 b_xDetMonedas BOOL X6
Final de carrera 1 b_xFinPiston1 BOOL X3
Final de carrera 2 b_xFinPiston2 BOOL X5
Pistón 1 b_yPiston1 BOOL Y0
Pistón 1 b_yPiston1 BOOL Y0
Alarma b_yAlarma BOOL Y5

Detección
Monedas 1

Detección Final 1
Monedas 2
Pistón 1

Final 2

Pistón 2
El primer paso es realizar un circuito de enclavamiento con las condiciones de des enclavamiento
tanto con pulsadores físicos como pulsadores de HMI para iniciar todo el sistema.

A continuación se procede a crear dos temporizadores para poder activar y desactivar por cierto
tiempo al pistón 1, de igual forma se crea la seguridad para que un ciclo no interfiera con el otro:

Se procede a crear el temporizador que controla al pistón 2 cuando las monedas llegan al final de
carrera de monedas.
Se procede a crear el contador para la alarma de conteo máximo, de igual forma se direcciona a la
dirección DT10 para visualizar el dato en la pantalla.

Se procede a crear la lógica para activar la alarma comparando el valor alarma (DT11) que viene
dado en la pantalla con el valor del contador:

Se procede a crear el bloque de lectura análoga:

Se crea una función para cambiar el valor análogo a tiempo con una variable de entrada y una de
salida:
Llamamos a la función en el programa principal y lo vinculamos con el bloque de lectura análoga:

Creamos la visualización direccionando las variables de la siguiente manera:

Inicio.- R0.
Paro.-R1.
Reset.-R2.
Manual.- pantalla 2
Conteo.- DT10
Tope.- DT11
Tiempo.- DT14
Pistón 1 Adelante.- R3.
Pistón 2 Adelante.- R4.
Atrás.- Pantalla inicial.

S-ar putea să vă placă și