Documente Academic
Documente Profesional
Documente Cultură
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
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.
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.
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
• 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.
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.
• Fuente de alimentación
• Módulos especiales
• Dispositivo de programación
• Gracias al estándar IEC 61131-3, FPWIN es flexible y compatible con todo tipo de problemas de
control industrial.
• 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.
• 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.
• La declaración de variables.
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.1 POU's
Es una secuencia de líneas de código. Existen tres tipos: programas, bloques de funciones y funciones.
• 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.
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.
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.
• Lenguaje de texto.
• Lenguaje gráfico.
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:
• Las variables permiten dar información al usuario de su significado y uso y forman parte de la
documentación del proyecto.
• 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
Las variables de este tipo son aquellas que pierden su valor al apagar la CPU.
Nota: Para que una variable sea de retención, los PLCs normalmente requieren de una batería externa (o
interna para el AFP0RT).
TIPO: Seleccionar entre los diferentes tipos de variables como: INT, BOOL, etc.
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.
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.
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
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
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:
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.
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
Para familiarizarnos con la programación en diagrama de escalera, resolver Práctica 3: Control de luz de
escalera.
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.
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
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.
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.
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.
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.
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.
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 :
• Editor Bitmap
• Las fuentes incluyen una fuente TrueType de GTWIN. así como todas las fuentes Windows
instaladas en el PC.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.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
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
Igual (EQ)
resultado_3 = 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
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.
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.
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.
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:
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.
Límites:
1: -5 a +5V / 4 a 20mA
2: 0 a 10V
3: 0 a 5V
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.
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.
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.
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 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.
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.
1.- Seleccionar VOID (vacío) como tipo de variable de salida a la hora de crear la 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
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.
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.
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
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.
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:
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.
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
Objetivo didáctico
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
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
Objetivo didáctico
Ejercicio planteado
Objetivo general
Objetivo didáctico
Ejercicio planteado
• Dentro del proyecto prácticas, crear un nuevo objeto en diagrama de escalera con el
nombre practica_4.
Objetivo general
Objetivo didáctico
Ejercicio planteado
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.
Objetivo didáctico
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.
Objetivo didáctico
Ejercicio planteado
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.
• 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.
• 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
Objetivo didáctico:
Ejercicio planteado
• 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.
• Dentro del proyecto prácticas, crear un nuevo objeto con el nombre practica_8.
• 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
Objetivo didáctico
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.
• Dentro del proyecto prácticas, crear un nuevo objeto en diagrama de bloques con el
nombre practica_11.
Objetivo general
Objetivo didáctico:
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.
Objetivo general
Objetivo didáctico:
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.
Objetivo general
Objetivo didáctico
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.
• 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
Objetivo didáctico
• Utilizar funciones.
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.
• 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.
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
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
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 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:
1.- Primera Línea: Si la variable booleana b_xEntrada1 tiene un valor de 1 entonces realizar.
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.
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).
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).
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:
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.
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.
Desarrollo de la Práctica
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
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 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 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
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.
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
2.-Se apaga la banda transportadora (Se añade lo siguiente a la primera línea del programa).
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
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.
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 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
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
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
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
Desarrollo de la Práctica
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:
Desarrollo de la Práctica
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
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:
Desarrollo de la Práctica
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 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:
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.