Jump to content
  • German database on PLC programming technology and HMI interface design

    PLC, DCS, HMI and SCADA product application technical articles

    caixiaofeng
    Vergleichsanweisungen in der SPS werden verwendet, um Wertepaare zu testen und die logische Kontinuität einer Sprosse zu prüfen.
    Vergleichsanweisungen sind daher selten, wenn überhaupt, die letzten Anweisungen auf einer Sprosse.
    Arten von Vergleichsanweisungen

    Nehmen wir beispielsweise an, dass eine LES-Anweisung mit zwei Werten präsentiert wird. Wenn der erste Wert kleiner als der zweite ist, ist die Vergleichsanweisung wahr.
    Gleich-Anweisung (EQU)

    Verwenden Sie die EQU-Anweisung, um zu testen, ob zwei Werte gleich sind. Wenn Quelle A und Quelle B gleich sind, ist die Anweisung logisch wahr. Wenn diese Werte nicht gleich sind, ist die Anweisung logisch falsch.
    Quelle A muss eine Adresse sein.
    Quelle B kann entweder eine Programmkonstante oder eine Adresse sein.
    Werte werden in Zweierkomplementform gespeichert.
    Ungleich-Befehl (NEQ)

    Verwenden Sie den NEQ-Befehl, um zu testen, ob zwei Werte ungleich sind.
    Wenn Quelle A und Quelle B ungleich sind, ist der Befehl logisch wahr.
    Quelle A muss eine Adresse sein.
    Quelle B kann entweder eine Programmkonstante oder eine Adresse sein.
    Werte werden in Zweierkomplementform gespeichert.
    Kleiner-als-Befehl (LES)

    Verwenden Sie den LES-Befehl, um zu testen, ob ein Wert (Quelle A) kleiner als ein anderer (Quelle B) ist.
    Wenn Quelle A kleiner als der Wert an Quelle B ist, ist der Befehl logisch wahr.
    Quelle A muss eine Adresse sein.
    Quelle B kann entweder eine Programmkonstante oder eine Adresse sein.
    Werte werden in Zweierkomplementform gespeichert.
    Kleiner-als-oder-gleich-Befehl (LEQ)

    Verwenden Sie den LEQ-Befehl, um zu prüfen, ob ein Wert (Quelle A) kleiner oder gleich einem anderen (Quelle B) ist.
    Wenn der Wert an Quelle A kleiner oder gleich dem Wert an Quelle B ist, ist der Befehl logisch wahr.
    Quelle A muss eine Adresse sein.
    Quelle B kann entweder eine Programmkonstante oder eine Adresse sein.
    Werte werden in Zweierkomplementform gespeichert.
    Größer-als-Befehl (GRT)

    Verwenden Sie den GRT-Befehl, um zu prüfen, ob ein Wert (Quelle A) größer als ein anderer (Quelle B) ist.
    Wenn der Wert an Quelle A größer als der Wert an Quelle B ist, ist der Befehl logisch wahr.
    Größer-als-oder-gleich-Befehl (GEQ)

    Verwenden Sie den GEQ-Befehl, um zu prüfen, ob ein Wert (Quelle A) größer oder gleich einem anderen (Quelle B) ist.
    Wenn der Wert an Quelle A größer oder gleich dem Wert an Quelle B ist, ist die Anweisung logisch wahr.
    Maskierter Vergleich auf Gleichheit (MEQ)

    Verwenden Sie die MEQ-Anweisung, um Daten an einer Quelladresse mit Daten an einer Vergleichsadresse zu vergleichen.
    Die Verwendung dieser Anweisung ermöglicht es, Teile der Daten durch ein separates Wort zu maskieren.
    Quelle ist die Adresse des Werts, den Sie vergleichen möchten.
    Maske ist die Adresse der Maske, durch die die Anweisung Daten verschiebt.
    Die Maske kann ein hexadezimaler Wert sein.
    Vergleich ist ein ganzzahliger Wert oder die Adresse der Referenz.
    Wenn die 16 Datenbits an der Quelladresse gleich den 16 Datenbits an der Vergleichsadresse sind (abzüglich maskierter Bits), ist die Anweisung wahr.
    Die Anweisung wird falsch, sobald sie eine Nichtübereinstimmung erkennt.
    Grenzwerttest-Anweisung (LIM)

    Verwenden Sie die LIM-Anweisung, um Werte innerhalb oder außerhalb eines angegebenen Bereichs zu testen, je nachdem, wie Sie die Grenzwerte festlegen.
    Die Werte für Untergrenze, Test und Obergrenze können Wortadressen oder Konstanten sein, beschränkt auf die folgenden Kombinationen:
    Wenn der Testparameter eine Programmkonstante ist, müssen sowohl der Untergrenze- als auch der Obergrenze-Parameter Wortadressen sein. Wenn der Testparameter eine Wortadresse ist, können die Untergrenze- und Obergrenze-Parameter entweder eine Programmkonstante oder eine Wortadresse sein. Wahr/Falsch-Status der LIM-Anweisung
    Wenn die Untergrenze einen Wert hat, der gleich oder kleiner als die Obergrenze ist, ist die Anweisung wahr, wenn der Testwert zwischen den Grenzwerten liegt oder gleich einem der Grenzwerte ist.

    Wenn die Untergrenze einen Wert hat, der größer als die Obergrenze ist, ist die Anweisung falsch, wenn der Testwert zwischen den Grenzwerten liegt.


    leikang
    Grundlagen des Kontaktplans in der SPS-Programmierung
    Kontaktplanlogik war ursprünglich eine schriftliche Methode zur Dokumentation des Entwurfs und der Konstruktion von Relaisgestellen, wie sie in der Fertigung und Prozesssteuerung verwendet werden. Jedes Gerät im Relaisgestell wurde im Kontaktplan durch ein Symbol dargestellt, wobei die Verbindungen zwischen diesen Geräten angezeigt wurden. Darüber hinaus wurden auch andere externe Elemente des Relaisgestells wie Pumpen, Heizungen usw. im Kontaktplan angezeigt.
    Kontaktplanlogik hat sich zu einer Programmiersprache entwickelt, die ein Programm durch ein grafisches Diagramm darstellt, das auf den Schaltplänen der Relaislogik-Hardware basiert. Kontaktplanlogik wird zur Entwicklung von Software für speicherprogrammierbare Steuerungen (SPS) verwendet, die in industriellen Steuerungsanwendungen verwendet werden. Der Name basiert auf der Beobachtung, dass Programme in dieser Sprache Leitern ähneln, mit zwei vertikalen Schienen und einer Reihe horizontaler Sprossen dazwischen. Während Kontaktplandiagramme früher die einzige verfügbare Notation zum Aufzeichnen von speicherprogrammierbaren Steuerungsprogrammen waren, sind heute andere Formen in IEC 61131-3 standardisiert.
    Kontaktplanlogik wird häufig zum Programmieren von SPSen verwendet, wenn eine sequentielle Steuerung eines Prozesses oder Fertigungsvorgangs erforderlich ist. Kontaktplanlogik ist für einfache, aber kritische Steuerungssysteme nützlich. Da speicherprogrammierbare Steuerungen immer ausgefeilter wurden, wurde sie auch in sehr komplexen Automatisierungssystemen verwendet. Häufig wird das Kontaktplanlogikprogramm in Verbindung mit einem HMI-Programm verwendet, das auf einer Computerarbeitsstation ausgeführt wird.
    Beispiel eines einfachen Kontaktplanlogikprogramms
    Die Sprache selbst kann als eine Reihe von Verbindungen zwischen logischen Prüfern (Kontakten) und Aktoren (Spulen) betrachtet werden. Wenn ein Pfad zwischen der linken Seite der Sprosse und dem Ausgang durch aktivierte (wahre oder „geschlossene“) Kontakte verfolgt werden kann, ist die Sprosse wahr und das Speicherbit der Ausgangsspule ist aktiviert oder wahr. Wenn kein Pfad verfolgt werden kann, ist der Ausgang falsch (0) und die „Spule“ wird analog zu elektromechanischen Relais als „stromlos“ betrachtet.
    Die Kontaktplanlogik verfügt über Kontakte, die Schaltkreise zur Steuerung von Spulen schließen oder unterbrechen. Jede Spule oder jeder Kontakt entspricht dem Status eines einzelnen Bits im Speicher des programmierbaren Controllers. Im Gegensatz zu elektromechanischen Relais kann ein Kontaktplanprogramm beliebig oft auf den Status eines einzelnen Bits verweisen, was einem Relais mit einer unendlich großen Anzahl von Kontakten entspricht.
    Sogenannte „Kontakte“ können sich auf physische („harte“) Eingaben an den programmierbaren Controller von physischen Geräten wie Drucktasten und Endschaltern über ein integriertes oder externes Eingabemodul beziehen oder den Status interner Speicherbits darstellen, die an anderer Stelle im Programm generiert werden können.
    Jede Sprosse der Kontaktplansprache verfügt normalerweise über eine Spule ganz rechts. Einige Hersteller erlauben möglicherweise mehr als eine Ausgangsspule auf einer Sprosse.
    —( )— Eine normale Spule, die immer dann aktiviert wird, wenn ihre Sprosse geschlossen ist.
    —()— Eine „Nicht“-Spule, die immer dann aktiviert wird, wenn ihre Sprosse geöffnet ist.
    —[ ]— Ein normaler Kontakt, der immer dann geschlossen wird, wenn seine entsprechende Spule oder ein Eingang, der sie steuert, aktiviert wird.
    —[]— Ein „Nicht“-Kontakt, der geschlossen wird, wenn die entsprechende Spule oder ein Eingang, der sie steuert, nicht aktiviert ist.
    Die „Spule“ (Ausgang einer Sprosse) kann einen physischen Ausgang darstellen, der ein an den programmierbaren Controller angeschlossenes Gerät steuert, oder ein internes Speicherbit zur Verwendung an anderer Stelle im Programm.
    Logisches UND
    ------[ ]--------------[ ]----------------( )
    Schlüsselschalter 1 Schlüsselschalter 2 Türmotor
    Das Obige realisiert die Funktion: Türmotor = Schlüsselschalter 1 UND Schlüsselschalter 2
    Diese Schaltung zeigt zwei Schlüsselschalter, die Sicherheitspersonal verwenden könnte, um einen Elektromotor an einer Banktresortür zu aktivieren. Wenn die normalerweise offenen Kontakte beider Schalter geschlossen werden, kann Strom zum Motor fließen, der die Tür öffnet.
    Logisches UND mit NICHT
    ------[ ]--------------[]----------------( )
    Tür schließen Hindernis Türmotor
    Das Obige realisiert die Funktion: Türmotor = Tür schließen UND NICHT (Hindernis).
    Diese Schaltung zeigt einen Druckknopf, der eine Tür schließt, und einen Hindernisdetektor, der erkennt, ob sich etwas im Weg der sich schließenden Tür befindet. Wenn der normalerweise offene Druckknopfkontakt schließt und der normalerweise geschlossene Hindernisdetektor geschlossen ist (kein Hindernis erkannt), kann Strom zum Motor fließen, der die Tür schließt.
    Logisches ODER
    --+-------[ ]-------+-----------------( )
    | Äußeres Entriegeln | Entriegeln
    | |
    +-------[ ]-------+
    Inneres Entriegeln
    Das Obige realisiert die Funktion: Entriegeln = Inneres Entriegeln ODER Äußeres Entriegeln
    Diese Schaltung zeigt die beiden Dinge, die die elektrischen Türschlösser eines Autos auslösen können. Der Fernbedienungsempfänger wird immer mit Strom versorgt. Der Schlossmagnet wird mit Strom versorgt, wenn einer der beiden Kontaktsätze geschlossen ist.
    Industrielles STOP/START
    In der üblichen industriellen Start-/Stopp-Verriegelungslogik haben wir eine „Start“-Taste zum Einschalten eines Motorschütz und eine „Stopp“-Taste zum Ausschalten des Schützes.
    Wenn die „Start“-Taste gedrückt wird, wird der Eingang über den Öffnerkontakt der „Stopp“-Taste wahr. Wenn der „Run“-Eingang wahr wird, schließt der versiegelte „Run“-Schließerkontakt parallel zum „Start“-Schließerkontakt und hält die Eingangslogik wahr (verriegelt oder versiegelt). Nachdem der Schaltkreis verriegelt wurde, kann die „Stopp“-Taste gedrückt werden, wodurch sich sein Öffnerkontakt öffnet und folglich der Eingang falsch wird. Der „Run“-Schließerkontakt öffnet sich dann und die Schaltkreislogik kehrt in ihren Ruhezustand zurück.
    --+----[ ]--+----[]----( )
    | Start | Stopp Lauf
    | |
    +----[ ]--+
    laufen
    -------[ ]--------------( )
    Motor laufen lassen
    Das Obige realisiert die Funktion: laufen = (Start ODER laufen) UND (NICHT Stopp)
    Beachten Sie die Verwendung von Klammern, um die logische ODER-Funktion zu gruppieren, bevor die logische UND-Funktion ausgewertet wird (die eine höhere Betriebspriorität hat). Beachten Sie auch die Verwendung von NICHT, um die „Stopp“-NC-Kontaktlogik darzustellen.
    Diese Verriegelungskonfiguration ist eine gängige Redewendung in der Kontaktplanlogik. In der Kontaktplanlogik wird sie als Seal-In-Logik bezeichnet. Der Schlüssel zum Verständnis der Verriegelung liegt in der Erkenntnis, dass der „Start“-Schalter ein Momentschalter ist (sobald der Benutzer die Taste loslässt, ist der Schalter wieder geöffnet). Sobald der „Lauf“-Magnetschalter einrastet, schließt er den „Lauf“-NO-Kontakt, der den Magnetschalter einrastet. Das Öffnen des „Start“-Schalters hat dann keine Wirkung.
    Aus Sicherheitsgründen sollte ein Not-Aus und/oder Stopp in Reihe mit dem Startschalter fest verdrahtet sein, und die Relaislogik sollte dies widerspiegeln.
    --[]----[]----+--[ ]--+---------( )
    ES Stop | Start | Motor
    | |
    +--[ ]--+
    Run
    Komplexe Logik
    Hier ist ein Beispiel dafür, wie zwei Sprossen in einem Leiterlogikprogramm aussehen könnten. In realen Anwendungen kann es Hunderte oder Tausende von Sprossen geben.
    Normalerweise wird komplexe Leiterlogik von links nach rechts und von oben nach unten „gelesen“. Wenn jede der Linien (oder Sprossen) ausgewertet wird, kann die Ausgangsspule einer Sprosse als Eingang in die nächste Stufe der Leiter einspeisen. In einem komplexen System gibt es viele „Sprossen“ auf einer Leiter, die in der Reihenfolge der Auswertung nummeriert sind.
    1. ----[ ]---------+----[ ]-----+----( )
    Schalter | HiTemp | A/C
    | |
    +----[ ]-----+
    Feucht
    2. ----[ ]----[]--------------------( )
    A/C Heizen Kühlen
    Zeile 1 realisiert die Funktion: A/C = Schalter UND ( HiTemp ODER Feucht )
    Zeile 2 realisiert die Funktion: Kühlen = A/C UND ( NICHT Heizen )
    Dies stellt ein etwas komplexeres System für Sprosse 2 dar. Nachdem die erste Zeile ausgewertet wurde, wird die Ausgangsspule „A/C“ in Sprosse 2 eingespeist, die dann ausgewertet wird, und die Ausgangsspule „Kühlen“ könnte in ein Ausgangsgerät „Kompressor“ oder in Sprosse 3 auf der Leiter eingespeist werden. Dieses System ermöglicht die Aufschlüsselung und Auswertung sehr komplexer Logikdesigns.
    Zusätzliche Funktionalität
    Zusätzliche Funktionalität kann einer Leiterlogikimplementierung vom SPS-Hersteller als spezieller Block hinzugefügt werden. Wenn der spezielle Block eingeschaltet wird, führt er Code für vorgegebene Argumente aus. Diese Argumente können innerhalb des speziellen Blocks angezeigt werden.
    +-------+
    -----[ ]--------------------+ A +----
    Fernentriegelung +-------+
    Fernzähler
    +-------+
    -----[ ]--------------------+ B +----
    Innenentriegelung +-------+
    Innenzähler
    +--------+
    --------------------+ A + B +-----------
    | in C |
    +--------+
    Addierer
    In diesem Beispiel zählt das System, wie oft die Innen- und Fernentriegelungstasten gedrückt werden. Diese Informationen werden in den Speicherplätzen A und B gespeichert. Speicherplatz C enthält die Gesamtzahl der elektronischen Türentriegelungen.
    SPS haben viele Arten von Spezialblöcken. Dazu gehören Timer, Rechenoperatoren und Vergleiche, Tabellennachschlagevorgänge, Textverarbeitung, PID-Steuerung und Filterfunktionen. Leistungsstärkere SPS können auf einer Gruppe interner Speicherplätze arbeiten und eine Operation auf einem Adressbereich ausführen, um beispielsweise einen physischen sequentiellen Trommelregler oder eine Finite-State-Maschine zu simulieren. In einigen Fällen können Benutzer ihre eigenen Spezialblöcke definieren, die eigentlich Unterprogramme oder Makros sind. Die große Bibliothek an Spezialblöcken und die schnelle Ausführung haben die Verwendung von SPSen zur Implementierung sehr komplexer Automatisierungssysteme ermöglicht.

    leikang
    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.

    xiangjinjiao
    In früheren Artikeln haben wir über Timer in SPS, verschiedene Typen und ihre Verwendung gesprochen. Timer benötigen nicht unbedingt Echtzeit, um zu funktionieren, da sie je nach Ihren Einstellungen nur Sekunden oder Millisekunden zählen.
    Für einige Anwendungen müssen Sie jedoch das tatsächliche Datum und die tatsächliche Uhrzeit des SPS-Programms kennen, beispielsweise zu Diagnosezwecken.
    In diesem Artikel sprechen wir über die System- und Ortszeit einer SPS.
    Inhalt:
    Warum brauche ich Echtzeit in der SPS? Beispielprogramm und Simulation Was ist Systemzeit? Was ist Ortszeit? Schlussfolgerungen. Warum brauche ich Echtzeit in der SPS?
    In vielen Anwendungen von SPS müssen Sie aus vielen verschiedenen Gründen die Echtzeit kennen, während der Prozess ausgeführt wird.
    Im Folgenden sind einige dieser Gründe aufgeführt:
    Sicherung der SPS auf dem Hauptserver. Für die Diagnose der SPS benötigen Sie eine Zeitaufzeichnung, um zu wissen, zu welcher Zeit ein bestimmtes Ereignis aufgetreten ist. Andernfalls wären die Diagnoseinformationen nicht sehr nützlich. Für Anwendungen, bei denen Sie mit den Tageszeitinterrupts OB10 arbeiten müssen, müssen Sie die tatsächliche Uhrzeit kennen. Möglicherweise müssen Sie in Teilen Ihrer Logik, in denen Sie Echtzeitanwendungen verarbeiten müssen, die Ortszeit oder die Systemzeit verwenden. Für die Datenprotokollierung: Wenn Sie wichtige Daten speichern müssen und den Zeitstempel für jede Datenaufzeichnung benötigen, müssen Sie die richtige Zeiteinstellung für Ihre SPS haben, damit die gespeicherten Daten sinnvoll sind. Beispielprogramm und Simulation einer SPS
    Um besser zu verstehen, was Systemzeit und Ortszeit in einer SPS sind, erstellen wir zunächst ein sehr einfaches Programm und erklären damit das Konzept der Echtzeit in SPSen.
    Überprüfen Sie den folgenden Schritt:
    In diesem Artikel erstellen wir keine SPS-Logik, sondern zeigen einige Konfigurationen, die sich auf die System- und Ortszeit in der SPS beziehen, wie diese eingestellt werden und was die Unterschiede sind.
    Öffnen Sie das Siemens Tia Portal, fügen Sie ein neues Gerät hinzu und dieses Mal verwenden wir die CPU 1512C-1 PN. Siehe Bild 1.

    Bild 1 – Neue SPS hinzufügen
    Kompilieren und starten Sie eine neue SPS-Simulation. Öffnen Sie die Online- und Diagnoseseite und überprüfen Sie die eingestellte Zeit der SPS. Siehe Bild 2.

    Bild 2 – Onlinezeit der SPS
    Aus dem vorherigen Bild können Sie erkennen, dass es zwei verschiedene Zeiten gibt:
    Die PG/PC-Zeit – dies ist die lokale Zeit Ihres PCs selbst. Die Modulzeit – dies ist die tatsächliche Zeit innerhalb der SPS selbst. Beide Zeiten können auf denselben Wert eingestellt werden oder sie können unterschiedlich sein. Am besten ist es, sie gleich zu machen, es ist besser, die Modulzeit ähnlich Ihrer lokalen Zeit zu machen, oder genauer gesagt ähnlich der lokalen Zeit des Gebiets, in dem die SPS verwendet wird. Siehe Bild 3.

    Bild 3 – Zeit der SPS einstellen
    Wenn Sie möchten, dass die Modulzeit mit der Ortszeit übereinstimmt, wählen Sie „Von PG/PC übernehmen“ und drücken Sie „Anwenden“.
    Ziehen Sie in Ihrem Haupt-OB1 die Anweisungen RD_SYS_T und RD_LOC_T per Drag & Drop.
    Dies sind die Anweisungen zum Lesen der Systemzeit und zum Lesen der Ortszeit. Diese Anweisungen sind integrierte Funktions-FCs in der SPS und werden verwendet, um die Ortszeit und die Systemzeit der SPS an das von Ihnen im Ausgang OUT der Anweisung gewählte Ziel zu schreiben. Siehe Bild 4.

    Bild 4 – Anweisungen zum Lesen der System- und Ortszeit hinzufügen
    Fügen Sie einen neuen globalen Datenblock hinzu und definieren Sie einige Tags, mit denen gearbeitet werden soll. Siehe Bild 5.

    Bild 5 – Einen neuen globalen Datenblock erstellen
    Führen Sie Ihre Simulation erneut aus und überprüfen Sie beide Male. Siehe Bild 6

    Bild 6 – Online-Lokalzeit und Systemzeit der SPS
    Sie sehen im vorherigen Bild, dass die Lokalzeit und die Systemzeit der SPS gleich sind, sich aber von der tatsächlichen Lokalzeit Ihres PCs unterscheiden.
    Wie Sie sich erinnern, haben wir die Modulzeit der SPS so eingestellt, dass sie der PG/PC-Zeit ähnelt, also Ihrer Lokalzeit. Siehe Bild 7.

    Bild 7 – Modulzeit und PG/PC-Zeit
    Wie Sie sehen, wird auf der Seite „Zeit einstellen“ die Modulzeit so gewählt, dass sie der PG/PC-Zeit entspricht. In tatsächlichen Fällen sind sie jedoch unterschiedlich. Warum?
    Warum sind die Zeiten unterschiedlich? Da die Standardeinstellung der Lokalzeit der SPS UTC+0 oder Zulu-Zeit ist, wenn Sie mit diesem Begriff vertraut sind, ändern Sie sie nicht auf der Online- und Diagnoseseite, sondern in den Eigenschaften der SPS selbst. Siehe Bild 8.

    Bild 8 – Tageszeitkonfiguration in einer SPS
    Wie Sie sehen, ist die Standardeinstellung der SPS-Tageszeit auf UTC+0 eingestellt, und deshalb unterschied sich die Zeit des SPS-Moduls von Ihrer tatsächlichen Ortszeit. Außer wenn Sie tatsächlich in London wären, hätten Sie dieses Problem nicht.
    Um die lokale SPS-Zeit zu korrigieren, müssen wir das in der Konfiguration ändern, wir müssen die Zeitzone auf die Zeitzone ändern, die wir haben, was in meinem Fall UTC+02:00 ist. Siehe Bild 9.

    Bild 9 – Anpassen der lokalen SPS-Zeit an Ihre Zeitzone
    Sie können auch sehen, dass die Sommerzeitoption deaktiviert wurde, da sie in meinem Land nicht verwendet wird. Sie müssen sie aktivieren, wenn sie in Ihrer Region verwendet wird.
    Nachdem nun alle Konfigurationen richtig eingestellt sind, gehen Sie zurück und sehen Sie sich die lokale Zeit und die Systemzeit erneut in der Simulation an. Siehe Abbildung 10.

    Abbildung 10 – Die lokale Zeit der SPS ist jetzt dieselbe wie die des PCs
    Sie sehen nun, dass nach dem Anpassen der SPS-Zeitzone die lokale Zeit der SPS und die tatsächliche lokale Zeit Ihrer Region identisch sind.
    Wie wir bereits gesagt haben, ist es aus den vielen oben genannten Gründen sehr wichtig, die richtige lokale Zeit der SPS einzustellen. Können Sie nun definieren, was die Systemzeit und die lokale Zeit der SPS ist?
    Systemzeit in der SPS
    Ist die Modulzeit der CPU-Uhr.
    Die CPU-Uhr interpretiert die Modulzeit als koordinierte Weltzeit (UTC). Dementsprechend wird die Modulzeit immer ohne die Faktoren „lokale Zeitzone“ oder „Sommerzeit“ in der CPU-Uhr gespeichert. Die CPU-Uhr berechnet dann aus der Modulzeit die lokale Zeit der CPU-Uhr.
    Die Modulzeit der CPU-Uhr dient als Vorlage für alle Zeitprozesse, die von der CPU ausgehen.
    Anwendungsbeispiele:
    Berechnung der lokalen Zeit der CPU-Uhr aus der Modulzeit Darstellung der Modulzeit in lokaler Zeit unter „Online & Diagnose“ Einträge im Diagnosepuffer der CPU Lokale Zeit in der SPS
    Informationen über die Zeitzone und den Beginn von Sommer- und Winterzeit, die Sie in der Konfiguration der CPU-Uhr eingestellt haben, werden zur Ausgabe der lokalen Zeit verwendet.
    Die lokale Zeit ist die Zeit, die Sie auf Ihrem PC oder in Ihrem Land haben und die von Region zu Region unterschiedlich sein kann.
    Fazit
    Viele Anwendungen erfordern, dass die SPS die Echtzeit oder lokale Zeit des Prozesses kennt, damit sie bestimmte Aufgaben ausführen kann, z. B. Datenprotokollierung und Diagnoseaufgaben. In einem zukünftigen Artikel zeigen wir einige Anwendungen, bei denen Echtzeit für Ihre Logik erforderlich ist.
    Die lokale Zeit der SPS sollte manuell konfiguriert werden, damit sie mit dem Bereich übereinstimmt, in dem die SPS verwendet wird.

    leikang
    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.

    leikang
    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.

    caixiaofeng
    In diesem Artikel setzen wir unsere Diskussion über verschiedene Arten von Organisationsblöcken in der Siemens-SPS fort. Dieses Mal sprechen wir über den OB121 oder den Programmierfehler-Interrupt im Tia-Portal.
    Inhalt:
    Was sind Programmierfehler-Interrupts OB121? Beispiele für Programmierfehler. Was passiert, wenn ein Programmierfehler erkannt wird? Simulation eines Programmierfehlers im TIA-Portal. Wie kann der OB121 gegen Programmierfehler nützlich sein? Schlussfolgerungen. Was sind Programmierfehler-Interrupts (OB121)?
    OB121 ist ein Organisationsblock, der vom Betriebssystem der SPS aufgerufen wird, wenn beim Ausführen Ihrer Logik ein Programmierfehler auftritt. Beachten Sie, dass wir nicht von einem Programmierfehler sprechen, der vom Compiler abgefangen wird, wenn versucht wird, Ihre Logik in Ihre SPS herunterzuladen. Siehe Bild 1.

    Bild 1 – Einige Programmierfehler werden vom Compiler erkannt
    Wie Sie im letzten Bild sehen, liegt in meiner SPS-Logik ein Programmierfehler vor; einige Operanden fehlen in der Eingabe und Ausgabe von Netzwerk 1. Dieser Fehler wurde jedoch vom Compiler erkannt, bevor die Logik überhaupt in die SPS heruntergeladen wurde. Der Fehler in Bild 1 ist nicht der Programmierfehlertyp, der den Aufruf von OB121 auslösen kann.
    Fehler in Ihrem SPS-Programm, die vom Compiler nicht gefunden werden können, aber dennoch Probleme in Ihrer Logik verursachen können, während die SPS läuft, sind die Programmierfehler, die wir meinen. Diese Fehler lösen einen Aufruf von OB121 durch das Betriebssystem aus.
    Beispiele für Programmierfehler
    Hier sind einige Beispiele für Fehler in Ihrer SPS-Logik, die Programmierfehler verursachen können:
    Maximale Verschachtelungstiefe von Blockaufrufen überschritten. Sie haben einen NULL-Zeiger verwendet, um einen Operanden anzusprechen. Unbekannte Anweisung. Die adressierte Zeichenfolge weist falsche Längeninformationen auf. Bereichslängenfehler beim Lesen. Bereichslängenfehler beim Schreiben. Fehler in Timer-Nr. Zugriff auf einen nicht geladenen DB; die DB-Nummer befindet sich im zulässigen Bereich. DB existiert nicht. Diese und viele weitere Fehler können Programmierfehler in Ihrer SPS verursachen. Im Hilfebereich des TIA-Portals können Sie nachlesen, welche anderen Gründe zu Programmierfehlern in der SPS führen können.
    Was passiert, wenn ein Programmierfehler erkannt wird?
    Wenn Ihre SPS einen Programmierfehler erkennt, kann eines von drei Ereignissen eintreten.
    Ihre SPS zeigt einen Fehler an und wechselt in den STOP-Modus. Ihre SPS zeigt einen Fehler an, führt Ihre Logik jedoch weiter aus. Ihre SPS zeigt einen Fehler an und versucht dann, diesen Fehler zu beheben. Diese drei Ereignisse hängen im Wesentlichen von Ihrer SPS-Programmierung ab. Das heißt, Ihr Code entscheidet, wie sich das Betriebssystem bei Erkennung eines Programmierfehlers verhält.
    Simulation eines Programmierfehlers im TIA-Portal
    Um das Verhalten der SPS besser zu verstehen, erstellen wir ein einfaches Programm, in dem wir einen Programmierfehler verursachen, und sehen dann, was passiert. Siehe Bild 2.

    Bild 2 – Einfache Programmlogik
    Die von uns erstellte Logik ist sehr einfach. Wenn InitiateProgError aktiviert wurde, wird der Wert 126 in den Bereich DB52.DBW16 verschoben. Beachten Sie, dass wir DB52 nicht erstellt haben. Dies wird also unser Programmierfehler sein. Beachten Sie, dass dieser Fehler beim Kompilieren oder Herunterladen in die SPS nicht erkannt wird. Siehe Bilder 3 und 4.

    Bild 3 – Vom Compiler nicht erkannter Fehler
    Sehen Sie, wie der Block erfolgreich kompiliert wurde, obwohl ein Programmierfehler auftrat.

    Bild 4 – Block in SPS heruntergeladen
    Wieder wurde der Block mit einem Programmierfehler in die SPS heruntergeladen.
    Lassen Sie uns nun unser SPS-Programm simulieren und sehen, was passiert. Die Simulation des SPS-Codes finden Sie in Animation 1.

    Animation 1
    Wie Sie in der obigen Animation sehen, blinkt die PLC ERROR-LED einige Sekunden lang rot, dann wechselt die PLC in den STOP-Modus.
    Gehen Sie zur PLC-Onlinediagnose, um zu sehen, was passiert ist. Siehe Bild 5.

    Bild 5 – Online- und Diagnose der PLC
    Was Sie in der Animation gesehen haben, ist genau das, was Sie im vorherigen Bild sehen. Es kann in 3 Schritten beschrieben werden:
    Die PLC erkennt den Programmierfehler, nämlich dass OB52 nicht geladen ist. Das Betriebssystem löst den Aufruf des OB121 aus, aber in unserer Logik wurde kein OB121 erstellt. Wenn die PLC feststellt, dass in unserer Logik kein OB121 erstellt wurde, initiiert das Betriebssystem eine STOP-Anforderung. Und die PLC wechselt in den STOP-Modus. Wie kann der OB121 gegen Programmierfehler hilfreich sein?
    Fügen wir unserem SPS-Code einen OB121 hinzu und sehen wir, wie sich die Dinge ändern. Siehe Bild 6.

    Bild 6 – Hinzufügen eines OB121
    Nachdem wir den OB121 erstellt und in unsere SPS-Logik eingefügt haben, sehen wir, was in der Simulation passiert.
    Denken Sie daran, dass wir keine SPS-Logik in den OB121 geschrieben haben. Siehe Animation 2.

    Animation 2
    Wie Sie in Animation 2 sehen, blinkt die PLC ERROR-LED rot, wenn InitiateProgError ausgelöst wird, aber die SPS läuft weiter.
    Das bedeutet, dass die SPS nicht in den STOP-Modus wechselt. Sehen wir uns die Online-Diagnose an, um zu sehen, was tatsächlich passiert ist. Siehe Bild 7.

    Bild 7 – Fehler hat nicht zum Stoppen der SPS geführt
    Sie sehen auf dem Bild, dass die SPS den Fehler erkennt, aber nicht in den STOP-Modus wechselt. Sie überspringt diesen Fehler, setzt den Zyklus fort und beginnt wieder von vorne.
    Wenn der Fehler erneut auftritt, erkennt sie ihn erneut und gibt einen Alarm in der Diagnose aus. Überspringen Sie den Fehler und fahren Sie fort. Das bedeutet, dass die SPS in jedem Scan-Zyklus denselben Alarm ausgibt. Und deshalb sehen Sie auf dem Bild, dass das Ereignis immer wieder ausgelöst wird und der Alarm sich in jedem Scan-Zyklus wiederholt.
    Ein leerer OB121 bietet Ihnen also den Vorteil, dass die SPS weiterläuft und Ihr Prozess weiterläuft.
    Aber wir können noch mehr tun: Wir können versuchen, diesen Fehler zu erkennen und zu beseitigen. Außerdem können wir versuchen, die Art des erkannten Programmierfehlers anzuzeigen.
    Fehlertyp bestimmen
    Der OB121 verfügt über eine interne Fehler-ID, die wir verwenden können, um den Fehlertyp anzuzeigen, beispielsweise als Alarm auf einem HMI. Innerhalb des OB121 erstellen wir eine einfache MOVE-Anweisung, mit der wir den Fault_ID-Eingang des OB121 in einen definierten Speicherbereich innerhalb unseres globalen DBs verschieben. Siehe Abbildung 8.

    Abbildung 8 – Fehlertyp identifizieren
    Wie Sie im vorherigen Bild sehen, wird die Fault_ID bei Auftreten des Programmierfehlers in die Data.ProgErrorID verschoben. Siehe Abbildung 9.

    Abbildung 9 – Programmierfehler Fault_ID
    Sie können sehen, dass die Fehler-ID 3A ist. Wenn Sie die TIA Portal-Hilfe überprüfen, können Sie die Bedeutung dieses Fehlers herausfinden.
    3A: Zugriff auf einen DB, der nicht geladen ist; die DB-Nummer befindet sich im zulässigen Bereich.
    Den Fehler abfangen
    Das bedeutet einfach, dass Sie versuchen, den SPS-Programmierfehler zu beheben, nachdem Sie die Ursache ermittelt haben. Dies hängt hauptsächlich davon ab, was der Fehler ist und wie Sie ihn behandeln möchten. Wir werden einfach eine Lösung für den Fehler simulieren, um zu sehen, wie sich die SPS verhält.
    Die eigentliche Lösung für den von uns verursachten Fehler besteht darin, einfach den DB52 zu erstellen oder einen bereits erstellten Datenblock zu verwenden.
    Aber der Simulation halber werden wir einfach einen einfachen Kontakt hinzufügen, der sich öffnet, wenn der Programmierfehler auftritt, um diesen Fehler abzufangen. Siehe Bilder 10 und 11.

    Bild 10 – Den Fehler abfangen
    Immer wenn OB121 aufgerufen wird, wird der CatchError gesetzt.

    Bild 11 – Fehler beheben
    Wenn OB121 aufgerufen wird, wird CatchError gesetzt und verwendet, um den Programmierfehler in Netzwerk 1 abzufangen. Die SPS-Simulation finden Sie in Animation 3.

    Animation 3
    Aus der obigen Animation können Sie erkennen, dass die SPS beim Auslösen von InitiateProgError kurzzeitig in den Fehlermodus gerät, der dann gelöscht wird und die SPS sich dauerhaft im RUN-Modus befindet.
    Fazit
    Einfach ein leeres OB121 in Ihrer Logik stellt sicher, dass Ihre SPS nicht in den STOP-Modus wechselt, wenn in Ihrem Code ein Programmierfehler vorliegt. Sie können das OB121 später auch verwenden, um den Fehler zu identifizieren und zu beheben.

    leikang
    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.

    leigehong
    Die Steuerung eines Prozesses in einer Maschine oder einem System war schon immer eine Fantasie für Ingenieure. Dank des technologischen Fortschritts wurden viele Controller entwickelt, um einen Prozess flexibel und zuverlässig zu steuern.
    Bei Controllern gibt es zwei allgemeine Typen, die in vielen Prozessen weit verbreitet sind, von klein bis groß. Das sind Mikrocontroller und SPS. Sie können jede Operation ausführen, von kleinen Berechnungen bis hin zu komplexen Algorithmen, Logikleistung und Datenverarbeitung. Dies erleichtert die Aufgabe durch Automatisierung des Prozesses.
    In diesem Beitrag werden wir den Unterschied zwischen Mikrocontroller und SPS betrachten.
    Was ist ein Mikrocontroller?
    Lassen Sie uns zunächst die Grundlagen verstehen. Sie haben einen Druckknopf und eine Lampe. Sie werden aufgefordert, die Lampe 5 Sekunden nach dem Drücken des Druckknopfs einzuschalten. Was davon benötigen wir, um diese Aufgabe auszuführen? Sie benötigen einen Eingang (Druckknopf), einen Ausgang (Lampe), einen Controller zur Ausführung dieser Aufgabe (Prozessortyp), eine Stromversorgung zur Stromversorgung der Schaltkreise und einen Speicher zum Speichern dieser Logik und des Status der Ein- und Ausgänge. Kombiniert in einem einzigen Paket ergibt dies einen Mikrocontroller.
    Kurz gesagt ist ein Mikrocontroller eine Art kleiner Computer, der physische Eingaben entgegennimmt, die Logik entsprechend verarbeitet und die physischen Ausgaben ein- oder ausschaltet. Es handelt sich um ein kleines chipartiges Gerät, das alle diese Schaltkreise wie ein kleines Paket enthält und die gesamte Verarbeitungs- und Steuerungsarbeit übernimmt.
    Ein Mikrocontroller verarbeitet eine kleine Anzahl von Ein- und Ausgaben. Betrachten Sie beispielsweise einen kleinen Anzeigeschaltkreis wie LED oder LCD, der auf einem Handgerät montiert ist. Wenn Sie einen Druckknopf darauf drücken, wird die entsprechende Zahl auf dem Display angezeigt.
    Und wenn Sie einen anderen Druckknopf drücken, wird eine andere Zahl angezeigt, die gemäß der Logik im Prozessor geschrieben ist. Dies bedeutet, dass er zuerst so programmiert wurde, dass er eine Zahl anzeigt, und dann, wenn Sie den zweiten Knopf drücken, wird eine berechnete Zahl angezeigt. Alle diese Berechnungen, die Speicherverwaltung von Variablen und die IO-Verarbeitung werden innerhalb dieses Mikrocontrollerchips durchgeführt.

    Was ist eine SPS?
    Lassen Sie uns nun zu einer höheren Verarbeitungsebene übergehen. Sie haben 50 Sensoren, entweder 4-20 mA oder Thermoelementtypen. Sie haben 20 verschiedene Arten von Ausgängen, entweder 0-10 V DC-Aktuatoren oder Relaisausgänge. Ihnen wurde dieselbe Aufgabe zugewiesen, Eingänge zu akzeptieren und Ausgänge gemäß der darin geschriebenen Logik zu steuern.
    Es werden dieselben Komponenten wie IOs, Stromversorgung, Prozessor und Speicher benötigt. Aber Sie sehen, dass all diese IO-Karten/Pins mit Speicher und Prozessor nicht auf einem kleinen Einzelchip eingebettet werden können. Hier kommt die SPS ins Spiel. Die SPS ist im Grunde eine Erweiterung des Mikrocontrollers. Es ist ein schrankartiges Gerät mit IO-Karten, Speicher und einem Prozessor; alle auf verschiedenen Chips miteinander verbunden. Alle diese Chips bilden ein einzelnes SPS-Gehäuse.
    Die IOs können unterschiedlicher Art sein, von einfachen digitalen Signalen bis hin zu komplexen analogen Signalen. Sie verfügen über spezielle Kommunikationskarten, die mit realen Protokollen wie Ethernet, Modbus, CAN Open, Profibus, Profinet usw. kommunizieren können.
    Auch Mikrocontroller verfügen über Kommunikationskarten, diese haben jedoch kleine Schnittstellen und eine eingeschränkte Konnektivität.
    Die IO-Module sind entweder in die Haupt-SPS eingebettet oder über Kommunikation mit Remote-Modulen verbunden. Dies ermöglicht eine einfache Erweiterung der IOs. Verschiedene hochwertige industrielle Sensoren und Aktoren können problemlos mit der SPS verbunden werden.
    Unterschied zwischen Mikrocontroller und SPS
    Nachdem wir nun ihre Bedeutung verstanden haben, schauen wir uns ihre Unterschiede an:
    Nur in der Definition haben wir erfahren, dass eine SPS eine große Anzahl von Prozessen und Zyklen verarbeiten kann. Aus diesem Grund eignet sie sich am besten für industrielle Anwendungen. Mikrocontroller können keine große Anzahl von IOs mit komplexen Verdrahtungs- und Kommunikationsanforderungen bedienen. Sie eignen sich am besten für Anwendungen im kleinen Maßstab. Die Signalverarbeitung ist in einer SPS im Vergleich zu einem Mikrocontroller viel flexibler. Das bedeutet, dass Analog-Digital-Umwandlung, Hochgeschwindigkeitszähler-Eingänge und -Ausgänge in einer SPS einfacher konfiguriert werden können als in einem Mikrocontroller. Mikrocontroller sind aufgrund der begrenzten Anzahl an Funktionen, die sie bieten, günstiger als SPS. Der Hauptvorteil einer SPS ist ihre Robustheit und Stabilität. Aufgrund ihrer hohen Temperaturbeständigkeit und Umweltresistenz ist sie das am besten geeignete Produkt für kritische, riskante und raue Umgebungen. Eine SPS ist gegenüber elektromagnetischen Störungen und anderen Störungen viel weniger anfällig als ein Mikrocontroller. Die Programmierung ist in einer SPS viel einfacher als in einem Mikrocontroller. Mikrocontroller verwenden komplexe Software wie C und C++ zur Programmierung, was in einer SPS viel einfacher ist, da sie über Sprachen verfügt, die sich leicht mit dem Verständnis elektrischer Zeichnungen verbinden lassen. Für die Entwicklung von Mikrocontrollern sind Kenntnisse über eingebettete Systeme, VLSI und Software erforderlich, während für die Entwicklung von SPS-Programmierern Kenntnisse über industrielle Automatisierung, Instrumentierung und Vernetzung erforderlich sind.

    leigehong
    In diesem Artikel erfahren Sie, wie Sie das SPS-Datenblatt lesen, und erhalten wichtige Hinweise zu SPS-Spezifikationen, die für Automatisierungsingenieure nützlich sind. Außerdem sprechen wir darüber, welche unterschiedlichen Informationen in einem SPS-Datenblatt enthalten sind und wie diese für mich als Programmierer oder Installationsingenieur nützlich sein können.
    Inhalt:
    Welche Informationen enthält ein Datenblatt? Beispiele für die Informationen in einem SPS-Datenblatt Strom- und Spannungsnennwert SPS-Speicher Adressierung verschiedener Blöcke und Datenbereiche Spezifikationen für Ein- und Ausgänge Kommunikationsschnittstellen und -protokolle Umgebungsbedingungen Wichtige Hinweise zum Lesen des Datenblatts. Welche Informationen enthält ein Datenblatt?
    Das Datenblatt einer SPS enthält viele Informationen. Diese Informationen decken fast alle Funktionen ab, die die SPS bieten kann. Einige dieser Informationen sind für Sie jedoch nicht so wichtig wie andere. Dies hängt davon ab, welchen Anwendungsbereich Sie mit der SPS haben.
    Wenn Sie der Installationsingenieur sind, konzentrieren Sie sich auf die technischen Daten der SPS wie Versorgungsspannung, Art der Ein- und Ausgänge und Nennleistung dieser IO-Punkte.
    Sie achten auch mehr auf die Abmessungen der SPS und die Umgebungsbedingungen während des SPS-Betriebs, um die Größe des Schaltschranks zu bestimmen, den Sie für die SPS verwenden, sowie die Kühlmethoden, die für die SPS verwendet werden.
    Wie liest man das SPS-Datenblatt?
    Wenn Sie andererseits nur der SPS-Programmierer sind, sind die Informationen aus der Vergangenheit für Sie möglicherweise nicht so wichtig. Stattdessen konzentrieren Sie sich auf Daten, die sich beispielsweise auf den SPS-Speicher, die Anzahl der verfügbaren IOs und die Möglichkeit zum Hinzufügen neuer Module beziehen.
    Sie achten auch auf einige andere Informationen wie die von dieser SPS unterstützten Programmiersprachen, da nicht alle SPS alle Programmiersprachen unterstützen. Kommunikation und Vernetzung sind weitere wichtige Punkte, die Ihnen als Programmierer wichtig sind.
    Das Datenblatt einer SPS beginnt immer mit einer allgemeinen Übersichtsbeschreibung der SPS. Einfache Beispiele für S7-1200 und S7-1500 finden Sie in den Bildern 1 und 2.

    Bild 1 – 1. Seite eines S7-1500-SPS-Datenblatts.

    Bild 2 – 1. Seite eines S7-1200-SPS-Datenblatts.
    Wie Sie sehen, wird am Anfang des Datenblatts eine allgemeine Beschreibung der SPS gegeben. Diese allgemeine Beschreibung gibt Ihnen eine grundlegende Vorstellung von der SPS und davon, ob sie für Ihre Anwendung geeignet ist oder nicht.
    Beispiele für die Informationen in einem SPS-Datenblatt
    In diesem Artikel verwenden wir das Datenblatt einer S7-1200-SPS, um einige der darin enthaltenen Informationen zu zeigen.
    Strom- und Spannungswerte
    In einem bestimmten Abschnitt des Datenblatts müssen Informationen zu den Spannungs- und Stromwerten der SPS enthalten sein. Manche SPS benötigen eine Gleichstromversorgung, während andere eine Wechselstromversorgung benötigen. Auch die Ein- und Ausgänge der SPS können unterschiedliche Werte haben, was bei unserer SPS genau der Fall ist, bei der die Spannungsversorgung der SPS 220 AC beträgt, die Werte für die IOs jedoch Gleichstrom sind. Siehe Bild 3.

    Bild 3 – Spannungs- und Stromwerte.
    SPS-Speicher
    Im Datenblatt werden unterschiedliche Speicherkapazitäten der SPS angegeben. Dies zeigt, wie viel Arbeitsspeicher Sie haben und ob Sie ihn erweitern können oder nicht, siehe Bild 4.

    Bild 4 – Speicherbeschreibung der SPS
    Adressierung verschiedener Blöcke und Datenbereiche
    In diesem Abschnitt erfahren Sie mehr über die verschiedenen Blöcke, die Sie mit Ihrer SPS verwenden können, wie Timer, Zähler, FCs usw., sowie über die maximale Anzahl der Blöcke, die Sie verwenden können. Sie erhalten außerdem Informationen zum Speicher der Datenbereiche und ihrer Remanenz. Siehe Abbildung 5.

    Abbildung 5 – CPU-Blöcke sind verfügbar.
    Ein- und Ausgangsspezifikationen
    Dies sind weitere wichtige Daten, die angegeben werden sollten. Durch diese Informationen erfahren Sie, wie viele IOs mit Ihrer SPS bereitgestellt werden und wie Sie jedes IO verbinden und verwenden. Siehe Abbildungen 6 und 7.

    Abbildung 6 – Digitale Eingänge der SPS.
    Wie Sie sehen, haben wir 8 DI-Punkte in unserer SPS, von denen 6 für HSC-Eingänge (High-Speed Counting) wie Encoder verwendet werden können. Es zeigt Ihnen auch, dass die Eingangsspannung 24 VDC beträgt, was bedeutet, dass Sie AC-Sensoren von Eingängen nicht direkt an die SPS anschließen können.

    Bild 7 – In unserer SPS sind digitale Ausgänge verfügbar.
    Wenn die SPS analoge IOs hat, wird dies auch im Datenblatt erwähnt. Siehe Bild 8

    Bild 8 – Beschreibung der analogen IOs.
    Kommunikationsschnittstellen und -protokolle
    Die in Ihrer SPS verfügbaren Kommunikationsschnittstellen sowie die von ihr unterstützten Kommunikationsprotokolle werden auch im Datenblatt erwähnt. Siehe Bild 9.

    Bild 9 – Die Kommunikationsschnittstelle der SPS.
    Wie Sie sehen, hat unsere SPS nur eine Kommunikationsschnittstelle, nämlich eine PROFINET-Schnittstelle, die als RJ-45-Anschluss bereitgestellt wird. Die SPS selbst kann jedoch viele Kommunikationsprotokolle wie PROFIBUS und AS-Interface unterstützen. Siehe Bild 10.

    Bild 10 – Unterstützte Kommunikationsprotokolle.
    Umgebungsbedingungen
    Dies sind weitere sehr wichtige Daten, die Sie über Ihre SPS wissen sollten, da sie Ihnen dabei helfen, zu entscheiden, welche Art von Gehäuse und Kühlung am besten für Ihre SPS geeignet ist. Siehe Abbildung 11.

    Abbildung 11 – Umgebungsbedingungen der SPS.
    Wichtige Hinweise zum Lesen des Datenblatts einer SPS
    Nicht alle SPS-Datenblätter enthalten dieselben Informationen, da unterschiedliche SPS unterschiedliche Funktionen und Fähigkeiten haben und daher unterschiedliche Informationen anzeigen müssen.
    Nicht alle Informationen im Datenblatt werden für Sie wichtig sein, das hängt davon ab, ob Sie, wie bereits erwähnt, ein SPS-Programmierer oder ein Installationstechniker sind.
    Es ist in Ordnung, wenn Sie einige der Informationen im Datenblatt nicht verstehen, denn wie gesagt enthält das Datenblatt Informationen zu fast allen von Ihrer SPS unterstützten Funktionen. Einige dieser Funktionen kennen Sie möglicherweise nicht und müssen sie möglicherweise nie verwenden. Beispielsweise die OPC UA- oder Webserverfunktionen. Wenn Sie also Daten finden, die Sie nicht verstehen, bedeutet das nicht unbedingt, dass Ihre SPS nicht zu Ihrem Projekt passt.
    Fazit
    Das Lesen des SPS-Datenblatts ist wichtig, um zu entscheiden, ob die SPS für Ihre Anwendung geeignet ist oder nicht. Es ist auch wichtig zu entscheiden, mit welchen IO-Typen und Spannungsversorgungswerten Sie arbeiten können.
    Versuchen Sie, das Datenblatt verschiedener SPS-Modelle zu lesen und prüfen Sie, ob Sie die darin enthaltenen grundlegenden Informationen verstehen.

    leizuofa
    In diesem Artikel beschäftigen wir uns mit Taktmerkerbits im TIA-Portal und in der Siemens-SPS. Und wir zeigen, wie Sie die Verwendung der Merkerbits aktivieren und wie Sie dadurch das Codieren vieler Logikzeilen vermeiden können, um eine einfache Funktion zu erhalten, die Ihre SPS bereits intern ausführt.
    Inhalt:
    Was sind Taktmerkerbits? Die Notwendigkeit von Taktmerkerbits. Taktmerker in meinem Projekt aktivieren. Ein einfaches Programmbeispiel. Programmsimulation. Fazit. Was sind Taktmerkerbits?
    Ein Taktmerker ist ein Bitspeicher, der seinen binären Status periodisch im Verhältnis 1:1 ändert. Das bedeutet einfach, dass er seinen Status periodisch zwischen wahr und falsch mit einer vordefinierten Frequenz ändert.
    In der CPU sind 8 Taktmerkerbits vordefiniert, weshalb sie auch Taktmerkerbyte genannt werden.
    Sie entscheiden, welches Merkerbyte der CPU zum Taktmerkerbyte wird, wenn Sie die Verwendung des Merkerbytes aktivieren und die Taktmerkerparameter zuweisen.
    Die Notwendigkeit von Taktspeicherbits
    Sie brauchen den Taktspeicher nicht unbedingt, da Sie Ihre eigene Logik erstellen und dieselbe Funktionalität erreichen können. Es ist jedoch gut, ihn in der Tasche zu haben, wenn Sie eine solche Funktionalität benötigen. Denn das Erstellen von 8 separaten Logiken für 8 Taktspeicherbits wird einiges an Zeit und Mühe kosten und Ihr Programm möglicherweise unnötig groß machen.
    Sie können den Taktspeicher beispielsweise verwenden, um blinkende Anzeigelampen zu aktivieren oder periodisch wiederkehrende Vorgänge wie das Aufzeichnen von Istwerten zu initiieren.
    Jedem Bit des Taktspeicherbytes wird eine Frequenz zugewiesen. Siehe die folgende Tabelle.
    Bit des Taktspeicherbytes 7 6 5 4 3 2 1 0 Periode (s) 2.0 1.6 1.0 0.8 0.5 0.4 0.2 0.1 Frequenz (Hz) 0.5 0.625 1 1.25 2 2.5 5 10 Tabelle 1. Frequenzen der Taktspeicherbits gemäß dem TIA Portal-Hilfehandbuch.
    Taktspeicher in Siemens PLC aktivieren
    Um die Taktspeicherbits in Ihrer Logik zu verwenden, müssen Sie die Verwendung des Taktspeicherbytes in den Eigenschaften der CPU aktivieren. Siehe Abbildung 1.

    Abbildung 1 – Verwendung des Taktspeicherbytes aktivieren
    Sie können die Adresse des Bytes auswählen, das Sie dem Taktspeicher zuweisen möchten. Stellen Sie nur sicher, dass es nicht mit anderen Speicherbytes in Ihrer PLC-Logik in Konflikt gerät.
    Wie Sie auf dem Bild sehen, haben wir die Adresse 0 gewählt. Wenn Sie also das 2-Hz-Taktbit verwenden müssen, verwenden Sie das Bit %M0.3
    Beispielprogramm für ein Tia Portal-Förderband 
    In einem früheren Artikel haben wir ein einfaches Beispiel für ein Förderband verwendet, das ein Produkt zwischen Anfang und Ende des Bandes bewegt. Es gab eine Anzeige-LED, die EINSCHALTET, wenn das Band läuft. Siehe Bild 2.

    Bild 2 – Einfaches Förderbandsystem
    Wir verwenden dasselbe Beispiel, aber dieses Mal machen wir die LED mithilfe der Taktspeicherbits intuitiver. Dieses Mal verwenden wir die Taktspeicherbits mit der LED, um verschiedene Fälle des Prozesses anzuzeigen.
    Prozessbeschreibung
    In einem Förderbandsystem, das von einer SPS gesteuert wird, gibt es an den beiden Enden des Bandes zwei Anwesenheitssensoren, um die Anwesenheit eines Produkts zu erkennen. Wenn das Produkt am Anfang des Bandes erkannt wird, kann das Förderband über einen Start-Druckknopf gestartet werden. Wenn das Produkt das Ende erreicht, stoppt das Band automatisch und läuft erst wieder, wenn am Anfang erneut ein neues Produkt erkannt und der START-Druckknopf gedrückt wird.
    Die Anzeige-LED sollte je nach aktuellem Systemfall mehr als ein Verhalten aufweisen.
    Diese Fälle sind wie folgt:
    Wenn sich am Anfang des Bandes ein Produkt befindet, aber START noch nicht gedrückt wurde, sollte die LED mit einer Frequenz von 0,5 Hz blinken. Wenn das Förderband das Produkt bewegt, sollte die LED mit einer Frequenz von 2 Hz blinken. Wenn das Produkt das Ende des Bandes erreicht, sollte die LED EIN sein. Wenn das Produkt vom Ende entfernt wird, erlischt die LED. Projekt-IOs
    Wir haben 4 digitale Eingänge wie folgt:
    START: Start-Druckknopf zum Betreiben des Förderbands. STOP: Stopp-Druckknopf, um das Förderband jederzeit anzuhalten. P1: Anwesenheitssensor am Anfang des Bandes. P2: Anwesenheitssensor am Ende des Bandes. Wir haben auch 2 digitale Ausgänge wie folgt:
    MOTOR: Wenn aktiviert, beginnt das Förderband zu laufen. LED: wird gemäß der zuvor erwähnten Reihenfolge aktiviert. Programmcode
    Zuerst wählen wir unsere SPS aus und weisen die IO-Tags zu. Siehe Bild 3

    Bild 3 – Zuweisen von Ein- und Ausgangs-Tags
    Vergessen Sie nicht, die Verwendung des Taktspeicherbytes zu aktivieren, wie in Bild 1 gezeigt.
    Wir werden zwei Codenetzwerke haben, eines für die Steuerung des Förderbands und ein anderes für die LED-Logik. Die Logik finden Sie in den Bildern 4 und 5.

    Bild 4 – Die Steuerlogik des Förderbands

    Bild 5 – Die Steuerlogik der LED
    Wie Sie sehen, wurde die Logik durch die Verwendung der Taktspeicherbits einfach und leicht lesbar. Stellen Sie sich vor, Sie würden dieselbe Logik ohne die Verwendung dieser Bits erstellen. Sie hätten viele Timer verwendet und Ihre Logik wäre ziemlich kompliziert gewesen.
    Programmsimulation
    Wir haben zuvor erklärt, wie wir PLCSim verwenden, um unseren Code zu simulieren. In diesem Beispiel verwenden wir die Simulationssequenz, um dieselbe Sequenz wie beim tatsächlichen Prozess zu erstellen und zu sehen, ob das LED-Verhalten der beabsichtigten Funktionalität entspricht oder nicht.
    Beginnen Sie mit der Kompilierung unseres Codes und starten Sie eine neue Simulation. Siehe Bild 6.

    Bild 6 – Programmsimulation
    Wie Sie sehen, ist die LED jetzt AUS; es sind keine Produkte am Anfang oder Ende des Förderbands vorhanden.
    Wir haben eine Simulationssequenz erstellt und sehen, wie die LED auf unterschiedliche Prozessbedingungen reagiert. Sehen Sie sich die folgende Animation an.

    Sehen Sie, ob Sie bemerken, wie sich das LED-Verhalten bei unterschiedlichen Prozessbedingungen ändert.
    Fazit
    Taktspeicherbits werden mit einer vordefinierten Frequenz ein- und ausgeschaltet. Sie sind sehr nützlich, wenn Sie blinkende Anzeigelampen aktivieren oder periodisch wiederkehrende Vorgänge einleiten müssen. Die Verwendung von Taktspeicherbits spart Ihnen die Zeit und den Aufwand, die Sie aufwenden würden, um dieselbe Funktionalität durch Ihre eigene Logik zu erreichen.

    leikang
    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.

    caixiaofeng
    In diesem Artikel zeigen wir, wie Sie mit der Siemens Tia-Portalsoftware eine Programmsicherung von der physischen SPS auf Ihren Computer erstellen.
    Inhalt:
    Warum sollten Sie eine Sicherung erstellen? Wie erstellt man eine Sicherung von einer SPS? Hinweise zur Sicherung von einer SPS Fazit Warum sollten Sie eine Sicherung erstellen?
    Stellen Sie sich vor, Sie hätten Ihre Software versehentlich vom PC gelöscht, während Sie daran gearbeitet haben. Oder Sie müssen eine bestimmte Prozesssoftware aktualisieren, die seit 10 Jahren läuft, und Sie haben den Softwarecode nicht mehr.
    Anstatt den gesamten Code von Grund auf neu zu schreiben, ist es einfacher, einfach den aktuellen Code hochzuladen und Ihre Änderungen daran vorzunehmen.
    In diesem Artikel zeigen wir, wie Sie die in der SPS enthaltene Software ganz einfach auf Ihren PC hochladen.
    Wie erstellt man eine Sicherung von einer SPS?
    TIA Portal mit den neuen Siemens-Steuerungen S7-1200 und S7-1500 bietet beim Erstellen einer Sicherung mehr Vorteile als mit älteren Steuerungen wie S7-300 oder S7-400. Bei älteren Steuerungen erstellen Sie eine Sicherung, aber es werden keine Kommentare oder Adressdetails angezeigt. Die Software funktioniert einwandfrei, ist aber schwer zu lesen oder zu verstehen.
    Mit den neueren SPS-Steuerungen können Sie jetzt sowohl den Code als auch alle zugehörigen Adressierungen und Kommentare hochladen, was das Lesen des Codes sehr einfach macht und Aktualisierungen ermöglicht.
    Schritte zum Hochladen der Software von der SPS
    Erstellen Sie ein neues Projekt, aber anders als wir es normalerweise tun, fügen wir kein neues Gerät hinzu, sondern drücken auf Online und wählen „Gerät als neue Station hochladen“. Siehe Bild 1.

    Bild 1 – Laden Sie das Gerät als neue Station hoch.
    Dadurch laden Sie das Gerät in das PG/PC-Fenster hoch. Siehe Bild 2.

    Bild 2 – Fenster „Gerät hochladen“.
    Sie müssen den Typ der PG/PC-Schnittstelle wie im letzten Bild gezeigt auswählen und dann auf „Suche starten“ drücken.
    Wenn die Suche abgeschlossen ist, werden Ihnen alle Geräte angezeigt, die von Ihrer Software gefunden wurden. Beachten Sie, dass Sie nicht nur SPSen finden müssen; Sie können auch HMIs, IO-Module und alle anderen Kommunikationsmodule finden, die die Software erkennen kann. Siehe Bild 3.

    Bild 3 – Scan abgeschlossen und Geräte gefunden.
    Nach Abschluss des Scans können Sie die SPS auswählen, die Sie hochladen möchten, und dann auf „Hochladen“ drücken. Dadurch wird die Software von der SPS auf Ihr TIA-Portal hochgeladen. Siehe Bild 4.

    Bild 4 – Upload von der SPS ist abgeschlossen.
    Wie Sie auf dem vorherigen Bild sehen können, wird das gesamte auf der SPS gespeicherte Projekt in Ihr TIA-Portal hochgeladen. Sogar mit allen Kommentaren und Adressen. Siehe Bild 5.

    Bild 5 – SPS-Projekt wird hochgeladen
    Wie Sie sehen können, wurde das gesamte SPS-Projekt von der SPS auf Ihren PC hochgeladen. Mit allen Blöcken, Kommentaren und Projektkonfigurationen.
    Hinweise zur Sicherung von der SPS
    Wenn Ihr PC und die SPS unterschiedliche IP-Adressen haben, fordert Sie das TIA-Portal auf, Ihrem PC eine neue IP zuzuweisen, die der Adressierung der SPS entspricht. Dies wird sogar automatisch durchgeführt, wenn Sie es zulassen.
    Wenn das Projekt auf der SPS kennwortgeschützt ist, werden Sie aufgefordert, dieses Kennwort einzugeben, bevor der Upload-Schritt beginnt. Wenn Sie nicht das richtige Kennwort angeben können, wird der Upload nicht gestartet. Stellen Sie sicher, dass Sie dieses Kennwort kennen, falls vorhanden.
    Manchmal findet das TIA Portal Ihre SPS, kann das Projekt aber aus verschiedenen Gründen nicht hochladen. Beispielsweise ist das Projekt auf der SPS in einer anderen TIA Portal-Version geschrieben als der, die Sie gerade verwenden. In jedem Fall wird Ihnen der Grund für den fehlgeschlagenen Upload angezeigt und Sie können den Upload durchführen, sobald diese Gründe behoben sind.
    Fazit
    Sie können das Projekt auf der SPS mit dem TIA Portal auf Ihren PC hochladen. Wenn es sich bei der SPS um eine S7-1200 oder S7-1500 handelt, wird das Projekt mit allen zugehörigen Adressen und Kommentaren hochgeladen. Wenn es einen Grund gibt, der das TIA Portal daran hindert, das Projekt hochzuladen, wird Ihnen dieser Grund vom TIA Portal angezeigt und Sie können den Upload durchführen, sobald Sie das Problem behoben haben.

    caixiaofeng
    Wenn Sie von SPS-Programmierung hören, sind die fünf darin verwendeten Sprachen: Kontaktplanlogik, strukturierter Text, Funktionsblockdiagramm, sequentielles Flussdiagramm und Anweisungsliste. Jede Sprache kann, wenn sie einmal verstanden ist, zum Schreiben eines Anwendungscodes und zum ordnungsgemäßen Betreiben einer Maschine verwendet werden.
    Beste SPS-Programmiersprache

    Abbildung – Beispiel für Kontaktplanlogik
    Aber häufig sind neue SPS-Programmierer verwirrt, was sie zum Schreiben eines Programms verwenden sollen. Wenn sie die Vor- und Nachteile einer Sprache verstehen, können sie leicht bestimmen, was sie zum Schreiben eines SPS-Programms verwenden sollen. Daher ist es notwendig, den Unterschied zwischen ihnen zu verstehen und zu bestimmen, welche Sprache zum Codieren verwendet werden soll. In diesem Beitrag werden wir sehen, welche Sprache am besten für die SPS-Programmierung geeignet ist.
    Kontaktplanlogik
    Kontaktplanlogik ist die grundlegendste Art von SPS-Programmiersprache. Sie kann leicht mit einem elektrischen Schaltplan korreliert werden. Traditionell wurde elektrische Steuerverdrahtung verwendet, um Ausgänge entsprechend den bereitgestellten Eingängen zu betreiben.
    Die aus Kontakten und Spulen bestehende Leiterlogikzeichnung wurde in der Leiterlogikprogrammierung auf die gleiche Weise implementiert. Sie haben eine Reihe von Sprossen, wobei jede Sprosse Kontakte und Spulen hat. Wenn die Sprosse eingeschaltet wird, arbeitet die Spule, je nach Typ, entsprechend.
    Sie können so viele Sprossen wie nötig in ein Programm schreiben und der Code wird entsprechend ausgeführt. Wenn Sie es sehen, ähnelt es einer Leiter, und daher kommt der Name Leiterlogik. Zum Verständnis sehen Sie sich das folgende Diagramm an. Sie können sehen, wie einfach es ist, durchzukommen.

    In der obigen Abbildung werden Eingänge, die mit einem Schaltgerät im Relaislogikdiagramm verbunden sind, als Kontakte im Leiterdiagramm angezeigt. Die M1-Ausgangsspule im Relaislogikdiagramm wird im Leiterdiagramm mit einem Ausgangsspulensymbol dargestellt.
    Die Adressnummern, die über jedem Kontakt-/Spulensymbol im Leiterdiagramm erscheinen, sind Verweise auf die Positionen der externen Eingangs-/Ausgangsverbindungen zum Logikcontroller. Sie können also zwischen zwei Endstromschienen die erforderlichen Elemente platzieren und die Logik darin schreiben. Die Sprossen werden zyklisch von oben nach unten ausgeführt.
    Strukturierter Text
    Strukturierter Text kann als lokale Sprache auf IT-Ebene bezeichnet werden. Die Ähnlichkeit der strukturierten Textsprache ist den Codes sehr ähnlich, die wir in einer Softwaresprache schreiben. Wie der Name schon sagt, ist strukturierter Text eine Reihe von Texten, die in Zuweisungsform geschrieben sind.
    Anweisungen müssen mit Semikolons abgeschlossen werden. Wenn eine Zuweisung ausgeführt wird, wird der aktuelle Wert einer Variablen mit einem oder mehreren Elementen durch das Ergebnis der Auswertung des Ausdrucks ersetzt.
    Eine Zuweisung besteht aus einer Variablenspezifikation auf der linken Seite, gefolgt vom Zuweisungsoperator: =, gefolgt vom auszuwertenden Ausdruck. Beide Variablen (linke und rechte Seite des Zuweisungsoperators) müssen denselben Datentyp haben. Zum Verständnis siehe das folgende Diagramm.

    Wie Sie sehen, gibt es verschiedene Arten von Operationen und Bedingungen. Im obigen Beispiel wird eine if-else-Anweisung verwendet, um einen Ausdruck auszuwerten. Wenn die Bedingung erfüllt ist, wird die auf der Ausgangsseite zugewiesene Variable eingeschaltet, und wenn die Bedingung falsch ist, wird die Variable ausgeschaltet. Die ST-Sprache eignet sich daher am besten für mathematische Berechnungen, da sie schlicht und leicht verständlich aussieht.
    Sequentielles Flussdiagramm
    Ein sequentielles Flussdiagramm ist das fortschrittlichste Werkzeug, wenn Sie komplexe Programme repetitiv oder sequentiell schreiben möchten. Wie der Name schon sagt, können Sie mit der SFC-Sprache ein Programm über ein Flussdiagramm schreiben. Es funktioniert in Schritten, Verzweigungen, Links, Sprüngen und Übergängen.
    Ein SFC-Abschnitt ist eine „Statusmaschine“, d. h. der Status wird durch den aktiven Schritt erstellt und die Übergänge geben das Schalt-/Änderungsverhalten weiter. Schritte und Übergänge sind durch Richtungslinks miteinander verbunden.
    Zwei Schritte können nie direkt verbunden werden und müssen immer durch einen Übergang getrennt sein. Die aktiven Signalstatusprozesse finden entlang der Richtungslinks statt und werden durch das Schalten eines Übergangs ausgelöst. Zum Verständnis siehe das folgende Bild.

    Die Richtung des Kettenprozesses folgt den Richtungsverbindungen und verläuft vom Ende des vorhergehenden Schritts zum Anfang des nächsten Schritts. Zweige werden von links nach rechts verarbeitet. Jeder Schritt hat null oder mehr Aktionen.
    Für jeden Übergang ist eine Übergangsbedingung erforderlich. Der letzte Übergang in der Kette ist immer mit einem anderen Schritt in der Kette verbunden (über eine grafische Verbindung oder ein Sprungsymbol), um eine geschlossene Schleife zu erstellen. Schrittketten werden daher zyklisch verarbeitet.
    Funktionsblockdiagramm
    Die Sprache Funktionsblockdiagramm (FBD), die im Allgemeinen in Mikroprozessoren verwendet wird, ist in einem ähnlichen Format auch in der SPS-Programmierung verfügbar. Es handelt sich um ein Diagramm von miteinander verbundenen Blöcken, wobei jeder Block seinen Eingang und Ausgang hat.
    Die Fehlersuche in der FBD-Sprache ist sehr einfach, da Sie buchstäblich den gesamten Code in einer einzigen Ansicht anzeigen können, anstatt nach oben und unten zu scrollen. Dies hilft bei der schnellen Wartung und erhöht auch die Effizienz der Programmierung. Zum Verständnis siehe das folgende Bild.

    Wie Sie sehen, können Sie verschiedene Arten von Funktionen und Blöcken einfach durch Linien verbinden, was zeigt, wie ein Fluss in der Logik abläuft. Sie müssen nur Eingangs- und Ausgangspins zuweisen, die Linien zwischen diesen Pins verbinden und Ihr Code funktioniert entsprechend.
    Befehlsliste
    Ein in der Befehlslistensprache geschriebenes Programm besteht aus einer Reihe von Befehlen, die vom Logikcontroller nacheinander ausgeführt werden.
    Jeder Befehl wird durch eine einzelne Programmzeile dargestellt und besteht aus den folgenden Komponenten – Zeilennummer, aktueller Wert, der nur online angezeigt werden kann, Befehlsoperator und Operand. Zum Verständnis siehe das folgende Bild.

    Sie können sehen, dass jede Zeile nur eine einzelne Operation ausführt. Anstelle der in der Kontaktplanlogik verwendeten Kontakte und Spulen gibt es entsprechende Ladeanweisungen und Setz-/Rücksetzanweisungen. Es handelt sich um eine Mischung aus Kontaktplanlogik und strukturiertem Text. Aus diesem Grund wird es auch als Assemblersprache bezeichnet. Wenn Sie in der SPS online gehen, können Sie in diesem Fenster animierte Werte sehen.
    Wenn wir uns diese fünf Sprachen ansehen, sehen wir, dass die am häufigsten von Programmierern verwendeten Sprachen Kontaktplanlogik, strukturierter Text und Funktionsblockdiagramm sind. Jede Sprache hat ihre Vor- und Nachteile. Aber diese drei sind einfach zu verstehen, zu interpretieren und zu entwerfen. Dies hilft dem Programmierer dabei, die Logik richtig zu entwerfen.
    Das bedeutet nicht, dass die verbleibenden zwei Sprachen nicht verwendet werden. Es hängt von den Fähigkeiten des Programmierers ab, was er zur Implementierung der Codierung verwenden muss. Daher ist es schwierig, die beste Sprache zu nennen; aber ja, auch von diesen drei wird die Kontaktplanlogik am häufigsten verwendet.

    leikang
    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


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