Jump to content
  • Spanish database on PLC programming techniques and HMI interface design

    PLC, DCS, HMI and SCADA product application technical articles

    leikang
    Este es un programa PLC para implementar un programa para contar objetos en una cinta transportadora en movimiento.
    Conteo de objetos en movimiento en una cinta transportadora
    Los objetos se mueven en la cinta transportadora. Necesitamos contar la cantidad total de objetos recolectados al final de la cinta transportadora y mostrarla en el panel de control local.
    Escriba un programa PLC para esta aplicación.
    Diagrama del problema

    Solución del problema
    Aquí usamos un programa PLC en escalera para implementar esta lógica.
    La mayoría de los sensores de proximidad se usan para detectar los objetos. Aquí montamos un sensor de proximidad para detectar las piezas u objetos que se mueven en la cinta transportadora.
    Los sensores inductivos se usan principalmente para detectar objetos metálicos. Para otro tipo de objetos, usamos un sensor de proximidad capacitivo para detectar los objetos que se mueven en la cinta transportadora. Conectamos este sensor al PLC y, mediante la lógica del contador, contaremos la cantidad de objetos y mostraremos la cantidad total en la pantalla del panel de control local.
    Aquí usamos un contador ascendente para contar los objetos recolectados al final de la cinta transportadora.
    Nota: Aquí consideramos una aplicación simple para contar objetos. Consideramos un sensor de proximidad para detectar los objetos. El sensor de proximidad detectará el objeto y el contador ascendente del PLC contará los objetos recolectados.
    Lista de entradas y salidas
    Entradas digitales
    Inicio: I0.0 Parada: I0.1 Proximidad: I0.2 (detección de objetos) Reinicio de contador PB: I0.3 Salida digital
    Ciclo ON: Q0.0 Memoria M
    Reinicio de contador: M0.1 Total de objetos recopilados: MW10 Lógica de escalera del PLC para contar objetos en la cinta transportadora


    Explicación de la lógica de escalera
    Para esta aplicación, utilizamos el PLC S7-300 y el software del portal TIA para la programación. También podemos implementar esta lógica utilizando otro PLC.
    Red 1:
    En la primera red, utilizamos un circuito de enclavamiento para el ciclo ON. Aquí usamos START PB (I0.0) para iniciar el ciclo y STOP PB (I0.1) para detener el ciclo.
    Red 2:
    La instrucción de contador de PLC se usa para contar la cantidad de objetos. Los sensores de proximidad se montan cerca del transportador.
    Cuando un objeto se acerca al sensor de proximidad (I0.2), detectará el objeto y la salida del sensor se activará o cambiará al estado ON.
    Cuando no haya ningún objeto cerca del sensor de proximidad, la salida del sensor se desactivará o cambiará al estado OFF.
    El contador de PLC cuenta de manera incremental. La cantidad total de objetos contados se almacenará en la palabra de memoria o registro (MW10).
    Nota: la aplicación anterior puede ser diferente de la aplicación real. Este ejemplo es solo para fines explicativos. También podemos implementar esta lógica en otros PLC. Este es el concepto simple de contador ascendente. Al usar este concepto, podemos contar objetos que se mueven en el transportador o cualquier otra aplicación de conteo. Esta lógica es solo una parte o solo para la lógica de la aplicación específica.
    Todos los parámetros considerados en el ejemplo se incluyen únicamente con fines explicativos; los parámetros pueden ser diferentes en las aplicaciones reales.
    Resultado


    leikang
    Existen muchas situaciones de control que requieren que se inicien acciones cuando se cumple una determinada combinación de condiciones de funciones lógicas en un PLC.
    Funciones lógicas de PLC
    Por ejemplo, en el caso de una máquina perforadora automática, podría existir la condición de que el motor de la perforadora se active cuando se activen los interruptores de límite que indican la presencia de la pieza de trabajo y la posición de la perforadora como si estuvieran en la superficie de la pieza de trabajo.
    Dicha situación implica la función lógica AND, en la que deben cumplirse tanto la condición A como la condición B para que se produzca una salida. Esta sección es una consideración de dichas funciones lógicas.
    PLC Y LÓGICA
    La Figura 1.7a muestra una situación en la que una salida no se activa a menos que dos interruptores, normalmente abiertos, estén cerrados. El interruptor A y el interruptor B deben estar cerrados, lo que da lugar a una situación de lógica AND.
    Podemos pensar en esto como la representación de un sistema de control con dos entradas A y B (Figura 1.7b). Solo cuando A y B están encendidos hay una salida. Por lo tanto, si utilizamos 1 para indicar una señal de encendido y 0 para representar una señal de apagado, entonces para que haya una salida 1 debemos tener A y B ambos 1.
    Se dice que una operación de este tipo está controlada por una compuerta lógica y la relación entre las entradas a una compuerta lógica y las salidas se tabula en una forma conocida como tabla de verdad. Por lo tanto, para la compuerta AND tenemos:

    Un ejemplo de una compuerta AND es un sistema de control de enclavamiento para una máquina herramienta de modo que solo pueda operarse cuando la protección de seguridad esté en posición y la energía encendida.
    La Figura 1.8a muestra un sistema de compuerta AND en un diagrama de escalera. El diagrama de escalera comienza con j j, un conjunto de contactos normalmente abiertos etiquetados como entrada A, para representar el interruptor A y en serie con él j j, otro conjunto de contactos normalmente abiertos etiquetados como entrada B, para representar el interruptor B.
    La línea luego termina con O para representar la salida. Para que haya una salida, deben existir tanto la entrada A como la entrada B, es decir, los contactos de entrada A y entrada B deben estar cerrados (Figura 1.8b). En general:
    En un diagrama de escalera, los contactos en un peldaño horizontal, es decir, los contactos en serie, representan las operaciones lógicas AND.

    PLC OR LOGIC
    La Figura 1.9a muestra un circuito eléctrico donde se activa una salida cuando se cierran los interruptores A o B, ambos normalmente abiertos.
    Esto describe una compuerta lógica OR (Figura 1.9b) en la que la entrada A o la entrada B deben estar activadas para que haya una salida.
    La tabla de verdad es:

    La Figura 1.10a muestra un sistema de compuerta lógica OR en un diagrama de escalera, y la Figura 1.10b muestra una forma alternativa equivalente de dibujar el mismo diagrama.
    El diagrama de escalera comienza con j j, contactos normalmente abiertos etiquetados como entrada A, para representar el interruptor A y en paralelo con él j j, contactos normalmente abiertos etiquetados como entrada B, para representar el interruptor B.
    La entrada A o la entrada B deben estar cerradas para que se active la salida
    (Figura 1.10c). La línea termina con O para representar la salida. En general:
    Las rutas alternativas proporcionadas por las rutas verticales desde el peldaño principal de un diagrama de escalera, es decir, las rutas en paralelo representan operaciones lógicas OR.
    Un ejemplo de un sistema de control de compuerta OR es una cinta transportadora que transporta productos embotellados al empaque donde se activa una placa deflectora para desviar las botellas hacia un contenedor de rechazo si el peso no está dentro de ciertas tolerancias o si no hay tapa en la botella.

    PLC NO ES LÓGICO
    La Figura 1.11a muestra un circuito eléctrico controlado por un interruptor que está normalmente cerrado. Cuando hay una entrada al interruptor, este se abre y no hay corriente en el circuito.
    Esto ilustra una compuerta NOT en la que hay una salida cuando no hay entrada y no hay salida cuando hay una entrada (Figura 1.11c). A veces se hace referencia a la compuerta como inversor.
    La tabla de verdad es:

    La Figura 11.11b muestra un sistema de compuerta NOT en un diagrama de escalera. Los contactos de entrada A se muestran como normalmente cerrados.
    Esto está en serie con la salida ( ). Sin entrada a la entrada A, los contactos están cerrados y, por lo tanto, hay una salida. Cuando hay una entrada a la entrada A, se abre y, por lo tanto, no hay salida.
    Un ejemplo de un sistema de control de compuerta NOT es una luz que se enciende cuando oscurece, es decir, cuando no hay entrada de luz al sensor de luz, hay una salida.

    LÓGICA NAND DE PLC
    Supongamos que después de una compuerta AND ponemos una compuerta NOT (Figura 1.12a). La consecuencia de tener la compuerta NOT es invertir todas las salidas de la compuerta AND.
    Una alternativa, que da exactamente los mismos resultados, es poner una compuerta NOT en cada entrada y luego poner después una OR (Figura 1.12b).
    Se produce la misma tabla de verdad, es decir:

    Las entradas A y B tienen que ser 0 para que haya una salida 1.
    Hay una salida cuando la entrada A y la entrada B no son 1.
    La combinación de estas compuertas se denomina compuerta NAND (Figura 1.13).

    Un ejemplo de un sistema de control de compuerta NAND es una luz de advertencia que se enciende si, con una máquina herramienta, el interruptor de protección de seguridad no se ha activado y el interruptor de límite que señala la presencia de la pieza de trabajo no se ha activado.
    LÓGICA NOR DE PLC
    Supongamos que después de una compuerta OR ponemos una compuerta NOT (Figura 1.14a).
    La consecuencia de tener la compuerta NOT es invertir las salidas de la compuerta OR.
    Una alternativa, que da exactamente los mismos resultados, es poner una compuerta NOT en cada entrada y luego una compuerta AND para las entradas invertidas resultantes (Figura 1.14b).
    La siguiente es la tabla de verdad resultante:

    La combinación de compuertas OR y NOT se denomina compuerta NOR. Hay una salida cuando ni la entrada A ni la entrada B son 1.
    La Figura 1.15 muestra un diagrama de escalera de un sistema NOR.
    Cuando la entrada A y la entrada B no están activadas, hay una salida 1. Cuando X400 o X401 son 1, la salida es 0.

    LÓGICA OR exclusiva (XOR) de PLC
    La compuerta OR da una salida cuando una o ambas entradas son 1.
    Sin embargo, a veces es necesario contar con una compuerta que dé una salida cuando una de las entradas sea 1, pero no cuando ambas sean 1, es decir, que tenga la tabla de verdad:

    Esta compuerta se denomina compuerta OR exclusiva o XOR.
    Una forma de obtener dicha compuerta es utilizando las compuertas NOT, AND y OR, como se muestra en la Figura 1.16.

    La Figura 1.17 muestra un diagrama de escalera para un sistema de compuerta XOR. Cuando la entrada A y la entrada B no están activadas, la salida es 0.
    Cuando solo se activa la entrada A, la rama superior da como resultado 1. Cuando solo se activa la entrada B, la rama inferior da como resultado 1.
    Cuando se activan tanto la entrada A como la entrada B, no hay salida.
    En este ejemplo de una compuerta lógica, la entrada A y la entrada B tienen dos conjuntos de contactos en los circuitos, uno normalmente abierto y el otro normalmente cerrado.
    Con la programación de PLC, cada entrada puede tener tantos conjuntos de contactos como sea necesario.

    LÓGICA NOR exclusiva (XNOR) de PLC


    leikang
    Todo controlador lógico programable debe tener algún medio para recibir e interpretar señales de sensores del mundo real, como interruptores y codificadores, y también debe poder controlar elementos de control del mundo real, como solenoides, válvulas y motores.
    Esto se conoce generalmente como capacidad de entrada/salida o E/S. Los PLC monolíticos ("de ladrillo") tienen una cantidad fija de capacidad de E/S integrada en la unidad, mientras que los PLC modulares ("de bastidor") utilizan "tarjetas" de placa de circuito individuales para proporcionar capacidad de E/S personalizada.
    Módulos de entrada y salida de PLC

    Las ventajas de utilizar tarjetas de E/S reemplazables en lugar de un diseño de PLC monolítico son numerosas.
    La primera, y más obvia, es el hecho de que las tarjetas de E/S individuales se pueden reemplazar fácilmente en caso de falla sin tener que reemplazar todo el PLC.
    Se pueden elegir tarjetas de E/S específicas para aplicaciones personalizadas, inclinándose por tarjetas discretas para aplicaciones que utilizan muchas entradas y salidas de encendido/apagado, o inclinando por tarjetas analógicas para aplicaciones que utilizan muchas señales de 4-20 mA y similares.
    Algunos PLC incluso ofrecen la característica de tarjetas intercambiables en caliente, lo que significa que cada tarjeta se puede quitar e insertar una nueva sin desenergizar el procesador y el bastidor del PLC.
    Tenga en cuenta que no se debe asumir que ningún sistema tiene tarjetas intercambiables en caliente, porque si intenta cambiar una tarjeta "en vivo" en un sistema sin esta característica, corre el riesgo de dañar la tarjeta y/o el resto de la unidad a la que está conectada.

    Algunos PLC tienen la capacidad de conectarse a bastidores remotos sin procesador llenos de tarjetas o módulos de E/S adicionales, lo que proporciona una manera de aumentar la cantidad de canales de E/S más allá de la capacidad de la unidad base.
    La conexión del PLC anfitrión a los racks de E/S remotos generalmente toma la forma de una red digital especial, que puede abarcar una gran distancia física:

    Un esquema alternativo para la expansión del sistema es conectar en red varios PLC, donde cada PLC tiene su propio rack y procesador dedicado.
    A través del uso de instrucciones de comunicación, un PLC puede programarse para leer datos de otro PLC y/o escribir datos en él, utilizando efectivamente el otro PLC como una extensión de su propia E/S.
    Aunque este método es más costoso que la E/S remota (donde los racks remotos carecen de sus propios procesadores dedicados), proporciona la capacidad de control independiente en caso de que se interrumpa la conexión de red entre los procesadores del PLC.
    La capacidad de entrada/salida de los controladores lógicos programables viene en tres variedades básicas: discreta, analógica y de red.

    caixiaofeng
    Preguntas y respuestas sobre controladores lógicos programables (PLC)
    Este PLC se utiliza para arrancar y detener un motor eléctrico, y también para apagarlo automáticamente si se produce alguna de las tres condiciones de "apagado":
    Vibración excesiva Sobrecorriente (contacto del calentador de sobrecarga) Alta temperatura del devanado Lógica de disparo del motor mediante programación PLC

    El estado de cada contacto de apagado es el siguiente:
    Contacto de vibración: cerrado cuando está bien, se abre cuando la vibración se vuelve excesiva Contacto de sobrecarga: cerrado cuando está bien, se abre cuando está sobrecargado Contacto de temperatura: abierto cuando está bien, se cierra cuando está caliente Dibuje un programa de lógica de escalera de PLC para arrancar y detener este motor.
    Asegúrese de hacer que el programa se bloquee para que el operador no tenga que mantener presionado el botón de inicio para mantener el motor en funcionamiento.
    Respuesta:
    ¿Encuentra algún error en la lógica? Compártalo con nosotros a través de los comentarios.


    caixiaofeng
    En el mundo actual de la automatización industrial, los datos son una parte muy importante. Obtener datos instantáneos de fuentes y utilizarlos para diferentes propósitos es tan crucial como ejecutar un sistema.
    Todo el mundo suele saber cómo integrar SCADA con varios sistemas de bases de datos, como los servidores SQL. Sin embargo, muchos ignoran el poder del PLC para integrarse con bases de datos. También se pueden utilizar para este propósito.
    PLC con base de datos SQL

    Si utilizamos un PLC, los programadores pueden trabajar con ellos en situaciones de emergencia como una falla de SCADA y realizar su trabajo codificándolo adecuadamente. En esta publicación, veremos cómo utilizar un PLC con una base de datos SQL.
    Para aquellos que no están familiarizados con el servidor SQL, es una herramienta de gestión de bases de datos que almacena una gran cantidad de datos en formato de tiempo real de forma secuencial, y las consultas se escriben en él a través de alguna fuente externa, como un PLC, para recuperar datos.
    Para almacenar datos en él, se escribe una lógica en el PLC que, cuando se ejecuta, almacena datos en SQL. Este es un concepto simple, que se explica más adelante en la publicación de manera más breve para conocer sus ventajas.
    Programador PLC
    Supongamos que tiene un sistema a gran escala en el que el operador tiene que introducir cientos de horarios para operar funciones específicas todos los días. En lugar de utilizar una gran cantidad de códigos y variables en el PLC para almacenar los datos ingresados en SCADA y operarlos una vez que llega la hora, simplemente introduzca todos los datos de las variables en el servidor SQL a través del PLC cada vez que se cree una nueva receta.
    El SQL almacenará la fecha y hora en tiempo real de los valores ingresados y les dará a los operadores la opción de elegirlos según la fecha y hora filtradas. Por ejemplo, el SQL tiene cinco entradas del 1 de octubre al 5 de octubre para varios tipos de horarios ingresados. El beneficio es que el operador puede elegir cualquiera que necesite y luego ejecutar el sistema.
    Si SQL no estuviera allí, tendría que ejecutar solo una opción, ya sea el 1 de octubre o cualquier otra fecha. De lo contrario, tendría que utilizar la memoria de SCADA o PLC, lo que es un desperdicio de datos y codificación. Esto mismo se vuelve más fácil a través del servidor SQL.
    Otra ventaja es que el tamaño del código SCADA se reduce y se puede utilizar para otros fines. La programación se utiliza en muchas aplicaciones y el uso de PLC para ello junto con SQL hace que el sistema sea más eficiente.
    Secuenciación
    Considere una planta que tiene 10 secuencias. Cada secuencia tiene un lector de código de barras para iniciar la acción en el producto requerido. Si el código de barras se lee en SCADA, entonces los datos correspondientes se envían al PLC o, en resumen, SCADA es el medio que interviene para iniciar la comunicación entre el PLC y los datos; luego, simplemente conecte directamente el PLC con SQL.
    SQL se comunicará directamente con el PLC para determinar los códigos de barras y otros datos para iniciar o detener una secuencia. Estos datos masivos de las secuencias de la planta ayudan a reducir la codificación en SCADA y hacen que el sistema funcione más rápido. Debido a que el PLC está escrito con codificación para la operación de secuencia, ¿por qué no conectarlo directamente con SQL y usar el sistema?
    Sincronizar múltiples PLC
    Hay muchas aplicaciones en las que un PLC en una ubicación necesita datos de otra ubicación de PLC para realizar un trabajo. En ese caso también, tradicionalmente se utiliza SCADA para integrar todos los PLC y administrarlos.
    En ese caso, si los PLC están conectados directamente al servidor SQL, los datos se sincronizarán a través de la fecha y hora de SQL; eliminando así los problemas de sincronización de múltiples RTC (reloj en tiempo real) de los PLC.
    Además, el PLC se comunicará directamente con otro PLC para solicitar o proporcionar datos a través del servidor SQL. Cualquier alarma o evento en un PLC también se comunicará a otro PLC y ayudará a rastrear registros en tiempo real.
    Protocolo de enlace
    El protocolo de enlace es un proceso en el que una parte reconoce a la otra que el trabajo se ha completado. Básicamente, es una respuesta necesaria para que la parte pueda comenzar su otro trabajo. Este método funciona bien con los servidores SQL y PLC.
    El servidor SQL puede comunicarse directamente con el PLC enviando notificaciones de eventos en tiempo real o datos de notificación de alarmas en tiempo real. Esto significa que, supongamos que el trabajo tardó 3 días en completarse.
    Luego, el reconocimiento de finalización se enviará como un evento separado al PLC y, como también tiene 3 días de datos, el operador puede ver todo el proceso en informes SCADA fácilmente. Por lo tanto, el protocolo de enlace es una razón importante para comunicar el PLC con SQL directamente.
    Conceptos básicos de la base de datos del PLC
    Establezca una conexión entre el PLC y la base de datos SQL mediante un middleware o una puerta de enlace que facilite la comunicación entre los protocolos de red industrial y los lenguajes de la base de datos. Seleccione un protocolo de comunicación que tanto el PLC como la base de datos SQL puedan comprender, como OPC UA, Modbus TCP o cualquier otro protocolo compatible con su PLC y middleware. Configure el PLC para enviar y recibir datos configurando los parámetros, registros o etiquetas necesarios que se leerán o escribirán. Esto puede implicar programar el PLC utilizando su software respectivo para garantizar que esté listo para el intercambio de datos. Configure la base de datos SQL creando una nueva base de datos o configurando una existente para almacenar datos del PLC. Defina tablas, columnas y tipos de datos que se alineen con la estructura de datos que se envía desde el PLC. Asigne cada punto de datos del PLC al campo correspondiente en la base de datos SQL. Asegúrese de que los tipos de datos sean compatibles y que la asignación tenga sentido lógico para las necesidades de la aplicación. Implemente la lógica de transferencia de datos mediante scripts o procedimientos almacenados de la base de datos. Determine con qué frecuencia se deben transferir los datos, bajo qué condiciones y si la transferencia debe activarse por eventos o según un cronograma. Pruebe la comunicación entre el PLC y la base de datos SQL a fondo. Verifique si hay errores o discrepancias de datos y asegúrese de que el sistema se comporte como se espera en diversas condiciones. Supervise continuamente el sistema para verificar la integridad operativa, la precisión de los datos y cualquier anomalía. Configure alertas o notificaciones para errores del sistema o eventos significativos. Revise y actualice regularmente el sistema según sea necesario para adaptarse a los cambios en la configuración del PLC, la estructura de la base de datos o los requisitos adicionales. Mantenga la documentación actualizada para cualquier cambio del sistema. Asegúrese de que existan medidas de seguridad tanto para el PLC como para la base de datos SQL para protegerse contra el acceso no autorizado y las violaciones de datos. Considere implementar cifrado, firewalls y protocolos de acceso seguro.

    leikang
    En esta publicación, daré algunas instrucciones básicas que provienen de mi experiencia personal para brindarle una guía sobre cómo es la resolución de problemas en sistemas de automatización (PLC/DCS):
    La resolución de problemas de los sistemas de automatización tiene en general la misma táctica para encontrar la solución a la falla del sistema.
    Sin embargo, dependiendo de la complejidad y el tamaño de la aplicación y del sistema de automatización específico, los pasos para la solución de problemas serían un poco diferentes o más complicados.
    El mejor conocimiento se obtiene mediante la práctica y las condiciones reales de resolución de problemas. Practicar una y otra vez es la solución en mi opinión. ¡¡Cualquier suplemento y comentario es bienvenido!!
    Solucionar problemas de un sistema PLC

    Antes de continuar, aceptamos que los sistemas de automatización modernos tienen PLC para controlar la aplicación. Si tenemos una aplicación pequeña entonces el sistema posiblemente tenga un microPLC (o nanoPLC) u otro tipo de controlador compacto (muchas veces esto depende de la aplicación).
    Dije sistemas de automatización modernos porque en el pasado (antes de que los PLC y otros controladores compactos fueran conocidos y utilizados por las empresas de desarrollo de automatización), el control de un sistema de automatización se realizaba únicamente con relés.
    Investigar el programa del controlador
    Lo primero que debemos hacer es averiguar si cumplimos las condiciones adecuadas para la operación que está defectuosa. Para ello debemos encontrar la “mente” de nuestro sistema.
    Esta “mente” es el controlador (ya sea una especie de PLC u otro tipo de controlador compacto). Si no cumplimos con las condiciones adecuadas, entonces debemos investigar el programa del controlador para averiguar el origen del problema (SIEMPRE revise que aparezcan mensajes en SCADA. Esto guiará más rápido a la solución porque en SCADA aparece información importante como falla /descripción de alarma o una dirección específica en el PLC).
    Lo que descubriremos es...
    ya sea una señal defectuosa del hardware (por ejemplo, una señal digital de un botón o una señal digital de un interruptor mecánico o una señal digital de un contacto de relé que "no llega" a la entrada del controlador o una señal analógica que tiene valores incorrectos) o una señal defectuosa de otro sistema de software (por ejemplo, SCADA).
    Investigar las condiciones que surgieron del hardware.
    Cuando concluimos sobre el origen del problema, entonces dejamos por un momento el programa del controlador y salimos a comprobar nuestras conclusiones.
    Ya deberíamos haber encontrado los dibujos del sistema de automatización para poder ver las conexiones de los componentes que queremos comprobar.
    Por ejemplo, si descubrimos que tenemos una señal digital de un botón que “no llega” a la entrada del controlador, entonces tomamos nuestro multímetro y vamos a revisar el botón.
    Si el botón está bien, investigamos si hay algún fusible entre el botón y la entrada del controlador. Si lo hay, lo comprobamos.
    Si el fusible está bien, entonces investigamos el recorrido del cable.
    Quizás tengamos un cable cortado. Si el cable está bien, entonces quizás tengamos un problema de hardware en la entrada del controlador y quizás debamos cambiar este módulo de entrada por uno nuevo o arreglarlo (las reparaciones deben ser realizadas por personal calificado).
    Investigar el hardware tras las salidas de nuestro controlador.
    Si concluimos que estamos en las condiciones adecuadas, entonces debemos revisar los componentes que tenemos entre el controlador y el equipo defectuoso (nos referimos al equipo que no funciona como debería).
    Por ejemplo, si tenemos un horno industrial que no cierra la puerta (aunque tengamos las condiciones para cerrar la puerta desde el programa), tal vez tengamos un relé defectuoso que se energiza desde el PLC (u otro controlador) para cerrar la puerta.
    Si el relé está bien, entonces quizás tengamos problema con el motor que se encarga de cerrar la puerta. Debemos verificar el estado del motor (bobinas del motor, piezas mecánicas)
    Si el motor está bien, debemos verificar los valores de voltaje que llegan a la entrada del motor (con nuestro multímetro) y también verificar el estado del cable si las medidas del multímetro no son correctas.
    Si el voltaje y el cable están bien, entonces tal vez tengamos un atasco en algún lugar de la construcción de la puerta del horno.
    ¡Las unidades de potencia son una “ventaja”!
    Generalmente, cuando tenemos unidades de potencia (variadores) en nuestro sistema de automatización para accionar un motor, entonces debemos tener juntos el manual de la unidad de potencia específica.
    Esto se debe a que las unidades de potencia cuentan con un display digital o displays LED de 7 segmentos o simples LEd’s para informarnos sobre la falla que existe en su interior o en el motor accionado.
    Esto es muy útil para ingenieros y técnicos. Además, las unidades de potencia modernas tienen algoritmos especiales para verificar el estado del motor, los valores de voltaje y corriente, etc.
    Por ejemplo, si un motor se sobrecalienta, el variador nos informará de ello porque verifica continuamente el sensor de temperatura (por ejemplo, el termistor) que se encuentra dentro de la carcasa del motor.
    Luego debemos revisar el motor si realmente está sobrecalentado o tenemos algún sensor de temperatura defectuoso que debemos reemplazar.
    Verificar el estado de los controladores
    Algunas veces, cuando la CPU de nuestro PLC detecta una condición inaceptable en el flujo del programa, entonces pasa al modo “STOP” y posiblemente un led parpadea indicando este mal funcionamiento.
    Además, si ocurre algún otro mal funcionamiento en el sistema, algunos LED indican el tipo de falla (consulte el manual del controlador para obtener más información). El mismo comportamiento tiene en general cualquier tipo de controlador que se establezca en un sistema de automatización.
    Sistemas de seguridad
    Muchos sistemas de automatización (a menudo máquinas de producción) tienen en su diseño algunos "sistemas de seguridad" como "Pilz" o "Siemens Sirius".
    Se trata de controladores compactos e inteligentes para controlar situaciones como la apertura de puertas protectoras o la parada de emergencia. Cuando ocurre algo de esto, el sistema de seguridad detiene el funcionamiento del sistema de automatización para protección de personas y máquinas.
    Para restablecer el sistema de automatización al estado funcional, existen instrucciones especiales en los manuales de los sistemas de seguridad.
    La conclusión de todo lo anterior es tener una táctica paso a paso para la resolución de problemas. Con el paso del tiempo y adquiriendo más experiencia, quizás nos saltemos algunos pasos, sobre todo si somos el personal responsable del mantenimiento de un sistema con el que nos topamos a diario.
    Sin embargo, una buena táctica es ser organizado y paciente. ¡Buena suerte con tus esfuerzos!

    leikang
    La principal diferencia entre DCS y PLC es el modelo de negocio que analizamos comparando la arquitectura DCS versus PLC.
    Arquitectura DCS versus PLC
    Se puede decir que el modelo de negocio DCS se basa en un sistema integrado monolítico de un solo fabricante.
    Arquitectura DCS
    Para un DCS, el controlador, el subsistema de E/S, el software del servidor de base de datos, el software de ingeniería y el software del operador son todos una única unidad monolítica diseñada en conjunto y solo funcionan entre sí.
    No es posible utilizar componentes de terceros. No es posible utilizar ninguno de estos componentes en ningún otro sistema.
    Un DCS utiliza una red de subsistema de E/S y una red de control basada en Ethernet estándar, pero con un protocolo de aplicación propietario y, por lo general, solo con un modelo particular aprobado de conmutadores Ethernet.

    Figura 1 En un DCS todos los componentes provienen del mismo fabricante
    Solo se permite una versión específica de Windows y solo en un tipo de computadora aprobada enviada por el fabricante del DCS.
    Estas restricciones permiten al fabricante de DCS probar todo en conjunto de manera muy exhaustiva, a gran escala, con mucha carga y con muchos controladores y estaciones de trabajo.
    También se prueban juntas aplicaciones como control de lotes, control avanzado y ajuste automático, etc. Esto garantiza que no haya conflictos de compatibilidad ni dependencias imprevistas.
    Es posible realizar pruebas exhaustivas a gran escala porque básicamente hay un solo tipo de cada componente, por lo que solo hay una o muy pocas combinaciones.
    El software de terceros solo está permitido en “estaciones de aplicaciones” separadas donde no puede entrar en conflicto con las aplicaciones nativas del DCS y debe ser probado y aprobado por el fabricante del DCS; en la lista blanca.
    Un DCS es monolítico y utiliza el mismo subsistema de E/S, controlador y software de la misma marca, y una única plataforma de computadora y sistema operativo. Esto ha sido probado exhaustivamente a muy gran escala.
    Soporte a largo plazo de DCS
    Los sistemas suelen permanecer operativos durante 15 años o más. Durante este tiempo, habrá varias versiones de Windows, paquetes de servicio, revisiones, muchas actualizaciones de definiciones de virus y también será necesario reemplazar el hardware de la computadora.
    Por lo general, DCS solo admite un único tipo de software antivirus y cada vez que hay una nueva definición de virus o cuando hay un paquete de servicio o revisión del sistema operativo Windows, el sistema prueba nuevamente todo el conjunto monolítico de todo el hardware y software. proveedor antes del lanzamiento, lo que garantiza que la definición de virus y el paquete de servicio se puedan implementar sin conflictos de compatibilidad.
    Actualización del DCS
    Las versiones de DCS también se actualizan como una única unidad monolítica de todo el hardware y software, como el firmware de la tarjeta de E/S, el firmware del controlador, el software del servidor, el software de la estación de ingeniería, el software de la estación del operador y cualquier otro software, todos se actualizan juntos.
    Cada vez que hay una nueva versión del sistema, el fabricante del sistema ha probado minuciosamente todos estos componentes juntos a gran escala para garantizar que todos sean compatibles entre sí.
    Además, el proceso de transferencia directa en línea de la versión anterior a la nueva versión se ha probado minuciosamente a gran escala, lo que garantiza una implementación sin problemas en el sitio.
    Es esta tranquilidad que proporcionan las pruebas exhaustivas y a gran escala lo que hace que el DCS sea muy popular en grandes instalaciones como complejos petroquímicos. Estas pruebas resultan prácticas gracias a las pocas combinaciones en un sistema monolítico.
    Arquitectura PLC / Modelo de Negocio
    Se puede decir que el modelo de negocio de PLC se basa en una arquitectura flexible realizada por un integrador de sistemas (SI).
    Arquitectura PLC
    La arquitectura del PLC es muy flexible y cada componente se puede seleccionar libremente entre cualquiera de los muchos proveedores. El PLC es la CPU con software de configuración y subsistema IO.
    A veces, el subsistema de E/S puede provenir de un tercero. Incluso las tarjetas de E/S que se conectan al backplane pueden provenir de terceros.
    El software HMI suele ser de terceros. Normalmente es mejor un servidor OPC nativo del fabricante del PLC, pero a veces se utilizan servidores OPC de terceros.

    Figura 2 Para un PLC se integran componentes de diferentes fabricantes
    Básicamente, cualquier PLC funciona con cualquier subsistema de E/S, servidor OPC y software HMI porque se utilizan protocolos estándar como PROFIBUS-DP, PROFINET, Modbus/RTU, Modbus/TCP, DeviceNet y EtherNet/IP, así como OPC, etc. .
    El equipo de red, las computadoras y la versión de Windows se pueden seleccionar libremente. Algunos componentes que no funcionan están en la lista negra.

    Figura 3 DCS utiliza un único proveedor, mientras que las soluciones PLC combinan varios proveedores, lo que genera una gran cantidad de combinaciones.
    Nota: Actualmente también está disponible un proveedor de paquete de PLC único
    Esta flexibilidad permite cientos de combinaciones de hardware y software, lo que hace imposible que estos fabricantes se reúnan para probar todas las combinaciones posibles de su hardware y software en cada versión de Windows antes de que una planta decida comprar.
    Los fabricantes involucrados pueden probar algunas combinaciones, pero pueden o no ser a gran escala con cargas pesadas.
    Un PLC permite cualquier combinación de subsistema de E/S, CPU y software HMI/SCADA, en una amplia variedad de plataformas informáticas y de sistemas operativos. No se pueden probar todas las combinaciones.
    El fabricante de PLC puede suministrar todos los componentes de hardware y software, todos del mismo fabricante, ya que muchos fabricantes de PLC han adquirido empresas de HMI. Si es así, es posible que esta combinación en particular haya sido probada más exhaustivamente que las otras combinaciones probadas.
    Las aplicaciones auxiliares de terceros, como control de lotes, control avanzado y autoajuste, etc., generalmente no se prueban juntas, ya que dan como resultado un número aún mayor de combinaciones.
    PLC utiliza software de configuración propietario al igual que DCS. Es decir, no puede utilizar software de configuración de terceros para su PLC, al igual que un DCS.
    Un servidor OPC nativo para el PLC es mejor que un servidor OPC de terceros porque el software de configuración del PLC generalmente configura automáticamente el espacio de direcciones para el servidor OPC.
    Soporte a largo plazo para PLC
    Durante los 15 años o más de funcionamiento típico del sistema, habrá varias versiones de Windows, paquetes de servicio, revisiones, muchas actualizaciones de definiciones de virus y también será necesario reemplazar el hardware de la computadora.
    Normalmente, los PLC no tienen restricciones en cuanto al software antivirus o la versión del sistema operativo Windows, por lo que nuevamente el número de combinaciones de definiciones de virus, paquetes de servicios y revisiones se vuelve demasiado amplio y poco práctico para que estos fabricantes se reúnan para probar cada nueva combinación posible antes de una implementación en plantas para garantizar que no habrá conflictos de compatibilidad cuando se implemente en una gran cantidad de combinaciones de hardware y software.
    El fabricante del PLC puede limitar a un único software antivirus y versión de Windows. Si es así, es posible que esta combinación en particular haya sido probada más exhaustivamente que las otras combinaciones que prueban.
    Actualización de PLC
    Para un PLC, los componentes de hardware y software se actualizan individualmente. Es decir, el firmware del subsistema de E/S, el firmware de la CPU y el software de configuración, el servidor OPC, el software HMI y cualquier otro software se actualizan de forma independiente entre sí.
    Teniendo en cuenta diferentes versiones para cada opción de componentes, el número de combinaciones aumenta en órdenes de magnitud.
    Esta flexibilidad hace que no sea práctico que estos fabricantes se reúnan para probar todas las combinaciones posibles de nuevas versiones antes de su implementación en las plantas.
    Probar la transferencia en caliente de una combinación de versiones a otra combinación de versiones se vuelve casi imposible.
    El fabricante del PLC puede suministrar todos los componentes de hardware y software, limitarse a un único software antivirus y una versión de Windows que se prueban antes de la implementación, y limitarse a un único controlador de servidor de base de datos de subsistema de E/S/estación de operador de PLC/HMI, DCS, sistema PLC. actualizaciones de versiones amplias y pruebe la transferencia directa antes de la implementación.
    De esta forma se abandonaría la flexibilidad del PLC para alcanzar la robustez de un DCS.

    leikang
    Cuando trabaja en un sistema de automatización industrial para la programación de PLC, tiene requisitos en los que necesita controlar un proceso de forma gradual o paso a paso.
    Algoritmos de control
    No puedes simplemente activar o desactivar una lógica para realizar tu trabajo. Puede tener efectos adversos en la salida real de su PLC. Por esta razón, existen varios tipos de métodos de control disponibles en un programa de PLC para realizar las acciones adecuadas.

    En esta publicación, veremos los diversos métodos de algoritmos de control que se utilizan en un programa de PLC.
    Control PID
    Este es, con diferencia, el método de control más famoso. PID utiliza un mecanismo de control de circuito cerrado. Esto significa que primero recibirá la retroalimentación y, según lo que desee, variará la salida en consecuencia.
    Para ello, el controlador PID utiliza cálculos matemáticos internos con tres parámetros: proporción, integral y derivada. Entonces, si desea controlar una enfriadora con un compresor, entonces el PLC controlará la salida del compresor midiendo primero la temperatura real y verificándola con la cantidad que requiere el usuario.
    En función de esa diferencia cada vez, la salida del compresor se controlará gradualmente o se encenderá y apagará para mantener la temperatura. Para ello se utilizará un bloque PID en el programa del PLC para realizar esta tarea.
    Generador de funciones
    Este es un tipo de método de control muy simple. En el generador de funciones, debe definir una tabla de entrada de n valores. De manera similar, defina una tabla de salida de n valores.
    Entonces, por ejemplo, si definimos 10 tablas de valores tanto en el lado de entrada como en el de salida, tenemos un elemento de 10 tamaños. Ahora bien, estos 10 elementos tendrán valores diferentes. Si configura 0-100 en el lado de entrada, entonces habremos configurado 0-50 en el lado de salida. Estos 10 elementos son 10 rangos, es decir, 0-10, 10-20, 20-30, etc.
    En consecuencia, el lado de salida se distribuirá en 10 elementos de 0 a 5, 5 a 10, 10 a 15 y así sucesivamente hasta 50. Cuando una entrada en tiempo real se encuentra entre cualquier valor en el lado de entrada, la salida escalada correspondiente será aprobado. Aquí tiene total flexibilidad para configurar los valores de la tabla de entrada y salida.
    Control de lógica difusa
    La lógica difusa es un método relativamente bueno para controlar una salida. Normalmente, tiene dos estados binarios: 0 y 1. Entonces, consideremos si una válvula se puede abrir o cerrar. ¿Pero qué pasa si la válvula se atasca en el medio? No sabemos si la válvula está cerca del estado abierto o cerrado. En ese caso, ayuda si existe un estado entre 0 y 1. Esto ayuda al menos a acercarse a una posibilidad. A esto se le llama lógica quisquillosa.
    Aquí puedes definir valores cercanos a 0 y 1. Puede ser como 0,9 o 0,2. En consecuencia, puede controlar las salidas cuando se acerque a estos valores. Y cuando alcanza el límite extremo, es decir 0 o 1, puedes abrir o cerrar completamente la válvula.
    Antes de eso, puedes operar las válvulas gradualmente. Esto aporta un control más preciso al proceso. Entonces, este bloque de control permite una colección de valores que pueden resultar útiles en situaciones impredecibles. Se requiere mucho conocimiento y experiencia para establecer correctamente los valores y conjuntos para que la lógica funcione correctamente.
    Posición proporcional
    Esta lógica abrirá o cerrará un dispositivo pulsando los contactos para abrir o cerrar en algún temporizador predefinido establecido por el usuario. Se realiza para un ancho de pulso proporcional a la desviación entre la posición requerida y la posición actual.
    Debe configurar parámetros de control como cuánto mínimo y máximo limitar la salida, cuánto tiempo permanecerá encendida la salida, la velocidad a la que el dispositivo debe abrirse o cerrarse en %/segundo, etc.
    El bloque de funciones recibe retroalimentación real, evalúa los temporizadores internos y verifica si la apertura o el cierre se realizan dentro de la velocidad deseada o no. En caso contrario se dará el correspondiente pulso de apertura o cierre.
    De esta forma, vimos los diversos métodos de algoritmos de control utilizados en la programación de PLC.

    leigehong
    A finales de la década de 1960, una empresa estadounidense llamada Bedford Associates lanzó un dispositivo informático al que llamaron MODICON. Como acrónimo significaba Controlador Digital Modular, y más tarde se convirtió en el nombre de una división de la empresa dedicada al diseño, fabricación y venta de estas computadoras de control de propósito especial.
    Otras empresas de ingeniería desarrollaron sus propias versiones de este dispositivo y, finalmente, llegó a ser conocido en términos no propietarios como PLC o controlador lógico programable.
    SOCIEDAD ANÓNIMA
    El propósito de un PLC era reemplazar directamente los relés electromecánicos como elementos lógicos, sustituyendo en su lugar una computadora digital de estado sólido con un programa almacenado, capaz de emular la interconexión de muchos relés para realizar ciertas tareas lógicas.
    Un PLC tiene muchos terminales de "entrada", a través de los cuales interpreta estados lógicos "altos" y "bajos" y valores analógicos de interruptores y sensores.
    También tiene muchos terminales de salida, a través de los cuales emite señales "altas" y "bajas" para encender luces, solenoides, contactores, motores pequeños y otros dispositivos que se prestan para control de encendido/apagado y también salida analógica para controlar válvulas de control, motores. control de velocidad, etc
    En un esfuerzo por hacer que los PLC sean fáciles de programar, su lenguaje de programación fue diseñado para parecerse a diagramas de lógica de escalera. Por lo tanto, un ingeniero acostumbrado a leer esquemas de lógica de escalera se sentiría cómodo programando un PLC para realizar las mismas funciones de control.
    Programación de PLC
    La siguiente ilustración muestra un PLC simple, tal como podría verse desde una vista frontal.
    Dos terminales de tornillo proporcionan conexión a la fuente de alimentación para alimentar los circuitos internos del PLC, etiquetados como L1 y L2.
    Seis terminales de tornillo en el lado izquierdo brindan conexión a dispositivos de entrada; cada terminal representa un "canal" de entrada diferente con su propia etiqueta "X".
    El terminal de tornillo inferior izquierdo es una conexión "común", que generalmente está conectada a L2 (neutro) de la fuente de alimentación de 120 VCA.

    Dentro de la carcasa del PLC, conectado entre cada terminal de entrada y el terminal común, hay un dispositivo optoaislador (diodo emisor de luz) que proporciona una señal lógica "alta" aislada eléctricamente al circuito de la computadora (un fototransistor interpreta la luz del LED). ) cuando se aplica alimentación de 120 VCA entre el terminal de entrada respectivo y el terminal común.
    Un LED indicador en el panel frontal del PLC proporciona una indicación visual de una entrada "energizada":

    Las señales de salida son generadas por los circuitos de la computadora del PLC que activan un dispositivo de conmutación (transistor, TRIAC o incluso un relé electromecánico), conectando el terminal "Fuente" a cualquiera de los terminales de salida etiquetados "Y-".
    El terminal "Fuente", correspondientemente, generalmente está conectado al lado L1 de la fuente de alimentación de 120 VCA.
    Al igual que con cada entrada, un LED indicador en el panel frontal del PLC proporciona una indicación visual de una salida "energizada":

    De esta manera, el PLC puede interactuar con dispositivos del mundo real, como interruptores y solenoides.
    La lógica real del sistema de control se establece dentro del PLC mediante un programa informático.
    Este programa dicta qué salida se activa bajo qué condiciones de entrada.
    Aunque el programa en sí parece ser un diagrama de lógica de escalera, con símbolos de interruptor y relé, no hay contactos de interruptor ni bobinas de relé reales que operen dentro del PLC para crear las relaciones lógicas entre entrada y salida.
    Estos son contactos y bobinas imaginarios, por así decirlo. El programa se ingresa y se ve a través de una computadora personal conectada al puerto de programación del PLC.
    Considere el siguiente circuito y programa de PLC:

    Cuando el interruptor de botón no se acciona (no se presiona), no se envía energía a la entrada X1 del PLC.
    Siguiendo el programa, que muestra un contacto X1 normalmente abierto en serie con una bobina Y1, no se enviará “energía” a la bobina Y1. Por lo tanto, la salida Y1 del PLC permanece desenergizada y la lámpara indicadora conectada a ella permanece apagada.
    Sin embargo, si se presiona el interruptor de botón, se enviará energía a la entrada X1 del PLC.
    Todos y cada uno de los contactos X1 que aparecen en el programa asumirán el estado activado (no normal), como si fueran contactos de relé activados por la activación de una bobina de relé denominada "X1".
    En este caso, energizar la entrada X1 hará que el contacto X1 normalmente abierto se "cierre", enviando "energía" a la bobina Y1.
    Cuando la bobina Y1 del programa se “energiza”, la salida Y1 real se energizará, iluminando la lámpara conectada a ella:

    Debe entenderse que el contacto X1, la bobina Y1, los cables de conexión y la "alimentación" que aparecen en la pantalla de la computadora (sistema de ingeniería donde se carga el software PLC) son todos virtuales.
    No existen como componentes eléctricos reales. Existen como comandos en un programa de computadora (solo una pieza de software) que se parece a un diagrama esquemático de relé real.
    Igualmente importante es comprender que la computadora utilizada para mostrar y editar el programa del PLC no es necesaria para el funcionamiento continuo del PLC.
    Una vez que se ha cargado un programa en el PLC desde la computadora, la computadora se puede desconectar del PLC y el PLC continuará siguiendo los comandos programados.
    Incluyo la pantalla de la computadora en estas ilustraciones únicamente por su bien, para ayudar a comprender la relación entre las condiciones de la vida real (cierre del interruptor y estado de la lámpara) y el estado del programa (“potencia” a través de contactos y bobinas virtuales).
    La verdadera potencia y versatilidad de un PLC se revela cuando queremos alterar el comportamiento de un sistema de control. Al ser el PLC un dispositivo programable, podemos alterar su comportamiento cambiando los comandos que le damos, sin tener que reconfigurar los componentes eléctricos conectados a él.
    Por ejemplo, supongamos que quisiéramos hacer que este circuito de interruptor y lámpara funcione de manera invertida: presione el botón para apagar la lámpara y suéltelo para encenderla.
    La solución de “hardware” requeriría que un interruptor de botón normalmente cerrado fuera sustituido por el interruptor normalmente abierto actualmente en funcionamiento.
    La solución "software" es mucho más sencilla: basta con modificar el programa para que el contacto X1 esté normalmente cerrado en lugar de normalmente abierto.
    En la siguiente ilustración, tenemos el sistema alterado que se muestra en el estado en el que el pulsador no está accionado (no presionado):

    En la siguiente ilustración, el interruptor se muestra activado (presionado):

    Una de las ventajas de implementar el control lógico en software en lugar de hardware es que las señales de entrada se pueden reutilizar tantas veces en el programa como sea necesario.
    Por ejemplo, tome el siguiente circuito y programa, diseñados para energizar la lámpara si al menos dos de los tres interruptores de botón se accionan simultáneamente:

    Para construir un circuito equivalente utilizando relés electromecánicos, se tendrían que utilizar tres relés con dos contactos normalmente abiertos cada uno, para proporcionar dos contactos por interruptor de entrada.
    Usando un PLC, sin embargo, podemos programar tantos contactos como queramos para cada entrada “X” sin agregar hardware adicional, ya que cada entrada y cada salida no es más que un único bit en la memoria digital del PLC (ya sea 0 o 1). , y se puede recuperar tantas veces como sea necesario.
    Además, como cada salida del PLC no es más que un bit en su memoria, podemos asignar contactos en un programa de PLC “actuados” por un estado de salida (Y).
    Tomemos, por ejemplo, el siguiente sistema, un circuito de control de arranque y parada de motor:

    El interruptor de botón conectado a la entrada X1 sirve como interruptor de "Inicio", mientras que el interruptor conectado a la entrada X2 sirve como "Parada".
    Otro contacto en el programa, llamado Y1, utiliza el estado de la bobina de salida como un contacto de sellado, directamente, de modo que el contactor del motor continuará energizado después de soltar el botón pulsador de “Arranque”.
    Puede ver que el contacto normalmente cerrado X2 aparece en un bloque de color, lo que muestra que está en un estado cerrado (“conductor eléctrico”).
    Si tuviéramos que presionar el botón "Inicio", la entrada X1 se energizaría, "cerrando" así el contacto X1 en el programa, enviando "alimentación" a la "bobina" Y1, energizando la salida Y1 y aplicando energía de 120 voltios CA al Bobina de contactor de motor real.
    El contacto paralelo Y1 también se “cerrará”, bloqueando así el “circuito” en un estado energizado:

    Ahora, si soltamos el botón de “Arranque”, el “contacto” X1 normalmente abierto volverá a su estado “abierto”, pero el motor continuará funcionando porque el “contacto” sellado Y1 continúa brindando “continuidad”. para “alimentar” la bobina Y1, manteniendo así la salida Y1 energizada:

    Para detener el motor, debemos presionar momentáneamente el botón “Stop”, que energizará la entrada X2 y “abrirá” el “contacto” normalmente cerrado, rompiendo la continuidad a la “bobina” Y1:

    Cuando se suelta el botón "Parar", la entrada X2 se desenergizará, devolviendo el "contacto" X2 a su estado normal "cerrado".
    El motor, sin embargo, no arrancará nuevamente hasta que se accione el botón “Start”, porque se ha perdido el “sello” de Y1:

    Un punto importante a destacar aquí es que el diseño a prueba de fallos es tan importante en los sistemas controlados por PLC como en los sistemas controlados por relés electromecánicos.
    Siempre se deben considerar los efectos del cableado fallido (abierto) en el dispositivo o dispositivos que se están controlando.
    En este ejemplo de circuito de control del motor, tenemos un problema: si el cableado de entrada para X2 (el interruptor de "Parada") fallara al abrirse, ¡no habría forma de detener el motor!
    La solución a este problema es una inversión de la lógica entre el “contacto” X2 dentro del programa del PLC y el botón pulsador de “Parada” real:

    Cuando el botón pulsador de “Parada” normalmente cerrado no está accionado (no presionado), la entrada X2 del PLC se energizará, “cerrando” así el “contacto” X2 dentro del programa.
    Esto permite que el motor arranque cuando la entrada X1 está energizada y le permite continuar funcionando cuando ya no se presiona el botón de “Arranque”.
    Cuando se acciona el botón “Parada”, la entrada X2 se desenergizará, “abriendo” así el “contacto” X2 dentro del programa PLC y apagando el motor.
    Entonces, vemos que no hay diferencia operativa entre este nuevo diseño y el diseño anterior.
    Sin embargo, si el cableado de entrada en la entrada X2 fallara al abrirse, la entrada X2 se desenergizaría de la misma manera que cuando se presiona el botón "Parar".
    Entonces, el resultado de una falla de cableado en la entrada X2 es que el motor se apagará inmediatamente.
    Este es un diseño más seguro que el que se mostró anteriormente, donde una falla en el cableado del interruptor de "Parada" habría resultado en la imposibilidad de apagar el motor.
    Además de los elementos del programa de entrada (X) y salida (Y), los PLC proporcionan bobinas y contactos "internos" sin conexión intrínseca con el mundo exterior.
    Estos se usan de manera muy similar a como se usan los “relés de control” (CR1, CR2, etc.) en los circuitos de relés estándar: para proporcionar inversión de señal lógica cuando sea necesario.
    Para demostrar cómo se podría utilizar uno de estos relés "internos", considere el siguiente circuito y programa de ejemplo, diseñados para emular la función de una puerta NAND de tres entradas.
    Dado que los elementos del programa PLC generalmente están diseñados con letras individuales, llamaré al relé de control interno "C1" en lugar de "CR1", como sería habitual en un circuito de control de relés:

    En este circuito la lámpara permanecerá encendida mientras alguno de los pulsadores permanezca sin accionar (sin presionar).
    Para hacer que la lámpara se apague, tendremos que accionar (presionar) los tres interruptores, así:


    leigehong
    Conceptos básicos del diagrama de escalera en la programación de PLC
    La lógica de escalera era originalmente un método escrito para documentar el diseño y la construcción de bastidores de relés utilizados en la fabricación y el control de procesos. Cada dispositivo en el bastidor de relés estaría representado por un símbolo en el diagrama de escalera y se muestran las conexiones entre esos dispositivos. Además, en el diagrama de escalera también se mostrarían otros elementos externos al bastidor de relés, como bombas, calentadores, etc.
    La lógica de escalera ha evolucionado hasta convertirse en un lenguaje de programación que representa un programa mediante un diagrama gráfico basado en los diagramas de circuito del hardware de lógica de relé. La lógica de escalera se utiliza para desarrollar software para controladores lógicos programables (PLC) utilizados en aplicaciones de control industrial. El nombre se basa en la observación de que los programas en este lenguaje se parecen a escaleras, con dos rieles verticales y una serie de peldaños horizontales entre ellos. Si bien los diagramas de escalera alguna vez fueron la única notación disponible para registrar programas de controladores programables, hoy en día otras formas están estandarizadas en IEC 61131-3.
    La lógica de escalera se usa ampliamente para programar PLC, donde se requiere control secuencial de un proceso u operación de fabricación. La lógica de escalera es útil para sistemas de control simples pero críticos. A medida que los controladores lógicos programables se volvieron más sofisticados, también se han utilizado en sistemas de automatización muy complejos. A menudo, el programa de lógica de escalera se utiliza junto con un programa HMI que funciona en una estación de trabajo informática.
    Ejemplo de un programa de lógica de escalera simple
    El lenguaje en sí puede verse como un conjunto de conexiones entre controladores lógicos (contactos) y actuadores (bobinas). Si se puede trazar una ruta entre el lado izquierdo del renglón y la salida, a través de contactos afirmados (verdaderos o “cerrados”), el renglón es verdadero y el bit de almacenamiento de la bobina de salida es afirmado o verdadero. Si no se puede rastrear ningún camino, entonces la salida es falsa (0) y la "bobina", por analogía con los relés electromecánicos, se considera "desenergizada".
    La lógica de escalera tiene contactos que abren o rompen circuitos para controlar las bobinas. Cada bobina o contacto corresponde al estado de un solo bit en la memoria del controlador programable. A diferencia de los relés electromecánicos, un programa de escalera puede hacer referencia cualquier número de veces al estado de un solo bit, lo que equivale a un relé con un número indefinidamente grande de contactos.
    Los llamados "contactos" pueden referirse a entradas físicas ("duras") al controlador programable desde dispositivos físicos como botones pulsadores e interruptores de límite a través de un módulo de entrada integrado o externo, o pueden representar el estado de los bits de almacenamiento interno que pueden generarse. en otras partes del programa.
    Cada peldaño del lenguaje de escalera normalmente tiene una bobina en el extremo derecho. Algunos fabricantes pueden permitir más de una bobina de salida en un peldaño.
    —( )— Una bobina normal, energizada cada vez que su peldaño está cerrado.
    —()— Una bobina “no”, energizada cada vez que su peldaño está abierto.
    —[ ]— Un contacto regular, cerrado siempre que se energiza su correspondiente bobina o una entrada que la controla.
    —[]— Un contacto “no”, cerrado siempre que su correspondiente bobina o una entrada que la controle no esté energizada.
    La “bobina” (salida de un peldaño) puede representar una salida física que opera algún dispositivo conectado al controlador programable, o puede representar un bit de almacenamiento interno para usar en otra parte del programa.
    Y lógico
     ------[ ]--------------[ ]----------------( )
     Interruptor de llave 1 Interruptor de llave 2 Motor de puerta
    Lo anterior realiza la función: Motor de puerta = Interruptor de llave 1 Y Interruptor de llave 2
    Este circuito muestra dos interruptores de llave que los guardias de seguridad podrían usar para activar un motor eléctrico en la puerta de la bóveda de un banco. Cuando los contactos normalmente abiertos de ambos interruptores se cierran, la electricidad puede fluir hacia el motor que abre la puerta.
    Lógico Y con NO
     ------[ ]--------------[]----------------( )
     Cerrar la puerta Obstrucción Motor de la puerta
    Lo anterior realiza la función: Motor de Puerta = Cerrar puerta Y NO(Obstrucción).
    Este circuito muestra un botón que cierra una puerta y un detector de obstrucciones que detecta si algo se interpone en el camino para cerrar la puerta. Cuando el contacto del botón normalmente abierto se cierra y el detector de obstrucción normalmente cerrado se cierra (no se detecta ninguna obstrucción), la electricidad puede fluir hacia el motor que cierra la puerta.
    O lógico
     --+-------[ ]-------+-----------------( )
     | Desbloqueo exterior | desbloquear
     | |
     +-------[ ]-------+
     Desbloqueo interior
    Lo anterior realiza la función: Desbloquear = Desbloquear Interior O Desbloquear Exterior
    Este circuito muestra las dos cosas que pueden activar los seguros eléctricos de las puertas de un automóvil. El receptor remoto siempre está encendido. El solenoide de bloqueo recibe energía cuando cualquiera de los conjuntos de contactos está cerrado.
    PARADA/INICIO industriales
    En la lógica industrial común de arranque/parada con enclavamiento, tenemos un botón de "arranque" para encender un contactor de motor y un botón de "parada" para apagar el contactor.
    Cuando se presiona el botón de "inicio", la entrada se vuelve verdadera, a través del contacto NC del botón de "parada". Cuando la entrada de “ejecución” se vuelve verdadera, el contacto NO sellado de “ejecución” en paralelo con el contacto NO de “inicio” se cerrará manteniendo la lógica de entrada verdadera (enclavada o sellada). Después de bloquear el circuito, se puede presionar el botón de “parada”, lo que provoca que se abra su contacto NC y, en consecuencia, que la entrada sea falsa. Luego se abre el contacto NA de “ejecución” y la lógica del circuito vuelve a su estado de reposo.
     --+----[ ]--+----[]----( )
     | inicio | dejar de correr
     | |
     +----[ ]--+
     correr
     -------[ ]--------------( )
     hacer funcionar el motor
    Lo anterior realiza la función: ejecutar = (iniciar O ejecutar) Y (NO detener)
    Tenga en cuenta el uso de paréntesis para agrupar la función lógica OR antes de evaluar la función lógica AND (que tiene un orden de prioridad de operación más alto). También tenga en cuenta el uso de NOT para representar la lógica de contacto NC de “parada”.
    Esta configuración de pestillo es un modismo común en la lógica de escalera. En lógica de escalera se le conoce como lógica de sellado. La clave para entender el pestillo es reconocer que el interruptor de "inicio" es un interruptor momentáneo (una vez que el usuario suelta el botón, el interruptor se abre nuevamente). Tan pronto como se activa el solenoide de "marcha", cierra el contacto NO de "marcha", que bloquea el solenoide. La apertura del interruptor de “arranque” no tiene ningún efecto.
    Por razones de seguridad, se debe cablear una parada de emergencia y/o una parada en serie con el interruptor de arranque, y la lógica del relé debe reflejar esto.
     --[]----[]----+--[ ]--+---------( )
     ES Parada | Inicio | Motor
     | |
     +--[ ]--+
     Correr
    Lógica compleja
    A continuación se muestra un ejemplo de cómo se verían dos peldaños en un programa de lógica de escalera. En aplicaciones del mundo real, puede haber cientos o miles de peldaños.
    Normalmente, la lógica de escalera compleja se "lee" de izquierda a derecha y de arriba a abajo. A medida que se evalúa cada una de las líneas (o peldaños), la bobina de salida de un peldaño puede alimentar la siguiente etapa de la escalera como entrada. En un sistema complejo habrá muchos “peldaños” en una escalera, que están numerados en orden de evaluación.
     1. ----[ ]---------+----[ ]-----+----( )
     Cambiar | Alta temperatura | C.A
     | |
     +----[ ]-----+
     Húmedo
     2. ----[ ]----[]--------------------( )
     A/C Calor Enfriamiento
    La línea 1 realiza la función: A/C = Switch AND ( HiTemp OR Humid )
    La línea 2 realiza la función: Refrigeración = A/C Y (NO Calor)
    Esto representa un sistema un poco más complejo para el peldaño 2. Después de evaluar la primera línea, la bobina de salida "A/C" se alimenta al peldaño 2, que luego se evalúa y la bobina de salida "Refrigeración" podría alimentarse a una salida. dispositivo “Compresor” o en el peldaño 3 de la escalera. Este sistema permite descomponer y evaluar diseños lógicos muy complejos.
    Funcionalidad adicional
    El fabricante del PLC puede agregar funcionalidad adicional a una implementación de lógica de escalera como un bloque especial. Cuando el bloque especial está encendido, ejecuta código con argumentos predeterminados. Estos argumentos pueden mostrarse dentro del bloque especial.
     +-------+
     -----[ ]--------------------+ A +----
     Desbloqueo remoto +-------+
     Contador remoto
     +-------+
     -----[ ]--------------------+ B +----
     Desbloqueo interior +-------+
     Mostrador interior
     +--------+
     -----------+ A + B +-----------
     | en C |
     +--------+
     Sumador
    En este ejemplo, el sistema contará la cantidad de veces que se presionan los botones interior y de desbloqueo remoto. Esta información se almacenará en las ubicaciones de memoria A y B. La ubicación de memoria C contendrá el número total de veces que la puerta se ha desbloqueado electrónicamente.
    Los PLC tienen muchos tipos de bloques especiales. Incluyen temporizadores, operadores aritméticos y comparaciones, búsquedas de tablas, procesamiento de texto, control PID y funciones de filtrado. Los PLC más potentes pueden operar en un grupo de ubicaciones de memoria interna y ejecutar una operación en un rango de direcciones, por ejemplo, para simular un controlador de tambor secuencial físico o una máquina de estados finitos. En algunos casos, los usuarios pueden definir sus propios bloques especiales, que efectivamente son subrutinas o macros. La gran biblioteca de bloques especiales junto con la ejecución de alta velocidad ha permitido el uso de PLC para implementar sistemas de automatización muy complejos.

    xiangjinjiao
    Hay diferentes estructuras de bloques disponibles al programar un PLC, estos bloques incluyen FC de funciones, FB de bloques de funciones y DB de bloques de datos. Estos bloques son herramientas muy útiles que puede utilizar para diseñar mejor la lógica de su PLC y hacer que su código sea más legible y fácil de seguir y depurar.
    En artículos anteriores, analizamos los FC y los FB. En este artículo, analizaremos los DB de bloques de datos, más específicamente el bloque de datos global.
    Contenido:
    ¿Qué es un DB de bloques de datos? Tipos de bloques de datos. ¿Qué es un bloque de datos global? ¿Cómo crear un bloque de datos global? Cómo trabajar con bloques de datos globales. Ejemplo de simulación. ¿Qué es un bloque de datos?
    Un DB de bloques de datos es un área de memoria que se utiliza para guardar los valores de los parámetros que se escriben durante la ejecución del programa de PLC.
    A diferencia del bloque de código, el DB de bloques de datos contiene solo declaraciones de variables. No tiene redes ni instrucciones como un FC o un FB. La estructura de la base de datos se define por la cantidad de variables que haya declarado dentro del bloque de datos.
    Tipos de bloques de datos en el PLC
    Existen dos tipos de bloques de datos:
    Bloques de datos globales Bloques de datos de instancia Bloques de datos ARRAY Bloques de datos globales
    Como sugiere el nombre, el bloque de datos global se declara globalmente para toda la lógica del PLC. No se asigna a un bloque de código específico. Puede acceder a los valores de un bloque de datos global desde cualquier bloque de código en cualquier parte de la lógica del PLC. Un bloque de datos global contiene solo etiquetas estáticas.
    La estructura del bloque de datos global se puede definir libremente. En la tabla de declaración de bloques de datos, declara los elementos de datos que se incluirán en el bloque de datos global.
    Bloques de datos de instancia
    El bloque de datos de instancia se asigna directamente a un bloque de función FB, ya sea que este bloque de función esté definido internamente en el PLC como temporizadores y contadores o bloques de función FB definidos por el usuario.
    La estructura de un bloque de datos de instancia no se puede definir libremente, sino que está determinada por la interfaz del bloque de función. El bloque de datos de instancia contiene exactamente los parámetros y las variables del bloque que se declaran en la interfaz del bloque de función.
    Sin embargo, puede definir valores específicos de la instancia en el bloque de datos de instancia; por ejemplo, valores iniciales para las variables declaradas.
    Bloques de datos ARRAY
    Disponibles solo para CPU S7-1500, los bloques de datos ARRAY son bloques de datos globales que constan de un ARRAY. Este ARRAY puede estar basado en cualquier tipo de datos.
    Por ejemplo, es posible un ARRAY de un tipo de datos PLC (UDT). El DB no contiene otros elementos además del ARRAY. Debido a su estructura plana, los bloques de datos ARRAY facilitan el acceso a los elementos del ARRAY y su transferencia a los bloques llamados.
    La sección “Operaciones de movimiento” de la tarjeta de tareas “Instrucciones” ofrece opciones para direccionar DB ARRAY.
    En este artículo, hablaremos sobre el bloque de datos global y analizaremos los otros dos tipos en artículos separados.
    ¿Qué es el bloque de datos global?
    Los bloques de datos se utilizan para almacenar datos del programa PLC. Esto significa que contienen datos variables que utiliza el programa de usuario. Los bloques de datos globales almacenan datos que pueden ser utilizados por todos los demás bloques.
    El tamaño máximo de los bloques de datos varía según la CPU. Puede definir la estructura de los bloques de datos globales de la forma que desee.
    También tiene la opción de utilizar tipos de datos PLC (UDT) como plantilla para crear bloques de datos globales.
    Cada bloque de función FB, función FC u bloque de organización OB puede leer los datos de un bloque de datos global o puede escribir datos en un bloque de datos global. Estos datos permanecen en el bloque de datos incluso después de salir del bloque de datos. Consulte la imagen 1.

    Imagen 1: Acceso al bloque de datos global
    Como puede ver en la imagen anterior, se puede acceder a un bloque de datos global desde cualquier bloque de código dentro del programa PLC, mientras que al bloque de datos de instancia solo se puede acceder mediante el bloque de función asociado.
    Creación de un bloque de datos global
    Puede crear un bloque de datos global de la misma manera que crea una función FC o un bloque de función FB. Desde el botón Agregar un nuevo bloque al árbol de su proyecto. Vea la imagen 2.

    Imagen 2: Creación de un bloque de datos global
    Declaremos algunas variables dentro del bloque de datos global.
    Para ello, haga clic en Agregar nuevo en la sección Nombre, escriba el nombre de la variable que desee y luego elija el tipo de datos de la variable. Vea la imagen 3.

    Imagen 3: Declaración de variables en un bloque de datos global
    Trabajar con un bloque de datos global
    Declarar una etiqueta. Ya mostramos cómo declarar una etiqueta/variable en la imagen 3.
    Definir un valor inicial El valor inicial de una etiqueta es un valor definido por usted, que la etiqueta asume después de iniciar la CPU. El valor debe coincidir con el tipo de datos de la etiqueta y no debe exceder el rango del tipo de datos. Vea la imagen 4.
    La etiqueta toma el valor definido al iniciarse, siempre que no se haya declarado como retentiva.

    Imagen 4: Definición del valor inicial de las etiquetas
    Por lo tanto, si establezco el valor de inicio de Tank1Level en cualquier valor distinto de cero, este valor se aplicará la próxima vez que se reinicie el PLC. Ver imagen 5.

    Imagen 5: Definición de un valor de inicio para las variables
    Retención de variables en bloques de datos globales Para evitar la pérdida de datos en caso de corte de energía, puede marcar los datos como retentivos. Estos datos se almacenan en un área de memoria retentiva.
    Las opciones para configurar la retención dependen del tipo de bloque de datos y del tipo de acceso al bloque que se configure. Ver imagen 6.

    Imagen 6: Opción de retención en bloques de datos globales
    Como puede ver en la imagen 6, la variable Tank2Level está configurada para que sea un valor retenido, lo que significa que incluso si el PLC se detuvo o hubo un corte de energía, Tank2Level tendrá los mismos datos almacenados cuando el PLC se vuelva a encender. No se restablecerá al valor inicial.
    Accesibilidad a/desde HMI En un bloque de datos global, puede definir si una variable puede ser visible desde las tablas de etiquetas de HMI o no. También puede definir si esta variable puede leerse o escribirse desde la HMI. Consulte la imagen 7.

    Imagen 7: Accesibilidad desde HMI
    La configuración predeterminada para cualquier variable declarada en un bloque de datos global es que se puede acceder a ella, leerla y escribirla desde la HMI. Si desea deshabilitar esta función para una determinada variable, debe desmarcar la opción de accesibilidad para esa variable.
    Simulación de ejemplo
    Hasta ahora, creamos un bloque de datos global y declaramos algunas variables dentro.
    Ahora intentaremos ejecutar una simulación del programa y ver si podemos comprender mejor qué es un bloque de datos global.
    A continuación, se proporcionan dos simulaciones de PLC.
    Prueba de los valores iniciales de una variable
    Vea la siguiente animación que explica el valor inicial de una variable dentro de un bloque de datos global.

    Animación 1
    Explicación de la animación 1:
    Los valores iniciales de los parámetros de nivel del tanque son cero. Puede ver en el video que la pantalla de simulación los cambia. Cuando se reinicia el PLC, se apaga y se enciende nuevamente, verá que los valores se restablecerán a los valores iniciales, que son cero. Después de eso, los valores iniciales se cambiaron a 500, 32654 y -356 respectivamente, y cuando se reinicia el PLC, los valores se cambiaron a los nuevos valores iniciales. Observe que cuando cambiamos los valores iniciales, tuvimos que descargar nuestra lógica nuevamente al PLC; debe hacer eso cada vez que realice un cambio en su lógica. Probar la opción de retención de variables en la base de datos global
    Vea la siguiente animación que explica la opción de retención de una variable dentro de un bloque de datos global.

    Animación 2
    Explicación de la animación 2:
    En primer lugar, notará que la propiedad Retain de Tank2Level ahora está activa. En el video, puede ver que se están modificando los valores de los 3 tanques. Cuando se detiene el PLC y luego se reinicia, Tank1Level y Tank3Level se restablecen al valor inicial, que es 0, pero Tank2Level retiene su valor de -22938 Conclusión
    Se puede acceder a un bloque de datos global desde cualquier lugar y mediante cualquier bloque que exista en el programa del PLC. Puede declarar tantas variables como desee dentro de una base de datos global.
    La técnica recomendada es crear bloques de datos separados para las diferentes secciones de su lógica, para que sea muy fácil seguir su lógica. Por ejemplo, un bloque de datos separado para todas las variables que una HMI debe leer o escribir.

    xiangjinjiao
    En el artículo anterior, hablamos sobre bloques de datos y analizamos los dos tipos diferentes de bloques de datos, el bloque de datos global y las instancias de datos de los bloques de función FB.
    En este artículo, vamos a analizar qué se entiende por acceso a bloques de datos optimizado y acceso a bloques de datos estándar en Siemens Tia Portal.
    Contenido:
    ¿Qué son los bloques de datos estándar y optimizados? Ejemplo de programa simple. ¿Qué son las bases de datos estándar? ¿Qué es el offset? ¿Qué son las bases de datos optimizadas? Ventajas de utilizar bases de datos optimizadas. Conclusiones. ¿Qué es el acceso a bloques de datos estándar y optimizado?
    En primer lugar, estos no son nuevos tipos de bloques de datos; dijimos que solo tenemos dos tipos diferentes, la base de datos global y la base de datos de instancia. El acceso a bloques de datos optimizado es una característica del bloque de datos. Puede activar o desactivar esta característica desde las propiedades del bloque de datos que ha creado.
    La función de bloque de datos optimizado solo está disponible para los PLC S7-1200 y S7-1500, no para los S7-300 o S7-400
    La configuración estándar para los bloques de datos cuando se trabaja con PLC S7-1200 o S7-1500 es que estén optimizados; si desea un bloque de datos estándar, deberá configurarlo usted mismo.
    Entonces, ¿qué son los bloques optimizados y los bloques estándar? Para comprender la diferencia, crearemos un programa simple e intentaremos mostrar en qué se diferencia un bloque optimizado de un bloque estándar.
    Ejemplo de programa simple:
    En este ejemplo, no crearemos ninguna lógica de PLC ni codificaremos ninguna instrucción, solo crearemos 2 bloques de datos globales, DB1 se llamará OptimizedDB y DB2 se llamará StandardDB.
    Dentro de ambos bloques de datos, declararemos 4 variables de tipos de datos Bool, Int, Real y Word respectivamente. Vea la imagen 1.

    Imagen 1: crear dos bases de datos globales
    Lo primero que notará es que ambos bloques de datos son exactamente iguales, esto se debe a que, como dijimos, la configuración predeterminada al crear un bloque de datos es que se optimizará, por lo que debemos cambiar la configuración de DB2 para convertirlo en un bloque estándar, para ver si algo cambia.
    Lo hacemos desde las propiedades de ese DB2. Acceda a las propiedades de DB2 haciendo clic derecho en el bloque de datos y presione Propiedades. Vea la imagen 2.

    Imagen 2: cambiar DB2 al acceso estándar al bloque
    Una vez que desmarque los atributos de acceso optimizado al bloque que ve en la imagen 2 y presione Aceptar, aparecerá un mensaje de advertencia, vea la imagen 3.

    Imagen 3: ventana emergente para cambiar el acceso al bloque
    Una vez que presione Aceptar, su DB2 se habrá convertido al acceso estándar al bloque. Vea la imagen 4 para ver qué diferencia generó.

    Imagen 4: DB2 ahora es un bloque estándar
    Lo que podemos ver directamente es que DB1 y DB2 ya no son lo mismo. La opción de acceso al bloque estándar representada en DB2 tiene una columna adicional llamada desplazamiento.
    Delante de cada variable en el cuadro de desplazamiento, hay un … escrito, esto cambiará una vez que compile su programa.
    Vamos a compilar y ver qué sucede, vea la imagen 5.

    Imagen 5: compile su programa para recargar el desplazamiento
    Ahora, el desplazamiento se completa con, como puede ver, 0.0, 2.0, 4.0 y 8.0 respectivamente.
    Entonces, ¿qué es ese desplazamiento? ¿Qué significa? Llegaremos a eso más tarde, pero ahora, vamos a crear otro bloque ESTÁNDAR y declarar las mismas 4 variables, pero esta vez cambiaremos el orden de los tipos de datos de las variables, vea la imagen 6.

    Imagen 6: crear otro bloque estándar DB3
    En la última imagen, puede ver que el desplazamiento de DB2 y DB3 es diferente. ¿Por qué los valores de desplazamiento son diferentes cuando cambiamos el orden de los tipos de datos? Son los mismos tipos de datos, pero en un orden diferente.
    Creemos otra base de datos estándar y declaremos las mismas 4 variables, pero nuevamente en un orden diferente. Compile su código de PLC y ahora compare el desplazamiento de las 3 bases de datos. Vea la imagen 7.

    Imagen 7: tres bases de datos diferentes con tres desplazamientos diferentes
    Ocurrió lo mismo nuevamente.
    ¿Qué son las bases de datos estándar? ¿Cuál es el desplazamiento?
    Los bloques de datos con acceso estándar tienen una estructura fija. Cuando declaras una variable dentro de una base de datos estándar, a esta variable se le asignará una dirección fija dentro de esta base de datos.
    La dirección de esta variable se muestra en la columna “Offset”. Por lo tanto, lo que estábamos viendo dentro del offset en las imágenes anteriores era la dirección asignada para cada variable.
    Como la estructura de las bases de datos estándar es fija, solo puedes trabajar dentro de las bases de datos con capacidad de memoria fija, es decir, un área de 16 bits o 2 bytes. Esta es la razón por la que las mismas variables se direccionan de manera diferente cuando cambiamos el orden de declaración. Para obtener más explicaciones, consulta la imagen 8.

    Imagen 8: representación simple de DB2
    La imagen 8 muestra una representación simple del bloque de datos estándar DB2. Como dijimos antes, una base de datos estándar tiene bloques de memoria fijos de 16 bits, por lo que, cuando declaramos que la Variable_1 es del tipo de datos BOOL, esta Variable ocupará los 16 bits completos aunque solo necesite 1 bit de memoria. Por eso, el resto del área se ve marcada en rojo porque no se usa pero ya no se puede usar. Por lo tanto, es una memoria perdida.
    Con la Variable_2, el tipo de datos INT necesita 16 bits, por lo que está utilizando 2 bytes completos. Lo mismo con la Variable_4, que es del tipo de datos WORD.
    Con la Variable_3, ocupamos 4 bytes porque es del tipo de datos REAL. Por eso, el desplazamiento para DB2 es 0.0, 2.0, 4.0 y 8.0 respectivamente.
    El mismo concepto se ejecuta para DB3 y DB4. Pero debido a que el orden de los tipos de datos de las variables es diferente, la representación de la memoria será diferente y, por lo tanto, el desplazamiento será diferente. Vea las imágenes 9 y 10 para DB3 y DB4. Vea si puede comprender la representación en función de la explicación anterior.

    Imagen 9: representación de la memoria de DB3

    Imagen 10: representación de la memoria de DB4
    Por lo tanto, cuando trabaja con una base de datos estándar, debe tener cuidado al declarar sus variables, sabiendo que habrá una pérdida de memoria cada vez que defina una nueva variable BOOL.
    Si declara la nueva variable al final de su lista de base de datos, el desplazamiento se extenderá para incluir su nueva variable. Pero si declara la nueva variable entre su antigua o al comienzo de la base de datos, sucederá algo más. Vea la imagen 11.

    Imagen 11: Declaración de una nueva variable
    Lo primero que notará es que su desplazamiento ahora se perdió y debe compilar su código para restablecer el nuevo desplazamiento. Vea la imagen 12.

    Imagen 12: restablezca su desplazamiento recompilando su código
    ¿Observó cómo ha cambiado ahora el direccionamiento de las variables (OFFSET)?
    Por ejemplo, el desplazamiento de la etiqueta REAL era 2.0, pero después de agregar la nueva variable de prueba, el direccionamiento de la misma etiqueta REAL (OFFSET) ahora es 4.0, vea la imagen 13.

    Imagen 13: cambio de desplazamiento después de agregar la variable de prueba
    Entonces, al agregar una nueva variable, se cambió el direccionamiento de todas las variables antiguas. Eso significa que cualquier instrucción en su programa que necesite escribir o leer el valor de una determinada variable ahora buscará en la dirección asignada en la instrucción, pero ahora la dirección tiene datos diferentes a los esperados.
    En pocas palabras, toda su lógica ahora está desordenada. Eso generará muchos problemas. Sin mencionar que ahora tiene memoria extra perdida después de agregar la nueva variable. Vea la imagen 14.

    Imagen 14: agregar una instrucción MOVE
    Agreguemos una instrucción MOVE para mover un valor de 1 a la etiqueta Variable_2. Observe cómo la dirección de la salida MOVE es %DB2.DBW2.
    Ahora, agreguemos una nueva variable de tipo INT a DB2. Vea la imagen 15.

    Imagen 15: agregar una nueva variable INT
    Cuando agrega la nueva variable, se pierde el desplazamiento y el PLC ya no sabe dónde está el destino de OUT1 de la instrucción MOVE.
    Necesitamos compilar el programa para volver a cargar el nuevo desplazamiento. Vea la imagen 16.

    Imagen 16: nueva dirección de OUT1
    ¿Ve cómo la dirección de OUT1 ahora es diferente? Ahora es %DB2.DBW4 en lugar de %DB2.DBW2. Esta es una gran desventaja de usar bloques de datos estándar.
    ¿Qué son las bases de datos optimizadas?
    La diferencia entre los bloques de datos optimizados y los bloques de datos estándar es que las variables dentro de un bloque de datos optimizado no se asignan a una dirección fija, sino que se les da un nombre simbólico, además la estructura del bloque de datos no es fija como los bloques de datos estándar, por lo que no hay pérdida de memoria ni cambios en las direcciones al declarar nuevas etiquetas. Ver imagen 17.

    Imagen 17: Declaración de nueva etiqueta en bloques optimizados
    Por lo tanto, declarar nuevas etiquetas en bloques de datos optimizados no afectará al resto de las etiquetas, ya que se definen por nombres simbólicos en lugar de direcciones absolutas.
    Un bloque de datos optimizado no le permitirá usar direcciones cuando trabaje con las etiquetas definidas dentro de él. Consulte la imagen 18.

    Imagen 18: direccionamiento absoluto con bloques optimizados
    Como puede ver en la última imagen, no se permite el direccionamiento absoluto con un bloque de datos optimizado y solo se permiten nombres simbólicos. Consulte la imagen 19.

    Imagen 19: uso de nombres simbólicos con bases de datos optimizadas
    Ventajas de los bloques de datos con acceso optimizado
    Los bloques de datos con acceso optimizado no tienen una estructura definida fija. A los elementos de datos (etiquetas) solo se les asigna un nombre simbólico y no se utiliza ninguna dirección fija dentro del bloque.
    Los elementos se guardan automáticamente en el área de memoria disponible del bloque para que no haya espacios vacíos en la memoria. Esto permite un uso óptimo de la capacidad de memoria y evita la pérdida de memoria en comparación con las bases de datos estándar.
    Esto proporciona las siguientes ventajas:
    Puede crear bloques de datos con cualquier estructura sin prestar atención a la disposición física de las etiquetas individuales. El acceso rápido a los datos optimizados está siempre disponible porque el almacenamiento de datos está optimizado y gestionado por el sistema. No es posible que se produzcan errores de acceso, como por ejemplo con el direccionamiento indirecto o desde la HMI. Como ahora hay direcciones, solo nombres simbólicos únicos para cada etiqueta. Puede definir etiquetas individuales específicas como retentivas. En las bases de datos estándar, solo puede definir todo el bloque como retentivo. Conclusión
    Los bloques de datos optimizados tienen muchas ventajas en comparación con las bases de datos estándar. El uso de nombres simbólicos ayuda a evitar cualquier cambio de dirección de las etiquetas al agregar nuevas variables a su bloque.
    Con los bloques optimizados, no se pierde ningún área de memoria. Al contrario de lo que sucede cuando se utilizan bases de datos estándar.

    caixiaofeng
    En artículos anteriores, analizamos los diferentes tipos de bloques en SIEMENS TIA Portal; hablamos sobre bloques de función FB, funciones FC y bloques de datos DB.
    En este artículo, abordaremos otro tipo de bloque en los PLC de SIEMENS, estos son los bloques de organización, y en este artículo, analizaremos el bloque de organización más importante de todos, que es el bloque de organización principal u OB1.
    Contenido:
    ¿Qué son los bloques de organización? Diferentes tipos de OB. ¿Qué es OB1? Monitoreo del tiempo de ciclo. Ejemplo de programa simple. Conclusión. ¿Qué es un bloque de organización (OB)?
    Los bloques de organización, puedes pensar en ellos como funciones FC o bloques de función FB. Pero la diferencia es que no los llamas, el sistema operativo del PLC llama a estos bloques de organización, ya sea que el sistema operativo llame al OB cíclicamente como OB1 o que se llame cuando ocurre un determinado evento, de cualquier manera, el sistema operativo se encarga de ello. Solo necesitas crear el bloque y agregar la lógica que quieras dentro del bloque. A veces ni siquiera necesitas agregar ningún código dentro del OB, solo crear el OB en sí puede brindar muchos beneficios, que veremos cuando analicemos algunos de esos OB.
    Los bloques de organización son la interfaz entre el sistema operativo del PLC y el programa de usuario. Cualquier PLC tendrá dos programas diferentes, el programa de tiempo de ejecución que es el sistema operativo del PLC y el programa de usuario que es la lógica o el código que el programador del PLC escribirá para controlar un determinado proceso. Estos dos programas diferentes necesitan comunicarse entre sí, y los bloques de organización OB son la forma de hacerlo.
    Los bloques de organización OB se utilizan para realizar muchas tareas, algunas de las cuales se enumeran a continuación:
    Características de inicio del sistema de automatización Procesamiento cíclico del programa Ejecución del programa impulsada por interrupciones Manejo de errores. Diferentes tipos de bloques de organización
    Los bloques de organización son básicamente las herramientas del sistema operativo para realizar muchas tareas.
    Diferentes tareas requieren diferentes OB, y es por eso que tiene muchos OB diferentes dentro de un PLC, la cantidad de OB diferentes dependerá del tipo de PLC que esté utilizando, pero aquí se muestran algunos de los OB más comunes que puede encontrar en casi todos los PLC SIEMENS:
    OB 1 cíclico principal. OB de interrupciones de tiempo. OB de hora del día. OB de errores de software. OB de errores de hardware Hay muchos más bloques de organización disponibles para usar con su lógica. Vea la imagen 1.

    Imagen 1: diferentes bloques de organización disponibles en TIA Portal
    En este artículo, analizaremos el bloque de organización más importante de todos, que es el OB1 de interrupción cíclica principal.
    OB1 de interrupción cíclica principal
    El OB1 cíclico principal es el bloque de organización que se encarga de ejecutar cíclicamente su lógica por parte del PLC. Siempre que cree un nuevo proyecto y agregue un PLC, el OB1 principal se creará automáticamente por el software. Estos son los bloques mínimos necesarios para un código de PLC. Ver imagen 2.

    Imagen 2: el OB1 principal se crea automáticamente
    Dentro de este OB1 principal, puede escribir todo su programa de PLC si se trata de un proyecto pequeño. Si su proyecto es bastante grande, entonces probablemente tenga algunas funciones FC o bloques de función FB que necesita ejecutar. En ese caso, utilizará el OB1 principal para llamarlos.
    Por supuesto, no tiene que llamar a cada FC o FB mediante el OB1, pero si su OB1 no es el primer bloque de sus llamadas anidadas, entonces no se ejecutará. Ver imagen 3.

    Imagen 3: Llamada a sus bloques mediante el OB1
    La base esencial de su código de PLC es el comportamiento cíclico, lo que significa que necesita que su código se ejecute continuamente. Cuando se haya completado el procesamiento de su lógica, el sistema operativo comienza a procesarlo nuevamente. Esto se hace mediante el uso del OB1 principal, se coloca y se llama toda la lógica y el código dentro de este OB1 y el sistema operativo se asegurará de ejecutarlo continuamente.
    Debe saber que, incluso si no puede crear un bloque OB1, ya que se crea automáticamente al agregar un nuevo PLC, puede crear más de un bloque de interrupción cíclica.
    OB1 es una interrupción cíclica, que el sistema operativo llamará y ejecutará de manera automática y continua cualquier lógica que esté dentro. Sin embargo, para proyectos de PLC grandes donde tiene tantas funciones y bloques de funciones en su lógica de PLC, puede usar más de un OB de interrupción cíclica para estructurar mejor su código y hacerlo más fácil de leer y seguir.
    En ese caso, crearía otra interrupción cíclica, consulte la imagen 4.

    Imagen 4: Creación de más de un OB cíclico
    Cuando ha creado varios OB de ciclo de programa, estos se llaman uno después del otro en el orden de sus números de OB.
    El OB de ciclo de programa con el número de OB más bajo se llama primero. Véase la imagen 5.

    Imagen 5: ciclo de programa con más de un OB cíclico
    Una vez finalizado el programa cíclico, el sistema operativo actualiza las imágenes de proceso de la siguiente manera:
    Escribe los valores de la salida de la imagen de proceso en los módulos de salida. Lee las entradas en los módulos de entrada y las transfiere a la entrada de la imagen de proceso. Los dos pasos anteriores más la ejecución del programa del PLC se denominan ciclo de escaneo. Ver imagen 6.

    Imagen 6 – Ciclo de escaneo de un PLC Siemens
    Supervisión del tiempo de ciclo
    El tiempo de ciclo se refiere al tiempo de ejecución del programa cíclico, incluido el tiempo de ejecución de todas las partes del programa anidadas como FC, FB y OB de mayor prioridad. Si ha creado varios OB de ciclo de programa, cada OB de ciclo de programa contribuye al tiempo de ciclo.
    El sistema operativo supervisa si el tiempo de ciclo sigue siendo menor que el tiempo de ciclo máximo configurado. Si supera el tiempo de ciclo máximo, el PLC pasará al modo STOP o llamará al OB80 según su programación.
    Además de supervisar el tiempo de ciclo máximo, también es posible garantizar un tiempo de ciclo mínimo. Para ello, el sistema operativo retrasa el inicio de un nuevo ciclo hasta que se alcanza el tiempo de ciclo mínimo.
    Puede configurar el tiempo de ciclo mínimo y máximo en las propiedades de configuración de su PLC. Vea la imagen 7.

    Imagen 7: Configure el tiempo de ciclo mínimo y máximo
    Ejemplo de programa simple en PLC

    Imagen 8: Ejemplo de programa de PLC
    Para comprender mejor el ciclo del programa de PLC y la ejecución de OB1, creemos un programa simple. Este programa utilizará una instrucción de suma que acumulará un valor de 1 en un área de memoria cada 1 ciclo de escaneo. Vea la siguiente simulación.

    Como puede ver en la animación, la instrucción de suma se ejecuta muy rápido; así de rápido es el ciclo de escaneo. Dependerá de la potencia de su PLC. Pero principalmente el ciclo de escaneo está en el rango de milisegundos.
    Conclusión
    Los bloques de organización son la interfaz entre el sistema operativo del PLC y el programa de control. El sistema operativo ejecuta cíclicamente el OB cíclico principal 1. Ejecutará su lógica incluyéndola dentro de uno o más OB cíclicos. El tiempo de ciclo de escaneo es el tiempo que se utiliza para ejecutar su lógica 1 vez.

    caixiaofeng
    En artículos anteriores, analizamos qué es un bloque de organización y hablamos sobre la interrupción cíclica principal OB1 y la interrupción de hora del día OB10.
    En este artículo, continuaremos analizando los diferentes OB y, esta vez, hablaremos sobre el bloque de organización de interrupción de retardo de tiempo u OB20.
    Contenido:
    ¿Qué es OB20? ¿Cómo llamar a OB20? Parámetros de la instrucción SRT_DINT. Programa de ejemplo. Conclusión. ¿Qué es la interrupción de retardo de tiempo (OB20)?
    OB20 es un bloque de organización que es llamado y ejecutado por el sistema operativo, pero tenemos que decirle al sistema operativo cuándo llamar a este OB20.
    El sistema operativo obtiene la información del programa PLC del usuario para llamar a este OB20, esperará el tiempo de retardo configurado y luego llamará y ejecutará cualquier lógica que esté dentro del OB20.
    Creamos un bloque OB20 desde Agregar un nuevo bloque en el árbol del proyecto. Ver imagen 1.

    Imagen 1 – Crear un nuevo bloque OB20
    Ahora que he creado una interrupción de retardo de tiempo, ¿cuándo se ejecutará? ¿Y cómo configurar el retardo de tiempo de la ejecución del bloque?
    Nuevamente, OB20 es un bloque de organización, lo que significa que no llamas al bloque para que se ejecute, sino que le dices al sistema operativo cuándo puede llamarlo y ejecutar cualquier funcionalidad que esté escrita dentro.
    ¿Cómo decirle al sistema operativo que llame al OB20?
    Para decirle al sistema operativo que queremos llamar al OB20, usamos SRT_DINT o la interrupción de retardo de tiempo de inicio, ver imagen 2.

    Imagen 2 – Instrucción de retardo de tiempo de inicio
    Parámetros de la instrucción SRT_DINT
    Como ves en la última imagen, puedes usar la instrucción SRT_DINT para llamar al OB20. pero es necesario configurar algunos parámetros para que la instrucción funcione.
    EN: la instrucción no se ejecutará hasta que se presente una señal de flanco negativo en la entrada EN. Eso significa que debe asignar una condición del conjunto de condiciones para habilitar la señal y la instrucción solo funcionará cuando esta condición sea verdadera y luego falsa nuevamente.
    OB_NR: asigna el número de la interrupción de retardo que necesita llamar, en nuestro caso 20 ya que creamos OB20, pero podemos crear más de una interrupción de retardo y luego tendremos que llamar a cada una con una instrucción SRT_DINT separada.
    DTIME: ese es el tiempo de retardo que desea esperar antes de ejecutar el OB20, estableceremos este tiempo en 5 segundos para fines de simulación.
    SIGN: Identificador que aparece cuando se llama al OB de interrupción de retardo de tiempo en la información del evento de inicio del OB.
    Programa de PLC de ejemplo
    Para comprender mejor el OB20, crearemos una lógica simple para ver cómo se puede llamar y ejecutar un OB20. Construiremos este ejemplo de PLC sobre la lógica que creamos para el OB1 y el OB10 en artículos anteriores.
    Dentro del OB20 crearemos una lógica que cuente cuántos ciclos del OB1 se han llamado y ejecutado dentro del tiempo de retardo de 5 segundos que hemos configurado para el OB20. Ver imagen 3.

    Imagen 3: lógica dentro del OB20
    En la última imagen, puede ver que usamos la instrucción MOVE para enviar información sobre los recuentos de ciclos al inicio de la llamada al OB20 y después de que se haya ejecutado.
    Ver imagen 4 para el resto de la lógica.

    Imagen 4: calcular cuántos ciclos se cuentan en 5 segundos
    Después de eso, restaremos los dos valores de los recuentos de ciclos para obtener cuántos ciclos se han ejecutado dentro del retraso de cinco segundos.
    Ahora que hemos creado la lógica que queremos, ¿cómo podemos llamar al OB20? Como se explicó anteriormente, tenemos que utilizar la instrucción SRT_DINT. Utilizaremos esta instrucción dentro del OB10 que hemos configurado antes para que se ejecute cada minuto. Eso significa que el OB20 también se llamará y ejecutará cada minuto, pero con un tiempo de retardo de 5 segundos.
    En el artículo anterior, creamos una lógica que indica cuántas veces se llama y ejecuta el OB1, también creamos otra lógica que llamará al OB10 cada minuto.
    En este ejemplo, utilizaremos la llamada del OB10 para llamar al OB20. Ver imagen 5.

    Imagen 5: Llamada al OB20 a través del OB10
    Dijimos antes que el SRT_DINT necesita una señal de flanco negativo en el EN para que comience la llamada. Es por eso que utilizamos la señal TimeOfDayInterruptEnabled que sabemos que será verdadera cuando se ejecute el OB10 y luego volverá a ser falsa, lo que nos dará la señal de flanco que necesitamos.
    Ahora que toda la lógica del PLC está completa, compilemos y ejecutemos una nueva simulación. Vea la siguiente simulación de nuestro proyecto.

    En la animación, al principio, los valores de los recuentos de ciclos son cero, pero cuando se llama al OB10 y la lógica TimeOfDayInterruptEnabled es verdadera, esperará 5 segundos y luego los valores de recuento se actualizarán con los recuentos de ciclos.
    Conclusión
    OB20 es un bloque de organización llamado y ejecutado por el sistema operativo. Podemos indicarle al sistema operativo que llame al OB20 con la instrucción SRT_DINT.

    caixiaofeng
    En artículos anteriores comenzamos a analizar los diferentes bloques de organización de los PLC TIA Portal, hablamos sobre qué son los OB y analizamos algunos de los OB como OB1 (cíclica principal), OB10 y OB20 (interrupciones de retardo de tiempo del día y de retardo de tiempo, respectivamente). En este artículo, hablaremos sobre el OB100 o el bloque de organización de arranque en Siemens Tia Portal.
    Contenido:
    ¿Qué es el OB100? ¿Por qué se necesita el OB100? Notas importantes durante el arranque. Ejemplo de programa simple. ¿Qué es el bloque de organización de arranque (OB100)?
    El OB100 o el OB de arranque es un bloque de organización que el sistema operativo llama y ejecuta una vez al arrancar el PLC, es decir, una vez cada transición del modo STOP al modo RUN.
    El OB1 de ciclo principal no se llamará ni se ejecutará hasta que se ejecuten todas las funciones de arranque dentro del OB100.
    Puede tener más de un OB de inicio en la lógica de su PLC; si esto sucede, el sistema operativo los llamará y ejecutará todos uno por uno, comenzando desde un número de OB más bajo hasta un número más alto. Es decir, si tiene OB100 y OB123, se llamará y ejecutará primero el OB100 y luego el OB123.
    Después de ejecutar el OB100, el sistema operativo leerá los módulos de entrada en la PII e iniciará el programa de ciclo principal OB1.
    ¿Por qué necesita el OB100?
    El OB100 se utiliza para muchas tareas que puede querer o necesitar realizar antes de iniciar su lógica cíclica, por estos motivos:
    Inicializar variables. Reiniciar módulos del sistema. Recalibrar sensores/actuadores. Verificar alarmas y condiciones de seguridad antes de iniciar su proceso. Incluso si no ha creado un OB de inicio para su lógica, el sistema operativo aún tiene muchas tareas que necesita ejecutar antes de iniciar su lógica principal, algunas de estas tareas son:
    Borrar memorias no retentivas Borrar el PIQ Llamar y ejecutar OB de inicio, si los hay. Actualizar PII Habilitar salidas después de cambiar al modo RUN. ¿Observó que la última tarea de una rutina de inicio es habilitar las salidas? Es por eso que el primer paso para ejecutar el programa de ciclo principal OB1 es escribir el PIQ en el módulo de salida.
    Notas importantes durante el inicio
    Tenga en cuenta los siguientes puntos con respecto al modo “STARTUP”:
    Las salidas en los módulos están deshabilitadas. La imagen del proceso se inicializa. La imagen del proceso no se actualiza. Para leer el estado actual de las entradas durante el “STARTUP”, puede acceder a las entradas a través del acceso directo de E/S. Para inicializar las salidas durante el STARTUP, los valores se pueden escribir a través de la imagen del proceso o a través del acceso directo de E/S. Los valores se emiten en las salidas durante la transición al modo “RUN”. Se inicializan las memorias de bits no retentivas, los temporizadores y los contadores. Se inicializan las etiquetas no retentivas en los bloques de datos. Durante el inicio, todavía no se ejecuta ningún monitoreo del tiempo de ciclo. Ejemplo de programa simple
    En este ejemplo, agregaremos un OB100 de inicio a nuestra lógica de PLC y veremos cuántas veces se ejecuta el OB100. Vea la imagen 1 para agregar un nuevo OB100.

    Imagen 1: Agregar un OB100
    Como puede ver en la última imagen, agrega bloques de organización de inicio de la misma manera que agregamos una función de un bloque de función.
    Dentro del OB100 que acabamos de crear, agregaremos una instrucción ADD simple para acumular cuántas veces se llama y ejecuta el OB100. Vea la imagen 2.

    Imagen 2: Acumule los tiempos de ejecución de OB100
    Ahora, compile y ejecute su programa y vea qué sucede. Vea la siguiente animación para una simulación del programa PLC.

    Animación 1
    Como puede ver en la animación anterior, el contador de ciclos OB100 es 1 y no cambia cuando el modo PLC pasa de STOP a RUN.
    Bueno, sí cambia, pero no ve este cambio. Cada vez que el PLC pasa al modo STOP y luego al modo RUN nuevamente, el contador se restablecerá a cero y luego a 1 nuevamente después de que se ejecute el OB100. También puede ver que el contador de ciclos OB1 principal cambia y, cuando el PLC se detiene y luego se ejecuta nuevamente, el contador de ciclos OB1 comenzará a acumularse nuevamente.
    Para ver el cambio en el contador de inicio, necesitamos conservar el valor de la memoria de etiquetas. Consulte la imagen 3.

    Imagen 3: Retener la memoria de la etiqueta OB100CycleCounter
    Después de retener la etiqueta OB100CycleCounter, ahora ejecute la simulación del PLC nuevamente y vea qué sucede. Consulte la animación de simulación 2.

    Animación 2
    Ahora puede ver en la animación anterior que el contador de inicio aumenta cada vez que detengo el PLC y luego lo reinicio. Como ahora se retiene la memoria de la etiqueta, el valor no se restablecerá a cero y es por eso que ve que el valor del OB100CycleCounter se acumula.
    Ahora, necesito agregar una funcionalidad adicional a mi lógica de inicio del PLC, que es saber cuándo fue el último inicio del PLC. Lo lograremos a través de una lógica simple donde leo la hora local del PLC al inicio y muevo la fecha y la hora a un área de memoria determinada. Ver imagen 4.

    Imagen 4: Lectura de la hora local al iniciar
    Después de agregar la lógica, compile y ejecute la simulación nuevamente. Vea la animación de simulación de PLC 3.

    Animación 3
    Puede ver en la animación anterior que cada vez que se inicia el PLC, la fecha y la hora de inicio se registrarán en el área de memoria que asignamos. Así que ahora tengo la información sobre cuántas veces se inició mi PLC y cuándo fue la última vez que se inició.
    Conclusión
    Los OB de inicio son muy importantes si desea evaluar alguna funcionalidad antes de poder ejecutar su proceso cíclico. Puede usar OB de inicio para inicializar parámetros, calibrar sensores e incluso verificar las condiciones de seguridad antes de permitir que se ejecute su proceso.

Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...