

leizuofa
Staff group-
Content Count
198 -
Joined
-
Last visited
Content Type
Profiles
Forums
PLC programming technology and HMI interface design Simplified Chinese database
- PLC AND HMI SIMPLIFIED CHINESE ARTICLES
- PLC AND HMI SIMPLIFIED CHINESE ARTICLE Comments
- PLC AND HMI SIMPLIFIED CHINESE ARTICLE Reviews
PLC and HMI Brand Database
- PLC AND HMI BRANDS INTRODUCTIONS
- PLC AND HMI BRAND INTRODUCTION Comments
- PLC AND HMI BRAND INTRODUCTION Reviews
PLC programming technology and HMI interface design English database
- PLC AND HMI ENGLISH ARTICLES
- PLC AND HMI ENGLISH ARTICLE Comments
- PLC AND HMI ENGLISH ARTICLE Reviews
PLC programming technology and HMI interface design Russian database
- PLC AND HMI RUSSIAN ARTICLES
- PLC AND HMI RUSSIAN ARTICLE Comments
- PLC AND HMI RUSSIAN ARTICLE Reviews
Spanish database on PLC programming techniques and HMI interface design
- PLC AND HMI SPANISH ARTICLES
- PLC AND HMI SPANISH ARTICLE Comments
- PLC AND HMI SPANISH ARTICLE Reviews
German database on PLC programming technology and HMI interface design
- PLC AND HMI ARTICLES IN GERMAN
- PLC AND HMI ARTICLE IN GERMAN Comments
- PLC AND HMI ARTICLE IN GERMAN Reviews
Downloads
Store
Gallery
Blogs
Calendar
Videos
Everything posted by leizuofa
-
Tutorial de ejemplo de calentamiento y mezcla de productos mediante PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Este es un programa de PLC para calentar y mezclar productos de forma automática. Aprenda la programación de PLC con este ejemplo para estudiantes de ingeniería. Calefacción y mezcla de productos Descripción del problema Cree un sistema automático en el que se recopilen dos materiales en un tanque. Todos los materiales se deben mezclar hasta que alcancen un punto de ajuste de temperatura predefinido. Cree un programa en escalera en el PLC S7-1200 para esta aplicación. Diagrama del problema Solución del problema Podemos resolver este problema utilizando una lógica simple. Para este sistema, considere dos interruptores de nivel separados para detectar el nivel de dos materiales diferentes (digamos Material A y Material B). Considere también un interruptor de nivel para la detección del nivel vacío. Para controlar el nivel, podemos utilizar una válvula de acción simple (tipo completamente abierta y completamente cerrada). Para mezclar, se utiliza un agitador y se conecta con el eje del motor. El calentador y el sensor de temperatura están instalados dentro del tanque. Aquí se mezclan los materiales hasta alcanzar el punto de temperatura establecido y, después de la mezcla, se acciona la válvula de salida (Q0.4) para drenar los productos mezclados. Lista de entradas y salidas Lista de entradas INICIO de ciclo: I0.0 PARADA de ciclo: I0.1 Nivel de material B: I0.2 Nivel de material A: I0.3 Interruptor de nivel vacío: I0.4 Sensor de temperatura: I0.5 Lista de salidas Válvula de entrada 1: Q0.0 Válvula de entrada 2: Q0.1 Motor del agitador: Q0.2 Calentador: Q0.3 Válvula de salida: Q0.4 Memoria M M0.0: Ciclo ENCENDIDO Programa de PLC para calentar y mezclar el producto Explicación del programa En este problema, consideraremos Software de programación PLC S7-1200 y portal TIA. Red 1: Esta red muestra un circuito de enclavamiento simple para el encendido y apagado del ciclo. Contacto normalmente abierto (NO) del botón de INICIO del ciclo (I0.0) y contacto NC del botón de DETENER el ciclo (I0.1) para la activación del ciclo. Red 2: Esta red es para operar la válvula de entrada 1 (Q0.0). Se opera cuando se detecta un nivel bajo del tanque (I0.4). Y se cierra cuando un interruptor con dirección (I0.3) detecta el nivel del material A. El interruptor de INICIO (I0.0) también está conectado en paralelo, por lo que si no se detecta un nivel bajo, se puede iniciar la válvula de entrada presionando el interruptor de INICIO (I0.0). Red 3: Esta red es para operar la válvula de entrada 2 (Q0.2). Se opera cuando el material A se llena hasta el nivel deseado. Cuando el ciclo está en marcha y se detecta el nivel del material A, la válvula de entrada 2 (Q0.1) estará ENCENDIDA. Red 4: Esta red es para operar el motor del agitador y el calentador. Cuando el tanque está lleno con material A y material B, el calentador (Q0.3) y el motor del agitador (Q0.2) estarán ENCENDIDOS. Red 5: Cuando se complete todo el proceso de mezclado y calentamiento, la válvula de salida (Q0.4) estará ENCENDIDA. El contacto NC del interruptor de nivel vacío (I0.4) se utiliza para detener la válvula de salida cuando el tanque está vacío. Nota: La lógica anterior es solo para explicar ciertas aplicaciones. El diagrama es para fines de representación, el sistema real puede ser diferente de este sistema. Resultado -
Programa PLC para sistema de seguridad con alarma
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Este es el programa PLC para sistemas de seguridad con alarma. Aprenda la programación de PLC con este problema de ejemplo. Sistema de seguridad con alarma Descripción del problema Cree un programa de sistema de alarma antirrobo en un PLC S7-1200 para la casa. Considere una casa, en la que queremos organizar un sistema de seguridad con alarma antirrobo automático. La alarma debe estar ENCENDIDA cuando el sensor de movimiento detecte a una persona. Diagrama del problema Solución del problema Podemos resolver este problema utilizando una lógica simple. Aquí podemos utilizar dos sensores, un sensor de movimiento y un segundo sensor de ventana. El sensor de ventana es el bucle de cables. El sensor de movimiento está diseñado de tal manera que cuando se detecta a una persona en una casa o habitación, el sensor se activará (cambiará su estado a 1 o verdadero) Aquí, un punto importante en el sensor de ventana es que la corriente siempre pasa hasta que se produce la rotura en el vidrio. Por lo tanto, la salida siempre es verdadera y cuando alguien intente romper el vidrio de la ventana, la corriente no fluirá en el circuito. Lista de entradas y salidas Lista de entradas Sistema START :- I0.0 Sistema STOP :- I0.1 Detector de movimiento :- I0.2 Sensor de ventana :- I0.3 Botón de parada de alarma :- I0.4 Lista de salidas Alarma :- Q0.0 Memoria M M0.0 :- Bobina maestra. M0.1 :- Condición de alarma activada. Diagrama de escalera del PLC para el sistema de seguridad de alarma Descripción del programa En este problema, consideraremos el PLC S7-1200 y el software del portal TIA para la programación. Red 1: Esta red muestra un circuito de enclavamiento simple para el sistema ON y el sistema OFF. Usamos un contacto normalmente abierto (NO) del botón de INICIO del sistema (I0.0) y un contacto NC del botón de PARADA del sistema (I0.1) para la activación del sistema. Red 2: Cuando el sistema está activado y el sensor de movimiento (I0.2) detecta la entrada de una persona, la condición de alarma activada (M0.1) estará activada y se activará la alarma (Q0.0). Normalmente, el contacto NC del sensor de ventana (I0.3) se utiliza en paralelo, por lo que en condiciones normales es verdadero. Si se detecta rotura de vidrio o condición de ventana, la entrada del sensor de ventana (I0.3) se vuelve falsa y activará la condición de alarma (M0.1). Red 3: En esta red, se utiliza un circuito de enclavamiento para la alarma (Q0.0). Si se detecta una condición de alarma (M0.1), la alarma estará activada y se puede detener presionando el botón de PARADA de alarma (I0.4). Nota: la lógica anterior es solo para fines explicativos. También podemos implementar este ejemplo utilizando lógica de relé cableado. El sistema PLC S7-1200 es muy costoso para este sistema simple. Resultado -
Programa PLC para el totalizador de caudal
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Realice un programa PLC para implementar un totalizador para el medidor de caudal. El medidor de caudal tiene una salida de 4-20 mA que representa de 0 a 100 litros/hora de caudal de combustible en una tubería. Programa PLC para el totalizador de caudal Usando esta lógica, podemos calcular el combustible total que pasa por la tubería. Cuando el valor del totalizador alcanza los 5000 litros, se debe reiniciar automáticamente o podemos reiniciar el valor usando el botón RESET. Solución del problema Podemos resolver este problema con una lógica simple. Aquí consideramos un medidor de caudal para medir el combustible con un caudal máximo de 100 litros/hora. Aquí convertiremos este caudal de L/H a L/Seg usando la instrucción DIV para el cálculo. Después de eso, usando un pulso de reloj de 1 segundo, almacenaremos este valor en otra ubicación de memoria y cada segundo se agregará y actualizará un nuevo valor. Aquí, por ejemplo, consideramos que el valor máximo del totalizador es de 5000 litros, por lo que después de este valor, el totalizador debe restablecerse. De modo que compararemos este valor con el valor real y lo restableceremos automáticamente o proporcionaremos un botón de REINICIO para restablecer el valor del totalizador. Lista de entradas/salidas Lista de entradas Reset:- I0.0 M Memory M0.5:- Pulso de reloj de 1 segundo (1s) M1.2:- Flanco positivo del pulso de reloj MD10:- Palabra de memoria para la salida final (L/H) del medidor de caudal MD18:- Palabra de memoria para la salida final (L/Sec) del medidor de caudal MD22:- Adición de litros totales MD26:- Combustible total en litros Diagrama de escalera para el totalizador Explicación del programa En este problema, consideraremos el PLC S7-300 y el software del portal TIA para la programación. Red 1: Aquí hemos tomado el valor de salida final del medidor de caudal en L/H (MD10). Al utilizar la instrucción DIV, convertimos el caudal de L/H en L/seg y el valor final se almacena en MD18. Red 2: Aquí, el pulso de reloj de 1 s (M0,5) sumará valor cada segundo y almacenará el resultado en la palabra de memoria MD22. Red 3: Aquí, movimos el valor de MD22 a MD26 (combustible total en litros) para fines de visualización. Red 4: En esta red, necesitamos restablecer el totalizador. Si el combustible total es mayor que 5000 (el valor 5000 es para el propósito del ejemplo, depende de la configuración del medidor de flujo y su rango), entonces el conteo del totalizador debe ser cero automáticamente o podemos restablecerlo presionando el botón RESET (I0.0). Nota: La lógica anterior es solo para fines explicativos. Aquí solo hemos considerado la salida final de la escala, por lo que no hemos mencionado la escala de 4-20 mA en la lógica. Resultado -
Programa PLC para indicación de alarmas en control de procesos
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Cree un programa PLC para indicación de alarmas en la industria de control de procesos. Aprenda la programación de PLC con este ejemplo industrial. Indicación de alarmas en control de procesos En muchas industrias hay muchas máquinas que realizan muchas tareas automáticamente. Hay muchos sensores y componentes utilizados en el sistema o proceso. A veces, el operador puede no identificar los problemas de la máquina o el sistema mediante observaciones visuales. Y también a veces existe la posibilidad de que la máquina deje de funcionar debido a algún problema en ella. Diagrama de problemas Solución de PLC Podemos resolver este problema agregando alarmas al sistema o proceso. Las alarmas se agregan para alertar al operador para que controle que la máquina o el proceso estén a punto de cruzar sus valores límite o que ya cruzaron el límite. Las alarmas se indican al operador mediante un anunciador o bocinas y luces de diferentes colores en el panel. (Por ejemplo, las luces verdes significaban OK, las amarillas no OK y las rojas MALO). El propósito de las alarmas es usar la automatización para ayudar a los operadores humanos a monitorear y controlar los procesos, y alertarlos sobre situaciones anormales de la planta. Las señales de entrada/entrada del proceso se monitorean continuamente y, si el valor de una señal dada pasa a una condición anormal, una alarma visual y/o auditiva informa al operador sobre la situación. Podemos configurar alarmas para el sistema de diferentes maneras, como MIMIC, lámparas de indicación en el tablero del panel, SCADA, HMI, etc. Para nuestras discusiones de problemas, consideramos un sistema simple y configuramos alarmas para el sistema. Por ejemplo, considere un proceso de llenado y descarga y en este sistema queremos considerar algunas alarmas, mostraremos la alarma mediante el uso de lámparas en el tablero del panel. Por ejemplo, considere las siguientes alarmas para nuestro sistema: Parada de emergencia presionada Error de válvula de alimentación abierta Error de válvula de alimentación cerrada Error de válvula de descarga abierta Error de válvula de descarga cerrada Aquí todos son errores, por lo que tomamos todas las indicaciones de color rojo como se muestra en la figura anterior. Lista de entradas y salidas en el PLC Lista de entradas INICIO de ciclo: I0.0 PARADA de ciclo: I0.1 Interruptor de nivel bajo, LL: I0.2 Interruptor de nivel alto, LH: I0.3 VLV de alimentación abierta LS: I0.4 VLV de alimentación cerrada LS: I0.5 VLV de disco abierta LS: I0.6 VLV de disco Cierre de válvula de descarga de líquido (LS): I0.7 PARADA de emergencia: I1.0 REINICIO: I1.1 Lista de salidas Ciclo ON: Q0.0 Válvula de alimentación: Q0.1 Válvula de disco: Q0.2 ZUMBADOR: Q0.3 PARADA de emergencia presionada: Q0.4 (Lámpara indicadora) Error de apertura de válvula de descarga de líquido: Q0.5 (Lámpara indicadora) Error de cierre de válvula de descarga de líquido: Q0.6 (Lámpara indicadora) Error de apertura de válvula de disco: Q0.7 (Lámpara indicadora) Error de cierre de válvula de disco: Q1.0 (Lámpara indicadora) Programa de PLC para indicación de alarma en proceso Control Lógica explicada En esta aplicación, hemos utilizado el PLC Siemens S7-300 y el software TIA Portal para la programación. Red 1: En la red 1, utilizamos un circuito de enclavamiento para la salida de ciclo ON (Q0.0). Se puede iniciar presionando el botón de INICIO de ciclo (I0.0) y DETENER presionando el botón de DETENER (I0.1). Cuando el ciclo se inicia, el sistema verifica el nivel del tanque. Si el nivel del tanque es bajo, se inicia el proceso de alimentación y si el nivel del tanque es alto, se inicia el ciclo de descarga. Red 2: Cuando el tanque alcanza un nivel bajo, se activará LL (I0.2) y se activará el ciclo de alimentación. Aquí hemos tomado el contacto NC de LH (I0.3) de modo que cuando el PLC detecte un nivel alto, DETENDRÁ el ciclo de alimentación. Red 3: Cuando el tanque alcanza un nivel alto, se activará LH (I0.3) y se activará el ciclo de descarga. Aquí hemos tomado el contacto NC de LL (I0.2) de modo que cuando el PLC detecte un nivel bajo, DETENDRÁ el ciclo de descarga. Red 4: Cuando el sistema recibe la entrada de PARADA de emergencia (I1.0), activará la salida de PARADA de emergencia presionada (Q0.4) y se proporcionará una indicación de alarma al operador. Red 5: En esta red hemos configurado la alarma de error de apertura de la válvula de alimentación (Q0.5), cuando la válvula de alimentación está ENCENDIDA y no se detecta la válvula de alimentación LS abierta (I0.4), el temporizador COMENZARÁ y después de 5 s, la alarma de error de apertura de la válvula de alimentación se ENCENDIDA (Q0.5). Red 6: En esta red hemos configurado la alarma de error de CIERRE de válvula de alimentación (Q0.6), cuando la válvula de alimentación está CERRADA y no se detecta el CIERRE de válvula de alimentación LS (I0.5), el temporizador se ENCENDIDO y después de 5 s la alarma de error de CIERRE de válvula de alimentación se ENCENDIDO (Q0.6). Red 7: En esta red hemos configurado la alarma de error de APERTURA de válvula de disco (Q0.7), cuando la válvula de disco está ENCENDIDA y no se detecta el CIERRE de válvula de disco LS (I0.6), el temporizador se ENCENDIDO y después de 5 s la alarma de error de APERTURA de válvula de disco se ENCENDIDO (Q0.7). Red 8: En esta red hemos configurado la alarma de error de CIERRE de válvula de disco (Q1.0), cuando la válvula de disco está CERRADA y no se detecta el CIERRE de válvula de disco LS (I0.7), el temporizador se ENCENDIDO y después de 5 s la alarma de error de cierre de válvula de disco se ENCENDIDO (Q1.0). Red 9: En esta red hemos configurado el ZUMBADOR para todas las alarmas. Cuando se detecte una alarma, se activará el ZUMBADOR (Q0.3) y se podrá REINICIAR presionando REINICIAR (I1.1). Red 10: El operador puede restablecer el ZUMBADOR presionando RESET (I1.0) Casos de prueba Nota: La lógica del PLC anterior brinda una idea básica sobre la aplicación del PLC en la indicación de alarma de un proceso. La lógica es limitada y no es una aplicación completa. -
Programa de PLC para salida de pulso de borde positivo para un ciclo de escaneo
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Este es un programa de PLC para salida de pulso de borde positivo para un ciclo de escaneo. Aprenda la lógica de escalera con la solución. Salida de pulso de borde positivo Descripción del problema En algunas aplicaciones, necesitamos ejecutar una operación/función basada en una señal de entrada externa. Podemos usar una entrada digital como comando de activación para activar esa función requerida. A veces, usamos la transición positiva de la señal de entrada digital para activar el comando en lugar de la señal de entrada digital de pulso completo/continuo. Aquí consideramos un ejemplo de lógica simple en la que los valores de dos registros se incrementarán después de recibir el comando de activación. Cada registro tiene un valor preestablecido, por ejemplo, el valor "1". Entonces, en cada comando de activación, los valores del registro sumador se incrementarán en el valor "1". Para el registro sumador 1, usamos una entrada activada por borde positivo (0 a 1) y para el registro sumador 2, usamos una señal de entrada digital simple (0 a 1 y 1 a 0). Vemos las ventajas y desventajas de usar el comando de activación con y sin usar borde positivo. Podemos utilizar la misma lógica en otras aplicaciones, como poner a cero los valores de registro, forzar los valores de registro con un valor definido con una pequeña modificación de la lógica, etc. Problema Solución Podemos resolver este tipo de problemas mediante el flanco positivo o ascendente de la entrada digital. Aquí consideraremos el PLC S7-300 para la programación, de modo que podamos monitorear el valor y simularlo. Podemos utilizar el PLC SIM para fines de simulación. Aquí hemos considerado un ejemplo simple. En este ejemplo, consideraremos el registro “Asumador 1”, que sumará el valor “1” cuando se produzca la transición de 0 a 1 del comando de activación. El valor del registro se incrementará en valor 1 después de cada activación. Para el registro “Asumador 2”, el valor se incrementará después de recibir la entrada digital. Aquí, no utilizamos la activación por flanco positivo. Lista de entradas/salidas Lista de entradas Comando de activación: I0.0 Bobina de memoria Flanco positivo del comando de activación: M0.0 Valor total: MW2 Valor total 2: MW4 Lógica de escalera de PLC Red 1: El valor inicial del registro “Adder 1” es cero. Después de dar el comando de activación de flanco positivo 18 veces, la salida será el valor 18 a medida que se incrementa en valor “1”. Simulación (PLCSIM-300) para comando de activación con flanco positivo. Red 2: El valor inicial del registro “Adder 2” es cero. Después de dar el comando de activación (sin flanco positivo/negativo) 18 veces, la salida será un número aleatorio (por ejemplo, 7506) en lugar del valor 18 como comando de activación recibido directamente. Simulación (PLCSIM-300) para comando de activación sin flanco positivo. Descripción de la lógica del PLC En esta aplicación, hemos utilizado el PLC Siemens S7-300 y el software TIA Portal para la programación. Aquí hemos considerado dos ejemplos para la explicación del flanco positivo. Cualquiera puede entender fácilmente el concepto. En la red 1, cuando se activa el comando de activación (I0.0), se producirá la transición de 0 a 1 y se ejecutará la instrucción de pulso positivo. Por ejemplo, el registro “Adder 1” se almacenará con el valor “1” en MW0; si se activa el comando de activación (I0.0), el valor se incrementará en “1”. Aquí, por ejemplo, hemos activado 18 veces cuando el sumador 1 es cero, por lo que el sumador ha añadido 18 en el valor total (MW0) Otro ejemplo que hemos tomado en la Red 2, sin utilizar pulso positivo. Así que aquí puede ver el resultado. Digamos que hemos presionado o activado 18 veces, pero ha añadido 7506 (este es un valor aleatorio que puede ser diferente durante la simulación) en el Valor total 2 (MW4), por lo que no es una suma adecuada. Porque un pulso tiene flancos ascendentes o descendentes / pulsos positivos o negativos (0 a 1 y 1 a 0). Aquí también hemos utilizado PLC SIM para la simulación, por lo que podemos simular la suma total. En la primera red hemos añadido un flanco positivo, por lo que el simulador muestra 18. En la segunda red hemos añadido un comando de activación sin flanco positivo, por lo que muestra un valor aleatorio. Este es el concepto de flanco positivo, podemos utilizar este flanco positivo durante cualquier aplicación de programación. El programa y la simulación anteriores son solo para fines explicativos y el valor de la simulación puede ser diferente en el momento de la simulación. Resultado Nota: La lógica del PLC anterior proporciona una idea básica sobre la aplicación del comando de activación de flanco positivo en la lógica del PLC. La lógica es limitada y no se aplica en su totalidad. -
Programa PLC para sistema automático de rechazo de botellas
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Este es el programa PLC para el sistema automático de rechazo de botellas. Aprenda la lógica de escalera con este ejercicio y solución de PLC. Rechazo automático de botellas Descripción del problema Hoy en día, la automatización en las industrias es necesaria para una producción precisa y rápida. Tomemos como ejemplo las empresas embotelladoras de gaseosas, donde se utiliza la cinta transportadora para transferir las botellas de una estación a otra. Pero antes de que las botellas lleguen a la estación de llenado de gaseosas, es necesario asegurarse de que todas las botellas estén en posición vertical para su posterior procesamiento. Una botella caída en la cinta transportadora puede crear un problema en el siguiente proceso. Por eso, aquí analizamos una lógica PLC simple que maneja la botella caída. Diagrama del problema de PLC Solución del problema de PLC Para eso, utilizamos un sistema PLC en la estación de llenado, que rechaza la botella caída de la cinta transportadora y despeja el camino para el siguiente proceso. Este proceso se realiza mediante el uso de sensores y actuadores. Utilizamos un conjunto de cilindro de pistón neumático para empujar las botellas caídas desde la cinta transportadora. Cuando el transportador está en funcionamiento, todas las botellas se transfieren de una estación a otra para el siguiente proceso. Se utilizan dos sensores, para la detección de botellas paradas y caídas, y un cilindro neumático para empujar la botella caída desde el transportador. Lista de entradas/salidas Lista de entradas PB de inicio: I0.1 PB de parada: I0.0 Sensor X1: I0.2 Sensor X2: I0.3 Lista de salidas Ciclo ON: Q0.0 Transportador: Q0.1 Cilindro: Q0.2 Programa de PLC para el sistema de rechazo automático de botellas Explicación del programa de PLC En esta aplicación, hemos utilizado el PLC Siemens S7-1200 y el software TIA Portal para la programación. También podemos diseñar esta lógica con un circuito de relé. Red 1: En la red 1, hemos tomado la condición de ciclo ON para la máquina. Aquí hemos tomado START PB (I0.1) para iniciar el ciclo y STOP PB (I0.1) para STOP del ciclo. Hemos tomado la salida paralela del transportador (Q.1) con el ciclo ON (Q0.0) para que podamos operar el transportador con la condición de ciclo ON. Red 2: En la Red 2, hemos tomado los sensores X1(I0.2) y X2(I0.3) como entradas. Usamos contacto NA para el sensor X2 (I0.3) y contacto NC para el sensor X1 (I0.2). Cuando las botellas se transfieren en el transportador, estos sensores detectan la posición de las botellas, ya sea que estén paradas o caídas. El sensor X2(I0.3) detecta la posición hacia abajo de la botella y el sensor X1(I0.2) detecta la posición superior de la botella. En el PLC, diseñamos el circuito que sigue el comando de que si el sensor X2 (I0.3) detecta la botella y el sensor X1 (I0.2) no detecta la botella, entonces el actuador neumático (Q0.2) entrará en acción y rechazará la botella del transportador. Después de esto, las botellas perfectas irán a la estación de llenado de gaseosas y se completará todo el ciclo. Resultado Nota: La lógica del PLC anterior proporcionó la idea básica sobre la aplicación del PLC en el sistema automático de manejo de rechazo de botellas. La lógica es limitada y no es una aplicación completa. -
Programa PLC para el registro diario de producción
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Programa PLC para el registro diario de producción. Conozca la descripción del problema con una explicación detallada de la lógica de escalera. Registro diario de producción Descripción del problema En muchas industrias, se requiere contar la cantidad de productos que se fabrican en un día y es muy necesario para vender los productos o rastrear la cantidad de producción a diario. En la antigüedad, se asignaban operadores humanos para contar los productos finales, pero debido a algunos errores humanos, no es posible realizar un recuento preciso. Por lo tanto, no podemos obtener un recuento adecuado de todos los productos y no podemos rastrear la cantidad de producción de manera efectiva. La mayoría de estos tipos de problemas ocurren en las industrias de alimentos y bebidas, industrias de empaquetado de cajas, aplicaciones de llenado de botellas, etc. Por lo tanto, podemos usar una lógica simple basada en PLC para rastrear la producción diaria y registrarla electrónicamente. Diagrama del problema Solución de PLC Aquí resolveremos el problema del recuento de productos finales mediante el uso de sensores y programación de PLC. El primer sensor detecta el producto y cuenta la cantidad, y el valor se mostrará en la pantalla digital (como se muestra en la figura anterior). Para una explicación más sencilla, consideraremos un ejemplo simple de sistema de conteo de cajas vacías. En este sistema, las cajas vacías viajan del primer proceso al segundo proceso (es decir, de un lugar a otro). El sensor se utiliza para contar las cajas vacías. Entonces, cuando el sensor detecta una caja vacía, la pantalla comienza a contar desde 1 y esto se hace mediante una lógica simple. Cada 24 horas / después de un día, podemos restablecer el valor del contador utilizando el botón RESET. Aquí consideraremos dos lotes de producción para una explicación más sencilla. Y también hemos considerado dos indicaciones de finalización de lotes para el operador para cada lote que se mostrarán en el panel local. Mediante la lógica del PLC implementaremos la lógica deseada. Entonces, cuando se complete un lote, la luz indicadora se encenderá según el programa del PLC. Una vez que se complete el objetivo de producción, el contador de la pantalla se puede restablecer utilizando el botón RESET. Lista de entradas/salidas Lista de entradas Sensor detector de caja: I0.0 Reset: I0.1 INTERRUPTOR principal: I0.2 Lista de salidas Objetivo completado: Q0.0 Lote 1 completado: Q0.1 Lote 2 completado: Q0.2 Diagrama de escalera para registro de producción diaria Descripción del programa PLC En esta aplicación, hemos utilizado el PLC Siemens S7-1200 y el software TIA Portal para la programación. Red 1: En la red 1, utilizamos el INTERRUPTOR principal (I0.2) para iniciar el sistema/lote y utilizamos el contacto NO del sensor detector de caja (I0.0) en serie. Aquí, consideramos un contador ascendente, de modo que cuando el sensor detector de caja (I0.0) detecta la caja, el contador comienza a contar. Aquí también hemos tomado la salida objetivo completado (Q0.0) para la indicación de finalización del objetivo para la indicación del operador en el panel. Al presionar el botón RESET (I0.1), el operador puede RESETEAR el registro de producción anterior. La operación del contador se utiliza para contar los productos, en la que RESET (I0.1) se utiliza para restablecer el registro de producción. Y el valor preestablecido (PV) es 20 productos. El valor del contador (CV) es MW2, que indica la cantidad real de productos detectados por el sensor y este valor se utilizará en los siguientes peldaños para realizar un seguimiento del estado del lote. Red 2: En la red 2, utilizamos la lógica del lote 1 de la salida CV del bloque del contador. Aquí, utilizamos un comparador para contar 10 cajas para el lote 1 y, cuando se complete, se encenderá la lámpara de lote 1 completado (Q0.1). En este caso, se suma el comparador igual a igual en el que la entrada es (MW2) y para 10 productos. Red 3: En la red 3, utilizamos la lógica del lote 1 de la salida CV del bloque del contador. Aquí usamos un comparador para contar 20 cajas para el lote 2 y cuando se complete, se encenderá la lámpara de lote 2 (Q0.2) Y de esta manera podemos decidir cuántos productos y lotes se producen. Casos de prueba en tiempo de ejecución Nota: La lógica del PLC anterior proporcionó una idea básica sobre la aplicación del PLC en el registro de producción industrial. La lógica es limitada y no es una aplicación completa. -
Programa de PLC para el proceso de llenado y descarga de agua
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Este es un programa de PLC para el proceso de llenado y descarga de agua utilizando el PLC S7-1200. Proceso de llenado y descarga de agua Descripción del problema En muchas industrias o plantas, se utilizan muchos sistemas de llenado de agua manuales para el almacenamiento de agua. En el sistema manual, existen muchas desventajas, como la precisión, los problemas de retardo de tiempo, la pérdida de líquidos y el consumo de tiempo. Y debido al sistema manual, tenemos que contratar a un operador para la operación de la máquina. El desperdicio de agua ocurre debido al sistema manual. Aquí estamos discutiendo un sistema semiautomático. Diagrama Solución de PLC Para resolver este problema, utilizaremos el PLC S7-1200 para la programación. Aquí utilizamos dos sensores para la medición de nivel, uno es para el nivel alto y el segundo es para el nivel bajo. Utilizamos la válvula de alimentación (MV1) para el ciclo de llenado del tanque y la válvula de descarga (MV2) para el ciclo de descarga del tanque. Ambas se controlarán de acuerdo con la lógica del sensor. Por lo tanto, cuando el nivel del agua desciende por debajo del nivel bajo, la válvula de alimentación se activará automáticamente y cuando el nivel del agua alcance un nivel alto y lo detecte el sensor de nivel alto, el proceso de descarga se activará automáticamente. Cuando se detecte un nivel alto, se activará un timbre para avisar. El ciclo se detendrá si el usuario presiona el botón de detención desde el panel de control. Entradas y salidas del PLC Entradas digitales PB de inicio: I0.0 PB de parada: I0.1 TLB 1: I0.3 TLB 2: I0.2 Salidas digitales Ciclo ON: Q0.0 Válvula MV1 (alimentación): Q0.1 Válvula MV2 (descarga): Q0.2 Agitador/mezclador M: Q0.3 Zumbador: Q0.4 Proceso de llenado y descarga de agua del PLC Explicación del programa del PLC Para esta aplicación, utilizamos el software del portal TIA y el PLC S7-1200 para la programación. En la red 1, utilizamos un circuito de enclavamiento para la salida de ciclo ON (Q0.0). Se puede iniciar presionando el PB de INICIO (I0.0) y detener presionando el PB de DETENER (I0.1). Cuando se inicie el ciclo, el sistema verificará el nivel del tanque. Si el nivel del tanque es bajo, entonces comenzará el proceso de alimentación y si el nivel del tanque es alto, entonces comenzará el ciclo de descarga. Aquí hemos tomado el contacto NO para ambos sensores en el programa para simplificar. Se puede hacer mediante lógica de relé en campo o puede usar ese tipo de sensores. Cuando el tanque detecte un nivel bajo, se activará TLB 2 (I0.2) y luego se ENCENDIDO el ciclo de alimentación. Aquí hemos tomado el contacto NC de TLB1 (I0.3) de modo que cuando el PLC detecte un nivel alto, detendrá el ciclo de alimentación. Cuando el tanque detecte un nivel alto, se activará TLB 1 (I0.3) y se ENCENDIDO el ciclo de descarga. Aquí hemos tomado el contacto NC de TLB2 (I0.2) de modo que cuando el PLC detecte un nivel bajo, detendrá el ciclo de descarga. El mezclador M (Q0.3) debe estar ENCENDIDO durante el ciclo de descarga para fines de mezclado. Aquí también consideramos una alarma para el nivel alto para informar al operador. Cuando se detecte TLB 1 (I0.3), se activará el timbre (Q0.4). Durante todas las funciones, el ciclo debe estar ACTIVADO. Casos de prueba en tiempo de ejecución Nota: La lógica del PLC anterior proporciona una idea básica sobre la aplicación del PLC en el proceso de llenado y descarga de agua. La lógica es limitada y no es una aplicación completa. -
Programa de contadores de PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Escriba un programa de contadores de PLC para el siguiente ejemplo. Contadores de PLC Un determinado proceso consiste en contar la cantidad de transiciones de verdadero a falso en la entrada I:0.0/0 durante un período de 10 segundos. El conteo debe realizarse si la palabra de entrada I:0.1 tiene un valor menor que 10000 o mayor que 20000. El período de conteo de 10 segundos debe comenzar 15 segundos después de que comience el proceso. I:0.0/1 es una entrada de inicio de proceso y la entrada I:0.0/2 es una entrada de detención de proceso. La pantalla de conteo debe enviarse a la palabra O:0.0 solo al final del período de conteo. Todas las salidas deben desactivarse 5 segundos después del período de conteo. El proceso debe repetirse solo después de otra pulsación distinta de la entrada de inicio de proceso. Escriba un programa de lógica de escalera eficiente para este proceso. Lógica de PLC -
Programa de PUERTA LÓGICA PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Escriba un programa de PUERTA LÓGICA PLC para el siguiente ejemplo de PLC. Programa de PUERTA LÓGICA Escriba un programa que una B3:0 con B3:1 cuando I:0.0/0 esté activado, una B3:0 con B3:1 cuando I:0.0/1 esté activado, una B3:0 con B3:1 cuando I:0.0/2 esté activado y una B3:0 con B3:1 cuando I:0.0/3 esté activado. B3:1 debe contener el resultado en cada caso. Si se activa más de una entrada I:0.0/0-I:0.0/3, solo se realizará una de las operaciones. El orden de precedencia de las operaciones debe ser de AND (precedencia más alta) a COMPLEMENT (precedencia más baja). Lógica de escalera PLC -
ALLEN BRADLEY-ES Subrutinas de PLC de Allen Bradley
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Las instrucciones JSR, SBR y RET se utilizan para indicar al controlador que ejecute un archivo de subrutina independiente dentro del programa de escalera y que regrese a la instrucción que sigue a la instrucción JSR. Subrutinas de PLC de Allen Bradley La instrucción SBR debe ser la primera instrucción en el primer peldaño del archivo de programa que contiene la subrutina. Use una subrutina para almacenar secciones recurrentes de la lógica del programa que se deben ejecutar desde varios puntos dentro de su programa de aplicación Una subrutina ahorra memoria porque la programa solo una vez. Actualice la E/S crítica dentro de las subrutinas utilizando instrucciones de entrada y/o salida inmediatas (IIM, IOM), especialmente si su aplicación requiere subrutinas anidadas o relativamente largas De lo contrario, el controlador no actualiza la E/S hasta que llega al final del programa principal (después de ejecutar todas las subrutinas) Las salidas controladas dentro de una subrutina permanecen en su último estado hasta que se ejecuta nuevamente la subrutina. Cuando se ejecuta la instrucción JSR, el controlador salta a la instrucción de subrutina (SBR) al comienzo del archivo de subrutina de destino y reanuda la ejecución en ese punto. No se puede saltar a ninguna parte de una subrutina excepto a la primera instrucción de ese archivo. La subrutina de destino se identifica por el número de archivo que se ingresó en la instrucción JSR. La instrucción SBR sirve como etiqueta o identificador para un archivo de programa como un archivo de subrutina regular. La instrucción debe programarse como la primera instrucción del primer peldaño de una subrutina. La instrucción RET marca el final de la ejecución de la subrutina o el final del archivo de subrutina. El peldaño que contiene la instrucción RET puede ser condicional si este peldaño precede al final de la subrutina. De esta manera, el controlador omite el resto de una subrutina solo si la condición de su peldaño es verdadera. -
Programa de temporizadores de PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Escriba un programa de temporizadores de PLC para el siguiente ejemplo de PLC. Temporizadores de PLC Construya un circuito de temporización de PLC que genere (usando la salida O:2/0) un pulso de 0,5 segundos cada dos segundos (es decir, encendido durante 0,5 s y luego apagado durante 2 s). Si un interruptor (usando I:1/0) está cerrado y un pulso de 1 segundo cada dos segundos si el interruptor está abierto. Lógica de escalera -
Programa de PLC para el arrancador de motor en estrella y delta
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Cuando se arranca un motor eléctrico, consume una corriente alta, típicamente 5 o 6 veces mayor que la corriente normal. En los motores de CC no hay fuerza contraelectromotriz al arrancar, por lo tanto, la corriente inicial es muy alta en comparación con la corriente normal. Para proteger el motor de estas corrientes de arranque altas, utilizamos un arrancador en estrella y delta. Simplemente en la conexión en estrella, el voltaje de suministro al motor será menor. Por lo tanto, utilizamos la conexión en estrella durante el arranque del motor. Después de que el motor esté en funcionamiento, cambiaremos la conexión de estrella a delta para obtener la velocidad máxima del motor. Arranque de motor en estrella y delta La siguiente figura muestra las conexiones de bobinado en la configuración en estrella y delta una por una. Se puede ver que en la conexión en estrella, un extremo de los tres bobinados está en cortocircuito para formar un punto de estrella, mientras que el otro extremo de cada bobinado está conectado a la fuente de alimentación. En la configuración delta, los bobinados están conectados de manera que formen un bucle cerrado. La conexión de cada bobinado se muestra en la figura anterior. En un motor real, las conexiones trifásicas se proporcionan en el siguiente orden, como se muestra: Por lo tanto, para realizar la conexión de bobinado en estilo estrella y delta en un motor práctico, la conexión se muestra arriba. El contactor principal se utiliza para suministrar energía a los bobinados. Debe estar encendido todo el tiempo. Inicialmente, el contactor de estrella está cerrado mientras que el contactor delta está abierto. Hace que los bobinados del motor estén en configuración de estrella. Cuando el motor gana velocidad, el contactor de estrella se abre mientras que el contactor delta está cerrado, lo que hace que los bobinados del motor estén en configuración delta. Los contactores se controlan mediante un PLC. La siguiente sección del tutorial de PLC explicará la programación en escalera para el arrancador de motor estrella-delta. Programa de PLC para arrancador de motor estrella-triángulo: Lógica de escalera de PLC Contacto principal de peldaño 1: El contactor principal depende del botón pulsador de arranque de entrada normalmente abierto (I1), el botón de parada normalmente cerrado (I2) y el relé de sobrecarga normalmente cerrado. Esto significa que el contactor principal solo se activará si se presiona el botón de arranque, mientras que el botón de parada no se presiona y el relé de sobrecarga no se activa. Se agrega una entrada normalmente abierta denominada (Q1) en paralelo al botón de arranque I1. Al hacerlo, se crea un botón pulsador que significa que una vez que se arranca el motor, se mantendrá arrancado incluso si se suelta el botón de arranque. Contacto en estrella de peldaño 2: El contactor en estrella depende del contactor principal, los contactos normalmente cerrados del temporizador (T1) y los contactos normalmente cerrados del contactor delta de salida (Q3). Por lo tanto, el contactor en estrella solo se activará si el contactor principal está encendido, la salida de tiempo no está activada y el contactor delta no está activado. Temporizador T1: El temporizador T1 mide el tiempo después del cual se debe cambiar la conexión del devanado del arrancador estrella-delta. Comenzará a contar el tiempo después de que se active el contactor principal. Contacto delta de escalón 3: El contactor delta se activará cuando el contactor principal (Q1) esté activado, el temporizador T1 esté activado y el contactor en estrella (Q3) esté desactivado. Consulte también Programación del pulsador y otros requisitos para el arrancador de motor simple, que se explican en el Tutorial de PLC: Arrancador de motor. Nota: Esta publicación es solo para fines educativos o de referencia. Para un circuito activo, habrá algunas adiciones al circuito anterior, como relacionadas con la seguridad, según la aplicación, algunos enclavamientos, etc. -
Programa PLC para arrancador de motor
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Tutorial de PLC que explica paso a paso el procedimiento para programar un PLC para arrancador de motor. Los arrancadores de motor son de muchos tipos, sin embargo, el alcance de este tutorial de PLC se limita a un arrancador de motor simple. Debe tener las siguientes disposiciones. Botón pulsador para arrancar el motor: el motor debe continuar girando incluso cuando se suelta el botón pulsador. Botón pulsador de parada para detener el motor después de que se haya puesto en marcha. Protección contra sobrecorriente: en caso de sobrecarga, el motor debe detenerse automáticamente mediante la señal que proviene de los contactores del relé de sobrecarga. Interruptor de límite: debe evitar que el motor arranque y también puede detener el motor en funcionamiento. El arrancador de motor también debe tener indicadores (luces) para mostrar el estado de encendido o apagado del motor. Esquema eléctrico del motor: La figura anterior muestra el diseño físico del arrancador de motor; sin embargo, esto se diseñará mediante lógica de escalera en este tutorial de PLC. La figura anterior no muestra el interruptor de límite porque depende de un enclavamiento externo, como por ejemplo un interruptor de nivel, un interruptor de flujo, un interruptor de presión, etc., según la aplicación. Si no se requiere enclavamiento, simplemente elimine el símbolo del diagrama y conéctelo con un cable simple. Diagrama de escalera para el arrancador de motor: La siguiente figura muestra el diagrama de escalera para el arrancador de motor. Botón de arranque I1: Se utiliza el contacto normalmente abierto (contacto de cierre) porque el motor solo debe arrancar cuando se presiona el botón. Botón de parada I2: Se utiliza el contacto normalmente cerrado (contacto de interrupción) porque el botón normalmente debe estar cerrado o alto para que el motor siga funcionando. Debe abrirse cuando se presiona el botón. Es lo opuesto al botón pulsador de arranque. Relé de sobrecarga I3: En condiciones normales, este relé debe permitir que el motor gire, por lo que se selecciona el contacto normalmente cerrado. En caso de sobrecarga, detendrá el motor abriendo su contacto. Interruptor de límite I4: El motor solo debe girar cuando el interruptor de límite está cerrado, por lo que se utiliza un contacto normalmente abierto. Salida Q1, Q2, Q3: La bobina de relé Q1, Q2 y Q3 representan la salida del motor, la indicación de encendido y apagado del motor respectivamente. El indicador de encendido recibe la entrada de la entrada normalmente abierta que depende de la salida Q1. El indicador de apagado se alimenta de la entrada normalmente cerrada que depende de la salida Q2. Entrada Q1 (para rotación continua): Dado que se requiere que una vez que se presiona el botón pulsador, el motor debe funcionar de forma continua incluso si se suelta el botón pulsador. Para lograr esta parte, se utiliza una entrada Q1 (normalmente abierta) y se conecta en paralelo con I1. Esta entrada depende de la salida Q1. Cuando la salida es alta, la entrada Q1 también es alta. Dado que la entrada Q1 proporciona una ruta paralela con I1, si alguna de ellas debe ser alta, el motor funcionará (si también se cumplen otras condiciones). El botón de arranque (normalmente abierto), el botón de parada (normalmente cerrado), el relé de sobrecarga (normalmente cerrado) y el interruptor de límite (normalmente abierto) están conectados en serie. Por lo tanto, el motor funcionará si se presiona el botón de arranque, no se presiona el botón de parada, no se activa el relé de sobrecarga y el interruptor de límite está cerrado. Nota: esta publicación es solo para fines educativos o de referencia. Para un circuito activo, habrá algunas adiciones al circuito anterior, como relacionadas con la seguridad, según la aplicación, algunos enclavamientos, etc. -
Instrucciones del temporizador del PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Un temporizador es una instrucción del PLC que mide la cantidad de tiempo transcurrido después de un evento. Las instrucciones del temporizador son de dos tipos básicos: temporizadores con retardo de encendido y temporizadores con retardo de apagado. Tanto las instrucciones del temporizador con “retardo de encendido” como las del “retardo de apagado” tienen entradas individuales que activan la función temporizada. Un temporizador con “retardo de encendido” activa una salida solo cuando la entrada ha estado activa durante un tiempo mínimo. Instrucciones del temporizador del PLC Tomemos como ejemplo este programa de PLC, diseñado para hacer sonar una sirena de alarma de audio antes de poner en marcha una cinta transportadora. Para poner en marcha el motor de la cinta transportadora, el operador debe mantener presionado el botón de “Inicio” durante 10 segundos, tiempo durante el cual suena la sirena, advirtiendo a las personas que se alejen de la cinta transportadora que está a punto de ponerse en marcha. Solo después de este retraso de arranque de 10 segundos, el motor arranca realmente (y se bloquea en “encendido”): De manera similar a un contador “en avance”, el valor de tiempo transcurrido (ET) del temporizador de retardo de encendido aumenta una vez por segundo hasta que se alcanza el tiempo preestablecido (PT), momento en el que se activa su salida (Q). En este programa, el valor de tiempo preestablecido es de 10 segundos, lo que significa que la salida Q no se activará hasta que se haya presionado el interruptor de “Inicio” durante 10 segundos. La salida de la sirena de alarma, que no se activa con el temporizador, se activa inmediatamente cuando se presiona el botón de “Inicio”. Un detalle importante con respecto al funcionamiento de este temporizador en particular es que no es retentivo. Esto significa que la instrucción del temporizador no debe retener su valor de tiempo transcurrido cuando se desactiva la entrada. En cambio, el valor del tiempo transcurrido debe restablecerse a cero cada vez que se desactiva la entrada. Esto garantiza que el temporizador se restablezca automáticamente cuando el operador suelte el botón de "Inicio". Por el contrario, un temporizador de retardo de encendido retentivo mantiene su valor de tiempo transcurrido incluso cuando se desactiva la entrada. Esto lo hace útil para mantener los tiempos "totales en ejecución" de algún evento. La mayoría de los PLC proporcionan versiones retentivas y no retentivas de instrucciones de temporizador de retardo de encendido, de modo que el programador pueda elegir la forma adecuada de temporizador de retardo de encendido para cualquier aplicación en particular. Sin embargo, el estándar de programación IEC 61131-3 aborda la cuestión de los temporizadores retentivos frente a los no retentivos de forma un poco diferente. Según el estándar IEC 61131-3, una instrucción de temporizador puede especificarse con una entrada de habilitación adicional (EN) que hace que la instrucción de temporizador se comporte de forma no retentiva cuando se activa y de forma retentiva cuando se desactiva. El concepto general de la entrada de habilitación (EN) es que la instrucción se comporta de manera “normal” mientras la entrada de habilitación esté activa (en este caso, la acción de temporización no retentiva se considera “normal” según la norma IEC 61131-3), pero la instrucción “congela” toda la ejecución siempre que la entrada de habilitación se desactiva. Este “congelamiento” de la operación tiene el efecto de retener el valor de tiempo actual (CT) incluso si la señal de entrada se desactiva. Por ejemplo, si deseamos agregar un temporizador retentivo a nuestro sistema de control de transportador para registrar el tiempo de funcionamiento total del motor del transportador, podríamos hacerlo utilizando una instrucción de temporizador IEC 61131-3 “habilitada” como esta: Cuando el bit del contactor del motor (contactor OUT) está activo, el temporizador se habilita y se le permite cronometrar. Sin embargo, cuando ese bit se desactiva (se vuelve “falso”), la instrucción del temporizador en su totalidad se desactiva, lo que hace que se “congele” y conserve su valor de tiempo actual (CT) ( Nota 1 ). Esto permite que el motor se ponga en marcha y se detenga, y el temporizador mantiene un recuento del tiempo total de funcionamiento del motor. Nota 1 : La señal de “habilitación de salida” (ENO) en la instrucción del temporizador sirve para indicar el estado de la instrucción: se activa cuando la entrada de habilitación (EN) se activa y se desactiva cuando la entrada de habilitación se desactiva o la instrucción genera una condición de error (según lo determinado por la programación interna del fabricante del PLC). La señal de salida ENO no tiene ningún propósito útil en este programa en particular, pero está disponible si hubiera alguna necesidad de que otros peldaños del programa estuvieran “al tanto” del estado del temporizador de tiempo de ejecución. Si quisiéramos darle al operador la capacidad de restablecer manualmente el valor total del tiempo de ejecución a cero, podríamos conectar un interruptor adicional a la tarjeta de entrada discreta del PLC y agregar contactos de “reinicio” al programa de esta manera: Siempre que se presiona el interruptor “Reinicio”, el temporizador se habilita (EN) pero la entrada de temporización (IN) se deshabilita, lo que obliga al temporizador a restablecer (sin retención) su valor de tiempo actual (CT) a cero. El otro tipo principal de instrucción de temporizador de PLC es el temporizador de retardo de apagado. Esta instrucción de temporizador difiere del tipo de retardo de encendido en que la función de temporización comienza tan pronto como se desactiva la instrucción, no cuando se activa. Una aplicación para un temporizador de retardo de apagado es un control de motor de ventilador de enfriamiento para un motor industrial grande. En este sistema, el PLC enciende un ventilador de enfriamiento eléctrico tan pronto como se detecta que el motor está girando y mantiene ese ventilador funcionando durante dos minutos después de que se apaga el motor para disipar el calor residual: Cuando se activa la entrada (IN) de esta instrucción del temporizador, la salida (Q) se activa inmediatamente (sin demora de tiempo) para encender el contactor del motor del ventilador de enfriamiento. Esto proporciona enfriamiento al motor tan pronto como comienza a girar (como lo detecta el interruptor de velocidad conectado a la entrada discreta del PLC). Cuando el motor deja de girar, el interruptor de velocidad vuelve a su posición normalmente abierta, desactivando la señal de entrada del temporizador que inicia la secuencia de temporización. La salida Q permanece activa mientras el temporizador cuenta desde 0 segundos hasta 120 segundos. Tan pronto como llega a 120 segundos, la salida se desactiva (apagando el motor del ventilador de enfriamiento) y el valor del tiempo transcurrido permanece en 120 segundos hasta que la entrada se reactiva, momento en el que se restablece a cero. Los siguientes diagramas de temporización comparan y contrastan los temporizadores con retardo de encendido y los temporizadores con retardo de apagado: Si bien es común encontrar instrucciones de PLC con retardo de encendido que se ofrecen en formas retentivas y no retentivas dentro de los conjuntos de instrucciones de casi todos los fabricantes y modelos de PLC, es casi inaudito encontrar instrucciones de temporizadores con retardo de apagado retentivas. Por lo general, los temporizadores con retardo de apagado son solo no retentivos (Nota 2). Nota 2: Las señales de entrada de habilitación (EN) especificadas en el estándar de programación IEC 61131-3 hacen posible los temporizadores con retardo de apagado retentivos (al desactivar la entrada de habilitación mientras se mantiene la entrada "IN" en un estado inactivo), pero tenga en cuenta que la mayoría de las implementaciones de temporizadores de PLC no tienen entradas EN e IN separadas. Esto significa (para la mayoría de las instrucciones del temporizador PLC) que la única entrada disponible para activar el temporizador es la entrada “IN”, en cuyo caso es imposible crear un temporizador de retardo de desactivación retentivo (ya que el valor del tiempo transcurrido de dicho temporizador se restablecería inmediatamente a cero cada vez que la entrada se reactiva). -
Instrucciones de comparación de datos de PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Como hemos visto con los contadores y temporizadores, algunas instrucciones de PLC generan valores digitales distintos de las simples señales booleanas (encendido/apagado). Los contadores tienen registros de valor actual (CV) y los temporizadores tienen registros de tiempo transcurrido (ET), los cuales son típicamente valores numéricos enteros. Muchas otras instrucciones de PLC están diseñadas para recibir y manipular valores no booleanos como estos para realizar funciones de control útiles. La norma IEC 61131-3 especifica una variedad de instrucciones de comparación de datos para comparar dos valores no booleanos y generar salidas booleanas. Instrucciones de comparación de datos del PLC Las operaciones comparativas básicas de “menor que” (<), “mayor que” (>), “menor o igual que” (≤), “mayor o igual que” (≥), “igual a” (=) y “no igual a” (6=) se pueden encontrar como una serie de instrucciones de “casilla” en la norma IEC: La salida Q para cada “casilla” de instrucción se activa siempre que la función de comparación evaluada sea “verdadera” y la entrada de habilitación (EN) esté activa. Si la entrada de habilitación permanece activa pero la función de comparación es falsa, la salida Q se desactiva. Si la entrada de habilitación se desactiva, la salida Q conserva su último estado. Una aplicación práctica de una función comparativa es algo llamado control de motor alterno, donde se monitorean los tiempos de funcionamiento de dos motores eléctricos redundantes, y el PLC determina qué motor encender a continuación en función de cuál de ellos ha funcionado menos: . En este programa, dos temporizadores de retardo de encendido retentivos llevan un registro del tiempo de funcionamiento total de cada motor eléctrico, almacenando los valores de tiempo de funcionamiento en dos registros en la memoria del PLC: Tiempo de funcionamiento del motor A y tiempo de funcionamiento del motor B. Estos dos valores enteros se ingresan en el cuadro de instrucción "mayor que" para comparación. Si el motor A ha funcionado más tiempo que el motor B, el motor B será el que esté habilitado para arrancar la próxima vez que se presione el interruptor de "arranque". Si el motor A ha funcionado menos tiempo o la misma cantidad de tiempo que el motor B (el escenario que se muestra con las indicaciones de estado resaltadas en azul), el motor A será el que esté habilitado para arrancar. Los dos contactos virtuales conectados en serie, el motor A de SALIDA y el motor B de SALIDA, garantizan que la comparación entre los tiempos de funcionamiento de los motores no se realice hasta que ambos motores se detengan. Si la comparación se hiciera continuamente, podría surgir una situación en la que ambos motores se pondrían en marcha si alguien presionara el botón de Inicio con uno de los motores ya en funcionamiento. -
Instrucciones de contador de PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Un contador es una instrucción de PLC que incrementa (cuenta hacia arriba) o decrementa (cuenta hacia abajo) un valor de número entero cuando se lo solicita la transición de un bit de 0 a 1 (“falso” a “verdadero”). Las instrucciones de contador vienen en tres tipos básicos: contadores progresivos, contadores regresivos y contadores progresivos/regresivos. Las instrucciones de contador “progresivos” y “regresivos” tienen entradas únicas para activar los conteos, mientras que los contadores “progresivos/regresivos” tienen dos entradas de activación: una para hacer que el contador se incremente y otra para hacer que el contador se decremente. Instrucciones de contador de PLC Para ilustrar el uso de una instrucción de contador, analizaremos un sistema basado en PLC diseñado para contar objetos a medida que pasan por una cinta transportadora: En este sistema, un haz de luz continuo (ininterrumpido) hace que el sensor de luz cierre su contacto de salida, lo que activa el canal discreto IN4. Cuando un objeto en la cinta transportadora interrumpe el haz de luz que va de la fuente al sensor, el contacto del sensor se abre, interrumpiendo la alimentación a la entrada IN4. Un interruptor pulsador conectado para activar la entrada discreta IN5 cuando se presiona servirá como un “reinicio” manual del valor de conteo. Una lámpara indicadora conectada a uno de los canales de salida discretos servirá como indicador de cuándo el valor de conteo del objeto ha excedido un límite preestablecido. Ahora analizaremos un programa de diagrama de escalera simple diseñado para incrementar una instrucción de contador cada vez que el haz de luz se interrumpe: Esta instrucción de contador en particular (CTU) es un contador incremental, lo que significa que cuenta “hacia arriba” con cada entrada de transición de apagado a encendido a su entrada “CU”. El contacto virtual normalmente cerrado (objeto del sensor IN) normalmente se mantiene en el estado “abierto” cuando el haz de luz es continuo, en virtud del hecho de que el sensor mantiene ese canal de entrada discreto energizado mientras el haz es continuo. Cuando el haz se interrumpe por un objeto que pasa por la cinta transportadora, el canal de entrada se desenergiza, lo que hace que el objeto sensor de contacto virtual IN se “cierre” y envíe energía virtual a la entrada “CU” de la instrucción del contador. Esto incrementa el contador justo cuando el borde delantero del objeto interrumpe el haz. La segunda entrada del cuadro de instrucción del contador (“R”) es la entrada de reinicio, que recibe energía virtual del interruptor de reinicio del contacto IN cada vez que se presiona el botón de reinicio. Si se activa esta entrada, el contador restablece inmediatamente su valor actual (CV) a cero. La indicación de estado se muestra en este programa de diagrama de escalera, con el valor preestablecido (PV) del contador de 25 y el valor actual (CV) del contador de 0 resaltados en azul. El valor preestablecido es algo programado en la instrucción del contador antes de que el sistema se ponga en servicio, y sirve como umbral para activar la salida del contador (Q), que en este caso enciende la lámpara indicadora de conteo (la bobina de conteos alcanzados OUT). Según el estándar de programación IEC 61131-3, esta salida del contador debe activarse siempre que el valor actual sea igual o mayor que el valor preestablecido (Q está activo si CV ≥ PV). Este es el estado del mismo programa después de que treinta objetos hayan pasado por el sensor en la cinta transportadora. Como puede ver, el valor actual del contador ha aumentado a 30, superando el valor preestablecido y activando la salida discreta: Si no nos importara mantener un recuento total preciso de objetos después de 25, sino que simplemente quisiéramos que el programa indicara cuándo habían pasado 25 objetos. También podríamos usar una instrucción de contador descendente preestablecida en un valor de 25, que activa una bobina de salida cuando el recuento llega a cero: Aquí, una entrada de "carga" hace que el valor actual del contador sea igual al valor preestablecido (25) cuando se activa. Con cada pulso del sensor recibido, la instrucción del contador disminuye. Cuando llega a cero, se activa la salida Q. Un problema potencial en cualquiera de las dos versiones de este sistema de conteo de objetos es que el PLC no puede discriminar entre el movimiento hacia adelante y hacia atrás en la cinta transportadora. Si, por ejemplo, la cinta transportadora se invirtiera en su dirección, el sensor continuaría contando objetos que ya habían pasado antes (en la dirección hacia adelante) a medida que esos objetos retrocedieran en la cinta. Esto sería un problema porque el sistema “pensaría” que habían pasado más objetos por la cinta (lo que indica una mayor producción) de los que realmente pasaron. Una solución a este problema es utilizar un contador ascendente/descendente, capaz tanto de incrementar (contar hacia adelante) como de decrementar (contar hacia atrás), y equipar este contador con dos sensores de haz de luz capaces de determinar la dirección de desplazamiento. Si dos haces de luz están orientados en paralelo entre sí, más cerca que el ancho del objeto más angosto que pasa por la cinta transportadora, tendremos suficiente información para determinar la dirección de desplazamiento del objeto: Esto se denomina sincronización de señal en cuadratura, porque las dos formas de onda de pulso están separadas en fase aproximadamente 90 grados (un cuarto de período). Podemos utilizar estas dos señales desfasadas para incrementar o decrementar una instrucción de contador ascendente/descendente, dependiendo de qué pulso se adelanta y cuál se retrasa. A continuación se muestra un programa PLC de diagrama de escalera diseñado para interpretar las señales de pulso en cuadratura, haciendo uso de contactos de transición negativa, así como contactos estándar: El contador se incrementará (contará hacia arriba) cuando el sensor B se desactive solo si el sensor A ya está en el estado desenergizado (es decir, el haz de luz A se interrumpe antes que B). El contador decrementará (contará hacia abajo) cuando el sensor A se desactive solo si el sensor B ya está en el estado desenergizado (es decir, el haz de luz B se interrumpe antes que A). Tenga en cuenta que el contador ascendente/descendente tiene una entrada de "reinicio" (R) y una entrada de "carga" ("LD") para forzar el valor actual. La activación de la entrada de reinicio fuerza el valor actual del contador (CV) a cero, tal como vimos con la instrucción de contador "ascendente". Luego, al activar la entrada de carga, el valor actual del contador se convierte en el valor preestablecido (PV), tal como vimos con la instrucción de contador “abajo”. En el caso de un contador arriba/abajo, hay dos salidas Q: una QU (salida arriba) para indicar cuando el valor actual es igual o mayor que el valor preestablecido, y una QD (salida abajo) para indicar cuando el valor actual es igual o menor que cero. Observe cómo el valor actual (CV) de cada contador mostrado está asociado con un nombre de etiqueta propio, en este caso, partes contadas. El número entero del valor actual (CV) de un contador es una variable en la memoria del PLC, al igual que los valores booleanos, como el sensor IN A y el reinicio del interruptor IN, y puede estar asociado con un nombre de etiqueta o una dirección simbólica de la misma manera. Esto permite que otras instrucciones en un programa de PLC lean (¡y a veces escriban!) valores desde y hacia esa ubicación de memoria. -
Conceptos erróneos sobre la lógica de escalera de los PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Quizás el concepto más importante y difícil de entender al aprender a programar PLC es la relación entre el estado eléctrico de los puntos de E/S del PLC y el estado de las variables y otros “elementos” en su programación. Esto es especialmente cierto para la programación con diagrama de escalera (LD), donde el programa en sí se parece a un diagrama eléctrico. Establecer la conexión mental entre el mundo “real” de los interruptores, contactores y otros dispositivos eléctricos conectados al PLC y el mundo “imaginario” del programa del PLC que consiste en contactos virtuales y “bobinas” de relé es lo más fundamental. La primera regla fundamental que se debe tener en cuenta al examinar un programa de PLC con diagrama de escalera es que cada contacto virtual que se muestra en el programa se activa siempre que lee un estado “1” en su bit respectivo y estará en reposo siempre que lea un estado “0” en su bit respectivo (en la memoria del PLC). Si el contacto es de tipo normalmente abierto (NO), se abrirá cuando su bit sea 0 y se cerrará cuando su bit sea 1. Si el contacto es de tipo normalmente cerrado (NC), se cerrará cuando su bit sea 0 y se abrirá cuando su bit sea 1. Un estado de bit 0 hace que el contacto esté en su condición “normal” (en reposo), mientras que un estado de bit 1 activa el contacto, lo que lo obliga a pasar a su estado no normal (activado). Otra regla para recordar al examinar un programa PLC de diagrama de escalera es que el software de programación ofrece resaltado de color (Nota 1) para mostrar el estado virtual de cada elemento del programa: un contacto de color está cerrado, mientras que un contacto sin color está abierto. Si bien la presencia o ausencia de un símbolo de “barra” marca el estado normal de un contacto, su resaltado de color en vivo que muestra el software de programación de PLC revela el estado “conductivo” de los elementos en tiempo real. Nota 1: Se debe tener en cuenta que en algunas situaciones el software de programación no podrá colorear los contactos correctamente, especialmente si su estado cambia demasiado rápido para que el enlace de comunicación del software pueda seguirlo, y/o si los bits cambian de estado varias veces dentro de un escaneo del programa. Sin embargo, para programas y situaciones simples, esta regla es válida y es de gran ayuda para los programadores principiantes a medida que aprenden la relación entre las condiciones del mundo real y las condiciones dentro del mundo "virtual" del PLC. Concepciones erróneas sobre la lógica de escalera del PLC La siguiente tabla muestra cómo los dos tipos de contactos en un programa de diagrama de escalera del PLC responden a los estados de los bits, utilizando el color rojo para indicar la conductividad virtual de cada contacto: Así como los contactos de un interruptor de presión se activan por una condición de alta presión, y los contactos de un interruptor de nivel se activan por una condición de alto nivel, y los contactos de un interruptor de temperatura se activan por una condición de alta temperatura, así también el contacto virtual de un PLC se activa por una condición de bit alta (1). En el contexto de cualquier interruptor, una condición activada es lo opuesto a su condición normal (en reposo). La siguiente ilustración simplificada (el cableado eléctrico que se muestra en este diagrama está incompleto, y el terminal “común” se muestra sin conectar para simplificar) muestra un pequeño PLC con dos de sus canales de entrada discretos energizados eléctricamente, lo que hace que esos dos bits tengan estados “1”. Los contactos resaltados en color en la pantalla del software del editor de programación muestran una colección de contactos dirigidos a esos bits de entrada en varios estados (coloreado = cerrado; sin color = abierto). Como puede ver, cada contacto dirigido a un bit “establecido” (1) está en su estado activado, mientras que cada contacto dirigido a un bit “borrado” (0) está en su estado normal: Recuerde que un contacto de color es un contacto cerrado. Los contactos que aparecen coloreados son contactos normalmente cerrados con estados de bit “0” o contactos normalmente abiertos con estados de bit “1”. Es la combinación del estado del bit y el tipo de contacto (NO vs. NC) lo que determina si el contacto virtual estará abierto (sin color) o cerrado (con color) en un momento dado. Correspondientemente, es una combinación de resaltado en color y tipo de contacto virtual lo que indica el estado de energización del mundo real de una entrada de PLC en particular en un momento dado. El principal problema que tienen los estudiantes/ingenieros para comprender los programas de diagramas de escalera de PLC es que simplifican demasiado e intentan asociar directamente los interruptores del mundo real conectados al PLC con sus respectivas instrucciones de contacto dentro del programa de PLC. Los estudiantes/ingenieros piensan erróneamente que el interruptor del mundo real que se conecta al PLC y el contacto del interruptor virtual respectivo dentro del programa de PLC son uno y el mismo, cuando este no es el caso en absoluto. En cambio, el interruptor del mundo real envía energía a la entrada del PLC, que a su vez controla el estado del contacto o contactos virtuales programados en el PLC. Específicamente, veo que los estudiantes/ingenieros caen rutinariamente en los siguientes conceptos erróneos: Mistakenly think the contact instruction type (NO vs. NC) needs to match that of its associated real-world switch Mistakenly think color highlighting of a contact instruction is equivalent to the electrical status of its associated real-world PLC input Mistakenly think a closed real-world switch must result in a closed contact instruction in the live PLC program To clarify, here are the fundamental rules one should keep in mind when interpreting contact instructions in Ladder Diagram PLC programs: Each input bit in the PLC’s memory will be a “1” when its input channel is powered, and will be a “0” when its input channel is unpowered Each virtual contact shown in the program actuates whenever it reads a “1” state in its respective bit, and will be at rest whenever it reads a “0” state in its respective bit A colored contact is closed (passes virtual power in the PLC program), while an un-colored contact is open (blocks virtual power in the PLC program) In trying to understand PLC Ladder Diagram programs, the importance of these rules cannot be overemphasized. The truth of the matter is a causal chain – rather than a direct equivalence – between the real-world switch and the contact instruction status. The real-world switch controls whether or not electrical power reaches the PLC input channel, which in turn controls whether the input register bit will be a “1” or a “0”, which in turn controls whether the contact instruction will actuated or at rest. Virtual contacts inside the PLC program are thus controlled by their corresponding real-world switches, rather than simply being identical to their real-world counterparts as novices tend to assume. Following these rules, we see that normally-open (NO) contact instructions will mimic what their real-world switches are doing, while normally-closed (NC) contact instructions will act opposite of their real-world counterparts. The color highlighting of coil instructions in a Ladder Diagram PLC program follows similar rules. A coil will be “on” (colored) when all contact instructions prior to it are closed (colored). A colored coil writes a “1” to its respective bit in memory, while an un-colored coil instruction writes a “0” to its respective bit in memory. If these bits are associated with real-world discrete output channels on the PLC, their states will control the real-world energization of devices electrically connected to those channels. To further illuminate these fundamental concepts, we will examine the operation of a simple PLC system designed to energize a warning lamp in the event that a process vessel experiences a high fluid pressure. The PLC’s task is to energize a warning lamp if the process vessel pressure ever exceeds 270 PSI, and keep that warning lamp energized even if the pressure falls below the trip point of 270 PSI. This way, operators will be alerted to both past and present process vessel over-pressure events. 120 volt AC “line” power (L1 and L2) provides electrical energy for the PLC to operate, as well as signal potential for the input switches and power for the warning lamp. Two switches connect to the input of this PLC: one normally-open pushbutton switch acting as the alarm reset (pressing this switch “unlatches” the alarm lamp) and one normally-open pressure switch acting as the sensing element for high process vessel pressure: The reset pushbutton connects to discrete input X1 of the PLC, while the pressure switch connects to discrete input X4. The warning lamp connects to discrete output Y5. Red indicator LEDs next to each I/O terminal visually indicate the electrical status of the I/O points, while red-shaded highlighting shows the virtual power (Note 2 ) status of the “contacts” and “coils” in the PLC’s program, displayed on the screen of a personal computer connected to the PLC through a programming cable. With no one pressing the reset pushbutton, that switch will be in its normal status, which for a “normally-open” switch is open. Likewise with the pressure switch: with process pressure less than the trip point of 270 PSI, the pressure switch will also be in its normal status, which for a “normally-open” switch is open. Since neither switch is conducting electricity right now, neither discrete input X1 nor X4 will be energized. This means the “virtual” contacts inside the PLC program will likewise be in their own normal states. Thus, any virtual contact drawn as a normally-open will be open (not passing virtual power), and any virtual contact drawn as a normally-closed (a diagonal slash mark through the contact symbol) will be closed. This is why the two normally-open virtual contacts X4 and Y5 have no highlighting, but the normally-closed virtual contact X1 does – the colored highlighting representing the ability to pass virtual power. Note 2 : For a PLC program contact, the shading represents virtual “conductivity.” For a PLC program coil, the shading represents a set (1) bit. If the process vessel experiences a high pressure (> 270 PSI), the pressure switch will actuate, closing its normally-open contact. This will energize input X4 on the PLC, which will “close” the virtual contact X4 in the ladder program. This sends virtual power to the virtual “coil” Y5, which in turn latches itself on through virtual contact Y5 (Note 3 ) and also energizes the real discrete output Y5 to energize the warning lamp: Note 3 : It is worth noting the legitimacy of referencing virtual contacts to output bits (e.g. contact Y5), and not just to input bits. A “virtual contact” inside a PLC program is nothing more than an instruction to the PLC’s processor to read the status of a bit in memory. It matters not whether that bit is associated with a physical input channel, a physical output channel, or some abstract bit in the PLC’s memory. It would, however, be wrong to associate a virtual coil with an input bit, as coil instructions write bit values to memory, and input bits are supposed to be controlled solely by the energization states of their physical input channels. If now the process pressure falls below 270 PSI, the pressure switch will return to its normal state (open), thus de-energizing discrete input X4 on the PLC. Because of the latching contact Y5 in the PLC’s program, however, output Y5 remains on to keep the warning lamp in its energized state: Thus, the Y5 contact performs a seal-in function to keep the Y5 bit set (1) even after the high pressure condition clears. This is precisely the same concept as the “seal-in” auxiliary contact on a hard-wired motor starter circuit, where the electro-mechanical contactor keeps itself energized after the “Start” pushbutton switch has been released. The only way for a human operator to re-set the warning lamp is to press the pushbutton. This will have the effect of energizing input X1 on the PLC, thus opening virtual contact X1 (normally closed) in the program, thus interrupting virtual power to the virtual coil Y5, thus powering down the warning lamp and un-latching virtual power in the program: -
Cinco tipos de lenguajes de programación de PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Aunque parece que cada modelo de PLC tiene su propio estándar idiosincrásico para la programación, existe un estándar internacional para la programación de controladores al que la mayoría de los fabricantes de PLC al menos intentan ajustarse. Se trata del estándar IEC 61131-3, que será el estándar Uno debería consolarse con el hecho de que, a pesar de las diferencias en los detalles de la programación de PLC de un fabricante a otro y de un modelo a otro, los principios básicos son en gran medida los mismos. Existen disparidades mucho mayores entre los diferentes lenguajes de programación de propósito general (por ejemplo, C/C++, BASIC, FORTRAN, Pascal, Java, Ada, etc.) que entre los lenguajes de programación compatibles con los diferentes PLC, y este hecho no impide que los programadores informáticos sean "multilingües". He escrito y/o analizado personalmente programas para más de media docena de fabricantes diferentes de PLC (Allen-Bradley, Siemens, Square D, Koyo, Fanuc, Moore Products APACS y QUADLOG, y Modicon), con múltiples modelos de PLC dentro de la mayoría de esas marcas, y puedo decirles que las diferencias en las convenciones de programación son en gran medida insignificantes. Después de aprender a programar un modelo de PLC, es bastante fácil adaptarse a la programación de otras marcas y modelos de PLC. Lenguajes de programación de PLC La norma IEC 61131-3 especifica cinco formas distintas de lenguaje de programación para controladores industriales: Diagrama de escalera (LD) Texto estructurado (ST) Lista de instrucciones (IL) Diagrama de bloques de funciones (FBD) Diagrama de funciones secuenciales (SFC) No todos los controladores lógicos programables admiten los cinco tipos de lenguaje, pero casi todos admiten el diagrama de escalera (LD), que será el foco principal de este libro. Los lenguajes de programación para muchos dispositivos industriales están limitados por diseño. Una razón para esto es la simplicidad: cualquier lenguaje de programación lo suficientemente simple en estructura para que alguien sin conocimientos formales de programación informática pueda entenderlo va a tener capacidades limitadas. Otra razón para las limitaciones de la programación es la seguridad: cuanto más flexible e ilimitado sea un lenguaje de programación, más potencial habrá de crear involuntariamente errores complicados de "tiempo de ejecución" al programar. La norma de seguridad ISA número 84 clasifica los lenguajes de programación industrial como lenguajes de programación fijos (FPL), lenguajes de variabilidad limitada (LVL) o lenguajes de variabilidad completa (FVL). La programación de diagramas de escalera y de diagramas de bloques de funciones se consideran lenguajes de "variabilidad limitada", mientras que la lista de instrucciones (y los lenguajes de programación informática tradicionales como C/C++, FORTRAN, BASIC, etc.) se consideran lenguajes de "variabilidad completa" con todo el potencial que conlleva para errores complejos. -
Lógica de control a dos manos mediante PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Este artículo trata sobre la programación del control a dos manos utilizado en la industria de las prensas. El objetivo de este programa es la seguridad para evitar accidentes fatales. A continuación, se muestra una imagen de cómo se ve la máquina de prensado y por qué nos preocupamos por la seguridad. Como puede ver, hay botones pulsadores que se utilizan para controlar la máquina de prensado. La placa central se empuja contra la superficie de la pieza de trabajo cuando presionamos los botones pulsadores. Los dos botones pulsadores deben presionarse al mismo tiempo para operar la máquina de prensado, como se muestra en la siguiente animación. Cuando el operador usa una mano para presionar el botón y usa la segunda mano para empujar la placa contra la superficie, puede lesionarse. La poderosa fuerza de empujar una placa puede aplastar fácilmente las manos si el operador intenta maniobrar las cosas con prisa. A continuación, he explicado el programa utilizado para prevenir tales incidentes con la ayuda de Siemens TIA Portal. Aquí, en la siguiente figura, se muestra una máquina de prensado que tiene dos entradas y una salida. Las entradas están conectadas al módulo de entrada digital (DI) del PLC y la salida única está conectada al módulo de salida digital (DO). A continuación, se incluye una lista de entradas y salidas utilizadas para el programa. Entradas: Botón pulsador (PB_1): I0.0 Botón pulsador (PB_2): I0.2 Salidas: Salida de la máquina de prensado: Q0.0 Lógica de control a dos manos Descripción de la lógica Red 1: Aquí, dos botones pulsadores PB_1 y PB_2 están conectados en serie. Cuando ambos botones pulsadores se presionan al mismo tiempo, la señal pasará a través del contacto NC del temporizador T0 y activará la salida. Red 2: Ahora, si se presiona un solo botón pulsador, ya sea PB_1 o PB_2, se activa el temporizador de retardo de encendido (S_ODT) del temporizador T0, en nuestro caso, después de 5 segundos. Aquí también se utiliza el contacto NC de la salida de la prensa después del botón pulsador, porque si la salida está ENCENDIDA, no permitirá que se active el temporizador. Por lo tanto, la salida de la máquina solo se activará cuando se presionen ambos botones a la vez. -
Mapeo de memoria de PLC y direccionamiento de E/S
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Un sabio programador de PLC me dijo una vez que lo primero que cualquier programador en ciernes debería aprender sobre el PLC que pretende programar es cómo está organizada la memoria digital de ese PLC. Este es un consejo sabio para cualquier programador, especialmente en sistemas donde la memoria es limitada y/o donde la E/S tiene una asociación fija con ciertas ubicaciones en la memoria del sistema. Prácticamente todos los sistemas de control basados en microprocesadores vienen con un mapa de memoria publicado que muestra la organización de su memoria limitada: cuánta hay disponible para ciertas funciones, qué direcciones están vinculadas a qué puntos de E/S, a qué diferentes ubicaciones en la memoria debe hacer referencia el programador. Los canales de entrada y salida discretos en un PLC corresponden a bits individuales en la matriz de memoria del PLC. De manera similar, los canales de entrada y salida analógicos en un PLC corresponden a palabras de múltiples bits (bloques contiguos de bits) en la memoria del PLC. La asociación entre los puntos de E/S y las ubicaciones de memoria no está estandarizada de ninguna manera entre los distintos fabricantes de PLC, o incluso entre los distintos modelos de PLC diseñados por el mismo fabricante. Esto hace que sea difícil escribir un tutorial general sobre el direccionamiento de PLC, por lo que mi consejo final es consultar las referencias de ingeniería para el sistema de PLC que pretende programar. La marca de PLC más común en uso es Allen-Bradley (Rockwell), que utiliza una forma única de direccionamiento de E/S (Nota 1), que los estudiantes tienden a encontrar confusa. Por estas dos razones (popularidad y confusión), me centraré en las convenciones de direccionamiento de Allen-Bradley durante la mayor parte de esta sección. Nota 1: Los PLC Allen-Bradley más modernos prácticamente han eliminado el direccionamiento de E/S de ubicación fija, optando en su lugar por el direccionamiento de E/S basado en el nombre de la etiqueta. Sin embargo, todavía existen suficientes sistemas de PLC Allen-Bradley antiguos en la industria como para justificar la cobertura de estas convenciones de direccionamiento. Mapa de memoria del PLC La siguiente tabla muestra un mapa de memoria parcial para un PLC Allen-Bradley SLC 500 Mapa de memoria También llamado tabla de datos, este mapa muestra el direccionamiento de las áreas de memoria reservadas para los programas ingresados por el usuario. Existen otras áreas de memoria dentro del procesador SLC 500, pero estas otras áreas son inaccesibles para el técnico que escribe programas de PLC. Tenga en cuenta que el uso que hace Allen-Bradley de la palabra "archivo" difiere del lenguaje de las computadoras personales. En el controlador SLC 500, un "archivo" es un bloque de memoria de acceso aleatorio que se utiliza para almacenar un tipo particular de datos. Por el contrario, un "archivo" en una computadora personal es una colección contigua de bits de datos con significado colectivo (por ejemplo, un archivo de procesamiento de texto o un archivo de hoja de cálculo), generalmente almacenados en la unidad de disco duro de la computadora. Dentro de cada uno de los “archivos” del PLC Allen-Bradley hay múltiples “elementos”, cada uno de los cuales consta de un conjunto de bits (8, 16, 24 o 32) que representan datos. Los elementos se identifican mediante un número que sigue a los dos puntos después del designador de archivo, y los bits individuales dentro de cada elemento se identifican mediante un número que sigue a una barra. Por ejemplo, el primer bit (bit 0) del segundo elemento en el archivo 3 (Binario) se identificaría como B3:2/0. En los PLC Allen-Bradley, como los modelos SLC 500 y PLC-5, los archivos 0, 1 y 2 están reservados exclusivamente para salidas discretas, entradas discretas y bits de estado, respectivamente. Por lo tanto, los designadores de letras O, I y S (tipos de archivo) son redundantes con los números 0, 1 y 2 (números de archivo). Otros tipos de archivos, como B (binario), T (temporizadores), C (contadores) y otros, tienen sus propios números de archivo predeterminados (3, 4 y 5, respectivamente), pero también se pueden usar en algunos de los números de archivo definidos por el usuario (10 y superiores). Por ejemplo, el archivo 7 en un controlador Allen-Bradley está reservado para datos del tipo “entero” (N), pero los datos enteros también se pueden almacenar en cualquier archivo numerado 10 o superior a discreción del usuario. Por lo tanto, los números de archivo y las letras de tipo de archivo para tipos de datos distintos de salida (O), entrada (I) y estado (S) siempre aparecen juntos. Por ejemplo, no es habitual ver una palabra entera direccionada como N:30 (palabra entera 30 en la memoria del PLC), sino como N7:30 (palabra entera 30 en el archivo 7 de la memoria del PLC) para distinguirla de otras palabras enteras 30 que puedan existir en otros archivos de la memoria del PLC. Esta notación de direccionamiento basada en archivos requiere una explicación más detallada. Cuando aparece una dirección en un programa de PLC, se utilizan caracteres especiales para separar (o “delimitar”) los diferentes campos entre sí. El esquema general para los PLC Allen-Bradley SLC 500 se muestra aquí: No todos los tipos de archivos necesitan distinguir palabras y bits individuales. Los archivos enteros (N), por ejemplo, constan de una palabra de 16 bits para cada elemento. Por ejemplo, N7:5 sería la palabra entera de 16 bits número cinco almacenada en el archivo siete. Sin embargo, un tipo de archivo de entrada discreto (I) debe abordarse como bits individuales porque cada punto de E/S independiente se refiere a un solo bit. Por lo tanto, I:3/7 sería el bit número siete que se encuentra en el elemento de entrada tres. El símbolo de “barra” es necesario cuando se trata de bits de E/S discretos porque no deseamos referirnos a los dieciséis bits de una palabra cuando solo nos referimos a un único punto de entrada o salida en el PLC. Los números enteros, por el contrario, son conjuntos de 16 bits cada uno en el mapa de memoria del SLC 500, y por lo tanto, generalmente se tratan como palabras completas en lugar de bit a bit. Ciertos tipos de archivos, como los temporizadores, son más complejos. Cada “elemento” del temporizador consta de dos palabras diferentes de 16 bits (una para el valor acumulado del temporizador, la otra para el valor objetivo del temporizador) además de no menos de tres bits que declaran el estado del temporizador (un bit “Habilitado”, un bit “Tiempo” y un bit “Hecho”). Por lo tanto, debemos hacer uso de los símbolos separadores de punto decimal y barra cuando nos referimos a los datos dentro de un temporizador. Supongamos que declaramos un temporizador en nuestro programa PLC con la dirección T4:2, que sería el temporizador número dos contenido en el archivo de temporizadores cuatro. Si quisiéramos direccionar el valor actual de ese temporizador, lo haríamos como T4:2.ACC (la palabra “Acumulador” del temporizador número dos en el archivo cuatro). El bit “Listo” de ese mismo temporizador se direccionaría como T4:2/DN (el bit “Listo” del temporizador número dos en el archivo cuatro) Una característica distintiva del esquema de direccionamiento del SLC 500 común a muchos sistemas PLC antiguos es que las etiquetas de dirección para los bits de entrada y salida hacen referencia explícita a las ubicaciones físicas de los canales de E/S. Por ejemplo, si se conecta una tarjeta de entrada discreta de 8 canales en la ranura 4 de un PLC Allen Bradley SLC 500 y se desea especificar el segundo bit (bit 1 de un rango de 0 a 7), se lo debe asignar la siguiente etiqueta: I:4/1. Para asignar el séptimo bit (bit número 6) en una tarjeta de salida discreta conectada en la ranura 3 se debe asignar la etiqueta O:3/6. En cualquier caso, la estructura numérica de esa etiqueta indica exactamente dónde se conecta la señal de entrada del mundo real al PLC. Ejemplo de mapeo de memoria de PLC Para ilustrar la relación entre la E/S física y los bits en la memoria del PLC, considere este ejemplo de un PLC Allen-Bradley SLC 500, que muestra uno de sus canales de entrada discretos activado (el interruptor se usa como interruptor de "Inicio" para un motor eléctrico): Si una tarjeta de entrada o salida posee más de 16 bits (como en el caso de la tarjeta de salida discreta de 32 bits que se muestra en la ranura 3 del bastidor SLC 500 de ejemplo), el esquema de direccionamiento subdivide cada elemento en palabras y bits (cada "palabra" tiene una longitud de 16 bits). Por lo tanto, la dirección para el bit número 27 de un módulo de entrada de 32 bits conectado a la ranura 3 sería I:3.1/11 (ya que el bit 27 es equivalente al bit 11 de la palabra 1: la palabra 0 direcciona los bits del 0 al 15 y la palabra 1 direcciona los bits del 16 al 31): Una fotografía en primer plano de una tarjeta de entrada de CC de 32 bits para un sistema PLC Allen-Bradley SLC 500 muestra este direccionamiento de múltiples palabras: Los primeros dieciséis puntos de entrada de esta tarjeta (el grupo de LED de la izquierda numerados del 0 al 15) tienen direcciones I:X.0/0 a I:X.0/15, donde “X” hace referencia al número de ranura en el que está conectada la tarjeta. Los siguientes dieciséis puntos de entrada (el grupo de LED de la derecha numerados del 16 al 31) se direccionan de I:X.1/0 a I:X.1/15. Los sistemas PLC heredados generalmente hacen referencia a cada uno de los canales de E/S mediante etiquetas como “I:1/3” (o equivalente) que indican la ubicación real del terminal del canal de entrada en la unidad PLC. El estándar de programación IEC 61131-3 se refiere a este direccionamiento basado en canales de puntos de datos de E/S como direccionamiento directo. Un sinónimo de direccionamiento directo es direccionamiento absoluto. Direccionar bits de E/S directamente por sus etiquetas de tarjeta, ranura y/o terminal puede parecer simple y elegante, pero se vuelve muy engorroso para sistemas PLC grandes y programas complejos. Cada vez que un técnico o programador ve el programa, debe “traducir” cada una de estas etiquetas de E/S a algún dispositivo del mundo real (por ejemplo, “La entrada I:1/3 es en realidad el botón de inicio del motor del mezclador del tanque intermedio”) para comprender la función de ese bit. Un esfuerzo posterior para mejorar la claridad de la programación de PLC fue el concepto de direccionamiento de variables en la memoria de un PLC mediante nombres arbitrarios en lugar de códigos fijos. El estándar de programación IEC 61131-3 se refiere a esto como direccionamiento simbólico en contraste con el direccionamiento “directo” (basado en canales), lo que permite a los programadores nombrar arbitrariamente los canales de E/S de maneras que sean significativas para el sistema en su conjunto. Para utilizar nuestro sencillo ejemplo del interruptor de “Inicio” del motor, ahora es posible que el programador designe la entrada I:1/3 (un ejemplo de una dirección directa) como “Interruptor de inicio del motor” (un ejemplo de una dirección simbólica) dentro del programa, mejorando así en gran medida la legibilidad del programa del PLC. Las implementaciones iniciales de este concepto mantenían direcciones directas para los puntos de datos de E/S, con nombres simbólicos que aparecían como complementos de las direcciones absolutas. La tendencia moderna en el direccionamiento de PLC es evitar el uso de direcciones directas como I:1/3 por completo, de modo que no aparezcan en ninguna parte del código de programación. La serie de controladores lógicos programables “Logix” de Allen-Bradley es el ejemplo más destacado de esta nueva convención en el momento de escribir este artículo. A cada punto de E/S, independientemente del tipo o la ubicación física, se le asigna un nombre de etiqueta que tiene significado en el mundo real, y estos nombres de etiqueta (o símbolos, como se los llama alternativamente) se referencian a las ubicaciones absolutas del canal de E/S mediante un archivo de base de datos. Un requisito importante de los nombres de etiqueta es que no contengan caracteres de espacio entre palabras (por ejemplo, en lugar de “Interruptor de arranque del motor”, un nombre de etiqueta debe usar guiones o marcas de subrayado como caracteres de espaciado: “Interruptor de arranque del motor”), ya que los lenguajes de programación informática generalmente asumen que los espacios son delimitadores (separadores entre diferentes variables). Tras haber introducido la notación de direccionamiento de Allen-Bradley para los PLC modelo SLC 500, ahora la abandonaré en favor de la convención moderna de direccionamiento simbólico en el resto de los artículos, para evitar que los ejemplos de programación sean específicos de una marca o modelo. Cada punto de datos dentro de mis programas de PLC llevará su propio nombre de etiqueta en lugar de una etiqueta de dirección directa (basada en el canal). -
Fórmula de conversión de entrada analógica de PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Para cualquier conversión de unidades en cualquier PLC, puede utilizar cuatro funciones matemáticas con lo siguiente para la Fórmula de conversión de entrada analógica de PLC, que supone matemáticas de números enteros, de la siguiente manera: Fórmula de conversión de PLC Fórmulas: EU = ((EUSpan x (DATA – DataOffset))/DataSpan) + EUOffset ProcessValue = EU / FACTOR DataOffset = Datos en el registro de entrada a 4 mA (o señal analógica cero de cualquier rango, por ejemplo, 0 VCC en un transmisor de 0-10 VCC) DataSPan = Datos a 20 mA – Datos a 4 mA FACTOR = factor arbitrario (múltiplo de 10) necesario para obtener la resolución y precisión adecuadas EU = Unidades de ingeniería x FACTOR EUOffset = Unidades de ingeniería a 4 mA x FACTOR EUSpan = (Unidades de ingeniería a 20 mA – Unidades de ingeniería a 4 mA) x FACTOR DATOS = Lectura de datos reales en el registro de entrada Por ejemplo, Un transmisor de presión de rango de 0 a 60 psig está conectado a una tarjeta de entrada analógica de PLC. El conteo sin procesar de la tarjeta de entrada analógica de PLC comienza en 6240 para 4 mA y 31208 para 20 mA. El PLC lee 18975 conteos sin procesar y calcula la lectura equivalente del transmisor de presión. Nota: Los conteos sin procesar del PLC pueden variar de un sistema a otro. 0-60 psig de 4-20 mA con una resolución de 0,1 psig: FACTOR = 10 Datos a 4 mA = 6240 Datos a 20 mA = 31208 DataOffset = 6240 DataSpan = 31208 – 6240 = 24968 EUOffset = 0 x 10 = 0 EUSpan = (60 – 0) x 10 = 600 DATA = 18975 EU = ((EUSpan x (DATA – DataOffset))/DataSpan) + EUOffset EU = ((600 x (18975 – 6240)) / 24968) + 0 = 306 ProcessValue = EU / FACTOR Process Value = 306 / 10 = 30,6 psig -
Control de varias bombas mediante PLC
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Escriba el programa de PLC para controlar varias bombas mediante controladores lógicos programables. Tenemos dos bombas de entrada que se utilizan para llenar un tanque. Asegúrese de que las bombas funcionen en la misma cantidad de tiempo durante su vida útil. Control de varias bombas mediante PLC Lógica del programa: Desarrolle un programa de lógica de escalera de acuerdo con la lógica que se proporciona a continuación. El botón pulsador de inicio/parada se proporciona para controlar los dos motores de bomba de entrada P1 y P2. La estación del botón pulsador de inicio/parada se opera para controlar la bomba P1. Cuando el tanque está lleno, el motor de la bomba de vaciado P3 se inicia automáticamente y funciona hasta que se activa el sensor de nivel bajo. Después de 3 llenados del tanque con la bomba P1, el control cambia automáticamente a la bomba P2. La operación del botón pulsador de inicio/parada ahora controla la bomba P2. Después de 3 llenados del tanque con la bomba P2, se repite la secuencia. Programa de PLC: Descripción del programa: Rung 0000: Inicio/detención de PB bloqueado con memoria B3:0/0. Rung 0001: B3:0/0 habilitado para encender B3:0/1, que es para encender la BOMBA P1 (O:0/0) cuando el sensor de nivel bajo (I:0/3) se enciende y el sensor de nivel alto (I:0/2) está en condición de apagado. B3:0/1 está bloqueado con el sensor de nivel bajo porque la bomba p1 no debe apagarse una vez que el agua comienza a subir. Rung 0002: Contactos de memoria utilizados para encender la BOMBA P1 (O:0/0) con el contador (C5:0). Dado que vamos a cambiar el funcionamiento de la bomba de P1 a P2, se utilizan dos contadores para cambiar entre Pl y P2. El contador C5:1 se utiliza para activar la BOMBA P2(O:0/2). Renglón 0003 y 0004: B3:0/0 está habilitado para activar B3:0/2, que es para activar la BOMBA P3(O:0/1) cuando el sensor de nivel alto (I:0/2) se activa y el sensor de nivel bajo (I:0/3) está en condición de apagado. B3:0/2 está bloqueado con el sensor de nivel alto porque la bomba p3 no debería apagarse una vez que el agua comenzó a reducirse. Renglón 0005: Cuando la bomba 3 (O:0/1) está funcionando, el sensor de nivel bajo se activa, lo que hará que la bomba p3 se apague y la bomba P1(O:0/0) se encienda. Renglón 0006: Ambos contadores se reinician una vez que el bit de finalización del segundo contador (C5:1) se activa. Conclusión: Podemos usar este ejemplo para comprender la lógica de programación en AB PLC. -
Cómo controlar un VFD con un PLC usando lógica de escalera
leizuofa posted A plc and hmi article in Spanish in PLC programming learning
Este es un tutorial completo sobre lógica de escalera de PLC para controlar un variador de frecuencia (VFD) para el control de velocidad del motor con selección de velocidad desde el panel local de campo o gráficos SCADA. Pasos de ejecución: Preparar un diagrama de control y potencia Puesta en servicio y programación de parámetros en VFD Preparar un programa de PLC Preparar un diseño SCADA ¿Cómo controlar un VFD con un PLC? Diagrama de control y potencia Puesta en servicio y programación de parámetros en VFD La puesta en servicio es necesaria para el correcto funcionamiento del VFD. Los parámetros necesarios como los detalles de la placa de identificación del motor, el voltaje de entrada, el tipo de motor y la frecuencia deben ingresarse en el VFD durante la puesta en servicio rápida. Después de una puesta en servicio rápida exitosa, ahora es el momento de instalar la puesta en servicio avanzada. Esta puesta en servicio es necesaria para proporcionar los detalles de todas las entradas y salidas digitales y analógicas, como Información sobre las entradas digitales del comando de inicio y el comando de selección de velocidad Información sobre las salidas digitales como el estado del variador en funcionamiento y el variador en falla, etc. Información sobre las entradas analógicas como la entrada de velocidad 1 y la entrada de velocidad 2 Información sobre las salidas analógicas como la corriente y la frecuencia del motor Programa del PLC Red 1: En esta Red 1, verificamos si el VFD está listo para comenzar. Esta señal llegará cuando todas las condiciones sean correctas y las retroalimentaciones de seguridad y potencia estén activas. Red 2: En la Red 2, cuando se presiona el botón de inicio, se establecerá el bit VFD Drive_DO, si está listo para comenzar y no hay error. Red 3: Esta es la lógica de detención. Cuando se presiona el botón de detención, se restablecerá el bit Drive_DO. Red 4: En esta Red 4, esta lógica es necesaria para la seguridad tan pronto como se establezca el bit Drive_DO y, si en algún caso el VFD no funciona debido a alguna falla, luego de un tiempo de espera predefinido, aquí lo consideramos como Run_FB_Time, se restablecerá el bit Drive_DO y se generará un error. Puede reconocer este error desde el SCADA después de resolver el error desde el lado del campo. Red 5: En esta Red 5, si el VFD está consumiendo más corriente y da un error de sobrecarga, entonces restablecerá el bit Drive_DO y generará un error. Puede reconocer este error desde el SCADA después de resolver el error desde el lado del campo. Red 6: Esta es la salida digital de selección de velocidad. Si selecciona la entrada de velocidad como local, no se activará el bit de selección de velocidad, lo que dará como resultado Speed_DO ausente y si selecciona la entrada de velocidad como remota, se activará el bit de selección de velocidad, lo que dará como resultado Speed_DO presente. Diseño SCADA Estado normal Este es el estado normal del motor. No hay ningún error y el bit Listo también está en estado normal. Además, la selección de velocidad está en modo LOCAL. Estado de ejecución Este estado muestra que el bit Listo está alto y el motor está funcionando sin ningún error. Estado de error Hay un bit de error alto y el motor también muestra una condición de error. Nota: En algunas industrias, el color amarillo también se utiliza para indicar la condición de error. El color rojo se utiliza para indicar la condición de parada del motor. -
¿Qué es la interfaz hombre-máquina (HMI)?
leizuofa posted A plc and hmi article in Spanish in HMI interface design
Los controladores lógicos programables están diseñados para introducir varios tipos de señales (discretas, analógicas), ejecutar algoritmos de control sobre esas señales y luego emitir señales en respuesta a los procesos de control. Por sí solo, un PLC generalmente carece de la capacidad de mostrar esos valores de señal y variables de algoritmo a los operadores humanos. Un técnico o ingeniero con acceso a una computadora personal y el software necesario para editar el programa del PLC puede conectarse al PLC y ver el estado del programa "en línea" para monitorear los valores de las señales y los estados de las variables, pero esta no es una forma práctica para que el personal de operaciones controle lo que hace el PLC de manera regular. Para que los operadores controlen y ajusten los parámetros dentro de la memoria del PLC, necesitamos un tipo diferente de interfaz que permita leer y escribir ciertas variables sin comprometer la integridad del PLC al exponer demasiada información o permitir que cualquier persona no calificada altere el programa en sí. Una solución a este problema es una pantalla de computadora dedicada programada para proporcionar acceso selectivo a ciertas variables en la memoria del PLC, generalmente denominada Interfaz Hombre-Máquina o HMI. Las HMI pueden adoptar la forma de computadoras de propósito general (“personales”) que ejecutan un software gráfico especial para interactuar con un PLC, o como computadoras de propósito especial diseñadas para ser montadas en paneles de chapa metálica para no realizar ninguna tarea más que la interfaz operador-PLC. Esta primera fotografía muestra un ejemplo de una computadora personal (PC) común con software HMI ejecutándose en ella: La pantalla que se muestra aquí es para monitorear un ejemplo, un proceso de adsorción por oscilación de vacío (VSA) para purificar el oxígeno extraído del aire ambiente. En algún lugar, un PLC (o un conjunto de PLC) está monitoreando y controlando este proceso VSA, con el software HMI actuando como una “ventana” hacia la memoria del PLC para mostrar las variables pertinentes en un formato fácil de interpretar para el personal de operaciones. La computadora personal que ejecuta este software HMI se conecta al PLC a través de cables de red digital como Ethernet. Nota: Un término más antiguo para un panel de interfaz de operador era “Interfaz hombre-máquina” o “MMI”. La siguiente fotografía muestra un ejemplo de un panel HMI de propósito especial diseñado y construido expresamente para ser utilizado en entornos operativos industriales: Estos paneles HMI no son realmente más que computadoras personales “reforzadas” construidas de manera resistente y en un formato compacto para facilitar su uso en entornos industriales. La mayoría de los paneles HMI industriales vienen equipados con pantallas sensibles al tacto, lo que permite a los operadores presionar los objetos mostrados con las yemas de los dedos para cambiar de pantalla, ver detalles sobre partes del proceso, etc. Los técnicos y/o ingenieros programan pantallas HMI para leer y escribir datos a través de una red digital a uno o más PLC. Los objetos gráficos dispuestos en la pantalla de una HMI suelen imitar indicadores e interruptores del mundo real, con el fin de proporcionar una interfaz familiar para el personal de operaciones. Un objeto de “pulsador” en la cara de un panel HMI, por ejemplo, se configuraría para escribir un bit de datos en el PLC, de manera similar a un interruptor del mundo real que escribe un bit de datos en el registro de entrada del PLC. Los paneles y el software HMI modernos se basan casi exclusivamente en etiquetas, y cada objeto gráfico en la pantalla está asociado con al menos un nombre de etiqueta de datos, que a su vez está asociado a puntos de datos (bits o palabras) en el PLC mediante un archivo de base de datos de nombres de etiquetas residente en la HMI. Los objetos gráficos en la pantalla de la HMI aceptan (leen) datos del PLC para presentar información útil al operador, envían (escriben) datos al PLC desde la entrada del operador, o ambas cosas. La tarea de programar una unidad HMI consiste en crear una base de datos de nombres de etiquetas y luego dibujar pantallas para ilustrar el proceso con el mejor nivel de detalle que los operadores necesitarán para ejecutarlo. Aquí se muestra un ejemplo de captura de pantalla de una tabla de base de datos de nombres de etiquetas para una HMI moderna: Se accede a la base de datos de nombres de etiquetas y se edita utilizando el mismo software para crear imágenes gráficas en la HMI. Según este ejemplo, puede ver varios nombres de etiquetas (por ejemplo, BOTÓN DE INICIO, TEMPORIZADOR DE MARCHA DEL MOTOR, MENSAJE DE ERROR, VELOCIDAD DEL MOTOR) asociados con puntos de datos dentro de la memoria del PLC (en este ejemplo, las direcciones del PLC se muestran en formato de registro Modbus). En muchos casos, el editor de nombres de etiquetas podrá mostrar los puntos de memoria del PLC correspondientes de la misma manera en que aparecen en el software del editor de programación del PLC (por ejemplo, I:5/10, SM0.4, C11, etc.). Un detalle importante a tener en cuenta en esta visualización de la base de datos de nombres de etiquetas son los atributos de lectura/escritura de cada etiqueta. Observe en particular cómo cuatro de las etiquetas mostradas son de solo lectura: esto significa que la HMI solo tiene permiso para leer los valores de esas cuatro etiquetas desde la memoria del PLC, y no para escribir (alterar) esos valores. La razón de esto en el caso de estas cuatro etiquetas es que esas etiquetas hacen referencia a puntos de datos de entrada del PLC. La etiqueta START PUSHBUTTON, por ejemplo, hace referencia a una entrada discreta en el PLC activada por un interruptor de botón pulsador real. Como tal, este punto de datos obtiene su estado de la activación del terminal de entrada discreta. Si se le diera permiso de escritura a la HMI para este punto de datos, probablemente habría un conflicto. Supongamos que el terminal de entrada en el PLC se activa (estableciendo el bit START PUSHBUTTON en un estado "1") y la HMI intentara simultáneamente escribir un estado "0" en la misma etiqueta. Una de estas dos fuentes de datos ganaría y la otra perdería, lo que posiblemente daría como resultado un comportamiento inesperado del programa del PLC. Por este motivo, los puntos de datos en el PLC vinculados a entradas del mundo real siempre deben estar limitados como permiso de "solo lectura" en la base de datos de la HMI, de modo que la HMI no pueda generar un conflicto. Sin embargo, también existe la posibilidad de que se produzcan conflictos de datos en algunos de los otros puntos de la base de datos. Un buen ejemplo de esto es el bit MOTOR RUN, que es el bit dentro del programa del PLC que le indica al motor del mundo real que funcione. Se supone que este bit obtiene sus datos de una bobina en el programa del diagrama de escalera del PLC. Sin embargo, dado que también aparece en la base de datos de la HMI con permiso de lectura/escritura, existe la posibilidad de que la HMI sobrescriba (es decir, entre en conflicto) ese mismo bit en la memoria del PLC. Supongamos que alguien programó un objeto de pantalla de “botón pulsador” de alternancia en la HMI vinculada a esta etiqueta: al presionar este “botón” virtual en la pantalla de la HMI se intentaría establecer el bit (1), y al presionarlo nuevamente se intentaría restablecer el bit (0). Sin embargo, si una bobina del programa del PLC escribe en este mismo bit, existe la posibilidad de que el objeto de “pulsador” de la HMI y la bobina del PLC entren en conflicto, y uno intente indicarle al bit que sea un “0” mientras que el otro intente indicarle que sea un “1”. Esta situación es bastante similar al problema que se experimenta cuando varias bobinas de un programa de diagrama de escalera se dirigen al mismo bit. La regla general que se debe seguir aquí es no permitir nunca que más de un elemento escriba en ningún punto de datos. En mi experiencia enseñando programación de PLC y HMI, este es uno de los errores más comunes que cometen los estudiantes cuando aprenden a programar HMI por primera vez: intentarán que tanto la HMI como el PLC escriban en las mismas ubicaciones de memoria, con resultados extraños. Una de las lecciones que aprenderá al programar sistemas grandes y complejos es que es muy beneficioso definir todos los nombres de etiquetas necesarios antes de comenzar a diseñar gráficos en una HMI. Lo mismo ocurre con la programación de PLC: hace que todo el proyecto avance más rápido y con menos confusión si se toma el tiempo de definir todos los puntos de E/S necesarios (y los nombres de las etiquetas, si el software de programación de PLC admite nombres de etiquetas en el entorno de programación) antes de comenzar a crear cualquier código que especifique cómo se relacionarán entre sí esas entradas y salidas. También es importante mantener una convención consistente para los nombres de las etiquetas. Por ejemplo, es posible que desee comenzar el nombre de la etiqueta de cada punto de E/S cableado como ENTRADA o SALIDA (por ejemplo, INTERRUPTOR DE PRESIÓN DE ENTRADA ALTO, MOTOR DEL AGITADOR DE SALIDA EN MARCHA, etc.). El motivo para mantener una convención de nombres estricta no es obvio al principio, ya que el objetivo de los nombres de las etiquetas es dar al programador la libertad de asignar nombres arbitrarios a los puntos de datos del sistema. Sin embargo, verá que la mayoría de los editores de nombres de etiquetas enumeran las etiquetas en orden alfabético, lo que significa que una convención de nombres organizada de esta manera presentará todas las etiquetas de entrada de manera contigua (adyacente) en la lista, todas las etiquetas de salida de manera contigua en la lista, y así sucesivamente. Otra forma de aprovechar la lista alfabética de nombres de etiquetas a su favor es comenzar cada nombre de etiqueta con una palabra que describa su asociación con un equipo importante. Tomemos como ejemplo este proceso con varios puntos de datos definidos en un sistema de control PLC y mostrados en una HMI: Si enumeramos todas estas etiquetas en orden alfabético, la asociación es inmediatamente obvia: Bomba de efluente del intercambiador Temperatura de salida del efluente del intercambiador Bomba de precalentamiento del intercambiador Temperatura de entrada del precalentamiento del intercambiador Válvula de precalentamiento del intercambiador Temperatura del lecho del reactor Flujo de alimentación del reactor Temperatura de alimentación del reactor Válvula de la camisa del reactor Como puede ver en esta lista de nombres de etiquetas, todas las etiquetas asociadas directamente con el intercambiador de calor se encuentran en un grupo contiguo, y todas las etiquetas asociadas directamente con el reactor se encuentran en el siguiente grupo contiguo. De esta manera, la denominación juiciosa de las etiquetas sirve para agruparlas de manera jerárquica, lo que facilita que el programador las localice en cualquier momento futuro en la base de datos de nombres de etiquetas. Notará que todos los nombres de etiquetas que se muestran aquí carecen de caracteres de espacio entre palabras (por ejemplo, en lugar de “Temperatura del lecho del reactor”, un nombre de etiqueta debe usar guiones o marcas de subrayado como caracteres de espaciado: “Temperatura del lecho del reactor”), ya que los lenguajes de programación de computadoras generalmente asumen que los espacios son delimitadores (separadores entre diferentes nombres de variables). Al igual que los propios controladores lógicos programables, las capacidades de las HMI han aumentado de manera constante mientras que su precio disminuye. Las HMI modernas admiten tendencias gráficas, archivo de datos, alarmas avanzadas e incluso capacidad de servidor web, lo que permite que otras computadoras accedan fácilmente a ciertos datos a través de redes de área amplia. La capacidad de las HMI de registrar datos durante largos períodos de tiempo libera al PLC de tener que realizar esta tarea, que consume mucha memoria. De esta manera, el PLC simplemente “sirve” datos actuales a la HMI, y la HMI puede mantener un registro de datos actuales y pasados utilizando sus reservas de memoria mucho más grandes. Si la HMI se basa en una plataforma de computadora personal (por ejemplo, Rockwell RSView, Wonderware, software FIX/Intellution), incluso puede estar equipada con una unidad de disco duro para almacenar enormes cantidades de datos históricos. Algunos paneles HMI modernos incluso tienen un PLC integrado dentro de la unidad, lo que proporciona control y monitoreo en el mismo dispositivo. Estos paneles proporcionan puntos de conexión de regleta de terminales para E/S discretas e incluso analógicas, lo que permite que todas las funciones de control e interfaz se ubiquen en una sola unidad de montaje en panel.