Jump to content

caixiaofeng

Staff group
  • Content Count

    147
  • Joined

  • Last visited

Everything posted by caixiaofeng

  1. Este es el programa PLC para circuito lógico condicional. El siguiente ejemplo se basa en la lógica de escalera utilizando un controlador lógico programable. Lógica de control condicional PLC En la industria o las plantas, existen muchos sistemas de caja de cambios que se utilizan para diferentes máquinas/motores. Para que los motores de la caja de cambios funcionen sin problemas, es necesario lubricarlos cada vez, ya que un buen trabajo de mantenimiento puede prolongar la vida útil de la caja de cambios. Pero el problema es que los operadores a menudo cometen errores durante el funcionamiento de la máquina porque en cada mecanismo de motor de la caja de cambios, primero debemos iniciar la lubricación y luego debe iniciarse el mecanismo principal de la caja de cambios. Por lo tanto, debemos implementar una lógica para asegurarnos de que las cosas se controlen correctamente desde un sistema PLC. Diagrama de problemas Nota: Para facilitar las discusiones, en este ejemplo no se consideran los enclavamientos locales/remotos ni ningún otro enclavamiento permisivo. Solución del problema Aquí resolvemos este problema utilizando un ejemplo de lógica condicional simple. En este ejemplo, hay un motor de caja de cambios y necesitamos proporcionar lubricación antes de ponerlo en marcha. Entonces, para la lubricación, tenemos un motor de lubricación (también llamado bomba de aceite o bomba de aceite lubricante auxiliar) y proporcionará aceite lubricante al motor principal o al motor de la caja de cambios. Además, proporcionaremos un sistema de interbloqueo, de modo que el operador no pueda poner en marcha/operar el motor principal directamente sin utilizar la lubricación adecuada, de lo contrario, el motor principal puede sobrecalentarse y dañarse después de algunas ejecuciones sin el cuidado adecuado. El operador tiene que encender primero la bomba de aceite y solo entonces podrá operar el motor principal. Al utilizar esta lógica, podemos cuidar el motor de la caja de cambios durante un funcionamiento prolongado con la lubricación adecuada. Los operadores ponen en marcha/detienen la bomba de aceite utilizando los botones pulsadores de INICIO y DETENCIÓN de la bomba de aceite. Tanto la bomba de aceite como el motor principal tienen botones pulsadores de INICIO y DETENCIÓN individuales separados, como se muestra en el diagrama anterior. Lista de entradas del PLC Bomba de aceite PB de arranque: I0.0 Bomba de aceite PB de parada: I0.1 Motor principal PB de arranque: I0.2 Motor principal PB de parada: I0.3 Lista de salidas del PLC Motor de la bomba de aceite: Q0.0 Motor principal: Q0.1 Diagrama de escalera del PLC para circuito de control condicional Descripción de la lógica de escalera En esta aplicación, utilizamos el PLC Siemens S7-1200 y el software TIA Portal para la programación. También podemos diseñar esta lógica con un circuito de relé. Este circuito también se conoce como circuito de control condicional porque la segunda secuencia depende de la primera condición. Escribiremos la lógica para la bomba de aceite en la red 1. Aquí tomaremos el contacto NO del PB de arranque de la bomba de aceite (I0.0) y también tenemos que considerar un contacto NO de la bobina de la bomba de aceite (Q.0) para el comando de arranque de enclavamiento. Coloque el contacto NC del PB de parada de la bomba de aceite (I0.1) en serie para desbloquear el circuito presionando el PB de PARADA de la bomba de aceite (I0.1), de modo que el operador pueda detener la bomba de aceite (Q0.0). Ahora escriba la lógica para el motor principal en la Red 2. Aquí tomaremos el contacto NA del PB de ARRANQUE del motor principal (I0.2) y también tomaremos un contacto NA más de la bobina del motor principal para bloquear el motor principal (Q0.1). Coloque el contacto NC del PB de parada del motor principal (I0.3) en serie para desbloquear el circuito presionando el PB de PARADA del motor principal (I0.3), de modo que el operador pueda detener el motor principal (Q0.1). Coloque el contacto NA de la bomba de aceite (Q0.0) en serie después del PB de ARRANQUE del motor principal (I0.2) para el enclavamiento. De modo que el operador tenga que poner en marcha la bomba de aceite (Q0.0) y luego solo él pueda ARRANCAR el motor principal (Q0.1). Casos de prueba en tiempo de ejecución Nota: La lógica de PLC anterior brinda una idea básica sobre la aplicación del programa de PLC para la lógica de control condicional. La lógica es limitada y no es una aplicación completa.
  2. Diseñe un programa de lógica de escalera de PLC eficiente que muestre la entrada analógica (I:1.0) a una velocidad de 2 Hz y envíe el valor promedio a la salida analógica O:1.0 una vez cada dos segundos. Lógica de escalera de muestreo de entrada analógica de PLC
  3. Supongamos que hay dieciséis estaciones a lo largo de un sistema transportador. Las estaciones están numeradas del 0 al 15, siendo la estación cero la primera (es decir, el punto donde las piezas ingresan al transportador). Las piezas deben avanzar a lo largo del transportador a una velocidad de una estación cada cuatro segundos. Una pieza puede o no estar en una estación determinada en cualquier momento. Se utiliza un sensor de entrada I:0.0/0 para detectar una pieza que ingresa al transportador. En la estación 5, se verifican las piezas en busca de defectos y se activa un sensor de entrada I:0.0/1 si la pieza está defectuosa. En la estación 10, se deben retirar todas las piezas defectuosas del transportador activando la salida O:0.0/0. Escriba un programa de lógica de escalera eficiente para este proceso. Programa de lógica de escalera para transportador PLC
  4. Un controlador lógico programable (PLC) Allen-Bradley SLC500 utiliza un convertidor analógico a digital de 16 bits (en su modelo 1746-NI4) en una tarjeta de entrada analógica para convertir señales de 4 a 20 mA en valores numéricos digitales que van desde 3277 (a 4 mA) hasta 16384 (a 20 mA). Sin embargo, estos números sin procesar de la tarjeta analógica del PLC deben escalarse matemáticamente dentro del PLC para representar unidades de medida del mundo real, en este caso de 0 a 700 GPM de flujo. Escalado de entrada analógica del PLC Formule una ecuación de escalado para programar en el PLC de modo que 4 mA de corriente se registren como 0 GPM y 20 mA de corriente se registren como 700 GPM. Ya tenemos los valores numéricos sin procesar del circuito convertidor analógico a digital (ADC) de la tarjeta analógica para 4 mA y 20 mA: 3277 y 16384, respectivamente. Estos valores definen el dominio de nuestro gráfico lineal: Calculamos y sustituimos el valor de la pendiente (m) para esta ecuación, utilizando la elevación total sobre el recorrido de la función lineal: Este tipo de cálculo de escala es tan común en las aplicaciones de PLC que Allen-Bradley ha proporcionado una instrucción SCL (“escala”) especial solo para este propósito. En lugar de “pendiente” (m) e “intersección” (b), la instrucción solicita al programador humano que ingrese los valores de “velocidad” y “desplazamiento”, respectivamente. Además, la tasa en la instrucción SCL de Allen-Bradley se expresa como el numerador de una fracción donde el denominador se fija en 10000, lo que permite especificar valores de pendiente fraccionarios (menores que uno) utilizando números enteros. Aparte de estos detalles, el concepto es exactamente el mismo. Expresar nuestra pendiente de 700/13107 como una fracción con 10000 como denominador es una simple cuestión de resolver el numerador utilizando la multiplicación cruzada y la división: Por lo tanto, la instrucción SCL se configuraría de la siguiente manera
  5. caixiaofeng

    Instrucciones matemáticas de PLC

    La norma IEC 61131-3 especifica varias instrucciones de escalera dedicadas a realizar cálculos aritméticos. Algunas de ellas se muestran aquí: Instrucciones matemáticas de PLC Al igual que con las instrucciones de comparación de datos, cada una de estas instrucciones matemáticas debe habilitarse mediante una señal "activada" en la entrada de habilitación (EN). Los valores de entrada y salida están vinculados a cada instrucción matemática mediante el nombre de etiqueta. A continuación se muestra un ejemplo que muestra el uso de dichas instrucciones, convirtiendo una medición de temperatura en unidades de grados Fahrenheit a unidades de grados Celsius. En este caso particular, el programa ingresa una medición de temperatura de 138 grados F y calcula la temperatura equivalente de 58,89 grados 😄 así como una variable dedicada (X) utilizada para almacenar el cálculo intermedio entre las "casillas" de resta y división. Aunque no se especifica en la norma IEC 61131-3, muchos controladores lógicos programables admiten instrucciones matemáticas de diagrama de escalera que permiten la entrada directa de ecuaciones arbitrarias. La programación Logix5000 de Rockwell (Allen-Bradley), por ejemplo, tiene la función “Compute” (CPT), que permite calcular cualquier expresión tipeada en una sola instrucción en lugar de utilizar varias instrucciones matemáticas dedicadas como “Add”, “Subtract”, etc. Las instrucciones matemáticas de propósito general acortan drásticamente la longitud de un programa de escalera en comparación con el uso de instrucciones matemáticas dedicadas para cualquier aplicación que requiera cálculos no triviales. Por ejemplo, el mismo programa de conversión de temperatura de Fahrenheit a Celsius implementado en la programación Logix5000 solo requiere una sola instrucción matemática y ninguna declaración de variables intermedias:
  6. Control de temperatura mediante PLC: en un recipiente hay tres calentadores que se utilizan para controlar la temperatura del recipiente. Programación de control de temperatura mediante PLC Utilizamos tres termostatos para medir la temperatura de cada calentador. También utilizamos otro termostato para el apagado de seguridad en caso de mal funcionamiento o emergencia o para evitar temperaturas excesivas. Todos estos calentadores tienen diferentes puntos de ajuste o diferentes rangos de temperatura donde se pueden encender los calentadores según corresponda (la siguiente tabla muestra los rangos de temperatura). Un sistema de control de temperatura consta de cuatro termostatos. El sistema opera tres unidades de calefacción. Los termostatos (TS1/TS2/TS3/TS4) están configurados a 55 °C, 60 °C, 65 °C y 70 °C. Por debajo de 55 °C de temperatura, tres calentadores (H1, H2, H3) deben estar en estado ENCENDIDO Entre 55 °C y 60 °C, dos calentadores (H2, H3) deben estar en estado ENCENDIDO. Entre 60 °C y 65 °C, un calentador (H3) debe estar en estado ENCENDIDO. Por encima de 70 °C, todos los calentadores deben estar en estado APAGADO, hay un apagado de seguridad (Relé CR1) en caso de que algún calentador esté funcionando por error. Un interruptor maestro enciende y apaga el sistema. Solución PLC Hay cuatro termostatos; suponga que están en estado NC cuando no se alcanza el punto de ajuste. Suponga que hay un relé de control (CR1) que funciona como apagado de seguridad. Interruptor maestro: el interruptor de inicio es NO y el interruptor de parada es Tipo NC. La siguiente tabla muestra los rangos de temperatura en los que se indicará el estado de los termostatos (TS1, TS2, TS3, TS4) según el valor de temperatura. También el estado de los calentadores (H1, H2, H3) en los que dichos calentadores estarán ENCENDIDOS o APAGADOS según el valor de temperatura. Lógica de escalera del PLC Operación de lógica de escalera Primer peldaño: Tiene un botón de INICIO (contacto NA predeterminado) y un botón de DETENER (contacto NC predeterminado). Se utiliza un relé CR1 para controlar los calentadores según el estado de los termostatos. Se conecta un termostato TS4 entre DETENER y el relé; si se activa TS4 (es decir, el contacto TS4 cambia de NC a NO), todos los calentadores estarán APAGADOS. Se utiliza un contacto NA del relé CR1 en el botón de INICIO para bloquear o mantener el comando de INICIO. Segundo peldaño: Se utiliza un contacto NA del relé CR1 para controlar los calentadores (H1, H2, H3) con el estado de los termostatos (TS1, TS2, TS3). Después de dar el comando de INICIO, este contacto NA se convierte en contacto NC. Si la temperatura es inferior a 55 °C, TS1, TS2 y TS3 estarán en estado cerrado, por lo que todos los calentadores estarán ENCENDIDOS. Si la temperatura está entre 55 y 60 °C, TS1 estará abierto, por lo que el calentador H1 estará APAGADO. Entonces, si la temperatura está entre 60 y 65 °C, TS2 también estará abierto, por lo que el calentador H2 estará APAGADO. Si la temperatura está entre 65 y 70 °C, TS3 también estará abierto, por lo que el calentador H3 estará APAGADO. Hay un apagado de seguridad que se utiliza para evitar cualquier mal funcionamiento de los termostatos o para evitar temperaturas excesivas. Si la temperatura supera los 70 °C, el TS4 activará y desactivará el relé, por lo que todos los calentadores se apagarán. Nota: Aquí, los calentadores H1, H2, H3 son relés o contactores que se energizan. Por lo tanto, un contacto NA de estos relés está conectado a los circuitos de alimentación del calentador eléctrico (MCC). Estos circuitos de alimentación eléctrica se controlarán según estas señales y, en consecuencia, los calentadores estarán ENCENDIDOS o APAGADOS.
  7. 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.
  8. 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.
  9. In einem früheren Artikel haben wir besprochen, was ein Funktionsblock (FB) ist, wie er in einem SPS-Programm funktioniert und wie man ihn erstellt und verwendet. In diesem Artikel sprechen wir über Datenblockinstanzen verschiedener Funktionsblocktypen im Siemens Tia Portal und wann welcher Typ verwendet wird. Inhalt: Was ist ein Funktionsblock (FB)? Verschiedene Optionen für Dateninstanzen. Einzelinstanz. Parameterinstanz. Mehrfachinstanz. Was ist ein Funktionsblock? Ein Funktionsblock oder FB ist einfach ein Block, der Codelogik enthält. Sie verwenden diesen FB, um durch die darin geschriebenen Codeteile bestimmte Funktionen zu erreichen. Wenn Sie einen Funktionsblock in Ihren Code aufrufen, werden Sie aufgefordert, einen Datenblock (auch Dateninstanz genannt) zuzuweisen, der diesem FB zugeordnet werden soll, um die Werte der FB-Parameter zu speichern. Nicht alle Parameter innerhalb eines FB werden in der Dateninstanz gespeichert, aber darauf kommen wir später zurück. Beim Aufrufen eines Funktionsblocks haben Sie 3 verschiedene Optionen, um diesem Funktionsaufruf eine Datenblockinstanz zuzuordnen. Diese verschiedenen Optionen hängen davon ab, wo Sie Ihren FB aufrufen. Kurz gesagt: Ein Funktionsblock-FB ist im Grunde ein Funktions-FC mit einem dedizierten Datenblock-DB. Dieser Datenblock wird zum Speichern der Werte der Funktionsblockparameter verwendet. Verschiedene Optionen für Dateninstanzen Wir haben 3 verschiedene Optionen für eine Dateninstanz eines Funktionsblocks, und zwar: Einzelinstanz. Parameterinstanz. Mehrfachinstanz. Die drei verschiedenen Aufrufdateninstanzen stammen aus den 3 verschiedenen Aufrufmethoden: Sie können einen Funktionsblock-FB innerhalb des Haupt-OB1 aufrufen, wodurch Sie die folgenden Optionen haben: Einzelinstanz. Sie können den Funktionsblock FB innerhalb einer Funktion FC aufrufen, wodurch Sie zwei Optionen haben: Einzelinstanz Parameterinstanz Sie können den Funktionsblock innerhalb eines anderen Funktionsblocks aufrufen, wodurch Sie die drei verfügbaren Optionen zum Erstellen einer Dateninstanz haben: Einzelinstanz Parameterinstanz Mehrere Instanzen Einzelne Dateninstanz Beginnen wir zunächst mit der Erstellung eines Funktionsblocks FB. Wie bereits erwähnt, erstellen wir einen Funktionsblock, indem wir auf „Neuen Block hinzufügen“ klicken und den gewünschten Blocktyp auswählen. Siehe Abbildung 1. Abbildung 1 – Erstellen eines Funktionsblocks FB Rufen wir nun den wiederverwendbaren FB auf, den wir in unserem Haupt-OB1 erstellt haben. Siehe Abbildung 2. Abbildung 2 – Aufrufen des FB innerhalb des Haupt-OB1 Wie Sie im vorherigen Bild sehen, werden Sie beim Aufrufen eines FB innerhalb des Haupt-OB1 aufgefordert, eine Dateninstanz zuzuweisen, die diesem FB-Aufruf zugeordnet werden soll. In diesem Fall gibt es nur eine Option, nämlich die Einzelinstanz. Nach Auswahl der Einzelinstanzoption wird ein Datenblock erstellt und mit dem FB-Aufruf verknüpft. Siehe Abbildung 3. Abbildung 3 – Einzelinstanz erstellt Die erstellte Einzelinstanz wird verwendet, um die Werte einiger FB-Parameter zu speichern. Wie die Eingänge, Ausgänge, In Out und statischen Parameter. Andere Parameter des FB werden nicht gespeichert, wie Temperatur und Konstanten. Siehe Abbildungen 4 und 5. Abbildung 4 – Daten werden in der Dateninstanz gespeichert Abbildung 5 – Daten werden vom FB in der Dateninstanz gespeichert. Erstellen wir nun eine einfache Logik innerhalb des FB, um die Dateninstanzen besser zu verstehen. Diese Logik fügt einer statischen Variable einen konstanten Wert von 15 hinzu und verschiebt das Ergebnis dann zum Ausgang. Siehe Bild 6. Bild 6 – Erstellen Sie eine einfache Logik Gehen Sie nun zurück zum Haupt-OB1 und sehen Sie sich an, wie Ihr FB-Aufruf jetzt aussieht. Siehe Bild 7. Bild 7 – Aktualisieren Sie den FB-Aufruf nach jeder Änderung Jede Änderung, die Sie an der Logik innerhalb des FB vornehmen, führt dazu, dass der Funktionsblockaufruf aktualisiert werden muss, damit die vorgenommenen Änderungen angewendet werden können. Sie können den Blockaufruf aktualisieren, indem Sie mit der rechten Maustaste auf den FB-Aufruf klicken und die Option „Blockaufruf aktualisieren“ drücken oder indem Sie Ihren SPS-Code neu kompilieren. Siehe Bild 8. Bild 8 – Aktualisieren des FB-Aufrufs Nach der Aktualisierung des Blockaufrufs werden die im FB-Code vorgenommenen Änderungen angewendet und im Blockaufruf verwendet. Wie Sie in Bild 9 sehen. Der FB erwartet nun ein Eingangssignal vom Typ bool und gibt einen Ausgang vom Typ int aus. Bild 9 – Eingänge und Ausgänge sind nun mit dem FB-Aufruf verknüpft Lassen Sie uns unseren Code simulieren und sehen, wie sich die SPS verhält. Sehen Sie sich die nächste Animation an, die eine einfache Simulation der bisherigen SPS-Logik zeigt. Wie Sie in der Animation sehen, wird die Funktion immer dann ausgeführt, wenn das Startsignal TRUE ist, und der Ausgang ändert sich weiter. Und sobald das Startsignal nicht mehr verfügbar ist, bleibt der Ausgang auf dem zuletzt aufgezeichneten Wert. Die Verwendung der Dateninstanz besteht hier darin, dass die Werte der statischen Variablen und der Ausgangsvariablen in der einzelnen Instanz gespeichert werden, sodass die Funktion bei erneutem Startsignal mit den zuletzt aufgezeichneten Werten fortgesetzt wird. Sehr wichtiger Hinweis Sie sollten niemals dieselbe einzelne Instanz für zwei verschiedene Aufrufe eines FBs verwenden. Siehe die nächste Animation. Wie Sie in der Animation sehen, haben wir zwei verschiedene FB-Aufrufe, aber beide Aufrufe sind mit derselben einzelnen Instanz verknüpft, weshalb sich der Output2-Wert mit Output1 änderte, selbst wenn das Start2-Signal FALSE war. Wie zu erwarten, wird die Änderung der Dateninstanz des 1. Aufrufs auch im 2. Aufruf beeinflusst, da sie denselben Speicherblock haben. Siehe Abbildung 10. Abbildung 10 – Verwenden Sie niemals dieselbe Dateninstanz mit verschiedenen FB-Aufrufen Wenn Sie dieselbe Dateninstanz mit verschiedenen FB-Aufrufen verwendet haben, ist Ihr Funktionsblock nicht mehr wiederverwendbar. Auch wenn die Ein-/Ausgabeparameter für jeden einzelnen FB-Aufruf unterschiedlich sind. Wie Sie im letzten Video (Animation) gesehen haben, hatten beide Aufrufe dieselben Ergebnisse, obwohl der 2. Aufruf nicht einmal ein Aktivierungseingangssignal hat. Ein weiterer sehr wichtiger Hinweis Wir haben bereits erwähnt, dass Sie, wenn Sie Ihren FB von einem übergeordneten FC aus aufrufen, zwei Optionen für die zugehörige Dateninstanz haben: die Einzelinstanz und die Parameterinstanz. Siehe Abbildung 11. Abbildung 11 – Verwenden einer Einzelinstanz mit einem von einem FC aus aufgerufenen FB Wenn dies passiert und Sie einen FB innerhalb eines FC aufrufen, sollten Sie für Ihre FBs niemals eine Einzelinstanz verwenden. Um zu erfahren, warum das so ist, siehe Abbildung 12 Abbildung 12 – Mehrmaliges Aufrufen des übergeordneten FC Wie Sie in Abbildung 12 sehen, werden Sie nicht aufgefordert, einen Datenblock zuzuweisen, wenn Sie den übergeordneten FC in Ihrer Logik mehr als einmal aufrufen, da FCs keinen benötigen. Sie wissen jedoch, dass sich innerhalb des FC ein aufgerufener FB befindet, diesem FB ist eine Einzelinstanz zugeordnet. Die 3 FC-Aufrufe haben jetzt also dieselbe Dateninstanz für den FB-Aufruf. Ihre Funktion FC ist also nicht mehr wiederverwendbar. Was tun? Wenn Sie einen FB innerhalb eines FC aufrufen müssen, ist die beste Option die Verwendung der Parameterinstanz. Parameterinstanz Wie bereits erwähnt, sollten Sie, wenn Sie einen FB innerhalb eines FC aufrufen, nicht die einzelne Instanz wählen, sondern die Parameterinstanz ist für Ihre Wiederverwendbarkeit besser. Eine Parameterinstanz speichert die Dateninstanz des aufgerufenen FB im In-Out-Bereich der FC-Blockschnittstelle. So können Sie für jeden FC-Aufruf eine neue Dateninstanz eingeben. Siehe Bilder 13 und 14. Bild 13 – Zuweisen einer Parameterinstanz beim Aufrufen eines FB innerhalb eines FC Bild 14 – Jeder FC-Aufruf erfordert eine neue Dateninstanz Wie Sie im vorherigen Bild sehen, wird jedes Mal, wenn Sie den FC innerhalb Ihres Programms aufrufen, eine Dateninstanz für den wiederverwendbaren FB innerhalb des FC angefordert. Auf diese Weise müssen Sie die Dateninstanz jedoch selbst erstellen. Siehe Bild 15. Bild 15 – Erstellen einer neuen Dateninstanz Um eine neue Dateninstanz zu erstellen, gehen Sie genauso vor wie beim Erstellen eines FC oder eines FB, wählen dieses Mal jedoch die DB-Option. Und stellen Sie sicher, dass Sie den DB-Typ so auswählen, dass er mit dem des aufgerufenen FB übereinstimmt. Jetzt kann Ihr FC beliebig oft wiederverwendet werden, Sie müssen lediglich für jeden Aufruf eine Instanz erstellen. Siehe Abbildung 16. Abbildung 16 – Weisen Sie den DB dem FC-Aufruf zu Multiinstanzdatenbank Eine Multiinstanzdatenbank bedeutet einfach, dass der DB des aufgerufenen FB im DB des aufrufenden FBs höherer Ebene gespeichert wird. Diese Option ist nur verfügbar, wenn Sie einen FB von einem anderen FB aus aufrufen. Lassen Sie uns einen weiteren FB erstellen, um ihn als FB höherer Ebene zu verwenden. Rufen Sie diesen HigherLevelFB nach dem Erstellen vom Haupt-OB1 aus auf. Natürlich ist die einzige Aufrufoption eine einzelne Instanz, wie zuvor gezeigt. Siehe Abbildung 17. Abbildung 17 – Rufen Sie den HigherLevelFB vom Haupt-OB1 aus auf Rufen Sie nun den ReusableFB vom HigherLevelFB aus auf. Und wählen Sie die Option Multiinstanz. Siehe Abbildung 18. Abbildung 18 – Mehrfachinstanz-DB zuweisen Wenn Sie die Option Mehrfachinstanz wählen, wird die erstellte DB in den statischen Parametern des aufrufenden FB gespeichert. Siehe Abbildung 19. Abbildung 19 – Instanzen werden in statischen Parametern gespeichert Sie können den wiederverwendbaren FB viele Male aufrufen, bei jedem Aufruf wird die Mehrfachinstanz im statischen Parameter gespeichert. Siehe Abbildung 20. Abbildung 20 – Wiederverwendbaren FB viele Male aufrufen Wie Sie sehen, wird die Dateninstanz des FB auf niedrigerer Ebene in der Dateninstanz des FB auf höherer Ebene gespeichert. Dies ist am besten für eine bessere Programmstruktur und eine leicht lesbare Logik. Fazit Wenn Sie Funktionsblöcke in Ihrem Code erstellen, müssen Sie jedem FB-Aufruf, den Sie in Ihrer Logik vornehmen, einen Datenblock zuordnen. Dieser Datenblock oder auch Dateninstanz genannt, hat je nach Art des Blocks, der Ihren FB aufruft, unterschiedliche Optionen. Seien Sie bei der Auswahl des Dateninstanztyps vorsichtig, da einige Optionen für Ihren Fall möglicherweise nicht geeignet sind, wie wir zuvor gezeigt haben. Und manchmal kann dies zu Problemen in Ihrer Logik führen und Ihre Funktion kann nicht mehr wiederverwendet werden. Die Verwendung mehrerer Instanzen kann Ihnen dabei helfen, Ihre Programmstruktur besser zu organisieren, da alle aufgerufenen FBs ihre DBs im aufrufenden Haupt-FB speichern.
  10. In diesem Artikel setzen wir unsere Diskussion über verschiedene Arten von Organisationsblöcken in der Siemens-SPS fort. Dieses Mal sprechen wir über den OB121 oder den Programmierfehler-Interrupt im Tia-Portal. Inhalt: Was sind Programmierfehler-Interrupts OB121? Beispiele für Programmierfehler. Was passiert, wenn ein Programmierfehler erkannt wird? Simulation eines Programmierfehlers im TIA-Portal. Wie kann der OB121 gegen Programmierfehler nützlich sein? Schlussfolgerungen. Was sind Programmierfehler-Interrupts (OB121)? OB121 ist ein Organisationsblock, der vom Betriebssystem der SPS aufgerufen wird, wenn beim Ausführen Ihrer Logik ein Programmierfehler auftritt. Beachten Sie, dass wir nicht von einem Programmierfehler sprechen, der vom Compiler abgefangen wird, wenn versucht wird, Ihre Logik in Ihre SPS herunterzuladen. Siehe Bild 1. Bild 1 – Einige Programmierfehler werden vom Compiler erkannt Wie Sie im letzten Bild sehen, liegt in meiner SPS-Logik ein Programmierfehler vor; einige Operanden fehlen in der Eingabe und Ausgabe von Netzwerk 1. Dieser Fehler wurde jedoch vom Compiler erkannt, bevor die Logik überhaupt in die SPS heruntergeladen wurde. Der Fehler in Bild 1 ist nicht der Programmierfehlertyp, der den Aufruf von OB121 auslösen kann. Fehler in Ihrem SPS-Programm, die vom Compiler nicht gefunden werden können, aber dennoch Probleme in Ihrer Logik verursachen können, während die SPS läuft, sind die Programmierfehler, die wir meinen. Diese Fehler lösen einen Aufruf von OB121 durch das Betriebssystem aus. Beispiele für Programmierfehler Hier sind einige Beispiele für Fehler in Ihrer SPS-Logik, die Programmierfehler verursachen können: Maximale Verschachtelungstiefe von Blockaufrufen überschritten. Sie haben einen NULL-Zeiger verwendet, um einen Operanden anzusprechen. Unbekannte Anweisung. Die adressierte Zeichenfolge weist falsche Längeninformationen auf. Bereichslängenfehler beim Lesen. Bereichslängenfehler beim Schreiben. Fehler in Timer-Nr. Zugriff auf einen nicht geladenen DB; die DB-Nummer befindet sich im zulässigen Bereich. DB existiert nicht. Diese und viele weitere Fehler können Programmierfehler in Ihrer SPS verursachen. Im Hilfebereich des TIA-Portals können Sie nachlesen, welche anderen Gründe zu Programmierfehlern in der SPS führen können. Was passiert, wenn ein Programmierfehler erkannt wird? Wenn Ihre SPS einen Programmierfehler erkennt, kann eines von drei Ereignissen eintreten. Ihre SPS zeigt einen Fehler an und wechselt in den STOP-Modus. Ihre SPS zeigt einen Fehler an, führt Ihre Logik jedoch weiter aus. Ihre SPS zeigt einen Fehler an und versucht dann, diesen Fehler zu beheben. Diese drei Ereignisse hängen im Wesentlichen von Ihrer SPS-Programmierung ab. Das heißt, Ihr Code entscheidet, wie sich das Betriebssystem bei Erkennung eines Programmierfehlers verhält. Simulation eines Programmierfehlers im TIA-Portal Um das Verhalten der SPS besser zu verstehen, erstellen wir ein einfaches Programm, in dem wir einen Programmierfehler verursachen, und sehen dann, was passiert. Siehe Bild 2. Bild 2 – Einfache Programmlogik Die von uns erstellte Logik ist sehr einfach. Wenn InitiateProgError aktiviert wurde, wird der Wert 126 in den Bereich DB52.DBW16 verschoben. Beachten Sie, dass wir DB52 nicht erstellt haben. Dies wird also unser Programmierfehler sein. Beachten Sie, dass dieser Fehler beim Kompilieren oder Herunterladen in die SPS nicht erkannt wird. Siehe Bilder 3 und 4. Bild 3 – Vom Compiler nicht erkannter Fehler Sehen Sie, wie der Block erfolgreich kompiliert wurde, obwohl ein Programmierfehler auftrat. Bild 4 – Block in SPS heruntergeladen Wieder wurde der Block mit einem Programmierfehler in die SPS heruntergeladen. Lassen Sie uns nun unser SPS-Programm simulieren und sehen, was passiert. Die Simulation des SPS-Codes finden Sie in Animation 1. Animation 1 Wie Sie in der obigen Animation sehen, blinkt die PLC ERROR-LED einige Sekunden lang rot, dann wechselt die PLC in den STOP-Modus. Gehen Sie zur PLC-Onlinediagnose, um zu sehen, was passiert ist. Siehe Bild 5. Bild 5 – Online- und Diagnose der PLC Was Sie in der Animation gesehen haben, ist genau das, was Sie im vorherigen Bild sehen. Es kann in 3 Schritten beschrieben werden: Die PLC erkennt den Programmierfehler, nämlich dass OB52 nicht geladen ist. Das Betriebssystem löst den Aufruf des OB121 aus, aber in unserer Logik wurde kein OB121 erstellt. Wenn die PLC feststellt, dass in unserer Logik kein OB121 erstellt wurde, initiiert das Betriebssystem eine STOP-Anforderung. Und die PLC wechselt in den STOP-Modus. Wie kann der OB121 gegen Programmierfehler hilfreich sein? Fügen wir unserem SPS-Code einen OB121 hinzu und sehen wir, wie sich die Dinge ändern. Siehe Bild 6. Bild 6 – Hinzufügen eines OB121 Nachdem wir den OB121 erstellt und in unsere SPS-Logik eingefügt haben, sehen wir, was in der Simulation passiert. Denken Sie daran, dass wir keine SPS-Logik in den OB121 geschrieben haben. Siehe Animation 2. Animation 2 Wie Sie in Animation 2 sehen, blinkt die PLC ERROR-LED rot, wenn InitiateProgError ausgelöst wird, aber die SPS läuft weiter. Das bedeutet, dass die SPS nicht in den STOP-Modus wechselt. Sehen wir uns die Online-Diagnose an, um zu sehen, was tatsächlich passiert ist. Siehe Bild 7. Bild 7 – Fehler hat nicht zum Stoppen der SPS geführt Sie sehen auf dem Bild, dass die SPS den Fehler erkennt, aber nicht in den STOP-Modus wechselt. Sie überspringt diesen Fehler, setzt den Zyklus fort und beginnt wieder von vorne. Wenn der Fehler erneut auftritt, erkennt sie ihn erneut und gibt einen Alarm in der Diagnose aus. Überspringen Sie den Fehler und fahren Sie fort. Das bedeutet, dass die SPS in jedem Scan-Zyklus denselben Alarm ausgibt. Und deshalb sehen Sie auf dem Bild, dass das Ereignis immer wieder ausgelöst wird und der Alarm sich in jedem Scan-Zyklus wiederholt. Ein leerer OB121 bietet Ihnen also den Vorteil, dass die SPS weiterläuft und Ihr Prozess weiterläuft. Aber wir können noch mehr tun: Wir können versuchen, diesen Fehler zu erkennen und zu beseitigen. Außerdem können wir versuchen, die Art des erkannten Programmierfehlers anzuzeigen. Fehlertyp bestimmen Der OB121 verfügt über eine interne Fehler-ID, die wir verwenden können, um den Fehlertyp anzuzeigen, beispielsweise als Alarm auf einem HMI. Innerhalb des OB121 erstellen wir eine einfache MOVE-Anweisung, mit der wir den Fault_ID-Eingang des OB121 in einen definierten Speicherbereich innerhalb unseres globalen DBs verschieben. Siehe Abbildung 8. Abbildung 8 – Fehlertyp identifizieren Wie Sie im vorherigen Bild sehen, wird die Fault_ID bei Auftreten des Programmierfehlers in die Data.ProgErrorID verschoben. Siehe Abbildung 9. Abbildung 9 – Programmierfehler Fault_ID Sie können sehen, dass die Fehler-ID 3A ist. Wenn Sie die TIA Portal-Hilfe überprüfen, können Sie die Bedeutung dieses Fehlers herausfinden. 3A: Zugriff auf einen DB, der nicht geladen ist; die DB-Nummer befindet sich im zulässigen Bereich. Den Fehler abfangen Das bedeutet einfach, dass Sie versuchen, den SPS-Programmierfehler zu beheben, nachdem Sie die Ursache ermittelt haben. Dies hängt hauptsächlich davon ab, was der Fehler ist und wie Sie ihn behandeln möchten. Wir werden einfach eine Lösung für den Fehler simulieren, um zu sehen, wie sich die SPS verhält. Die eigentliche Lösung für den von uns verursachten Fehler besteht darin, einfach den DB52 zu erstellen oder einen bereits erstellten Datenblock zu verwenden. Aber der Simulation halber werden wir einfach einen einfachen Kontakt hinzufügen, der sich öffnet, wenn der Programmierfehler auftritt, um diesen Fehler abzufangen. Siehe Bilder 10 und 11. Bild 10 – Den Fehler abfangen Immer wenn OB121 aufgerufen wird, wird der CatchError gesetzt. Bild 11 – Fehler beheben Wenn OB121 aufgerufen wird, wird CatchError gesetzt und verwendet, um den Programmierfehler in Netzwerk 1 abzufangen. Die SPS-Simulation finden Sie in Animation 3. Animation 3 Aus der obigen Animation können Sie erkennen, dass die SPS beim Auslösen von InitiateProgError kurzzeitig in den Fehlermodus gerät, der dann gelöscht wird und die SPS sich dauerhaft im RUN-Modus befindet. Fazit Einfach ein leeres OB121 in Ihrer Logik stellt sicher, dass Ihre SPS nicht in den STOP-Modus wechselt, wenn in Ihrem Code ein Programmierfehler vorliegt. Sie können das OB121 später auch verwenden, um den Fehler zu identifizieren und zu beheben.
  11. Sequentielle Logik ist bei der SPS-Programmierung sehr nützlich. Sie hilft dabei, Dinge einfach zu ordnen. In vielen Anwendungen, die SPS verwenden, ist die eine oder andere sequentielle Logik geschrieben. Zwei der am häufigsten verwendeten Sequenzen sind LIFO und FIFO. Sie haben die Namen in der Elektronik sicher schon einmal gehört, wenn sie zum Stapeln und Sequenzieren verwendet werden. Diese Arten sequentieller Logik sind auch in SPS verfügbar. In diesem Artikel lernen wir die LIFO- und FIFO-Sequenzkonzepte in der SPS-Programmierung kennen. FIFO-Sequenz in SPS FIFO steht für First In First Out. Die Bedeutung dieser Sequenz lässt sich leicht anhand ihres Namens verstehen. Was zuerst kommt, geht zuerst raus. Sie geben ein Element ein; und wenn Sie ein Element anfordern, wird Ihnen das erste gegeben, das eingegeben wird. Dieselbe Logik funktioniert in der SPS-Programmierung für die FIFO-Sequenz. Bei der Programmierung wird ein Logikblock mit dem Namen FIFO zugewiesen. Er kann je nach SPS bis zu 16 Wörter oder mehr speichern. Es enthält drei Arten von Eingängen – Zurücksetzen, Speichern und Abrufen. Bei einer steigenden Flanke des Rücksetzeingangs wird die Sequenz zurückgesetzt und geleert. Bei einer steigenden Flanke des Speichereingangs wird das am Eingang vorhandene Wort im Block gespeichert. Der Block merkt sich die Sequenz der empfangenen Wörter. Bei einer steigenden Flanke des Abrufeingangs wird das zuerst eingegebene Wort in das vom SPS-Programmierer konfigurierte Zielwort gegeben. Es hat zwei Ausgänge – leer und voll. Wenn das leere Bit wahr ist, zeigt es an, dass der Speicher leer ist, und wenn der volle Eingang wahr ist, zeigt es an, dass der Speicher voll ist. LIFO-Sequenz in der SPS LIFO steht für Last In First Out. Die Bedeutung dieser Sequenz lässt sich leicht anhand ihres Namens verstehen. Das, was zuletzt kommt, wird zuerst ausgegeben. Sie geben ein Element ein; und wenn Sie ein Element anfordern, wird Ihnen das zuletzt eingegebene Element gegeben. Dieselbe Logik funktioniert in der SPS-Programmierung für die LIFO-Sequenz. Beim Programmieren wird ein Logikblock namens LIFO zugewiesen. Er kann je nach SPS bis zu 16 Wörter oder mehr speichern. Er enthält drei Arten von Eingängen – Zurücksetzen, Speichern und Abrufen. Bei einer steigenden Flanke des Rücksetzeingangs wird die Sequenz zurückgesetzt und geleert. Bei einer steigenden Flanke des Speichereingangs wird das am Eingang vorhandene Wort im Block gespeichert. Der Block merkt sich die Sequenz der empfangenen Wörter. Bei einer steigenden Flanke des Abrufeingangs wird das zuletzt eingegebene Wort in das vom Programmierer konfigurierte Zielwort eingegeben. Er hat zwei Ausgänge – leer und voll. Wenn das leere Bit wahr ist, zeigt dies an, dass der Speicher leer ist, und wenn der volle Eingang wahr ist, zeigt dies an, dass der Speicher voll ist. Diese Sequenzen sind ziemlich einfach zu handhaben. Der Programmierer muss darauf achten, dass den Speicherblöcken nicht gleichzeitig Eingaben gegeben werden. Der Block führt in diesem Fall dann keine Aktion aus. Es muss immer nur eine Eingabe gegeben werden. Es ist auch zu beachten, dass verschiedene SPSen bei Warm- oder Kaltstart unterschiedlich funktionieren. Im Allgemeinen wird beispielsweise bei einem Kaltstart der SPS das Register zurückgesetzt, und bei einem Warmstart bleibt das Register unverändert. Dies ist von Hersteller zu Hersteller unterschiedlich.
  12. In diesem Artikel zeigen wir, wie Sie mit der Siemens Tia-Portalsoftware eine Programmsicherung von der physischen SPS auf Ihren Computer erstellen. Inhalt: Warum sollten Sie eine Sicherung erstellen? Wie erstellt man eine Sicherung von einer SPS? Hinweise zur Sicherung von einer SPS Fazit Warum sollten Sie eine Sicherung erstellen? Stellen Sie sich vor, Sie hätten Ihre Software versehentlich vom PC gelöscht, während Sie daran gearbeitet haben. Oder Sie müssen eine bestimmte Prozesssoftware aktualisieren, die seit 10 Jahren läuft, und Sie haben den Softwarecode nicht mehr. Anstatt den gesamten Code von Grund auf neu zu schreiben, ist es einfacher, einfach den aktuellen Code hochzuladen und Ihre Änderungen daran vorzunehmen. In diesem Artikel zeigen wir, wie Sie die in der SPS enthaltene Software ganz einfach auf Ihren PC hochladen. Wie erstellt man eine Sicherung von einer SPS? TIA Portal mit den neuen Siemens-Steuerungen S7-1200 und S7-1500 bietet beim Erstellen einer Sicherung mehr Vorteile als mit älteren Steuerungen wie S7-300 oder S7-400. Bei älteren Steuerungen erstellen Sie eine Sicherung, aber es werden keine Kommentare oder Adressdetails angezeigt. Die Software funktioniert einwandfrei, ist aber schwer zu lesen oder zu verstehen. Mit den neueren SPS-Steuerungen können Sie jetzt sowohl den Code als auch alle zugehörigen Adressierungen und Kommentare hochladen, was das Lesen des Codes sehr einfach macht und Aktualisierungen ermöglicht. Schritte zum Hochladen der Software von der SPS Erstellen Sie ein neues Projekt, aber anders als wir es normalerweise tun, fügen wir kein neues Gerät hinzu, sondern drücken auf Online und wählen „Gerät als neue Station hochladen“. Siehe Bild 1. Bild 1 – Laden Sie das Gerät als neue Station hoch. Dadurch laden Sie das Gerät in das PG/PC-Fenster hoch. Siehe Bild 2. Bild 2 – Fenster „Gerät hochladen“. Sie müssen den Typ der PG/PC-Schnittstelle wie im letzten Bild gezeigt auswählen und dann auf „Suche starten“ drücken. Wenn die Suche abgeschlossen ist, werden Ihnen alle Geräte angezeigt, die von Ihrer Software gefunden wurden. Beachten Sie, dass Sie nicht nur SPSen finden müssen; Sie können auch HMIs, IO-Module und alle anderen Kommunikationsmodule finden, die die Software erkennen kann. Siehe Bild 3. Bild 3 – Scan abgeschlossen und Geräte gefunden. Nach Abschluss des Scans können Sie die SPS auswählen, die Sie hochladen möchten, und dann auf „Hochladen“ drücken. Dadurch wird die Software von der SPS auf Ihr TIA-Portal hochgeladen. Siehe Bild 4. Bild 4 – Upload von der SPS ist abgeschlossen. Wie Sie auf dem vorherigen Bild sehen können, wird das gesamte auf der SPS gespeicherte Projekt in Ihr TIA-Portal hochgeladen. Sogar mit allen Kommentaren und Adressen. Siehe Bild 5. Bild 5 – SPS-Projekt wird hochgeladen Wie Sie sehen können, wurde das gesamte SPS-Projekt von der SPS auf Ihren PC hochgeladen. Mit allen Blöcken, Kommentaren und Projektkonfigurationen. Hinweise zur Sicherung von der SPS Wenn Ihr PC und die SPS unterschiedliche IP-Adressen haben, fordert Sie das TIA-Portal auf, Ihrem PC eine neue IP zuzuweisen, die der Adressierung der SPS entspricht. Dies wird sogar automatisch durchgeführt, wenn Sie es zulassen. Wenn das Projekt auf der SPS kennwortgeschützt ist, werden Sie aufgefordert, dieses Kennwort einzugeben, bevor der Upload-Schritt beginnt. Wenn Sie nicht das richtige Kennwort angeben können, wird der Upload nicht gestartet. Stellen Sie sicher, dass Sie dieses Kennwort kennen, falls vorhanden. Manchmal findet das TIA Portal Ihre SPS, kann das Projekt aber aus verschiedenen Gründen nicht hochladen. Beispielsweise ist das Projekt auf der SPS in einer anderen TIA Portal-Version geschrieben als der, die Sie gerade verwenden. In jedem Fall wird Ihnen der Grund für den fehlgeschlagenen Upload angezeigt und Sie können den Upload durchführen, sobald diese Gründe behoben sind. Fazit Sie können das Projekt auf der SPS mit dem TIA Portal auf Ihren PC hochladen. Wenn es sich bei der SPS um eine S7-1200 oder S7-1500 handelt, wird das Projekt mit allen zugehörigen Adressen und Kommentaren hochgeladen. Wenn es einen Grund gibt, der das TIA Portal daran hindert, das Projekt hochzuladen, wird Ihnen dieser Grund vom TIA Portal angezeigt und Sie können den Upload durchführen, sobald Sie das Problem behoben haben.
  13. Wenn Sie von SPS-Programmierung hören, sind die fünf darin verwendeten Sprachen: Kontaktplanlogik, strukturierter Text, Funktionsblockdiagramm, sequentielles Flussdiagramm und Anweisungsliste. Jede Sprache kann, wenn sie einmal verstanden ist, zum Schreiben eines Anwendungscodes und zum ordnungsgemäßen Betreiben einer Maschine verwendet werden. Beste SPS-Programmiersprache Abbildung – Beispiel für Kontaktplanlogik Aber häufig sind neue SPS-Programmierer verwirrt, was sie zum Schreiben eines Programms verwenden sollen. Wenn sie die Vor- und Nachteile einer Sprache verstehen, können sie leicht bestimmen, was sie zum Schreiben eines SPS-Programms verwenden sollen. Daher ist es notwendig, den Unterschied zwischen ihnen zu verstehen und zu bestimmen, welche Sprache zum Codieren verwendet werden soll. In diesem Beitrag werden wir sehen, welche Sprache am besten für die SPS-Programmierung geeignet ist. Kontaktplanlogik Kontaktplanlogik ist die grundlegendste Art von SPS-Programmiersprache. Sie kann leicht mit einem elektrischen Schaltplan korreliert werden. Traditionell wurde elektrische Steuerverdrahtung verwendet, um Ausgänge entsprechend den bereitgestellten Eingängen zu betreiben. Die aus Kontakten und Spulen bestehende Leiterlogikzeichnung wurde in der Leiterlogikprogrammierung auf die gleiche Weise implementiert. Sie haben eine Reihe von Sprossen, wobei jede Sprosse Kontakte und Spulen hat. Wenn die Sprosse eingeschaltet wird, arbeitet die Spule, je nach Typ, entsprechend. Sie können so viele Sprossen wie nötig in ein Programm schreiben und der Code wird entsprechend ausgeführt. Wenn Sie es sehen, ähnelt es einer Leiter, und daher kommt der Name Leiterlogik. Zum Verständnis sehen Sie sich das folgende Diagramm an. Sie können sehen, wie einfach es ist, durchzukommen. In der obigen Abbildung werden Eingänge, die mit einem Schaltgerät im Relaislogikdiagramm verbunden sind, als Kontakte im Leiterdiagramm angezeigt. Die M1-Ausgangsspule im Relaislogikdiagramm wird im Leiterdiagramm mit einem Ausgangsspulensymbol dargestellt. Die Adressnummern, die über jedem Kontakt-/Spulensymbol im Leiterdiagramm erscheinen, sind Verweise auf die Positionen der externen Eingangs-/Ausgangsverbindungen zum Logikcontroller. Sie können also zwischen zwei Endstromschienen die erforderlichen Elemente platzieren und die Logik darin schreiben. Die Sprossen werden zyklisch von oben nach unten ausgeführt. Strukturierter Text Strukturierter Text kann als lokale Sprache auf IT-Ebene bezeichnet werden. Die Ähnlichkeit der strukturierten Textsprache ist den Codes sehr ähnlich, die wir in einer Softwaresprache schreiben. Wie der Name schon sagt, ist strukturierter Text eine Reihe von Texten, die in Zuweisungsform geschrieben sind. Anweisungen müssen mit Semikolons abgeschlossen werden. Wenn eine Zuweisung ausgeführt wird, wird der aktuelle Wert einer Variablen mit einem oder mehreren Elementen durch das Ergebnis der Auswertung des Ausdrucks ersetzt. Eine Zuweisung besteht aus einer Variablenspezifikation auf der linken Seite, gefolgt vom Zuweisungsoperator: =, gefolgt vom auszuwertenden Ausdruck. Beide Variablen (linke und rechte Seite des Zuweisungsoperators) müssen denselben Datentyp haben. Zum Verständnis siehe das folgende Diagramm. Wie Sie sehen, gibt es verschiedene Arten von Operationen und Bedingungen. Im obigen Beispiel wird eine if-else-Anweisung verwendet, um einen Ausdruck auszuwerten. Wenn die Bedingung erfüllt ist, wird die auf der Ausgangsseite zugewiesene Variable eingeschaltet, und wenn die Bedingung falsch ist, wird die Variable ausgeschaltet. Die ST-Sprache eignet sich daher am besten für mathematische Berechnungen, da sie schlicht und leicht verständlich aussieht. Sequentielles Flussdiagramm Ein sequentielles Flussdiagramm ist das fortschrittlichste Werkzeug, wenn Sie komplexe Programme repetitiv oder sequentiell schreiben möchten. Wie der Name schon sagt, können Sie mit der SFC-Sprache ein Programm über ein Flussdiagramm schreiben. Es funktioniert in Schritten, Verzweigungen, Links, Sprüngen und Übergängen. Ein SFC-Abschnitt ist eine „Statusmaschine“, d. h. der Status wird durch den aktiven Schritt erstellt und die Übergänge geben das Schalt-/Änderungsverhalten weiter. Schritte und Übergänge sind durch Richtungslinks miteinander verbunden. Zwei Schritte können nie direkt verbunden werden und müssen immer durch einen Übergang getrennt sein. Die aktiven Signalstatusprozesse finden entlang der Richtungslinks statt und werden durch das Schalten eines Übergangs ausgelöst. Zum Verständnis siehe das folgende Bild. Die Richtung des Kettenprozesses folgt den Richtungsverbindungen und verläuft vom Ende des vorhergehenden Schritts zum Anfang des nächsten Schritts. Zweige werden von links nach rechts verarbeitet. Jeder Schritt hat null oder mehr Aktionen. Für jeden Übergang ist eine Übergangsbedingung erforderlich. Der letzte Übergang in der Kette ist immer mit einem anderen Schritt in der Kette verbunden (über eine grafische Verbindung oder ein Sprungsymbol), um eine geschlossene Schleife zu erstellen. Schrittketten werden daher zyklisch verarbeitet. Funktionsblockdiagramm Die Sprache Funktionsblockdiagramm (FBD), die im Allgemeinen in Mikroprozessoren verwendet wird, ist in einem ähnlichen Format auch in der SPS-Programmierung verfügbar. Es handelt sich um ein Diagramm von miteinander verbundenen Blöcken, wobei jeder Block seinen Eingang und Ausgang hat. Die Fehlersuche in der FBD-Sprache ist sehr einfach, da Sie buchstäblich den gesamten Code in einer einzigen Ansicht anzeigen können, anstatt nach oben und unten zu scrollen. Dies hilft bei der schnellen Wartung und erhöht auch die Effizienz der Programmierung. Zum Verständnis siehe das folgende Bild. Wie Sie sehen, können Sie verschiedene Arten von Funktionen und Blöcken einfach durch Linien verbinden, was zeigt, wie ein Fluss in der Logik abläuft. Sie müssen nur Eingangs- und Ausgangspins zuweisen, die Linien zwischen diesen Pins verbinden und Ihr Code funktioniert entsprechend. Befehlsliste Ein in der Befehlslistensprache geschriebenes Programm besteht aus einer Reihe von Befehlen, die vom Logikcontroller nacheinander ausgeführt werden. Jeder Befehl wird durch eine einzelne Programmzeile dargestellt und besteht aus den folgenden Komponenten – Zeilennummer, aktueller Wert, der nur online angezeigt werden kann, Befehlsoperator und Operand. Zum Verständnis siehe das folgende Bild. Sie können sehen, dass jede Zeile nur eine einzelne Operation ausführt. Anstelle der in der Kontaktplanlogik verwendeten Kontakte und Spulen gibt es entsprechende Ladeanweisungen und Setz-/Rücksetzanweisungen. Es handelt sich um eine Mischung aus Kontaktplanlogik und strukturiertem Text. Aus diesem Grund wird es auch als Assemblersprache bezeichnet. Wenn Sie in der SPS online gehen, können Sie in diesem Fenster animierte Werte sehen. Wenn wir uns diese fünf Sprachen ansehen, sehen wir, dass die am häufigsten von Programmierern verwendeten Sprachen Kontaktplanlogik, strukturierter Text und Funktionsblockdiagramm sind. Jede Sprache hat ihre Vor- und Nachteile. Aber diese drei sind einfach zu verstehen, zu interpretieren und zu entwerfen. Dies hilft dem Programmierer dabei, die Logik richtig zu entwerfen. Das bedeutet nicht, dass die verbleibenden zwei Sprachen nicht verwendet werden. Es hängt von den Fähigkeiten des Programmierers ab, was er zur Implementierung der Codierung verwenden muss. Daher ist es schwierig, die beste Sprache zu nennen; aber ja, auch von diesen drei wird die Kontaktplanlogik am häufigsten verwendet.
  14. Bei dieser SPS-Programmierung sortieren und verteilen wir Kartons nach Höhe in die dafür vorgesehenen Lagerbehälter mithilfe von Sensoren und Förderbändern. Dieses SPS-Programm verteilt die angegebene Anzahl von Teilen entsprechend ihrer Größe. SPS sortiert Kartons nach Höhe Die folgende Simulation zeigt das Funktionsprinzip der SPS-Logik zum Sortieren von Kartons nach Höhe. Hier haben wir 3 verschiedene Kartongrößen, nämlich kleine, mittlere und große. Für jede Kartongröße gibt es drei Lagerbehälter. Es gibt drei Schieber und drei Förderbänder. Jede Kartongröße hat einen Schieber und ein Förderband. Der Roboter legt die Kartons nach dem Zufallsprinzip auf das Förderband. Die Sensoren werden verwendet, um die Größe des Kartons zu erkennen. Die Förderbänder werden mithilfe der Sensoren gestartet und gestoppt, wenn der jeweilige Karton dort ankommt. Der jeweilige Schieber wird aktiviert und bewegt den jeweiligen Karton in die dafür vorgesehenen Lagerbehälter. SPS-E/A-Liste Die folgende Tabelle listet die Ein- und Ausgänge dieses Systems auf. Typ Geräte-Nr. Gerätename Betrieb Eingang X0 Startpunkt EIN, wenn sich der Roboter am Startpunkt befindet. Eingang X1 Oberer, höher EIN, wenn das Teil erkannt wird. Eingang X2 Mitte EIN, wenn das Teil erkannt wird. Eingang X3 Unten EIN, wenn das Teil erkannt wird. Eingang X4 Sensor EIN, wenn das Teil auf der Steigung erkannt wird. Eingang X5 Sensor EIN, wenn das Teil auf der Steigung erkannt wird. Eingang X6 Sensor EIN, wenn das Teil auf der Steigung erkannt wird. Eingang X7 Sensor EIN, wenn das Teil am rechten Ende erkannt wird. Eingang X10 Teilerkennung EIN, wenn das Teil vor dem Schieber erkannt wird. Eingang X11 Teilerkennung EIN, wenn das Teil vor dem Schieber erkannt wird. Eingang X12 Teilerkennung EIN, wenn das Teil vor dem Schieber erkannt wird. Ausgang Y0 Versorgungskommando Wenn Y0 eingeschaltet ist, wird ein Teil geliefert. Ein Prozesszyklus beginnt: Das Holzteil wiederholt sich in der Reihenfolge M, S, L, M, M, L, S, S, L, L. Ausgabe Y1 Förderband vorwärts Das Förderband bewegt sich vorwärts, wenn Y1 eingeschaltet ist. Ausgabe Y2 Förderband vorwärts Das Förderband bewegt sich vorwärts, wenn Y2 eingeschaltet ist. Ausgabe Y3 Förderband vorwärts Das Förderband bewegt sich vorwärts, wenn Y3 eingeschaltet ist. Ausgabe Y4 Förderband vorwärts Das Förderband bewegt sich vorwärts, wenn Y4 eingeschaltet ist. Ausgabe Y5 Pusher Fährt aus, wenn Y5 eingeschaltet ist, und ein, wenn Y5 ausgeschaltet ist. Der Schieber kann nicht mitten im Hub angehalten werden. Ausgabe Y6 Pusher Schieber Fährt aus, wenn Y6 eingeschaltet ist, und ein, wenn Y6 ausgeschaltet ist. Der Schieber kann in der Mitte des Hubs nicht angehalten werden. Ausgabe Y7 Pusher Fährt aus, wenn Y7 eingeschaltet ist, und ein, wenn Y7 ausgeschaltet ist. Der Schieber kann nicht mitten im Hub angehalten werden. Programmbeschreibung Programmieren einer speicherprogrammierbaren Steuerung (SPS) für die Kartonsortierung basierend auf Höhe und Komponentenverteilung. Um den Roboterbetrieb zu starten, muss der Druckknopf PB1 (X20) auf dem Bedienfeld gedrückt werden, wodurch der Roboterversorgungsbefehl (Y0) aktiviert wird. Der Roboterversorgungsbefehl (Y0) wird deaktiviert, wenn der Roboter die Teilebewegung abgeschlossen hat und in seine Ausgangsposition zurückkehrt. Der Förderbandbewegungsbefehl wird durch den Schalter SW1 (X24) auf dem Bedienfeld gesteuert. Durch Aktivieren des Schalters (Einschalten) wird die Bewegung des Förderbands vorangetrieben, während durch Deaktivieren (Ausschalten) das Förderband zum Stillstand kommt. Das Sortieren der Teile, unterteilt in große, mittlere und kleine Größen, wird durch die Eingabe der oberen (X1), mittleren (X2) und unteren (X3) Sensoren ausgeführt. Nach dem Sortieren werden die Teile in ihre dafür vorgesehenen Behälter befördert. Das Vorhandensein eines Teils im Schieber wird durch die Aktivierung (Einschalten) der Teileerkennungssensoren (X10, X11 oder X12) identifiziert. Bei Teileerkennung wird das Förderband angehalten und das erkannte Teil auf das Tablett verschoben. Hinweis: Die Funktion des Schiebers wird durch den Schieberbetätigungsbefehl gesteuert. Bei Empfang eines EIN-Signals fährt der Schieber vollständig aus, während ein AUS-Signal dazu führt, dass der Schieber einfährt. Jedes Tablett muss eine bestimmte Anzahl von Teilen enthalten, abhängig von ihrer Größe. Alle Teile, die diese angegebene Anzahl überschreiten, umgehen den Schieber und werden am rechten Ende vom Förderband ausgeworfen. Die angegebene Anzahl von Teilen pro Größe ist wie folgt: Groß: 3 Teile Mittel: 2 Teile Klein: 2 Teile SPS-Kontaktplanlogik
  15. In einem früheren Artikel haben wir darüber gesprochen, was ein PID ist, und wir haben auch die verschiedenen Parameter eines PID erklärt und wie das System auf Änderungen dieser Parameter reagiert. In diesem Artikel zeigen wir, wie Sie einen PID in Ihrem TIA Portal-Projekt programmieren, konfigurieren und abstimmen. Inhalt: Wie fügen Sie Ihrer Logik einen PID hinzu? Wie konfigurieren Sie den PID? Grundeinstellung Prozesswerteinstellung Erweiterte Einstellung Wie führen Sie die Feinabstimmung des PID durch? Vorabstimmung des PID Feinabstimmung Welche verschiedenen Abstimmungsmethoden gibt es für PIDs? Wie fügen Sie Ihrer Logik einen PID hinzu? In TIA Portal und fast jeder anderen SPS-Plattform müssen Sie keinen PID-Regler programmieren, da das TIA Portal bereits integrierte Blöcke für PIDs hat. Um einen PID in Ihre Logik einzufügen, müssen Sie den PID-Block einfach per Drag & Drop in Ihren Code ziehen und mit der Konfiguration für Ihr System beginnen. Das Hinzufügen von PID zu Ihrem Code ist sehr einfach, es gibt jedoch einen sehr wichtigen Punkt, den Sie berücksichtigen sollten. Dies ist das Ausführungsintervall Ihres PID. Wie Sie wissen, findet der Hauptausführungszyklus im Main Cyclic OB1 statt und die Zykluszeit des OB1 hängt von vielen Faktoren ab, beispielsweise von der Länge Ihres Codes, von mathematischen Berechnungen in Ihrem Code und auch von Schleifen und Sequenzen. All diese verschiedenen Faktoren können die Zykluszeit Ihres OB1 nicht nur verlängern, sondern auch in jedem Zyklus anders machen, je nach Ihrem Code. Das bedeutet, wenn Sie Ihren PID-Block im Main OB1 aufrufen, hängt die PID-Ausführung von der Zykluszeit Ihres OB1 ab, und das ist kein Best-Practice-Ansatz. PIDs werden normalerweise verwendet, um physikalische Parameter wie Druck, Temperatur oder Geschwindigkeit zu steuern, und das bedeutet, dass Ihr Controller sehr schnell jede Änderung Ihres Prozesswerts erkennen und schnell reagieren muss, um diese Änderung auszugleichen und Ihnen eine reibungslose, stabile Steuerung zu bieten, die ein PID haben sollte. Wenn also der PID zum Haupt-OB1 hinzugefügt wird und von seiner Ausführungszeit betroffen ist, müssen möglicherweise Verzögerungen eingeleitet werden, was Ihr System instabil macht. Was ist zu tun? Eine bewährte Vorgehensweise besteht darin, Ihren PID-Block in einem zyklischen Interrupt-OB aufzurufen und die Zykluszeit dieses zyklischen Interrupts auf den für Ihr System geeigneten Wert einzustellen, normalerweise im Millisekundenbereich, abhängig von Ihrer Anwendung. Das bedeutet, wenn Sie den zyklischen Interrupt beispielsweise auf 1 Millisekunde einstellen, wird Ihr PID jede Millisekunde aufgerufen und ausgeführt, unabhängig davon, wo sich der Haupt-OB1-Zyklus befindet. Um also einen PID in Ihre Logik einzufügen, fügen wir zunächst einen neuen zyklischen Interrupt-OB hinzu und geben ihm einen geeigneten Namen. Siehe Abbildung 1. Abbildung 1. Hinzufügen eines zyklischen Interrupts zu Ihrem Projekt. Sie können auf der Abbildung sehen, dass wir die Zykluszeit auf 1000 Mikrosekunden oder 1 Millisekunde eingestellt haben. Unser PID wird also jede Millisekunde aufgerufen und ausgeführt. Nachdem Sie nun Ihren zyklischen OB zum Projekt hinzugefügt haben, können Sie den PID-Block einfach per Drag & Drop verschieben. Sie finden ihn auf der Registerkarte „Anweisungen“/Technologie/PID-Steuerung/Kompakter PID. Siehe Abbildung 2. Abbildung 2. Hinzufügen des PID-Blocks. Fügen Sie nun Ihre Systemparameter zum PID-Block hinzu, den Eingang, den Ausgang und den Sollwert. Siehe Abbildung 3. Abbildung 3. Weisen Sie Ihre PID-Parameter zu. Ist Ihnen auf dem letzten Bild aufgefallen, dass Sie 2 verschiedene Eingänge und 3 verschiedene Ausgänge haben? Was sind das? Eingabe: Dies ist Ihr Eingabewert Ihres Prozessparameters in realen physikalischen Größen. Wir verwenden unser Tanksimulationssystem, daher ist die Eingabe hier in diesem Fall der Tankfüllstand in Litern. Das bedeutet, dass Sie Ihre analoge Eingangsskalierung an einer anderen Stelle in Ihrem Projekt vorgenommen haben und den PID nur mit dem tatsächlichen Füllstand in Litern versorgen. Input_PER: Dies ist der Eingangswert Ihres Prozessparameters, kommt aber vom analogen Eingangsmodul. Das bedeutet, dass er nicht skaliert wird und im Bereich von 0-27648 liegt und die Skalierung des Eingangs innerhalb des PID erfolgt. Output: In diesem Fall gibt Ihnen der PID den Reglerausgangswert im Bereich von 0 % bis 100 % des maximalen Ausgangswerts. Output_PER: Genau wie input_PER gibt der PID den Ausgang in Form von 0-27648 aus. Output_PWM: In diesem Fall gibt der PID sein Ausgangssignal in Form von EIN/AUS-Impulsen aus, sodass entweder ein Ausgang vorhanden ist oder nicht. Und der Ausgangswert beträgt dann 100 %, wenn er EIN ist, und 0 %, wenn er AUS ist. Wir verwenden dasselbe Tanksimulationssystem wie zuvor und wie Sie auf dem vorherigen Bild sehen können, haben wir Input und Output_PER verwendet, da unsere Simulation auf diese Weise aufgebaut ist. Wie konfiguriere ich den PID? Um die Konfigurationsansicht des PID aufzurufen, können Sie entweder auf die Registerkarte „Konfiguration“ im Projektbaum oder auf das kleine Konfigurationssymbol über dem PID-Block selbst klicken. Siehe Bild 4. Bild 4. Konfigurationsansicht aufrufen. Dadurch gelangen Sie zur Funktionsansicht, in der Sie die verschiedenen Einstellungen Ihres PID konfigurieren können. Siehe Bild 5. Bild 5. Reglertypeinstellung. Die erste Konfiguration ist der Reglertyp. Hier können Sie auswählen, welche Art von Steuerung Sie verwenden möchten. Sie haben viele Optionen aus den angezeigten Dropdown-Menüs wie Temperatur, Druck, Länge und viele mehr. Sie können es auch auf „Allgemein“ einstellen, wo das System Ihre Werte als % sieht. In unserem System steuern wir Wasserliter in einem Tank, also wählen wir das Volumen. Sie können auch den manuellen/automatischen Modus des PID einstellen. Als Nächstes möchten Sie die Eingabe-/Ausgabeparameter konfigurieren. Siehe Bild 6. Bild 6. Eingabe-/Ausgabeparameter. Hier können Sie aus den verschiedenen Arten von Ein- oder Ausgängen wählen, wie wir zuvor erklärt haben. Wie gesagt, wir werden Input und Output_PER verwenden. Als Nächstes müssen Sie Ihre Prozesswerteinstellung konfigurieren. Siehe Bild 7. Bild 7. Prozesswertgrenze. In diesem Schritt legen Sie die unteren und oberen Grenzwerte Ihres Prozesswerts fest. Wenn Sie den Eingabetyp wählen, kann diese Einstellung geändert werden und Sie können die Grenzwerte Ihres Prozesses festlegen. In unserem Fall liegen die Tankgrenzwerte bei 0 bis 50 Litern. Wir haben sie also auf diese Werte eingestellt. Beachten Sie, dass diese Einstellung nicht verfügbar ist, wenn Sie Input_PER wählen, und Sie Ihren Prozessgrenzwert nur auf der nächsten Registerkarte festlegen können. Siehe Abbildung 8. Abbildung 8. Skalierung des Prozesswerts. Wenn Sie Input_PER verwenden, können Sie, wie Sie im vorherigen Bild sehen, Ihren Prozesswertgrenzwert in Bezug auf die vorhandene Skalierung von 0-27648 festlegen. Wenn Sie eine Warnung einrichten möchten, wenn Ihr Prozesswert einen unteren oder oberen Grenzwert erreicht, können Sie dies auf der Registerkarte „Prozesswertüberwachung“ konfigurieren. Siehe Abbildung 9. Abbildung 9. Prozesswertüberwachung. Als nächstes finden Sie in der Einstellungsliste die PWM-Grenzen, siehe Bild 10. Bild 10. PWM-Grenzen Hier können Sie die minimale EIN- und AUS-Zeit Ihres Ausgangs einstellen. Stellen Sie sich vor, Sie haben eine Pumpe oder ein Ventil in Ihrem System, das der PID über einen PWM-Ausgang steuert. Sie möchten nicht, dass der PID Ihrer Pumpe einfach eine Abfolge von sehr schnellem EIN/AUS-Verhalten gibt, da dies wahrscheinlich dazu führen würde, dass Ihre Pumpe durchbrennt. Sie können dem PID also von dieser Einstellung aus sagen, dass er die Pumpe für eine Mindestzeit einschalten soll, bevor er sie schließt, und umgekehrt. Sie können die gleiche Steuerung mit Ihrem PID haben, wenn Sie keinen PWM-Ausgang haben, und zwar von der nächsten Einstellung aus, den Ausgangswertgrenzen. Siehe Bild 11. Bild 11. Ausgangswertgrenzen. Sie können die unteren und oberen Grenzen Ihrer Steuerausgabe steuern. Sie können beispielsweise die untere Grenze auf 20 % setzen, wodurch der PID die Pumpe mit mindestens 20 % ihres Durchflusses betreibt. Ihr Steuerbereich liegt also zwischen 20 % und 100 %. Zuletzt und am wichtigsten können Sie Ihre PID-Parameter im Konfigurationsmodus auf der nächsten Registerkarte, der Registerkarte „PID-Parameter“, einstellen, siehe Abbildung 12. Abbildung 12. PID-Parameter. Hier können Sie die Abstimmungsparameter für Ihre PID-Verstärkungen P, I und D eintragen, falls Sie diese kennen oder falls Sie die Abstimmung selbst vorgenommen haben und die Parameter von woanders haben. Sie können sich auch entscheiden, ob Sie einen PID- oder nur einen PI-Regler verwenden möchten. Wenn Sie diese Parameter nicht haben, können Sie sie automatisch hochladen, nachdem Sie die Abstimmung Ihres PID vorgenommen haben. Wie führt man die Abstimmung des PID durch? Nachdem Sie nun Ihre PID-Konfiguration abgeschlossen haben, können Sie Ihren Regler ganz einfach über die Registerkarte „Inbetriebnahme“ im Projektbaum abstimmen. Siehe Abbildung 13. Abbildung 13. Inbetriebnahme Ihres PID Auf der Inbetriebnahmeseite ist Ihr Bildschirm in drei Teile unterteilt. Auf der oberen Seite können Sie mit der Vorabstimmung und Feinabstimmung des PID beginnen. In der Mitte befindet sich ein Diagrammbereich, der Ihnen die Echtzeitreaktion Ihres Systems zeigt. Sie können die Reglerausgabe und den Prozesswert sehen. Und jedes Mal, wenn sich der Sollwert ändert, sehen Sie das Verhalten Ihres PID, um diesen neuen Sollwert zu erreichen. Selbst wenn sich der Sollwert nicht geändert hat, aber beispielsweise der Bedarf aus unserer Tankversorgung steigt, sehen Sie die PID-Reaktion, um diesen Bedarf zu decken und den Sollwert auf dem erforderlichen Wert zu halten. Im dritten Bereich sehen Sie den Online-Status Ihres Reglers und können auch den Betriebsmodus Ihres PID festlegen. Sehen Sie sich das folgende Simulationsvideo an, das den Autotuning-Vorgang des PID im TIA-Portal zeigt. Im Video können Sie sehen, dass unser PID nach der Vorabstimmung die P-, I- und D-Parameter gefunden hat, die am besten zu unserem System passen. Sie können sehen, dass der Regler sehr schnell reagiert, wenn sich der Sollwert oder der Abfluss ändert, um den Sollwert wieder auf die erforderlichen Werte zu bringen. Sie können Ihre Tuning-Parameter jetzt mit einem einfachen Klick direkt in Ihr Projekt hochladen, siehe Bild 14. Bild 14. Laden Sie Ihre Parameter hoch. Nachdem Sie Ihre Parameter hochgeladen haben, finden Sie sie auf der Registerkarte „PID-Parameter“ in der Konfigurationsansicht. Siehe Bild 15. Bild 15. PID-Parameter. Der nächste Schritt sollte darin bestehen, eine Feinabstimmung des PID aus derselben Inbetriebnahmeansicht heraus durchzuführen. Da wir jedoch kein reales System haben und nur das Verhalten des Tanks und der Pumpe mithilfe mathematischer Berechnungen simulieren, können wir die Feinabstimmung nicht durchführen. Wenn Sie ein reales System haben, können Sie die Feinabstimmung vornehmen, bei der Ihr PID versucht, die Parameter zu finden, die dem System eine bessere Reaktion verleihen und sogar das Überschwingen Ihres Prozesswerts verhindern und den Sollwert direkt erreichen. Wenn wir in Zukunft ein reales System haben, können wir zeigen, wie es aussieht. Welche verschiedenen Abstimmungsmethoden gibt es für PID-Regler? Sie müssen die Abstimmung Ihres PID nicht über das TIA Portal vornehmen. Es gibt viele verschiedene Methoden, mit denen versucht wird, die besten PID-Parameter für Ihr System zu finden. Meistens handelt es sich dabei um mathematische Methoden, die auf Versuch und Irrtum basieren. Ich würde empfehlen, die Auto-Tune-Funktion im TIA Portal zu verwenden. Aber hier sind einige der Methoden, die verwendet werden, um dieselben Parameter zu erreichen. Heuristische Abstimmung. Ziegler-Nichols-Abstimmungsmethode Cohen-Coon-Abstimmungsmethode Kappa-Tau-Abstimmungsmethode Lambda-Abstimmungsmethode Und einige andere. Fazit Verwenden Sie einen zyklischen Interrupt mit Ihren PIDs. Konfigurieren Sie Ihren PID so, dass er am besten zu Ihrem System passt. Die Auto-Tune-Funktion im TIA Portal ist sehr nützlich und effektiv.
  16. In einem früheren Artikel haben wir eine einfache Einführung in das Konzept verteilter IO-Geräte gegeben, was sie sind und warum wir sie brauchen. In diesem Artikel zeigen wir, wie man ein verteiltes IO-Gerät in unserem SPS-Projekt konfiguriert. Wie üblich konzentrieren wir uns auf die Systeme Siemens und TIA Portal, daher zeigen wir dies anhand der verteilten IO von Siemens ET200S. Inhalt: Hardwarekonfiguration verteilter IO-Geräte. Zuweisen des IO-Moduls zu einem Controller. Laden Sie die Konfiguration auf das eigentliche Hardwaremodul herunter. Hardwarekonfiguration verteilter IO-Geräte Die Hardwarekonfiguration eines beliebigen verteilten IO-Geräts bedeutet einfach, dieses IO-Gerät einem bestimmten Controller in Ihrem Projekt zuzuweisen, sodass das Eingangssignal von diesem IO zu dieser SPS geht und der Ausgangsbefehl von dieser SPS kommt. Fügen wir unserem Projekt eine SPS hinzu und sehen wir, wie wir vorgehen können. Siehe Bild 1. Bild 1. Fügen Sie unserem Projekt eine SPS hinzu. Wie Sie an der SPS sehen, die wir gerade hinzugefügt haben, verfügt die SPS bereits über einige zentralisierte IOs, aber in diesem Artikel gehen wir davon aus, dass wir einen Teil der Maschine haben, der weit entfernt ist und den wir mit der SPS verbinden müssen. In diesem Fall würden wir ein verteiltes IO-Gerät verwenden, das am Maschinenteil installiert wird und alle IOs enthält, die mit diesem Teil der Maschine zusammenhängen. Das verteilte IO-Gerät kommuniziert dann über eine geeignete Kommunikationsmethode wie Profinet oder Profibus mit der SPS. Verteilte IO in einem SPS-Projekt Fügen wir unser ET200S-Gerät hinzu. Siehe Bild 2. Bild 2. Fügen Sie das benötigte IO-Modul hinzu. Wie Sie auf dem Bild sehen können, gibt es viele verschiedene IO-Module, aus denen Sie je nach Anwendung wählen können. Wir wählen das Standard-ET200S-Modul. Siehe Bild 3. Bild 3. Ziehen Sie das ET200s-Modul per Drag & Drop Wie Sie auf dem Bild sehen können, ziehen Sie das IO-Modul einfach per Drag & Drop in die Netzwerkansicht Ihres Projekts. Beachten Sie, dass wir die Profinet-Schnittstelle für das IO-Modul so wählen, dass sie mit unserer SPS übereinstimmt. Nachdem wir das ET200S-Modul zu unserem Projekt hinzugefügt haben, können wir beginnen, unsere Ein- und Ausgabemodule zum ET200S hinzuzufügen. Sie finden alle mit dem ausgewählten Modul kompatiblen IOs in der Hardwarekatalogleiste rechts, siehe Bild 4. Bild 4. Fügen Sie die IOs zum ET200S hinzu. Wie Sie auf dem Bild sehen können, kann ich die IOs hinzufügen, indem ich sie per Drag & Drop in die leeren Bereiche ziehe. Die maximale Anzahl von IOs, die ich mit dem ET200S verwenden kann, hängt von dessen Typ und Spezifikation ab. Um Ihre Ein- und Ausgangsmodule hinzuzufügen, ziehen Sie sie einfach per Drag & Drop aus dem Hardwarekatalog rechts, siehe Abbildung 5. Abbildung 5. Ziehen Sie die benötigten IOs per Drag & Drop. Weisen Sie das IO-Modul einem Controller zu Nachdem Sie nun das Distributed IO-Modul zu Ihrem Projekt hinzugefügt haben, werden Sie feststellen, dass das IO-Gerät keinem Controller zugewiesen oder mit ihm verbunden ist. Siehe Abbildung 6. Abbildung 6. Das hinzugefügte IO-Modul ist keiner SPS zugewiesen. Eine weitere Möglichkeit, zu erkennen, dass das Distributed IO-Modul keinem Controller zugewiesen ist, besteht darin, dass meinen IOs keine Adressen zugewiesen sind. Da es mit keinem Controller verbunden ist, siehe Abbildung 7. Abbildung 7. Adressen sind nicht definiert. Wie Sie im Bild sehen können, sind die Bereiche für die E/A-Adressen leer, was bedeutet, dass sie noch einem Controller zugewiesen werden müssen. Wir müssen also das E/A-Modul einer SPS zuweisen. Um das E/A-Modul einem Controller zuzuweisen, müssen wir zur Netzwerkansicht gehen, das E/A-Modul auswählen, dann mit der rechten Maustaste klicken und auf „Neuem DP-Master/E/A-Controller zuweisen“ klicken, siehe Bild 8. Bild 8. Weisen Sie das E/A-Modul einem Controller zu. Nachdem Sie auf „Neuem DP-Master/E/A-Controller zuweisen“ geklickt haben, wird das Fenster „E/A-Controller auswählen“ angezeigt, in dem Sie die SPS auswählen können, der Sie das E/A-Modul zuweisen möchten. In unserem Projekt haben wir nur einen Controller, daher wird im Fenster nur eine Option angezeigt. Siehe Bild 9. Bild 9. Fenster „E/A-Controller auswählen“. Nachdem Sie auf „OK“ geklickt haben, wird das E/A-Modul der SPS zugewiesen. Und wenn Sie jetzt die Geräteansicht des IO-Moduls überprüfen, werden Sie feststellen, dass den Ein- und Ausgängen jetzt im Projekt Adressen zugewiesen wurden, was bedeutet, dass sie jetzt zu einer bestimmten SPS-Steuerung gehören. Siehe Abbildung 10. Abbildung 10. Dem IO-Modul wurden jetzt Adressen zugewiesen. Laden Sie die Konfiguration auf das eigentliche Hardwaremodul herunter Und so können Sie ein verteiltes IO-Modul auswählen und konfigurieren und es in Ihrem Projekt einer SPS zuweisen. Es gibt jedoch etwas, das Sie wissen sollten: JA, wir haben unser IO-Modul der SPS zugewiesen, aber das wurde nur auf der Softwareseite (TIA Portal) durchgeführt. Das eigentliche Hardware-IO-Gerät weiß immer noch nicht, dass es dieser SPS zugewiesen ist. Das bedeutet, wenn ich mein Projekt auf die SPS herunterlade, wird es kompiliert und erfolgreich heruntergeladen, aber wenn die SPS Kontakt mit dem IO-Gerät aufnehmen muss, um einen Input zu erhalten oder einen Output-Befehl zu geben, kann sie das Gerät nicht finden, obwohl ein Kommunikationskabel zwischen den beiden besteht. Und die SPS gibt einen Fehler aus. Um das zu lösen, muss ich etwas tun, das „GERÄTENAME ZUWEISEN“ heißt. Um das zu tun, klicken Sie einfach mit der rechten Maustaste auf das IO-Gerät und drücken Sie auf „Gerätenamen zuweisen“. Dadurch öffnet sich das folgende Fenster, siehe Bild 11. Bild 11. Gerätenamen zuweisen. Wenn Sie auf „Gerätenamen zuweisen“ klicken, erscheint das Fenster „PROFINET-Gerätenamen zuweisen“. Siehe Bild 12. Bild 12. Fenster „Gerätenamen zuweisen“. Dieses Verfahren wird mit Hardwaregeräten durchgeführt, aber da wir die Hardwarekomponente nicht haben und nur simulieren, können wir sie hier nicht sehen. Wenn Sie jedoch einfach die PC/PG-Schnittstelle auswählen und auf „Aktualisieren“ klicken, sollten Sie Ihr IO-Gerät finden. Wählen Sie dann einfach „Gerätenamen zuweisen“, um den Gerätenamen dem tatsächlichen IO-Hardwaremodul zuzuweisen. Sobald dies erledigt ist, können Sie dieses IO-Gerät als normales IO der SPS verwenden. Und Sie können das IO-Modul im SPS-Projektbaum finden, da es jetzt Teil der SPS ist. Siehe Abbildung 13. Abbildung 13. Das IO-Modul gehört zum SPS-Projektbaum.
  17. In früheren Artikeln haben wir das Konzept verteilter IO-Module vorgestellt und wie man ein IO-Modul mit einer SPS konfiguriert. In diesem Artikel zeigen wir, wie man verteilte IO-Freigabe zwischen SPS-Systemen durchführt. Inhalt: Problembeschreibung. Freigabe des IO-Geräts durch zwei SPS. Zuweisung unterschiedlicher interner Module zu SPS. Problembeschreibung Im vorherigen Artikel haben wir gezeigt, wie wir ein verteiltes IO-Modul mit einer SPS verbinden und konfigurieren und die IO-Punkte des verteilten Moduls über diese SPS steuern können. In diesem Artikel besprechen wir den Fall, wenn wir dasselbe verteilte IO-Modul mit zwei verschiedenen SPS verwenden müssen. Siehe Bild 1. Bild 1. Zwei verschiedene SPS-Projekte. Verteilte IO-Freigabe zwischen SPS-Systemen Stellen Sie sich vor, wir müssen die Ein- und Ausgabepunkte des verteilten Moduls zwischen den beiden SPSen teilen. Die gemeinsame Nutzung eines verteilten IO-Moduls durch zwei SPS ist möglich, aber nicht alle Module können das, die meisten modernen jedoch schon. Eine andere Möglichkeit, die Informationen gemeinsam zu nutzen, wäre, alle Informationen vom verteilten IO zu einer SPS zu bringen, eine Kommunikation zwischen den beiden SPS herzustellen und dann die benötigten Daten auszutauschen. Dies wird in einem anderen Artikel gezeigt. Im verteilten IO-Gerät (IO-Gerät_1) haben wir viele IO-Module konfiguriert, wie z. B. 4DIx24VDC-Modul, 8DOx24VDC-Modul, 2DIx24VDC-Modul und einige weitere Module. Siehe Bild 2. Bild 2. Verschiedene IO-Module in unserem IO-Gerät. Gemeinsame Nutzung des IO-Geräts durch zwei SPSen In diesem Artikel gehen wir davon aus, wie Sie auf dem Bild sehen, dass wir das 4DIx24VDC-Modul und das 8DOx24VDC-Modul über SPS_1 steuern möchten und ich das 2DIx24VDC-Modul und das 2DOx24VDC-Modul von SPS_2 aus steuern möchte. Ich möchte also die verschiedenen Module zwischen den beiden SPSen teilen, daher die Namensfreigabegeräte. Wie Sie in Bild 1 sehen können, ist das verteilte IO-Gerät (IO-Gerät_1) bereits eine Erweiterung von PLC_1, da wir das im vorherigen Artikel eingerichtet haben, aber wir müssen es auch zu einer Erweiterung von PLC_2 machen, damit es zwischen den beiden SPSen geteilt werden kann. Siehe Bild 3. Bild 3. IO-Gerät ist eine Erweiterung von PLC_1 Normalerweise hätten wir dabei jede SPS in einem anderen TIA Portal-Projekt, aber da wir keine echten Hardwaregeräte haben, verwenden wir nur ein TIA Portal-Softwareprojekt, um zu zeigen, wie das verteilte IO-Modul zwischen den beiden SPSen geteilt wird. Wir haben ein Projekt mit zwei SPSen. Und wir müssen das IO-Gerät_1 der SPS_1 und der SPS_2 zuweisen. Kopieren Sie dazu das Modul in der Netzwerkansicht und fügen Sie es ein, um zwei Module in Ihrem Projekt zu haben. Siehe Bild 4. Bild 4. Kopieren und Einfügen des IO-Geräts. Jetzt müssen wir dieses IO-Gerät der PLC_2 zuweisen, wie wir es im letzten Artikel mit PLC_1 getan haben. Siehe Bild 5. Bild 5. Weisen Sie das Modul der PLC_2 zu Wenn Sie JETZT versuchen, Ihr Projekt auf beide PLCs herunterzuladen, kann die PLC_1 das IO-Modul finden. Die PLC_2 kann das IO-Modul jedoch nicht finden, da es kein tatsächliches Hardwaremodul mit dem Namen IO-Gerät_2 gibt. Wir haben nur ein Hardware-IO-Gerät und im letzten Artikel wurde es mit dem Namen IO-Gerät_1 konfiguriert, weshalb die PLC_2 das IO-Gerät nicht finden kann. Siehe Bild 6. Bild 6. Die Verbindung wird über den Gerätenetzwerknamen hergestellt. Wir müssen also beiden IO-Modulen den gleichen Gerätenetzwerknamen geben, siehe Bild 7. Bild 7. Netzwerkgerätename Wie Sie sehen, ist der Netzwerkgerätename für das IO-Modul IO device_1, siehe Bild 8 für das andere IO-Modul. Bild 8. Netzwerkgerätename für das 2. IO-Modul. Hier ist der Netzwerkname IO device_2. Wir müssen beiden IO-Modulen den gleichen Namen geben, damit beide SPS es finden und sich damit verbinden können. Deaktivieren Sie die Option zur automatischen Namensgenerierung, damit wir den Namen ändern und beide zu IO device_1 machen können. Stellen Sie außerdem sicher, dass alle Informationen im roten Bereich in beiden Modulen gleich sind. Siehe Bild 9. Bild 9. Deaktivieren Sie die Option zur automatischen Generierung. Überprüfen Sie die Bilder 10a und 10b, nachdem wir die Informationen so geändert haben, dass sie für beide Module gleich sind. Bild 10a. 2. IO-Modul. Bild 10b. 1. IO-Modul Da die beiden IO-Module nun identisch sind, können beide SPS das IO-Modul finden und mit ihm kommunizieren. Siehe Bild 11. Bild 11. Beide SPS können das IO-Modul finden. Bis zu diesem Punkt gingen wir davon aus, dass sich beide SPS im selben TIA Portal-Projekt befinden. Falls wir das IO-Modul jedoch mit einem Controller in einem anderen TIA Portal-Projekt teilen, machen wir dasselbe wie zuvor, fügen jedoch einen zusätzlichen Schritt hinzu. In diesem Schritt gehen wir zu den Eigenschaften des IO-Moduls und ändern die Option für den gemeinsamen IO-Zyklus des Geräts, wie Sie in Bild 12 sehen. Bild 12. IO-Controller außerhalb des Projekts Wie Sie auf dem Bild sehen können, ändern wir den Wert im roten Feld auf 1, wenn die beiden SPSen zu unterschiedlichen TIA Portal-Projekten gehören. Da wir beide SPSen im selben Projekt haben, lassen wir den Wert auf Null. Da nun beide SPSen das IO-Gerät sehen und mit ihm kommunizieren können, müssen wir dem IO-Modul mitteilen, welche internen Module mit welcher SPS kommunizieren sollen. Wie in Bild 2 erwähnt, benötigen wir ein 4DIx24VDC-Modul und ein 8DOx24VDC-Modul zur Kommunikation mit SPS_1, und ich möchte das 2DIx24VDC-Modul und das 2DOx24VDC-Modul von SPS_2 aus steuern. Wir können das tun, indem wir die folgenden Schritte ausführen. Zuweisen unterschiedlicher interner Module zu SPSen Gehen Sie zunächst zu den Eigenschaften des IO-Geräts_1. Sie werden feststellen, dass alle internen Module des IO-Geräts zu SPS_1 gehören. Siehe Bild 13. Bild 13. Gemeinsam genutztes Gerät des IO-Moduls Wie Sie auf dem Bild sehen können, ist der Zugriff auf alle internen Module des IO-Geräts PLC_1 zugewiesen, aber wie bereits erwähnt, müssen die letzten beiden internen Module, das 2DIx24VDC-Modul und das 2DOx24VDC-Modul, von PLC_2 aus aufgerufen werden. Klicken Sie dazu einfach mit der rechten Maustaste auf das gewünschte Modul, deaktivieren Sie die Option PLC_1 und lassen Sie sie leer, um anzugeben, dass dieses Modul über einen anderen Controller gesteuert wird. Siehe Bild 14. Bild 14. Deaktivieren Sie interne Module. Wenn Sie die Geräteübersicht des IO-Geräts_1 überprüfen, nachdem Sie die Option PLC_1 deaktiviert haben, werden Sie sehen, dass diesen internen Modulen keine Adressierung mit PLC_1 zugewiesen ist, was darauf hinweist, dass sie woanders hingehören. Siehe Bild 15. Bild 15. Keine Adressierung für Module, die nicht PLC_1 zugewiesen sind JETZT muss ich diese beiden Module dem IO-Gerät_2 für PLC_2 zuweisen. Gehen Sie mit denselben Schritten wie zuvor zu den gemeinsam genutzten Geräteeigenschaften des IO-Geräts_2 und weisen Sie nur die beiden benötigten Module PLC_2 zu. Siehe Abbildung 16. Abbildung 16. Benötigte Module PLC_2 zuweisen Nachdem das 2DIx24VDC-Modul und das 2DOx24VDC-Modul PLC_2 zugewiesen sind, finden Sie in der Geräteübersicht ihre Adressierung mit PLC_2, wie wir es möchten. Siehe Abbildung 17. Abbildung 17. Adressierung gehört zu PLC_2 So können wir ein IO-Modul zwischen zwei PLCs gemeinsam nutzen, unabhängig davon, ob sie sich im selben TIA Portal-Projekt oder in zwei verschiedenen Projekten befinden.
  18. In früheren Artikeln haben wir begonnen, die verschiedenen Möglichkeiten der Kommunikation zwischen zwei oder mehr SPS zu besprechen. Bisher haben wir über die I-Device-Funktion sowie die PUT- und GET-Befehle gesprochen, die ausschließlich für Siemens-SPS bestimmt waren. Kommunikation zwischen Siemens-SPS und anderen SPS In diesem Artikel werden wir eine andere Möglichkeit besprechen, zwei SPS miteinander zu verbinden. Diese Methode hat mehr Vorteile als die zuvor besprochenen PUT- und GET-Befehle, da sie im Gegensatz zu den PUT/GET-Befehlen steht, die ausschließlich der S7-Familie vorbehalten waren. Diese neue Methode ist eine offene Benutzerkommunikation, d. h. wir können sie zur Kommunikation zwischen einer SIEMENS-SPS und jeder beliebigen anderen SPS-Marke verwenden. Es müssen nicht einmal zwei SPS sein. Diese Methode kann zwischen einer SPS und jedem anderen Gerät kommunizieren, das das TCP-Netzwerkprotokoll versteht, wie z. B. PCs, Server, Drucker usw. In diesem Artikel zeigen wir, wie man eine Kommunikation zwischen zwei SPS mithilfe der TCON- und TDISCON-Blöcke einrichtet, und im nächsten Artikel zeigen wir, wie man nach dem Einrichten der Verbindung Daten zwischen den SPS verschiebt. Offene Benutzerkommunikationsblöcke TCON und TDISCON Wir verwenden den TCON-Block, um eine Kommunikationsverbindung zwischen zwei SPS einzurichten und herzustellen. Sobald die Verbindung eingerichtet und hergestellt wurde, wird sie automatisch von der SPS aufrechterhalten. Beide Kommunikationspartner rufen die TCON-Anweisung auf, um die Kommunikationsverbindung einzurichten und herzustellen. Das bedeutet, dass ich den TCON-Block in beiden SPS aufrufen muss und wir den Block in beiden SPS konfigurieren müssen, wie wir im Beispielprojekt sehen werden. Während der Blockkonfiguration geben wir an, welcher Partner der aktive Kommunikationsendpunkt und welcher der passive ist. Das heißt, welche SPS versucht, eine Verbindung herzustellen, und welche öffnet einen Kommunikationsport und wartet auf die andere. Eine bestehende Verbindung wird beendet und die aufgebaute Verbindung entfernt, wenn der TDISCON-Block ausgeführt wird oder wenn die CPU in den STOP-Modus wechselt. Um die Verbindung erneut einzurichten und herzustellen, müssen Sie TCON erneut ausführen. Beispiel-SPS-Projekt mit TCON Wie wir bereits in früheren Artikeln erklärt haben, müssen wir zum Einrichten einer Kommunikation zwischen zwei SPSen zwei Dinge einrichten: Kommunikation zwischen den SPSen. Datenübertragung zwischen den beiden SPSen. In diesem Artikel richten wir mithilfe des TCON-Blocks eine offene Benutzerkommunikation mit TCP-Protokoll zwischen zwei SPSen ein. Im nächsten Artikel zeigen wir, wie Daten verschoben werden, nachdem die Verbindung hergestellt wurde. Lassen Sie uns zunächst ein neues Projekt erstellen und unsere beiden SPSen hinzufügen. Wir fügen die CPU1516-3PN/DP-SPS hinzu und nennen sie PLC_1 und PLC_2. Ziel ist es, eine Verbindung zwischen ihnen herzustellen. Siehe Bild 1. Bild 1. Fügen Sie PLC_1 und PLC_2 hinzu. Nun fügen wir einfach den TCON-Block in unsere SPS-Logik ein. Wie bereits erwähnt, müssen wir den TCON für beide SPS aufrufen. Beginnen wir mit PLC_1. Ziehen Sie einfach den TCON-Block, den Sie im geöffneten Ordner für die Benutzerkommunikation finden, per Drag & Drop. Siehe Bild 2. Bild 2. Ziehen Sie die TCON-Anweisung per Drag & Drop Der TCON-Block ist im Wesentlichen ein Funktionsblock. Wenn wir ihn also zu meinem Haupt-OB1 hinzufügen, werden wir aufgefordert, eine Datenblockinstanz für diesen Block zu erstellen. Erstellen Sie die Dateninstanz und geben Sie ihr einen geeigneten Namen. Siehe Bild 3. Bild 3. Dateninstanz erstellen. Jetzt wird der TCON-Block zu Ihrer Logik hinzugefügt. Wir müssen die Verbindungsparameter für den Block konfigurieren. Drücken Sie einfach auf das kleine blaue Konfigurationssymbol über dem Block. Siehe Bild 4. Bild 4. Konfigurationsansicht öffnen Wenn Sie auf das blaue Symbol drücken, öffnen Sie die Konfigurationsansicht für den TCON-Block, wo wir die Verbindungsparameter einrichten können. Sie finden sie ziemlich genau wie die Verbindungsparameter der PUT- und GET-Befehle. Siehe Bild 5. Bild 5. Verbindungsparameter von TCON. Die Partner-SPS-Optionen im TCON-Block haben mehr Optionen als die der PUT/GET-Befehle, da wir eine offene Benutzerkommunikation verwenden. Siehe Bild 6. Bild 6. Partner-SPS-Optionen Wie Sie auf dem Bild sehen können, haben wir 4 verschiedene Optionen, und zwar: SPS_2: Falls sich beide SPS im selben Projekt befinden, wird hier die SPS_2 angezeigt. Broadcast: Dadurch wird die Verbindung für jedes Gerät im Netzwerk verfügbar. Multicast: Dadurch wird die Verbindung mit ausgewählten Geräten hergestellt, mehr als einem Gerät, aber nicht allen. Nicht angegeben: Wenn sich die SPS in einem anderen TIA Portal-Projekt befindet. Wenn wir die nicht angegebene Option wählen, werden wir aufgefordert, die IP-Adresse der SPS hinzuzufügen und wir müssen auch neue Verbindungsdaten hinzufügen. Siehe Bild 7. Bild 7. Neue Verbindungsdaten hinzufügen Wie Sie auf dem Bild sehen können, klicken Sie zum Erstellen neuer Verbindungsdaten einfach auf den Dropdown-Pfeil und drücken Sie auf Neu. Dadurch wird ein neuer Verbindungsdatenblock erstellt und dieser wird automatisch dem TCON-Block zugewiesen, siehe Abbildung 8. Abbildung 8. Verbindungsdatenblock wird erstellt. Wie Sie sehen, wurde ein Verbindungsdatenblock erstellt. Jetzt muss ich die IP-Adresse der Partner-SPS hinzufügen. Außerdem müssen wir auswählen, welche SPS die aktive Verbindungsherstellung sein soll. Dadurch wird entschieden, welche SPS für die Herstellung der Verbindung verantwortlich ist, während die andere in diesem Fall nur für das Öffnen eines Verbindungsports verantwortlich ist. Siehe Bild 9. Bild 9. Weisen Sie PLC_1 als aktive Verbindungsherstellung zu. Da wir PLC_1 als aktive Verbindungsherstellung auswählen, ist PLC_2 für das Öffnen eines Verbindungsports verantwortlich, und ich muss einen Wert für diesen Port auswählen. Es kann jeder beliebige Wert sein, aber er wird im TIA Portal automatisch als 2000 zugewiesen, also lassen wir ihn so wie er ist. Siehe Bild 10. Bild 10. Partnerport. Sie können im vorherigen Bild sehen, dass der Verbindungsparameter grün geworden ist, was bedeutet, dass alle Konfigurationen abgeschlossen und akzeptiert sind. Wenn TCON verwendet wird, um eine Verbindung zwischen zwei SPSen herzustellen, müssen beide SPSen den TCON-Befehl aufrufen, um die Verbindung herzustellen. Daher müssen wir jetzt dasselbe mit der anderen SPS_2 tun. Fügen Sie den TCON-Block in den Haupt-OB1 von SPS_2 ein, siehe Abbildung 11. Abbildung 11. Rufen Sie TCON in SPS_2 auf. Nachdem wir den TCON-Block hinzugefügt haben, müssen wir die Verbindungsparameter wie bei SPS_1 konfigurieren. Siehe Abbildung 12. Abbildung 12. Verbindungsparameter von SPS_2 Sie können auf der Abbildung sehen, dass wir immer noch SPS_1 als aktive Verbindungsherstellung wählen und den Port von SPS_2 immer noch auf 2000 belassen. Die aktive Verbindungsherstellung und der Port müssen für die Konfiguration beider SPSen gleich sein, sonst schlägt die Verbindung fehl. Nun ist die Verbindungskonfiguration für beide SPS abgeschlossen, siehe Bild 13. Bild 13. TCON-Block in beiden SPS. Wie wir auf dem Bild sehen, müssen wir noch etwas tun, nämlich die REQ für beide SPS definieren. Wir haben AllowConnection für SPS_2 und StartConnection für SPS_1 erstellt. Siehe Bild 14. Bild 14. Definieren Sie die REQ-Signale. Die Verbindung zwischen zwei SPS ist nun hergestellt und läuft wie folgt ab: SPS_1 versucht, eine Verbindung mit SPS_2 herzustellen, wenn das REQ-Signal aktiv ist, aber das kann es nicht, bis SPS_2 die Verbindungsfunktion aktiviert, und das wird geschehen, wenn der TCON-Block von SPS_1 ein Signal bei REQ empfängt. Ein REQ-Signal ist für TCON von PLC_2 aktiv, um die Verbindung zu aktivieren (das bedeutet, dass PLC_2 Port 2000 öffnet und auf Verbindung wartet). Ein REQ-Signal ist für TCON von PLC_1 aktiv, um Verbindung zu starten (das ermöglicht PLC_1, eine Verbindung mit PLC_2 über Port 2000 herzustellen). PROJEKTSIMULATION Lassen Sie uns unser Projekt kompilieren und eine Simulation starten, um zu sehen, wie die Verbindung hergestellt wird. Um die Verbindung einer beliebigen PLC und auch zwischen den PLCs anzuzeigen, können Sie die Netzwerkansicht öffnen und die Registerkarte Verbindungen öffnen, um alle aktiven und hergestellten Verbindungen anzuzeigen. Siehe Abbildung 15. Abbildung 15. PLC_2 wartet auf Verbindung. Wenn das REQ True ist, ist PLC_2 für Verbindung geöffnet. Sie können sehen, dass der STATUS-Wert 7002 ist. Wenn Sie die Hilfe des TCON-Blocks überprüfen, bedeutet der Status 7002, dass auf Verbindung gewartet wird. Sie können im Bild aus der Netzwerkansicht auch sehen, dass PLC_2 auf eine Verbindung wartet. Wenn das REQ des PLC_1 TCON-Blocks wahr ist, versucht PLC_1, eine Verbindung mit PLC_2 herzustellen, und da PLC_2 bereits geöffnet ist und auf eine Verbindung wartet, kann PLC_1 eine Verbindung mit PLC_2 finden und herstellen. Siehe Bild 16. Bild 16. PLC_1 stellt eine Verbindung her. Beachten Sie, dass alle Verbindungen in der Netzwerkansicht jetzt grün sind, was auf eine gesunde und laufende Verbindung zwischen PLC_1 und PLC_2 hinweist. Wie bereits erwähnt, wird die Verbindung automatisch aufrechterhalten, sobald sie eingerichtet und hergestellt wurde. Selbst wenn die REQ-Signale also falsch werden, bleibt die Verbindung zwischen den beiden PLCs bestehen. Siehe Bild 17. Bild 17. Verbindung besteht noch. Wenn aber das Einschalten der REQ-Signale die Verbindung nicht trennt, wie kann ich sie dann trennen, wenn ich das möchte? Trennungsblock TDISCON Um die Verbindung zwischen den beiden SPSen zu trennen, können wir die SPS in den STOP-Modus versetzen, was während des laufenden Prozesses nicht praktikabel ist. Und wir können auch den Trennungsblock oder TDISCON verwenden. Um einen TDISCON-Block hinzuzufügen, ziehen Sie ihn einfach per Drag & Drop in Ihre Logik, siehe Bild 18. Bild 18. TDISCON-Block hinzufügen Wie Sie sehen, wird zum Hinzufügen eines TDISCON-Blocks eine Datenblockinstanz benötigt. Sobald der Block zu Ihrer Logik hinzugefügt wurde, müssen Sie nur noch die Verbindungs-ID zuweisen, die Sie trennen möchten, und Sie müssen auch ein REQ-Signal zuweisen, um die Verbindungsbeendigung zu starten. Siehe Bild 19. Bild 19. TDISCON-Block JETZT fügen wir einen TDISCON-Block in der anderen SPS hinzu, damit wir die Verbindung trennen können. Siehe Bild 20. Für den TDISCON-Block von SPS_1. Bild 20. TDISCON in SPS_1 Kehren wir zur Simulation zurück und sehen wir uns an, wie TDISCON-Blöcke verwendet werden, siehe Bild 21. Bild 21. Verbindung noch aktiv. Wie Sie auf dem Bild sehen können, ist die Verbindung zwischen den SPS noch aktiv, wobei die REQ-Signale des TDISCON noch falsch sind. Wenn das REQ von SPS_1 TRUE wird, wird die Verbindung beendet, aber Sie werden feststellen, dass SPS_2 noch auf die Verbindung wartet, siehe Bild 22. Bild 22. REQ von SPS_1 ist wahr. Wenn das REQ für den TDISCON-Block von SPS_2 wahr ist, wartet SPS_2 nicht mehr auf die Verbindung. Siehe Bild 23. Bild 23. Verbindung ist beendet. Wir haben in diesem Artikel gezeigt, wie man mit den TCON- und TDISCON-Blöcken eine Verbindung zwischen zwei SPS herstellt.
  19. In diesem Artikel lernen Sie das SPS-Beispiel zur Steuerung von LEDs über Schalter kennen und verstehen die Erklärung der Kontaktplanlogik. Dieses SPS-Beispiel ist für Ingenieurstudenten gedacht, um die Kontaktplanlogik zu lernen und zu üben. Die Implementierung desselben SPS-Programms für den industriellen Einsatz wird anders sein. SPS-Beispiel Entwerfen Sie eine SPS-Kontaktplanlogik für die folgende Anwendung. Wir verwenden drei Schalter zur Steuerung von drei LEDs. Wenn ein beliebiger Schalter eingeschaltet ist, ist LED I eingeschaltet. Wenn zwei beliebige Schalter eingeschaltet sind, ist LED II eingeschaltet. Wenn alle drei Schalter eingeschaltet sind, ist LED III eingeschaltet. Im vorherigen Artikel haben wir dasselbe SPS-Beispiel mit Kippschaltern besprochen. Lernen Sie die Logik. Eingänge Die erforderlichen digitalen Eingänge sind unten aufgeführt. Schalter 1: I0.0 Schalter 2: I0.1 Schalter 3: I0.2 Ausgänge Die erforderlichen digitalen Ausgänge sind unten aufgeführt. Motor 1: Q0.0 Motor 2: Q0.1 Motor 3: Q0.2 Kontaktplan zur Steuerung von LEDs über Schalter Erklärung der Kontaktplanlogik Für diese Anwendung haben wir die Software EcoStruxure Machine Expert Basic v1.2 für die SPS-Programmierung verwendet. Im obigen Programm haben wir normalerweise offene Kontakte sowie normalerweise geschlossene Kontakte für Schalter 1 (I0.0), Schalter 2 (I0.1) und Schalter 3 (I0.2) verwendet. In Sprosse 0 wird LED 1 eingeschaltet, wenn ein beliebiger Schalter (normalerweise offener Kontakt) eingeschaltet ist und die anderen 2 Schalter (normalerweise geschlossene Kontakte) AUS sind. Um LED 2 Sprosse 1 einzuschalten, sollten alle 2 Schalter, die normalerweise offene Kontakte sind, eingeschaltet sein und der andere verbleibende 1 Schalter als normalerweise geschlossener Kontakt sollte AUS sein. Damit LED 3 EIN ist, werden Schalter 1, Schalter 2 und Schalter 3 in Sprosse 2 in Reihe geschaltet, wodurch ein UND-Logikgatter implementiert wird. LED 3 wird EINGESCHALTET, wenn alle drei Schalter EINGESCHALTET sind. Wenn ein beliebiger Schalter EINGESCHALTET ist Das Signal fließt durch Schalter 1, da dieser sich im Zustand „wahr“ befindet. Im Zustand „falsch“ leiten Schalter 2 und Schalter 3 ebenfalls Signale an die Ausgänge weiter. Daher wird LED 1 EINGESCHALTET sein. LED I wird EINGESCHALTET, wenn Schalter 2 EINGESCHALTET ist und Schalter 1 und Schalter 3 AUS sind, da diese sich im Zustand „normalerweise geschlossener Kontakt“ befinden. Wenn Schalter 3 EINGESCHALTET ist und die anderen 2 Schalter, die normalerweise geschlossene Kontakte sind, AUS sind, wird LED 1 EINGESCHALTET. Das Einschalten von mehr als einem Schalter unterbricht den Stromkreis. Der normalerweise geschlossene Kontakt lässt im Zustand „wahr“ kein Signal zu. Als Ergebnis ist LED 1 AUS. Wenn zwei beliebige Schalter EIN sind LED 2 wird EINGESCHALTET, wenn Schalter 1 und Schalter 2 EINGESCHALTET sind und Schalter 3 AUS ist. Schalter 3 als normalerweise geschlossener Kontakt lässt im falschen Zustand das Signal durch. Wenn Schalter 1 und Schalter 3 EINGESCHALTET sind und Schalter 2 AUS ist, wird LED 2 EINGESCHALTET. Schalter 2 lässt im falschen Zustand das Signal durch. Das Signal fließt durch Schalter 2 und Schalter 3, da diese im wahren Zustand sind. Im falschen Zustand leitet Schalter 1 auch das Signal an die Ausgänge weiter. Daher ist LED 2 EINGESCHALTET. Wenn mehr als zwei Eingänge EINGESCHALTET sind, schließt der normalerweise geschlossene Kontakt, der für den dritten Schalter verwendet wird, den Stromkreis im wahren Zustand nicht. Daher wird LED 2 AUSGESCHALTET. Wenn alle 3 Schalter eingeschaltet sind Wenn alle drei Schalter SWITCH 1 (I0.0), SWITCH 2 (I0.1), SWITCH 3 (I0.2) eingeschaltet sind, leuchtet LED 3 und schaltet die anderen beiden Ausgänge AUS.
  20. Dies ist ein PLC-Programm zum automatischen Erhitzen und Mischen von Produkten. Lernen Sie die PLC-Programmierung mit diesem Beispiel für Ingenieurstudenten. Erhitzen und Mischen von Produkten Problembeschreibung Erstellen Sie ein automatisches System, in dem zwei Materialien in einem Tank gesammelt werden. Alle Materialien müssen gemischt werden, bis sie einen vordefinierten Temperatursollwert erreichen. Erstellen Sie für diese Anwendung ein Kontaktplanprogramm in S7-1200 PLC. Problemdiagramm Problemlösung Wir können dieses Problem mithilfe einer einfachen Logik lösen. Für dieses System sollten Sie zwei separate Füllstandsschalter in Betracht ziehen, um den Füllstand von zwei verschiedenen Materialien zu erkennen (sagen wir Material A und Material B). Erwägen Sie auch einen Füllstandsschalter zur Leerstandserkennung. Zur Kontrolle des Füllstands können wir ein einfachwirkendes Ventil verwenden (Typ „vollständig öffnen und vollständig schließen“). Zum Mischen wird ein Rührwerk verwendet, das mit der Motorwelle verbunden ist. Heizung und Temperatursensor sind im Tank installiert. Hier werden die Materialien gemischt, bis der Sollwert der Temperatur erreicht ist. Nach dem Mischen wird das Auslassventil (Q0.4) betätigt, um die gemischten Produkte abzulassen. Liste der Ein- und Ausgänge Eingabeliste Zyklusstart: I0.0 Zyklusstopp: I0.1 Materialstand B: I0.2 Materialstand A: I0.3 Leerstandsschalter: I0.4 Temperatursensor: I0.5 Ausgabeliste Einlassventil 1: Q0.0 Einlassventil 2: Q0.1 Rührwerkmotor: Q0.2 Heizung: Q0.3 Auslassventil: Q0.4 M-Speicher M0.0: Zyklus EIN SPS-Programm zum Erhitzen und Mischen des Produkts Programm erklärt In diesem Problem betrachten wir S7-1200 SPS und TIA-Portalsoftware zur Programmierung. Netzwerk 1: Dieses Netzwerk zeigt eine einfache Verriegelungsschaltung für Zyklus EIN und Zyklus AUS. Normalerweise offener (NO) Kontakt der Zyklus-START-Taste (I0.0) und NC-Kontakt der Zyklus-STOP-Taste (I0.1) zur Zyklusaktivierung. Netzwerk 2: Dieses Netzwerk dient zum Betreiben von Einlassventil 1 (Q0.0). Es wird betätigt, wenn ein niedriger Füllstand des Tanks erkannt wird (I0.4). Und es wird geschlossen, wenn der Füllstand von Material A durch einen Schalter mit Adresse (I0.3) erkannt wird. START PB (I0.0) ist ebenfalls parallel angeschlossen, sodass das Einlassventil durch Drücken von START PB (I0.0) gestartet werden kann, wenn kein niedriger Füllstand erkannt wird. Netzwerk 3: Dieses Netzwerk dient zum Betreiben von Einlassventil 2 (Q0.2). Es wird betätigt, wenn Material A bis zum gewünschten Füllstand gefüllt ist. Wenn der Zyklus läuft und der Füllstand von Material A erkannt wird, wird Einlassventil 2 (Q0.1) eingeschaltet. Netzwerk 4: Dieses Netzwerk dient zum Betrieb des Rührwerksmotors und der Heizung. Wenn der Tank mit Material A und Material B gefüllt ist, werden Heizung (Q0.3) und Rührwerksmotor (Q0.2) eingeschaltet. Netzwerk 5: Wenn der gesamte Mischvorgang und die Heizung abgeschlossen sind, wird das Auslassventil (Q0.4) eingeschaltet. Der NC-Kontakt des Leerstandsschalters (I0.4) wird verwendet, um das Auslassventil zu stoppen, wenn der Tank leer ist. Hinweis: Die obige Logik dient nur zur Erläuterung bestimmter Anwendungen. Das Diagramm dient der Darstellung, das tatsächliche System kann von diesem System abweichen. Ergebnis
  21. Dies ist das SPS-Programm für bedingte Logikschaltungen. Das folgende Beispiel basiert auf der Kontaktplanlogik unter Verwendung einer speicherprogrammierbaren Steuerung. Bedingte SPS-Steuerlogik In der Industrie oder in Werken werden viele Getriebesysteme für verschiedene Maschinen/Motoren verwendet. Für einen reibungslosen Betrieb von Getriebemotoren müssen diese jedes Mal geschmiert werden, da eine gute Wartung die Lebensdauer des Getriebes verlängern kann. Das Problem besteht jedoch darin, dass Bediener beim Betrieb der Maschine häufig Fehler machen, da wir bei jedem Getriebemotormechanismus zuerst mit der Schmierung beginnen müssen und dann der Hauptgetriebemechanismus starten sollte. Wir müssen also eine Logik implementieren, um sicherzustellen, dass die Dinge von einem SPS-System aus richtig gesteuert werden. Problemdiagramm Hinweis: Zur Vereinfachung der Diskussion werden in diesem Beispiel lokale/entfernte oder andere zulässige Sperren nicht berücksichtigt. Problemlösung Hier lösen wir dieses Problem anhand eines einfachen Beispiels für bedingte Logik. In diesem Beispiel gibt es einen Getriebemotor und wir müssen vor dem Starten für Schmierung sorgen. Zur Schmierung haben wir einen Schmiermotor (auch Ölpumpe oder Hilfsschmierölpumpe genannt), der den Hauptmotor oder Getriebemotor mit Schmieröl versorgt. Außerdem stellen wir ein Verriegelungssystem bereit, damit der Bediener den Hauptmotor nicht direkt starten/betreiben kann, ohne die richtige Schmierung zu verwenden. Andernfalls kann der Hauptmotor überhitzen und nach einigen Läufen ohne die richtige Pflege beschädigt werden. Der Bediener muss zuerst die Ölpumpe einschalten und kann erst dann den Hauptmotor betreiben. Mit dieser Logik können wir den Getriebemotor für einen langen Betrieb mit richtiger Schmierung pflegen. Bediener starten/stoppen die Ölpumpe mit den START- und STOP-Druckknöpfen der Ölpumpe. Sowohl die Ölpumpe als auch der Hauptmotor haben separate individuelle START- und STOP-Druckknöpfe, wie im obigen Diagramm gezeigt. Liste der PLC-Eingänge Ölpumpe START PB: I0.0 Ölpumpe STOP PB: I0.1 Hauptmotor START PB: I0.2 Hauptmotor STOP PB: I0.3 Liste der PLC-Ausgänge Ölpumpenmotor: Q0.0 Hauptmotor: Q0.1 PLC-Leiterdiagramm für bedingten Steuerkreis Beschreibung der Leiterlogik In dieser Anwendung haben wir Siemens S7-1200 PLC und TIA Portal Software zur Programmierung verwendet. Wir können diese Logik auch mit einem Relaiskreis entwerfen. Dieser Kreis wird auch als bedingter Steuerkreis bezeichnet, da die zweite Sequenz von der ersten Bedingung abhängt. Wir werden die Logik für die Ölpumpe in Netzwerk 1 schreiben. Hier nehmen wir den NO-Kontakt des Ölpumpen-START-PB (I0.0) und müssen auch einen NO-Kontakt der Ölpumpenspule (Q.0) zum Verriegeln des START-Befehls berücksichtigen. Setzen Sie den Öffnerkontakt des Ölpumpenstopps PB (I0.1) in Reihe, um den Stromkreis durch Drücken von Ölpumpenstopp PB (I0.1) zu entriegeln, damit der Bediener die Ölpumpe (Q0.0) stoppen kann. Schreiben Sie nun die Logik für den Hauptmotor in Netzwerk 2. Hier nehmen wir den Schließerkontakt des Hauptmotorstarts PB (I0.2) und nehmen auch einen weiteren Schließerkontakt der Hauptmotorspule, um den Hauptmotor (Q0.1) zu verriegeln. Setzen Sie den Öffnerkontakt des Hauptmotorstopps PB (I0.3) in Reihe, um den Stromkreis durch Drücken von Hauptmotorstopp PB (I0.3) zu entriegeln, damit der Bediener den Hauptmotor (Q0.1) stoppen kann. Setzen Sie den Schließerkontakt der Ölpumpe (Q0.0) in Reihe nach dem Hauptmotorstart PB (I0.2) zur Verriegelung. Damit muss der Bediener die Ölpumpe (Q0.0) starten und kann erst dann den Hauptmotor (Q0.1) STARTEN. Laufzeittestfälle Hinweis: Die obige SPS-Logik bietet eine grundlegende Vorstellung von der Anwendung eines SPS-Programms für die bedingte Steuerungslogik. Die Logik ist begrenzt und keine vollständige Anwendung.
  22. Entwerfen Sie ein SPS-Programm zur Regelung des Wasserstands eines Wasserspeichertanks durch Ein- und Ausschalten einer Ablasspumpe basierend auf niedrigem und hohem Pegel. SPS-Programm zur Wasserstandsregelung Logikbeschreibung Auto: Wenn der Auto-Modus im lokalen Bedienfeld ausgewählt ist, wird die Pumpe logisch basierend auf dem Niedrigpegelschalter und dem Hochpegelschalter gesteuert. Manuell: Wenn der manuelle Modus im lokalen Bedienfeld ausgewählt ist, wird die Pumpe unabhängig vom Status des Niedrigpegelschalters und des Hochpegelschalters manuell über die EIN/AUS-Taste im lokalen Bedienfeld gesteuert. Wenn der Wasserstand einen niedrigen Pegel erreicht, wird die Pumpe gestoppt. Wenn der Wasserstand einen hohen Punkt erreicht, wird die Pumpe gestartet, damit das Wasser abgelassen und der Pegel so gesenkt werden kann. Anzeigefeld: Dieses Feld enthält LEDs zur Anzeige des Status der Wasserstandsregelung. Es verfügt über Signale für Pumpenbetrieb sowie Niedrigpegel und Hochpegel. Wenn die Pumpe läuft, leuchtet die Statuslampe „Pumpe läuft“. Wenn dann der Niedrigpegelschalter aktiviert ist, leuchtet die Niedrigpegel-Statuslampe. Wenn der Hochpegelschalter aktiviert ist, leuchtet die Hochpegel-Statuslampe. SPS-Leiterlogik Manueller Modus ausgewählt, AUS-Position und Wasser auf niedrigem Niveau Manueller Modus ausgewählt & Wasser zwischen niedrigem und hohem Niveau Automatischer Modus ausgewählt & Hochpegelschalter aktiviert
  23. Ziel: Das Grundkonzept der SPS-Ventilsteuerungs-Kontaktplanlogik verstehen. Zielgruppe: Studenten, Techniker, Berufsanfänger, Ingenieure in Ausbildung. Hinweis: Barriere oder Relais sind in der obigen Abbildung nicht dargestellt. Listen wir die erforderlichen digitalen SPS-Eingänge und digitalen Ausgangssignale auf: Digitale SPS-Eingänge: Rückmeldung Ventil öffnen Rückmeldung Ventil schließen Digitale SPS-Ausgabe: Befehl Ventil aktivieren Programmierung der SPS-Ventilsteuerungs-Kontaktplanlogik Jedes pneumatische Ventil benötigt für seinen Betrieb eine Instrumentenluftzufuhr. Ein Luftfilterregler wird verwendet, um Flüssigkeiten oder Partikel aus der Instrumentenluftzufuhr zu entfernen und die erforderliche Luftzufuhr zum Ventil einzustellen. Der Ausgang des Luftfilterreglers ist über ein Magnetventil mit dem Ventilantrieb verbunden. Dieses Magnetventil wird verwendet, um die Instrumentenluftzufuhr zum Ventilantrieb zu steuern, d. h. ein- und auszuschalten. Beachten Sie, dass das Magnetventil (SOV) vom Typ „normally close“ (NC) ist. In der normalen Position ist das SOV in der Aus-Position oder im stromlosen Zustand, sodass die Instrumentenluftzufuhr blockiert wird, da das SOV normalerweise geschlossen ist. Wenn das SOV aktiviert wird, d. h. die SPS das Signal sendet, wird das SOV aktiviert und wird normalerweise offen (NO), sodass die Instrumentenluftzufuhr durch es hindurch möglich ist. Manche Leute verwechseln oft Magnetventil und Ventilantrieb. Diese beiden sind unterschiedlich, das SOV steuert (AN/AUS) die Instrumentenluftzufuhr und der Ventilantrieb steuert die Position des Ventils, entweder vollständig geöffnet oder vollständig geschlossen. AN/AUS-Ventile sind entweder mit Näherungsschaltern oder Endschaltern ausgestattet, um die Ventilposition entweder vollständig geöffnet oder vollständig geschlossen zu erfassen. Diese sind also mit den digitalen Eingängen der SPS verbunden. So kann die SPS den Ventilstatus im Feld entweder vollständig geöffnet oder vollständig geschlossen erkennen und dem Bediener über Grafiken anzeigen. Beachten Sie, dass unser AN/AUS-Ventil vom Typ „normally open“ ist, d. h. das Ventil ist in der offenen Position. also wird standardmäßig eine offene Rückmeldung an die SPS gesendet oder wir können sagen, dass der offene Rückmeldungsendschalter oder Näherungsschalter aktiviert wird und der geschlossene Rückmeldungsschalter sich im deaktivierten Zustand befindet. Nehmen wir an, die SPS sendet einen digitalen Ausgabebefehl an das EIN/AUS-Ventil (über eine Barriere oder ein Relais). Nehmen wir an, wir haben ein mit 24 V Gleichstrom betriebenes Magnetventil, das am EIN/AUS-Ventil montiert ist. Im Allgemeinen wird entweder eine Barriere oder ein Relais nach dem digitalen Ausgabemodul der SPS platziert. Nehmen wir an, wir haben eine Barriere, zuerst empfängt die Barriere den Befehl des digitalen Ausgabemoduls der SPS (der SPS-Befehl ist Barriereeingang), dann aktiviert die Barriere ihren Ausgang (Barriereausgang) und die Barriere sendet die 24 V Gleichstromleistung an das jeweilige EIN/AUS-Ventil. Der Zweck der Barriere oder des Relais besteht darin, die SPS- und Feldsignale zu isolieren oder aus Sicherheitsgründen oder um die Strom-/Spannungssignale zu verstärken. Jetzt empfängt das EIN/AUS-Ventil den SPS-Befehl, d. h. es hat die 24 V Gleichstromleistung für das Magnetventil von der Barriere erhalten. also wird das Magnetventil jetzt aktiviert und wechselt in den normalerweise offenen (NC) Zustand. Jetzt leitet das Magnetventil die Instrumentenluftzufuhr an den Ventilantrieb weiter, da dieser normalerweise geöffnet wird. Der Ventilantrieb erhält die Instrumentenluftzufuhr und bewegt den Ventilschaft entsprechend, und die Ventilposition ändert sich vom vollständig geöffneten in den vollständig geschlossenen Zustand. Wenn das EIN/AUS-Ventil die Schaftbewegung beginnt, wird die Öffnungsrückmeldung sofort gelöscht (der Näherungsschalter erkennt keine auf dem Schaft montierten Objekte). Nach Beginn der Ventilschaftbewegung und vor Erreichen der Schließposition sind weder Öffnungs- noch Schließrückmeldungen für die SPS verfügbar, und wir bezeichnen dies als Übergangszustand. Nachdem das EIN/AUS-Ventil vollständig geschlossen ist, wird der Schließrückmeldungsschalter (Näherung oder Begrenzung) aktiviert und das Schließrückmeldungssignal wird an die SPS gesendet und dem Bediener angezeigt. Hinweis: Manchmal kann das EIN/AUS-Ventil dazwischen hängen bleiben, sodass der Bediener keine Rückmeldung auf der Grafik erhält, da sowohl Öffnungs- als auch Schließrückmeldungsschalter nur entweder vollständig geöffnete oder vollständig geschlossene Zustände des Ventils erkennen. Es ist nicht möglich, einen Zwischenzustand des Ventils zu erkennen. Nehmen wir an, die SPS zieht jetzt den Ausgangsbefehl an das EIN/AUS-Ventil zurück, d. h. der Barriereneingang wird ausgeschaltet, sodass die Barriere stromlos wird oder der Barrierenausgang AUS ist, die 24-V-Gleichstromversorgung wird zum Magnetventil getrennt/entfernt. Wenn die Stromversorgung des Magnetventils entfernt wird, ändert das SOV seinen Zustand von NO zu NC. Das Magnetventil wird normalerweise geschlossen, d. h. die Instrumentenluftzufuhr zum Ventilantrieb wird gestoppt oder getrennt. Daher kehrt das EIN/AUS-Ventil auch in seinen ursprünglichen Zustand zurück, d. h. in den geöffneten Zustand. Die SPS kann basierend auf einigen Logiken oder Echtzeit-Eingangssignalen ein Ausgangsbefehlssignal senden. Beispiel: Wenn der Füllstand eines Fasses einen hohen Alarm erreicht, muss das EIN/AUS-Ventil für die Fasszufuhr geschlossen werden. Details zum EIN/AUS-Ventil: In unserem Beispiel haben wir ein pneumatisches EIN/AUS-Ventil betrachtet. Zuerst sehen wir uns die Liste der Komponenten im Ventil und ihren Zweck an. a. Luftfilterregler: Luftfilter werden verwendet, um flüssiges Wasser und Partikel aus Druckluftquellen zu entfernen. Dies sind „mechanische Filter“ und entfernen keine Öldämpfe oder chemischen Verunreinigungen in Dampfform. Klicken Sie hier für Prinzip und Animation. b. Magnetventil: Ein Magnetventil ist ein elektromechanisch gesteuertes Ventil. Das Ventil verfügt über einen Magneten, eine elektrische Spule mit einem beweglichen ferromagnetischen Kern in der Mitte. Dieser Kern wird als Kolben bezeichnet. In Ruhestellung verschließt der Kolben eine kleine Öffnung. Ein elektrischer Strom durch die Spule erzeugt ein Magnetfeld. Das Magnetfeld übt eine Kraft auf den Kolben aus. Dadurch wird der Kolben zur Mitte der Spule gezogen, sodass sich die Öffnung öffnet. Dies ist das Grundprinzip, das zum Öffnen und Schließen von Magnetventilen verwendet wird. Magnetventilanimation Magnetventiltypen und -prinzipien c. Rückmeldung öffnen und Rückmeldung schließen: Ein Näherungsschalter erkennt die Nähe eines Objekts. Per Definition sind diese Schalter berührungslose Sensoren, die kapazitive, induktive, magnetische, elektrische oder optische Mittel verwenden, um die Nähe der Ventilposition (offen oder geschlossen) zu erfassen. d. Ventilantrieb: Ein Ventilantrieb ist ein Gerät, das mithilfe einer Stromquelle Kraft zum Öffnen oder Schließen des Ventils erzeugt. Diese Stromquelle kann manuell (Hand, Zahnrad, Kettenrad, Hebel usw.) oder elektrisch, hydraulisch oder pneumatisch sein. e. Instrumentenluftversorgung: Druck- und Trockenluftversorgung für das Ventil.
  24. Instrumentierung und Steuerung basieren auf der Umwandlung physikalischer oder Prozessvariablen in ein nützlicheres Format für die Anzeige des Bedieners. Der Druck in einem Rohr wird in die mechanische Auslenkung einer Membran umgewandelt, die von einem Dehnungsmessstreifen (die Membran und der Dehnungsmessstreifen bilden einen Wandler) in elektrische Energie umgewandelt wird, dann von einem E/A-Modul in einen numerischen Ganzzahlwert und dann von der SPS oder HMI zur Anzeige in einen Gleitkommawert in einer technischen Einheit. Diese Informationen werden auch verwendet, um Ausgabebefehle zu generieren, die in elektrische Signale und dann in mechanische Aktionen umgewandelt werden. Der Trick besteht darin, die E/A-Beziehungen der verschiedenen Wandler zu verstehen. So liest die SPS die Daten von Feldtransmittern Beispielsweise verursacht eine Durchflussöffnung einen vorhersehbaren Druckabfall, wenn Flüssigkeiten darüber fließen. Ein Drucktransmitter kann diesen Druckabfall messen, indem er den vorgeschalteten Druck mit dem nachgeschalteten Druck vergleicht. Obwohl dieser Druckunterschied nicht linear zur Durchflussrate ist, besteht eine wiederholbare Beziehung zu ihr. Diese Beziehung lässt sich am besten als Quadratwurzelfunktion darstellen. Die Quadratwurzel des Differenzdrucksignals linearisiert es effektiv mit der Durchflussrate. Nachdem eine lineare Beziehung hergestellt wurde, kann die gesamte Umwandlungssequenz vom Sender zur Computeranzeige aus einer Messung abgeleitet werden. Die folgende Abbildung zeigt zwei typische Temperaturmessschaltungen wie folgt: Die obere Konfiguration verwendet die externe Stromversorgung des Senders, um die Signalschleife mit Strom zu versorgen. Diese Konfiguration wird als Vierleiterschleife bezeichnet. Die untere Konfiguration verwendet eine interne Stromversorgung (AI-Kartenstromversorgung), um die Schleife mit Strom zu versorgen. Diese Konfiguration wird als Zweileiterschleife bezeichnet. Die folgende Diskussion über Einheitenumrechnungen gilt für beide Schaltungstypen. Konzentrieren Sie sich auf die obere Schaltung. Ein Thermoelement ist das Sensorelement. Thermoelemente sind Geräte, die das Prinzip des Bimetallkontakts verwenden, um ein kleines Millivoltsignal zu erzeugen. Beachten Sie, dass die im Diagramm dargestellte Temperatur-Spannungs-Kurve über das gesamte Temperaturintervall hinweg relativ linear ist. Außerhalb dieses Temperaturintervalls kann das Signal weniger linear werden (eine Eigenschaft eines Thermoelements), aber das ist hier nicht von Bedeutung. Die Skalierung des Instruments muss immer bei der Prozessmessung beginnen. Der Konstrukteur konsultiert das Wärme- und Materialbilanzblatt (HMB) für unser imaginäres System und findet heraus, dass die erwartete Temperatur am Messpunkt ungefähr 105 °C beträgt. Die vorgeschaltete Heizung kann das System auf ungefähr 130 °C erhitzen, bevor sie aufgrund ihrer Übertemperaturverriegelung abschaltet. Der Konstrukteur weiß, dass ein richtig kalibrierter Bereich den normalen Betriebspunkt ungefähr in der Mitte der Kurve platzieren würde. Das obere Ende müsste über 130 °C liegen. Nach einigem Überlegen entscheidet sich der Ingenieur für einen kalibrierten Bereich von 15 bis 150 °C und wählt ein Thermoelement vom Typ K, das über dieses Temperaturintervall eine Ausgabe von 0,597 bis 6,138 mV liefert. Der Temperaturtransmitter muss dann auf dem Prüfstand kalibriert werden, um ein 4-20 mA-Ausgangssignal bereitzustellen, das proportional zum erwarteten 0,597 bis 6,138 mV-Eingangssignal des Thermoelements ist. Der Transmitter ist eine Stromquelle (im Gegensatz zu einer Spannungsquelle) und variiert seine Leistungsabgabe nach Bedarf, um eine konstante Milliampere-Ausgabe aufrechtzuerhalten, die proportional zu den Millivolt an seinem Eingang ist, d. h. der gemessenen Temperaturanzeige. (Hinweis: Eine Spannungsquelle, wie z. B. eine Batterie, versucht, unabhängig von der Belastung eine konstante Spannung aufrechtzuerhalten, während eine Stromquelle versucht, unabhängig von der Belastung einen konstanten Strom aufrechtzuerhalten.) Der Temperaturtransmitter wandelt dieses Signal dann in ein skaliertes 4-20 mA-Signal um, in diesem Fall für einen Bereich von 15 bis –150 °C. Die SPS verfügt über ein analoges Eingangsmodul, das die Ausgabe des Temperaturtransmitters erkennt. Nahezu alle analogen Eingangsmodule sind Voltmeter, auch wenn sie als Milliampere-Eingänge aufgeführt sind. Manchmal befindet sich der Widerstand extern auf der Klemmleiste und manchmal intern auf dem PLC-E/A-Modul (siehe Abbildung). In beiden Fällen wird das 4-20 mA-Signal in eine Spannung umgewandelt. Normalerweise beträgt diese Spannung 1-5 VDC, da der verwendete Widerstand 250 Ohm beträgt. Dieser analoge Wert muss dann in einen binären Wert umgewandelt werden. In unserem Beispiel gibt die PLC-Spezifikation dieses spezielle PLC-E/A-Modul mit einer Auflösung von 12 Bit an. Um die Auflösung des Moduls in Bezug auf die Prozessvariable zu ermitteln, führen Sie eine binäre Umwandlung durch: 212 = 4095. Für einen Eingangsbereich von 1-5 VDC stellt das PLC-E/A-Modul dem PLC-Programm also einen ganzzahligen Wert im Bereich von 0 bis 4095 zur Verfügung. Das PLC-Programm kann diese Daten nach Bedarf abrufen und verwenden. Eine der möglichen Aktionen des SPS-Programms besteht darin, diesen Datenwert in einen Netzwerkschnittstellenpuffer (eine Reihe zusammenhängender Speicherorte im SPS-Speicher) zu verschieben, um ihn weiter an die HMI zu übertragen. Der Rohwert wird dann für die Datenübertragung über das Netzwerk bereitgestellt. Das HMI empfängt diesen übertragenen Datenstrom, der dann in einem Eingabedatenpuffer gespeichert wird. Der HMI-Computer verfügt über eine Tagdatei-Datenbank, die Anweisungen zur Bearbeitung jedes Datenelements zur Präsentation für den Bediener enthält. Viele der Tags in der Tagdatei sind mit Datenelementen im Eingabedatenpuffer verknüpft. Ein solches Tag ist mit diesem bestimmten Ort verknüpft. Der Rohwert von 0 bis 4095 wird extrahiert und mithilfe der Formel, die entweder in der Tagdatei-Datenbank oder in der Grafikbildschirmsoftware, die die Informationen verwendet, eingebettet ist, in technische Einheiten umgewandelt. Die Formel in unserem Beispielfall ist in der folgenden Abbildung dargestellt. Der erzeugte Wert (85,88) wäre der Wert, der dem Bediener in °C wie folgt in den folgenden Abbildungen angezeigt wird:
  25. Wie wir bei Zählern und Zeitgebern gesehen haben, erzeugen einige SPS-Anweisungen andere digitale Werte als einfache Boolesche (Ein/Aus-)Signale. Zähler haben Register für den aktuellen Wert (CV) und Zeitgeber haben Register für die verstrichene Zeit (ET), die beide normalerweise ganzzahlige Werte sind. Viele andere SPS-Anweisungen sind darauf ausgelegt, nicht-Boolesche Werte wie diese zu empfangen und zu manipulieren, um nützliche Steuerfunktionen auszuführen. Der Standard IEC 61131-3 spezifiziert eine Vielzahl von Anweisungen zum Datenvergleich zum Vergleichen zweier nicht-Boolescher Werte und zum Erzeugen boolescher Ausgaben. Anweisungen zum Vergleichen von SPS-Daten Die grundlegenden Vergleichsoperationen „kleiner als“ (<), „größer als“ (>), „kleiner oder gleich“ (≤), „größer oder gleich“ (≥), „gleich“ (=) und „ungleich“ (6=) sind als Reihe von „Box“-Anweisungen im IEC-Standard zu finden: Der Q-Ausgang für jede Anweisungs-„Box“ wird aktiviert, wenn die ausgewertete Vergleichsfunktion „wahr“ ist und der Aktivierungseingang (EN) aktiv ist. Wenn der Aktivierungseingang aktiv bleibt, die Vergleichsfunktion jedoch falsch ist, wird der Q-Ausgang deaktiviert. Wenn der Aktivierungseingang deaktiviert wird, behält der Q-Ausgang seinen letzten Zustand bei. Eine praktische Anwendung für eine Vergleichsfunktion ist die sogenannte alternierende Motorsteuerung, bei der die Laufzeiten zweier redundanter Elektromotoren überwacht werden und die SPS bestimmt, welcher Motor als nächstes eingeschaltet wird, basierend darauf, welcher Motor am wenigsten gelaufen ist: .In diesem Programm verfolgen zwei remanente Einschaltverzögerungstimer die Gesamtlaufzeit jedes Elektromotors und speichern die Laufzeitwerte in zwei Registern im Speicher der SPS: Laufzeit Motor A und Laufzeit Motor B. Diese beiden ganzzahligen Werte werden zum Vergleich in das Anweisungsfeld „größer als“ eingegeben. Wenn Motor A länger gelaufen ist als Motor B, wird Motor B beim nächsten Drücken des „Start“-Schalters zum Starten freigegeben. Wenn Motor A kürzer oder gleich lange gelaufen ist wie Motor B (das Szenario wird durch die blau hervorgehobenen Statusanzeigen angezeigt), wird Motor A zum Starten freigegeben. Die beiden in Reihe geschalteten virtuellen Kontakte OUT Motor A und OUT Motor B sorgen dafür, dass der Vergleich der Motorlaufzeiten erst dann erfolgt, wenn beide Motoren gestoppt sind. Würde der Vergleich kontinuierlich erfolgen, könnte es passieren, dass beide Motoren starten, wenn jemand zufällig den Start-Taster drückt, während ein Motor bereits läuft.
Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...