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

    PLC, DCS, HMI and SCADA product application technical articles

    leigehong
    Die SPS-Programmierung hat ihre Geschichte und Referenzen in Schaltplänen. Im Laufe der Zeit wurde es immer schwieriger, Fehler in elektrischen Systemen mit Automatisierung zu beheben. Daher wurde ein Controller benötigt, der eine Logik ausführt und das Nötige tut. So entstanden SPS-Systeme.
    Wie Sie wissen, gibt es für die SPS-Programmierung viele verschiedene Sprachen, und die ursprüngliche ist die Kontaktplansprache. Sie sollten wissen, dass Schaltpläne auch dabei helfen, sie in Kontaktplanlogik umzuwandeln. In diesem Beitrag erfahren Sie, wie Sie einen Schaltplan in ein SPS-Programm umwandeln.
    Schaltpläne verstehen
    Zunächst einmal müssen Sie Schaltpläne verstehen. Sehen Sie sich das folgende Bild an. Jeder Stromkreis hat zwei Enden – positiv und negativ. Der Strom beginnt am positiven Ende und fließt durch das negative Ende.
    Dazwischen liegen elektrische Komponenten und Geräte. Wenn Sie sich das folgende Bild ansehen, gibt es vier Komponenten – den Start-Druckknopf, den Stopp-Druckknopf, den Hilfskontakt der Lampe und die Lampe.

    Die Stromversorgung beginnt am positiven Ende und geht zum Eingang des Start-Druckknopfs (Schließerkontakt). Der Ausgang des Start-Druckknopfs geht zum Eingang des Stopp-Druckknopfs (Öffnerkontakt). Der Ausgang des Stopp-Druckknopfs geht zum Eingang der Lampe.
    Der Ausgang der Lampe ist mit der negativen Stromversorgung verbunden. Parallel zum Start-Druckknopf verläuft ein weiteres Kabel vom Eingang des Knopfs zu einem Hilfskontakt der Lampe. Der Ausgang dieses Kontakts ist wieder mit dem Ausgang des Druckknopfs verbunden.
    Wenn die Stromversorgung gegeben ist und der Start-Druckknopf gedrückt wird, schaltet sich die Lampe ein, da sie den Strompfad erhält. Wenn der Knopf nun losgelassen wird, schaltet sich die Lampe aus, da sie den Pfad nicht erhält.
    Um sie zu verriegeln, platzieren wir daher den Lampenkontakt parallel, der den Strompfad hält. Wenn der Stopp-Druckknopf gedrückt wird, wird der Strompfad unterbrochen und die Lampe geht aus.
    Konvertieren des Schaltplans in das SPS-Programm
    Wenn Sie den Schaltplan nun verstanden haben, beginnen Sie, ihn auf die gleiche Weise für die SPS-Programmierung zu interpretieren. Siehe das folgende Bild.
    Die Kontaktplanlogik hat zwei Stromanschlüsse – links und rechts. Links entspricht einem positiven Stromanschluss und rechts einem negativen Stromanschluss.
    Sie benötigen vier SPS-Programmierkomponenten – Start-Druckknopf -> Schließer, Stopp-Druckknopf -> Öffner, Lampe -> Ausgangsspule und Lampe-Schließer.

    Platzieren Sie zuerst den Start-Druckknopf als Schließer. Platzieren Sie parallel dazu die Lampe als Schließer. Platzieren Sie danach den Stopp-Druckknopf als Öffner. Platzieren Sie zum Schluss die Lampe als Schließer.
    Die Vorgehensweise ist die gleiche wie für den Schaltplan beschrieben. Sie haben gesehen, dass dieselbe elektrische Zeichnung interpretiert und in Kontaktplanlogik umgewandelt wurde.
    Die allgemeinen Tipps sind:
    1. Verstehen Sie den Schaltplan von der Eingangsleistung bis zur Ausgangsleistung. Sehen Sie sich zwischendurch an, welche Komponenten wo platziert sind und wie sie verdrahtet sind.
    2. Identifizieren Sie bei der Verdrahtung die Eingangsteile und die Ausgangsteile und markieren Sie sie mit unterschiedlichen Farben.
    3. Beginnen Sie mit der Programmierung, indem Sie dem Diagramm folgen und die Komponenten auf die gleiche Weise platzieren, wie die Verdrahtung erfolgt.
    4. Führen Sie das Programm aus und sehen Sie, wie es funktioniert.

    xiangjinjiao
    SPS-Programm für ein Überwachungssystem für den Wasserstand eines künstlichen Fischteichs, erklärt mit dem Konzept der Kontaktplanlogik für Anfänger.
    Wasserstandsüberwachungssystem
    Problembeschreibung
    Implementieren Sie ein SPS-Programm für ein Überwachungssystem für den Wasserstand eines künstlichen Fischteichs.
    Führen Sie das Wasser des künstlichen Fischteichs zu oder lassen Sie es ab, wenn der Wasserstand unter dem normalen Niveau liegt, und aktivieren Sie den Alarm, wenn der Wasserstand über oder unter dem Niveau liegt.
    Problemdiagramm

    Problemlösung
    Dieses Problem kann durch einfache Automatisierung gelöst werden.
    Hier haben wir einen künstlichen Fischteich, vier Niveausensoren und drei Pumpen zur Systemüberwachung und -steuerung betrachtet.
    Hier werden wir ein Programm schreiben, das das gesamte System steuert. Das System hält den normalen Pegel aufrecht und lässt nicht zu, dass der Wasserstand steigt oder fällt, um den normalen Pegel aufrechtzuerhalten.
    Wenn der Wasserstand vom normalen Niveau abfällt, führt das System Wasser in den Fischteich zu, und wenn der Wasserstand vom normalen Niveau ansteigt, lässt das System Wasser aus dem Fischteich ab.
    Liste der Ein-/Ausgänge
    Liste der Eingänge
    Füllstandssensor, L0: I0.0 (L0=1, wenn der Wasserstand über dem Alarmniveau liegt). Füllstandssensor, L1: I0.1 (L1=1, wenn der Wasserstand über dem Normalniveau liegt) Füllstandssensor, L2: I0.2 (L2=1, wenn der Wasserstand über dem Normalniveau liegt) Füllstandssensor, L3: I0.3 (L3=1, wenn der Wasserstand über dem Alarmniveau liegt) Ausgabeliste
    Zuführpumpe: Q0.0 Entwässerungspumpe 1: Q0.1 Entwässerungspumpe 2: Q0.2 Alarmlampe: Q0.3 SPS-Kontaktplanlogik zur Überwachung des Wasserstands eines künstlichen Fischteichs





    Logik erklärt
    In diesem Problem betrachten wir die S7-300-SPS und TIA-Portalsoftware zur Programmierung.
    Netzwerk 1:
    In diesem Netzwerk haben wir die Logik für die Entwässerungspumpe 1 (Q0.1) geschrieben. Wenn der Wasserstand über dem höchsten Alarmniveau (L3 = I0.3) liegt, wird die Entwässerungspumpe 1 (Q0.1) eingeschaltet.
    Netzwerk 2:
    Wenn der Wasserstand unter dem Alarmniveau liegt, sollte die Zuführpumpe (Q0.0) gestartet werden. Hier haben wir also den NC-Kontakt von L1 (I0.1) genommen. Wenn der Pegel unter dem Normalniveau liegt, wird die Zuführpumpe (Q0.0) eingeschaltet und füllt das Wasser in den Fischteich.
    Netzwerk 3:
    Wenn der Wasserstand über dem Normalniveau liegt, wird die Entwässerungspumpe 2 (Q0.2) eingeschaltet. Hier liegt der Wasserstand über dem Normalniveau, nicht über dem Alarmniveau, daher wird nur die Entwässerungspumpe 2 (Q0.1) funktionieren.
    Netzwerk 4:
    Hier haben wir zwei Bedingungen im ODER-Gatter verwendet, sodass entweder der Pegel unter dem Normalpegel (L1 = I0.1) oder über dem Normalpegel (L1 = I0.1) liegt, dann wird der Blinkkreis aktiviert und die Alarmlampe (Q0.3) leuchtet.
    Netzwerk 5:
    Timer 2 für Blinkkreis.
    Netzwerk 6:
    Hier haben wir zwei Bedingungen im ODER-Gatter verwendet, sodass entweder der Pegel unter dem Normalpegel (L1=01) oder über dem Normalpegel liegt, dann blinkt die Alarmlampe (Q0.3) automatisch im 5-Sekunden-Intervall.
    Der Pegel liegt über dem Alarmpegel (L0=1, L1=1, L2=1, L3=1) oder unter dem Alarmpegel (L0=0, L1=0, L2=0, L3=0), DANN blinkt die Alarmlampe automatisch im 5-Sekunden-Intervall.
    Der Pegel liegt über dem Alarmpegel (L0=0, L1=0, L2=0, L3=0), dann starten die Entwässerungspumpen 1 und 2 und wenn der Wasserpegel über dem Normalwert liegt, dann startet nur die Entwässerungspumpe 2.
    Hinweis: Das obige Beispiel dient nur zur Erklärung, nicht alle Parameter oder Sperren werden berücksichtigt. Für diese einfache Logik ist es nicht notwendig, eine S7-300-SPS zu verwenden, wir haben diese SPS für unsere Diskussionszwecke verwendet.
    Ergebnis


    leizuofa
    Modbus-Kommunikation von Delta PLC (DVP 14SS2) mit Delta VFD (VFD-L-Serie). Der Motor wird direkt von HMI (DOP-107CV) über Modbus-Kommunikation gesteuert.
    Delta PLC und VFD Modbus-Kommunikation
    Der Induktionsmotor wird zusammen mit seiner Drehzahlregelung direkt von HMI gesteuert. Die Drehzahlregelung erfolgt so, dass es in HMI zwei Schaltflächen gibt, die die Drehzahl des Motors in Schritten von einem Hertz (angenommen) erhöhen und verringern. Es gibt einen Delta-AC-Antrieb der VFD-L-Serie, der den Motor basierend auf den von der SPS empfangenen Befehlen steuert. Zunächst müssen im Antrieb Kommunikations- und andere Parameter eingestellt werden, die alle seine Konfigurationen mit der SPS abgleichen, wie Baudrate, Parität, Kommunikationsmodus usw.; mit Ausnahme der Slave-ID (Stationsadresse), die sich von der SPS-Stationsadresse unterscheiden muss. Standardmäßig ist die SPS-Stationsadresse gleich eins (1). Dies bedeutet, dass die Stationsadresse des Laufwerks irgendetwas in seinem definierten Bereich außer eins (1) sein muss. Die detaillierten Parameter, die für den Kommunikationsmodus eingestellt werden müssen, sind wie folgt:
    2-00 = 4 2-01 = 4
    Kommunikationsparameter

    Wir müssen die Kommunikationsparameter gemäß der obigen Tabelle einstellen. (aus dem Handbuch entnommen).
    9-00 = 2 (kann auf alles außer 1 eingestellt werden) 9-01 = 1 9-04 = 7 (RTU-Modus, Stoppbits gleich 1 & Parität auf gerade) DVP 14SS2 hat zwei Kommunikationsanschlüsse, nämlich RS232 und RS485 separat. Nun müssen die Einstellungen für Kommunikationsanschluss 2 gemäß den eingestellten Parametern des VFD vorgenommen werden, die wie folgt lauten.
    Öffnen Sie die WPL-Software. (Delta PLC Software) Klicken Sie auf der Programmierseite auf das Symbol des Kommunikationsprogramms.
    Wählen Sie COM2 und drücken Sie auf Weiter.

    Stellen Sie die Parameter entsprechend den Kommunikationsparametern des VFD-Antriebs ein und klicken Sie auf Weiter. Hier werden sie entsprechend den im VFD-L-Tauchgang eingestellten Parametern eingespeist.
    Die Stationsadresse der SPS ist 1 (siehe linke untere Ecke)

    Markieren Sie das Hervorgehobene und drücken Sie auf Weiter.

    Sie können die Kästchen unten ankreuzen und die Bedingungen schreiben.
    Hier überspringen wir dieses Fenster und schreiben stattdessen die Logik direkt im Leiterdiagrammmodus.
    Klicken Sie auf Fertig stellen.

    Jetzt wird die folgende Leiterlogik als Ergebnis der oben eingestellten Bedingungen generiert.

    Die Leiter in Sprosse 2 wird jedes Mal ausgeführt, wenn eine gesendete Anfrage empfangen wird. Die Leiter in Sprosse 3 wird jedes Mal ausgeführt, nachdem Daten vom Laufwerk gelesen oder auf das Laufwerk geschrieben wurden. Bevor wir nun fortfahren, wird die Logik zum Starten und Stoppen des Motors und seiner Drehzahlregelung geschrieben. Wir müssen die Modbus-Adressen des Laufwerks herausfinden, über das dies ausgeführt wird. Für die VFD-L-Serie ist 2000H die Modbus-Adresse zum Starten und Stoppen des Laufwerks und 2001H für die Frequenzänderung. Hier steht H für Hexadezimal. In diesem Thema verwenden wir das Dezimalformat für die jeweilige Adresse. Daher muss Hexadezimal in Dezimalformat geändert werden.
    Durch den 8421-Code würden wir wie folgt konvertieren:
    2000 (Hex) = 8192 (Dez) 2001 (Hex) = 8193 (Dez) Anstelle von 200H und 2001H werden also 8192K und 8193K verwendet. Stellen Sie sicher, dass 8192 und 8193 nur die Modbus-Adressen sind.
    Wenn 8192K einen Wert von 10 hat, startet der Motor. Wenn 8192K einen Wert von 1 hat, stoppt der Motor. Wenn 8193K einen Wert von 5000 hat, läuft der Motor mit 50 Hz, was bedeutet, dass, wenn die Geschwindigkeit des Motors um 1 Hz erhöht werden muss, 100 zum vorhandenen Wert addiert werden müssen und umgekehrt. Erläuterung des SPS-Programms
    Nun gehen wir zu den Details des SPS-Programms. Das Sendeanforderungsbit M1122 wird jedes Mal gesetzt, wenn ein Befehl an VFD in Sprosse 5 gegeben wird.
    MODRW K2 K6 K8192 D70 K1
    MODRW steht für Mod Read Write K2 steht für die Stationsadresse des VFD. K6/K3 steht für den Funktionscode, ob geschrieben oder gelesen werden soll. Hier steht k6 für Schreiben. K8192 steht für die Modbus-Adresse, an die Daten geschrieben werden. Daten in D70 werden in k8192 geschrieben. K1 ist die Datenlänge.
    10 (dez) und 1 (dez) werden in D70 verschoben, wenn Start- und Stoppbefehle in den Sprossen 6 und 7 gegeben werden. Gleichzeitig findet die Datenübertragung statt, d. h. Daten in D70 werden in die 8192k-Adresse von VFD in Sprosse 8 geschrieben, um den Motor zu starten und zu stoppen.
    100 (dez) wird zum Wert von D100 in Sprosse 10 addiert, um die Geschwindigkeit um 1 Hz zu erhöhen, wenn der Geschwindigkeitserhöhungsimpuls (M4) empfangen wird. 100 (dez) wird vom Wert von D100 in Sprosse 9 subtrahiert, um die Geschwindigkeit um 1 Hz zu verringern, wenn der Geschwindigkeitsverringerungsimpuls (M5) empfangen wird.
    Gleichzeitig findet die Datenübertragung statt, d. h. Daten in D100 werden an die 8193k-Adresse des VFD in Sprosse 11 geschrieben, um den Motor zu starten und zu stoppen.

    HMI
    Nun kommen wir zur HMI-Konfiguration.
    Nachdem Sie das HMI-Modell ausgewählt haben, legen Sie die folgende Konfiguration fest, da die SPS-zu-HMI-Konfiguration hier auf RS232 erfolgt. (Sie müssen sie gemäß dem HMI-Modell konfigurieren)

    Nehmen Sie vier Taster, weisen Sie die Adressen zu und gestalten Sie den HMI-Bildschirm wie folgt:

    Start = M0 Stopp = M1 Geschwindigkeit erhöhen = M4 Geschwindigkeit verringern = M5 Prozess testen Das HMI-Design wird in diesem Artikel nicht behandelt.

    caixiaofeng
    Dies ist ein vollständiges Tutorial über PLC Ladder Logic zur Steuerung von Frequenzumrichtern (VFD) zur Motordrehzahlregelung mit Drehzahlauswahl über das lokale Feldbedienfeld oder SCADA-Grafiken.
    Ausführungsschritte:
    Erstellen Sie eine Steuerungs- und Leistungszeichnung Inbetriebnahme und Parameterprogrammierung in VFD Erstellen Sie ein PLC-Programm Erstellen Sie ein SCADA-Design Wie steuern Sie VFD mit SPS?

    Steuerungs- und Leistungsdiagramm

    Inbetriebnahme und Parameterprogrammierung in VFD
    Die Inbetriebnahme ist für die ordnungsgemäße Funktion von VFD erforderlich. Erforderliche Parameter wie Motortypenschilddetails, Eingangsspannung, Motortyp und Frequenz sollten während der Schnellinbetriebnahme in VFD eingegeben werden. Nach erfolgreicher Schnellinbetriebnahme ist es nun an der Zeit, die erweiterte Inbetriebnahme zu installieren. Diese Inbetriebnahme ist erforderlich, um die Details aller digitalen und analogen Ein- und Ausgänge anzugeben, wie Informationen über digitale Eingänge des Startbefehls und des Geschwindigkeitsauswahlbefehls Informationen über digitale Ausgänge wie den Status des laufenden Antriebs und des Antriebsfehlers usw. Informationen über analoge Eingänge wie Geschwindigkeitseingang 1 und Geschwindigkeitseingang 2 Informationen über analoge Ausgänge wie Strom und Frequenz des Motors SPS-Programm
    Netzwerk 1:

    In diesem Netzwerk 1 prüfen wir, ob der VFD startbereit ist. Dieses Signal wird ausgegeben, wenn alle Bedingungen in Ordnung sind und Sicherheits- und Leistungsrückmeldungen aktiv sind.
    Netzwerk 2:

    Im Netzwerk 2 wird beim Drücken der Starttaste das VFD Drive_DO-Bit gesetzt, wenn Ready_to_Start und kein Fehler vorliegen.
    Netzwerk 3:

    Dies ist die Stopplogik. Wenn die Stopptaste gedrückt wird, wird das Drive_DO-Bit zurückgesetzt.
    Netzwerk 4:

    In diesem Netzwerk 4 ist diese Logik aus Sicherheitsgründen erforderlich, sobald das Drive_DO-Bit gesetzt wird und falls der VFD aufgrund eines Fehlers nicht funktioniert, wird nach einer vordefinierten Wartezeit (hier betrachten wir sie als Run_FB_Time) das Drive_DO-Bit zurückgesetzt und ein Fehler generiert.
    Diesen Fehler können Sie vom SCADA bestätigen, nachdem der Fehler auf der Feldseite behoben wurde.
    Netzwerk 5:

    In diesem Netzwerk 5 wird das Drive_DO-Bit zurückgesetzt und ein Fehler generiert, wenn der VFD mehr Strom verbraucht und einen Überlastungsfehler ausgibt.
    Diesen Fehler können Sie vom SCADA bestätigen, nachdem der Fehler auf der Feldseite behoben wurde.
    Netzwerk 6:

    Dies ist der digitale Ausgang zur Drehzahlauswahl. Wenn Sie den Drehzahleingang als lokal auswählen, wird das Drehzahlauswahlbit nicht aktiviert, was zu einem fehlenden Speed_DO führt, und wenn Sie den Drehzahleingang als Remote auswählen, wird das Drehzahlauswahlbit aktiviert, was zu einem vorhandenen Speed_DO führt.
    SCADA-Design
    Normalzustand

    Dies ist der Normalzustand des Motors. Es liegt kein Fehler vor und das Bereit-Bit ist ebenfalls im Normalzustand.
    Auch die Drehzahlauswahl befindet sich im LOKALEN Modus.
    Laufzustand

    Dieser Zustand zeigt an, dass das Bereit-Bit hoch ist und der Motor ohne Fehler läuft.
    Fehlerzustand

    Ein Fehler-Bit ist hoch und der Motor zeigt ebenfalls einen Fehlerzustand an.
    Hinweis:
    In einigen Branchen wird auch Gelb verwendet, um den Fehlerzustand anzuzeigen. Rot wird verwendet, um den Motorstoppzustand anzuzeigen.

    leizuofa
    Speicherprogrammierbare Steuerungen sind so aufgebaut, dass sie verschiedene Signaltypen (diskret, analog) eingeben, Steueralgorithmen auf diese Signale anwenden und dann Signale als Reaktion auf Steuerprozesse ausgeben. Eine SPS allein ist im Allgemeinen nicht in der Lage, diese Signalwerte und Algorithmusvariablen menschlichen Bedienern anzuzeigen.
    Ein Techniker oder Ingenieur mit Zugang zu einem PC und der erforderlichen Software zum Bearbeiten des SPS-Programms kann sich mit der SPS verbinden und den Programmstatus „online“ anzeigen, um Signalwerte und Variablenzustände zu überwachen. Dies ist jedoch keine praktische Möglichkeit für Betriebspersonal, regelmäßig zu überwachen, was die SPS tut.
    Damit Bediener Parameter im Speicher der SPS überwachen und anpassen können, benötigen wir eine andere Art von Schnittstelle, die das Lesen und Schreiben bestimmter Variablen ermöglicht, ohne die Integrität der SPS zu beeinträchtigen, indem zu viele Informationen preisgegeben werden oder unqualifizierte Personen das Programm selbst ändern können.
    Eine Lösung für dieses Problem ist ein dediziertes Computerdisplay, das so programmiert ist, dass es selektiven Zugriff auf bestimmte Variablen im Speicher der SPS bietet. Dies wird allgemein als Mensch-Maschine-Schnittstelle oder HMI bezeichnet.
    HMIs können die Form von Allzweckcomputern („Personalcomputern“) haben, auf denen spezielle Grafiksoftware zur Schnittstelle mit einer SPS läuft, oder von Spezialcomputern, die in Blechfronten eingebaut werden und keine andere Aufgabe als die Schnittstelle zwischen Bediener und SPS erfüllen.
    Dieses erste Foto zeigt ein Beispiel eines gewöhnlichen Personalcomputers (PC) mit darauf laufender HMI-Software:

    Das hier gezeigte Display dient zufällig zur Überwachung eines Beispiels, eines Vakuum-Schwingadsorptionsprozesses (VSA) zur Reinigung von Sauerstoff, der aus der Umgebungsluft gewonnen wird. Irgendwo überwacht und steuert eine SPS (oder eine Gruppe von SPS) diesen VSA-Prozess, wobei die HMI-Software als „Fenster“ in den Speicher der SPS fungiert, um relevante Variablen in einer für das Betriebspersonal leicht verständlichen Form anzuzeigen. Der PC, auf dem diese HMI-Software läuft, wird über digitale Netzwerkkabel wie Ethernet mit den SPS(s) verbunden.
    Hinweis: Ein älterer Begriff für ein Bedienfeld war „Mensch-Maschine-Schnittstelle“ oder „MMI“.
    Das nächste Foto zeigt ein Beispiel eines speziellen HMI-Panels, das speziell für den Einsatz in industriellen Betriebsumgebungen entwickelt und gebaut wurde:

    Diese HMI-Panels sind eigentlich nichts anderes als „gehärtete“ PCs, die robust und in einem kompakten Format gebaut wurden, um ihren Einsatz in industriellen Umgebungen zu erleichtern.
    Die meisten industriellen HMI-Panels sind mit berührungsempfindlichen Bildschirmen ausgestattet, sodass Bediener mit ihren Fingerspitzen auf angezeigte Objekte drücken können, um Bildschirme zu wechseln, Details zu Teilen des Prozesses anzuzeigen usw.

    Techniker und/oder Ingenieure programmieren HMI-Displays, um Daten über ein digitales Netzwerk an eine oder mehrere SPS(s) zu lesen und zu schreiben.
    Auf dem Bildschirm eines HMI angeordnete grafische Objekte imitieren häufig reale Anzeigen und Schalter, um dem Betriebspersonal eine vertraute Schnittstelle zu bieten.
    Ein „Druckknopf“-Objekt auf der Vorderseite eines HMI-Panels wäre beispielsweise so konfiguriert, dass es ein Datenbit in die SPS schreibt, ähnlich wie ein realer Schalter ein Datenbit in das Eingangsregister der SPS schreibt.
    Moderne HMI-Panels und -Software sind fast ausschließlich tagbasiert, wobei jedes grafische Objekt auf dem Bildschirm mit mindestens einem Datentagnamen verknüpft ist, der wiederum über eine im HMI vorhandene Tagnamendatenbankdatei mit Datenpunkten (Bits oder Wörtern) in der SPS verknüpft ist.
    Grafische Objekte auf dem HMI-Bildschirm akzeptieren (lesen) entweder Daten von der SPS, um dem Bediener nützliche Informationen zu präsentieren, senden (schreiben) Daten aus der Bedienereingabe an die SPS oder beides.
    Die Aufgabe beim Programmieren einer HMI-Einheit besteht darin, eine Tagnamendatenbank aufzubauen und dann Bildschirme zu zeichnen, um den Prozess so detailliert darzustellen, wie es die Bediener zum Ausführen benötigen.
    Hier sehen Sie einen Beispiel-Screenshot einer Tag-Namen-Datenbanktabelle für ein modernes HMI:

    Die Tag-Namen-Datenbank wird mit derselben Software aufgerufen und bearbeitet, mit der auch grafische Bilder im HMI erstellt werden.
    In diesem Beispiel können Sie mehrere Tag-Namen sehen (z. B. START-DRUCKTASTE, MOTORLAUF-TIMER, FEHLERMELDUNG, MOTORDREHZAHL), die mit Datenpunkten im Speicher der SPS verknüpft sind (in diesem Beispiel werden die SPS-Adressen im Modbus-Registerformat angezeigt).
    In vielen Fällen kann der Tag-Namen-Editor entsprechende SPS-Speicherpunkte auf dieselbe Weise anzeigen, wie sie in der SPS-Programmiereditor-Software erscheinen (z. B. I:5/10, SM0.4, C11 usw.).
    Ein wichtiges Detail, das in dieser Anzeige der Tag-Namen-Datenbank zu beachten ist, sind die Lese-/Schreibattribute jedes Tags.
    Beachten Sie insbesondere, dass vier der angezeigten Tags schreibgeschützt sind. Dies bedeutet, dass die HMI nur die Berechtigung hat, die Werte dieser vier Tags aus dem Speicher der SPS zu lesen, nicht aber, diese Werte zu schreiben (zu ändern).
    Der Grund dafür ist bei diesen vier Tags, dass sich diese Tags auf SPS-Eingangsdatenpunkte beziehen. Das Tag START PUSHBUTTON bezieht sich beispielsweise auf einen diskreten Eingang in der SPS, der durch einen echten Druckknopfschalter aktiviert wird.
    Daher erhält dieser Datenpunkt seinen Zustand durch die Aktivierung des diskreten Eingangsanschlusses. Wenn der HMI Schreibberechtigung für diesen Datenpunkt erteilt würde, würde es wahrscheinlich zu einem Konflikt kommen.
    Nehmen wir an, der Eingangsanschluss der SPS wäre aktiviert (wodurch das Bit START PUSHBUTTON auf den Zustand „1“ gesetzt würde) und die HMI würde gleichzeitig versuchen, den Zustand „0“ in dasselbe Tag zu schreiben.
    Eine dieser beiden Datenquellen würde gewinnen und die andere würde verlieren, was möglicherweise zu unerwartetem Verhalten des SPS-Programms führen würde.
    Aus diesem Grund sollten Datenpunkte in der SPS, die mit realen Eingängen verknüpft sind, in der Datenbank der HMI immer auf „Nur-Lesen“-Berechtigung beschränkt sein, damit die HMI unmöglich einen Konflikt erzeugen kann.
    Das Potenzial für Datenkonflikte besteht jedoch auch für einige der anderen Punkte in der Datenbank.
    Ein gutes Beispiel hierfür ist das MOTOR RUN-Bit, das Bit im SPS-Programm, das dem realen Motor mitteilt, dass er laufen soll.
    Vermutlich erhält dieses Bit seine Daten von einer Spule im Kontaktplanprogramm der SPS. Da es jedoch auch in der HMI-Datenbank mit Lese-/Schreibberechtigung erscheint, besteht die Möglichkeit, dass die HMI dasselbe Bit im Speicher der SPS überschreibt (d. h. es kommt zu Konflikten).
    Angenommen, jemand hat ein umschaltbares „Druckknopf“-Bildschirmobjekt in der mit diesem Tag verknüpften HMI programmiert: Durch Drücken dieses virtuellen „Knopfs“ auf dem HMI-Bildschirm würde versucht, das Bit (1) zu setzen, und durch erneutes Drücken würde versucht, das Bit (0) zurückzusetzen.
    Wenn dasselbe Bit jedoch von einer Spule im Programm der SPS beschrieben wird, besteht die eindeutige Möglichkeit, dass das „Druckknopf“-Objekt der HMI und die Spule der SPS in Konflikt geraten, da das eine versucht, dem Bit eine „0“ zuzuweisen, während das andere versucht, dem Bit eine „1“ zuzuweisen.
    Diese Situation ist dem Problem sehr ähnlich, das auftritt, wenn mehrere Spulen in einem Kontaktplanprogramm an dasselbe Bit adressiert sind.
    Die allgemeine Regel hier ist, niemals mehr als ein Element an einen Datenpunkt schreiben zu lassen. Meiner Erfahrung nach ist dies einer der häufigsten Fehler, den Studenten machen, wenn sie zum ersten Mal lernen, HMIs zu programmieren: Sie versuchen, sowohl die HMI als auch die SPS an dieselben Speicherorte schreiben zu lassen, was seltsame Ergebnisse bringt.
    Eine der Lektionen, die Sie beim Programmieren großer, komplexer Systeme lernen werden, ist, dass es sehr nützlich ist, alle erforderlichen Tag-Namen zu definieren, bevor Sie mit dem Layouten von Grafiken in einer HMI beginnen.
    Dasselbe gilt für die SPS-Programmierung: Das gesamte Projekt läuft schneller und weniger verwirrend ab, wenn Sie sich die Zeit nehmen, alle erforderlichen E/A-Punkte (und Tag-Namen, wenn die SPS-Programmiersoftware Tag-Namen in der Programmierumgebung unterstützt) zu definieren, bevor Sie mit der Erstellung von Code beginnen, der angibt, wie diese Ein- und Ausgänge miteinander in Beziehung stehen.
    Es ist auch wichtig, eine konsistente Konvention für Tag-Namen beizubehalten. Beispielsweise möchten Sie vielleicht den Tag-Namen jedes fest verdrahteten I/O-Punkts entweder mit INPUT oder OUTPUT beginnen lassen (z. B. INPUT PRESSURE SWITCH HIGH, OUTPUT SHAKER MOTOR RUN usw.).
    Der Grund für die Einhaltung einer strengen Namenskonvention ist zunächst nicht offensichtlich, da der Sinn von Tag-Namen darin besteht, dem Programmierer die Freiheit zu geben, Datenpunkten im System beliebige Namen zuzuweisen.
    Sie werden jedoch feststellen, dass die meisten Tag-Namen-Editoren die Tags in alphabetischer Reihenfolge auflisten, was bedeutet, dass eine auf diese Weise organisierte Namenskonvention alle Eingabe-Tags zusammenhängend (benachbart) in der Liste, alle Ausgabe-Tags zusammenhängend in der Liste usw. präsentiert.
    Eine andere Möglichkeit, die alphabetische Auflistung von Tag-Namen zu Ihrem Vorteil zu nutzen, besteht darin, jeden Tag-Namen mit einem Wort zu beginnen, das seine Verbindung zu einem wichtigen Gerät beschreibt.
    Nehmen wir beispielsweise dieses Beispiel eines Prozesses mit mehreren Datenpunkten, die in einem SPS-Steuerungssystem definiert und in einer HMI angezeigt werden:

    Wenn wir alle diese Tags in alphabetischer Reihenfolge auflisten, ist die Verbindung sofort offensichtlich:
    Austauscher-Abflusspumpe Austauscher-Abflusstemperatur Ausgang Austauscher-Vorwärmpumpe Austauscher-Vorwärmtemperatur Eingang Austauscher-Vorwärmventil Reaktorbetttemperatur Reaktor-Zufluss Reaktor-Zuflusstemperatur Reaktormantelventil Wie Sie dieser Tag-Namensliste entnehmen können, befinden sich alle direkt mit dem Wärmetauscher verbundenen Tags in einer zusammenhängenden Gruppe und alle direkt mit dem Reaktor verbundenen Tags in der nächsten zusammenhängenden Gruppe.
    Auf diese Weise dient eine sorgfältige Benennung der Tags dazu, sie hierarchisch zu gruppieren, sodass der Programmierer sie jederzeit leicht in der Tag-Namensdatenbank finden kann.
    Sie werden feststellen, dass alle hier angezeigten Tag-Namen keine Leerzeichen zwischen den Wörtern aufweisen (z. B. sollte ein Tag-Name anstelle von „Reaktorbetttemperatur“ Bindestriche oder Unterstriche als Leerzeichen verwenden: „Reaktorbetttemperatur“), da Leerzeichen in Computerprogrammiersprachen im Allgemeinen als Trennzeichen (Trennzeichen zwischen verschiedenen Variablennamen) angesehen werden.
    Wie bei speicherprogrammierbaren Steuerungen selbst haben die Fähigkeiten von HMIs stetig zugenommen, während ihr Preis gesunken ist.
    Moderne HMIs unterstützen grafische Trendanalyse, Datenarchivierung, erweiterte Alarmfunktionen und sogar Webserverfunktionen, sodass andere Computer problemlos über Weitverkehrsnetze auf bestimmte Daten zugreifen können.
    Die Fähigkeit von HMIs, Daten über lange Zeiträume aufzuzeichnen, entlastet die SPS von dieser Aufgabe, die sehr speicherintensiv ist.
    Auf diese Weise „liefert“ die SPS der HMI lediglich aktuelle Daten, und die HMI kann mithilfe ihrer wesentlich größeren Speicherreserven eine Aufzeichnung aktueller und vergangener Daten führen.
    Wenn das HMI auf einer PC-Plattform basiert (z. B. Rockwell RSView, Wonderware, FIX/Intellution-Software), kann es sogar mit einer Festplatte ausgestattet sein, auf der enorme Mengen historischer Daten gespeichert werden können.
    Einige moderne HMI-Panels verfügen sogar über eine integrierte SPS, die Steuerung und Überwachung im selben Gerät ermöglicht.
    Solche Panels bieten Klemmenleisten-Anschlusspunkte für diskrete und sogar analoge E/A, sodass alle Steuerungs- und Schnittstellenfunktionen in einer einzigen Panel-Montageeinheit untergebracht werden können.

    leikang
    SPS-Programmierbeispiel für Mehrmotorensteuerung für Anfänger mit der Schneider Electric EcoStruxure Machine Expert Basic PLC-Software.
    Bitte beachten Sie, dass dieses SPS-Beispiel für Ingenieurstudenten gedacht ist, die daran interessiert sind, SPS-Übungen zu lernen und zu üben. Die Echtzeit-Industrie-SPS-Programme werden mit mehr Sicherheits- und Schutzfunktionen entwickelt.
    SPS-Programmierbeispiel für Mehrmotoren
    Entwerfen Sie eine SPS-Kontaktplanlogik für die folgende Anwendung.
    Wir verwenden drei Kippschalter zur Steuerung von drei Motoren.
    Wenn Schalter 1 eingeschaltet ist, sind Motor I, Motor II und Motor III eingeschaltet. Wenn Schalter 2 eingeschaltet ist, sind Motor I und Motor II eingeschaltet. Wenn Schalter 3 eingeschaltet ist, sind Motor I, Motor II und Motor III ausgeschaltet. Digitale Eingänge
    In diesem Beispielprogramm werden die folgenden digitalen Eingänge (DI) benötigt. Die zugewiesenen SPS-DI-Adressen werden ebenfalls erwähnt.
    Schalter 1: I0.0
    Schalter 2: I0.1
    Schalter 3: I0.2
    Digitale Ausgänge
    In diesem Beispielprogramm werden die folgenden digitalen Ausgänge (DO) benötigt. Die zugewiesenen PLC-DO-Adressen werden ebenfalls erwähnt.
    Motor 1: Q0.0
    Motor 2: Q0.1
    Motor 3: Q0.2
    Kontaktplan für Mehrmotorsteuerung

    Programmbeschreibung
    Für diese Anwendung haben wir die Software Ecostruxure Machine Expert Basic v1.2 zur Programmierung verwendet. Im obigen Programm haben wir normalerweise offene Kontakte für Schalter 1 (I0.0), normalerweise geschlossene Kontakte für Schalter 2 (I0.1) und Schalter 3 (I0.2) verwendet. Schalter 1 und Schalter 3 sind für Motor 1 und Motor 2 in Reihe geschaltet, wodurch ein UND-Logikgatter implementiert wird. Für Motor 3 sind Schalter 1, Schalter 2 und Schalter 3 in Reihe geschaltet, wodurch ein UND-Logikgatter implementiert wird. Damit Motor 1 und Motor 2 eingeschaltet sind, muss Schalter 1 eingeschaltet und Schalter 3 ausgeschaltet sein. Wenn Schalter 1 eingeschaltet und Schalter 2 und Schalter 3 ausgeschaltet sind, ist Motor 3 eingeschaltet. Wenn Schalter 3 eingeschaltet wird, werden alle Motoren ausgeschaltet, d. h. Motor 1, Motor 2 und Motor 3 sind ausgeschaltet. Motor 3 wird ausgeschaltet, wenn Schalter 2 eingeschaltet wird. Wenn Schalter 1 eingeschaltet wird, werden alle Motoren eingeschaltet, da der Strom auch durch Schalter 2 und Schalter 3 fließt, da es sich dabei um normalerweise geschlossene Kontakte handelt. Ohne Ausschalten von Schalter 1 bleiben Motor 1 und Motor 2 weiterhin eingeschaltet, aber Motor 3 wird ausgeschaltet, wenn Schalter 2 eingeschaltet wird. Beim Einschalten von Schalter 2 wird kein Strom an Motor 3 weitergeleitet. Alle Motoren werden ausgeschaltet, wenn Schalter 3 eingeschaltet wird, selbst wenn andere Schalter eingeschaltet sind. Wenn Schalter 1 eingeschaltet ist
    Der Strom fließt durch Schalter 1, da er sich im Zustand „true“ befindet. Im Zustand „false“ leiten auch Schalter 3 und Schalter 4 Strom an die Ausgänge weiter.

    Wenn Schalter 2 eingeschaltet ist
    Der Strom fließt nicht durch Schalter 2, wenn er eingeschaltet ist. Im Zustand „true“ unterbricht der normalerweise geschlossene Kontakt den Stromkreis.

    Wenn Schalter 3 eingeschaltet ist
    Schalter 3 ist ein normalerweise geschlossener Kontakt. Wenn er eingeschaltet ist, kann kein Strom durch ihn fließen. Infolgedessen ist keiner der Ausgänge eingeschaltet.


    leikang
    Es gibt viele Steuerungssituationen, in denen Aktionen eingeleitet werden müssen, wenn eine bestimmte Kombination von Logikfunktionsbedingungen in einer SPS erfüllt ist.
    SPS-Logikfunktionen
    Bei einer automatischen Bohrmaschine könnte beispielsweise die Bedingung vorliegen, dass der Bohrmotor aktiviert werden soll, wenn die Endschalter aktiviert werden, die das Vorhandensein des Werkstücks und die Bohrposition als an der Oberfläche des Werkstücks liegend anzeigen.
    Eine solche Situation beinhaltet die UND-Logikfunktion, wobei sowohl Bedingung A als auch Bedingung B erfüllt sein müssen, damit eine Ausgabe erfolgt. Dieser Abschnitt befasst sich mit solchen Logikfunktionen.
    SPS UND LOGIK
    Abbildung 1.7a zeigt eine Situation, in der eine Ausgabe nur dann aktiviert wird, wenn zwei normalerweise offene Schalter beide geschlossen sind. Schalter A und Schalter B müssen beide geschlossen sein, was somit eine UND-Logiksituation ergibt.
    Wir können uns dies als ein Steuerungssystem mit zwei Eingängen A und B vorstellen (Abbildung 1.7b). Nur wenn A und B beide eingeschaltet sind, gibt es eine Ausgabe. Wenn wir also 1 verwenden, um ein Ein-Signal anzuzeigen, und 0, um ein Aus-Signal darzustellen, müssen A und B beide 1 sein, damit es eine 1-Ausgabe gibt.
    Eine solche Operation wird von einem Logikgatter gesteuert, und die Beziehung zwischen den Eingängen eines Logikgatters und den Ausgängen wird in einer als Wahrheitstabelle bezeichneten Form tabellarisch dargestellt. Für das UND-Gatter haben wir also:

    Ein Beispiel für ein UND-Gatter ist ein Verriegelungssteuerungssystem für eine Werkzeugmaschine, sodass diese nur betrieben werden kann, wenn die Schutzvorrichtung in Position ist und die Stromversorgung eingeschaltet ist.
    Abbildung 1.8a zeigt ein UND-Gattersystem in einem Leiterdiagramm. Das Leiterdiagramm beginnt mit j j, einem normalerweise offenen Satz von Kontakten mit der Bezeichnung Eingang A, um Schalter A darzustellen, und in Reihe dazu j j, einem weiteren normalerweise offenen Satz von Kontakten mit der Bezeichnung Eingang B, um Schalter B darzustellen.
    Die Linie endet dann mit O, um den Ausgang darzustellen. Damit ein Ausgang vorhanden ist, müssen sowohl Eingang A als auch Eingang B vorhanden sein, d. h. die Kontakte von Eingang A und Eingang B müssen geschlossen sein (Abbildung 1.8b). Im Allgemeinen gilt:
    Auf einem Leiterdiagramm stellen Kontakte in einer horizontalen Sprosse, d. h. Kontakte in Reihe, die logischen UND-Operationen dar.

    SPS-ODER-LOGIK
    Abbildung 1.9a zeigt einen Stromkreis, bei dem ein Ausgang aktiviert wird, wenn Schalter A oder B, beide normalerweise offen, geschlossen sind.
    Dies beschreibt ein ODER-Logikgatter (Abbildung 1.9b), da Eingang A oder Eingang B eingeschaltet sein müssen, damit ein Ausgang vorhanden ist.
    Die Wahrheitstabelle lautet:

    Abbildung 1.10a zeigt ein ODER-Logikgattersystem auf einem Leiterdiagramm, Abbildung 1.10b zeigt eine gleichwertige alternative Art, dasselbe Diagramm zu zeichnen.
    Das Leiterdiagramm beginnt mit j j, normalerweise offenen Kontakten mit der Bezeichnung Eingang A, um Schalter A darzustellen, und parallel dazu j j, normalerweise offenen Kontakten mit der Bezeichnung Eingang B, um Schalter B darzustellen.
    Entweder Eingang A oder Eingang B müssen geschlossen sein, damit der Ausgang aktiviert wird
    (Abbildung 1.10c). Die Linie endet dann mit O, um den Ausgang darzustellen. Im Allgemeinen:
    Alternative Pfade, die durch vertikale Pfade von der Hauptsprosse eines Leiterdiagramms bereitgestellt werden, d. h. parallele Pfade, stellen logische ODER-Operationen dar.
    Ein Beispiel für ein ODER-Gatter-Steuerungssystem ist ein Förderband, das Flaschenprodukte zur Verpackung transportiert, wo eine Abweiserplatte aktiviert wird, um Flaschen in einen Ausschussbehälter abzulenken, wenn entweder das Gewicht nicht innerhalb bestimmter Toleranzen liegt oder kein Verschluss auf der Flasche ist.

    SPS, KEINE LOGIK
    Abbildung 1.11a zeigt einen elektrischen Schaltkreis, der von einem normalerweise geschlossenen Schalter gesteuert wird. Wenn ein Eingang an den Schalter angelegt wird, öffnet er sich und es fließt dann kein Strom im Schaltkreis.
    Dies veranschaulicht ein NICHT-Gatter, da es einen Ausgang gibt, wenn kein Eingang vorhanden ist, und keinen Ausgang, wenn ein Eingang vorhanden ist (Abbildung 1.11c). Das Gatter wird manchmal als Inverter bezeichnet.
    Die Wahrheitstabelle lautet:

    Abbildung 11.11b zeigt ein NICHT-Gattersystem in einem Leiterdiagramm. Die Kontakte von Eingang A sind als normalerweise geschlossen dargestellt.
    Dies ist in Reihe mit dem Ausgang ( ). Wenn kein Eingang an Eingang A anliegt, sind die Kontakte geschlossen und es gibt einen Ausgang. Wenn ein Eingang an Eingang A anliegt, öffnet er sich und es gibt dann keinen Ausgang.
    Ein Beispiel für ein NICHT-Gatter-Steuerungssystem ist ein Licht, das aufleuchtet, wenn es dunkel wird, d. h. wenn kein Lichteingang an den Lichtsensor angelegt wird, gibt es einen Ausgang.

    SPS-NAND-LOGIK
    Nehmen wir an, wir lassen einem UND-Gatter ein NICHT-Gatter folgen (Abbildung 1.12a). Die Konsequenz des NOT-Gatters ist, dass alle Ausgänge des AND-Gatters invertiert werden.
    Eine Alternative, die genau dieselben Ergebnisse liefert, besteht darin, an jeden Eingang ein NOT-Gatter anzulegen und dann ein OR-Gatter folgen zu lassen (Abbildung 1.12b).
    Es ergibt sich dieselbe Wahrheitstabelle, nämlich:

    Beide Eingänge A und B müssen 0 sein, damit es einen 1-Ausgang gibt.
    Es gibt einen Ausgang, wenn Eingang A und Eingang B nicht 1 sind.
    Die Kombination dieser Gatter wird als NAND-Gatter bezeichnet (Abbildung 1.13).

    Ein Beispiel für ein NAND-Gatter-Steuerungssystem ist eine Warnleuchte, die aufleuchtet, wenn bei einer Werkzeugmaschine der Sicherheitsschalter nicht aktiviert wurde und der Endschalter, der das Vorhandensein des Werkstücks signalisiert, nicht aktiviert wurde.
    SPS oder Logik
    Nehmen wir an, wir lassen auf ein OR-Gatter ein NOT-Gatter folgen (Abbildung 1.14a).
    Die Konsequenz des NOT-Gatters ist, die Ausgänge des OR-Gatters zu invertieren.
    Eine Alternative, die genau dieselben Ergebnisse liefert, besteht darin, an jeden Eingang ein NOT-Gatter und dann ein AND-Gatter für die resultierenden invertierten Eingänge anzubringen (Abbildung 1.14b).
    Nachfolgend sehen Sie die resultierende Wahrheitstabelle:

    Die Kombination aus OR- und NOT-Gattern wird als NOR-Gatter bezeichnet. Es gibt einen Ausgang, wenn weder Eingang A noch Eingang B 1 ist.
    Abbildung 1.15 zeigt ein Kontaktplandiagramm eines NOR-Systems.
    Wenn Eingang A und Eingang B beide nicht aktiviert sind, gibt es einen 1-Ausgang. Wenn entweder X400 oder X401 1 sind, gibt es eine 0-Ausgabe.

    SPS-Exklusiv-ODER-Logik (XOR)
    Das ODER-Gatter gibt eine Ausgabe aus, wenn einer oder beide der Eingänge 1 sind.
    Manchmal wird jedoch ein Gatter benötigt, das eine Ausgabe ausgibt, wenn einer der Eingänge 1 ist, aber nicht, wenn beide 1 sind, d. h. das die Wahrheitstabelle hat:

    Ein solches Gatter wird Exklusiv-ODER- oder XOR-Gatter genannt.
    Eine Möglichkeit, ein solches Gatter zu erhalten, ist die Verwendung von NICHT-, UND- und ODER-Gattern, wie in Abbildung 1.16 gezeigt.

    Abbildung 1.17 zeigt ein Leiterdiagramm für ein XOR-Gattersystem. Wenn Eingang A und Eingang B nicht aktiviert sind, gibt es eine 0-Ausgabe.
    Wenn nur Eingang A aktiviert ist, ergibt der obere Zweig eine Ausgabe von 1. Wenn nur Eingang B aktiviert ist, ergibt der untere Zweig eine Ausgabe von 1.
    Wenn sowohl Eingang A als auch Eingang B aktiviert sind, gibt es keine Ausgabe.
    In diesem Beispiel eines Logikgatters haben Eingang A und Eingang B zwei Kontaktsätze in den Schaltkreisen, wobei ein Satz normalerweise offen und der andere normalerweise geschlossen ist.
    Bei der SPS-Programmierung kann jeder Eingang so viele Kontaktsätze wie nötig haben.

    SPS Exclusive NOR (XNOR) LOGIC


    leizuofa
    Jede speicherprogrammierbare Steuerung muss über eine Möglichkeit verfügen, Signale von realen Sensoren wie Schaltern und Encodern zu empfangen und zu interpretieren und außerdem in der Lage sein, reale Steuerelemente wie Magnetspulen, Ventile und Motoren zu steuern.
    Dies wird allgemein als Eingabe-/Ausgabe- oder E/A-Fähigkeit bezeichnet. Monolithische („Brick-“) SPS haben eine feste Menge an E/A-Fähigkeiten in die Einheit eingebaut, während modulare („Rack-“) SPS einzelne Leiterplattenkarten verwenden, um kundenspezifische E/A-Fähigkeiten bereitzustellen.
    SPS-Eingabe-/Ausgabemodule

    Die Verwendung austauschbarer E/A-Karten anstelle eines monolithischen SPS-Designs bietet zahlreiche Vorteile.
    Der erste und offensichtlichste Vorteil ist die Tatsache, dass einzelne E/A-Karten im Falle eines Ausfalls leicht ausgetauscht werden können, ohne dass die gesamte SPS ausgetauscht werden muss.
    Für benutzerdefinierte Anwendungen können bestimmte E/A-Karten ausgewählt werden, wobei diskrete Karten für Anwendungen mit vielen Ein-/Aus-Eingängen und -Ausgängen bevorzugt werden oder analoge Karten für Anwendungen mit vielen 4-20 mA- und ähnlichen Signalen bevorzugt werden.
    Einige SPS bieten sogar die Funktion von Hot-Swap-Karten, d. h. jede Karte kann entfernt und durch eine neue ersetzt werden, ohne dass die Stromversorgung des SPS-Prozessors und des Racks unterbrochen werden muss.
    Bitte beachten Sie, dass nicht davon ausgegangen werden sollte, dass jedes System über Hot-Swap-Karten verfügt, denn wenn Sie versuchen, eine Karte „live“ in einem System ohne diese Funktion auszutauschen, laufen Sie Gefahr, die Karte und/oder den Rest der Einheit, an die sie angeschlossen ist, zu beschädigen!

    Einige SPS können an prozessorlose Remote-Racks angeschlossen werden, die mit zusätzlichen E/A-Karten oder -Modulen gefüllt sind, wodurch die Anzahl der E/A-Kanäle über die Kapazität der Basiseinheit hinaus erhöht werden kann.
    Die Verbindung von der Host-SPS zu Remote-E/A-Racks erfolgt normalerweise in Form eines speziellen digitalen Netzwerks, das eine große physische Distanz überbrücken kann:

    Eine alternative Methode zur Systemerweiterung besteht darin, mehrere SPS miteinander zu vernetzen, wobei jede SPS über ihr eigenes Rack und ihren eigenen Prozessor verfügt.
    Mithilfe von Kommunikationsanweisungen kann eine SPS so programmiert werden, dass sie Daten von einer anderen SPS liest und/oder in diese schreibt, wobei die andere SPS effektiv als Erweiterung ihrer eigenen E/A verwendet wird.
    Obwohl diese Methode teurer ist als Remote-E/A (wo die Remote-Racks keine eigenen dedizierten Prozessoren haben), bietet sie die Möglichkeit einer eigenständigen Steuerung für den Fall, dass die Netzwerkverbindung zwischen den SPS-Prozessoren unterbrochen wird.
    Die Eingabe-/Ausgabefunktion für speicherprogrammierbare Steuerungen gibt es in drei grundlegenden Varianten: diskret, analog und Netzwerk.

    leigehong
    In diesem Artikel geht es um die Methode zur Fehlerbehebung bei der SPS-Programmierung. In industriellen SPSen, in denen Tausende von Ein- und Ausgängen verwendet werden, hängt die Länge von SPS-Programmen von der Anwendung oder Anlagennutzung ab.
    Beheben von Problemen mit Siemens-SPS-Programmen
    Manchmal ändern Leute unwissentlich die Logikparameter, was zu einem Fehler führen kann. Aufgrund der Komplexität des Designs entstehen sogar einige Fehler während der Logikdesignphase. Die Siemens-SPS-Software verfügt über verschiedene praktische Tools zur Fehlerbehebung bei in den Programmen generierten Fehlern.
    Fehler können beispielsweise Überlappungen der Adressierung, mehrere gleiche Ausgabeinstanzen, Überlappungen von Speicherbitadressen, häufiges wiederholtes Arbeiten mit einem einzigen Programm usw. sein.
    Um solche Probleme zu finden, stehen in der Siemens-Software vier Arten von Fenstern zur Verfügung, die uns bei der Fehlerbehebung helfen.
    Sie lauten:
    Querverweis Aufrufstruktur Zuweisungsliste Abhängigkeitsstruktur Lassen Sie uns besprechen, wie wir sie in unserem Programm zur Fehlerbehebung verwenden und wo wir sie in der Software finden.
    Querverweis
    Querverweise werden verwendet, um alle in der Logik verwendeten digitalen und analogen Ein- und Ausgänge zu finden. Sie helfen uns dabei, herauszufinden, wie oft die E/A im Programm verwendet werden, und führen Benutzer auch direkt zum spezifischen Standort der E/A auf den Logikseiten.
    Hier ist ein Beispiel für eines der Programme, in dem Sie sehen können, wie die Querverweistabelle aussieht. Sie enthält alle Informationen wie Adressierung, die Sprache des Programms, verwendete Ein- und Ausgänge usw.

    Aufrufstruktur
    Wenn Sie wissen möchten, welcher Block in der Programmierung verwendet wird, wird die Aufrufstruktur verwendet.
    Dies ist eine Umkehrung der Querverweisfunktion, bei der wir erfahren, wie oft SFC- und FB-Blöcke in OB (Organisationsblock) verwendet werden, und hier erfahren wir, wie oft OB in SFC und FBs verwendet wird.

    Zuweisungsliste
    Die Zuweisungsliste ist eine sehr nützliche Funktion, wenn es darum geht, zu erfahren, wie viele Eingänge, Ausgänge, Timer und Zähler in unserer Anwendung verwendet werden und wie viele davon noch übrig sind, damit wir sie in zukünftigen Logiken verwenden können.

    Abhängigkeitsstruktur
    Die Abhängigkeitsstruktur wird verwendet, um anzuzeigen, wo jeder einzelne Block innerhalb der Programmierung verwendet wird.
    In Schritt 7 gelangen Sie jedoch nicht direkt an die Stelle, sondern in TIA PORTAL an die Stelle, an der das Programm geschrieben ist.

    HINWEIS:
    Um diese Fenster in Schritt 7 zu öffnen, verwenden Sie die Informationen wie in der Zeichnung gezeigt. Nach dem Klicken auf „Anzeigen“ stehen Ihnen die Optionen zur Verfügung.

    Führen Sie im TIA PORTAL die folgenden Schritte aus, die in der Zeichnung dargestellt sind.


    leizuofa
    In diesem Beitrag gebe ich einige grundlegende Anweisungen aus meiner persönlichen Erfahrung, um Ihnen eine Anleitung zur Fehlerbehebung in Automatisierungssystemen (SPS/DCS) zu geben:
    Bei der Fehlerbehebung in Automatisierungssystemen wird im Allgemeinen dieselbe Taktik angewendet, um die Lösung für Systemfehler zu finden.
    Abhängig von der Komplexität und Größe der Anwendung und des spezifischen Automatisierungssystems können die Schritte zur Fehlerbehebung jedoch etwas anders oder komplizierter sein.
    Das beste Wissen erlangt man durch Übung und tatsächliche Fehlerbehebungsbedingungen. Meiner Meinung nach ist wiederholtes Üben die Lösung. Ergänzungen und Kommentare sind willkommen!!
    Fehlerbehebung in einem SPS-System

    Bevor wir fortfahren, stimmen wir darin überein, dass moderne Automatisierungssysteme SPSen zur Steuerung der Anwendung haben. Wenn wir eine kleine Anwendung haben, hat das System möglicherweise eine Mikro-SPS (oder Nano-SPS) oder eine andere Art von Kompaktsteuerung (häufig hängt dies von der Anwendung ab).
    Ich habe moderne Automatisierungssysteme erwähnt, weil in der Vergangenheit (bevor SPS/andere kompakte Steuerungen bekannt waren und von Automatisierungsentwicklungsunternehmen verwendet wurden) die Steuerung eines Automatisierungssystems nur über Relais erfolgte.
    Untersuchen Sie das Programm der Steuerung
    Als Erstes sollten wir herausfinden, ob die richtigen Bedingungen für den fehlerhaften Vorgang erfüllt sind. Dazu müssen wir das „Geist“ unseres Systems finden.
    Dieses „Geist“ ist die Steuerung (entweder eine Art SPS oder eine andere Art von kompakter Steuerung). Wenn die richtigen Bedingungen nicht erfüllt sind, sollten wir das Programm der Steuerung untersuchen, um den Ursprung des Problems herauszufinden (überprüfen Sie IMMER, ob Nachrichten auf SCADA erscheinen. Dies führt schneller zur Lösung, da auf SCADA wichtige Informationen wie eine Fehler-/Alarmbeschreibung oder eine bestimmte Adresse in der SPS erscheinen).
    Wir werden Folgendes herausfinden:
    Entweder ein fehlerhaftes Signal von der Hardware (z. B. ein digitales Signal von einem Knopf oder ein digitales Signal von einem mechanischen Schalter oder ein digitales Signal von einem Relaiskontakt, das „nicht“ zum Eingang des Controllers gelangt, oder ein analoges Signal mit falschen Werten) oder ein fehlerhaftes Signal von einem anderen Softwaresystem (z. B. SCADA).
    Untersuchen Sie die Bedingungen, die von der Hardware herrühren
    Wenn wir den Ursprung des Problems festgestellt haben, verlassen wir das Programm des Controllers für eine Weile und überprüfen unsere Schlussfolgerungen.
    Wir sollten bereits die Zeichnungen des Automatisierungssystems gefunden haben, um die Verbindungen für die Komponenten zu sehen, die wir überprüfen möchten.
    Wenn wir beispielsweise feststellen, dass wir ein digitales Signal von einem Knopf haben, das „nicht“ zum Eingang des Controllers gelangt, nehmen wir unser Multimeter und überprüfen den Knopf.
    Wenn der Knopf in Ordnung ist, untersuchen wir, ob zwischen Knopf und Eingang des Controllers eine Sicherung vorhanden ist. Wenn ja, überprüfen wir sie.
    Wenn die Sicherung in Ordnung ist, untersuchen wir den Kabelverlauf.
    Vielleicht haben wir ein durchtrenntes Kabel. Wenn das Kabel in Ordnung ist, dann haben wir vielleicht ein Hardwareproblem am Eingang des Controllers und vielleicht sollten wir dieses Eingangsmodul durch ein neues ersetzen oder es anderweitig reparieren (die Reparaturen sollten von qualifiziertem Personal durchgeführt werden).
    Untersuchen Sie die Hardware nach den Ausgängen unseres Controllers
    Wenn wir zu dem Schluss kommen, dass wir die richtigen Bedingungen haben, dann sollten wir die Komponenten überprüfen, die wir zwischen Controller und dem fehlerhaften Gerät haben (wir meinen das Gerät, das nicht so funktioniert, wie es sollte).
    Wenn wir beispielsweise einen Industrieofen haben, dessen Tür nicht schließt (obwohl wir die Bedingungen zum Schließen der Tür vom Programm her haben), haben wir vielleicht ein fehlerhaftes Relais, das von der SPS (oder einem anderen Controller) zum Schließen der Tür aktiviert wird.
    Wenn das Relais in Ordnung ist, dann haben wir vielleicht ein Problem mit dem Motor, der für das Schließen der Tür verantwortlich ist. Wir sollten den Motor auf seinen Zustand überprüfen (Motorspulen, mechanische Teile).
    Wenn der Motor in Ordnung ist, sollten wir die Spannungswerte überprüfen, die am Motoreingang ankommen (mit unserem Multimeter) und auch den Kabelzustand überprüfen, wenn die Messungen des Multimeters nicht richtig sind.
    Wenn Spannung und Kabel in Ordnung sind, liegt vielleicht irgendwo eine Blockade in der Ofentürkonstruktion vor.
    Antriebe sind ein „Plus“!
    Wenn wir in unserem Automatisierungssystem Antriebseinheiten (Antriebe) haben, um einen Motor anzutreiben, sollten wir im Allgemeinen das Handbuch der jeweiligen Antriebseinheit zur Hand haben.
    Denn Antriebseinheiten haben eine digitale Anzeige oder 7-Segment-LED-Anzeigen oder einfache LEDs, die uns über den Fehler informieren, der in ihnen oder am angetriebenen Motor vorliegt.
    Das ist für Ingenieure und Techniker sehr nützlich. Außerdem haben moderne Antriebseinheiten spezielle Algorithmen zur Überprüfung des Motorstatus, der Spannungs- und Stromwerte usw.
    Wenn beispielsweise ein Motor überhitzt ist, informiert uns der Antrieb darüber, da er kontinuierlich den Temperatursensor (z. B. Thermistor) überprüft, der sich im Motorgehäuse befindet.
    Dann sollten wir den Motor überprüfen, ob er tatsächlich überhitzt ist oder ob wir einen fehlerhaften Temperatursensor haben, den wir ersetzen sollten.
    Status der Steuerungen überprüfen
    Manchmal, wenn die CPU unserer SPS einen inakzeptablen Zustand im Programmablauf erkennt, wechselt sie in den „STOP“-Modus und möglicherweise blinkt eine LED und zeigt diese Fehlfunktion an.
    Auch wenn eine andere Fehlfunktion im System auftritt, zeigen einige LEDs die Art des Fehlers an (weitere Informationen finden Sie im Handbuch des Controllers). Dasselbe Verhalten weist im Allgemeinen jeder Controller auf, der in einem Automatisierungssystem installiert ist.
    Sicherheitssysteme
    Viele Automatisierungssysteme (oft Produktionsmaschinen) haben in ihrem Design einige „Sicherheitssysteme“ wie „Pilz“ oder „Siemens Sirius“.
    Dies sind intelligente Kompaktcontroller zur Überwachung von Situationen wie dem Öffnen einer Schutztür oder einem Not-Aus. Wenn etwas davon eintritt, stoppt das Sicherheitssystem den Betrieb des Automatisierungssystems zum Schutz von Mensch und Maschine.
    Um das Automatisierungssystem in den funktionsfähigen Zustand zurückzusetzen, gibt es spezielle Anweisungen in den Handbüchern der Sicherheitssysteme.
    Die Schlussfolgerung aus all dem oben Gesagten ist, dass Sie bei der Fehlerbehebung eine schrittweise Taktik anwenden sollten. Mit der Zeit und mit zunehmender Erfahrung können wir vielleicht einige Schritte überspringen, insbesondere wenn wir für die Wartung eines Systems verantwortlich sind, mit dem wir täglich zu tun haben.
    Eine gute Taktik besteht jedoch darin, organisiert und geduldig zu sein. Viel Glück bei Ihren Bemühungen!

    caixiaofeng
    In der heutigen Welt der industriellen Automatisierung sind Daten ein sehr wichtiger Bestandteil. Sofortige Daten aus Quellen zu erhalten und sie für verschiedene Zwecke zu verwenden, ist genauso wichtig wie das Ausführen eines Systems.
    Normalerweise weiß jeder, wie man SCADA in verschiedene Datenbanksysteme wie SQL-Server integriert. Viele ignorieren jedoch die Leistungsfähigkeit von SPS bei der Integration in Datenbanken. Auch sie können für diesen Zweck verwendet werden.
    SPS mit SQL-Datenbank

    Wenn wir SPS verwenden, können Programmierer in Notfallsituationen wie SCADA-Ausfällen damit arbeiten und ihre Arbeit erledigen, indem sie sie entsprechend codieren. In diesem Beitrag erfahren Sie, wie man SPS mit SQL-Datenbank verwendet.
    Für diejenigen, die mit SQL Server nicht vertraut sind: Es handelt sich um ein Datenbankverwaltungstool, das eine große Menge an Daten sequenziell in Echtzeitformat speichert, und Abfragen werden entweder über eine externe Quelle wie eine SPS geschrieben, um Daten abzurufen.
    Um Daten darin zu speichern, wird Logik in die SPS geschrieben, die bei Ausführung Daten in SQL speichert. Dies ist ein einfaches Konzept, dessen Vorteile im weiteren Verlauf des Beitrags näher erläutert werden.
    Scheduler PLC
    Nehmen wir an, Sie haben ein sehr großes System, in das der Bediener täglich Hunderte von Zeitplänen für die Ausführung bestimmter Funktionen eingeben muss. Anstatt umfangreiche Codierungen und Variablen in der SPS zu verwenden, um in SCADA eingegebene Daten zu speichern und sie zu verwenden, sobald die Zeit gekommen ist, geben Sie einfach alle variablen Daten jedes Mal, wenn ein neues Rezept erstellt wird, über die SPS an den SQL-Server weiter.
    SQL speichert Datum und Uhrzeit der eingegebenen Werte in Echtzeit und gibt den Bedienern die Möglichkeit, sie nach Datum und Uhrzeit gefiltert auszuwählen. Beispielsweise hat SQL fünf Einträge vom 1. bis 5. Oktober für verschiedene Arten von eingegebenen Plänen. Der Vorteil besteht darin, dass der Bediener einen beliebigen Eintrag auswählen und dann das System ausführen kann.
    Wenn SQL nicht vorhanden wäre, müsste er nur eine Option ausführen, entweder den 1. Oktober oder ein anderes Datum. Oder er müsste den Speicher von SCADA oder PLC nutzen, was eine Verschwendung von Daten und Codierung wäre. Dasselbe wird durch SQL Server einfacher.
    Ein weiterer Vorteil ist, dass die SCADA-Codegröße reduziert wird und für andere Zwecke verwendet werden kann. Die Planung wird in vielen Anwendungen verwendet und die Verwendung von PLC dafür zusammen mit SQL macht das System effizienter.
    Sequenzierung
    Stellen Sie sich eine Anlage mit 10 Sequenzen vor. Jede Sequenz verfügt über einen Barcodeleser, um die Aktion für das gewünschte Produkt zu starten. Wenn der Barcode in SCADA gelesen wird, dann wird der entsprechende Datenfeed an PLC oder kurz SCADA gesendet, was das Medium zum Einleiten der Kommunikation zwischen PLC und Daten ist; dann verbinden Sie PLC einfach direkt mit SQL.
    SQL kommuniziert direkt mit PLC, um Barcodes und andere Daten zum Starten oder Stoppen einer Sequenz zu bestimmen. Solche Massendaten aus Anlagensequenzen helfen, die Codierung in SCADA zu reduzieren und machen das System schneller bedienbar. Da PLC mit Codierung für Sequenzoperationen geschrieben ist, warum verbinden Sie es nicht direkt mit SQL und verwenden das System?
    Mehrere PLCs synchronisieren
    Es gibt viele Anwendungen, bei denen eine PLC an einem Standort Daten von einem anderen PLC-Standort benötigt, um eine Arbeit zu erledigen. Auch in diesem Fall wird traditionell SCADA verwendet, um alle SPS zu integrieren und zu verwalten.
    In diesem Fall werden die Daten über Datum und Uhrzeit von SQL synchronisiert, wenn die SPS direkt mit dem SQL-Server verbunden sind. Dadurch werden die Probleme der Synchronisierung mehrerer SPS über RTC (Echtzeituhr) eliminiert.
    Außerdem kommuniziert die SPS direkt mit anderen SPS, um Daten anzufordern oder über den SQL-Server bereitzustellen. Jeder Alarm oder jedes Ereignis in einer SPS wird auch an andere SPS übermittelt und hilft bei der Verfolgung von Echtzeitaufzeichnungen.
    Handshaking
    Beim Handshaking wird eine Partei von der anderen Partei bestätigt, dass der Auftrag abgeschlossen wurde. Im Grunde ist dies eine erforderliche Antwort, damit die Partei mit ihrer anderen Arbeit beginnen kann. Diese Methode funktioniert gut mit SPS und SQL-Servern.
    Der SQL-Server kann direkt mit der SPS kommunizieren, indem er Ereignisbenachrichtigungen in Echtzeit oder Alarmbenachrichtigungsdaten in Echtzeit sendet. Das bedeutet, dass die Fertigstellung des Auftrags 3 Tage gedauert hat.
    Anschließend wird die Abschlussbestätigung als separates Ereignis an die SPS gesendet. Da sie auch 3 Tage an Daten enthält, kann der Bediener den gesamten Vorgang problemlos in SCADA-Berichten anzeigen. Handshake ist also ein wichtiger Grund für die direkte Kommunikation zwischen SPS und SQL.
    Grundlagen der SPS-Datenbank
    Stellen Sie mithilfe einer Middleware oder eines Gateways eine Verbindung zwischen der SPS und der SQL-Datenbank her, die die Kommunikation zwischen industriellen Netzwerkprotokollen und Datenbanksprachen erleichtert. Wählen Sie ein Kommunikationsprotokoll aus, das sowohl die SPS als auch die SQL-Datenbank verstehen, z. B. OPC UA, Modbus TCP oder ein anderes von Ihrer SPS und Middleware unterstütztes Protokoll. Konfigurieren Sie die SPS zum Senden und Empfangen von Daten, indem Sie die erforderlichen Parameter, Register oder Tags einrichten, aus denen gelesen oder in die geschrieben wird. Dies kann die Programmierung der SPS mithilfe der entsprechenden Software umfassen, um sicherzustellen, dass sie für den Datenaustausch bereit ist. Richten Sie die SQL-Datenbank ein, indem Sie eine neue Datenbank erstellen oder eine vorhandene konfigurieren, um Daten von der SPS zu speichern. Definieren Sie Tabellen, Spalten und Datentypen, die mit der von der SPS gesendeten Datenstruktur übereinstimmen. Ordnen Sie jeden SPS-Datenpunkt dem entsprechenden Feld in der SQL-Datenbank zu. Stellen Sie sicher, dass die Datentypen kompatibel sind und dass die Zuordnung für die Anforderungen der Anwendung logisch ist. Implementieren Sie die Datenübertragungslogik mithilfe von Skripten oder in der Datenbank gespeicherten Prozeduren. Bestimmen Sie, wie oft Daten übertragen werden sollen, unter welchen Bedingungen und ob die Übertragung durch Ereignisse oder nach einem Zeitplan ausgelöst werden soll. Testen Sie die Kommunikation zwischen der SPS und der SQL-Datenbank gründlich. Suchen Sie nach Fehlern oder Datenabweichungen und stellen Sie sicher, dass sich das System unter verschiedenen Bedingungen wie erwartet verhält. Überwachen Sie das System kontinuierlich auf Betriebsintegrität, Datengenauigkeit und Anomalien. Richten Sie Warnungen oder Benachrichtigungen für Systemfehler oder wichtige Ereignisse ein. Überprüfen und aktualisieren Sie das System regelmäßig nach Bedarf, um Änderungen im SPS-Setup, der Datenbankstruktur oder zusätzlichen Anforderungen Rechnung zu tragen. Halten Sie die Dokumentation für alle Systemänderungen auf dem neuesten Stand. Stellen Sie sicher, dass sowohl für die SPS als auch für die SQL-Datenbank Sicherheitsmaßnahmen vorhanden sind, um sie vor unbefugtem Zugriff und Datenlecks zu schützen. Erwägen Sie die Implementierung von Verschlüsselung, Firewalls und sicheren Zugriffsprotokollen.

    leizuofa
    Die elementarsten Objekte in der Kontaktplanprogrammierung sind Kontakte und Spulen, die die Kontakte und Spulen elektromechanischer Relais nachahmen sollen.
    Kontakte und Spulen sind diskrete Programmierelemente, die mit booleschen Variablenzuständen (1 und 0; ein und aus; wahr und falsch) umgehen.
    Jeder Kontakt in einem Kontaktplan-SPS-Programm stellt das Lesen eines einzelnen Bits im Speicher dar, während jede Spule das Schreiben eines einzelnen Bits im Speicher darstellt.
    Diskrete Eingangssignale an die SPS von realen Schaltern werden von einem Kontaktplanprogramm durch Kontakte gelesen, die auf diese Eingangskanäle verweisen.
    In älteren SPS-Systemen hat jeder diskrete Eingangskanal eine bestimmte Adresse, die auf die Kontakte innerhalb dieses Programms angewendet werden muss.
    In modernen SPS-Systemen hat jeder diskrete Eingangskanal einen vom Programmierer erstellten Tag-Namen, der auf die Kontakte innerhalb des Programms angewendet wird.
    Ebenso müssen diskrete Ausgangskanäle – die im Kontaktplan durch Spulensymbole referenziert werden – eine Art Adress- oder Tag-Namensetikett tragen.
    Zur Veranschaulichung stellen wir uns den Aufbau und die Programmierung eines redundanten Flammensensorsystems vor, das den Status einer Brennerflamme mithilfe von drei Sensoren überwacht.
    Der Zweck dieses Systems besteht darin, einen „brennenden“ Brenner anzuzeigen, wenn mindestens zwei der drei Sensoren eine Flamme anzeigen.
    Wenn nur ein Sensor eine Flamme anzeigt (oder wenn kein Sensor eine Flamme anzeigt), erklärt das System den Brenner als nicht brennend.
    Der Status des Brenners wird durch eine Lampe sichtbar angezeigt, die für menschliche Bediener im Kontrollraumbereich leicht sichtbar ist.
    Die Verkabelung unseres Systems ist im folgenden Diagramm dargestellt:

    Jeder Flammensensor gibt ein Gleichspannungssignal aus, das die Erkennung einer Flamme am Brenner anzeigt, entweder eingeschaltet (24 Volt Gleichstrom) oder ausgeschaltet (0 Volt Gleichstrom).
    Diese drei diskreten Gleichspannungssignale werden von den ersten drei Kanälen der diskreten Eingangskarte der SPS erfasst.
    Die Kontrollleuchte ist eine 120-Volt-Glühbirne und muss daher von einer diskreten Wechselstrom-Ausgangskarte gespeist werden, die hier im letzten Steckplatz der SPS gezeigt wird.
    Um das Kontaktplanprogramm lesbarer zu machen, werden wir jedem Eingangs- und Ausgangsbit in der SPS Tag-Namen (symbolische Adressen) zuweisen, die das reale Gerät in einem leicht verständlichen Format beschreiben.
    Wir werden die ersten drei diskreten Eingangskanäle als IN-Sensor A, IN-Sensor B und IN-Sensor C und den Ausgang als OUT-Brenner angezündet kennzeichnen.
    Hier wird ein Kontaktplanprogramm gezeigt, um zu bestimmen, ob mindestens zwei der drei Sensoren eine Flamme erkennen, wobei die Tag-Namen auf jeden Kontakt und jede Spule verweisen:

    Reihengeschaltete Kontakte in einem Kontaktplandiagramm führen die logische UND-Funktion aus, während parallele Kontakte die logische ODER-Funktion ausführen. Dieses Zwei-aus-Drei-Flammenerkennungsprogramm könnte also verbal wie folgt beschrieben werden:
    „Brenner brennt, wenn entweder A und B oder B und C oder A und C“
    Eine alternative Möglichkeit, dies auszudrücken, ist die Verwendung der Notation der Booleschen Algebra, wobei Multiplikation die UND-Funktion und Addition die ODER-Funktion darstellt:
    Brenner_brennt = AB + BC + AC
    Eine weitere Möglichkeit, diese logische Beziehung darzustellen, ist die Verwendung von Logikgattersymbolen:

    Um zu veranschaulichen, wie dieses Programm funktionieren würde, betrachten wir einen Fall, in dem die Flammensensoren B und C Flammen erkennen, Sensor A jedoch nicht (Anmerkung 1).
    Dies stellt einen Zwei-aus-Drei-Gutzustand dar, und daher würden wir erwarten, dass die SPS die Kontrollleuchte „Brenner brennt“ wie programmiert einschaltet.
    Aus der Perspektive des SPS-Racks würden wir die Anzeige-LEDs für die Sensoren B und C auf der diskreten Eingangskarte leuchten sehen, ebenso wie die Anzeige-LED für den Ausgangskanal der Lampe:
    Hinweis 1: Der wahrscheinlichste Grund, warum einer von zwei Flammensensoren das Vorhandensein einer Flamme nicht erkennt, ist eine Art Fehlausrichtung oder Verschmutzung des Flammensensors.
    Tatsächlich ist dies ein guter Grund für die Verwendung eines 2-aus-3-Flammenerkennungssystems anstelle eines Simplex-Detektorschemas (1-aus-1): um das System toleranter gegenüber gelegentlichen Sensorproblemen zu machen, ohne die Brennersicherheit zu beeinträchtigen.

    Diese beiden aktivierten Eingangskanäle „setzen“ Bits (Status 1) im Speicher der SPS, die den Status der Flammensensoren B und C darstellen. Das Bit des Flammensensors A ist „frei“ (Status 0), da sein entsprechender Eingangskanal stromlos ist.
    Die Tatsache, dass die LED des Ausgangskanals aktiviert ist (und die Kontrollleuchte „Brenner leuchtet“), zeigt uns, dass das SPS-Programm das entsprechende Bit im Ausgangsspeicherregister der SPS auf den Zustand „1“ „gesetzt“ hat.
    Eine Anzeige der Bits des Eingangs- und Ausgangsregisters zeigt die Zustände „gesetzt“ und „zurückgesetzt“ für die SPS zu diesem Zeitpunkt:

    Bei der Untersuchung des Kontaktplanprogramms mit aktivierter Statusanzeige sehen wir, dass nur das mittlere Kontaktpaar „virtuelle Energie“ an die Ausgangsspule weiterleitet:

    Denken Sie daran, dass der Zweck eines Kontakts in einem SPS-Programm darin besteht, den Status eines Bits im Speicher der SPS zu lesen.
    Diese sechs „virtuellen Kontakte“ lesen die drei Eingangsbits, die den drei Flammensensoren entsprechen.
    Jeder normalerweise offene „Kontakt“ wird „geschlossen“, wenn sein entsprechendes Bit den Wert 1 hat, und wird „geöffnet“ (in seinen Normalzustand übergehen), wenn sein entsprechendes Bit den Wert 0 hat.
    Somit sehen wir hier, dass die beiden Kontakte, die Sensor A entsprechen, ohne Hervorhebung erscheinen (was keine „Leitfähigkeit“ im virtuellen Relaiskreis darstellt), weil das Bit für diesen Eingang zurückgesetzt (0) ist.
    Die beiden Kontakte, die Sensor B entsprechen, und die beiden Kontakte, die Sensor C entsprechen, erscheinen alle hervorgehoben (was „Leitfähigkeit“ im virtuellen Schaltkreis darstellt), weil ihre Bits beide gesetzt (1) sind.
    Denken Sie auch daran, dass der Zweck einer Spule in einem SPS-Programm darin besteht, den Status eines Bits in den Speicher der SPS zu schreiben.
    Hier setzt die „aktivierte“ Spule das Bit für den SPS-Ausgang 0 auf einen „1“-Zustand, wodurch der reale Ausgang aktiviert und elektrische Energie an die Lampe „Brenner leuchtet“ gesendet wird.
    Beachten Sie, dass die Farbhervorhebung nicht anzeigt, dass ein virtueller Kontakt virtuellen Strom leitet, sondern lediglich, dass er Strom leiten kann. Eine farbliche Hervorhebung um eine virtuelle Spule herum zeigt jedoch das Vorhandensein von virtueller „Leistung“ an dieser Spule an.
    Kontakte und Relais sind nicht nur für die Implementierung einfacher Logikfunktionen nützlich, sondern können auch Verriegelungsfunktionen ausführen.
    Eine sehr häufige Anwendung in industriellen SPS-Systemen ist ein verriegelndes Start-/Stopp-Programm zur Steuerung von Elektromotoren mittels Tastschaltern.
    Wie zuvor wird diese Funktionalität anhand eines hypothetischen Beispielschaltkreises und -programms veranschaulicht:

    In diesem System sind zwei Tastschalter an diskrete Eingänge einer SPS angeschlossen, und die SPS wiederum aktiviert die Spule eines Motorschützrelais über einen ihrer diskreten Ausgänge.
    Ein Überlastkontakt ist direkt in Reihe mit der Schützspule geschaltet, um einen Überstromschutz für den Motor zu bieten, selbst im Falle eines SPS-Fehlers, bei dem der diskrete Ausgangskanal aktiviert bleibt (Anmerkung 2). Das Kontaktplanprogramm für dieses Motorsteuerungssystem würde folgendermaßen aussehen:
    Hinweis 2: Es ist zwar möglich, den Überlastkontakt mit einem der diskreten Eingangskanäle der SPS zu verbinden und dann einen virtuellen Überlastkontakt in Reihe mit der Ausgangsspule zu programmieren, um den Motor im Falle einer thermischen Überlastung zu stoppen, aber diese Strategie würde darauf beruhen, dass die SPS eine Sicherheitsfunktion ausführt, die wahrscheinlich besser von fest verdrahteten Schaltkreisen ausgeführt wird.

    Durch Drücken der „Start“-Taste wird der diskrete Eingangskanal 6 der SPS aktiviert, wodurch der virtuelle Kontakt im SPS-Programm mit der Bezeichnung „IN switch Start“ „geschlossen“ wird.
    Der normalerweise geschlossene virtuelle Kontakt für Eingangskanal 7 (die „Stop“-Taste) ist standardmäßig bereits geschlossen, wenn die „Stop“-Taste nicht gedrückt wird, und daher wird die virtuelle Spule „mit Strom versorgt“, wenn die „Start“-Taste gedrückt wird, die „Stop“-Taste jedoch nicht.
    Beachten Sie, dass der versiegelte Kontakt genau dieselbe Bezeichnung trägt wie die Spule: OUT-Schütz. Zunächst mag es seltsam erscheinen, dass sowohl ein Kontakt als auch eine Spule in einem SPS-Programm die gleiche Bezeichnung haben (Hinweis 3), da Kontakte am häufigsten mit Eingängen und Spulen mit Ausgängen verknüpft sind. Dies ergibt jedoch durchaus Sinn, wenn Sie die wahre Bedeutung von Kontakten und Spulen in einem SPS-Programm erkennen: als Lese- und Schreibvorgänge für Bits im Speicher der SPS.
    Die Spule mit der Bezeichnung „OUT-Schütz“ schreibt den Status dieses Bits, während der Kontakt mit der Bezeichnung „OUT-Schütz“ den Status desselben Bits liest. Der Zweck dieses Kontakts besteht natürlich darin, den Motor im „Ein“-Zustand zu verriegeln, nachdem ein menschlicher Bediener seinen Finger vom „Start“-Druckknopf genommen hat.
    Hinweis 3: Ein sehr verbreitetes Missverständnis unter Schülern, die zum ersten Mal die Programmierung von SPS-Kontaktplänen lernen, besteht darin, Kontakte immer mit SPS-Eingängen und Spulen mit SPS-Ausgängen zu verknüpfen. Daher erscheint es seltsam, wenn ein Kontakt die gleiche Bezeichnung wie ein Ausgang trägt. Dies ist jedoch eine falsche Zuordnung. In Wirklichkeit sind Kontakte und Spulen Lese- und Schreibanweisungen, und daher ist es möglich, dass die SPS als Teil einer Logikfunktion eines ihrer eigenen Ausgangsbits liest. Wirklich seltsam wäre es, eine Spule mit einer Eingangsbitadresse oder einem Tag-Namen zu kennzeichnen, da die SPS nicht in der Lage ist, den tatsächlichen Aktivierungsstatus von Eingangskanälen elektrisch einzustellen.
    Diese Programmiertechnik wird als Feedback bezeichnet, wobei eine Ausgangsvariable einer Funktion (in diesem Fall ist die Feedbackvariable OUT-Schütz) auch ein Eingang für dieselbe Funktion ist.
    Der Feedbackpfad ist bei der Kontaktplanprogrammierung implizit und nicht explizit, wobei der einzige Hinweis auf Feedback der gemeinsame Name von Spule und Kontakt ist.
    Andere grafische Programmiersprachen (wie Funktionsblöcke) können Feedbackpfade als Verbindungslinien zwischen Funktionsausgängen und -eingängen anzeigen, aber diese Fähigkeit ist im Kontaktplan nicht vorhanden.
    Eine schrittweise Abfolge, die den Betrieb und Status dieses einfachen Programms zeigt, veranschaulicht, wie der Einschließkontakt durch einen Start- und Abschaltzyklus des Motors funktioniert:

    Diese Sequenz hilft, die Auswertungs- oder Scanreihenfolge eines Kontaktplanprogramms zu veranschaulichen. Die SPS liest einen Kontaktplan von links nach rechts und von oben nach unten, in derselben allgemeinen Reihenfolge, wie ein Mensch Sätze und Absätze in englischer Sprache liest.
    Gemäß der Norm IEC 61131-3 muss ein SPS-Programm jedoch alle Eingänge (Kontakte) einer Funktion auswerten (lesen), bevor der Status des Ausgangs einer Funktion (Spule oder Spulen) bestimmt wird.
    Mit anderen Worten: Die SPS trifft keine Entscheidung darüber, wie der Zustand einer Spule eingestellt wird, bis alle Kontakte, die diese Spule mit Strom versorgen, gelesen wurden.
    Sobald der Status einer Spule in den Speicher geschrieben wurde, werden alle Kontakte mit demselben Tag-Namen mit diesem Status auf nachfolgenden Sprossen im Programm aktualisiert.
    Schritt 5 in der vorherigen Sequenz ist besonders anschaulich. Wenn der menschliche Bediener die Drucktaste „Stopp“ drückt, wird der Eingangskanal für den IN-Schalter „Stopp“ aktiviert, wodurch der normalerweise geschlossene virtuelle Kontakt „IN-Schalter „Stopp““ „geöffnet“ wird.
    Beim nächsten Scan dieses Programms wertet die SPS alle Eingangskontakte (IN-Schalter Start, IN-Schalter Stopp und OUT-Schütz) aus, um ihren Status zu überprüfen, bevor entschieden wird, welcher Status in die OUT-Schützspule geschrieben werden soll.
    Da die SPS erkennt, dass der IN-Schalter Stopp-Kontakt durch die Aktivierung seines jeweiligen diskreten Eingangskanals zwangsweise geöffnet wurde, schreibt sie einen „0“- (oder „Falsch“-)Zustand in die OUT-Schützspule.
    Der OUT-Schütz-Rückmeldekontakt wird jedoch erst beim nächsten Scan aktualisiert, weshalb er in Schritt 5 immer noch farblich hervorgehoben ist.
    Ein potenzielles Problem bei diesem System ist, dass der menschliche Bediener im Falle eines „offenen“ Verdrahtungsfehlers in einem der Druckknopfschalterkreise die Kontrolle über den Motor verliert.
    Wenn beispielsweise ein Draht von einem Schraubkontakt für den „Start“-Druckknopfschalterkreis abfiel, konnte der Motor nicht gestartet werden, wenn er bereits gestoppt war.
    Ebenso konnte der Motor nicht gestoppt werden, wenn ein Draht von einem Schraubkontakt für den „Stop“-Druckknopfschalterkreis abfiel, wenn er bereits lief.
    In beiden Fällen wirkt sich eine unterbrochene Kabelverbindung genauso aus wie der „normale“ Status des Druckknopfschalters, der den Motor in seinem aktuellen Zustand hält.
    Bei manchen Anwendungen wäre dieser Fehlermodus kein schwerwiegendes Problem. Bei vielen Anwendungen ist es jedoch ziemlich gefährlich, einen laufenden Motor zu haben, der nicht gestoppt werden kann.
    Aus diesem Grund ist es üblich, Motor-Start-/Stopp-Systeme etwas anders zu konstruieren als hier gezeigt.
    Um mit unserer SPS ein „Fail-Stop“-Motorsteuerungssystem zu bauen, müssen wir zuerst den Druckknopfschalter neu verdrahten, um seinen normalerweise geschlossenen (NC) Kontakt zu verwenden:

    Dadurch bleibt der diskrete Eingangskanal 7 aktiviert, wenn der Druckknopf nicht gedrückt ist. Wenn der Bediener den „Stopp“-Druckknopf drückt, wird der Kontakt des Schalters zwangsweise geöffnet und Eingangskanal 7 wird stromlos.
    Wenn ein Draht von einer Schraubklemme im „Stopp“-Schaltkreis abfällt, wird Eingangskanal 7 genauso stromlos, als ob jemand den „Stopp“-Druckknopf gedrückt hätte, wodurch der Motor automatisch abgeschaltet wird.
    Damit das SPS-Programm mit dieser neuen Schalterverdrahtung richtig funktioniert, muss der virtuelle Kontakt für den IN-Schalter „Stopp“ von einem normalerweise geschlossenen (NC) in einen normalerweise offenen (NO) geändert werden:

    Wie zuvor ist der virtuelle Kontakt des IN-Schalters „Stopp“ im „geschlossenen“ Zustand, wenn niemand den „Stopp“-Schalter drückt, wodurch der Motor jederzeit gestartet werden kann, wenn der „Start“-Schalter gedrückt wird.
    In ähnlicher Weise öffnet sich der virtuelle Kontakt des IN-Schalters „Stopp“, wenn jemand den „Stopp“-Schalter drückt, wodurch verhindert wird, dass virtueller „Strom“ zur OUT-Schützspule fließt.
    Obwohl dies eine sehr gängige Methode zum Aufbau von SPS-gesteuerten Motor-Start-/Stopp-Systemen ist – mit einem NC-Druckknopfschalter und einem virtuellen NO-„Stopp“-Kontakt –, finden Studenten, die neu in der SPS-Programmierung sind, diese logische Umkehrung oft verwirrend.
    Der vielleicht häufigste Grund für diese Verwirrung ist ein Missverständnis des „normalen“ Konzepts für Schaltkontakte, seien sie real oder virtuell. Der virtuelle Kontakt des Schalters „IN“ ist so programmiert, dass er normalerweise offen (NO) ist, befindet sich aber normalerweise im geschlossenen Zustand.
    Denken Sie daran, dass der „normale“ Status eines Schalters sein Status im Ruhezustand ohne Stimulation ist, nicht unbedingt sein Status, während sich der Prozess im „normalen“ Betriebsmodus befindet.
    Der „normalerweise offene“ virtuelle Kontakt „IN“ ist normalerweise im geschlossenen Zustand, da sein entsprechender Eingangskanal normalerweise aktiviert ist, was auf den normalerweise geschlossenen Druckknopfschalterkontakt zurückzuführen ist, der echte elektrische Energie an den Eingangskanal weiterleitet, wenn niemand den Schalter drückt.
    Nur weil ein Schalter als normalerweise offen konfiguriert ist, bedeutet das nicht unbedingt, dass er normalerweise im offenen Zustand ist! Der Status eines Schaltkontakts, ob real oder virtuell, ist eine Funktion seiner Konfiguration (NO gegenüber NC) und des auf ihn angewendeten Stimulus.
    Ein weiteres Problem im Zusammenhang mit realen Verdrahtungsproblemen ist, was dieses System tun wird, wenn der Spulenkreis des Motorschützes aus irgendeinem Grund geöffnet wird.
    Ein offener Stromkreis kann entstehen, wenn ein Draht von einer Schraubklemme fällt, oder er kann auftreten, weil der thermische Überlastkontakt aufgrund eines Übertemperaturereignisses ausgelöst wird. Das Problem mit unserem Motor-Start-/Stopp-System ist, dass es den tatsächlichen Status des Schützes nicht „kennt“.
    Mit anderen Worten: Die SPS „denkt“, dass der Schütz jedes Mal aktiviert wird, wenn der diskrete Ausgangskanal 2 aktiviert wird, aber das muss nicht der Fall sein, wenn ein offener Fehler im Spulenkreis des Schützes vorliegt.
    Dies kann zu einem gefährlichen Zustand führen, wenn der offene Fehler im Spulenkreis des Schützes später behoben wird. Stellen Sie sich einen Bediener vor, der den „Start“-Schalter drückt, aber feststellt, dass der Motor nicht startet.
    Er fragt sich, warum das so sein könnte, und schaut sich das Überlastrelais an, um zu sehen, ob es ausgelöst wurde. Wenn der Motor ausgelöst wird und der Bediener die „Reset“-Taste an der Überlastbaugruppe drückt, startet der Motor sofort, da der diskrete Ausgang der SPS nach dem Drücken des „Start“-Schalters die ganze Zeit über aktiviert geblieben ist.
    Dass der Motor sofort nach dem Zurücksetzen der thermischen Überlastung startet, kann für das Betriebspersonal eine Überraschung sein und könnte sehr gefährlich sein, wenn sich zufällig jemand in der Nähe der motorbetriebenen Maschine befindet, wenn diese startet.
    Sicherer wäre ein Motorsteuerungssystem, das sich weigert, „einzurasten“, wenn der Schütz nicht tatsächlich aktiviert wird, wenn der „Start“-Schalter gedrückt wird. Damit dies möglich ist, muss die SPS den Status des Schützes irgendwie erkennen können.
    Um die SPS über den tatsächlichen Status des Schützes zu informieren, können wir den Hilfsschalterkontakt mit einem der ungenutzten diskreten Eingangskanäle der SPS verbinden, wie folgt:

    Jetzt kann die SPS den Echtzeitstatus des Schützes über Eingangskanal 5 erfassen.
    Wir können das SPS-Programm so ändern, dass es diesen Status erkennt, indem wir diesem Eingang einen neuen Tag-Namen zuweisen (IN Schütz Aux) und einen normalerweise offenen virtuellen Kontakt dieses Namens als Seal-In-Kontakt anstelle des OUT Schütz-Bits verwenden:

    Wenn der Schütz jetzt aus irgendeinem Grund nicht aktiviert wird, wenn der Bediener den „Start“-Schalter drückt, wird der Ausgang der SPS nicht verriegelt, wenn der „Start“-Schalter losgelassen wird.
    Wenn der offene Fehler im Spulenkreis des Schützes behoben ist, startet der Motor nicht sofort, sondern wartet, bis der Bediener den „Start“-Schalter erneut drückt, was ein viel sichereres Betriebsmerkmal als zuvor ist.
    Eine spezielle Klasse virtueller „Spulen“, die in der SPS-Kontaktplanprogrammierung verwendet wird und die Erwähnung verdient, ist die „Latching“-Spule. Diese gibt es normalerweise in zwei Formen: als Set-Spule und als Reset-Spule.
    Anders als eine normale „Ausgabe“-Spule, die bei jedem Programmdurchlauf positiv in ein Bit im Speicher der SPS schreibt, schreiben „Set“- und „Reset“-Spulen nur dann in ein Bit im Speicher, wenn sie durch virtuelle Energie aktiviert werden. Andernfalls darf das Bit seinen letzten Wert behalten.
    Ein sehr einfaches Motor-Start-/Stopp-Programm könnte mit nur zwei Eingangskontakten und zwei dieser Latching-Spulen geschrieben werden (beide tragen denselben Tag-Namen und schreiben in dasselbe Bit im Speicher):

    Beachten Sie die Verwendung eines normalerweise offenen (NO) Druckknopfschalterkontakts (wieder!), ohne Hilfskontakt, der der SPS eine Statusanzeige des Schützes liefert. Dies ist ein sehr minimales Programm, das ausschließlich zum Zweck der Veranschaulichung der Verwendung von „Set“- und „Reset“-Latching-Spulen in der SPS-Kontaktplanprogrammierung gezeigt wird.
    „Set“- und „Reset“-Spulen (bezeichnet als „Latch“- und „Unlatch“-Spulen) sind Beispiele für das, was in der Welt der SPS-Programmierung als remanente Anweisungen bekannt ist. Eine „remanente“ Anweisung behält ihren Wert, nachdem sie im „Schaltkreis“ des Kontaktplans praktisch „stromlos“ gemacht wurde.
    Eine Standardausgangsspule ist nicht remanent, was bedeutet, dass sie nicht „verriegelt“, wenn sie stromlos gemacht wird. Das Konzept von remanenten und nicht remanenten Anweisungen wird erneut auftauchen, wenn wir uns mit der SPS-Programmierung befassen, insbesondere im Bereich der Timer.
    Normalerweise versuchen wir, mehrere Spulen mit derselben Bezeichnung in einem SPS-Kontaktplanprogramm zu vermeiden. Da jede Spule eine „Schreib“-Anweisung darstellt, stellen mehrere Spulen mit demselben Namen mehrere „Schreib“-Operationen für dasselbe Bit im Speicher der SPS dar.
    Hier gibt es bei verriegelnden Spulen keinen Konflikt, da jede der Spulen nur dann in das OUT-Schützbit schreibt, wenn ihr jeweiliger Kontakt aktiviert wird. Solange nur einer der Drucktastenschalter gleichzeitig betätigt wird, gibt es keinen Konflikt zwischen den gleichnamigen Spulen.
    Dies wirft die Frage auf: Was würde passieren, wenn beide Drucktastenschalter gleichzeitig gedrückt würden? Was würde passieren, wenn sowohl die „Set“- als auch die „Reset“-Spulen gleichzeitig „aktiviert“ würden? Das Ergebnis ist, dass das OUT-Schützbit zuerst „gesetzt“ (auf den Wert 1 geschrieben) und dann „zurückgesetzt“ (auf den Wert 0 geschrieben) würde, und zwar in dieser Reihenfolge, in der die beiden Sprossen des Programms von oben nach unten gescannt würden.
    SPS aktualisieren ihre diskreten E/A-Register normalerweise nicht, während sie das Kontaktplanprogramm scannen (dieser Vorgang findet entweder vor oder nach jedem Programmscan statt), sodass der tatsächliche Status des diskreten Ausgangskanals der ist, der ihm durch den letzten Schreibvorgang angezeigt wurde, in diesem Fall „Reset“ (0 oder Aus).
    Auch wenn der diskrete Ausgang aufgrund der widersprüchlichen Schreibvorgänge der „Set“- und „Reset“-Spulen nicht „durcheinander“ ist, könnten andere Sprossen des Programms, die zwischen den „Set“- und „Reset“-Sprossen geschrieben wurden, durcheinander geraten.
    Stellen Sie sich beispielsweise einen Fall vor, in dem es andere Programmsprossen nach den „Set“- und „Reset“-Sprossen gab, die den Status des OUT-Schützbits aus irgendeinem Grund lasen.
    Diese anderen Sprossen würden tatsächlich „verwirrt“ werden, weil sie das OUT-Schützbit im „gesetzten“ Zustand sehen würden, während der eigentliche diskrete Ausgang der SPS (und alle Sprossen nach der „Reset“-Sprosse) das OUT-Schützbit im „Reset“-Zustand sehen würden:

    Mehrere (nicht remanente) Ausgangsspulen mit derselben Speicheradresse sind aus diesem Grund fast immer ein Programmier-Fauxpax, aber selbst remanente Spulen, die für die Verwendung in passenden Paaren ausgelegt sind, können Probleme verursachen, wenn die Auswirkungen einer gleichzeitigen Aktivierung nicht vorhergesehen werden.
    Mehrere Kontakte mit identischen Adressen sind überhaupt kein Problem, da mehrere „Lese“-Operationen für dasselbe Bit im Speicher niemals einen Konflikt verursachen.
    Der SPS-Programmierstandard IEC 61131-3 spezifiziert Übergangserkennungskontakte sowie die üblicheren „statischen“ Kontakte. Ein Übergangserkennungskontakt wird nur für die Dauer eines Programmdurchlaufs „betätigt“, selbst wenn sein entsprechendes Bit aktiv bleibt.
    Im IEC-Standard sind zwei Arten von Kontaktplankontakten zur Übergangserkennung definiert: einer für positive Übergänge und einer für negative Übergänge.
    Das folgende Beispiel zeigt einen Schaltplan, ein Kontaktplanprogramm und ein Zeitdiagramm, die demonstrieren, wie jeder Typ von Kontakt zur Übergangserkennung funktioniert, wenn er durch ein reales (elektrisches) Eingangssignal an einen diskreten Kanal stimuliert wird:

    Wenn der Druckknopfschalter gedrückt und der diskrete Eingang aktiviert wird, blinkt die erste Prüflampe für genau einen Scan des SPS-Programms „ein“ und kehrt dann in den ausgeschalteten Zustand zurück.
    Der positive Übergangskontakt (mit dem Buchstaben „P“ darin) aktiviert die Spule OUT test1 nur während des Scans, in dem er den Status des IN-Testübergangs von „falsch“ auf „wahr“ erkennt, obwohl der Eingang nach diesem Übergang für viele Scans aktiviert bleibt.
    Wenn umgekehrt der Druckknopfschalter losgelassen wird und der diskrete Eingang stromlos wird, blinkt die zweite Prüflampe genau für einen Scan des SPS-Programms „ein“ und kehrt dann in den ausgeschalteten Zustand zurück.
    Der negative Übergangskontakt (mit dem Buchstaben „N“ darin) aktiviert die Spule OUT test2 nur während des Scans, bei dem er den Status des IN-Testübergangs von „wahr“ auf „falsch“ sieht, obwohl der Eingang nach diesem Übergang für viele Scans stromlos bleibt:
    Es ist zu beachten, dass die Dauer eines einzelnen SPS-Programmscans normalerweise sehr kurz ist: gemessen in Millisekunden. Wenn dieses Programm tatsächlich in einer echten SPS getestet würde, würden Sie wahrscheinlich keine der Prüflampen aufleuchten sehen, da jeder Impuls so kurzlebig ist.
    Übergangskontakte werden normalerweise immer dann verwendet, wenn eine Anweisung nach einem „auslösenden“ Ereignis nur einmal ausgeführt werden soll, anstatt diese Anweisung immer wieder auszuführen, solange der Ereignisstatus „wahr“ bleibt.
    Kontakte und Spulen stellen nur die grundlegendsten Anweisungen in der SPS-Programmiersprache mit Kontaktplan dar.

    leizuofa
    Ende der 1960er Jahre brachte ein amerikanisches Unternehmen namens Bedford Associates ein Computergerät auf den Markt, das sie MODICON nannten. Als Akronym stand es für Modular Digital Controller und wurde später zum Namen einer Unternehmensabteilung, die sich mit der Entwicklung, Herstellung und dem Verkauf dieser Spezialsteuercomputer befasste.
    Andere Ingenieurbüros entwickelten ihre eigenen Versionen dieses Geräts, und es wurde schließlich unter freiem Namen als PLC oder Programmable Logic Controller bekannt.
    SPS
    Der Zweck einer PLC bestand darin, elektromechanische Relais direkt als Logikelemente zu ersetzen und stattdessen einen Halbleiter-Digitalcomputer mit einem gespeicherten Programm zu verwenden, der die Verbindung vieler Relais emulieren kann, um bestimmte logische Aufgaben auszuführen.
    Eine PLC hat viele „Eingangs“-Anschlüsse, über die sie „hohe“ und „niedrige“ logische Zustände sowie analoge Werte von Schaltern und Sensoren interpretiert.
    Es verfügt außerdem über viele Ausgangsklemmen, über die es „High“- und „Low“-Signale ausgibt, um Lampen, Magnetspulen, Schütze, kleine Motoren und andere Geräte mit Strom zu versorgen, die sich für die Ein-/Aus-Steuerung eignen, sowie über analoge Ausgänge zur Steuerung von Steuerventilen, Motordrehzahlregelung usw.
    Um die Programmierung von SPS zu vereinfachen, wurde ihre Programmiersprache so gestaltet, dass sie Leiterlogikdiagrammen ähnelt. Ein Ingenieur, der an das Lesen von Leiterlogikdiagrammen gewöhnt ist, würde sich daher wohl dabei fühlen, eine SPS so zu programmieren, dass sie dieselben Steuerfunktionen ausführt.
    SPS-Programmierung
    Die folgende Abbildung zeigt eine einfache SPS, wie sie von vorne aussehen könnte.
    Zwei Schraubklemmen stellen die Verbindung zur Stromversorgung her, um die internen Schaltkreise der SPS mit Strom zu versorgen, gekennzeichnet mit L1 und L2.
    Sechs Schraubklemmen auf der linken Seite stellen die Verbindung zu Eingabegeräten her, wobei jede Klemme einen anderen Eingangskanal mit seiner eigenen „X“-Beschriftung darstellt.
    Die untere linke Schraubklemme ist eine „gemeinsame“ Verbindung, die im Allgemeinen mit L2 (Neutralleiter) der 120-VAC-Stromquelle verbunden ist.

    Im SPS-Gehäuse befindet sich zwischen jedem Eingangsanschluss und dem gemeinsamen Anschluss ein Opto-Isolator (Leuchtdiode), der ein elektrisch isoliertes „High“-Logiksignal an die Computerschaltung liefert (ein Fototransistor interpretiert das Licht der LED), wenn zwischen dem jeweiligen Eingangsanschluss und dem gemeinsamen Anschluss eine Spannung von 120 VAC anliegt.
    Eine Anzeige-LED auf der Vorderseite der SPS zeigt optisch einen „aktivierten“ Eingang an:

    Ausgangssignale werden von der Computerschaltung der SPS erzeugt, indem ein Schaltgerät (Transistor, TRIAC oder sogar ein elektromechanisches Relais) aktiviert wird, das den „Source“-Anschluss mit einem der mit „Y-“ gekennzeichneten Ausgangsanschlüsse verbindet.
    Der „Source“-Anschluss ist dementsprechend normalerweise mit der L1-Seite der 120-VAC-Stromquelle verbunden.
    Wie bei jedem Eingang gibt eine Anzeige-LED auf der Vorderseite der SPS eine visuelle Anzeige eines „aktivierten“ Ausgangs:

    Auf diese Weise kann die SPS mit realen Geräten wie Schaltern und Magnetspulen kommunizieren.
    Die eigentliche Logik des Steuerungssystems wird in der SPS mithilfe eines Computerprogramms eingerichtet.
    Dieses Programm bestimmt, welcher Ausgang unter welchen Eingangsbedingungen aktiviert wird.
    Obwohl das Programm selbst wie ein Leiterlogikdiagramm mit Schalter- und Relaissymbolen aussieht, gibt es in der SPS keine tatsächlichen Schalterkontakte oder Relaisspulen, die die logischen Beziehungen zwischen Eingang und Ausgang herstellen.
    Dies sind sozusagen imaginäre Kontakte und Spulen. Das Programm wird über einen PC eingegeben und angezeigt, der an den Programmieranschluss der SPS angeschlossen ist.
    Betrachten Sie den folgenden Schaltkreis und das folgende SPS-Programm:

    Wenn der Druckknopfschalter nicht betätigt (nicht gedrückt) ist, wird kein Strom an den X1-Eingang der SPS gesendet.
    Wenn Sie dem Programm folgen, das einen normalerweise offenen X1-Kontakt in Reihe mit einer Y1-Spule zeigt, wird kein „Strom“ an die Y1-Spule gesendet. Der Y1-Ausgang der SPS bleibt also stromlos und die daran angeschlossene Kontrollleuchte bleibt dunkel.
    Wenn der Druckknopfschalter jedoch gedrückt wird, wird Strom an den X1-Eingang der SPS gesendet.
    Alle im Programm erscheinenden X1-Kontakte nehmen den aktivierten (nicht normalen) Zustand an, als wären sie Relaiskontakte, die durch die Aktivierung einer Relaisspule mit dem Namen „X1“ aktiviert werden.
    In diesem Fall bewirkt die Aktivierung des X1-Eingangs, dass der normalerweise offene X1-Kontakt „geschlossen“ wird und „Strom“ an die Y1-Spule sendet.
    Wenn die Y1-Spule des Programms „aktiviert“ wird, wird der reale Y1-Ausgang aktiviert und die daran angeschlossene Lampe leuchtet auf:

    Es muss verstanden werden, dass der X1-Kontakt, die Y1-Spule, die Verbindungskabel und die „Stromversorgung“, die auf dem Display des Computers (Engineering-System, auf dem die SPS-Software geladen ist) erscheinen, alle virtuell sind.
    Sie existieren nicht als reale elektrische Komponenten. Sie existieren als Befehle in einem Computerprogramm – nur ein Stück Software –, das zufällig einem realen Relaisschaltplan ähnelt.
    Ebenso wichtig ist es zu verstehen, dass der Computer, der zum Anzeigen und Bearbeiten des SPS-Programms verwendet wird, für den weiteren Betrieb der SPS nicht erforderlich ist.
    Sobald ein Programm vom Computer in die SPS geladen wurde, kann der Computer von der SPS getrennt werden und die SPS befolgt weiterhin die programmierten Befehle.
    Ich habe die Computeranzeige nur zu Ihrem Wohl in diese Abbildungen aufgenommen, um Ihnen zu helfen, die Beziehung zwischen realen Bedingungen (Schalterschließung und Lampenstatus) und dem Status des Programms („Strom“ durch virtuelle Kontakte und virtuelle Spulen) zu verstehen.
    Die wahre Leistungsfähigkeit und Vielseitigkeit einer SPS zeigt sich, wenn wir das Verhalten eines Steuerungssystems ändern möchten. Da die SPS ein programmierbares Gerät ist, können wir ihr Verhalten ändern, indem wir die Befehle ändern, die wir ihr geben, ohne die daran angeschlossenen elektrischen Komponenten neu konfigurieren zu müssen.
    Nehmen wir beispielsweise an, wir möchten diesen Schalter- und Lampenschaltkreis umgekehrt funktionieren lassen: Drücken Sie den Knopf, um die Lampe auszuschalten, und lassen Sie ihn los, um sie einzuschalten.
    Die „Hardware“-Lösung würde erfordern, dass der derzeit vorhandene Schließerschalter durch einen Öffner-Druckknopfschalter ersetzt wird.
    Die „Software“-Lösung ist viel einfacher: Ändern Sie einfach das Programm so, dass Kontakt X1 Öffner statt Schließer ist.
    In der folgenden Abbildung wird das geänderte System in dem Zustand gezeigt, in dem der Druckknopf nicht betätigt (nicht gedrückt) ist:

    In der nächsten Abbildung wird der Schalter betätigt (gedrückt) gezeigt:

    Einer der Vorteile der Implementierung logischer Steuerung in Software statt in Hardware besteht darin, dass Eingangssignale im Programm so oft wiederverwendet werden können wie nötig.
    Nehmen wir beispielsweise den folgenden Schaltkreis und das folgende Programm, das die Lampe einschaltet, wenn mindestens zwei der drei Druckschalter gleichzeitig betätigt werden:

    Um einen äquivalenten Schaltkreis mit elektromechanischen Relais aufzubauen, müssten drei Relais mit jeweils zwei normalerweise offenen Kontakten verwendet werden, um zwei Kontakte pro Eingangsschalter bereitzustellen.
    Mit einer SPS können wir jedoch für jeden „X“-Eingang beliebig viele Kontakte programmieren, ohne zusätzliche Hardware hinzuzufügen, da jeder Eingang und jeder Ausgang nichts weiter als ein einzelnes Bit im digitalen Speicher der SPS ist (entweder 0 oder 1) und beliebig oft abgerufen werden kann.
    Da außerdem jeder Ausgang in der SPS ebenfalls nichts weiter als ein Bit in ihrem Speicher ist, können wir in einem SPS-Programm Kontakte zuweisen, die durch einen Ausgangsstatus (Y) „betätigt“ werden.
    Nehmen wir zum Beispiel das nächste System, eine Start-Stopp-Steuerschaltung für Motoren:

    Der an Eingang X1 angeschlossene Druckknopfschalter dient als „Start“-Schalter, während der an Eingang X2 angeschlossene Schalter als „Stopp“ dient.
    Ein anderer Kontakt im Programm, Y1 genannt, verwendet den Status der Ausgangsspule direkt als Einschlusskontakt, sodass der Motorschütz auch nach dem Loslassen des „Start“-Druckknopfschalters weiterhin aktiviert wird.
    Sie können den normalerweise geschlossenen Kontakt X2 in einem farbigen Block sehen, der anzeigt, dass er sich in einem geschlossenen („elektrisch leitenden“) Zustand befindet.
    Wenn wir die „Start“-Taste drücken würden, würde Eingang X1 aktiviert und somit der X1-Kontakt im Programm „geschlossen“, wodurch „Strom“ an die Y1-„Spule“ gesendet, der Y1-Ausgang aktiviert und 120-Volt-Wechselstrom an die echte Motorschützspule angelegt würde.
    Der parallele Y1-Kontakt wird ebenfalls „geschlossen“, wodurch der „Schaltkreis“ in einem aktivierten Zustand gehalten wird:

    Wenn wir nun den „Start“-Druckknopf loslassen, kehrt der normalerweise offene X1-„Kontakt“ in seinen „offenen“ Zustand zurück, aber der Motor läuft weiter, da der Y1-Verschluss-„Kontakt“ weiterhin „Kontinuität“ zur „Strom“-Spule Y1 bietet und somit den Y1-Ausgang aktiviert hält:

    Um den Motor anzuhalten, müssen wir kurz den „Stop“-Druckknopf drücken, wodurch der X2-Eingang aktiviert und der normalerweise geschlossene „Kontakt“ „geöffnet“ wird, wodurch die Kontinuität zur Y1-„Spule“ unterbrochen wird:

    Wenn der „Stop“-Druckknopf losgelassen wird, wird Eingang X2 deaktiviert und „Kontakt“ X2 wird in seinen normalen, „geschlossenen“ Zustand zurückversetzt.
    Der Motor startet jedoch erst wieder, wenn der „Start“-Druckknopf betätigt wird, da die „Versiegelung“ von Y1 verloren gegangen ist:

    Ein wichtiger Punkt hier ist, dass ein ausfallsicheres Design in SPS-gesteuerten Systemen genauso wichtig ist wie in elektromechanischen, relaisgesteuerten Systemen.
    Man sollte immer die Auswirkungen einer fehlerhaften (offenen) Verkabelung auf das oder die gesteuerten Geräte berücksichtigen.
    In diesem Beispiel einer Motorsteuerungsschaltung haben wir ein Problem: Wenn die Eingangsverkabelung für X2 (den „Stopp“-Schalter) ausfallen würde, gäbe es keine Möglichkeit, den Motor anzuhalten!
    Die Lösung für dieses Problem ist eine Umkehrung der Logik zwischen dem X2-„Kontakt“ im SPS-Programm und dem eigentlichen „Stopp“-Druckknopfschalter:

    Wenn der normalerweise geschlossene „Stopp“-Druckknopfschalter nicht betätigt (nicht gedrückt) wird, wird der X2-Eingang der SPS aktiviert, wodurch der X2-„Kontakt“ im Programm „geschlossen“ wird.
    Dadurch kann der Motor gestartet werden, wenn Eingang X1 aktiviert ist, und er kann weiterlaufen, wenn der „Start“-Druckknopf nicht mehr gedrückt wird.
    Wenn der „Stop“-Druckknopf betätigt wird, wird Eingang X2 deaktiviert, wodurch der „Kontakt“ X2 im SPS-Programm „geöffnet“ und der Motor abgeschaltet wird.
    Wir sehen also, dass es zwischen diesem neuen Design und dem vorherigen Design keinen betrieblichen Unterschied gibt.
    Wenn jedoch die Eingangsverdrahtung am Eingang X2 nicht offen ist, wird Eingang X2 auf die gleiche Weise deaktiviert, wie wenn der „Stop“-Druckknopf gedrückt wird.
    Das Ergebnis eines Verdrahtungsfehlers am Eingang X2 ist also, dass der Motor sofort abgeschaltet wird.
    Dies ist ein sichereres Design als das zuvor gezeigte, bei dem ein Verdrahtungsfehler am „Stop“-Schalter dazu geführt hätte, dass der Motor nicht abgeschaltet werden konnte.
    Zusätzlich zu den Programmelementen für Eingang (X) und Ausgang (Y) bieten SPS „interne“ Spulen und Kontakte ohne intrinsische Verbindung zur Außenwelt.
    Diese werden ähnlich wie „Steuerrelais“ (CR1, CR2 usw.) in Standardrelaisschaltungen verwendet: um bei Bedarf eine logische Signalinversion bereitzustellen.
    Um zu demonstrieren, wie eines dieser „internen“ Relais verwendet werden könnte, betrachten Sie die folgende Beispielschaltung und das folgende Beispielprogramm, das die Funktion eines NAND-Gatters mit drei Eingängen emulieren soll.
    Da SPS-Programmelemente normalerweise aus einzelnen Buchstaben bestehen, werde ich das interne Steuerrelais „C1“ und nicht „CR1“ nennen, wie es in einer Relaissteuerschaltung üblich wäre:

    In dieser Schaltung bleibt die Lampe an, solange einer der Druckknöpfe unbetätigt (nicht gedrückt) bleibt.
    Um die Lampe auszuschalten, müssen wir alle drei Schalter betätigen (drücken), und zwar wie folgt:


    caixiaofeng
    Erweiterte SPS-Programmierung zur Sortierung defekter Teile, um zwischen guten und schlechten Teilen zu unterscheiden und diese dann über Förderbänder zu transportieren.
    Erweiterte SPS-Programmierung zur Sortierung defekter Teile
    Die folgende Simulation zeigt die Identifizierung guter und schlechter Produkte und die Sortierung der Produkte anhand ihrer Qualität mithilfe der SPS-Kontaktplanlogik.
    Die Förderbänder werden zum Transport der Produkte verwendet. Die Förderbänder werden gestartet und gestoppt, wenn die Produkte auf das Förderband geliefert werden und während des Bohrvorgangs.
    Die Bohrmaschine wird zum Bohren der Produkte gemäß der Konstruktion verwendet. Manchmal kann der Bohrvorgang die Produkte beschädigen.
    Ein Sensor erkennt die Qualität der Produkte und ein Schieber wird verwendet, um die schlechten Produkte in einen anderen Lagerbehälter zu schieben.

    SPS-Ein- und Ausgänge
    Die folgende Tabelle listet die erforderlichen Ein- und Ausgänge des SPS-Systems auf.
    Typ Gerätenr. Gerätename Betrieb Eingang X0 Bohren EIN während des Bohrens. Eingang X1 Teil wird gebohrt Ein Teil wird zugeführt, wenn Y0 eingeschaltet ist: Ein großer Metallwürfel. Eingang X2 Richtig gebohrt EIN, wenn das Teil richtig gebohrt ist. Das vorherige Ergebnis wird gelöscht, wenn das Bohren beginnt. Eingang X3 Falsch gebohrt EIN, wenn das Teil am linken Ende erkannt wird. Eingang X4 Sensor EIN, wenn das Teil am rechten Ende erkannt wird. Eingang X5 Sensor EIN, wenn das Teil vor dem Schieber erkannt wird. Eingang X10 Sensor EIN, wenn das Teil nicht richtig gebohrt ist. Das vorherige Ergebnis wird gelöscht, wenn das Bohren beginnt. Ausgabe Y0 Versorgungskommando Wenn Y1 eingeschaltet ist, bewegt sich das Förderband vorwärts. Ausgabe Y1 Förderband vorwärts Wenn Y3 eingeschaltet ist, bewegt sich das Förderband vorwärts. Ausgabe Y2 Beginnen Sie mit dem Bohren Beginnt mit dem Bohren, wenn Y2 eingeschaltet ist (ein Prozesszyklus, der nicht zwischendurch gestoppt werden kann). Ausgabe Y3 Förderband vorwärts Fährt aus, wenn Y5 eingeschaltet ist, und ein, wenn Y5 ausgeschaltet ist. Der Schieber kann nicht mitten im Hub angehalten werden. Ausgabe Y5 Pusher Fährt aus, wenn Y5 eingeschaltet ist, und ein, wenn Y5 ausgeschaltet ist. Der Schieber kann in der Mitte des Hubs nicht angehalten werden. Programmbeschreibung
    Dieses Projekt zielt darauf ab, mithilfe von Sensoren zwischen guten und defekten Teilen zu unterscheiden und sie entsprechend zu sortieren. Das Projekt besteht aus zwei Hauptbereichen: Gesamtsteuerung und Bohrsteuerung.
    Gesamtsteuerung
    Auf dem Bedienfeld befindet sich ein Druckknopf namens PB1 (X20). Wenn Sie PB1 drücken, löst dies den Befehl „Zufuhr“ (Y0) für den Trichter aus, wodurch dieser Teile zuführt. Wenn Sie PB1 loslassen, wird der Befehl „Zufuhr“ deaktiviert und der Trichter angehalten.
    Auf dem Bedienfeld befindet sich ein Schalter namens SW1 (X24). Wenn Sie SW1 einschalten, beginnen die Förderbänder, sich vorwärts zu bewegen. Wenn Sie SW1 ausschalten, werden die Förderbänder angehalten.
    Bohrsteuerung
    Besprechen wir nun die Steuerung des Bohrers:
    Wenn der Teil unter dem Bohrsensor (X1) im Bohrer aktiviert wird, hält das Förderband an.
    Der Bohrvorgang beginnt, wenn der Befehl „Bohrung starten“ (Y2) aktiviert wird. Es stoppt, wenn der Bohrsensor (X0) aktiviert wird.
    Nach einem vollständigen Bohrzyklus wird, wenn „Bohrung starten“ (Y2) aktiviert wird, entweder der Sensor „Richtig gebohrt“ (X2) oder „Falsch gebohrt“ (X3) ausgelöst.
    Beachten Sie, dass der Bohrer nicht mitten im Betrieb gestoppt werden kann. In dieser SPS-Simulation wird jedes dritte Teil als defekt betrachtet (ein Teil mit mehreren Löchern fällt ebenfalls in die Kategorie „defekt“).
    Wenn der Sensor „Teil erkennen“ (X10) im Schieber ein defektes Teil identifiziert, stoppt das Förderband und der Schieber bewegt das Teil auf das „Defekt“-Fach.
    Denken Sie daran, dass der Schieber vollständig ausgefahren wird, wenn der Betätigungsbefehl für ihn EIN ist. Wenn der Befehl AUS ist, fährt der Schieber vollständig ein.
    Ein Teil, das die Prüfung besteht, wird weiter auf dem Förderband zum „OK“-Fach am rechten Ende geführt.
    SPS-Programmierung


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