

leikang
Staff group-
Content Count
189 -
Joined
-
Last visited
Content Type
Profiles
Forums
PLC programming technology and HMI interface design Simplified Chinese database
- PLC AND HMI SIMPLIFIED CHINESE ARTICLES
- PLC AND HMI SIMPLIFIED CHINESE ARTICLE Comments
- PLC AND HMI SIMPLIFIED CHINESE ARTICLE Reviews
PLC and HMI Brand Database
- PLC AND HMI BRANDS INTRODUCTIONS
- PLC AND HMI BRAND INTRODUCTION Comments
- PLC AND HMI BRAND INTRODUCTION Reviews
PLC programming technology and HMI interface design English database
- PLC AND HMI ENGLISH ARTICLES
- PLC AND HMI ENGLISH ARTICLE Comments
- PLC AND HMI ENGLISH ARTICLE Reviews
PLC programming technology and HMI interface design Russian database
- PLC AND HMI RUSSIAN ARTICLES
- PLC AND HMI RUSSIAN ARTICLE Comments
- PLC AND HMI RUSSIAN ARTICLE Reviews
Spanish database on PLC programming techniques and HMI interface design
- PLC AND HMI SPANISH ARTICLES
- PLC AND HMI SPANISH ARTICLE Comments
- PLC AND HMI SPANISH ARTICLE Reviews
German database on PLC programming technology and HMI interface design
- PLC AND HMI ARTICLES IN GERMAN
- PLC AND HMI ARTICLE IN GERMAN Comments
- PLC AND HMI ARTICLE IN GERMAN Reviews
Downloads
Store
Gallery
Blogs
Calendar
Videos
Everything posted by leikang
-
Programa PLC para contar objetos en movimiento en una cinta transportadora
leikang posted A plc and hmi article in Spanish in PLC programming learning
Este es un programa PLC para implementar un programa para contar objetos en una cinta transportadora en movimiento. Conteo de objetos en movimiento en una cinta transportadora Los objetos se mueven en la cinta transportadora. Necesitamos contar la cantidad total de objetos recolectados al final de la cinta transportadora y mostrarla en el panel de control local. Escriba un programa PLC para esta aplicación. Diagrama del problema Solución del problema Aquí usamos un programa PLC en escalera para implementar esta lógica. La mayoría de los sensores de proximidad se usan para detectar los objetos. Aquí montamos un sensor de proximidad para detectar las piezas u objetos que se mueven en la cinta transportadora. Los sensores inductivos se usan principalmente para detectar objetos metálicos. Para otro tipo de objetos, usamos un sensor de proximidad capacitivo para detectar los objetos que se mueven en la cinta transportadora. Conectamos este sensor al PLC y, mediante la lógica del contador, contaremos la cantidad de objetos y mostraremos la cantidad total en la pantalla del panel de control local. Aquí usamos un contador ascendente para contar los objetos recolectados al final de la cinta transportadora. Nota: Aquí consideramos una aplicación simple para contar objetos. Consideramos un sensor de proximidad para detectar los objetos. El sensor de proximidad detectará el objeto y el contador ascendente del PLC contará los objetos recolectados. Lista de entradas y salidas Entradas digitales Inicio: I0.0 Parada: I0.1 Proximidad: I0.2 (detección de objetos) Reinicio de contador PB: I0.3 Salida digital Ciclo ON: Q0.0 Memoria M Reinicio de contador: M0.1 Total de objetos recopilados: MW10 Lógica de escalera del PLC para contar objetos en la cinta transportadora Explicación de la lógica de escalera Para esta aplicación, utilizamos el PLC S7-300 y el software del portal TIA para la programación. También podemos implementar esta lógica utilizando otro PLC. Red 1: En la primera red, utilizamos un circuito de enclavamiento para el ciclo ON. Aquí usamos START PB (I0.0) para iniciar el ciclo y STOP PB (I0.1) para detener el ciclo. Red 2: La instrucción de contador de PLC se usa para contar la cantidad de objetos. Los sensores de proximidad se montan cerca del transportador. Cuando un objeto se acerca al sensor de proximidad (I0.2), detectará el objeto y la salida del sensor se activará o cambiará al estado ON. Cuando no haya ningún objeto cerca del sensor de proximidad, la salida del sensor se desactivará o cambiará al estado OFF. El contador de PLC cuenta de manera incremental. La cantidad total de objetos contados se almacenará en la palabra de memoria o registro (MW10). Nota: la aplicación anterior puede ser diferente de la aplicación real. Este ejemplo es solo para fines explicativos. También podemos implementar esta lógica en otros PLC. Este es el concepto simple de contador ascendente. Al usar este concepto, podemos contar objetos que se mueven en el transportador o cualquier otra aplicación de conteo. Esta lógica es solo una parte o solo para la lógica de la aplicación específica. Todos los parámetros considerados en el ejemplo se incluyen únicamente con fines explicativos; los parámetros pueden ser diferentes en las aplicaciones reales. Resultado -
Funciones lógicas de PLC
leikang posted A plc and hmi article in Spanish in PLC programming learning
Existen muchas situaciones de control que requieren que se inicien acciones cuando se cumple una determinada combinación de condiciones de funciones lógicas en un PLC. Funciones lógicas de PLC Por ejemplo, en el caso de una máquina perforadora automática, podría existir la condición de que el motor de la perforadora se active cuando se activen los interruptores de límite que indican la presencia de la pieza de trabajo y la posición de la perforadora como si estuvieran en la superficie de la pieza de trabajo. Dicha situación implica la función lógica AND, en la que deben cumplirse tanto la condición A como la condición B para que se produzca una salida. Esta sección es una consideración de dichas funciones lógicas. PLC Y LÓGICA La Figura 1.7a muestra una situación en la que una salida no se activa a menos que dos interruptores, normalmente abiertos, estén cerrados. El interruptor A y el interruptor B deben estar cerrados, lo que da lugar a una situación de lógica AND. Podemos pensar en esto como la representación de un sistema de control con dos entradas A y B (Figura 1.7b). Solo cuando A y B están encendidos hay una salida. Por lo tanto, si utilizamos 1 para indicar una señal de encendido y 0 para representar una señal de apagado, entonces para que haya una salida 1 debemos tener A y B ambos 1. Se dice que una operación de este tipo está controlada por una compuerta lógica y la relación entre las entradas a una compuerta lógica y las salidas se tabula en una forma conocida como tabla de verdad. Por lo tanto, para la compuerta AND tenemos: Un ejemplo de una compuerta AND es un sistema de control de enclavamiento para una máquina herramienta de modo que solo pueda operarse cuando la protección de seguridad esté en posición y la energía encendida. La Figura 1.8a muestra un sistema de compuerta AND en un diagrama de escalera. El diagrama de escalera comienza con j j, un conjunto de contactos normalmente abiertos etiquetados como entrada A, para representar el interruptor A y en serie con él j j, otro conjunto de contactos normalmente abiertos etiquetados como entrada B, para representar el interruptor B. La línea luego termina con O para representar la salida. Para que haya una salida, deben existir tanto la entrada A como la entrada B, es decir, los contactos de entrada A y entrada B deben estar cerrados (Figura 1.8b). En general: En un diagrama de escalera, los contactos en un peldaño horizontal, es decir, los contactos en serie, representan las operaciones lógicas AND. PLC OR LOGIC La Figura 1.9a muestra un circuito eléctrico donde se activa una salida cuando se cierran los interruptores A o B, ambos normalmente abiertos. Esto describe una compuerta lógica OR (Figura 1.9b) en la que la entrada A o la entrada B deben estar activadas para que haya una salida. La tabla de verdad es: La Figura 1.10a muestra un sistema de compuerta lógica OR en un diagrama de escalera, y la Figura 1.10b muestra una forma alternativa equivalente de dibujar el mismo diagrama. El diagrama de escalera comienza con j j, contactos normalmente abiertos etiquetados como entrada A, para representar el interruptor A y en paralelo con él j j, contactos normalmente abiertos etiquetados como entrada B, para representar el interruptor B. La entrada A o la entrada B deben estar cerradas para que se active la salida (Figura 1.10c). La línea termina con O para representar la salida. En general: Las rutas alternativas proporcionadas por las rutas verticales desde el peldaño principal de un diagrama de escalera, es decir, las rutas en paralelo representan operaciones lógicas OR. Un ejemplo de un sistema de control de compuerta OR es una cinta transportadora que transporta productos embotellados al empaque donde se activa una placa deflectora para desviar las botellas hacia un contenedor de rechazo si el peso no está dentro de ciertas tolerancias o si no hay tapa en la botella. PLC NO ES LÓGICO La Figura 1.11a muestra un circuito eléctrico controlado por un interruptor que está normalmente cerrado. Cuando hay una entrada al interruptor, este se abre y no hay corriente en el circuito. Esto ilustra una compuerta NOT en la que hay una salida cuando no hay entrada y no hay salida cuando hay una entrada (Figura 1.11c). A veces se hace referencia a la compuerta como inversor. La tabla de verdad es: La Figura 11.11b muestra un sistema de compuerta NOT en un diagrama de escalera. Los contactos de entrada A se muestran como normalmente cerrados. Esto está en serie con la salida ( ). Sin entrada a la entrada A, los contactos están cerrados y, por lo tanto, hay una salida. Cuando hay una entrada a la entrada A, se abre y, por lo tanto, no hay salida. Un ejemplo de un sistema de control de compuerta NOT es una luz que se enciende cuando oscurece, es decir, cuando no hay entrada de luz al sensor de luz, hay una salida. LÓGICA NAND DE PLC Supongamos que después de una compuerta AND ponemos una compuerta NOT (Figura 1.12a). La consecuencia de tener la compuerta NOT es invertir todas las salidas de la compuerta AND. Una alternativa, que da exactamente los mismos resultados, es poner una compuerta NOT en cada entrada y luego poner después una OR (Figura 1.12b). Se produce la misma tabla de verdad, es decir: Las entradas A y B tienen que ser 0 para que haya una salida 1. Hay una salida cuando la entrada A y la entrada B no son 1. La combinación de estas compuertas se denomina compuerta NAND (Figura 1.13). Un ejemplo de un sistema de control de compuerta NAND es una luz de advertencia que se enciende si, con una máquina herramienta, el interruptor de protección de seguridad no se ha activado y el interruptor de límite que señala la presencia de la pieza de trabajo no se ha activado. LÓGICA NOR DE PLC Supongamos que después de una compuerta OR ponemos una compuerta NOT (Figura 1.14a). La consecuencia de tener la compuerta NOT es invertir las salidas de la compuerta OR. Una alternativa, que da exactamente los mismos resultados, es poner una compuerta NOT en cada entrada y luego una compuerta AND para las entradas invertidas resultantes (Figura 1.14b). La siguiente es la tabla de verdad resultante: La combinación de compuertas OR y NOT se denomina compuerta NOR. Hay una salida cuando ni la entrada A ni la entrada B son 1. La Figura 1.15 muestra un diagrama de escalera de un sistema NOR. Cuando la entrada A y la entrada B no están activadas, hay una salida 1. Cuando X400 o X401 son 1, la salida es 0. LÓGICA OR exclusiva (XOR) de PLC La compuerta OR da una salida cuando una o ambas entradas son 1. Sin embargo, a veces es necesario contar con una compuerta que dé una salida cuando una de las entradas sea 1, pero no cuando ambas sean 1, es decir, que tenga la tabla de verdad: Esta compuerta se denomina compuerta OR exclusiva o XOR. Una forma de obtener dicha compuerta es utilizando las compuertas NOT, AND y OR, como se muestra en la Figura 1.16. La Figura 1.17 muestra un diagrama de escalera para un sistema de compuerta XOR. Cuando la entrada A y la entrada B no están activadas, la salida es 0. Cuando solo se activa la entrada A, la rama superior da como resultado 1. Cuando solo se activa la entrada B, la rama inferior da como resultado 1. Cuando se activan tanto la entrada A como la entrada B, no hay salida. En este ejemplo de una compuerta lógica, la entrada A y la entrada B tienen dos conjuntos de contactos en los circuitos, uno normalmente abierto y el otro normalmente cerrado. Con la programación de PLC, cada entrada puede tener tantos conjuntos de contactos como sea necesario. LÓGICA NOR exclusiva (XNOR) de PLC -
Módulos de entrada y salida de PLC
leikang posted A plc and hmi article in Spanish in PLC programming learning
Todo controlador lógico programable debe tener algún medio para recibir e interpretar señales de sensores del mundo real, como interruptores y codificadores, y también debe poder controlar elementos de control del mundo real, como solenoides, válvulas y motores. Esto se conoce generalmente como capacidad de entrada/salida o E/S. Los PLC monolíticos ("de ladrillo") tienen una cantidad fija de capacidad de E/S integrada en la unidad, mientras que los PLC modulares ("de bastidor") utilizan "tarjetas" de placa de circuito individuales para proporcionar capacidad de E/S personalizada. Módulos de entrada y salida de PLC Las ventajas de utilizar tarjetas de E/S reemplazables en lugar de un diseño de PLC monolítico son numerosas. La primera, y más obvia, es el hecho de que las tarjetas de E/S individuales se pueden reemplazar fácilmente en caso de falla sin tener que reemplazar todo el PLC. Se pueden elegir tarjetas de E/S específicas para aplicaciones personalizadas, inclinándose por tarjetas discretas para aplicaciones que utilizan muchas entradas y salidas de encendido/apagado, o inclinando por tarjetas analógicas para aplicaciones que utilizan muchas señales de 4-20 mA y similares. Algunos PLC incluso ofrecen la característica de tarjetas intercambiables en caliente, lo que significa que cada tarjeta se puede quitar e insertar una nueva sin desenergizar el procesador y el bastidor del PLC. Tenga en cuenta que no se debe asumir que ningún sistema tiene tarjetas intercambiables en caliente, porque si intenta cambiar una tarjeta "en vivo" en un sistema sin esta característica, corre el riesgo de dañar la tarjeta y/o el resto de la unidad a la que está conectada. Algunos PLC tienen la capacidad de conectarse a bastidores remotos sin procesador llenos de tarjetas o módulos de E/S adicionales, lo que proporciona una manera de aumentar la cantidad de canales de E/S más allá de la capacidad de la unidad base. La conexión del PLC anfitrión a los racks de E/S remotos generalmente toma la forma de una red digital especial, que puede abarcar una gran distancia física: Un esquema alternativo para la expansión del sistema es conectar en red varios PLC, donde cada PLC tiene su propio rack y procesador dedicado. A través del uso de instrucciones de comunicación, un PLC puede programarse para leer datos de otro PLC y/o escribir datos en él, utilizando efectivamente el otro PLC como una extensión de su propia E/S. Aunque este método es más costoso que la E/S remota (donde los racks remotos carecen de sus propios procesadores dedicados), proporciona la capacidad de control independiente en caso de que se interrumpa la conexión de red entre los procesadores del PLC. La capacidad de entrada/salida de los controladores lógicos programables viene en tres variedades básicas: discreta, analógica y de red. -
Was ist ein Datenblock? Globale Datenblöcke in SPS
leikang posted A plc and hmi article in German in PLC programming learning
Beim Programmieren einer SPS stehen verschiedene Blockstrukturen zur Verfügung. Dazu gehören Funktions-FCs, Funktionsblöcke FBs und Datenblöcke DBs. Diese Blöcke sind sehr praktische Tools, mit denen Sie Ihre SPS-Logik besser gestalten und Ihren Code lesbarer und einfacher nachvollziehbar und debuggbar machen können. In früheren Artikeln haben wir die FCs und FBs besprochen. In diesem Artikel werden wir die Datenblock-DBs besprechen, genauer gesagt den globalen Datenblock. Inhalt: Was ist ein Datenblock-DB? Typen von Datenblöcken. Was ist ein globaler Datenblock? Erstellen eines globalen Datenblocks? Arbeiten mit globalen Datenblöcken. Beispielsimulation. Was ist ein Datenblock? Ein Datenblock-DB ist ein Speicherbereich, der zum Speichern der Werte der Parameter verwendet wird, die während der Ausführung des SPS-Programms geschrieben werden. Im Gegensatz zum Codeblock enthält der Datenblock-DB nur Variablendeklarationen. Er hat keine Netzwerke oder Anweisungen wie ein FC oder ein FB. Die Struktur des DB wird dadurch definiert, wie viele Variablen Sie im Datenblock deklariert haben. Datenblocktypen in der SPS Es gibt zwei Arten von Datenblöcken: Globale Datenblöcke Instanzdatenblöcke ARRAY-Datenblöcke Globale Datenblöcke Wie der Name schon sagt, wird der globale Datenblock global für die gesamte SPS-Logik deklariert. Er ist keinem bestimmten Codeblock zugewiesen. Sie können von jedem Codeblock an beliebiger Stelle in Ihrer SPS-Logik auf die Werte eines globalen Datenblocks zugreifen. Ein globaler Datenblock enthält nur statische Tags. Die Struktur des globalen Datenblocks kann frei definiert werden. In der Deklarationstabelle für Datenblöcke deklarieren Sie die Datenelemente, die im globalen Datenblock enthalten sein sollen. Instanzdatenblöcke Der Instanzdatenblock wird direkt einem Funktionsblock-FB zugewiesen, unabhängig davon, ob dieser Funktionsblock intern in der SPS definiert ist, wie Timer und Zähler, oder ob es sich um benutzerdefinierte Funktionsblöcke (FBs) handelt. Die Struktur eines Instanzdatenblocks kann nicht frei definiert werden, sondern wird durch die Schnittstelle des Funktionsblocks bestimmt. Der Instanzdatenbaustein enthält genau die Bausteinparameter und Variablen, die in der Funktionsbausteinschnittstelle deklariert sind. Sie können im Instanzdatenbaustein jedoch instanzspezifische Werte definieren, z. B. Startwerte für die deklarierten Variablen. ARRAY-Datenbausteine ARRAY-Datenbausteine sind nur für S7-1500-CPUs verfügbar und sind globale Datenbausteine, die aus einem ARRAY bestehen. Dieses ARRAY kann auf einem beliebigen Datentyp basieren. Beispielsweise ist ein ARRAY eines PLC-Datentyps (UDT) möglich. Der DB enthält neben dem ARRAY keine anderen Elemente. Aufgrund ihrer flachen Struktur erleichtern ARRAY-Datenbausteine den Zugriff auf die ARRAY-Elemente und deren Übertragung an aufgerufene Bausteine. Der Abschnitt „Verschiebeoperationen“ der Task Card „Anweisungen“ bietet Möglichkeiten zur Adressierung von ARRAY-DBs. In diesem Artikel werden wir uns mit dem globalen Datenbaustein befassen und die anderen beiden Typen in separaten Artikeln besprechen. Was ist ein globaler Datenbaustein? Datenbausteine werden zum Speichern von SPS-Programmdaten verwendet. Das heißt, sie enthalten variable Daten, die vom Anwenderprogramm verwendet werden. Globale Datenbausteine speichern Daten, die von allen anderen Bausteinen verwendet werden können. Die maximale Größe von Datenbausteinen variiert je nach CPU. Die Struktur globaler Datenbausteine können Sie frei definieren. Sie haben auch die Möglichkeit, PLC-Datentypen (UDT) als Vorlage für die Erstellung globaler Datenbausteine zu verwenden. Jeder Funktionsbaustein FB, jede Funktion FC oder jeder Organisationsbaustein OB kann die Daten aus einem globalen Datenbaustein lesen oder selbst Daten in einen globalen Datenbaustein schreiben. Diese Daten bleiben auch nach Verlassen des Datenbausteins im Datenbaustein erhalten. Siehe Bild 1. Bild 1 – Zugriff auf globalen Datenbaustein Wie Sie dem vorherigen Bild entnehmen können, kann auf einen globalen Datenbaustein von jedem Codebaustein innerhalb des SPS-Programms aus zugegriffen werden, während auf den Instanzdatenbaustein nur der zugehörige Funktionsbaustein zugreifen kann. Erstellen eines globalen Datenbausteins Sie erstellen einen globalen Datenbaustein auf die gleiche Weise wie einen Funktions-FC oder einen Funktionsbaustein FB. Fügen Sie Ihrem Projektbaum einen neuen Block hinzu. Siehe Abbildung 2. Abbildung 2 – Erstellen eines globalen Datenblocks Lassen Sie uns einige Variablen im globalen Datenblock deklarieren. Klicken Sie dazu auf „Neu hinzufügen“ unter „Name“, schreiben Sie den gewünschten Variablennamen und wählen Sie dann den Variablendatentyp aus. Siehe Abbildung 3. Abbildung 3 – Variablendeklaration in einem globalen Datenblock Arbeiten mit einem globalen Datenblock Deklarieren eines Tags. Wir haben bereits in Abbildung 3 gezeigt, wie man ein Tag/eine Variable deklariert. Definieren eines Startwerts Der Startwert eines Tags ist ein von Ihnen definierter Wert, den das Tag nach einem CPU-Start annimmt. Der Wert muss dem Datentyp des Tags entsprechen und sollte den Bereich des Datentyps nicht überschreiten. Siehe Abbildung 4. Das Tag nimmt beim Start den definierten Wert an, sofern es nicht als remanent deklariert wurde. Bild 4 – Definieren des Startwerts Ihrer Tags Wenn ich also den Startwert von Tank1Level auf einen beliebigen Wert ungleich Null setze, wird dieser Wert beim nächsten Neustart der SPS angewendet. Siehe Abbildung 5. Abbildung 5 – Definieren eines Startwerts für Ihre Variablen Beibehalten von Variablen in globalen Datenbausteinen Um Datenverlust bei einem Stromausfall zu verhindern, können Sie die Daten als remanent markieren. Diese Daten werden in einem remanenten Speicherbereich gespeichert. Die Optionen zum Einstellen des Retains hängen von der Art des Datenbausteins und der Art des eingestellten Bausteinzugriffs ab. Siehe Abbildung 6. Abbildung 6 – Beibehaltungsoption in globalen Datenbausteinen Wie Sie in Abbildung 6 sehen, ist die Variable Tank2Level auf einen Retain-Wert eingestellt, was bedeutet, dass selbst wenn die SPS angehalten hat oder es einen Stromausfall gab, Tank2Level dieselben Daten gespeichert hat, wenn die SPS wieder eingeschaltet wird. Es wird nicht auf den Startwert zurückgesetzt. Zugriff auf/von HMI In einem globalen Datenblock können Sie festlegen, ob eine Variable in den HMI-Tag-Tabellen sichtbar sein kann oder nicht. Sie können auch festlegen, ob diese Variable vom HMI gelesen oder geschrieben werden kann. Siehe Abbildung 7. Abbildung 7 – Zugriff vom HMI Die Standardeinstellung für jede deklarierte Variable in einem globalen Datenblock ist, dass sie vom HMI aus aufgerufen, gelesen und geschrieben werden kann. Wenn Sie diese Funktion für eine bestimmte Variable deaktivieren möchten, müssen Sie die Zugriffsoption für diese Variable deaktivieren. Beispielsimulation Bisher haben wir einen globalen Datenblock erstellt und einige Variablen darin deklariert. Jetzt werden wir versuchen, eine Simulation des Programms auszuführen und zu sehen, ob wir besser verstehen können, was ein globaler Datenblock ist. Nachfolgend sind zwei SPS-Simulationen aufgeführt. Testen der Startwerte einer Variablen Sehen Sie sich die folgende Animation an, die den Startwert einer Variablen in einem globalen Datenblock erklärt. Animation 1 Animation 1 Erklärung: Die Startwerte der Tankfüllstandsparameter sind Null, Sie können im Video sehen, dass sie durch den Simulationsbildschirm geändert werden. Wenn die SPS neu gestartet, aus- und wieder eingeschaltet wird, sehen Sie, dass die Werte auf die Startwerte zurückgesetzt werden, die Null sind. Danach wurden die Startwerte auf 500, 32654 bzw. -356 geändert, und beim Neustart der SPS wurden die Werte auf die neuen Startwerte geändert. Beachten Sie, dass wir beim Ändern der Startwerte unsere Logik erneut auf die SPS herunterladen mussten; Sie müssen das jedes Mal tun, wenn Sie eine Änderung an Ihrer Logik vornehmen. Testen der Beibehaltungsoption von Variablen in der globalen Datenbank Sehen Sie sich die folgende Animation an, die die Beibehaltungsoption einer Variablen in einem globalen Datenblock erklärt. Animation 2 Animation 2 Erklärung: Zuerst werden Sie feststellen, dass die Eigenschaft „Retain“ von Tank2Level jetzt aktiv ist. Sie sehen im Video, wie die Werte der 3 Tanks geändert werden. Wenn die SPS angehalten und dann wieder gestartet wird, werden Tank1Level und Tank3Level auf den Startwert 0 zurückgesetzt, aber Tank2Level behält seinen Wert von -22938. Fazit Auf einen globalen Datenblock kann von überall und von jedem Block aus zugegriffen werden, der im SPS-Programm vorhanden ist. Sie können in einer globalen Datenbank so viele Variablen deklarieren, wie Sie möchten. Die bewährte Vorgehensweise besteht darin, separate Datenblöcke für die verschiedenen Abschnitte Ihrer Logik zu erstellen, damit Ihre Logik sehr einfach zu befolgen ist. Beispielsweise ein separater Datenblock für alle Variablen, die von einer HMI gelesen oder geschrieben werden müssen. -
SIEMENS-DE Tia Portal – Optimierter und standardmäßiger Datenblockzugriff
leikang posted A plc and hmi article in German in PLC programming learning
Im vorherigen Artikel haben wir über Datenblöcke gesprochen und die zwei verschiedenen Arten von Datenblöcken besprochen, den globalen Datenblock und die Dateninstanzen von Funktionsblöcken FBs. In diesem Artikel werden wir besprechen, was mit optimiertem Datenblockzugriff und standardmäßigem Datenblockzugriff im Siemens Tia Portal gemeint ist. Inhalt: Was sind optimierte und standardmäßige Datenblöcke? Einfaches Programmbeispiel. Was sind Standard-DBs? Was ist der Offset? Was sind optimierte DBs? Vorteile der Verwendung optimierter DBs. Schlussfolgerungen. Was ist optimierter und standardmäßiger Datenblockzugriff? Erstens sind dies keine neuen Arten von Datenblöcken; wir sagten, wir haben nur zwei verschiedene Arten, den globalen DB und den Instanz-DB. Optimierter Datenblockzugriff ist eine Funktion für den Datenblock. Sie können diese Funktion in den Eigenschaften des von Ihnen erstellten Datenblocks aktivieren oder deaktivieren. Die optimierte Datenblockfunktion ist nur für S7-1200- und S7-1500-SPS verfügbar, nicht für S7-300 oder S7-400. Die Standardeinstellung für Datenblöcke bei der Arbeit mit S7-1200- oder S7-1500-SPS ist, dass sie optimiert sind. Wenn Sie einen Standarddatenblock möchten, müssen Sie diesen selbst festlegen. Was sind also optimierte und Standardblöcke? Um den Unterschied zu verstehen, erstellen wir ein einfaches Programm und versuchen zu zeigen, wie sich ein optimierter Block von einem Standardblock unterscheidet. Einfaches Programmbeispiel: In diesem Beispiel erstellen wir keine SPS-Logik und codieren keine Anweisungen. Wir erstellen nur zwei globale Datenblöcke. DB1 wird OptimizedDB und DB2 StandardDB genannt. In beiden Datenblöcken deklarieren wir jeweils vier Variablen der Datentypen Bool, Int, Real und Word. Siehe Bild 1. Bild 1 – Zwei globale DBs erstellen Als Erstes werden Sie feststellen, dass beide Datenblöcke genau gleich sind. Das liegt daran, dass die Standardeinstellung beim Erstellen eines Datenblocks, wie gesagt, die Optimierung ist. Wir müssen also die Einstellung von DB2 ändern, um daraus einen Standardblock zu machen und zu sehen, ob sich etwas ändert. Wir tun das über die Eigenschaften dieses DB2. Sie greifen auf die Eigenschaften von DB2 zu, indem Sie mit der rechten Maustaste auf den Datenblock klicken und auf Eigenschaften drücken. Siehe Bild 2. Bild 2 – DB2 auf Standardblockzugriff ändern Sobald Sie die in Bild 2 gezeigten optimierten Blockzugriffsattribute abwählen und auf OK drücken, wird eine Warnmeldung angezeigt, siehe Bild 3. Bild 3 – Popup „Blockzugriff ändern“ Sobald Sie auf OK drücken, wird Ihr DB2 auf Standardblockzugriff umgestellt. Siehe Bild 4. Um zu sehen, welchen Unterschied das gemacht hat. Bild 4 – DB2 ist jetzt ein Standardblock Was wir direkt sehen können, ist, dass DB1 und DB2 nicht mehr dasselbe sind. Die in DB2 dargestellte Standardblockzugriffsoption hat eine zusätzliche Spalte namens Offset. Vor jeder Variable im Offset-Feld steht ein … geschrieben, dies ändert sich, sobald Sie Ihr Programm kompilieren. Lassen Sie uns kompilieren und sehen, was passiert, siehe Bild 5. Bild 5 – Kompilieren Sie Ihr Programm, um den Offset neu zu laden Jetzt wird der Offset mit 0,0, 2,0, 4,0 bzw. 8,0 ausgefüllt, wie Sie sehen können. Also, was ist dieser Offset? Was bedeutet er? Darauf kommen wir später zurück, aber jetzt erstellen wir einen weiteren STANDARD-Block und deklarieren dieselben 4 Variablen, aber dieses Mal ändern wir die Reihenfolge der variablen Datentypen, siehe Bild 6. Bild 6 – Einen weiteren Standardblock DB3 erstellen Sie sehen im letzten Bild, dass der Offset von DB2 und DB3 unterschiedlich ist. Warum sind die Offsetwerte unterschiedlich, als wir die Reihenfolge der Datentypen geändert haben? Es sind dieselben Datentypen, aber in anderer Reihenfolge. Erstellen wir einen weiteren Standard-DB und deklarieren dieselben 4 Variablen, aber wieder in anderer Reihenfolge. Kompilieren Sie Ihren SPS-Code und vergleichen Sie nun den Offset der 3 DBs. Siehe Bild 7. Bild 7 – Drei verschiedene DBs mit drei verschiedenen Offsets Das Gleiche passierte erneut. Was sind Standard-DBs? Was ist der Offset? Datenblöcke mit Standardzugriff haben eine feste Struktur. Wenn Sie eine Variable in einem Standard-DB deklarieren, wird dieser Variable eine feste Adresse in diesem DB zugewiesen. Die Adresse dieser Variable wird in der Spalte „Offset“ angezeigt. Was wir also in den vorherigen Bildern im Offset gesehen haben, war die jeder Variable zugewiesene Adresse. Da die Struktur von Standard-DBs fest ist, können Sie nur in DBs mit fester Speicherkapazität arbeiten, d. h. einem 16-Bit-Bereich oder 2 Bytes. Dies ist der Grund für die unterschiedliche Adressierung derselben Variablen, wenn wir die Deklarationsreihenfolge geändert haben. Weitere Erklärungen finden Sie in Bild 8. Bild 8 – Einfache Darstellung von DB2 Bild 8 zeigt eine einfache Darstellung des Standarddatenblocks DB2. Wie bereits erwähnt, hat ein Standard-DB feste Speicherblöcke von 16 Bit. Wenn wir also Variable_1 als Datentyp BOOL deklarieren, belegt diese Variable die gesamten 16 Bit, obwohl sie nur 1-Bit-Speicher benötigt. Deshalb sehen Sie den Rest des Bereichs rot markiert, da er nicht verwendet wird, aber nicht mehr verwendet werden kann. Es handelt sich also um verlorenen Speicher. Bei Variable_2 benötigt der Datentyp INT 16 Bit, sodass 2 ganze Bytes verwendet werden. Dasselbe gilt für Variable_4, die vom Datentyp WORD ist. Bei Variable_3 belegten wir 4 Bytes, da sie vom Datentyp REAL ist. Deshalb beträgt der Offset für DB2 jeweils 0,0, 2,0, 4,0 und 8,0. Dasselbe Konzept wird für DB3 und DB4 ausgeführt. Da jedoch die Datentypreihenfolge der Variablen unterschiedlich ist, ist die Speicherdarstellung unterschiedlich und daher auch der Offset unterschiedlich. Sehen Sie sich die Bilder 9 und 10 für DB3 und DB4 an. Versuchen Sie, die Darstellung anhand der vorherigen Erklärung zu verstehen. Bild 9 – Speicherdarstellung von DB3 Bild 10 – Speicherdarstellung von DB4 Wenn Sie also mit einer Standard-DB arbeiten, müssen Sie beim Deklarieren Ihrer Variablen vorsichtig sein, da Sie wissen, dass jedes Mal, wenn Sie eine neue BOOL-Variable definieren, Speicher verloren geht. Wenn Sie die neue Variable am Ende Ihrer DB-Liste deklarieren, wird der Offset erweitert, um Ihre neue Variable einzuschließen. Wenn Sie die neue Variable jedoch zwischen Ihrer alten oder am Anfang der DB deklarieren, geschieht etwas anderes. Siehe Bild 11. Bild 11 – Deklarieren einer neuen Variable Als Erstes werden Sie feststellen, dass Ihr Offset jetzt verloren ist und Sie Ihren Code kompilieren müssen, um den neuen Offset wiederherzustellen. Siehe Bild 12. Bild 12 – Stellen Sie Ihren Offset wieder her, indem Sie Ihren Code neu kompilieren Ist Ihnen aufgefallen, wie sich die Adressierung der Variablen (OFFSET) geändert hat? Beispielsweise war der Offset des REAL-Tags 2,0, aber nachdem wir die neue Testvariable hinzugefügt haben, ist die Adressierung desselben REAL-Tags (OFFSET) jetzt 4,0, siehe Bild 13. Bild 13 – Offset-Änderung nach dem Hinzufügen der Testvariable Beim Hinzufügen einer neuen Variable wurde also die Adressierung aller alten Variablen geändert. Das bedeutet, dass jede Anweisung in Ihrem Programm, die den Wert einer bestimmten Variable schreiben oder lesen muss, jetzt die zugewiesene Adresse in der Anweisung betrachtet, aber jetzt hat die Adresse andere Daten als erwartet. Einfach ausgedrückt ist Ihre gesamte Logik jetzt durcheinander. Das wird zu einer Menge Ärger führen. Ganz zu schweigen davon, dass Sie jetzt zusätzlichen Speicher verloren haben, nachdem Sie die neue Variable hinzugefügt haben. Siehe Bild 14. Bild 14 – Hinzufügen einer MOVE-Anweisung Fügen wir eine MOVE-Anweisung hinzu, um einen Wert von 1 in das Tag Variable_2 zu verschieben. Sehen Sie, dass die Adresse der MOVE-Ausgabe %DB2.DBW2 lautet. Fügen wir nun eine neue Variable vom Typ INT zu DB2 hinzu. Siehe Bild 15. Bild 15 – Neue INT-Variable hinzufügen Wenn Sie die neue Variable hinzufügen, geht der Offset verloren und die SPS weiß nicht mehr, wo das Ziel von OUT1 der MOVE-Anweisung ist. Wir müssen das Programm kompilieren, um den neuen Offset neu zu laden. Siehe Bild 16. Bild 16 – Neue Adresse von OUT1 Sehen Sie, wie sich die OUT1-Adresse jetzt geändert hat? Es ist jetzt %DB2.DBW4 statt %DB2.DBW2. Dies ist ein sehr großer Nachteil bei der Verwendung von Standarddatenblöcken. Was sind optimierte DBs? Der Unterschied zwischen optimierten Datenblöcken und Standarddatenblöcken besteht darin, dass Variablen in einem optimierten Datenblock keiner festen Adresse zugewiesen werden, sondern den Variablen ein symbolischer Name zugewiesen wird. Außerdem ist die Struktur des Datenblocks nicht so festgelegt wie bei den Standarddatenblöcken, sodass beim Deklarieren neuer Tags kein Speicherverlust auftritt und die Adressen nicht geändert werden. Siehe Abbildung 17. Abbildung 17 – Deklarieren neuer Tags in optimierten Blöcken Das Deklarieren neuer Tags in optimierten Datenblöcken wirkt sich also nicht auf die übrigen Tags aus, da diese durch symbolische Namen und nicht durch absolute Adressierung definiert werden. Ein optimierter Datenblock erlaubt Ihnen nicht, Adressen zu verwenden, wenn Sie mit den darin definierten Tags arbeiten. Siehe Bild 18. Bild 18 – Absolute Adressierung bei optimierten Bausteinen Wie Sie im letzten Bild sehen, ist bei einem optimierten Datenbaustein keine absolute Adressierung erlaubt und nur symbolische Namen sind zulässig. Siehe Bild 19. Bild 19 – Verwendung symbolischer Namen bei optimierten DBs Vorteile von Datenbausteinen mit optimiertem Zugriff Datenbausteine mit optimiertem Zugriff haben keine fest definierte Struktur. Den Datenelementen (Tags) wird nur ein symbolischer Name zugewiesen und es wird keine feste Adresse innerhalb des Bausteins verwendet. Die Elemente werden automatisch im verfügbaren Speicherbereich des Bausteins gespeichert, so dass keine Lücken im Speicher entstehen. Dadurch wird die Speicherkapazität optimal ausgenutzt und Speicherverlust im Vergleich zu Standard-DBs vermieden. Dadurch ergeben sich folgende Vorteile: Sie können Datenbausteine mit beliebiger Struktur erstellen, ohne auf die physikalische Anordnung der einzelnen Variablen zu achten. Ein schneller Zugriff auf die optimierten Daten ist jederzeit möglich, da die Datenablage vom System optimiert und verwaltet wird. Zugriffsfehler, wie beispielsweise bei indirekter Adressierung oder vom HMI aus, sind nicht möglich. Denn es gibt keine Adressen, sondern nur eindeutige symbolische Namen für jede Variable. Sie können bestimmte einzelne Variablen als remanent definieren. In Standard-DBs können Sie nur den gesamten Baustein als remanent definieren. Fazit Optimierte Datenbausteine haben viele Vorteile gegenüber Standard-DBs. Durch die Verwendung symbolischer Namen können Adressänderungen von Variablen vermieden werden, wenn Sie Ihrem Baustein neue Variablen hinzufügen. Bei optimierten Bausteinen geht kein Speicherbereich verloren. Ganz im Gegensatz zu dem, was bei der Verwendung von Standard-DBs passiert. -
SIEMENS-DE Tia Portal – OB10 Tageszeit-Interrupt-Organisationsblock
leikang posted A plc and hmi article in German in PLC programming learning
In einem früheren Artikel haben wir besprochen, was ein Organisationsblock ist, und wir haben über einen sehr wichtigen Organisationsblock gesprochen, nämlich den Haupt-OB1. In diesem Artikel werden wir die verschiedenen OBs weiter besprechen und dieses Mal sprechen wir über die Tageszeit-Interrupt-Organisationsblöcke oder OB10. Inhalt: Was ist der Tageszeit-Interrupt OB10? Wie erstellt und verwendet man OB10? Einfaches Programmbeispiel. Wichtige Regeln für Tageszeit-Interrupts. Schlussfolgerungen. Was ist ein Tageszeit-Interrupt (OB10)? Wie der Name schon sagt, ist ein Tageszeit-Interrupt ein Organisationsblock, der die Ausführung des Hauptzyklus Ihres SPS-Programms zu einer bestimmten Tageszeit unterbricht. Diese Interrupt-Zeit (Datum und Uhrzeit) kann so angegeben werden, dass sie einmal zu einer bestimmten Zeit oder regelmäßig in bestimmten Zeitintervallen auftritt, z. B. jede Minute, Stunde, jeden Tag, jede Woche und einige andere Optionen. Sie können mehr als einen Tageszeit-Interrupt im selben Programm haben. Sie müssen nicht dieselbe Logik oder denselben Code haben, jeder kann seine eigene Funktionalität haben und jeder kann separat so konfiguriert werden, dass er zu einer bestimmten Zeit auftritt. Wie erstelle und verwende ich OB10? Um einen Tageszeit-Interrupt zu erstellen, folgen Sie denselben Schritten, die Sie ausführen würden, wenn Sie einen neuen Block in Ihre Logik einfügen müssen. Siehe Abbildung 1. Abbildung 1 – Einen Tageszeit-Interrupt hinzufügen Klicken Sie im Projektbaum links auf die Option „Neuen Block hinzufügen“, wählen Sie den Organisationsblock und dann einen Tageszeit-Interrupt, wie im vorherigen Bild gezeigt. Jetzt können Sie OB10 öffnen und die SPS-Logik hinzufügen, die Sie ausführen möchten, wenn dieser Block aufgerufen wird. Mit „aufgerufen“ meinen wir, dass das Interrupt-Ereignis oder die Interrupt-Zeit aufgetreten ist und das Betriebssystem daher den Hauptzyklus unterbricht und OB10 ausführt. Wir werden einen sehr einfachen Code in OB10 schreiben, um besser zu verstehen, wie dieser OB10-Block funktioniert. In dieser Logik haben wir den Add-Befehl verwendet, um einem Speicherbereich, den wir TimeOfDayInterruptCounter genannt haben, einen Wert von 1 hinzuzufügen und das Ergebnis der Summierung dann wieder in denselben Bereich zu schreiben. Auf diese Weise können wir einen Zähler für die Ausführung des OB10 haben. Jedes Mal, wenn der OB10 aufgerufen und ausgeführt wird, erhöht sich der Wert von TimeOfDayInterruptCounter um 1. Siehe Bild 2. Bild 2 – Fügen Sie Ihre Logik zum OB10 hinzu Nachdem wir nun den OB10 erstellt und etwas Logik hineingeschrieben haben, müssen wir die eingestellte Zeit des OB10 konfigurieren und festlegen, wie oft er unseren Hauptzyklus unterbrechen soll. Um die Zeit- und Intervalleinstellung des OB10 zu konfigurieren, müssen wir zur Eigenschaftenseite des OB10 gehen. Siehe Bild 3. Bild 3 – Eigenschaften von OB10 In den Eigenschaften von OB10 finden Sie viele Einstellungen und Attribute, die Sie konfigurieren können. Was wir jetzt brauchen, ist die Seite mit den Tageszeit-Interrupts, damit wir festlegen können, wann und wie oft OB10 aufgerufen wird. Siehe Bild 4. Bild 4 – Einstellung der Tageszeit-Interrupts Wie Sie im letzten Bild sehen, können Sie die Ausführung von OB10, das Startdatum und die Tageszeit festlegen, zu der OB10 ausgeführt werden soll. Zur Simulation haben wir das Ausführungsintervall auf jede Minute festgelegt, sodass OB10 jede Minute aufgerufen und ausgeführt wird. Das bedeutet, dass ab dem Datum 23.03.2023 und der Uhrzeit 09:25 Uhr der Wert von TimeOfDayInterruptCounter jede Minute um 1 erhöht wird. Sie haben die Möglichkeit, die Zeit entsprechend der SPS-Systemzeit oder der Ortszeit einzustellen, wie Sie im letzten Bild sehen. In einem früheren Artikel haben wir über die System- und Ortszeit der SPS gesprochen, was jede Zeit bedeutet und wie man sie konfiguriert und verwendet. Wie wir bereits gesagt haben, ist die Ortszeit die Zeit, die Sie jetzt auf Ihrem PC sehen. Es ist also die tatsächliche Zeit der Region, in der die SPS verwendet wird. Sie müssen die Ortszeit für die SPS konfigurieren, je nachdem, wo sie verwendet wird. Siehe Bild 5. Bild 5 – Einstellen der Ortszeit für die SPS Beispiel für ein einfaches SPS-Programm Wir haben unserem SPS-Programm einen Tageszeit-Interrupt OB10 hinzugefügt und ihn so eingestellt, dass er jede Minute ausgeführt wird. Wir haben auch die Ortszeit der SPS konfiguriert. Wir haben eine einfache Logik einer ADD-Anweisung erstellt, um den Wert des TimeOfDayInterruptCounter bei jeder Ausführung des OB10 um 1 zu akkumulieren. Wir werden einen weiteren Befehl hinzufügen, aber im Haupt-OB1 ist dieser Befehl RD_LOC_T oder „Lokalzeit lesen“, damit wir sehen können, wie die Lokalzeit voranschreitet und sie mit der Ausführung von OB10 vergleichen können. Siehe Abbildung 6. Abbildung 6 – Einfaches Programmbeispiel Kompilieren Sie Ihr SPS-Programm und starten Sie eine neue Simulation. Beachten Sie, dass wir die Uhrzeit des Auftretens der Unterbrechung festlegen, damit OB10 aufgerufen und ausgeführt werden kann, während wir die SPS-Logik simulieren. Siehe die folgende Simulation. Wie Sie der Animation entnehmen können, ist der Wert von TimeOfDayInterruptCounter zu Beginn Null und wird dann ab 09:25 Uhr jede Minute um 1 erhöht, was bedeutet, dass der OB10 jede Minute ausgeführt wird. Wichtige Regeln für die Uhrzeitalarme Wenn Sie einen Uhrzeitalarm so einstellen, dass der entsprechende OB einmalig abgearbeitet werden soll, darf der Startzeitpunkt nicht in der Vergangenheit liegen (bezogen auf die Echtzeituhr der CPU). Wenn Sie einen Uhrzeitalarm so einstellen, dass der entsprechende OB periodisch abgearbeitet werden soll, der Startzeitpunkt jedoch in der Vergangenheit liegt, dann wird der Uhrzeitalarm-OB beim nächsten fälligen Zeitpunkt gemäß der aktuellen Uhrzeit abgearbeitet. Das Datum periodischer Uhrzeitalarme muss einem realen Datum entsprechen. Beispielsweise ist die monatliche Wiederholung eines Uhrzeitalarm-OBs mit einem Startdatum vom 31.01. daher nicht möglich. In diesem Fall wird ein OB nur in den Monaten gestartet, die 31 Tage haben. Ein beim Start aktivierter Zeitinterrupt wird erst ausgeführt, wenn der Start abgeschlossen ist. Ein Start löscht alle Zeitinterrupts, die durch eine Anweisung im Benutzerprogramm gesetzt und aktiviert wurden. Fazit OB10 ist ein Organisationsbaustein, der so konfiguriert werden kann, dass er den Zyklus Ihres Programms an einem bestimmten Tag und zu einer bestimmten Uhrzeit unterbricht. Dieser Interrupt kann entweder einmal oder regelmäßig in einem bestimmten Zeitintervall auftreten. Es gibt keinen bestimmten Grund, warum Sie einen OB10 benötigen würden, da dies von Ihrem Prozess und Ihrer Logik abhängt. Und ja, Sie können dieselbe Funktionalität mit Ihrem persönlichen Code erreichen, aber es handelt sich um eine verfügbare und einfach zu verwendende integrierte Funktion. Und Sie wissen, wie man sie verwendet. -
SIEMENS-DE Siemens PLC Tia Portal – OB100 Start-Organisationsblock
leikang posted A plc and hmi article in German in PLC programming learning
In früheren Artikeln haben wir begonnen, verschiedene Organisationsblöcke von TIA Portal PLCs zu besprechen, wir haben darüber gesprochen, was OBs sind, und wir haben einige der OBs wie OB1- Hauptzyklus, OB10 und OB20, die Tageszeitverzögerung bzw. Zeitverzögerungsinterrupts, besprochen. In diesem Artikel werden wir über den OB100 oder den Start-Organisationsblock im Siemens Tia Portal sprechen. Inhalt: Was ist OB100? Warum wird OB100 benötigt? Wichtige Hinweise beim Start. Einfaches Programmbeispiel. Was ist der Start-Organisationsblock (OB100)? OB100 oder der Start-OB ist ein Organisationsblock, der vom Betriebssystem einmal beim Start der SPS aufgerufen und ausgeführt wird, d. h. einmal bei jedem Übergang vom STOP- in den RUN-Modus. Der Hauptzyklus OB1 wird erst aufgerufen und ausgeführt, wenn alle Startfunktionen innerhalb von OB100 ausgeführt wurden. Sie können mehr als einen Start-OB in Ihrer SPS-Logik haben. Wenn das passiert, ruft das Betriebssystem sie alle nacheinander auf und führt sie aus, beginnend mit einer niedrigeren OB-Nummer zu einer höheren Nummer. Wenn Sie also OB100 und OB123 haben, wird zuerst OB100 aufgerufen und ausgeführt, dann OB123. Nachdem OB100 ausgeführt wurde, liest das Betriebssystem die Eingangsmodule in das PII und startet das Hauptzyklusprogramm OB1. Warum brauchen Sie OB100? Sie verwenden OB100 für viele Aufgaben, die Sie möglicherweise ausführen möchten oder müssen, bevor Sie Ihre zyklische Logik starten. Dies sind die folgenden Gründe: Variablen initialisieren. Systemmodule zurücksetzen. Sensoren/Aktoren neu kalibrieren. Vor dem Starten Ihres Prozesses auf Alarme und Sicherheitsbedingungen prüfen. Auch wenn Sie keinen Anlauf-OB für Ihre Logik erstellt haben, muss das Betriebssystem vor dem Start Ihrer Hauptlogik noch viele Aufgaben ausführen. Einige dieser Aufgaben sind: Nicht remanente Speicher löschen PAA löschen Anlauf-OBs aufrufen und ausführen, falls vorhanden. PAA aktualisieren Ausgänge nach dem Wechsel in den RUN-Modus aktivieren. Haben Sie bemerkt, dass die letzte Aufgabe einer Anlaufroutine darin besteht, die Ausgänge zu aktivieren? Deshalb besteht der erste Schritt bei der Ausführung des Hauptzyklusprogramms OB1 darin, die PAA in das Ausgangsmodul zu schreiben. Wichtige Hinweise während des Anlaufs Beachten Sie die folgenden Punkte zum Modus „STARTUP“: Die Ausgänge an den Modulen sind deaktiviert. Das Prozessabbild wird initialisiert. Das Prozessabbild wird nicht aktualisiert. Um während des „STARTUP“ den aktuellen Zustand von den Eingängen zu lesen, können Sie über direkten E/A-Zugriff auf die Eingänge zugreifen. Um während des Anlaufs die Ausgänge zu initialisieren, können Werte über das Prozessabbild oder über direkten E/A-Zugriff geschrieben werden. Die Werte werden beim Übergang in den „RUN“-Modus an den Ausgängen ausgegeben. Die nicht remanenten Merker, Timer und Zähler werden initialisiert. Die nicht remanenten Variablen in Datenbausteinen werden initialisiert. Beim Anlauf läuft noch keine Zykluszeitüberwachung. Einfaches Programmbeispiel In diesem Beispiel fügen wir unserer SPS-Logik einen Anlauf-OB100 hinzu und sehen, wie oft der OB100 ausgeführt wird. Siehe Bild 1 zum Hinzufügen eines neuen OB100. Bild 1 – Hinzufügen eines OB100 Wie Sie im letzten Bild sehen, fügen Sie Anlauforganisationsblöcke auf die gleiche Weise hinzu, wie wir eine Funktion eines Funktionsbausteins hinzufügen. Innerhalb des gerade erstellten OB100 fügen wir eine einfache ADD-Anweisung hinzu, um zu akkumulieren, wie oft der OB100 aufgerufen und ausgeführt wird. Siehe Bild 2. Bild 2 – Ausführungszeiten von OB100 akkumulieren Kompilieren und führen Sie nun Ihr Programm aus und sehen Sie, was passiert. In der folgenden Animation sehen Sie eine Simulation des SPS-Programms. Animation 1 Wie Sie in der obigen Animation sehen können, ist der OB100CycleCounter 1 und ändert sich nicht, wenn der SPS-Modus von STOP auf RUN wechselt. Er ändert sich zwar, aber Sie sehen diese Änderung nicht. Jedes Mal, wenn die SPS in den STOP-Modus und dann wieder in den RUN-Modus wechselt, wird der Zähler auf Null und dann wieder auf 1 zurückgesetzt, nachdem OB100 ausgeführt wurde. Sie können auch sehen, wie sich der Hauptzykluszähler von OB1 ändert, und wenn die SPS anhält und dann wieder läuft, beginnt der OB1CycleCounter erneut zu akkumulieren. Um die Änderung im Startzähler zu sehen, müssen wir den Wert des Tag-Speichers beibehalten. Siehe Bild 3. Bild 3 – Behalten des OB100CycleCounter-Tagspeichers Nachdem wir den OB100CycleCounter-Tag behalten haben, führen Sie die SPS-Simulation erneut aus und sehen Sie, was passiert. Siehe Simulationsanimation 2. Animation 2 Sie sehen jetzt in der obigen Animation, dass der Startzähler jedes Mal steigt, wenn ich die SPS stoppe und dann wieder starte. Da der Tagspeicher jetzt beibehalten wird, wird der Wert nicht auf Null zurückgesetzt, und deshalb sehen Sie, wie sich der Wert des OB100CycleCounters ansammelt. Jetzt muss ich meiner Start-SPS-Logik zusätzliche Funktionen hinzufügen, nämlich wissen, wann der letzte Start der SPS war. Wir werden das durch eine einfache Logik erreichen, bei der ich die lokale Zeit der SPS beim Start lese und Datum und Uhrzeit in einen bestimmten Speicherbereich verschiebe. Siehe Bild 4. Bild 4 – Lokale Zeit beim Start ablesen Nachdem Sie Ihre Logik hinzugefügt haben, kompilieren Sie die Simulation und führen Sie sie erneut aus. Sehen Sie sich die SPS-Simulationsanimation 3 an. Animation 3 Sie können der obigen Animation entnehmen, dass bei jedem Start der SPS das Startdatum und die Startzeit im von uns zugewiesenen Speicherbereich aufgezeichnet werden. Jetzt habe ich also die Informationen darüber, wie oft meine SPS gestartet wurde und wann der letzte Startzeitpunkt war. Fazit Start-OBs sind sehr wichtig, wenn Sie einige Funktionen auswerten möchten, bevor Sie Ihren zyklischen Prozess ausführen können. Sie können Start-OBs verwenden, um Parameter zu initialisieren, Sensoren zu kalibrieren und sogar Sicherheitsbedingungen zu prüfen, bevor Sie Ihren Prozess ausführen lassen. -
SPS-Stromversorgung und Betriebsspannungen
leikang posted A plc and hmi article in German in PLC programming learning
Wenn Sie mit einer SPS arbeiten, müssen Sie wissen, welche Spannungsarten im Allgemeinen darin verfügbar sind, damit Sie die Verkabelung entsprechend vornehmen können. Nicht nur die Stromversorgung, sondern auch die erforderliche Eingangs- und Ausgangsspannung müssen berücksichtigt werden. Jeder SPS-Hersteller hat seine eigenen Spannungs- und Strombereiche, je nach Modul und CPU, die er bereitstellt. In diesem Artikel erfahren Sie, welche SPS-Betriebsspannungen im Allgemeinen überall verfügbar sind. SPS-Stromversorgung Standardmäßig arbeitet die SPS mit vier Spannungsarten – 24 V DC, 24 V AC, 110 V AC und 240 V AC. Bei manchen SPS benötigt nur die CPU eine Stromversorgung und die IO-Module werden von der CPU-Backplane versorgt, während bei manchen SPS alle Module einschließlich CPU, Eingänge und Ausgänge eine Stromversorgung benötigen. In jedem Fall benötigen Sie ein SMPS oder einen Transformator im SPS-Panel, um die Rohspannung umzuwandeln. Bei der Wechselstromversorgungsspannung bieten einige SPS einen Spannungsbereich von 110-240 V Wechselstrom. Jeder Stromversorgungspunkt in der SPS verfügt über einen Erdungspunkt, um die SPS im Falle von Spannungsspitzen oder Kurzschlüssen zu schützen. Bei Verwendung einer Wechselstromversorgung ist diese meist mit einer Schutzsicherung ausgestattet. Auch Gleichstromversorgungen verfügen über eine Sicherung, aber bei Wechselstromversorgungen ist diese aufgrund der hohen Spannung zwingend erforderlich. Wenn die Nennspannung in der CPU angegeben ist, bedeutet dies, dass die von Ihnen bereitgestellte Spannung ordnungsgemäß stabilisiert und weitgehend kontrolliert wurde. Es ist jedoch nicht praktikabel, wenn die Spannung konstant bei 24 V oder 240 V bleibt. Daher gibt es für eine SPS einen Nennspannungsbereich von 20-28 V Gleichstrom oder 220 V-245 V Wechselstrom. Dieser Bereich ist in jeder SPS vordefiniert, sodass Sie einen Stromversorgungsbereich erhalten, um problemlos effizient damit arbeiten zu können. Stromversorgung für IO-Module Kommen wir nun zu unserem nächsten Thema, der für IO-Module erforderlichen Stromversorgung. Wie bereits erwähnt, sind zwei Arten von Stromversorgungen verfügbar – eine, bei der das Modul von der CPU-Backplane selbst mit Strom versorgt wird, und eine, bei der das Modul eine externe Stromversorgung benötigt. Bei Verwendung der Backplane hat jede CPU eine Nennleistung in mA, die sie als Last an die angeschlossenen Module liefert. Wenn eine CPU beispielsweise eine Nennleistung von 24 VDC – 450 mA hat, wird auch angegeben, dass die CPU-Backplane diese Strommenge an die IO-Module liefern kann und Sie nur diese Anzahl an Modulen an das CPU-Rack anschließen können. Außerdem wird für jedes Modul angegeben, wie viel Strom es verbraucht, wenn es an einen Backplane-Bus angeschlossen wird. Dies kann Ihnen dabei helfen, die geeigneten Module und CPUs für eine bestimmte Anwendung auszuwählen. Kommen wir zur zweiten Art der Stromversorgung: Es gibt einige Module, die eine externe Stromversorgung benötigen. In diesem Fall müssen Sie also ein SMPS oder einen Transformator mit einer höheren Stromstärke und entsprechend höherer Last wählen. Dadurch können sowohl die CPU als auch die Module ordnungsgemäß mit Strom versorgt werden und auch andere Komponenten des Panels, die dieselbe Versorgung benötigen. Stromversorgung für Feldinstrumente Die Feldverdrahtung einer SPS erfordert meist auch Gleichspannung für Instrumente und Wechselspannung für Hochleistungsgeräte. Die oben genannten vier Spannungen funktionieren also gleich für die gemeinsame Versorgungsverdrahtung des IO-Moduls. Denken Sie auch daran, dass die SPS neben der Standardstromversorgung meist eine Batterie-Notstromversorgung hat. Dadurch wird sichergestellt, dass das Programm im Speicher der SPS bei einem Stromausfall intakt bleibt. Auswahl der Stromversorgung für die SPS Bei der Auswahl der Stromversorgung müssen daher im Allgemeinen die folgenden Parameter berücksichtigt werden: Nennspannung, Nennstrom, Nennleistung, Welligkeit und Rauschen, einstellbarer Spannungsbereich, Spannungstoleranz, Leitungsregelung und Lastregelung. Sobald Sie die richtige Stromversorgung ausgewählt haben, können Sie die CPU und die Module verdrahten, um sie ordnungsgemäß mit Strom zu versorgen. Auf diese Weise verstehen wir das Konzept der SPS-Betriebsspannungen. -
Bitregister verschieben in SPS
leikang posted A plc and hmi article in German in PLC programming learning
Es gibt viele Anweisungen in SPS, die dabei helfen, die Logik auf vereinfachte Weise auszuführen. Anweisungen gibt es in verschiedenen Kategorien wie Arithmetik, Vergleich, Logik, Controller usw. Beispielsweise fällt eine einfache Additionsanweisung zum Addieren von zwei Variablen in die Kategorie Arithmetik. In ähnlicher Weise sind in einer SPS-Logik viele Arten von Anweisungen verfügbar. Eine solche Anweisung, die in der SPS-Programmierung weit verbreitet ist, ist die Verschiebungsanweisung. Sie fällt in die Kategorie der numerischen Verarbeitung. In diesem Artikel lernen wir das Konzept der Verschiebungsanweisung in der SPS-Programmierung kennen. Bitregister verschieben in SPS Wie der Name schon sagt, ist eine Verschiebungsanweisung ein Befehl zum Verschieben von Bits eines Worts um eine vordefinierte Position. Nehmen wir beispielsweise ein Wort mit 16 Bits an. Sie möchten Bit Nummer 3 von seiner aktuellen vierten Position an die siebte Position verschieben. Wenn also ein Verschiebungsbefehlsimpuls gegeben wird, wird das Bit bei jedem Trigger von der vierten Position an die siebte Position verschoben. In dieser Kontinuität wird das Bit an der fünften Position an die achte Position verschoben; und das Bit an der dritten Position wird an die sechste Position verschoben. Hier verschieben Sie also die Bits in einer Gruppe um die von Ihnen definierte Anzahl von Positionen. Verschiebeanweisung Verschiebeanweisungen gibt es in zwei Arten – Verschieben und Drehen. Sehen wir uns die Drehanweisung an. Betrachten wir eine Syntax – %MW10:= SHL (%MW12, 4). %MW10 ist das Zielspeicherwort und %MW12 ist das Quellspeicherwort. Siehe das folgende Bild. In %MW10 wird, wenn ein erster Trigger für die Verschiebung nach links gegeben wird, Bit0 zu Bit1 verschoben und so weiter. Dieses Ergebnis wird in %MW12 gespeichert. Wenn solche Trigger viermal gegeben werden, wird Bit 0 schließlich zu Bit 4 verschoben und so weiter. Das Endergebnis wird sowieso in %MW12 gespeichert und Sie erhalten eine endgültige Antwort der Bits, die vom Quellwort um vier Positionen verschoben wurden. Man sollte jedoch bedenken, dass bei jeder Verschiebung das vorhergehende Bit mit dem Wert 0 gefüllt wird. Dies ist im Bild deutlich zu erkennen. Nach der ersten Verschiebung ist das erste Bit in %MW12 0. Das Endergebnis nach vier Verschiebungen ist also – 0000 1101 1100 0000. Diese Verschiebung kann also entweder nach rechts oder nach links erfolgen. In der SPS gibt es noch eine weitere Art der Verschiebung; die frühere fügte Nullen von der vorhergehenden Position hinzu, aber diese zweite Art behält den Wert des ersten Bits (MSB für rechts und LSB für links) bei. Dies wird als arithmetisches Verschieben bezeichnet. Wenn also der Wert des ersten Bits (MSB für rechts und LSB für links) vor der Verschiebung anfangs 1 war, bleibt das letzte Bit nur 1 und die Nullen werden vom zweiten vorhergehenden Bit hinzugefügt, bis der Verschiebebefehl gegeben wird. Es ist zu beachten, dass das letzte verschobene Bit immer in einem Übertragsbit gespeichert wird. Rotationsanweisung Der zweite Typ ist die Rotationsanweisung. Beachten Sie die Syntax – %MW10:= ROL (%MW12, 4). %MW10 ist das Zielspeicherwort und %MW12 ist das Quellspeicherwort. Wir verwenden dasselbe Bild wie oben als Referenz. Die Rotationsanweisung rotiert, wie der Name schon sagt, die Bits einfach um die von Ihnen definierten Positionen. Im Vergleich zur Verschiebungsanweisung, bei der nach jedem vorhergehenden Bit eine Null hinzugefügt wurde, werden die Bits hier einfach in derselben Reihenfolge verschoben wie in der linken Richtung. Nehmen wir also an, Sie haben ein Quellwort von – 1100 1010 1100 0101; dann ist das Endergebnis nach einem Trigger von 4 Positionen – 1010 1100 0101 1100. Die gleiche Logik funktioniert in die richtige Richtung. Das letzte verschobene Bit wird ebenfalls in einem Übertragsbit gespeichert. Ein weiterer Typ ist in der Kategorie „Rotieren“ zu finden. Hier wird nicht nur 16 Bits verschoben, sondern das Übertragsbit wird überrollt. Das heißt, das letzte Bit wird in das Übertragsbit verschoben, und das Übertragsbit wird dann in das erste Bit verschoben und so weiter. Beim vorherigen Typ wurde das letzte Bit nur im Übertragsbit gespeichert. -
Was sind analoge Eingänge? – Verarbeitung analoger Signale in SPS
leikang posted A plc and hmi article in German in PLC programming learning
In diesem Artikel sprechen wir über die Verarbeitung analoger Eingangssignale in SPS und wie wir diese Signale im Automatisierungsprozess handhaben können. Inhalt: Was sind analoge Eingangssignale? Analoge Eingangsverarbeitung in S7-1200 und 1500. Analoge Eingangsverarbeitung in S7-300 und 400. Was ist am besten für die Steuerung? – analoge oder digitale Signale Fazit. Was sind analoge Eingangssignale? Bevor wir uns mit der Handhabung analoger Eingangssignale im TIA Portal befassen, wollen wir zunächst analoge Eingänge verstehen. Jedes Automatisierungssystem benötigt Eingangssignale, um den Status des Prozesses zu verstehen und Entscheidungen treffen zu können, die den Prozess am Laufen und stabil halten. Diese Eingangssignale sind entweder diskrete oder digitale Eingangssignale in Form von 0- oder 1-Werten. Die andere Art von Eingang sind die analogen Signale. Ein analoges Signal ist einfach eine kontinuierliche Darstellung einer physikalischen Größe in Ihrem System. Wenn Sie also Temperatur oder Druck in Ihrem Prozess überwachen müssen, liefert Ihnen ein analoges Signal kontinuierliche und sofortige Werte, die den tatsächlichen Änderungen der physikalischen Größe entsprechen. Analogsignale werden in vielen Standardformen bereitgestellt, am häufigsten jedoch als 0-10 V oder 4-20 mA. Dies hängt von der Art des verwendeten analogen Sensors ab und bestimmt auch die Art des SPS-Analogmoduls, das Sie verwenden können. Nehmen Sie einen analogen Drucksensor mit einem Messbereich von 0-10 bar und einem Ausgang in Form von 4-20 mA an. Normalerweise besteht bei einem analogen Signal eine lineare Beziehung zwischen der gemessenen physikalischen Größe und dem entsprechenden Ausgang. Das bedeutet, wenn der Sensor 0 bar misst, gibt er ein 4-mA-Signal aus, und wenn er 10 bar misst, gibt er ein 20-mA-Signal aus, und dazwischen ist das gleiche Signal ebenfalls linear. Siehe Bild 1. Bild 1 – Analoge Signaldarstellung. Die SPS kann die 4-20 mA der physikalischen Größe immer noch nicht verstehen, und hier kommt das Analogmodul der SPS zum Einsatz. Das Analogmodul nimmt eine weitere Transformation dieser Darstellung vor, damit die SPS sie tatsächlich verstehen kann. Das Analogmodul wandelt die analogen mA-Messungen in digitale Werte um, die vom Typ des Moduls abhängen, aber für die Siemens-SPS liegen diese Werte immer im Bereich von 0 – 27648. Wenn der Sensor also 0 bar anzeigt, beträgt der Ausgang 4 mA und wird innerhalb der SPS in den Wert 0 umgewandelt. Siehe Bild 2. Bild 2 – Analog-Digital-Umwandlung des Eingangssignals Die SPS wandelt dann die 0-27648-Werte in die entsprechende physikalische Messung um, abhängig von Ihrer Programmierung, auf die wir später noch eingehen werden. Siehe Bild 3. Bild 3 – Der skalierte Messwert innerhalb der SPS. Die analoge Verarbeitung von Temperaturen ist ganz anders, da das Verhalten des Temperatursensors bei physikalischen Änderungen nicht linear ist, wie es bei einem Füllstand- oder Drucksensor der Fall wäre. Deshalb gibt es für die verschiedenen Arten von Temperatursensoren standardisierte Tabellen, die angeben, welche Temperatur welchem Sensorwert entspricht. Deshalb würden Sie bei der Temperaturmessung spezielle Arten von Eingangsmodulen Ihrer SPS auswählen, bei denen diese Standardtabellen intern definiert sind und Sie direkt den Temperaturwert erhalten, der der Sensormessung entspricht. Deshalb können Sie keinen Temperatursensor finden, auf dem ein Spannungs- oder Strommessbereich angegeben ist. Sie finden dort nur den Sensortyp angegeben, z. B. PT100, PT1000, KTY84, PTC usw. Analoge Eingangsverarbeitung in S7-1200 und 1500 Um zu sehen, wie wir analoge Signale in modernen SPS der S7-Familie verarbeiten, beginnen wir mit der Erstellung eines neuen Projekts und dem Hinzufügen einer S7-1200-CPU. Wir werden auch ein analoges Eingangs-/Ausgangsmodul hinzufügen. Siehe Abbildung 4. Abbildung 4 – Hinzufügen eines analogen Eingangsmoduls. Definieren wir nun unser Eingangssignal-Tag. Wir gehen von einem Drucksensor aus, der einen Druck zwischen 0 und 10 Bar messen kann und ein entsprechendes Signal zwischen 4 und 20 mA ausgibt. Wir definieren dieses Eingangssignal in den ersten Tags des Eingangsmoduls. Siehe Abbildung 5. Abbildung 5 – Definieren Sie das Eingangssignal-Tag. Wie bereits erwähnt, kann das Eingangsmodul mit verschiedenen Eingangssignalen arbeiten, sei es 0-10 V oder 4-20 mA, daher müssen wir unserem Sensor die richtige Konfiguration zuweisen. Wie gesagt wird das Drucksignal in Form von 4-20 mA bereitgestellt, daher konfigurieren wir unseren Eingangskanal entsprechend. Siehe Abbildung 6. Abbildung 6 – Konfigurieren des Eingangskanals Nachdem wir nun den Teil der Hardwarekonfiguration abgeschlossen haben, beginnen wir mit der Programmierung unseres Handhabungscodes. Dazu erstellen wir eine Funktions-FC, die wir jedes Mal wiederverwenden können, wenn wir ein analoges Signal zu verarbeiten haben. Innerhalb dieser FC erstellen wir die Logik, die das analoge Signal verarbeitet und in den physikalischen Messwert umwandelt. In TIA Portal gibt es vordefinierte Anweisungen, die wir genau dafür verwenden können. Diese Anweisungen sind die Anweisungen NORM_X und SCALE_X. Siehe Abbildung 7. Bild 7 – NORM_X- und SCALE_X-Anweisungen Wie Sie sehen, normalisiert NORM_X den analogen Eingang auf einen Wert zwischen 0 und 1, und dann wird SCALE_X verwendet, um diesen normalisierten Wert auf den Bereich des gemessenen physikalischen Werts zu skalieren, der in unserem Sensorfall zwischen 0 und 10 bar liegt. Wir haben eine Funktions-FC verwendet, anstatt unseren Code direkt in den Haupt-OB1 zu schreiben, damit unser Code mit jedem analogen Signal wiederverwendbar ist. Jedes Mal, wenn ich ein neues analoges Eingangssignal habe, ziehe ich den FC-Block einfach per Drag & Drop in unseren Haupt-OB1 und schreibe einfach die zugehörigen Parameter des erforderlichen Eingangs. Siehe Bild 8. Bild 8 – Ziehen Sie Ihren FC per Drag & Drop. Wenn Sie den FC per Drag & Drop in Ihren Haupt-OB1 ziehen, werden Sie aufgefordert, den zugehörigen Parameter dieses Funktionsaufrufs anzugeben. In unserem Fall ist das Eingangssignal der Drucksensor und ScaledMIN und ScaledMAX sind der Messwertbereich von 0-10 bar. Siehe Bild 9. Bild 9 – Zuweisen der Funktionsparameter zu unserem Drucksensor. Wenn ich einen neuen analogen Eingang habe, muss ich die SPS-Logik nicht erneut erstellen, sondern ziehe den FC einfach per Drag & Drop in den Haupt-OB1 und weise die neuen Sensorparameter zu. Nehmen wir an, wir haben jetzt einen neuen analogen Sensor zum Messen des Füllstands in einem Wassertank zwischen 0 und 100 % des Tanks. Wir führen dieselben Schritte wie zuvor aus und beginnen mit der Definition des neuen Eingabetags. Siehe Bild 10. Bild 10 – Neuen Füllstandssensor definieren Als Nächstes konfigurieren wir den Eingangskanal für den Füllstandssensor wie in Bild 6. Wir gehen von derselben Konfiguration aus. Als Nächstes ziehen wir einfach den von uns erstellten FC per Drag & Drop und weisen dem Füllstandssensor die Parameter zu. Siehe Bild 11. Bild 11 – Wiederverwendung des FC mit dem Füllstandssensor. Wie Sie dem vorherigen Bild entnehmen können, ist dies einer der vielen Vorteile der Verwendung von Funktions-FCs in Ihrer Logik, da dadurch der Programmieraufwand reduziert werden konnte. Jetzt haben Sie einen generischen Code, der viele Male mit jedem analogen Eingangssignal wiederverwendet werden kann, das Sie in Ihrem SPS-Projekt benötigen. Sehen Sie sich die nächste Simulation zur Verarbeitung von Eingangssignalen in einer Siemens-SPS an. Analoge Eingänge in S7-300 und S7-400 Um zu sehen, wie wir analoge Signale in älteren SPS der S7-Familie wie der S7-300 verarbeiten, erstellen wir zunächst ein neues Projekt und fügen eine S7-300-CPU hinzu. Die ausgewählte SPS verfügt bereits über genügend analoge Eingangskanäle, daher werden wir keine analogen Module hinzufügen. Siehe Abbildung 12. Abbildung 12 – Fügen Sie eine S7-300-SPS hinzu. Dann definieren wir das neue Tag für den analogen Sensor. Wir gehen von einem Drucksensor mit einem Messbereich zwischen 0 und 100 bar und einem Ausgang von 4-20 mA aus. Wir konfigurieren den SPS-Eingangskanal wie zuvor mit der S7-1200, damit er zu unserem analogen Eingangssensor passt. Siehe Abbildung 13. Abbildung 13 – Konfigurieren Sie den Eingangskanal. Nun zum SPS-Codierungsteil: Die Anweisung in der S7-300, die zur Handhabung der analogen Verarbeitung verwendet wird, unterscheidet sich von der Anweisung in der S7-1200. In den S7-1200-SPS müssen wir NORM_X und SCALE_X verwenden. Aber bei der S7-300 haben wir keine normalisierte Anweisung, es wird nur eine SCALE-Anweisung verwendet. Siehe Abbildung 14. Abbildung 14 – SCALE-Befehl in S7-300 Wie Sie aus der vorherigen Abbildung ersehen können, ähnelt der SCALE-Befehl in S7-300 den kombinierten Befehlen NORM_X und SCALE_X. Es gibt noch einen weiteren deutlichen Unterschied, nämlich den BIPOLAR-Eingang. Der BIPOLAR-Eingang wird verwendet, um anzugeben, ob der Wert am IN-Parameter als bipolar oder unipolar interpretiert werden soll. Der Parameter kann die folgenden Werte annehmen: BIPOLAR = 1, dann wird angenommen, dass der eingegebene Integer-Wert zwischen -27648 und +27648 liegt. Wenn uns der analoge Sensor beispielsweise eine Ausgabe im Bereich von -10 V bis +10 V liefert BIPOLAR =0, wird angenommen, dass der ganzzahlige Eingangswert zwischen 0 und 27648 liegt. Wenn uns der Sensor beispielsweise eine Ausgabe im Bereich von 0-10 V liefert Und so werden analoge Eingangssignale in S7-1200- und S7-300-SPS einfach gehandhabt. Was ist für die Steuerung am besten? – Analoge oder digitale Signale Sehen Sie, beide Signale sind für jedes Automatisierungssystem kritisch und nützlich, aber ich persönlich bevorzuge, wenn möglich, die analogen Signale, weil ich durch analoge Signalmessungen der physikalischen Größen des Prozesses eine kontinuierliche Überwachung der Prozessparameter habe, wodurch ich meinen Prozess besser verfolgen und steuern kann. Außerdem kann ich durch die kontinuierliche Überwachung der Parameter unterschiedliche Steuerungslogiken für unterschiedliche Signalwerte festlegen, wodurch es einfacher wird, einen Wertebereich für die Steuerung des Prozesses und andere Wertebereiche für Alarme und Warnungen bei Abweichungen des Prozesses vom Normalbetrieb zu haben. Fazit Ein analoges Signal ist eine kontinuierliche Darstellung einer physikalischen Größe in Ihrem System. Analogeingaben werden am häufigsten im Bereich von 0-10 V oder 4-20 mA bereitgestellt. Analogsignalverarbeitung bedeutet die Umwandlung des analogen 4-20-mA-Signals in einen Wertebereich, der der tatsächlichen physikalischen Größe entspricht und den die SPS verstehen kann. In der modernen S7-Familie von SPS wie S7-1200 erfolgt die Verarbeitung analoger Signale mithilfe der Anweisungen NORM_X und SCALE_X. In der älteren S7-Familie von SPS wie S7-300 erfolgt die Verarbeitung analoger Signale mithilfe der Anweisung SCALE, die im Grunde eine Kombination aus den Anweisungen NORM_X und SCALE_X ist. -
SPS – Unterschied zwischen normalen und schnellen Zählern
leikang posted A plc and hmi article in German in PLC programming learning
Die SPS-Programmierung umfasst viele Arten von Anweisungen und Operanden zur Ausführung von Logik. Eine der am häufigsten verwendeten Anweisungen ist ein Zähler. Ein Zähler wird zum Zählen von Zahlen verwendet. Das Zählen ist für viele Anwendungen erforderlich; beispielsweise erfordert sogar eine kleine Logik wie das Zählen der Anzahl der Flaschen, die in einer Minute durchgehen, einen Zähler. Wenn eine so kleine Anwendung einen Zähler benötigt, dann umfassen Automatisierungstechnologien viele größere Arten von Logik, die Zähler verwenden. Dies sind also wichtige Arten von Anweisungen, die in der SPS-Programmierung verwendet werden. Es gibt zwei Kategorien von Zählern – normale Zähler und Schrittzähler. In diesem Beitrag lernen wir den Unterschied zwischen normalen und schnellen Zählern kennen. Was ist ein normaler Zähler? In der SPS gibt es keinen offiziellen Begriff für einen normalen Zähler. Es handelt sich lediglich um eine Definition, die die beiden grundlegenden Arten von Zählern zeigt – Aufwärtszähler und Abwärtszähler. Wie der Name schon sagt, werden diese Anweisungen zum Zählen von Zahlen verwendet, wenn ein Eingangsimpuls gegeben wird. Angenommen, Sie haben einen Druckknopf und möchten zählen, wie oft er gedrückt wurde. Wenn Sie verstehen, was wir sagen wollen, bedeutet „drücken“, dass er eingeschaltet bleibt, solange er gedrückt wird. Sobald Sie ihn wegnehmen, geht er aus. Das bedeutet, dass es sich um einen Impulseingang handelt und der Zähler nur solche Eingangsarten versteht. Wenn der Eingang kontinuierlich eingeschaltet bleibt, zählt er nicht. Er zählt nur, wenn der Eingang vom Ein- in den Aus-Zustand wechselt und dann die gleiche Sequenz wiederholt. Zum Verständnis siehe das obige Bild. Der CU-Eingang (Count Up) wird verwendet, um den Zähler zu erhöhen, wenn ein Eingang empfangen wird. Da es sich um einen Auslöser handelt, wird die Zählung erhöht, wenn ein Impulseingang empfangen wird. Der PV-Eingang ist der eingestellte Wert. Solange die eingestellten Zählungen nicht erreicht werden, bleibt der Ausgang des Zählers (Q) ausgeschaltet. Wenn der eingestellte Wert erreicht ist, wird der Ausgang eingeschaltet. Auch wenn der Zähleingang gegeben ist, wird der Zähler weiter hochgezählt und der Ausgang bleibt eingeschaltet. Um ihn auszuschalten, muss ein Reset-Eingang gegeben werden, der den Zähler zurücksetzt und den aktuellen Wert auf Null setzt. So funktioniert der Zähler im Allgemeinen. Was ist ein schneller Zähler? Der schnelle Zähler ist dasselbe wie ein normaler Zähler, aber der einzige Unterschied besteht darin, dass er sehr schnelle Eingangstypen zählt. Angenommen, Sie haben einen Näherungssensor, der sich beispielsweise 1000 Mal in 30 Sekunden ein- oder ausschaltet. Solche schnellen Eingangssignale sind in einem normalen Zähler schwer zu erkennen, da er eine kürzere Abtastzeit hat. Der schnelle Zähler erledigt diese Aufgabe, indem er die Anzahl der an seinem Eingang empfangenen Impulse schnell zählt. Ähnlich wie bei einem normalen Zähler wird sein Ausgang eingeschaltet, nachdem ein festgelegter Wert erreicht wurde, und es ist ein Reset-Eingang erforderlich, um den Zähler zurückzusetzen und den Ausgang auszuschalten. Der schnelle Zähler kann mit Frequenzen von 5 kHz arbeiten. Da Funktionsblöcke des schnellen Zählers durch bestimmte Hardware-Interrupts verwaltet werden, kann die Einhaltung der maximalen Frequenzabtastraten je nach Ihrer spezifischen Anwendung und Hardwarekonfiguration variieren. Nicht alle SPS-Eingänge können als schnelle Zähler verwendet werden. Es gibt nur einige dedizierte SPS-Eingänge für die Zuweisung einer schnellen Zählfunktion. Wie Sie sehen, besteht der einzige Unterschied zwischen diesen beiden Zählern in der Funktionsgeschwindigkeit, da ein normaler Zähler keine schnellen Eingabetypen akzeptieren kann. -
MITSUBISHI-DE SPS-Programmierung für Sortier- und Verteilungslinien – Erweiterte Logik
leikang posted A plc and hmi article in German in PLC programming learning
In dieser erweiterten SPS-Logik werden Teile unterschiedlicher Größe erkannt, entsprechend der Kartongröße sortiert und in die Behälter gelegt. Die Teile sind nichts anderes als Kartons unterschiedlicher Größe, z. B. klein, mittel und groß. Der Roboter legt Kartons unterschiedlicher Größe nach dem Zufallsprinzip auf das Förderband. Anschließend erkennt das System die Kartongröße, bewegt sich zum jeweiligen Förderband und legt sie in die entsprechenden Behälter. SPS-Programmierung für Sortier- und Verteilungslinien Die folgende Simulation zeigt den Betrieb des Sortier- und Verteilungsliniensystems. Ein- und Ausgänge Typ Gerätenr. Gerätename Betrieb Eingang X0 Startpunkt (Versorgung) EIN, wenn das Teil erkannt wird. 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 am rechten Ende erkannt wird. Eingang X4 Sensor EIN, wenn das Teil am rechten Ende erkannt wird. Eingang X5 Sensor Das Förderband bewegt sich vorwärts, wenn Y1 EIN ist. Eingang X6 Teil erkennen EIN, wenn das Teil vor dem Schieber erkannt wird. Eingang X10 Startpunkt (Entladen) EIN, wenn sich der Entladeroboter am Startpunkt befindet. Eingang X11 Teil auf Tisch EIN, wenn sich das Teil auf dem Tisch befindet. Eingang X12 Robotervorgang beendet EIN, wenn der Robotervorgang beendet ist. Ausgang Y1 Förderband vorwärts Das Förderband bewegt sich vorwärts, wenn Y2 eingeschaltet ist. Ausgang Y2 Förderband vorwärts Bewegt sich nach vorne, wenn Y3 eingeschaltet ist. Ausgang Y3 Sortierflügel Das Förderband bewegt sich vorwärts, wenn Y4 eingeschaltet ist. Ausgang Y4 Förderband vorwärts Das Förderband bewegt sich vorwärts, wenn Y5 eingeschaltet ist. Ausgang Y5 Förderband vorwärts Fährt aus, wenn Y6 eingeschaltet ist, und ein, wenn Y6 ausgeschaltet ist. Der Schieber kann nicht mitten im Hub angehalten werden. Ausgang Y6 Pusher Der Roboter bewegt das Teil zum Tablett, wenn Y7 eingeschaltet ist. Ein Prozesszyklus beginnt. Ausgang Y7 Befehl „Entladen“ Wenn Y7 eingeschaltet ist, bewegt der Roboter das Teil zur Ablage. Ein Prozesszyklus beginnt. Ausgang Y10 Rot Leuchtet, wenn Y10 eingeschaltet ist. Ausgang Y11 Grün Leuchtet, wenn Y11 eingeschaltet ist. Ausgang Y12 Gelb Leuchtet, wenn Y12 eingeschaltet ist. Programmbeschreibung Durch Betätigen des Druckknopfs PB1 (X20) auf dem Bedienfeld wird der Zufuhrbefehl (Y0) ausgelöst, wodurch der Roboter zum Bewegen des Objekts in Bewegung gesetzt wird. Sobald der Roboter seine Aufgabe, das Teil zu bewegen und in seine ursprüngliche Position zurückzukehren, abgeschlossen hat, wird der Zufuhrbefehl (Y0) deaktiviert. Durch Aktivieren des Zufuhrbefehls (Y0) wird der Roboter angetrieben, um ein Teil bereitzustellen. Durch Aktivieren des Schalters SW1 (X24) auf dem Bedienfeld werden die Förderbänder veranlasst, vorwärts zu fahren. Umgekehrt führt das Deaktivieren des Schalters dazu, dass die Förderbänder angehalten werden. Auf Förderbändern transportierte Teile unterschiedlicher Größe, nämlich groß, mittel und klein, werden nach Eingabe der oberen (X1), mittleren (X2) und unteren (X3) Sensoren sortiert und in dafür vorgesehene Behälter geliefert. Große Teile werden zum hinteren Förderband geleitet, wenn der Sortierflügel (Y3) am geteilten Förderband aktiviert wird, woraufhin das Teil auf dem Förderband transportiert wird und schließlich von der rechten Kante herunterfällt. Mittlere Teile werden zum vorderen Förderband geleitet, wenn der Sortierflügel (Y3) am geteilten Förderband deaktiviert wird, und anschließend vom Roboter auf das Tablett übertragen. Kleine Teile werden zum hinteren Förderband geleitet, wenn der Sortierflügel (Y3) am geteilten Förderband aktiviert wird. Sobald der Sensor „Teil erkennen“ (X6) im geteilten Förderband aktiviert wird, wird das Förderband angehalten und das Teil auf das Tablett geschoben. Wenn der Roboter ein Teil auf dem Tisch erkennt (X11), wird der Befehl „Entladen“ (Y7) aktiviert. Sobald der Roboter seine Operationen beendet hat, was durch das Einschalten des Status „Roboteroperation beendet“ (X12) angezeigt wird (was geschieht, wenn ein Teil auf dem Tablett abgelegt wird), wird der Befehl „Entladen“ (Y7) deaktiviert. Sofern der Schalter SW2 (X25) auf dem Bedienfeld aktiviert bleibt, erfolgt unter folgenden Bedingungen eine automatische Zufuhr eines neuen Teils: Wenn der Roboter den Transport eines mittleren Teils einleitet. Wenn ein kleines Teil in die Ablage gelegt wird oder ein großes Teil von der rechten Kante des Förderbands herunterfällt. Die Anzeigeleuchten blinken folgendermaßen: Das rote Licht zeigt an, dass der Roboter gerade ein Teil zuführt. Das grüne Licht bedeutet, dass das Förderband in Bewegung ist. Das gelbe Licht leuchtet, wenn das Förderband stillsteht. SPS-Programm -
SPS-Speicherorganisation – Datendateien und Programmdateien
leikang posted A plc and hmi article in German in PLC programming learning
Wenn Sie in einem SPS-System arbeiten, wissen Sie, dass der Speicher das Wichtigste ist, worauf Sie achten müssen. Welches Programm Sie schreiben und wie viel Speicher verbraucht wird, ist ein sehr wichtiger Faktor bei der Bestimmung der SPS-Leistung. Dazu ist es notwendig zu verstehen, wie die Speicherstruktur in einer SPS organisiert und definiert ist. SPS-Speicherorganisation Ohne Kenntnisse der Speicherorganisation wäre es schwierig vorherzusagen, wie viel genaues Programm Sie schreiben müssen. In diesem Beitrag werden wir uns die Speicherorganisation in der SPS ansehen. Der Speicher in einer SPS ist hauptsächlich in zwei Typen unterteilt – Datendateien und Programmdateien. Datendateien Die Datendatei ist der Speicherort, an dem Informationen wie Speicherwörter, Statuswörter, Eingabevariablen, Ausgabevariablen, Kommunikationsvariablen, Timer, Zähler und andere integrierte Bibliotheksfunktionen des SPS-Herstellers gespeichert werden. Sehen wir uns jedes Beispiel einzeln an. Speicherwörter – Speicherwörter sind Boolesche Variablen, Integervariablen, Double-Integer-Variablen und Gleitkommavariablen. Angenommen, eine SPS hat 100 Speichervariablen zur Verwendung zugewiesen. Von diesen werden nur 5 Variablen verwendet. Die erste Variable ist vom Typ Bit und speichert entweder 0 oder 1. Die zweite Variable ist eine Ganzzahl, mit oder ohne Vorzeichen. Die dritte Variable ist ebenfalls eine Ganzzahl. Die vierte Variable ist eine doppelte Ganzzahl, mit oder ohne Vorzeichen. Wenn eine Variable eine doppelte Ganzzahl oder Gleitkommazahl ist, verbraucht sie zwei Speichervariablen. Die fünfte Speichervariable ist also eine doppelte Ganzzahl. Statuswörter – Statuswörter speichern Informationen über die SPS. Es gibt zwei Typen – Statusbits und Statusganzzahlen. Eingabevariablen – Sie speichern Daten zu digitalen und analogen Eingängen der SPS. Ausgabevariablen – Sie speichern Daten zu digitalen und analogen Ausgängen der SPS. Kommunikationsvariablen – Sie speichern Daten zu Kommunikationsprotokollen, die in der SPS verwendet werden. Dies können Modbus, Ethernet, Can-Open usw. sein. Abgesehen davon können andere integrierte Bibliotheken verwendet werden, um in den Datendateispeicher zu gelangen. Dazu gehören Timer, Zähler, Impulsblöcke usw. Programmdateien Wie der Name schon sagt, speichern Programmdateien Daten zu geschriebener Logik, Unterprogrammen und Interrupts. Dies ist der Hauptverbraucher des Speichers in der SPS. Wenn mehr SPS-Code geschrieben wird, ist der Programmdateiverbrauch groß, und wenn weniger Code geschrieben wird, ist der Programmdateiverbrauch geringer. Die gesamte Logik, sei es eine Leiter, ein Funktionsblockdiagramm, strukturierter Text, ein sequentielles Flussdiagramm oder eine Anweisungsliste, befindet sich im Programmdateispeicher. Auch benutzerdefinierte Funktionsblöcke und benutzerdefinierte Datentypen befinden sich in Programmdateien. Die Speicherorganisation in der SPS erfolgt entweder im internen Speicher oder auf internen und externen SD-Karten. Wenn der interne Speicher voll wird und Sie mehr Daten zum Schreiben des SPS-Programms benötigen, müssen Sie eine externe SD-Karte einlegen, um den Programmspeicher zu erweitern. In diesem Fall werden sowohl die Datendateien als auch die Programmdateien erweitert. Viele SPS verfügen über ein Online-Animationsfenster, das die aktuelle Speichernutzung anzeigt. Es kann entweder online oder offline angezeigt werden. Dies hilft bei einer besseren Speicherplanung. -
Upgrade und Migration von SPS-Systemen
leikang posted A plc and hmi article in German in PLC programming learning
Ob Industrieautomation oder ein anderes SPS-System, jedes Gerät oder jede Ausrüstung erreicht nach einer gewissen Zeit ein Stadium, in dem es entweder ausgetauscht oder aktualisiert werden muss. Upgrade und Migration Wenn eine SPS beispielsweise länger als 10 Jahre im Einsatz ist, erreicht sie ein Stadium, in dem der technische Support nicht mehr besteht oder die SPS nicht mehr ersetzt werden kann, da sie veraltet ist. In diesem Fall haben Sie zwei Möglichkeiten – entweder die Migration auf einen komplett neuen Satz SPS oder das Upgrade der Firmware und des Programms. Es ist sehr wichtig, diesen Unterschied zu verstehen, da er bei der Auswahl der richtigen Arbeit hilft. In diesem Beitrag lernen wir den Unterschied zwischen dem Upgrade und der Migration von SPS-Systemen kennen und erfahren, wie man das Richtige umsetzt. Warum ist das Migrieren oder Upgraden von SPS-Systemen erforderlich? Bevor wir uns mit dem Thema befassen, müssen wir zunächst verstehen, warum wir das tun müssen. Angenommen, Sie verwenden seit fast 15 Jahren eine SPS „X“. Es ist nicht so, dass das Programm plötzlich zu Fehlfunktionen neigt; das ist eine ganz andere Theorie und hängt ganz davon ab, wie der Programmierer den Code geschrieben hat. Einmal geschriebener SPS-Code wird ein Leben lang auf die gleiche Weise ausgeführt. Das Problem beginnt mit Hardware und Support. Ein SPS-Hersteller wird diese SPS „X“ meist nicht so lange in Produktion halten, wenn sie nicht stabil ist oder viele Programmierbeschränkungen aufweist. Diese SPS wird bald veraltet sein und kein Ersatz mehr verfügbar sein. Sogar der Systemintegrator oder der SPS-Hersteller selbst wird seinen technischen Support nicht mehr leisten können, da das Personal dafür auf eine neuere Marke umgestellt wird oder das Programmierkabel ebenfalls nicht mehr verfügbar ist. Wenn in diesem Fall das SPS-System aus irgendeinem Grund plötzlich ausfällt, bleibt Ihnen keine andere Wahl, als zu warten, bis eine längere Ausfallzeit endet. Und wenn Sie diese SPS trotzdem noch irgendwoher bekommen können, werden die Kosten extrem hoch und außerhalb Ihres Budgets liegen. Angesichts der aktuellen Lieferkettenunterbrechungen und der jüngsten Knappheit neuer Lösungen und Teile für die industrielle Automatisierung ist es nicht möglich, genau abzuschätzen, wie lange es dauern könnte, eine neue Einheit zu beschaffen. In diesem Fall haben Sie zwei Möglichkeiten: entweder auf eine andere Marke umzusteigen oder die vorhandene Einheit auf eine neuere Firmware-CPU oder ein neueres Programm zu aktualisieren. Aus diesem Grund spielen Migration und Upgrade eine wichtige Rolle in der industriellen Automatisierung. Außerdem bringen neue Lösungen weniger Fehler und Risiken, stärkeren technischen Support, Service-Know-how, weniger Kapitalinvestitionen und einen effizienteren Anlagenbetrieb mit sich. Was ist die Migration des SPS-Systems? Lassen Sie uns zunächst die einfachere der beiden Möglichkeiten verstehen. Migration bedeutet, ein altes System vollständig durch ein neues System zu ersetzen. Dies ist vergleichbar mit einem Bürger, der von seiner alten Stadt in eine neue Stadt zieht. Angenommen, Sie haben eine alte SPS, die einige Hardwaredefekte aufweist, nachdem festgestellt wurde, dass sie 10 Jahre alt ist. Zwei digitale Eingänge der CPU sind fehlerhaft geworden und die CPU ist auf dem Markt nicht mehr erhältlich. Außerdem hat der Systemintegrator, der die SPS geliefert hat, aus Pech sein Geschäft geschlossen oder ist auf neuere Marken umgestiegen. In diesem Fall bedeutet Migration, dass Sie eine SPS einer anderen Marke kaufen müssen. Vor dem Kauf müssen Sie Faktoren wie IO-Anzahl, IO-Verkabelung, Verfügbarkeit von Kommunikationsanschlüssen, Programmierkapazität, Speicherkapazität, Ausführungsgeschwindigkeit, Erweiterungsmöglichkeit usw. berücksichtigen. Wenn Sie all dies erledigt haben, müssen Sie eine neue kaufen und ein neues Programm gemäß der Software des Herstellers darin schreiben. Außerdem müssen Sie die vorherige IO-Liste mit dem neuen Anbieter teilen, damit dieser die IO-Zuordnung in der SPS entsprechend vornimmt und die Zeit für die Verkabelung der IOs im Schaltschrank verkürzt. Sobald dies erledigt ist, können Sie die alte SPS durch die neue ersetzen und das System entsprechend verwenden. Obwohl neue und konsistente Programmierstandards mit diesem Ansatz nicht vollständig angewendet werden können, bleibt die Gesamtfunktionalität so nah wie möglich am Original und das Programm kann bis zu einem gewissen Grad verbessert werden. Was ist die Aktualisierung von SPS-Systemen? Betrachten wir einen zweiten Fall der Aktualisierung des SPS-Systems. Sie haben dieselbe SPS des Herstellers wie zuvor besprochen und es ist ein Fehler aufgetreten. Jetzt stellen Sie fest, dass eine höherwertige SPS desselben Herstellers mit ähnlichem Codierstil und IO-Funktionen verfügbar ist. Sogar der Hersteller bietet Support an. Anstatt den Hersteller zu einem neueren zu wechseln oder die SPS-Marke komplett zu ändern, müssen Sie Ihr System nur auf eine neuere und höhere Version aktualisieren. Diese neue CPU muss entweder mit der neuen Codierung neu geschrieben oder einfach angeschlossen und abgespielt werden, je nach Software. Eine Aktualisierung erfordert daher eine umfassendere IO-Verkabelung und SPS-Codierung, die durchgeführt werden muss, während wir das System aktualisieren. Außerdem kann der Programmierer durch das Neuschreiben von Codes von Grund auf die Fehler beseitigen, die er in älteren Systemen beobachtet hat, und auf einfachere Weise eine effiziente und zuverlässige Logik planen. Dies ist ein Ansatz, bei dem man ein System von Grund auf neu aufrüstet. Unterschied zwischen Migration und Upgrade von SPS-Systemen Migration bedeutet den Wechsel zu einem völlig neuen SPS-Hersteller, während Upgrade den Wechsel zu einer neueren CPU desselben SPS-Herstellers bedeutet. Migration ist billiger als Upgrade, da sie weniger Ausfallzeiten, weniger neue Hardware, weniger Programmierzeit und weniger Infrastrukturdesign erfordert. Migration ist weniger riskant als Upgrade, da Sie das Programm des älteren Systems bereits zur Verfügung haben und es nur kopieren und einfügen müssen. Obwohl eine 100-prozentige Kopie nicht möglich ist, können die Funktionalitäten dank dieses Ansatzes weitgehend ähnlich sein. Migration kann zu neuer Hardware führen, und es kann einige Zeit dauern, bis die Ingenieure das System schnell verstehen, damit sie es dann warten und Fehler beheben können. In diesem Fall ist ein Upgrade viel einfacher. Eine Migration ist weniger zuverlässig und effizient als ein Upgrade, da Sie trotz intensiver Untersuchung nicht wissen, wie die neue SPS jetzt funktioniert. Eine Migration und ein Upgrade sind eine heikle Angelegenheit und erfordern das umfassende Fachwissen der beteiligten Ingenieure und Programmierer. Außerdem ist die Vorgehensweise von System zu System unterschiedlich. Wenn Sie dies einmal getan haben, kann es Ihre Aufgabe erheblich erleichtern. Auf diese Weise haben wir das Konzept des Upgrades und der Migration von SPS-Systemen kennengelernt. -
Testen und Validieren bei der SPS-Entwicklung
leikang posted A plc and hmi article in German in PLC programming learning
Wenn Sie ein SPS-Programm entwickeln, müssen Sie sicherstellen, dass es ordnungsgemäß getestet und validiert wurde, bevor Sie es dem Kunden zeigen. Dies liegt daran, dass ein SPS-Programm aus vielen Teilen besteht, wie Logik, Konfiguration, Einstellungen usw. Daher ist es notwendig, jedes einzelne Teil zu testen und zu validieren, unabhängig davon, welches Programm nicht funktioniert. Wenn es Fehler in der Konfiguration oder Logik gibt, wird das System vor Ort nicht funktionieren. Um dies zu vermeiden, verbringen die meisten Programmierer Stunden damit, die SPS-Logik zu testen, und dies ist ein sehr wichtiger Schritt, den sie durchführen. In diesem Beitrag lernen wir den Test- und Validierungsprozess der SPS-Entwicklung kennen. Testen und Validieren bei der SPS-Entwicklung Einige der Punkte im Zusammenhang mit SPS-Tests und -Validierung sind unten aufgeführt. Versammeln Sie die Beteiligten zu einem ersten Meeting, um den Umfang, die Ziele und die Anforderungen des SPS-Projekts zu besprechen. Formulieren Sie die Ziele und Akzeptanzkriterien für Tests und Validierung. Weisen Sie Ressourcen zu, darunter Teammitglieder, Hardware und Softwaretools, die für den Test- und Validierungsprozess erforderlich sind. Bereiten Sie detaillierte funktionale Designspezifikationen (FDS) vor, die als Grundlage für die Entwicklung und Prüfung von SPS-Programmen dienen. Entwickeln Sie die anfänglichen Codeblöcke und Routinen auf der Grundlage der funktionalen Designspezifikationen. Schreiben Sie Testpläne speziell für Unit-Tests, in denen Sie angeben, was jede Einheit leisten soll und wie sie getestet werden soll. Führen Sie die Unit-Tests gemäß den Testplänen durch und zeichnen Sie die Ergebnisse für jede Funktion oder Routine auf. Erstellen Sie Testpläne für Integrationstests, in denen Sie darlegen, wie verschiedene Codeblöcke und Routinen kombiniert und als einzelne Einheit getestet werden. Führen Sie Integrationstests durch und validieren Sie die Funktionalität und Interoperabilität des gesamten Programms mit anderen Systemen. Entwickeln Sie das FAT-Protokoll und geben Sie die Kriterien an, die das System erfüllen muss, um als akzeptabel zu gelten. Führen Sie den FAT auf der Grundlage des FAT-Protokolls in einer simulierten Umgebung durch, um sicherzustellen, dass alle Anforderungen erfüllt sind. Entwerfen Sie detaillierte Validierungsprotokolle, die definieren, wie die Validierung durchgeführt wird, was überprüft wird und was akzeptable Ergebnisse darstellt. Überprüfen Sie die Validierungsprotokolle und holen Sie Genehmigungen von der Qualitätssicherung und anderen Beteiligten ein. Implementieren Sie die Validierungsprotokolle, dokumentieren Sie die Ergebnisse und identifizieren Sie etwaige Abweichungen oder Fehler. Erstellen Sie ein SAT-Protokoll, das sich auf die reale Umgebung konzentriert, in der das SPS-System betrieben wird. Führen Sie SAT durch, um zu überprüfen, ob das SPS-System in seiner vorgesehenen Betriebsumgebung zuverlässig funktioniert. Erstellen Sie eine umfassende Dokumentation der Test- und Validierungsaktivitäten, Ergebnisse und aller ergriffenen Korrekturmaßnahmen. Holen Sie die endgültige Genehmigung aller Beteiligten ein, um sicherzustellen, dass das SPS-System sowohl getestet als auch validiert wurde. Richten Sie Prozesse ein, um die Leistung des SPS-Systems zu überwachen, und planen Sie regelmäßige erneute Test- und Validierungsaktivitäten ein. Archivieren Sie alle SPS-Projektdokumentationen und -Codes und schließen Sie das Projekt offiziell ab. Die obigen Schritte bieten eine einfache Anleitung zur Vorbereitung von Tests und Validierungen in einem neuen SPS-Entwicklungsprojekt. Sehen wir uns nacheinander einige wichtige Schritte an, die für eine ordnungsgemäße Funktion bis zum Ende befolgt werden müssen. IO-Mapping SPS funktioniert entsprechend Eingängen und Ausgängen. Der allererste Schritt beim Testen des Programms ist also die Überprüfung des IO-Mappings in der SPS. Sie müssen entweder jeden digitalen Eingang in der Simulation erzwingen oder der SPS einen tatsächlichen Hardware-Eingang geben. Wenn die Zuordnung nacheinander richtig ist, wird dies in Ihren Grafiken und Ihrem Programm widergespiegelt. Dadurch werden digitale Eingänge überprüft. Befolgen Sie denselben Vorgang für analoge Eingänge. Für analoge Eingänge müssen Sie jedoch mehrere Rohzählungen statt nur einer Zählung angeben. Ein breiter Zählbereich gibt Ihnen eine gute Vorstellung davon, ob der Kanal ordnungsgemäß funktioniert oder nicht. Dann müssen Sie für digitale Ausgänge diese nacheinander erzwingen. Wenn die SPS-Ausgänge gemäß der Sequenz ein- und ausgeschaltet werden, ist Ihre DO-Zuordnung richtig. Befolgen Sie denselben Vorgang für analoge Ausgänge und geben Sie einen breiten Bereich von Rohzählungen statt einer einzelnen Zählung an. Sie erhalten eine gute Vorstellung davon, ob der AO-Kanal ordnungsgemäß funktioniert oder nicht. Überprüfen der Kommunikationsprotokolle Nachdem die IOs im SPS-Programm überprüft wurden, besteht der nächste Schritt darin, Kommunikations- und Netzwerkadressen zu überprüfen. Angenommen, eine SPS hat einen Ethernet-Port und einen Modbus RTU-Port. Sie haben ein HMI an den Ethernet-Port und drei VFDs an den Modbus-Port angeschlossen. Der Modbus-Port wird zum Übertragen und Empfangen von Daten mit VFD verwendet, wie Strom, Frequenz, Spannung usw. Diese Zuordnungen wurden von Ihnen in der SPS-Logik vorgenommen. Sie müssen zuerst den Ethernet-Port überprüfen, indem Sie testen, ob die IP pingt oder nicht und ob sie mit HMI kommuniziert oder nicht. Dann müssen Sie die Modbus-Kommunikation herstellen und überprüfen, ob die Daten ordnungsgemäß mit der SPS kommuniziert werden oder nicht. Dadurch wird Ihr Hardwareteil vollständig gelöscht, da Sie nun Daten ordnungsgemäß an das Feld übermitteln können; entweder über Hard-IO oder Soft-IO. Diese beiden grundlegenden Schritte sind der erste Schritt Ihrer Validierung. Manueller Modus Einige Systeme haben einen manuellen Modus ohne kritische Verriegelungen und einige Systeme haben einen manuellen Modus mit kritischen Verriegelungen. Um den manuellen Modus zu überprüfen, müssen Sie jeden einzelnen Ausgang Schritt für Schritt einschalten und prüfen, ob der tatsächliche physische Ausgang eingeschaltet wird oder nicht. In diesem ersten Schritt wird überprüft, ob der physische DO oder AO ordnungsgemäß mit den Tasten für den manuellen Modus verknüpft wurde oder nicht. Anschließend müssen Sie entsprechende Alarme generieren und prüfen, ob der Ausgang ausgeschaltet wird oder nicht. Nur die verknüpften Ausgänge sollten ausgeschaltet werden. Die verbleibenden Ausgänge sollten nicht betroffen sein. Dadurch wird sichergestellt, dass alle Ausgänge ordnungsgemäß im Programm mit den richtigen Verriegelungen verknüpft wurden. Denn sobald der manuelle Modus gelöscht wurde, wird bestätigt, dass die physischen Ausgänge manuell eingeschaltet werden können und der Automatikmodus dann einfacher überprüft werden kann. Die direkte Überprüfung der Automatikmoduslogik wird den Programmierer verwirren, welcher Ausgang ein- oder ausgeschaltet wird. Durch die Überprüfung des manuellen Modus wird sichergestellt, dass einzelne Ausgänge eingeschaltet sind oder nicht. Automatikmodus Der nächste große Schritt ist die Überprüfung des Automatikmodus. Der Automatikmodus wird als Überprüfungssequenz mit Verriegelungen geliefert. Jedes System erhält ein Steuerlogikdokument, das zeigt, wie die Sequenz mit den richtigen Verriegelungen und der Ausgabematrix funktioniert. Der SPS-Programmierer muss sicherstellen, dass bei Ausführung einer Sequenz die entsprechenden Ausgänge entsprechend ein-/ausgeschaltet werden oder nicht. Außerdem: Läuft die Sequenz ordnungsgemäß mit Verriegelungen oder nicht? Die Automatikmoduslogik muss bei der Erstellung hauptsächlich in vier Teile unterteilt werden: Einschalten der Ausgänge, Schreiben des Sequenzflusses, Verknüpfen von Verriegelungen und Alarmen und Anzeigen des aktuellen Betriebsstatus. Diese Technik macht den Programmfluss sehr einfach anzusehen und Fehler zu beheben. Man sollte versuchen, die ständige Verwendung von Set-Reset-Spulen und Kontaktplanlogik zu vermeiden. Kontaktplanlogik ist einfach zu verwenden, aber wenn sie in einer Online-Simulation ausgeführt wird, kostet die Fehlerbehebung Zeit. Außerdem sind Set-Reset-Spulen schwierig zu handhaben, denn wenn eine Set-Spule einmal verwendet wird, muss darauf geachtet werden, sie irgendwo zurückzusetzen. Andernfalls bleibt das Bit gesetzt, wenn die Bedingung nicht richtig geschrieben ist. Auf diese Weise haben wir den Test- und Validierungsprozess bei der SPS-Entwicklung gesehen. -
Best Practices für die SPS-Verkabelung
leikang posted A plc and hmi article in German in PLC programming learning
Best Practices für die SPS-Verkabelung (speicherprogrammierbare Steuerung) sind aus mehreren Gründen in industriellen Automatisierungs- und Steuerungssystemen unverzichtbar. In den Bereichen Produktionsbetrieb, Fertigung und Energieerzeugung sowie in einer Vielzahl von Industriezweigen helfen wichtige Komponenten von SPS dabei, verschiedene Prozesse zu regeln und zu überwachen. Best Practices für die SPS-Verkabelung Bild mit freundlicher Genehmigung von: Yeulian Hier sind einige wichtige Gründe, warum eine ordnungsgemäße SPS-Verkabelung wichtig ist. Kurz gesagt: Sie sorgt für Zuverlässigkeit, Sicherheit, Genauigkeit, Wartung, Skalierbarkeit, Konformität, Kosteneffizienz und Dokumentation. Welche Praktiken werden für die SPS-Verkabelung angewendet? Die Verkabelung einer SPS (speicherprogrammierbare Steuerung) ist ein grundlegender Teil der Installation und Inbetriebnahme automatisierter Steuerungssysteme. SPS werden zur Steuerung verschiedener industrieller Prozesse und Maschinen verwendet. Die Verkabelung verbindet die SPS mit Sensoren, Aktoren und anderen Geräten in der Fabrikhalle. Es stellt sicher, dass die Signale von der SPS genau übertragen werden, sodass diese mit der Ausrüstung interagieren kann. Hier sind einige wichtige Vorgehensweisen, die Sie beim Verdrahten einer SPS beachten sollten: Planung Bevor Sie mit der Verdrahtung beginnen, ist es wichtig, einen klaren Plan des Layouts zu haben. Er sollte Komponenten, Eingabe-/Ausgabegeräte (E/A) und die Position der SPS im Schrank oder Schaltschrank umfassen. Schaltplan Stellen Sie sicher, dass Sie eine aktualisierte (überarbeitete) Kopie des Schaltplans haben. Auswahl geeigneter Kabel Verwenden Sie hochwertige Kabel, die die erforderlichen elektrischen Spezifikationen erfüllen. Stellen Sie sicher, dass sie lang genug sind und über ausreichende Stromkapazität verfügen, um Probleme bei der Signalübertragung und Überhitzung zu vermeiden. Identifizierung Beschriften Sie alle Kabel, Anschlüsse und Klemmen deutlich. Dies vereinfacht die Fehlerbehebung, Wartung und zukünftige Erweiterungen. Die Beschriftung erleichtert die Identifizierung jedes Kabels, Anschlusses und jeder Klemme innerhalb des Systems. Die Beschriftung trägt dazu bei, die Integrität des Steuerungssystems aufrechtzuerhalten. Das versehentliche Anschließen von Kabeln oder Klemmen kann zu Geräteschäden, Systemstörungen oder sogar Sicherheitsrisiken führen. Eine ordnungsgemäße Identifizierung verringert die Fehlerwahrscheinlichkeit bei Installation oder Wartung. Feste Verbindungen Stellen Sie durch Festziehen der Klemmen sichere und zuverlässige Verbindungen sicher, um lose Verbindungen zu vermeiden, die zu Ausfällen führen können. In Industrieanlagen können Ausfälle extrem kostspielig sein. Lose Verbindungen führen zu unerwarteten Geräteabschaltungen oder Fehlfunktionen, was zu Produktionsverzögerungen und finanziellen Verlusten führt. Trennung von Strom und Signalen Halten Sie ausreichend Abstand zwischen Strom- und Signalkabeln, um elektromagnetische Störungen zu vermeiden. Verwenden Sie bei Bedarf Rinnen oder Trennwände, um die Kabel physisch zu trennen. Dies kann dazu beitragen, Übersprechen zu verhindern und die Wahrscheinlichkeit von Störungen zu verringern. Prüfung und Überprüfung Bevor das SPS-System eingeschaltet wird, sind Durchgangs- und Überprüfungstests unerlässlich. Dadurch wird sichergestellt, dass alle Komponenten richtig und gemäß den Konstruktionsspezifikationen angeschlossen sind. Falsche Verbindungen können zu Fehlfunktionen, Ineffizienz oder Schäden an der Ausrüstung führen. Sicherheit Befolgen Sie beim Verdrahten die elektrischen Sicherheitsvorschriften. Stellen Sie sicher, dass die SPS und alle Komponenten ausgesteckt sind, bevor Sie an der Verdrahtung arbeiten. Dokumentation Führen Sie detaillierte Aufzeichnungen aller Verkabelungen, einschließlich aktueller Diagramme, Kabellisten und Konfigurationsdokumentation. Dies ist für zukünftige Wartungsarbeiten und Systemänderungen von Nutzen. Schulung Stellen Sie sicher, dass das Personal, das das System bedient und wartet, in der Verkabelung und Bedienung von SPS geschult ist. Einhaltung gesetzlicher Vorschriften Überprüfen Sie, ob die SPS-Verkabelung den geltenden Normen entspricht. Eine ordnungsgemäße Verkabelung ist unerlässlich, um den zuverlässigen und sicheren Betrieb des von der SPS gesteuerten Systems zu gewährleisten. Die SPS-Verkabelung ist entscheidend für die Zuverlässigkeit, Sicherheit, Genauigkeit und Wartbarkeit eines industriellen Steuerungssystems. Eine ordnungsgemäße Verkabelung stellt sicher, dass das Steuerungssystem wie vorgesehen funktioniert und den Industrienormen und -vorschriften entspricht, was letztendlich zur Gesamteffizienz und zum Erfolg des industriellen Prozesses beiträgt. Warum ist eine ordnungsgemäße SPS-Verkabelung wichtig? Die ordnungsgemäße Verkabelung einer SPS (speicherprogrammierbare Steuerung) ist in industriellen Automatisierungs- und Prozesssteuerungssystemen aus mehreren wichtigen Gründen unerlässlich: Eine ordnungsgemäße Verkabelung sorgt für die Zuverlässigkeit des Systems. Eine ordnungsgemäße Verkabelung gewährleistet eine starke und stabile Kabelverbindung zwischen den Systemkomponenten und verringert die Wahrscheinlichkeit zeitweiliger Ausfälle oder Kommunikationsfehler. Sie sorgt für Sicherheit. Eine falsche Verkabelung kann Kurzschlüsse, Überlastungen und elektrische Gefahren verursachen. Eine ordnungsgemäße Verkabelung minimiert die Möglichkeit elektrischer Unfälle und stellt sicher, dass das System den Sicherheitsstandards entspricht. Sie verbessert die Systemleistung: Eine falsche Verkabelung kann sich negativ auf die Systemleistung auswirken und zu Verzögerungen bei der Kommunikation und Befehlsausführung führen. Eine ordnungsgemäße Verkabelung gewährleistet eine schnelle und genaue Datenübertragung. Eine ordnungsgemäße Verkabelung reduziert Ausfallzeiten und Wartungskosten. Sie hilft uns, einfachere Wartungsarbeiten durchzuführen: Eine sorgfältige Organisation und Kennzeichnung der Kabel erleichtert die Identifizierung und Lösung von Systemproblemen. Einhaltung gesetzlicher Vorschriften: In vielen Branchen erfordern bestimmte Vorschriften und Normen eine ordnungsgemäße Verkabelung, um die Sicherheit und Qualität des Systems zu gewährleisten. Tipps zur SPS-Verkabelung Hier haben wir die wichtigsten Punkte zur SPS-Verkabelung zusammengefasst. Befolgen Sie nationale und lokale Elektrovorschriften. Verwenden Sie geschirmte Kabel für analoge und Kommunikationssignale. Stellen Sie eine ordnungsgemäße Erdung aller Komponenten sicher. Kennzeichnen Sie alle Kabel und Klemmen. Implementieren Sie ein Farbcodierungsschema für Kabel. Trennen Sie Eingangs- und Ausgangskabel. Verwenden Sie die kürzestmöglichen Kabellängen. Vermeiden Sie es, Kabel um Klemmenschrauben zu wickeln. Wählen Sie geeignete Kabelstärken für Last- und Stromanforderungen. Verwenden Sie Aderendhülsen für Litzenkabel. Trennen Sie Hochspannungs- und Niederspannungskabel physisch. Überprüfen Sie die Polarität für Stromversorgung und E/A-Anschlüsse. Bündeln Sie Kabel ordentlich und verwenden Sie Kabelbinder. Prüfen Sie vor dem Einschalten die Kontinuität der Kabel und die korrekten Verbindungen. Halten Sie die Dokumentation auf dem neuesten Stand und halten Sie sie detailliert. Verwenden Sie Klemmenblöcke für eine einfachere Wartung. Führen Sie regelmäßige Verdrahtungsprüfungen durch. Verwenden Sie Zugentlastungsmechanismen, um die Kabel zu schützen. Befolgen Sie aus Sicherheitsgründen die Sperr-/Kennzeichnungsverfahren. Führen Sie nach Abschluss der Verdrahtung gründliche Systemtests durch. -
Erforderliche Werkzeuge, die ein SPS-Programmierer vor Ort mit sich führen muss
leikang posted A plc and hmi article in German in PLC programming learning
Wenn ein SPS-Programmierer einen Standort zur Inbetriebnahme oder für einen Servicebesuch besucht, muss er vor Arbeitsbeginn wissen, welche Werkzeuge er dabei haben muss. Dies liegt daran, dass die meisten Standorte sehr abgelegen sind und nicht alle Materialien leicht zugänglich sind, wenn man sie vergisst mitzunehmen. Wenn er also richtig aufpasst und die notwendigen Materialien mitnimmt, kann er seine Arbeit problemlos erledigen. Es gibt im Allgemeinen viel Verwirrung, wenn Programmierer die Aufgabenliste lesen; deshalb dachte ich, ich erwähne sie einfach, damit sie sie schnell verstehen können. Werkzeuge für SPS-Programmierer Die wichtigsten Werkzeuge, die ein SPS-Programmierer benötigt, sind unten aufgeführt. Laptop mit installierter SPS-Software USB-zu-SPS-Schnittstellenkabel Ethernet-Kabel Schraubendrehersatz Elektrische Prüfgeräte (Multimeter) Abisolierzange Drahtschneider Schraubendreher für Klemmenblöcke Isolierband Tragbare Festplatte oder USB-Flash-Laufwerk RJ45-Crimpwerkzeug Serielle Konverter (RS232 zu USB usw.) IP-Konfigurationstools (optional) Etikettendrucker zum Markieren von Kabeln Industrieller Ethernet-Switch Loop-Kalibrator für analoge Signale Isolierte Zange Notizbuch und Stift zur Dokumentation Tragbarer Drucker für Etiketten vor Ort Antistatisches Armband Hinweis: Die erforderlichen Werkzeuge können je nach SPS-Marke, Modell und Art der Arbeit vor Ort variieren. Stellen Sie immer sicher, dass Sie auch die erforderliche persönliche Schutzausrüstung (PSA) mitführen. In diesem Beitrag sehen wir uns die Werkzeuge an, die ein SPS-Programmierer vor Ort mitführen muss. Richtiger Laptop Dies ist die erste und wichtigste Grundvoraussetzung. Ein schlechter Laptop mit einem defekten Bildschirm/Hardware oder langsamer RAM-Leistung oder wenig Speicher kann die Arbeit des Programmierers stark behindern. Auf dem Laptop, den der Programmierer verwendet, muss die gesamte erforderliche Software vorhanden sein. Falsch installierte Software kann seine Arbeit sehr beeinträchtigen. Alle seine Kommunikationsanschlüsse müssen ordnungsgemäß funktionieren. Das Laptop-Ladegerät muss richtig sein. Abgesehen davon müssen die Netzwerkadapter wie WLAN ordnungsgemäß funktionieren. Programmierkabel Wenn ein SPS-Programmierer vor Ort geht, wird er grundsätzlich eine Verbindung zu einem Automatisierungsgerät herstellen. Dafür müssen alle erforderlichen Programmierkabel vorhanden sein. Er muss diese Kabel im Büro überprüfen, bevor er vor Ort geht. Wenn eine SPS beispielsweise einen USB-Anschluss, einen LAN-Anschluss und einen RS485-Anschluss hat, muss er mindestens USB- und LAN-Kabel mitnehmen, die leicht erhältlich sind. Nur ein Kabel mitzunehmen ist riskant. USB-Stick / tragbare Festplatte Externer Speicher ist ein Muss, da Sie ihn jederzeit zum Übertragen von Dateien oder zum Speichern von Backups benötigen. Der Speicher muss bei Bedarf ausreichend freien Speicherplatz zum Speichern von Daten haben. Heutzutage sind viele Automatisierungsgeräte mit einem USB-Anschluss (USB-Stick) ausgestattet. Wenn die Kabel also nicht funktionieren, ist es ein zusätzlicher Sicherheitsvorteil, ihn mitzuführen. Maus Vor Ort stehen SPS-Programmierer die meiste Zeit unter Druck, Aufgaben rechtzeitig zu erledigen. Die Arbeit mit Laptop-Touchpads ist sehr zeitaufwändig. Außerdem wird Grafikdesign mit einem Laptop-Touchpad hektisch. Wenn Sie also eine USB-Maus dabei haben, können Sie die Aufgabe sehr einfach erledigen. Schraubendreher-Set Ein Schraubendreher ist ein sehr wichtiges Werkzeug für einen SPS-Programmierer. Wenn er vor Ort auf Verkabelungsprobleme stößt oder der Verkabeler zusätzliche Hilfe von ihm benötigt, sind Schraubendreher verschiedener Größen sehr nützlich. Außerdem kann der SPS-Programmierer selbstständig und ohne die Hilfe einer anderen Person an einigen elektrischen Leitungen arbeiten, um jedes Problem schnell zu lösen. Abisolierzange Ähnlich wie Schraubendreher spielen auch Abisolierzangen eine wichtige Rolle. Wenn plötzlich viel Verkabelung erforderlich ist, kann ein SPS-Programmierer dies selbst erledigen, indem er einfach die Kabelenden abisoliert und die Verkabelung wie erforderlich vornimmt. Netzwerkkonnektivität Da ein SPS-Programmierer häufig Online-Support-Zugriff benötigen kann, muss die SIM-Karte über genügend Daten verfügen und die Geschwindigkeit muss gut genug sein, um dies zu unterstützen. Normalerweise besteht auch die Möglichkeit, dass Ihre SIM-Karte nur begrenzten Zugriff auf die Site hat. In diesem Fall sollten Sie sich für ihre Daten an lokale Ingenieure wenden oder, noch besser, einen Netzwerkdongle für eine optimale Nutzung mitnehmen. Schreibwaren Es wäre gut, wenn der SPS-Programmierer Schreibwaren wie Notizblöcke, Stifte, Marker usw. zum Schreiben mit sich führt. Oft hilft es Programmierern, sich in stressigen Situationen an Dinge zu erinnern, wenn sie während der Arbeit etwas aufschreiben. Da außerdem ständiger Druck von Kunden ausgeübt wird, die Arbeit zu erledigen, erleichtert das Aufschreiben die Arbeit für Programmierer. Auf diese Weise haben wir die notwendigen Werkzeuge gesehen, die ein SPS-Programmierer vor Ort mitführen muss. -
SCHNEIDER-DE CRA-Modul in Schneider SPS – Remote-IO-Adaptermodul
leikang posted A plc and hmi article in German in PLC programming learning
In der industriellen Automatisierung gibt es Situationen, in denen IO-Instrumente sehr weit vom Panel entfernt sind und aufgrund der Entfernung nicht mit der lokalen SPS verbunden werden können. Aus diesem Grund sind Remote-IO-Module verfügbar, die nur die Daten dieser IOs mit der Haupt-SPS kommunizieren. Dies erleichtert die Kommunikation und bietet Instrumenteningenieuren die Flexibilität, das Instrument an jedem gewünschten Ort zu platzieren. Remote-IO-Adaptermodul Die Kommunikation zwischen dem Remote-Adapter und der Haupt-SPS erfolgt meist über Ethernet, was die schnellste und effizienteste Kommunikationsmethode ist. Solche Remote-IO-Module sind in vielen SPS-Marken verfügbar. Schneider Electric ist eine solche Marke und für diese ist ein BMXCRA- oder BMECRA-Modul verfügbar. In diesem Beitrag werden wir uns das Konzept der CRA-Module in Schneider SPS ansehen. CRA-Modul in Schneider SPS Bild: BMXCRA31210, Modicon X80 RIO-Modul CRA ist ein Remote-IO-Adaptermodul im Schneider SPS-Automatisierungsbereich. Es hat keine CPU zum Schreiben von Logik; es ist nur ein Datenkommunikator. Es nimmt IO-Werte entgegen und aktualisiert sie kontinuierlich an die Haupt-CPU. Das Modul arbeitet mit dem Ethernet-IP-Protokoll. Es hat drei LAN-Ports zum Arbeiten. Neben Standard-IO-Werten bietet das Modul auch verschiedene Arten von Diagnosen zur Fehlerbehebung. Dies hilft den Programmierern beim flexibleren Schreiben der Logik. Sie haben beispielsweise drei IO-Module in sehr großer Entfernung von der CPU. Dann konfigurieren Sie einfach diese drei Module im CRA-Modul in der Software; und das CRA verwendet sie dann für die Datenkommunikation mit der CPU. Modulkonfiguration Das Modul hat zwei Drehschalter. Sie definieren die ID des Moduls. Beispielsweise werden im System 4 CRA-Module verwendet. Alle vier sind weit voneinander entfernt. Dann muss jedem Modul eine separate Identität zugewiesen werden, damit es von der CPU-Logik leicht unterschieden werden kann. Außerdem wird die Modul-IP im CPU-Programm eingestellt. Es gibt keine Konfiguration im CRA-Modul. Konfigurieren Sie einfach die IP-Adressen in der SPS-Logik für die CRA-Module richtig, stellen Sie die ID mit Drehschaltern ein und Ihre CRA-Module werden entsprechend funktionieren. Das Modul verfügt über vier LEDs zur Fehlerbehebung – Run, IO, Modulstatus und Netzwerkstatus. Lesen Sie den Katalog des Moduls im Detail für eine genaue Beschreibung. Schneider SPS-Kommunikationsmodul Das Modul wird nur in der M580- und Quantum-Reihe von Schneider PLCs unterstützt. Eine interessante Sache an diesem Modul ist, dass es eine große Anzahl von Kommunikationsdiensten wie SNMP-Agent, SNTP-Client, FDR-Client, FTP-Client, TFTP-Client, DHCP-Client, CIP-Explizite-Nachrichten und Quality of Service hat. All dies ist Teil der Cybersicherheitsfunktionen und hilft, das Modul vor Cyberangriffen zu schützen. Die CRA-Module sind vollständig redundant. Es hängt davon ab, wie Sie das System vernetzen. Der Grad der Redundanz hängt davon ab, wie Sie die Kabel verkabeln und wie Sie die Topologie festlegen. Auf dieser Grundlage können Sie die Logik sicher betreiben, ohne einen Verlust von IO-Daten befürchten zu müssen. Sie haben beispielsweise zwei CRA-Module und möchten IO-Redundanz. Basierend auf der unterstützten Topologie können Sie das Netzwerk so gestalten, dass Sie bei einem Ausfall eines LAN-Ports des ersten CRA-Moduls Daten über den zweiten LAN-Port zum zweiten CRA-Modul und dann zur Haupt-SPS leiten können. Es stehen verschiedene Routing-Optionen zur Verfügung. Auf diese Weise haben wir das Konzept des CRA-Moduls in der Schneider-SPS gesehen. -
SIEMENS-DE Siemens-Kommunikation zwischen SPSen mithilfe von I-Device
leikang posted A plc and hmi article in German in PLC programming learning
Es gibt viele Möglichkeiten, wie SPSen miteinander kommunizieren und kommunizieren können. In diesem Artikel sprechen wir über eine dieser Methoden, nämlich wie man mithilfe der I-Device-Funktion eine Siemens-Kommunikation zwischen SPSen herstellt, um eine Datenübertragung von SPS zu SPS zu ermöglichen. Was ist die I-Device-Funktion? Die I-Device-Funktion kann verwendet werden, um sehr einfach Daten zwischen zwei SPSen auszutauschen. Ein I-Device ist einfach eine SPS, die als IO-Gerät verwendet wird. Das bedeutet, dass die SPS als IO-Modul fungiert, das Eingänge bereitstellt und Ausgänge von der anderen SPS empfängt. Die I-Device-Funktion ermöglicht PROFINET nicht nur die Kommunikation mit untergeordneten Geräten wie IO-Controllern, sondern auch die IO-Kommunikation mit anderen übergeordneten oder zentralen Controllern als IO-Gerät. Siemens-Kommunikation zwischen SPS Die meisten SPS der S7-Familie unterstützen die I-Device-Funktion, einige Steuerungen tun dies jedoch nicht, je nach Firmware-Version, zum Beispiel: S7-300 (ab Firmware-Version V3.2) S7-1200 (ab Firmware-Version V4) Sie können einfach feststellen, ob Ihre Steuerung die I-Device-Funktion hat oder nicht, indem Sie in die Eigenschaften der SPS-PROFINET-Schnittstelle gehen und die Option „Betriebsmodus“ überprüfen. Siehe Bilder 1a und 1b. Bild 1a. SPS unterstützt kein I-Device Auf dem Bild können wir die Option „Betriebsmodus“ nicht sehen, also wissen wir, dass die SPS die I-Device-Funktion nicht unterstützt. Bild 1b. SPS unterstützt die I-Device-Funktion Wie Sie auf dem Bild sehen, unterstützt diese SPS die I-Device-Funktion. Eine SPS mit der Konfiguration „Intelligentes IO-Device“ wird als I-Device bezeichnet. Ein I-Device ist wie ein Standard-IO-Device und muss auch wie ein solches behandelt werden. Das bedeutet, dass das I-Device auch an einen übergeordneten IO-Controller angeschlossen ist. Ein I-Device fungiert also als IO-Modul, ist aber auch weiterhin eine SPS und kann daher, wenn gewünscht, weiterhin als Controller fungieren. Datenaustauschkonzept Das Leitprinzip der I-Device-Methode besteht darin, das bekannte Prozessabbild in einer CPU zu verwenden. Aus Sicht des übergeordneten IO-Controllers ähnelt die Kommunikation mit einem I-Device der Kommunikation mit einem verteilten IO mit den üblichen Lese- und Schreibvorgängen an Ein- und Ausgängen. Aus Sicht des I-Devices ist die Datenübertragung an einen übergeordneten IO-Controller ebenfalls analog zur Datenübertragung an das lokale oder zugewiesene verteilte IO über Ein- und Ausgänge. I-Device-Konfigurationsoptionen Es gibt zwei Möglichkeiten zur Konfiguration: Konfigurieren eines I-Devices innerhalb eines Projekts. Konfigurieren eines I-Devices, das in einem anderen Projekt verwendet wird Wenn Sie ein I-Device für ein anderes Projekt konfigurieren, ermöglicht Ihnen STEP 7 dies, indem Sie ein konfiguriertes I-Device in eine GSD-Datei exportieren. Die GSD-Datei kann wie andere GSD-Dateien in das andere Projekt oder das andere Engineering-System importiert werden. Dies ermöglicht nicht nur die Kommunikation innerhalb des Projekts, sondern auch die Kommunikation zwischen Projekten und den Datenaustausch zwischen verschiedenen Herstellern auf bewährte Weise. Wir werden das in einem anderen Artikel zeigen. In diesem Artikel zeigen wir die Konfiguration des I-Devices innerhalb desselben Siemens-SPS-Projekts. I-Device-Konfiguration innerhalb desselben SPS-Projekts Wir gehen davon aus, dass wir in unserem Projekt zwei SPSen haben, CPU 1516-3 PN/DP, die in dieser Konfiguration als Controller fungiert, und CPU 1214C, die als I-Device fungiert. Fügen Sie zunächst die beiden SPSen zu Ihrem TIA Portal-Projekt hinzu und richten Sie eine Profinet-Verbindung zwischen ihnen ein. Siehe Abbildung 2. Abbildung 2. Verbindung zwischen zwei SPSen einrichten. Jetzt müssen wir die CPU 1214C SPS als I-Device konfigurieren. Gehen Sie dazu zu den Profinet-Schnittstelleneigenschaften und klicken Sie in der Betriebsmodusoption auf die Option IO-Device. Siehe Abbildung 3. Abbildung 3. IO-Device auswählen. Danach müssen Sie das I-Device einem übergeordneten Controller zuweisen, in unserem Projekt der CPU 1516-3 PN/DP SPS. Wählen Sie dazu einfach diese SPS aus der Dropdown-Liste Zugewiesener IO-Controller aus. Siehe Abbildung 4. Abbildung 4. Weisen Sie das I-Device dem Controller zu. Danach wird nun das I-Device angeschlossen und der Steuerung PLC zugeordnet. Siehe Bild 5. Bild 5. Das I-Device wird der Steuerung PLC zugeordnet. Im nächsten Schritt werden die Daten zwischen I-Device und Steuerung mit sogenannten Transferbereichen ausgetauscht. Transferbereich anlegen Transferbereiche sind die IO-Bereiche, die zum Datenaustausch zwischen I-Device und übergeordnetem IO-Controller verwendet werden. Gehen Sie in den Bereich „I-Device-Kommunikation“. Klicken Sie auf das erste Feld der Spalte „Transferbereiche“. TIA Portal erstellt einen vordefinierten Namen, den Sie ändern können. Wie Sie aus Bild 6 ersehen können. Bild 6. Transferbereich anlegen Wählen Sie den Typ der Kommunikationsbeziehung aus: aktuell kann nur CD ausgewählt werden. Siehe Bild 7. Bild 7. Wählen Sie die CD-Kommunikationsoption. Sobald Sie die Option CD auswählen, wird ein Transferbereich erstellt und die Adressen des IO-Controllers und des I-Devices werden automatisch erstellt. Siehe Abbildung 8. Abbildung 8. Transferbereich wird erstellt. Die Adressen werden automatisch vorbelegt, bei Bedarf können Sie die Adressen an Ihre Umgebung anpassen und die Länge des zu übertragenden Transferbereichs einheitlich festlegen. Um einen weiteren Transferbereich wie zuvor zu erstellen, drücken Sie einfach auf „Neu hinzufügen“, siehe Abbildung 9. Abbildung 9. Neuen Transferbereich hinzufügen. Wie bereits erwähnt, basiert der Datenaustausch auf dem einfachen Verarbeitungsbildkonzept, was bedeutet, dass Sie immer eine Ausgabe senden und eine Eingabe empfangen. Beachten Sie auch, dass der Pfeil, den Sie im vorherigen Bild sehen, den Informationsfluss zwischen dem I-Device und dem Controller anzeigt. Wenn ich also Daten vom Controller an das I-Device sende, zeigt der Pfeil vom Controller zum I-Device und die Adresse des Controllers wird ausgegeben und die Adresse des I-Devices wird eingegeben und umgekehrt, wie Sie im vorherigen Bild sehen können. Bedenken Sie auch, dass es immer besser ist, Ihre Übertragungsbereiche in aussagekräftige Namen umzubenennen. Siehe Bild 10. Bild 10. Benennen Sie Ihre Übertragungsbereiche um. Laden des SPS-Projekts Um die SPS-Projektdaten zu laden, wählen Sie in der Projektnavigation nacheinander beide Controller aus und laden Sie das Projekt in das jeweilige Modul. Beachten Sie, dass wir diese Funktion nicht simulieren können, da wir keine tatsächlichen Hardwaregeräte haben. -
Was ist ein SPS-Nachrüstprojekt? – Bedeutung, Vorgehensweise
leikang posted A plc and hmi article in German in PLC programming learning
Bei einem SPS-Nachrüstprojekt wird das alte SPS-System (speicherprogrammierbare Steuerung) durch eine neuere und fortschrittlichere Version aktualisiert oder ersetzt. Dies geschieht, um die Leistung zu verbessern, neue Funktionen hinzuzufügen oder die Kompatibilität mit modernen Technologien aufrechtzuerhalten und gleichzeitig die Notwendigkeit zu minimieren, vorhandene Geräte vollständig zu ersetzen. SPS-Nachrüstprojekt Wenn Sie in einem System arbeiten, sei es in der industriellen Automatisierung oder in einem anderen, ist es nicht immer notwendig, eine komplett neue Anlage in Betrieb zu nehmen. Es gibt Zeiten, in denen eine alte Anlage nicht richtig und entsprechend den gewünschten Ergebnissen läuft. Dies betrifft nicht das gesamte System, sondern nur einige Teile. Es kann sich um ein SPS-System, ein elektrisches System oder ein mechanisches System handeln. Anstatt das gesamte System zu ändern, ist es besser, nur diesen Teil durch ein neues zu ersetzen. Die verbleibenden Systeme werden so beibehalten, wie sie sind. Dies wird als Nachrüstung bezeichnet. Dies ist ein sehr wichtiger Aspekt, den Ingenieure lernen müssen. In diesem Beitrag werden wir die Schritte im Zusammenhang mit der Nachrüstung eines SPS-Systems sehen. Warum ist eine SPS-Nachrüstung erforderlich? Wenn Sie ein SPS-System haben, werden Sie zwangsläufig in eine Situation geraten, in der es manchmal ausfällt. Das ist eine natürliche Überlegung für jedes System (nicht nur für SPS) und es bedeutet nicht, dass das SPS-System jedes Mal ausfällt. Es ist ein Worst-Case-Szenario. Abgesehen von der SPS funktionieren die übrigen elektrischen und mechanischen Systeme einwandfrei. Die häufigsten Gründe für den Austausch eines SPS-Systems sind: wiederholte Fehler in der Logik, veraltete SPS, die ausgefallen ist und nicht mehr auf dem Markt erhältlich ist, wiederholte Firmware- oder Hardwarefehler in der SPS und kein verfügbarer Service. In diesen Fällen ist es die beste Option, statt des gesamten Systems nur das SPS-System auszutauschen. Dies wird als SPS-Nachrüstung bezeichnet. Im Grunde rüsten Sie die SPS entweder auf eine neue auf oder ersetzen sie vollständig durch eine neue Marke. Dies reduziert die Kosten, beeinträchtigt die ursprüngliche Betriebsanlage nicht, spart Zeit und erhöht die Zuverlässigkeit. Im Grunde bleibt die Betriebslogik der Anlage gleich; Sie ersetzen sie einfach durch eine neue Hardware und betreiben die Anlage. Vorgehensweise für das SPS-Nachrüstprojekt Der allererste Schritt besteht darin, die Schalttafelzeichnung der SPS zu studieren. Jede SPS hat ihre eigene Verdrahtungsversion und auch ein Senken-Quelle-Konzept. Daher ist es notwendig, dass Sie zunächst die ursprüngliche Verdrahtung verstehen. Dies wird Ihnen helfen, eine neue IO-Liste entsprechend Ihrer aktuellen SPS vorzubereiten. Denn wenn Sie blind mit derselben IP-Liste arbeiten, werden Sie vor Ort vor allem auf Verdrahtungsprobleme stoßen, wenn Sie die neue SPS installieren. Besorgen Sie sich, wenn möglich, das alte Programm. Wenn dies nicht möglich ist, entwickeln Sie im Büro eine neue, frische Logik, bevor Sie vor Ort gehen. Testen Sie die Logik auch mit dem Kunden oder im besten Fall mit dem Endkunden. Der Endkunde wird am meisten helfen, da er das alte SPS-System bedient hat und bei der schnellen Lösung von Fragen helfen kann. Der Kunde kann bei der gründlichen Überprüfung des Prozesses helfen. Wenn das Programm getestet wird, bevor Sie vor Ort gehen, wird dies Ihre Zeit vor Ort drastisch reduzieren. Versuchen Sie, die Bildschirme anzupassen und die Grafiken so zu entwickeln, wie sie sind, wie sie mit den alten laufenden Bildschirmen sind. Dies wird den Bedienern helfen, die Anlage einfacher zu bedienen, als sie es gewohnt sind. Sobald Ihre Logik und Grafiken fertig sind, planen Sie mit dem Elektriker den Einsatz vor Ort. Der Elektriker wird zuerst die neue SPS anstelle der alten einsetzen und dann alle Punkte mit einem Multimeter gegenprüfen. So wird sichergestellt, dass alle Punkte gemäß der neuen Verkabelung angeschlossen wurden oder nicht. Wichtig zu beachten ist, dass für die Nachrüstung eine ordnungsgemäße Abschaltung erforderlich ist. Stellen Sie dies also sicher, bevor Sie einen Einsatz vor Ort planen. Sobald die Verkabelung ohne Strom geprüft wurde, schalten Sie das System ein und laden Sie Ihre neuesten Programme in SPS und Grafiken herunter. Jetzt müssen Sie zuerst die IOs prüfen. Dies ist ein sehr wichtiger Schritt, da Sie die alte Verkabelung durch eine neue ersetzen. Alle IOs im Feld müssen genauso reagieren wie zuvor. Ohne diese Funktion können Sie die Anlage nicht im automatischen oder manuellen Modus betreiben. Überprüfen Sie nun die geschriebene Logik und prüfen Sie, ob sie wie im vorherigen System ausgeführt wird oder nicht. Alle Sicherheitsverriegelungen, zulässigen Bedingungen, Sequenzen und andere Logik müssen genauso funktionieren wie im alten System. Dies muss sowohl vom Kunden als auch vom Endkunden zur Überprüfung genehmigt werden und im Bericht erwähnt werden, wenn es ordnungsgemäß funktioniert. Erstellen Sie alle Abschlussberichte, speichern Sie die endgültige Sicherung und machen Sie Fotos und Videos des laufenden Systems. Dadurch wird sichergestellt, dass Sie einen Abschlussbericht für das von Ihnen durchgeführte SPS-Nachrüstprojekt erhalten. SPS-Projektzusammenfassung Bewerten Sie das vorhandene SPS-System, ermitteln Sie den Nachrüstbedarf und bestimmen Sie Projektziele, Umfang und Einschränkungen. Entwerfen Sie einen detaillierten Plan für das neue System, stellen Sie die Integration mit vorhandenen Maschinen und Netzwerken sicher und entwickeln Sie eine Migrationsstrategie. Erstellen Sie eine Sicherungskopie aller Programme, Daten und Dokumentationen des aktuellen Systems und erstellen Sie einen Wiederherstellungsplan. Beschaffen Sie die neue SPS und jegliche zusätzliche Hardware und stellen Sie Kompatibilität und Verfügbarkeit sicher. Bereitstellen Sie den Installationsort mit den erforderlichen Sicherheitsmaßnahmen vor und planen Sie bei Bedarf Ausfallzeiten ein. Nehmen Sie das alte SPS-System außer Betrieb und installieren Sie die neue SPS und die zugehörige Hardware. Übertragen oder schreiben Sie die Programmlogik auf die neue SPS um und testen Sie alle Funktionen und die Kommunikation. Führen Sie umfassende Tests des neuen Systems durch, validieren Sie die Leistung und nehmen Sie die erforderlichen Anpassungen vor. Schulen Sie das Personal im Betrieb und in der Wartung des neuen Systems und aktualisieren oder erstellen Sie die Systemdokumentation. Stellen Sie offiziell auf das neue SPS-System um, überwachen Sie es genau auf Probleme und bieten Sie die erforderliche Unterstützung. Führen Sie eine Überprüfung nach der Implementierung durch, um den Erfolg zu bewerten, gewonnene Erkenntnisse zu dokumentieren und zukünftige Wartungen oder Upgrades zu planen. -
SIEMENS-DE Datenübertragung zwischen SPS-Systemen – TSEND_C und TRCV_C
leikang posted A plc and hmi article in German in PLC programming learning
In den letzten Artikeln haben wir besprochen, wie man mithilfe der TCON- und TDISCON-Blöcke eine Verbindung zwischen zwei SPS herstellt und wie man mithilfe der TSEND- und TRCV-Blöcke Daten zwischen ihnen verschiebt. Datenübertragung zwischen SPS-Systemen In diesem Artikel lernen wir eine neue Anweisung kennen, die zur Kommunikation und Datenübertragung zwischen SPS-Systemen mithilfe der TSEND_C- und TRCV_C-Blöcke verwendet werden kann. TSEND_C Die Anweisung TSEND_C ist eine TIA-Portal-Anweisung, die zum Einrichten und Herstellen einer Verbindung zwischen zwei SPS verwendet wird. Sobald die Verbindung eingerichtet und hergestellt wurde, wird sie automatisch von der SPS aufrechterhalten und überwacht. Die Anweisung TSEND_C wird asynchron ausgeführt und hat die folgenden Funktionen: Einrichten und Herstellen einer Kommunikationsverbindung ähnlich dem TCON-Block. Senden von Daten über eine bestehende Kommunikationsverbindung ähnlich dem TSEND-Block. Beenden oder Zurücksetzen der Kommunikationsverbindung ähnlich dem TDISCON. Daher wird TSEND_C als kompakt bezeichnet, da es gleichzeitig als mehr als 3 Blöcke fungiert. TRCV_C Der TRCV_C-Befehl ist ebenfalls ein TIA-Portal-Befehl, der zum Einrichten und Herstellen einer Verbindung zwischen zwei SPSen verwendet wird. Sobald die Verbindung eingerichtet und hergestellt wurde, wird sie automatisch von der SPS aufrechterhalten und überwacht. Der Befehl „TRCV_C“ wird asynchron ausgeführt und implementiert nacheinander die folgenden Funktionen: Einrichten und Herstellen einer Kommunikationsverbindung ähnlich wie TCON. Empfangen von Daten über eine bestehende Kommunikationsverbindung ähnlich wie TRCV. Beenden oder Zurücksetzen der Kommunikationsverbindung ähnlich wie TDISCON. Daher wird TRCV_C als kompakt bezeichnet, da es gleichzeitig als mehr als 3 Blöcke fungiert. Verwendung von TSEND_C und TRCV_C in unserem SPS-Projekt Im letzten Artikel mussten wir, als wir Daten von SPS_1 an SPS_2 senden und senden mussten, in jeder SPS drei verschiedene Blöcke verwenden. Siehe Bild 1. Bild 1. Logik in PLC_1 Wie Sie sehen, haben wir die TCON- und TDISCON-Blöcke verwendet, um die Verbindung herzustellen und zurückzusetzen, und wir haben TSEND verwendet, um die Daten von PLC_1 zu senden. Und dasselbe wurde für PLC_2 getan. Siehe Bild 2. Bild 2. Logik von PLC_2 Auch hier haben wir die TCON- und TDISCON-Blöcke verwendet, um die Verbindung herzustellen und zurückzusetzen, und wir haben TRCV verwendet, um die Daten von PLC_1 zu empfangen. Nun möchten wir alle diese Blöcke ersetzen und versuchen, stattdessen TSEND_C und TRCV_C zu verwenden, um dieselbe Funktionalität zu erreichen. Zuerst verwenden wir in PLC_1, wo wir Daten senden müssen, den TSEND_C-Block. Ziehen Sie den Block einfach per Drag & Drop in den Haupt-OB1. Siehe Bild 3. Bild 3. TSEND_C-Block hinzufügen. Da TSEND_C im Wesentlichen ein Funktionsblock ist, werden Sie aufgefordert, eine Dateninstanz zu erstellen. Siehe Bild 4. Bild 4. Eine Instanz für TSEND_C erstellen TSEND_C ähnelt dem TSEND-Block insofern, als dass Sie einige Konfigurationen vornehmen und einige Signale hinzufügen müssen. Siehe Bild 5. Bild 5. TSEND_C-Block Jetzt benötigen wir ein Signal für REQ und Daten zum Senden und auch zum Konfigurieren der Verbindung. Für das REQ-Signal haben wir ein SendData-Tag erstellt. Außerdem können wir den Datenblock, den wir im letzten Artikel erstellt haben und den wir an PLC_2 senden müssen, einfach per Drag & Drop auf den DATA-Eingang des Blocks ziehen. Siehe Bild 6. Bild 6. Konfiguration des TSEND_C-Blocks. Um die Verbindungsparameter für den Block zu konfigurieren, können wir auf das kleine Konfigurationssymbol oben auf dem Block drücken, um die Konfigurationsansicht zu öffnen. Die Konfigurationsansicht sieht der des TCON-Blocks sehr ähnlich. Siehe Bild 7. Bild 7. Verbindungsparameter von TSEND_C Wir haben bereits in früheren Artikeln gezeigt, wie die Verbindungsparameter konfiguriert werden, also können wir einfach dasselbe tun wie beim TCON-Block, siehe Bild 8. Bild 8. Konfiguration der Verbindungsparameter Mit dieser Verbindungskonfiguration haben wir alle Konfigurationen des TSEND_C abgeschlossen. Beachten Sie, wie viel schneller das im Vergleich zur Konfiguration der TCON-, TDISCON- und TSEND-Blöcke ging. Jetzt müssen wir TRCV_C zu PLC_2 hinzufügen, damit es die von PLC_1 gesendeten Daten empfangen kann. Ziehen Sie im Haupt-OB1 von PLC_1 einfach TRCV_C per Drag & Drop in Ihre Logik. Siehe Abbildung 9. Denken Sie daran, eine Dateninstanz für den TRCV_C-Block zu erstellen. Abbildung 9. TRCV_C hinzufügen Sobald TRCV_C zu Ihrer Logik hinzugefügt wurde, müssen wir es konfigurieren. Wie bei TSEND_C müssen wir ein Signal hinzufügen, um den Datenempfang zu aktivieren, und wir müssen auch den Datenblock hinzufügen, in dem wir die Daten speichern werden. Siehe Abbildung 10. Abbildung 10.TRCV_C Wir haben ein RecieveData-Tag als EN_R-Signal definiert. Siehe Bild 11. Bild 11. EN_R-Tag definieren Denken Sie daran, die Option „optimierter Blockzugriff“ des Datenblocks zu deaktivieren, sonst funktioniert der Block nicht, wie wir in den letzten Artikeln gezeigt haben. Als nächstes müssen wir die Verbindungsparameter des TRCV_C-Blocks konfigurieren, wie wir es mit dem TSEND_C getan haben. Denken Sie nur daran, dass die nicht angegebene Partner-SPS jetzt die PLC_1 ist, siehe Bild 12. Bild 12. Verbindungsparameter von TRCV_C SPS-Projektsimulation Nachdem wir nun den TSEND_C- und TRCV_C-Block konfiguriert haben, möchten wir unser Projekt simulieren und sehen, wie sie funktionieren. Zuerst erstellen wir jedoch eine einfache Logik, um die Daten von PLC_1 automatisch zu aktualisieren, die an PLC_2 gesendet werden. Siehe Bild 13. Bild 13. Einfache Logik zum automatischen Aktualisieren von Daten. Lassen Sie uns nun eine Simulation für unser Projekt kompilieren und starten. Das Erste, was Sie bemerken werden, ist, dass PLC_1 und PLC_2 sofort versuchen, eine Verbindung herzustellen, da wir TSEND_C und TRCV_C eingerichtet haben. Sie versuchen automatisch, eine Verbindung herzustellen. Deshalb wird eine Verbindung zwischen den beiden SPSen hergestellt. Siehe Abbildung 14. Abbildung 14. Die Verbindung wird direkt hergestellt. Wie Sie sehen, wird die Verbindung zwischen den SPSen direkt hergestellt, da der Parameter CONT in TSEND_C und TRCV_C auf TRUE gesetzt ist, was bedeutet, dass der Block automatisch versucht, eine Verbindung mit der Partner-SPS herzustellen. Wir können hier jedes Steuersignal einfügen, um den Verbindungsaufbau zu steuern. Außerdem können Sie sehen, dass REQ von TSEND_C und EN_R von TRCV_C auf FALSE gesetzt sind, weshalb keine Daten zwischen den SPSen übertragen werden. Siehe Abbildung 15. Abbildung 15. Keine Datenübertragung zwischen den SPSen. Wenn das REQ-Signal von TSEND_C auf true gesetzt ist, versucht PLC_1, die Daten zu senden, wartet aber darauf, dass die andere PLC den Datenempfang freigibt, siehe Bild 16. Bild 16. REQ ist true. Wie Sie sehen, ist SendData TRUE, aber es wurden keine Daten gesendet, da RecieveData immer noch false ist. PLC_2 empfängt nur dann Daten von PLC_1, wenn ReceiveData auf true gesetzt ist. Siehe Bild 17. Bild 17. Daten werden an PLC_2 gesendet Wie Sie sehen, werden Daten von PLC_1 an PLC_2 gesendet, wenn RecieveData true ist. Sie können jedoch sehen, dass die Daten in den beiden PLCs unterschiedlich sind, da sich die Daten von PLC_1 automatisch gemäß der einfachen Logik ändern, die wir zuvor erstellt haben. Das bedeutet, dass das Signal EN_R die Datenübertragung einmal zulässt. Wenn ich erneut Daten übertragen muss, muss dieses Signal erst falsch und dann wieder wahr werden. Sehen Sie sich das beigefügte TIA Portal-Projekt an und sehen Sie sich die Datenübertragung zwischen SPSen an. -
SPS-Programm für Alarmsicherheitssystem
leikang posted A plc and hmi article in German in PLC programming learning
Dies ist das SPS-Programm für Alarmsicherheitssysteme. Lernen Sie die SPS-Programmierung anhand dieses Beispielproblems. Alarmsicherheitssystem Problembeschreibung Erstellen Sie ein Einbruchmeldesystemprogramm in der S7-1200-SPS für das Haus. Stellen Sie sich ein Haus vor, in dem wir ein automatisches Einbruchmeldesystem einrichten möchten. Der Alarm sollte eingeschaltet sein, wenn eine Person vom Bewegungssensor erkannt wird. Problemdiagramm Problemlösung Wir können dieses Problem mithilfe einer einfachen Logik lösen. Hier können wir zwei Sensoren verwenden, einen Bewegungssensor und einen zweiten Fenstersensor. Der Fenstersensor ist die Kabelschleife. Der Bewegungssensor ist so konzipiert, dass er aktiviert wird (seinen Zustand auf 1 oder wahr ändert), wenn eine Person in einem Haus oder Raum erkannt wird. Wichtig beim Fenstersensor ist, dass immer Strom fließt, bis das Glas zerbricht. Daher ist die Ausgabe immer wahr und wenn jemand versucht, das Fensterglas zu zerbrechen, fließt kein Strom im Schaltkreis. Liste der Ein- und Ausgänge Liste der Eingänge System START:- I0.0 System STOP:- I0.1 Bewegungsmelder:- I0.2 Fenstersensor:- I0.3 Alarm-Stopp-Taste:- I0.4 Liste der Ausgänge Alarm:- Q0.0 M-Speicher M0.0:- Hauptspule. M0.1:- Alarm eingeschaltet. SPS-Kontaktplan für Alarmsicherheitssystem Programmbeschreibung In diesem Problem werden wir S7-1200 PLC und TIA-Portalsoftware für die Programmierung berücksichtigen. Netzwerk 1: Dieses Netzwerk zeigt eine einfache Verriegelungsschaltung für System EIN und System AUS. Wir haben den normalerweise offenen (NO) Kontakt der System-START-Taste (I0.0) und den NC-Kontakt der System-STOP-Taste (I0.1) zur Systemaktivierung verwendet. Netzwerk 2: Wenn das System aktiviert ist und der Bewegungssensor (I0.2) das Eindringen einer Person erkennt, ist der Alarmzustand (M0.1) EIN und der Alarm wird aktiviert (Q0.0). Normalerweise wird der NC-Kontakt des Fenstersensors (I0.3) parallel verwendet, sodass er im Normalfall wahr ist. Wenn Glasbruch oder ein Fensterzustand erkannt wird, wird der Eingang des Fenstersensors (I0.3) falsch und der Alarmzustand (M0.1) wird aktiviert. Netzwerk 3: In diesem Netzwerk wird ein Verriegelungskreis für den Alarm (Q0.0) verwendet. Wenn ein Alarmzustand erkannt wird (M0.1), ist der Alarm EIN und kann durch Drücken von Alarm STOP PB (I0.4) gestoppt werden. Hinweis: Die obige Logik dient nur zu Erklärungszwecken. Wir können dieses Beispiel auch mit einer fest verdrahteten Relaislogik implementieren. Das S7-1200-SPS-System ist für dieses einfache System sehr teuer. Ergebnis -
SPS-Programm für Durchflusszähler
leikang posted A plc and hmi article in German in PLC programming learning
Erstellen Sie ein SPS-Programm, um einen Zähler für den Durchflussmesser zu implementieren. Der Durchflussmesser hat einen 4-20 mA-Ausgang, der einen Kraftstoffdurchfluss von 0 bis 100 Litern/Stunde in einer Leitung darstellt. SPS-Programm für Durchflusszähler Mit dieser Logik können wir den gesamten Kraftstoffdurchfluss aus der Leitung berechnen. Wenn der Zählerwert 5000 Liter erreicht, sollte er automatisch zurückgesetzt werden, oder wir können den Wert mit der RESET-Taste zurücksetzen. Problemlösung Wir können dieses Problem mit einfacher Logik lösen. Hier betrachten wir einen Durchflussmesser zum Messen des Kraftstoffs mit einer maximalen Durchflussrate von 100 Litern/Stunde. Hier werden wir diese Durchflussrate von L/H in L/Sek. umwandeln, indem wir zur Berechnung die DIV-Anweisung verwenden. Danach werden wir diesen Wert mithilfe eines 1-Sekunden-Taktimpulses an einem anderen Speicherort speichern und jede Sekunde wird ein neuer Wert hinzugefügt und aktualisiert. Hier beispielsweise gehen wir davon aus, dass der Maximalwert für den Totalisator 5000 Liter beträgt. Nach Erreichen dieses Werts sollte der Totalisator also ZURÜCKGESETZT werden. Wir vergleichen diesen Wert also mit dem tatsächlichen Wert und setzen ihn automatisch zurück, oder wir stellen eine RESET-Schaltfläche bereit, um den Totalisatorwert zurückzusetzen. Liste der Ein-/Ausgänge Liste der Eingänge Reset:- I0.0 M-Speicher M0.5:- 1 Sekunde (1s) Taktimpuls M1.2:- Positive Flanke des Taktimpulses MD10:- Speicherwort für die endgültige Ausgabe (L/H) des Durchflussmessers MD18:- Speicherwort für die endgültige Ausgabe (L/Sek.) des Durchflussmessers MD22:- Gesamtliterzugabe MD26:- Gesamtkraftstoff in Liter Kontaktplan für den Totalisator Programm erklärt In diesem Problem werden wir S7-300 PLC und TIA-Portalsoftware für die Programmierung verwenden. Netzwerk 1: Hier haben wir den endgültigen Ausgabewert des Durchflussmessers in L/H (MD10) genommen. Mithilfe der DIV-Anweisung haben wir den L/H-Durchfluss in L/sec umgewandelt und den Endwert in MD18 gespeichert. Netzwerk 2: Hier wird ein Taktimpuls von 1 s (M0.5) jede Sekunde einen Wert hinzufügen und das Ergebnis im Speicherwort MD22 speichern. Netzwerk 3: Hier haben wir den Wert von MD22 zur Anzeige in MD26 (Gesamtkraftstoff in Litern) verschoben. Netzwerk 4: In diesem Netzwerk müssen wir den Totalisator zurücksetzen. Wenn der Gesamtkraftstoff größer als 5000 ist (der Wert 5000 ist beispielsweise ein Zweck, er hängt von der Konfiguration des Durchflussmessers und seinem Bereich ab), sollte der Totalisatorzähler automatisch Null sein, oder wir können ihn durch Drücken der RESET-Taste (I0.0) zurücksetzen. Hinweis: Die obige Logik dient nur zu Erklärungszwecken. Hier haben wir nur die endgültige Ausgabe der Skalierung berücksichtigt, daher haben wir die 4-20-mA-Skalierung in der Logik nicht erwähnt. Ergebnis -
SPS-Programm für blinkende Lampen im 5-Sekunden-Intervall
leikang posted A plc and hmi article in German in PLC programming learning
Dies ist ein SPS-Programm für blinkende Lampen (AN/AUS) im 5-Sekunden-Intervall. Blinkende Lampen Problembeschreibung Schalten Sie die Anzeige oder Lampe nach fünf Sekunden AN und nach fünf Sekunden AUS. Erstellen Sie ein Programm, das die Lampe 5 Sekunden lang EIN, dann 5 Sekunden lang AUS, dann 5 Sekunden lang EIN und wieder 5 Sekunden lang AUS schaltet und so weiter. Problemdiagramm Problemlösung Dieses Problem kann durch die Verwendung von Timern gelöst werden. In diesem Fall verwenden wir TON (ON Delay Timer). Zur Erklärung betrachten wir einen SCHALTER zum Aktivieren des AN/AUS-Zyklus und eine Lampe für die Ausgabe. Wenn der Benutzer den SCHALTER drückt, wird die Lampe eingeschaltet und bleibt 5 Sekunden lang AN, danach ist sie 5 Sekunden lang AUS. Dieser Zyklus wiederholt sich. Liste der Ein- und Ausgänge Eingabeliste SCHALTER: I0.0 Ausgabeliste Lampe: Q0.0 M-Speicher M0.0: Bitspeicher für Lampe AUS-Zustand. PLC-Kontaktplan für blinkende Lampe Programmerklärung In diesem Problem werden wir S7-1200 PLC und TIA-Portalsoftware für die Programmierung berücksichtigen. Netzwerk 1: In diesem Netzwerk wird die Lampe (Q0.0) eingeschaltet, wenn der SCHALTER (I0.0) gedrückt wird und der Lampen-AUS-Zustand nicht vorliegt. Hier haben wir also den Schließerkontakt des SCHALTERS (I0.0) und den Öffnerkontakt des Lampen-AUS-Zustands (M0.0) verwendet. Netzwerk 2: In diesem Netzwerk wird, wenn die Lampe (Q0.0) eingeschaltet ist, der Befehl TON (Einschaltverzögerungstimer) ausgeführt und die Lampe wird ausgeschaltet. Wir haben hier also den Schließerkontakt der Lampe (Q0.0) und den TON-Timer verwendet und die programmierte Zeit beträgt 5 Sekunden. Netzwerk 3: Gemäß unserer Bedingung sollte die Lampe ausgeschaltet (M0.0) nach einer Verzögerung von 5 Sekunden ausgeschaltet werden, also haben wir wieder TON verwendet. Wir haben also den Schließerkontakt der Lampe ausgeschaltet (M0.0) und TON mit einer programmierten Zeit von 5 Sekunden verwendet. Ergebnis -
SPS-Programm für automatisches Flaschenauswurfsystem
leikang posted A plc and hmi article in German in PLC programming learning
Dies ist das SPS-Programm für das automatische Flaschenauswurfsystem. Lernen Sie die Leiterlogik mit dieser SPS-Übung und -Lösung. Automatische Flaschenauswurf Problembeschreibung Heutzutage ist Automatisierung in der Industrie für eine genaue und schnelle Produktion notwendig. Nehmen wir ein Beispiel von Sodaflaschenherstellern, wo das Bandförderband zum Transport der Flaschen von einer Station zur anderen verwendet wird. Aber bevor die Flaschen die Soda-Abfüllstation erreichen, müssen alle Flaschen für die weitere Verarbeitung in stehender Position sein. Eine auf dem Förderband heruntergefallene Flasche kann im nächsten Prozess ein Problem verursachen. Deshalb besprechen wir hier eine einfache SPS-Logik, die mit der heruntergefallenen Flasche umgeht. SPS-Problemdiagramm SPS-Problemlösung Dafür verwenden wir an der Abfüllstation ein SPS-System, das die heruntergefallene Flasche vom Förderband auswirft und den Weg für den nächsten Prozess frei macht. Dieser Prozess wird mithilfe von Sensoren und Aktoren durchgeführt. Wir verwenden eine pneumatische Kolbenzylinderbaugruppe, um die heruntergefallenen Flaschen vom Förderband zu schieben. Wenn das Förderband läuft, werden alle Flaschen von einer Station zur nächsten Station für den nächsten Prozess transportiert. Es werden zwei Sensoren verwendet, um stehende und umgefallene Flaschen zu erkennen, und ein pneumatischer Zylinder, um die umgefallene Flasche vom Förderband zu schieben. Liste der Ein-/Ausgänge Eingabeliste Start PB: I0.1 Stop PB: I0.0 Sensor X1: I0.2 Sensor X2: I0.3 Ausgabeliste Zyklus EIN: Q0.0 Förderband: Q0.1 Zylinder: Q0.2 SPS-Programm für automatisches Flaschenauswurfsystem Erklärung des SPS-Programms In dieser Anwendung haben wir Siemens S7-1200 PLC und TIA Portal Software zur Programmierung verwendet. Wir können diese Logik auch mit Relaisschaltung entwerfen. Netzwerk 1: In Netzwerk 1 haben wir den Zyklus-EIN-Zustand für die Maschine übernommen. Hier haben wir START PB (I0.1) zum Starten des Zyklus und STOP PB (I0.1) zum Stoppen des Zyklus verwendet. Wir haben den parallelen Ausgang des Förderbands (Q.1) mit Zyklus EIN (Q0.0) verwendet, damit wir das Förderband im Zyklus EIN-Zustand betreiben können. Netzwerk 2: In Netzwerk 2 haben wir die Sensoren X1 (I0.2) und X2 (I0.3) als Eingänge verwendet. Wir haben den Schließerkontakt für den Sensor X2 (I0.3) und den Öffnerkontakt für den Sensor X1 (I0.2) verwendet. Wenn Flaschen auf dem Förderband transportiert werden, erfassen diese Sensoren die Position der Flaschen, unabhängig davon, ob sie stehen oder fallen. Sensor X2 (I0.3) erfasst die untere Position der Flasche und Sensor X1 (I0.2) erfasst die obere Position der Flasche. In der SPS haben wir den Schaltkreis entworfen, der dem Befehl folgt, dass, wenn Sensor X2 (I0.3) die Flasche erkennt und Sensor X1 (I0.2) die Flasche nicht erkennt, der pneumatische Aktuator (Q0.2) in Aktion tritt und die Flasche vom Förderband aussortiert. Danach gelangen die perfekten Flaschen in die Soda-Abfüllstation und der gesamte Zyklus ist abgeschlossen. Ergebnis Hinweis: Die obige SPS-Logik liefert eine grundlegende Idee zur Anwendung der SPS in einem automatischen Flaschenaussortierungssystem. Die Logik ist begrenzt und stellt keine vollständige Anwendung dar.