Jump to content

leizuofa

Staff group
  • Content Count

    198
  • Joined

  • Last visited

Everything posted by leizuofa

  1. Obwohl es so aussieht, als ob jedes SPS-Modell seinen eigenen, eigenwilligen Standard für die Programmierung hat, gibt es einen internationalen Standard für die Steuerungsprogrammierung, an den sich die meisten SPS-Hersteller zumindest zu halten versuchen. Dies ist der Standard IEC 61131-3, der als Standard gelten wird. Man sollte sich damit trösten, dass trotz der Unterschiede in den Details der SPS-Programmierung von einem Hersteller zum anderen und von einem Modell zum anderen die Grundprinzipien weitgehend gleich sind. Zwischen verschiedenen allgemeinen Programmiersprachen (z. B. C/C++, BASIC, FORTRAN, Pascal, Java, Ada usw.) bestehen viel größere Unterschiede als zwischen den von verschiedenen SPS unterstützten Programmiersprachen, und diese Tatsache hindert Computerprogrammierer nicht daran, „mehrsprachig“ zu sein. Ich habe persönlich Programme für über ein halbes Dutzend verschiedener Hersteller von SPS (Allen-Bradley, Siemens, Square D, Koyo, Fanuc, Moore Products APACS und QUADLOG sowie Modicon) geschrieben und/oder analysiert, mit mehreren SPS-Modellen innerhalb der meisten dieser Marken, und ich kann Ihnen sagen, dass die Unterschiede in den Programmierkonventionen weitgehend unbedeutend sind. Nachdem man gelernt hat, wie man ein SPS-Modell programmiert, ist es ziemlich einfach, sich an die Programmierung anderer Marken und Modelle von SPS anzupassen. SPS-Programmiersprachen Die Norm IEC 61131-3 spezifiziert fünf verschiedene Formen von Programmiersprachen für Industriesteuerungen: Kontaktplan (LD) Strukturierter Text (ST) Anweisungsliste (IL) Funktionsblockdiagramm (FBD) Sequenzielles Funktionsdiagramm (SFC) Nicht alle speicherprogrammierbaren Steuerungen unterstützen alle fünf Sprachtypen, aber fast alle unterstützen den Kontaktplan (LD), auf den sich dieses Buch hauptsächlich konzentrieren wird. Die Programmiersprachen für viele Industriegeräte sind konstruktionsbedingt begrenzt. Ein Grund dafür ist die Einfachheit: Jede Programmiersprache, deren Struktur so einfach ist, dass sie von jemandem ohne formale Programmierkenntnisse verstanden werden kann, ist in ihren Fähigkeiten begrenzt. Ein weiterer Grund für Programmierbeschränkungen ist die Sicherheit: Je flexibler und unbegrenzter eine Programmiersprache ist, desto größer ist das Potenzial, beim Programmieren unbeabsichtigt komplizierte „Laufzeitfehler“ zu verursachen. Der ISA-Sicherheitsstandard Nr. 84 klassifiziert industrielle Programmiersprachen entweder als feste Programmiersprachen (FPL), Sprachen mit begrenzter Variabilität (LVL) oder Sprachen mit voller Variabilität (FVL). Sowohl die Programmierung mit Kontaktplan als auch mit Funktionsblockdiagrammen gilt als Sprache mit „begrenzter Variabilität“, während die Anweisungsliste (und traditionelle Computerprogrammiersprachen wie C/C++, FORTRAN, BASIC usw.) als Sprachen mit „voller Variabilität“ mit dem damit verbundenen Potenzial für komplexe Fehler gilt.
  2. Im Gegensatz zu diskreten/digitalen (Ein/Aus) Schaltkreisen variieren analoge Signale über einen Spannungs- oder Strombereich. Wie würde sich die Verdrahtung ändern, wenn wir den Schalter durch einen Füllstandstransmitter ersetzen würden, wenn wir dasselbe Gefäß wie im Beispiel der digitalen Verdrahtung verwenden? Verdrahtungstechniken für analoge SPS-Signale Die folgende Abbildung zeigt dieselbe Leistungsschaltertafel, die jetzt jedoch eine Gleichstromversorgung versorgt. Die Stromversorgung könnte sich in einem eigenen Schrank oder im Rangierverteiler befinden. In jedem Fall wird der Gleichstrom im Rangierverteiler verteilt. Eine einzelne Sicherung könnte mehrere Schaltkreise versorgen, oder jeder Schaltkreis könnte abgesichert sein. Der Transmitter wird an seinem Pluspol mit +24 VDC versorgt. Das 4–20 mA-Stromsignal wird vom (-)-Anschluss des Transmitters zur SPS geleitet. Die Verkabelung ist verdrillt und geschirmt. Das Signalkabel ist mit der Transmitternummer nummeriert, und die Drähte im Inneren sind nummeriert, um Informationen zur Stromquelle bereitzustellen. Die Abschirmung wird im Rangierfeld abgeschlossen, wo alle Abschirmungen gesammelt und an einer Erdungsklemme angeschlossen werden, die vom Schrank isoliert ist. Hinweis: Es sollte darauf geachtet werden, dass die Abschirmung nur an einer Stelle geerdet wird. Abschirmungen, die an mehr als einer Stelle geerdet sind, können große Rauschspitzen in das Signal einspeisen. Dieser Zustand wird als Erdschleife bezeichnet und kann sehr schwer zu isolieren sein, da das Problem nur zeitweise auftritt. Eine „ruhige“ Erdung sollte verwendet werden, um alle Abschirmungen an einem Punkt zu erden. Eine ruhige Erdung ist entweder an eine dedizierte Erdungstriade oder an den Mittelabgriff eines Trenntransformators angeschlossen. Eine rauschende Erdung wäre eine, die physisch weit vom Transformator entfernt ist und Motoren, Lichter oder andere rauschende Gegenstände versorgt. Das ist der grundlegende analoge Zweidraht-Eingangsschaltkreis. Im Folgenden finden Sie einige spezifische Informationen zu den verschiedenen analogen Möglichkeiten: a. Schaltkreisschutz (Sicherung) Analoge Schaltkreise haben immer Niederspannung, normalerweise 24 VDC. Aus diesem Grund ist es nicht erforderlich, einzelne analoge Schaltkreise zum Schutz des Personals zu sichern. Außerdem verfügen die meisten analogen E/A-Module über integrierte Strombegrenzungsschaltkreise. Eine Sicherung ist zum Schutz der Module also im Allgemeinen nicht erforderlich. Wenn diese beiden Bedingungen erfüllt sind – und der Entwickler sollte dies beim Hersteller bestätigen –, kann auf eine punktweise Sicherung verzichtet werden, falls gewünscht. Wenn ein Entwickler Geld sparen möchte, indem er nicht jeden Punkt sichert, sollte er die Schaltungen in Schadensbegrenzungszonen gruppieren. Wenn es beispielsweise ein Pumpenpaar, eine Primär- und eine Ersatzschaltung gibt, sollten die Instrumente für beide in separaten Sicherungsgruppen angeordnet sein, um zu verhindern, dass eine einzige durchgebrannte Sicherung beide ausschaltet. Weitere Informationen finden Sie im Index unter „E/A-Partitionierung“. b. Störfestigkeit Analoge Schaltkreise sind anfällig für elektronisches Rauschen. Wenn beispielsweise ein analoges Kabel neben dem Hochspannungskabel eines Motors liegt, fungiert das analoge Signalkabel als Antenne und nimmt das magnetisch gekoppelte Rauschen auf, das vom Motor erzeugt wird. Es gibt noch andere Rauschquellen, wie z. B. die Hochfrequenzstrahlung (RF) eines Walkie-Talkies. Rauschen auf einem analogen Signalkabel kann zu Fehlern beim Ablesen des Signalwerts führen, was wiederum eine Vielzahl von Problemen im Steuerungssystem verursachen kann. Einige Möglichkeiten zur Rauschminderung sind: • Twisted-Pair-Kabel: Elektronisches Rauschen kann durch die Verwendung von Twisted-Pair-Kabeln stark reduziert werden. Die meisten Instrumente verwenden zwei Drähte zur Signalübertragung. Der Strom fließt in einem Draht zum Gerät und im anderen vom Gerät zurück. Wenn diese Drähte verdrillt sind, ist das induzierte Rauschen in jedem Draht nahezu gleich. Die Stärke des induzierten Stromflusses ist in jedem Leiter identisch, aber er fließt in entgegengesetzte Richtungen, wodurch der Großteil des Rauschens aufgehoben wird. • Abschirmung: Eine weitere Verbesserung der Rauschunterdrückung ist die Abschirmung, d. h. die Verwendung eines geerdeten Geflechts oder einer Folienabschirmung um die Leiter. Wie bereits erwähnt, sollte die Abschirmung nie an mehr als einer Stelle geerdet werden, um Erdschleifen zu vermeiden. Die meisten Gerätehersteller empfehlen, die Abschirmung am Feldgerät zu erden. Ein besserer Ort hierfür ist jedoch das Rangierfeld. Die Erdungen lassen sich leichter überprüfen und verwalten, wenn sie sich an einer Stelle befinden. Außerdem ist es möglich, an diesem Punkt eine gute Erdung sicherzustellen. • Leitung: Eine letzte Verbesserung der Rauschunterdrückung ist eine geerdete metallische Leitung. Dies ist selten erforderlich, außer bei Datenkommunikationskabeln und besonders kritischen Schaltkreisen. c. Widerstandstemperaturdetektor (RTD) Ein RTD besteht aus einem speziellen Stück Draht, dessen elektrischer Widerstand sich auf vorhersehbare Weise ändert, wenn der Draht unterschiedlichen Temperaturen ausgesetzt wird. Das Material der Wahl ist heute 100-Ohm-Platin, obwohl manchmal auch andere Arten wie 10-Ohm-Kupfer verwendet werden. Für den Platin-RTD gilt die Nennleistung für 100 Ohm bei 0ºC. Widerstandsänderungen mit der Temperatur sind sehr gering und verursachen Spannungsschwankungen im Millivoltbereich. RTDs sind an eine Wheatstone-Brückenschaltung angeschlossen, die auf den RTD abgestimmt ist. Diese Abstimmung erfolgt jedoch auf dem Prüfstand. Was ist mit der Feldumgebung? Wir haben bereits die Leitungsdämpfungsschwierigkeiten besprochen, die Millivoltsignalen innewohnen (Kapitel 4). Dieses Problem wird in der RTD-Schaltung durch die Verwendung von einem oder zwei Sensoreingängen überwunden. Diese Eingänge helfen, die Auswirkungen von Kupferverlusten aufgrund langer Leitungen und Temperaturschwankungen entlang dieser zu negieren und sind zusätzliche Drähte, die in das RTD-Kabel aufgenommen werden müssen, daher die Begriffe Dreidraht- und Vierdraht-RTDs. d. Thermoelement Wie wir besprochen haben, nutzt ein Thermoelement die elektromotorische Kraft (EMK), die durch Temperaturänderungen entsteht, die zwei ungleiche Metalle beeinflussen, die zusammen laminiert wurden. Diese EMF manifestiert sich als Millivolt-Signal (DC). Wenn bestimmte Kombinationen dieser ungleichen Metalle verbunden werden, ergibt sich eine vorhersagbare Kurve von Temperatur zu Spannung, wenn sich die Temperatur an der Verbindungsstelle ändert. Das Signal wird am offenen Ende der beiden Drähte gemessen und eine Millivolt-pro-Grad-Skala wird verwendet, um die Spannung in technische Einheiten umzurechnen. Ein Thermoelement ist also ein Zweidrahtgerät. Es ist anfällig für abgestrahltes und induziertes Rauschen und wird daher normalerweise in einem abgeschirmten Kabel untergebracht, wenn es über eine sehr lange Distanz verlängert wird. Das Thermoelementsignal ist auch anfällig für Verschlechterungen durch Leitungsverlust, daher ist es wünschenswert, die Kabellänge zu minimieren. Außerdem ist es wichtig, das richtige Verlängerungskabel zu verwenden. Ein Thermoelement wird normalerweise mit einer kurzen Pigtail-Verbindung geliefert, an die ein Verlängerungskabel angeschlossen werden muss. Wenn ein anderes Kabelmaterial, wie z. B. Kupfer, verwendet wird, um das Signal an die SPS zu verlängern, entsteht eine falsche „kalte Verbindung“, die eine umgekehrte elektromotorische Kraft verursacht, die das Signal teilweise aufhebt. Daher sollte das richtige Verlängerungskabel verwendet werden, oder es muss ein Gerät namens Kaltstellenkompensator oder Eispunktreferenz zwischen der Kupferverdrahtung und der Thermoelementverdrahtung installiert werden. Thermoelement-E/A-Module verfügen bereits über eine integrierte Kaltstellenkompensation, daher ist die Verwendung des richtigen Thermoelement-Verlängerungskabels erforderlich. Bestimmte Thermoelementtypen weisen unterschiedliche Temperatureigenschaften auf. Ein Thermoelement vom Typ J wird durch die Verbindung eines Eisendrahts mit einem Konstantandraht gebildet. Diese Konfiguration ergibt eine relativ lineare Kurve zwischen 0 und 750ºC.8 Ein Thermoelement vom Typ K besteht aus einem Nickel-Chrom-Draht, der mit einem Nickel-Aluminium-Draht verbunden ist, der manchmal auch Chromel/Alumel genannt wird. Das Thermoelement vom Typ K deckt einen nutzbaren Temperaturbereich von -200 bis 1250ºC ab. Andere Kombinationen ergeben andere Reaktionskurven. e. 0–10 Millivolt (mV) Analog Analogsignale wurden zuerst durch Spannungsmodulation erzeugt. Früher erzeugte ein Sender ein schwaches Signal, das erfasst und dann gefiltert und verstärkt werden musste, damit es zum Bewegen eines Stifts auf einem Schreiber oder einer Nadel auf einem Messgerät verwendet werden konnte. Die Achillesferse des Millivoltsignals ist seine Anfälligkeit für elektrisches Rauschen. Dieses Problem des Signal-Rausch-Verhältnisses wird mit der Kabellänge größer. Der Sender musste sich also in unmittelbarer Nähe des Anzeigegeräts oder Rekorders befinden. Heutzutage werden Millivoltsignale im Großen und Ganzen an Wandler weitergeleitet, die das kleine Signal in einen Strom oder in andere Medien (wie digitale Datenwerte) umwandeln, die weniger anfällig für Rauschen und Dezibelverluste (dB) sind, bevor sie die Nähe des Sensorelements verlassen. Einige Rekorder und Datenerfassungssysteme arbeiten jedoch immer noch mit dem Millivoltsignal. f. 4–20 Milliampere (mA) Analog Das Bestreben, die Leitungsdämpfungsmängel des Millivoltsignals zu überwinden, führte zur Entwicklung der 4–20 mA-Stromschleife. Aufgrund der stark verbesserten Leistung wurde diese Methode zur Übertragung analoger Signale schnell zum Industriestandard. Die meisten Feldinstrumente auf dem Markt haben ein Sensorelement (Sensor) und ein Übertragungselement. Der Sender ist auf den Sensor abgestimmt, der jede Art von Signal von frequenzmoduliertem Analogsignal bis zu Millivolt-Gleichstrom liefern kann. Unabhängig von der Signalform interpretiert der Sender es und wandelt es in einen Ausgangsstrom zwischen 4 und 20 mA um, der innerhalb dieses Bereichs in der Größe proportional zum Eingang ist. Der Prozess der Abstimmung des Ausgangs auf den Eingang wird als Skalierung bezeichnet. Somit wird der Sender zu einer sogenannten variablen Stromquelle. So wie eine Batterie als Spannungsquelle versucht, eine konstante Spannung aufrechtzuerhalten, unabhängig von der Menge der angelegten Last, versucht die Stromquelle, einen konstanten Strom (für ein gegebenes Eingangssignal) aufrechtzuerhalten, unabhängig von der Last. Da der Strom an allen Punkten eines Reihenschaltkreises gleich ist, wird das Problem der Kabellänge – wie bereits als Problem mit dem Millivoltsignal erwähnt – aufgehoben. Natürlich kann die Fähigkeit des Geräts, einen konstanten Strom durch einen Schaltkreis zu zwingen, überwunden werden, wenn genügend Last angelegt wird. Daher muss der Entwickler wissen, wie viel Energie die Stromquelle erzeugen kann. Im Allgemeinen können heutige Instrumente 20 mA bei einem Stromkreiswiderstand von 1000 Ohm aufrechterhalten. Da ein typisches Instrument nicht mehr als 250 Ohm Eingangswiderstand hat, ist es möglich, mehrere Instrumente von einer einzigen Stromquelle aus zu versorgen, ohne dass ein Isolator erforderlich ist. Beispielsweise sollte ein einzelner Sender in der Lage sein, sein Signal an eine SPS, einen Diagrammschreiber und einen Summierer zu einem Preis von 750 Ohm zuzüglich des Leitungswiderstands zu übermitteln. Dies sollte immer noch im Komfortbereich eines typischen Senders liegen. Hinweis: Es gibt immer noch Instrumente mit 600 Ohm-Bewertungen auf dem Markt, daher sollte der Entwickler immer prüfen, wann immer ein komplexer Stromkreis in Betracht gezogen wird. Um die dem Stromkreis zur Verfügung stehende Energie zu bestimmen, muss der Entwickler in der Lage sein, den Anbieter dieser Energie zu identifizieren. Diese Aufgabe ist manchmal nicht so einfach, wie sie erscheinen mag, und die Antwort auf die Frage hat große Auswirkungen auf die Verdrahtung des Stromkreises. Es gibt zwei Haupttypen analoger Stromkreise, wie aus der Sicht des Senders beschrieben. Transmitter mit zwei Drähten gelten als passive Geräte, die Strom aufnehmen, während Transmitter mit vier Drähten aktive Geräte sind, die Strom liefern. Die folgende Abbildung zeigt drei Temperaturtransmitter, die jeweils an unterschiedliche E/A-Punkte auf demselben SPS-Modul angeschlossen sind. Ein Transmitter wird direkt mit Strom versorgt (d. h. vier Drähte), während die anderen indirekt mit Strom versorgt werden (d. h. zwei Drähte). Jeder Transmitter ist an ein Steuergerät angeschlossen – in diesem Fall an einen SPS-Eingang. Aus Sicht der SPS sind alle 4–20 mA-Stromeingänge eigentlich Spannungseingänge. Widerstände, entweder vom Benutzer bereitgestellte externe, wie hier gezeigt, oder interne, werden verwendet, um den Strom in eine Spannung umzuwandeln. Die Computerpunkte selbst sind eigentlich hochohmige Voltmeter, die ihnen eine hervorragende Isolierung von den Feldgeräten bieten und die zusätzliche Belastung des Eingangskreises minimieren. Die E/A-Punkte auf der SPS werden mit interner Stromversorgung für jeden Punkt angezeigt, sodass das Modul die Spannungsquelle für die Schleife sein kann. Nachfolgend finden Sie eine detaillierte Erläuterung der Unterschiede zwischen Zweidraht- und Vierdrahtgeräten: 1. Vierdrahtschaltung Wie unten zu sehen ist, ist ein Vierdrahtsender ein Sender, der die Energie liefert, um die Schleife mit Strom zu versorgen und das strommodulierte Signal zu erzeugen. Die meisten Füllstandssender sind beispielsweise Vierdrahtgeräte. Vierdrahtgeräte haben immer zusätzlich zu den Signalanschlüssen Stromanschlüsse. Doch nicht alle derartigen mit Strom versorgten Sender sind Vierdrahtgeräte. Wenn der Ausgang eines mit Strom versorgten Senders als passiv gekennzeichnet ist, kann das Gerät vom Standpunkt des Signalkreises aus als Zweidrahtgerät behandelt werden. Die meisten Aufzeichnungsgeräte werden extern mit Strom versorgt, sind aber im Stromkreis passiv. In diesen Fällen ist die externe Stromversorgung nur für die interne Elektronik des Geräts bestimmt. Der Signalkreis ist von dieser Stromquelle isoliert. Beachten Sie, dass der im unteren Stromkreis gezeigte Rekorder ein mit Strom versorgtes, passives Gerät ist. 2. Zweidrahtschaltung Ein Zweidrahtgerät wird als schleifengespeist bezeichnet. Das heißt, das Gerät funktioniert, indem es die Energie absorbiert, die es zum Generieren des Signals aus der Stromschleife benötigt. Dies wird auch als „Stromsenke“ bezeichnet. Diese Nomenklatur kann etwas verwirrend sein, da ein stromsenkender Sender immer noch die Signalquelle für den Schaltkreis ist. Die Stromversorgung für die Stromschleife erfolgt woanders. Ein als Zweidrahtsender klassifizierter Sender muss in Bezug auf den Stromfluss normalerweise das erste Gerät im Schaltkreis sein. Mit anderen Worten muss der Pluspol des Senders direkt mit dem Pluspol der Spannungsquelle verbunden sein. Die Spannungsquelle ist normalerweise eine 24-VDC-Stromversorgung. (a) Zweidrahtstromkreise mit eigenständiger Stromversorgung In Bezug auf die obige Abbildung zeigt SPS-E/A-Punkt 2 einen Zweidrahtstromkreis mit einer externen Gleichstromversorgung. Beachten Sie, dass die Drähte (polaritätsmäßig) an der SPS gerollt werden müssen, damit die richtige Polarität über den E/A-Punkt vorhanden ist. Das liegt daran, dass der Stromfluss im Vergleich zum vorherigen Beispiel nun umgekehrt ist, da der Sender die erste Last in der Schleife werden muss und nicht die Energiequelle für die Schleife sein darf. (b) Zweidrahtschaltungen mit interner SPS-Stromversorgung Die meisten heutigen SPS-Systeme können den Schleifenstrom selbst erzeugen, indem sie einfach den Pluspol des Senders mit einem anderen Anschluss an der SPS verbinden. Der Minuspol des Senders wird dann mit der Plusseite des E/A-Punkts verbunden und die Minusseite des E/A-Punkts wird mit dem DC-Masseanschluss des SPS-Systems überbrückt. Dies ist im Beispiel E/A-Punkt 3 dargestellt. In diesem Beispiel wurde der Schleife ein Rekorder hinzugefügt.
  3. 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.
  4. 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.
  5. Dies ist ein SPS-Programm zur Ein-/Ausfahrtskontrolle von Parkplätzen in Kellern oder unterirdischen Anlagen. SPS-Parkplatz Problembeschreibung Aufgrund der Überfüllung von Bereichen haben wir mit vielen Problemen beim Parken von Fahrzeugen in Kellern oder unterirdischen Anlagen von Einkaufszentren, Hotels, Komplexen usw. zu kämpfen. Dies geschieht aufgrund des Widerspruchs zwischen der schnell wachsenden Anzahl von Fahrzeugen und begrenzten Parkmöglichkeiten in Einkaufszentren, Geschäften und Komplexen in Städten, was zu dem Phänomen des „schwierigen Parkens und ungeordneten Parkens“ führt. Das aktuelle Parkproblem hat schwerwiegende Auswirkungen auf die Lebensqualität der Menschen und den Straßenverkehr. Problemdiagramm Problemlösung Durch einfache Automatisierung können wir das Parkproblem in Kellern oder unterirdischen Anlagen von Einkaufszentren, Hotels, Komplexen usw. reduzieren. Die Ein-/Ausfahrt in Kellern ist eine einspurige Passage und benötigt Ampeln zur Kontrolle der Autos. Hier betrachten wir zwei Lichtanzeigen zur Kontrolle der Autos. Rote Ampeln verhindern das Ein- und Ausfahren von Autos, während grüne Ampeln das Ein- und Ausfahren von Autos erlauben. Wenn ein Auto vom Eingang im Erdgeschoss in den Durchgang einfährt, leuchten beide roten Ampeln (Erdgeschoss und Keller). Andere Autos dürfen während des Vorgangs nicht ein- und ausfahren, bis das Auto den einzigen Durchgang passiert hat. Wenn der Durchgang frei ist, leuchten beide grünen Ampeln (Erdgeschoss und Keller) und andere Autos können vom Erdgeschoss oder Keller aus einfahren. Zunächst lassen wir die grünen Lichter AN und die roten Lichter AUS Liste der Ein- und Ausgänge Eingabeliste Hauptschalter: I0.0 Sensor S1 für Eingang/Ausgang Erdgeschoss: I0.1 Sensor S2 für Eingang/Ausgang Keller: I0.2 Ausgabeliste Grünes Licht (Eingang/Ausgang Erdgeschoss): Q0.0 Grünes Licht (Eingang/Ausgang Keller): Q0.1 Rotes Licht (Eingang/Ausgang Erdgeschoss): Q0.2 Rotes Licht (Eingang/Ausgang Keller): Q0.3 M-Speicherspulenliste M10.0: Wird AN sein, wenn ein Auto Sensor S1 passiert M10.3: Wird AN sein, wenn ein Auto Sensor S2 passiert M0.0: Positive Flanke des Systems AN M0.1 & M11.0: Positive Flanke des Sensors S1 M0.3 & M11.1: Positive Flanke des Sensors S2 M11.2: Negative Flanke von Sensor S2 M11.3: Negative Flanke von Sensor S1 SPS-Kontaktplan für Ein-/Ausfahrtskontrolle von Parkplätzen Programmbeschreibung In dieser Anwendung haben wir zur Programmierung die Siemens S7-300 SPS und die TIA Portal-Software verwendet. Netzwerk 1: Gemäß der obigen Erklärung im ersten Netzwerk leuchten zunächst beide grünen Lichter (Erdgeschoss (Q0.0) und Keller (Q0.1)), wenn das System eingeschaltet ist (I0.0). Der SET-Befehl wird ausgeführt und setzt sowohl den Ausgang Q0.0 als auch den Ausgang Q0.1. Netzwerk 2: Gemäß obiger Erklärung im zweiten Netzwerk sind, wenn das System eingeschaltet ist (I0.0), zunächst beide roten Lichter (Erdgeschoss (Q0.2) und Kellergeschoss (Q0.3)) AUS.) Der RESET-Befehl wird ausgeführt und setzt sowohl den Ausgang Q0.2 als auch den Ausgang Q0.3 zurück. Netzwerk 3: Wenn ein Auto vom Erdgeschoss in den leeren Durchgang einfährt, wird Sensor S1 (I0.1) ausgelöst und mit diesem Auslöser wird die Speicherspule M10.0 GESETZT. Netzwerk 4: Wenn ein Auto vom Keller in den leeren Durchgang einfährt, wird Sensor S2 (I0.2) ausgelöst und mit diesem Auslöser wird die Speicherspule M10.3 GESETZT. Netzwerk 5: Beide roten Lichter werden entweder durch einen positiven Trigger des Sensors S1 oder des Sensors S2 gesetzt. Denn wenn ein Auto in eine leere Passage einfährt, verhindern beide roten Lichter (Q0.2 & Q0.3) das Ein-/Ausfahren von Autos auf beiden Seiten. Netzwerk 6: Hier haben wir einen negativen Trigger der beiden Sensoren S1 (I0.1) und S2 (I0.2) genommen. Wenn sie also ausgelöst werden, sind die roten Lichter (Q0.2 & Q0.3) AUS. Wenn ein Auto die leere Passage vollständig passiert, sollten die roten Lichter (Q0.2 & Q0.3) AUS sein. Netzwerk 7: In diesem Netzwerk sind die grünen Lichter (Q0.0 & Q0.1) EIN, wenn die roten Lichter AUS sind. Die grünen Lichter (Q0.0 & Q0.1) ermöglichen anderen Autos das Ein- oder Ausfahren. Netzwerk 8: Wenn die roten Lichter (Q0.2 & Q0.3) zu diesem Zeitpunkt EIN sind, sollten die grünen Lichter (Q0.0 & Q0.1) AUS sein. Wenn in diesem Netzwerk also die roten Lichter (Q0.2 & Q0.3) zu diesem Zeitpunkt EIN sind, wird der Reset-Befehl ausgeführt und die grünen Lichter (Q0.0 & Q0.1) werden AUS sein. Netzwerk 9: Wenn der System-Ein-Schalter (I0.0) AUS ist, sollten alle Speicher 0 sein. Hier haben wir den MOVE-Befehl verwendet, um Nullen in allen Speichern (MB0, QB0 und MB10) zu verschieben. Dieses Beispiel dient nur der Konzepterklärung, nicht alle Parameter werden in diesem Beispiel berücksichtigt (wie Türöffnungs-/Schließsystem, Alarme usw.) Ergebnis Hinweis: Die obige SPS-Logik liefert eine grundlegende Idee zur Anwendung von SPS bei der Parksteuerung von Ein-/Ausgangstoren. Die Logik ist begrenzt und stellt keine vollständige Anwendung dar.
  6. Dies ist ein SPS-Programm zum Implementieren eines Programms zum Zählen von Objekten auf dem bewegten Förderband. Zählen bewegter Objekte auf dem Förderband Objekte bewegen sich auf dem Förderband. Wir müssen die Gesamtzahl der am Ende des Förderbands gesammelten Objekte zählen und auf dem lokalen Bedienfeld anzeigen. Schreiben Sie ein SPS-Programm für diese Anwendung. Problemdiagramm Problemlösung Hier verwenden wir ein SPS-Kontaktplanprogramm, um diese Logik zu implementieren. Meistens werden Näherungssensoren zum Erkennen der Objekte verwendet. Hier montieren wir Näherungssensoren, um die sich auf dem Förderband bewegenden Teile oder Objekte zu erkennen. Induktive Sensoren werden hauptsächlich zum Erkennen von Metallobjekten verwendet. Für andere Objekttypen verwenden wir kapazitive Näherungssensoren zum Erkennen der sich auf dem Förderband bewegenden Objekte. Wir verbinden diesen Sensor mit der SPS und zählen mithilfe der Zählerlogik die Anzahl der Objekte und zeigen die Gesamtzahl auf dem lokalen Bedienfelddisplay an. Hier verwenden wir einen Aufwärtszähler zum Zählen der am Ende des Förderbands gesammelten Objekte. Hinweis: Hier haben wir eine einfache Anwendung zum Zählen von Objekten betrachtet. Wir haben einen Näherungssensor zum Erkennen der Objekte betrachtet. Der Näherungssensor erkennt das Objekt und der PLC-UP-Zähler zählt die gesammelten Objekte. Liste der Ein- und Ausgänge Digitale Eingänge Start: I0.0 Stopp: I0.1 Näherung: I0.2 (Objekterkennung) Zähler zurücksetzen PB: I0.3 Digitaler Ausgang Zyklus EIN: Q0.0 M-Speicher Zähler zurücksetzen: M0.1 Gesamtzahl gesammelter Objekte: MW10 PLC-Kontaktplanlogik zum Zählen von Objekten auf dem Förderband Erklärung der Kontaktplanlogik Für diese Anwendung verwenden wir S7-300 PLC und TIA-Portalsoftware zum Programmieren. Wir können diese Logik auch mit anderen PLCs implementieren. Netzwerk 1: Im ersten Netzwerk haben wir einen Verriegelungskreis für Zyklus EIN verwendet. Hier haben wir START PB (I0.0) verwendet, um den Zyklus zu starten, und STOP PB (I0.1), um den Zyklus zu stoppen. Netzwerk 2: Der PLC-Zählerbefehl wird verwendet, um die Anzahl der Objekte zu zählen. Näherungssensoren sind in der Nähe des Förderbands angebracht. Wenn sich ein Objekt dem Näherungssensor (I0.2) nähert, erkennt dieser das Objekt und der Ausgang des Sensors wird aktiviert oder wechselt in den EIN-Zustand. Wenn sich kein Objekt in der Nähe des Näherungssensors befindet, wird der Ausgang des Sensors deaktiviert oder wechselt in den AUS-Zustand. Der PLC-Zähler zählt inkrementell. Die Gesamtzahl der gezählten Objekte wird im Speicherwort oder Register (MW10) gespeichert. Hinweis: Die obige Anwendung kann von der tatsächlichen Anwendung abweichen. Dieses Beispiel dient nur zu Erklärungszwecken. Wir können diese Logik auch in anderen PLCs implementieren. Dies ist das einfache Konzept des AUFWÄRTS-Zählers. Mit diesem Konzept können wir Objekte zählen, die sich auf dem Förderband bewegen, oder jede andere Zählanwendung. Diese Logik ist nur ein Teil oder nur für eine bestimmte Anwendungslogik. Alle im Beispiel berücksichtigten Parameter dienen nur zu Erklärungszwecken. In tatsächlichen Anwendungen können die Parameter anders sein. Ergebnis
  7. leizuofa

    SPS-Eingabe-/Ausgabemodule

    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.
  8. 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!
  9. Wenn Sie in einem industriellen Automatisierungssystem für die SPS-Programmierung arbeiten, haben Sie Anforderungen, bei denen Sie einen Prozess schrittweise oder schrittweise steuern müssen. Steuerungsalgorithmen Sie können eine Logik nicht einfach direkt ein- oder ausschalten, um Ihre Arbeit zu erledigen. Dies kann sich nachteilig auf Ihre tatsächliche SPS-Ausgabe auswirken. Aus diesem Grund stehen in einem SPS-Programm verschiedene Arten von Steuerungsmethoden für entsprechende Aktionen zur Verfügung. In diesem Beitrag werden wir die verschiedenen Steuerungsalgorithmusmethoden sehen, die in einem SPS-Programm verwendet werden. PID-Steuerung Dies ist bei weitem die bekannteste Steuerungsmethode. PID verwendet einen geschlossenen Regelkreismechanismus zur Steuerung. Dies bedeutet, dass es zuerst das Feedback erhält und basierend auf Ihren Wünschen die Ausgabe entsprechend variiert. Dafür verwendet der PID-Regler interne mathematische Berechnungen mit drei Parametern – Proportion, Integral und Ableitung. Wenn Sie also einen Kühler mit einem Kompressor steuern möchten, steuert die SPS die Kompressorleistung, indem sie zuerst die tatsächliche Temperatur misst und sie mit der vom Benutzer benötigten Temperatur vergleicht. Basierend auf dieser Differenz wird die Kompressorleistung jedes Mal entweder schrittweise gesteuert oder ein- und ausgeschaltet, um die Temperatur aufrechtzuerhalten. Zu diesem Zweck wird im SPS-Programm ein PID-Block verwendet. Funktionsgenerator Dies ist eine sehr einfache Art der Steuerungsmethode. Im Funktionsgenerator müssen Sie eine Eingabetabelle mit n Werten definieren. Definieren Sie auf ähnliche Weise eine Ausgabetabelle mit n Werten. Wenn wir also beispielsweise 10 Wertetabellen sowohl auf der Eingabe- als auch auf der Ausgabeseite definieren, haben wir ein Element der Größe 10. Nun haben diese 10 Elemente unterschiedliche Werte. Wenn Sie auf der Eingabeseite 0-100 einstellen, haben wir auf der Ausgabeseite 0-50 eingestellt. Diese 10 Elemente sind 10 Bereiche, also 0-10, 10-20, 20-30 usw. Dementsprechend wird die Ausgabeseite in 10 Elemente von 0-5, 5-10, 10-15 und so weiter bis 50 aufgeteilt. Wenn eine Echtzeiteingabe zwischen einem beliebigen Wert auf der Eingabeseite liegt, wird die entsprechende skalierte Ausgabe weitergegeben. Hier haben Sie volle Flexibilität, die Werte der Eingabe- und Ausgabetabelle festzulegen. Fuzzy-Logik-Steuerung Fuzzy-Logik ist eine relativ gute Methode zur Steuerung einer Ausgabe. Normalerweise haben Sie zwei binäre Zustände – 0 und 1. Betrachten wir also, ob ein Ventil geöffnet oder geschlossen werden kann. Aber was ist, wenn das Ventil dazwischen feststeckt? Wir wissen nicht, ob sich das Ventil in der Nähe des offenen oder geschlossenen Zustands befindet. In diesem Fall hilft es, wenn ein Zustand zwischen 0 und 1 vorliegt. Dies hilft, einer Möglichkeit zumindest näher zu kommen. Dies wird als Fuzzy-Logik bezeichnet. Hier können Sie Werte in der Nähe von 0 und 1 definieren. Es kann beispielsweise 0,9 oder 0,2 sein. Dementsprechend können Sie die Ausgaben steuern, wenn sie sich diesen Werten nähern. Und wenn der äußerste Grenzwert erreicht ist, also 0 oder 1, können Sie das Ventil vollständig öffnen oder schließen. Davor können Sie die Ventile schrittweise betätigen. Dies ermöglicht eine präzisere Steuerung des Prozesses. Dieser Steuerblock ermöglicht also eine Sammlung von Werten, die in unvorhersehbaren Situationen nützlich sein können. Es erfordert viel Wissen und Fachkenntnisse, um die Werte und Einstellungen richtig einzustellen, damit die Logik richtig funktioniert. Positionsproportional Diese Logik öffnet oder schließt ein Gerät, indem sie Kontakte mit einem vom Benutzer festgelegten vordefinierten Timer pulsierend öffnet oder schließt. Dies geschieht für eine Impulsbreite, die proportional zur Abweichung zwischen der erforderlichen Position und der aktuellen Position ist. Sie müssen Steuerparameter festlegen, z. B. wie viel Minimum und Maximum die Ausgabe begrenzt werden soll, wie lange welche Ausgabe eingeschaltet bleiben soll, mit welcher Rate das Gerät in %/Sekunde öffnen oder schließen soll usw. Der Funktionsblock nimmt tatsächliches Feedback entgegen, wertet interne Timer aus und prüft, ob das Öffnen oder Schließen innerhalb der gewünschten Rate erfolgt oder nicht. Wenn nicht, wird der entsprechende Öffnungs- oder Schließimpuls ausgegeben. Auf diese Weise haben wir die verschiedenen Methoden der Steuerungsalgorithmen kennengelernt, die bei der SPS-Programmierung verwendet werden.
  10. 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.
  11. leizuofa

    Grundlagen der SPS-Programmierung

    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:
  12. Las instrucciones de comparación en PLC se utilizan para probar pares de valores para condicionar la continuidad lógica de un renglón. Por lo tanto, las instrucciones de comparación rara vez, o nunca, serían la última instrucción en un escalón. Tipos de instrucciones de comparación Como ejemplo, supongamos que una instrucción LES se presenta con dos valores. Si el primer valor es menor que el segundo, entonces la instrucción de comparación es verdadera. Instrucción igual (EQU) Utilice la instrucción EQU para probar si dos valores son iguales. Si la fuente A y la fuente B son iguales, la instrucción es lógicamente verdadera. Si estos valores no son iguales, la instrucción es lógicamente falsa. La fuente A debe ser una dirección. La fuente B puede ser una constante de programa o una dirección. Los valores se almacenan en forma complementaria de dos. Instrucción No Igual (NEQ) Utilice la instrucción NEQ para probar si dos valores no son iguales. Si la fuente A y la fuente B no son iguales, la instrucción es lógicamente verdadera. La fuente A debe ser una dirección. La fuente B puede ser una constante de programa o una dirección. Los valores se almacenan en forma complementaria de dos. Instrucción menor que (LES) Utilice la instrucción LES para probar si un valor (fuente A) es menor que otro (fuente B). Si la fuente A es menor que el valor en la fuente B, la instrucción es lógicamente verdadera. La fuente A debe ser una dirección. La fuente B puede ser una constante de programa o una dirección. Los valores se almacenan en forma complementaria de dos. Instrucción menor o igual (LEQ) Utilice la instrucción LEQ para probar si un valor (fuente A) es menor o igual que otro (fuente B). Si el valor en la fuente A es menor o igual que el valor en la fuente B, la instrucción es lógicamente verdadera. La fuente A debe ser una dirección. La fuente B puede ser una constante de programa o una dirección. Los valores se almacenan en forma complementaria de dos. Instrucción mayor que (GRT) Utilice la instrucción GRT para probar si un valor (fuente A) es mayor que otro (fuente B). Si el valor en la fuente A es mayor que el valor en la fuente B, la instrucción es lógicamente verdadera. Instrucción mayor o igual (GEQ) Utilice la instrucción GEQ para probar si un valor (fuente A) es mayor o igual que otro (fuente B). Si el valor en la fuente A es mayor o igual que el valor en la fuente B, la instrucción es lógicamente verdadera. Comparación enmascarada para igualdad (MEQ) Utilice la instrucción MEQ para comparar datos en una dirección de origen con datos en una dirección de comparación. El uso de esta instrucción permite enmascarar partes de los datos mediante una palabra separada. La fuente es la dirección del valor que desea comparar. Máscara es la dirección de la máscara a través de la cual la instrucción mueve datos. La máscara puede ser un valor hexadecimal. Comparar es un valor entero o la dirección de la referencia. Si los 16 bits de datos en la dirección de origen son iguales a los 16 bits de datos en la dirección de comparación (menos bits enmascarados), la instrucción es verdadera. La instrucción se vuelve falsa tan pronto como detecta una discrepancia. Instrucción de prueba de límite (LIM) Utilice la instrucción LIM para probar valores dentro o fuera de un rango específico, dependiendo de cómo establezca los límites. Los valores de límite inferior, prueba y límite superior pueden ser direcciones de palabra o constantes, restringidas a las siguientes combinaciones: Si el parámetro de prueba es una constante del programa, tanto el parámetro de límite bajo como el de límite alto deben ser direcciones de palabra. Si el parámetro de prueba es una dirección de palabra, los parámetros de límite bajo y límite alto pueden ser una constante de programa o una dirección de palabra. Estado verdadero/falso de la instrucción LIM Si el límite inferior tiene un valor igual o menor que el límite superior, la instrucción es verdadera cuando el valor de prueba está entre los límites o es igual a cualquiera de los límites. Si el límite bajo tiene un valor mayor que el límite alto, la instrucción es falsa cuando el valor de prueba está entre los límites.
  13. In previous articles we discussed different types of Blocks in SIEMENS TIA Portal, we talked about function blocks FBs, functions FCs, and data blocks DBs. In this article we will take about another type of block in SIEMENS PLCs, these are the organization blocks, and in this article, we will discuss the most important organization block of them all, which is the Main Organization Block or OB1. Contents: What are organization blocks? Different types of OBs. What is OB1? Cycle time monitoring. Simple program example. Conclusion. What is an Organization Block (OB)? Organization blocks, you can think of them as functions FCs or function blocks FBs. But the difference is, you don’t call them, the operating system of the PLC calls these organization blocks, whether the operating system calls the OB cyclically as OB1 or whether it gets called when a certain event occurs, either way, the operating system takes care of it. You only need to create the block and add whatever logic you want inside the block. Sometimes you don’t even need to add any code inside the OB, just creating the OB itself can provide many benefits, which we will see when discussing some of those OBs. Organization blocks are the interface between the PLC operating system and the user program. Any PLC will have two different programs, the runtime program which is the operating system of the PLC, and the user program which is the logic or code that the PLC programmer will write to control a certain process. This two different software need to talk with each other, and the organization blocks OBs are how that is done. Organization blocks OBs are used to perform a lot of tasks, some of which are listed below: Startup characteristics of the automation system Cyclic program processing Interrupt-driven program execution Error handling. Different Types of Organization Blocks As organization blocks are basically the tools of the operating system to perform a lot of tasks. Different tasks require different OB, and that is why you have many different OBs inside a PLC, how many different OBs will depend on the type of PLC you are using, but here are some of the most common OBs you can find in almost all of SIEMENS PLC: Main Cyclic OB1. Time interrupts OBs. Time of day OBs. Software errors OBs. Hardware errors OBs Many more Organization blocks are available for use with your logic. See picture 1. Picture 1 – Different Organization Blocks available in TIA Portal In this article, we will discuss the most important organization block of them all, which is the Main Cyclic Interrupt OB1. Main Cyclic Interrupt OB1 The main cyclic OB1 is the organization block which is responsible for cyclically executing your logic by the PLC. Whenever you create a new project and add a PLC, the Main OB1 will be automatically created by the software. These are the minimum needed blocks for a PLC code. See picture 2. Picture 2 – Main OB1 is created automatically Inside this Main OB1, you can either write your whole PLC program if it is a small project. If your project is quite large, then you probably have some functions FCs of function blocks FBs that you need to execute. In that case, you will use the Main OB1 to call them. Off course, you don’t have to call every FC or FB by the OB1, but if your OB1 is not the first block of your nesting calls, then it will not be executed. See picture 3. 146- Picture 3 – Calling your blocks by OB1 The essential basis of your PLC code is the cyclic behavior, meaning you need your code to be executed continuously. When the processing of your logic has been completed, the operating system starts processing it again. That is done through the use of the main OB1, you put and call all of your logic and code inside this OB1 and the operating system will make sure to continuously execute it. You should know that, even if you can’t create an OB1 block as it is automatically created when adding a new PLC, you can create more than one cyclic interrupt block. OB1 is a cyclic interrupt, that the operating system will automatically and continuously call and executed whatever logic is inside. However, for large PLC projects where you have so many functions and function blocks in your PLC logic, you can use more than one cyclic interrupt OB to better structure your code to make it easy to read and follow. In that case, you would create another cyclic interrupt, see picture 4. Picture 4 – Creating more than one cyclic OB When you have created several program cycle OBs, these are called one after the other in the order of their OB numbers. The program cycle OB with the lowest OB number is called first. See picture 5. Picture 5 – Program cycle with more than one cyclic OB After the cyclic program is complete, the operating system updates the process images as follows: It writes the values from the process image output to the output modules. It reads the inputs at the input modules and transfers these to the process image input. The previous two steps plus the execution of the PLC program are called a scan cycle. See picture 6. Picture 6 – Scan cycle of a Siemens PLC Cycle Time Monitoring Cycle time refers to the runtime of the cyclic program, including the runtime of all nested program parts like FCs, FBs, and higher-priority OBs. If you have created several program cycle OBs, each program cycle OB contributes to the cycle time. The operating system monitors whether the cycle time remains smaller than the configured maximum cycle time. If it exceeds the maximum cycle time, PLC will either go to STOP mode or call OB80 depending on your programming. Apart from monitoring the maximum cycle time, it is also possible to guarantee a minimum cycle time. To do this, the operating system delays the start of a new cycle until the minimum cycle time has been reached. You can configure the minimum and maximum cycle time in the configuration properties of your PLC. See picture 7. Picture 7 – Configure the minimum and maximum cycle time Simple Program Example in PLC Picture 8 – PLC Program Example To better understand the PLC program cycle and OB1 execution, let’s create a simple program. This program will use an add instruction that will accumulate a value of 1 into a memory area each 1 scan cycle. See the following simulation. As you see from the animation, the add instruction is being executed very fast; this is how fast the scan cycle is. It will depend on how powerful your PLC is. But mainly the scan cycle is in the range of milliseconds. Conclusion Organization blocks are the interface between the PLC operating system and your control program. Main Cyclic OB1 is cyclically executed by the operating system. You will execute your logic by including it inside one or more Cyclic OBs. The scan cycle time is the time used to execute your logic 1 time.
  14. Controlling a process in any machine or system has always been a fantasy for engineers. Thanks to the advent of technology, many controllers have been developed to control a process flexibly and reliably. With controllers, there are two general types that are widely used in many processes, from small scale to large scale. They are microcontrollers and PLCs. They can do every operation, ranging from small calculations to complex algorithms, logic performance, and data processing. This makes the task easier by automating the process. In this post, we will see the difference between microcontroller and PLC. What is a Microcontroller? Let us understand the basics first. You have one push button and one lamp. You are asked to turn the lamp on after 5 seconds of pressing the push button. From these, what do we require to execute this task? You will require one input (push button), one output (lamp), one controller to execute this task (processor type), one power supply to power the circuits, and one memory to store this logic and the status of inputs and outputs. This, when combined in a single package, makes a microcontroller. In short, a microcontroller is a type of small computer that takes physical inputs, processes the logic according to them, and turns on or off the physical outputs. It is a small chip-type device that embeds all these circuits in it, like a small package, and does all the processing and controlling work. A microcontroller will handle a small number of inputs and outputs. For example, consider a small display circuit like LED or LCD mounted on a handheld device. If you press a push button on it, it will display the corresponding number on the display. And when you press another push button, it will show some other number written according to the logic inside the processor. This means it was first programmed to show a number, and then by pressing the second button, a calculated number would be shown. All these calculations, storage handling of variables, and IO processing are done inside this microcontroller chip. What is a PLC? Let us go ahead to some higher level of processing. You have 50 number of sensors, either 4-20 mA or thermocouple types. You have 20 different types of outputs, either 0-10V DC actuators or relay outputs. You have been assigned the same task to accept inputs and control outputs according to the logic written in it. All the same components of IO’s, power supply, processor, and memory will be required. But, you can see all these IO boards/pins with memory and processor cannot be embedded on a small single chip. This is when PLC comes into the picture. PLC is basically an extension of the microcontroller. It is a cabinet-box-type device that has IO boards, memory, and a processor; all interfaced with each other on different chips. All these chips make a single PLC cabinet. The IO’s can be of different types, ranging from simple digital signals to complex analog signals. They have special communication boards, which can communicate with real-life protocols like Ethernet, Modbus, CAN Open, Profibus, Profinet, etc. Microcontrollers too have communication boards, but they are of small interfaces and limited connectivity. The IO modules are either embedded in the main PLC or connected to remote modules through communication. This easily allows for the expansion of IOs. Various high-grade industrial sensors and actuators can be easily interfaced with PLC. Difference between Microcontroller and PLC Now that we have understood their meaning, let us have a look at their differences: In the definition only, we got to know that a PLC can handle a large number of processes and cycles. That is why, it is best used for industrial applications. Microcontrollers cannot cater to a large number of IOs with complex wiring and communication requirements. It is best suitable for small-scale applications. Signal processing is much more flexible in PLC as compared to a microcontroller. This means, analog to digital conversion, high-speed counter inputs, and outputs are more easily configured in a PLC than in a microcontroller. Microcontrollers are cheaper in price than PLC, due to the limited amount of features it provides. The main advantage of PLC is its ruggedness and stability. With a very high temperature and environmental stubbornness, it is the best suitable product for critical, risky, and harsh environments. PLC can be much better prone to electromagnetic noise and such other types, than a microcontroller. Programming is very easier in PLC than in a microcontroller. Microcontrollers use complex software like C and C++ for programming, which is much easier in a PLC as it has languages that easily co-relate to an electrical drawing understanding. Microcontrollers require knowledge of embedded systems, VLSI, and software to design it, whereas PLC programmers require knowledge of industrial automation, instrumentation, and networking to design it.
  15. Sequential logic is of great use in PLC programming. It helps in sorting out things easily. A wide range of applications that use PLC has some or the other sequential logic written in it. Two of the most widely used sequences are LIFO and FIFO. You must have heard the names in electronics when used for stacking and sequencing. These types of sequential logic are available in PLC too. In this article, we will learn the LIFO and FIFO sequence concepts in PLC programming. FIFO Sequence in PLC FIFO stands for first in first out. The meaning of this sequence can be understood easily from its name. The thing that comes first will go out first. You input one element; and when you request an element, the first one that is entered will be given to you. This same logic works in PLC programming for the FIFO sequence. In programming, a logic block is assigned named FIFO. It can store up to 16 words or more, depending on the PLC. It contains three types of inputs – reset, storage, and retrieval. On a rising edge of the reset input, the sequence is reset and made empty. On a rising edge of the storage input, the word present at the input is stored in the block. The block will memorize the sequence of words received. On a rising edge of the retrieval input, the word entered first will be given in the destination word configured by the PLC programmer. It has two outputs – empty and full. If the empty bit is true, then it indicates that the storage is empty, and if the full input is true, then it indicates that the storage is full. LIFO Sequence in PLC LIFO stands for last in first out. The meaning of this sequence can be understood easily from its name. The thing that comes last will go out first. You input one element; and when you request an element, the last one that is entered will be given to you. This same logic works in PLC programming for the LIFO sequence. In programming, a logic block is assigned named LIFO. It can store up to 16 words or more, depending on the PLC. It contains three types of inputs – reset, storage, and retrieval. On a rising edge of the reset input, the sequence is reset and made empty. On a rising edge of the storage input, the word present at the input is stored in the block. The block will memorize the sequence of words received. On a rising edge of the retrieval input, the word which entered last will be given in the destination word configured by the programmer. It has two outputs – empty and full. If the empty bit is true, then it indicates that the storage is empty, and if the full input is true, then it indicates that the storage is full. These sequences are pretty easy to operate. The programmer has to take care that any inputs are not given simultaneously to the storage blocks. The block will then not do any action in this case. Only one input has to be given at a time. It is also to be noted that different PLCs function differently on warm restart or cold restart. Generally, in a PLC cold restart, for example, the register will be reset and in case of a warm restart, the register will be intact as it is. It depends on manufacturer to manufacturer.
  16. In this article we are going to talk about a major problem that happens a lot when you start programming your PLC, this is the firmware version’s common errors and how to handle them. Contents: What is the firmware version of a PLC? Why firmware version can cause trouble? How to know the firmware version of hardware PLC? How to handle firmware version errors? Conclusions. What is the firmware version of a PLC? The firmware of a PLC or a PLC module (IOs, Communication modules, etc) is simply the internal software installed in the PLC which is responsible for what the hardware can actually do. A firmware version will determine what internal feature your PLC has, like the safety protocols, internal optimizing functions, better time handling, and other different features and capabilities. A PLC with an older firmware version will have fewer features and internal capabilities than a newer firmware version PLC. Pictures 1 and 2 show you how the same hardware PLC will have different features and performance capabilities with different firmware versions installed. Picture 1 – Firmware version V4.0 Picture 2 – Firmware version V4.4 Did you notice how the same CPU is now having more features added just by updating to a higher firmware version? With the higher firmware V4.4, the CPU now has OPC UA among other features added to its performance capabilities. Why firmware version can cause trouble? Look, you usually start your PLC project by selecting the PLC then you start programming. You will select your PLC in TIA Portal according to one of two points: You already have purchased the hardware PLC, so you will select the same PLC that you actually have in the TIA Portal project. You still haven’t purchased a PLC, so you will select a PLC in TIA Portal that meets your requirement then you will buy it later. In either of the two cases, if the firmware version of the PLC selected in the TIA Portal project is different from the firmware version of the actual hardware you will have a problem. And your program won’t even be downloaded to the hardware PLC. So, you should always make sure that the firmware version of the actual PLC matches the PLC selected in TIA Portal. It is worth mentioning to know that if the firmware version selected in TIA Portal is older than the actual PLC, you won’t face any troubles with your program, you will lose some of the PLC features and capabilities, but your program will work fine. Troubles will appear if the opposite is true, if the firmware version selected in TIA Portal is newer than the actual PLC, then you will have a problem. That is why if you don’t know the firmware version of your hardware, you should select the older version in the TIA Portal project. How to know the firmware version of hardware PLC? We can know the firmware version of the hardware PLC that we have by one f two methods: From the PLC itself The firmware version of any PLC module is always written somewhere on the hardware device. See the next pictures. Picture 3 – Firmware version FS:04 Picture 4 – Firmware version is V7.0.5 From the TIA Portal software Using the TIA Portal software you can connect your PLC to your TIA Portal and search for the device then you can find the firmware version of the hardware device, see the following steps. You don’t even have to create a new project; just the project view of the TIA Portal is enough, see picture 5. Picture 5 – Project view of TIA Portal without creating a project. From online access search for your PLC. As the connection between TIA Portal and the PLC is through an Ethernet cable, then we will use the Ethernet connection option. Double-click on update accessible devices to start searching for your PLC. See picture 6. Picture 6 – Update accessible devices to search for your PLC. If there is a connection between the PLC and the TIA Portal then the software should find your PLC. See picture 7. Picture 7 – Your PLC was found by the software. Now, double-click on Online & diagnostics to show your PLC’s information. See picture 8. Picture 8 – Online information of the PLC. From the General attribute, you can find the firmware version of your PLC as shown in the previous picture. You can also find the firmware version from the Functions attribute. See picture 9. Picture 9 – Firmware version from the functions attribute. How to handle firmware version errors? First, let’s create a firmware version error scenario then we will see how to handle and fix this error. We will start by simply create a new project and then add a new device, in this PLC example we will intentionally choose a newer firmware version than the actual hardware PLC. We know that our plc firmware is V4.0, but in TIA Portal we will choose V4.4 firmware version. See picture 10. Picture 10 – Add a new PLC with a higher firmware version. Press OK to add your device and that is it, you have created a situation that will cause a firmware error. To see that let’s try to download the project to our PLC. Note that we haven’t even written any code. Just download it to the PLC. See picture 11. Picture 11 – Download to PLC failed, incompatible firmware. As you see from the previous picture, once you try to download the project to the PLC, an error will appear stating that the firmware versions of the PLC and TIA Portal are not matching. You can even see it if you try to go online. See picture 12. Picture 12 – The PLC is in an error state. To solve this error, we simply need to change the firmware version of the PLC selected in the TIA Portal project to older or the same firmware as the actual hardware PLC. To do that we go to the properties page of the PLC and select Change firmware version from the General attribute. See picture 13. Picture 13 – Change the firmware version option. Once you press the Change firmware version button, a change device window will appear; in this window, you’ll be able to change the firmware version. See picture 14. Picture 14 – Change the device window. In the change device window, you will see the current device which you have selected before and the new device which you need to match its firmware with what you actually have. Note that, when choosing a lower firmware for example V4.3 the information at the bottom of the window will show you what features you have lost when moving down to a lower firmware as you see in the previous picture. Now, change the firmware of the new device to the V4.0 version of the hardware PLC. And notice how many features and capabilities the PLC has lost just by choosing a lower firmware. See picture 15. Picture 15 – Matching the firmware between hardware PLC and Software. Press OK to confirm changes and now try to download your project once again to the PLC. You will notice that now the project will be loaded to the PLC without any errors. See picture 16. Picture 16 – The project is loaded into the PLC. A successful load of the project to the PLC indicates that the firmware version error is now fixed. You can also go online and check that from the online view of the PLC project. See picture 17. Picture 17 – Online view of the project. The green checks and circles you see in the previous picture indicate that all configurations of the software and the hardware are matching and are compatible with one another. Conclusion Firmware version errors are very common trouble to face when creating a new project in TIA Portal. A best practice is to know the firmware version of the hardware device you have and match the firmware of it to the selected device in TIA Portal. If you don’t know the firmware of the hardware device, then you should choose the oldest version of the selected module inside the TIA Portal. To avoid any firmware issues with your project.
  17. PLC Programming for Controlling Conveyor Direction: Facilitating Forward or Reverse Movement Based on Detected Part Size. Identify Each Part’s Size and Ensure its Distribution to the Designated Location. Advanced PLC Conveyor Control The hopper provides different size objects when the operator presses the pushbutton then the conveyors and sensors are used to separate the objects based on their size. A pusher is used to separate two different object sizes. The conveyor can move forward and in reverse directions to place the objects as per their dedicated storage trays. A robot is used to pick and place the objects in medium size boxes. The below simulation shows the PLC conveyor simulation with different box sizes. PLC Inputs and Outputs The below table lists the inputs and outputs of this PLC project. Type Device No. Device name Operation Input X0 Upper ON when the part is detected. Input X1 Middle ON when the part is detected. Input X2 Lower ON when the robot is at starting point. Input X3 Detect part ON when the part is detected in front of the pusher. Input X4 Starting point The conveyor moves forward when Y1 is ON. Input X5 Part on table ON when the part is on the table. Input X6 Robot operation finished ON when the part is detected on the incline. Input X7 Sensor ON when the part is detected at the right end. Input X10 Sensor ON when the part is detected at the left end. Input X11 Sensor ON when the part is detected at the right end. Input X12 Sensor ON when the robot operation is finished. Output Y0 Supply command One part is supplied when Y0 is ON: Wooden part repeats in order L, M, S, M, S, L. Output Y1 Conveyor forward The conveyor moves forward when Y2 is ON. Output Y2 Conveyor forward Extends when Y3 is ON and retracts when Y3 is OFF. The pusher cannot be stopped in the mid-stroke. Output Y3 Pusher The robot moves part to tray when Y4 is ON. A process cycle begins. Output Y4 Unload command The conveyor moves forward when Y5 is ON. Output Y5 Conveyor forward The conveyor moves backward when Y6 is ON. Output Y6 Conveyor reverse Conveyor moves backward when Y6 is ON. Program Description When the pushbutton PB1 (X20) on the control panel is pressed, it activates the Supply command (Y0) for the hopper. Once you release pushbutton PB1, the Supply command is deactivated. Whenever the Supply command is engaged, the robot dispenses a part. When the switch SW1 (X24) on the control panel is activated, the conveyors start moving forward. As soon as you deactivate SW1, the conveyors halt. The conveyors transport large, medium, and small parts, which are sorted by the Upper (X0), Middle (X1), and Lower (X2) sensors respectively, to designated trays. Large part: Directed to the lower conveyor and delivered to the tray on the right. Medium part: Transferred to the tray by the robot. Small part: Directed to the lower conveyor and delivered to the tray on the left. When the Detect part sensor (X3) is activated, the conveyor stops, and a large or small part is directed to the lower conveyor. Note: When the actuating command for the pusher is turned ON, it fully extends. When the actuating command is turned OFF, the pusher fully retracts. When the Part on the table (X5) sensor in the robot is activated, the Unload command (Y4) is engaged. When the Robot operation is finished (X6) sensor is activated (it activates when a part is placed on the tray), and the Unload command (Y4) is deactivated. As long as the switch SW2 (X25) on the control panel is ON, a new part is automatically supplied in the following scenarios: When the robot starts to handle a medium part When a small or large part is deposited into a tray PLC Programming Conveyor Forward and Reverse Rotation Control
  18. Counters are a very important instruction in PLC programming. You require it in almost every logic. Be it counting something to counting events, counters form an important part of PLC programming. Because event count is used in many applications and it helps PLC programmers save time in writing cumbersome coding. But, many times, it is always required to find a backup solution for a plan if it does not work. In the case of counters too, a PLC programmer must know a backup logic if it does not work properly. For that, two instructions can be combined and written – move and addition. In this post, we will learn how to design counters in PLC programming with a move and add instruction. Counters First of all, we will see a counter instruction on how it is written. Refer to the below image. As you can see, a counter has three inputs – count, reset, and set value; and has two outputs – done and current value. A count input is required to provide the counter with a pulse for counting it, a reset input is required to reset the counter, and a set value is required for feeding the counter with set counts. A done output is used to denote that the counter has finished counting and the current value shows the present value of counts that the counter has counted till now. When count input is received, the counter increments by a value. The count input works on a pulse basis and not on a continuous basis. When the counter reaches its set count, then the output done bit goes on. The only way to then turn it off is by giving the reset input. The count value will become zero on this input and the counter resets due to this. It is to be noted that even if the count has been reached and you still give count input, then too the count will go on incrementing. You can also see that a comparison block is used after counter output, which allows it to pass to the final bit to be turned on. This prevents the final bit from turning on unnecessarily if the set count is zero. Design Counters in PLC With a Move Instruction Now, we will see how to write this same coding with the help of move and add instructions. Refer to the below image. In the first rung, the count input is replaced with an add instruction. The addition will happen if the input condition is true, and that too with a pulse. Pulse must be used, otherwise, continuous addition will go on and there will be no control over it. In the second rung, it compares whether the set counts have been reached or not. It also checks whether the set count is more than zero or not. If these conditions are true, then the output turns on. In the third rung, the counter value becomes zero on the receipt of the corresponding inputs. This equals the operation of reset input. These three rungs are enough to replicate the function of a counter. You can use either a counter or this PLC logic, according to your needs. But, it is to be noted that we can program a counter by writing this way too. In this way, we saw how to write counters in PLC programming with a move and add instruction.
  19. When you are developing a PLC program, you need to ensure that it is tested and validated properly before showing it to the customer. This is because a PLC program has many parts in it, like logic, configuration, settings, etc. So, it is necessary to test and validate each and every part, regardless of which program will malfunction. If there are bugs in configuration or logic, then the system will malfunction at the site. To avoid this, most programmers spend hours testing the PLC logic and it is a very important step done by them. In this post, we will learn the testing and validation process of PLC development. Testing and Validation in PLC Development Some of the points related to PLC testing and validation are mentioned below. Gather stakeholders for an initial meeting to discuss the scope, objectives, and requirements of the PLC project. Formulate the objectives and acceptance criteria for both testing and validation. Allocate resources, including team members, hardware, and software tools, required for the testing and validation process. Prepare detailed functional design specifications (FDS) that will serve as the foundation for PLC program development and testing. Develop the initial code blocks and routines based on the functional design specifications. Write test plans specifically for unit testing, identifying what each unit should accomplish and how to test it. Execute the unit tests, following the test plans and recording results for each function or routine. Create test plans for integration testing, outlining how different code blocks and routines will be combined and tested as a single entity. Perform integration testing, validating the whole program’s functionality and interoperability with other systems. Develop the FAT protocol, specifying the criteria that the system must meet to be considered acceptable. Conduct the FAT based on the FAT protocol in a simulated environment to ensure all requirements are met. Draft detailed validation protocols that define how validation will be carried out, what will be checked, and what constitutes acceptable results. Review the validation protocols and obtain approvals from quality assurance and other stakeholders. Implement the validation protocols, document results, and identify any deviations or failures. Create a SAT protocol, focusing on the real-world environment where the PLC system will operate. Conduct SAT to verify that the PLC system works reliably in its intended operating environment. Prepare comprehensive documentation of the testing and validation activities, results, and any corrective actions taken. Obtain final approval from all stakeholders, ensuring the PLC system is both tested and validated. Set up processes to monitor the PLC system’s performance and schedule regular re-testing and re-validation activities. Archive all PLC project documentation and code, and formally close out the project. The above steps provide a simple guide for preparing testing and validation in a new PLC development project. Let us have a look at some important steps one by one which need to be followed till the end for proper functioning. IO Mapping PLC functions according to inputs and outputs. So, the very first step in testing the program is checking IO mapping in PLC. You have to either force each digital input on the simulation or give actual hardware input to the PLC. One by one, if the mapping is proper, then the same will be reflected in your graphics and program. This verifies digital inputs. Follow the same process for analog inputs. But, for analog inputs, you have to give multiple raw counts rather than just one count. A wide range of counts gives you a proper idea of whether the channel is functioning properly or not. Then, for digital outputs, you have to force them one by one. If the PLC outputs are turning on and off according to the sequence, then your DO mapping is proper. Follow the same process for analog outputs and give a wide range of raw counts instead of a single count. You will get a proper idea of whether the AO channel is functioning properly or not. Communication Protocols Checking Once the IOs have been verified in the PLC program, the next step is to check communication and network addresses. Suppose a PLC has an Ethernet port and a Modbus RTU port. You have connected an HMI to the Ethernet port and three VFDs to the Modbus port. Modbus port is being used to transfer and receive data with VFD, like current, frequency, voltage, etc. These mappings have been done by you in the PLC logic. You have to first check the Ethernet port by testing whether the IP is pinging or not; and whether it is communicating with HMI or not. Then, you have to establish Modbus communication and check whether the data is being communicated properly with PLC or not. This clears your hardware part completely because you can now communicate data properly to the field; either through hard IO or soft IO. These two basic steps are the first step in your validation. Manual Mode Some systems have manual mode without critical interlocks and some systems have manual mode with critical interlocks. To check manual mode, you have to turn on each and every output step by step and check whether the actual physical output is turning on or not. This first step verifies whether the physical DO or AO has been properly linked with manual mode buttons or not. Then, you have to generate corresponding alarms and check whether the output is turning off or not. Only the linked outputs should turn off. The remaining outputs should not be impacted. This ensures that all the outputs have been linked properly in the program with proper interlocks. Because, once the manual mode has been cleared, it will be confirmed that the physical outputs can be turned on manually and auto mode can then be checked more easily. Directly checking auto mode logic will confuse the programmer as to what output is getting on or off. Verifying manual mode will ensure that individual outputs are being turned on or not. Auto Mode The next big step is checking auto mode. The auto mode comes as a verifying sequence with interlocks. Every system is given a control logic document that shows how the sequence works with proper interlocks and output matrix. The PLC programmer has to ensure that when any sequence is running, the corresponding outputs are turning on / off accordingly or not. Also, the sequence is running properly with interlocks or not? Auto mode logic when made must be mostly divided into four parts Turning on the outputs, Writing the sequence flow, Linking interlocks and alarms, and Showing the current running status. This technique makes the program flow very easy to look at and troubleshoot. One should try to avoid the constant use of set–reset coils and ladder logic. Ladder logic is easy to use, but when run in simulation online, it consumes time to troubleshoot. Also, set-reset coils are difficult to manage, because once a set coil is used, then care must be taken to reset it somewhere. Otherwise, the bit will remain set if the condition is not written properly. In this way, we saw the testing and validation process in PLC development.
  20. leizuofa

    Best Practices of PLC Wiring

    Best practices in PLC wiring (Programmable Logic Controller) are essential for several reasons in industrial automation and control systems. In the areas of production operations, manufacturing, and energy production, as well as in a wide range of industrial sectors, major components of PLCs help to regulate and monitor different processes. Best Practices of PLC Wiring Image Courtesy: Yeulian Here are some key reasons why proper PLC wiring is important. In short, it provides Reliability, Safety, Accuracy, Maintenance, Scalability, Compliance, Cost efficiency, and Documentation. What are the Practices adopted for PLC Wiring? The wiring of a PLC (Programmable Logic Controller) is a fundamental part of the installation and commissioning of automated control systems. PLCs are used to control various industrial processes and machines. The wiring connects the PLC to sensors, actuators, and other devices on the factory floor. It ensures the signals are accurately transmitted from the PLC, allowing it to interact with the equipment. Here are some important practices to adopt when wiring a PLC: Planning Before beginning wiring, it is essential to have a clear plan of the layout. It should comprise components, input/output (I/O) devices, and the location of the PLC in the cabinet or electrical panel. Wiring Drawing Make sure that, have an updated (revised) copy of the electrical diagram. Selecting appropriate Cables Use quality cables that meet the necessary electrical specifications. Make sure they are long enough and have adequate current capacity to avoid signal transmission problems and overheating. Identification Clearly label all cables, connectors, and terminals. It simplifies troubleshooting, maintenance, and future expansion. Labeling makes it easy to identify each cable, connector, and terminal within the system. Labeling helps maintain the integrity of the control system. Mistakenly connecting cables or terminals can lead to equipment damage, system malfunction, or even safety risks. Proper identification reduces the chances of errors during installation or maintenance. Solid Connections Ensure secure and safe connections by tightening the terminals to prevent loose connections that may lead to failures. In industrial plants, downtown can be extremely costly. Loose connections cause unexpected equipment shutdowns or malfunctions, resulting in production delays and financial losses. Power and Signal Separation Maintain adequate separation between power cables and signal cables to avoid electromagnetic interference. Use gutters or dividers to physically separate the cables, if necessary. This can help to prevent cross-talk and reduce the chances of interference. Testing and Verification Before energizing the PLC system, performing continuity and verification tests is essential. This is to ensure all components are connected correctly and as per the design specifications. Incorrect connections can lead to malfunctions, inefficiencies, or damage to the equipment. Safety Follow electrical safety regulations when wiring. Make sure the PLC and all components are unplugged before working on the wiring. Documentation Keep detailed records of all wiring, including up-to-date diagrams, wire lists, and configuration documentation. This will be valuable for future maintenance and future system modifications. Training Ensure that personnel who operate and maintain the system are trained in PLC wiring and operation. Regulatory Compliance Verify that PLC wiring complies with applicable standards. Proper wiring is essential to ensure the reliable and safe operation of the system controlled by the PLC. PLC wiring is crucial for an industrial control system’s reliability, safety, accuracy, and maintainability. Proper wiring ensures that the control system functions as intended and complies with industry standards and regulations, ultimately contributing to the overall efficiency and success of the industrial process. Why Proper PLC Wiring is Important? Proper wiring of a PLC (Programmable Logic Controller) is essential in industrial automation and process control systems for several important reasons: Proper wiring provides system reliability. Proper wiring ensures a strong and stable cable connection between system components, reducing the likelihood of intermittent failures or communication errors. It ensures safety. Incorrect wiring can cause short circuits, overloads, and electrical hazards. Proper wiring minimizes the possibility of electrical accidents and ensures that the system meets safety standards. It improves system performance: Incorrect wiring can negatively impact system performance, causing delays in communication and instruction execution. Proper cabling ensures fast and accurate data transmission. Proper wiring reduces downtime and maintenance costs. It helps us to carry out simpler maintenance: careful organization and labeling of cables will make it easier to identify and resolve system problems. Regulatory Compliance: In many industries, some specific regulations and standards require proper wiring to ensure system safety and quality. PLC Wiring Tips Here we shared the main points related to the PLC wiring. Follow national and local electrical codes. Use shielded cables for analog and communication signals. Ensure proper grounding of all components. Label all wires and terminals. Implement a wire color-coding scheme. Separate input wiring from output wiring. Use the shortest possible cable lengths. Avoid looping wires around terminal screws. Select appropriate wire gauges for load and current requirements. Use wire ferrules for stranded wires. Physically separate high-voltage and low-voltage wires. Double-check polarity for power supply and I/O connections. Bundle wires neatly and use cable ties. Test for wire continuity and correct connections before powering up. Maintain updated and detailed documentation. Utilize terminal blocks for easier maintenance. Perform regular wiring inspections. Use strain relief mechanisms to protect wires. Follow lockout/tagout procedures for safety. Conduct thorough system testing after the wiring is complete.
  21. Whenever a new PLC programmer goes to the site to commission a project, the very first question that arises is how to do it. This is because the PLC system is vast and complex to understand. So, every PLC programmer must know what to do when he goes to the site with proper planning. With such a large number of electrical field wires and devices, it is necessary to understand what he is doing along with the PLC program logic. In this post, we will learn the commissioning steps to be followed by a PLC programmer. Site Commissioning Steps for PLC Programmers The very first step for a PLC programmer is to check whether he has all the prerequisite PLC software installed on his laptop. Suppose the site has automation of Schneider in the system. Then, first, he needs to install all the corresponding PLC software on his laptop. The software must open correctly every time and all it’s related drivers must also respond properly. After that, he needs to connect his laptop to the automation hardware in his office. This will ensure that he is properly able to upload and download in the system. Improper software installation or connectivity can lead to errors in commissioning at the site. Then, he has to take the final backup on his laptop and check the PLC logic with the simulation. This will ensure that he goes to the site understanding the whole process. After this, carry all the communication cables along with you and get ready to go to the site. If it is found that due to time constraints, the system is not being checked fully, then note down the pending points and logic bugs observed during testing. Ensure that this is checked when commissioning. Once he reaches the site, first take an overall lookout for the plant condition. How much mechanical work is pending, how much electrical work is pending; that matters the most. Also, check the condition of utilities like water, air, and steam. Note down all the statuses and make a daily activities list on your laptop. Share this file with your immediate senior so that he knows where the activity is stuck and can push the corresponding person accordingly to get the work done. Once the panel has been given for testing, start checking the field IOs. As per the IO list and wiring diagram, the corresponding field device must operate accordingly. Note down any issues found and contact the electrical person to resolve them. If there are communication devices in the PLC system, you must also check them. All the communication devices must be able to properly communicate in the network bus with the PLC automation system. Once the field wiring has been verified, it must be checked whether all the mechanical devices are operating according to the wiring or not. Eventually, process running is important and if the device is not responding, then the process will not run properly. Once all the device verification part has been done, the next step is to verify the logic with the process engineer. It must be checked whether the plant is running according to the logic written or not. If there are issues found, check whether they can be resolved by logic or if it has to be resolved by the process engineer. Come to a conclusion and resolve the same. This completes your PLC commissioning activity. Save all the final backups and hand them over to your senior for safety. Also, note down all the final process parameters and record a video of the running plant for understanding. Make the final report and get it signed by the customer for proof that commissioning has been done. Note down any of his remarks and see that it is resolved as early as possible. PLC Commissioning Steps The main PLC commissioning steps are mentioned below with brief details. Review Documentation: Check system requirements and schematics. Safety Checks: Verify lockout/tagout and other safety protocols. Hardware Check: Inspect PLC and I/O modules for any damage. Power-Up: Turn on PLC and confirm basic functions. Establish Communication: Set up links between PLC and the programming terminal. Update Firmware: Install the latest PLC software version if needed. Configure I/O: Set up input and output modules. Load Program: Download the initial PLC code into the system. Test Modes: Validate individual inputs, outputs, and communication. Loop Checks: Ensure signal integrity between field devices and PLC. Logic Testing: Verify PLC functions and sequences. Simulation: Test complex logic using simulated inputs. Process Start-Up: Begin the initial test run of the process. Fine-tuning: Adjust PID controller tuning, timers, counters, and setpoints based on test runs. Update Documentation: Record changes made during commissioning. Functional Tests: Validate that the whole system works as expected. Operator Training: Teach operators how to use the new setup. Create Backup: Save the final PLC program and configuration parameters. Client Approval: Get sign-off from the client or project manager. Handover: Finalize documentation for system handover. In this way, we saw the commissioning steps to be followed by the PLC programmer.
  22. There are many ways where PLCs can communicate and talk to each other, in this article we will talk about one of these methods which is how to establish Siemens communication between PLCs using the i-device function to make PLC-to-PLC data transfer. What is the I-Device function? The I-Device function can be used to exchange data between two PLCs very easily. An I-Device is simply a PLC that is used as an IO device. That means the PLC will act as an IO module providing inputs and receiving outputs with the other PLC. I-device function enables PROFINET to communicate not only with subordinate devices like IO controllers, but also IO communication with other higher-level or central controllers as an IO device. Siemens Communication between PLCs Most of the S7 family PLCs support the I-Device feature but some controllers don’t depending on the firmware version for example: S7-300 (from firmware version V3.2) S7-1200 (from firmware version V4) You can simply know if your controller has the I-device feature or not by going into your PLC PROFINET interface properties and checking for the “operating mode” option. See pictures 1a and 1b. picture 1a. PLC doesn’t support I-device From the picture, we can’t see the “operating mode” option, so we know that PLC doesn’t support the I-device feature. Picture 1b. PLC supports the I-device feature As you see from the picture, this PLC supports the I-device feature. A PLC with the “Intelligent IO device” configuration is called an I-Device. An I-Device is like a standard IO device and needs to be handled like one. This means that the I-Device is also connected to a higher-level IO controller. So , an I-device will act as an IO module, but it is also still a PLC, so it still acts as a controller if you want it to. Data exchange concept The guiding principle of the I-Device method is to use the known process image in a CPU. From the higher-level IO controller’s view, communicating to an I-Device is similar to communicating to a distributed IO with the usual read and write processes at inputs and outputs. From the I-Device’s view, data transfer to a higher-level IO controller is also analog to the data transfer to the local or assigned distributed IO via inputs and outputs. I-device Configuration options There are two possibilities for configuration: Configuring an I-Device within a project. Configuring an I-Device that is used in another project When configuring an I-Device for another project, STEP 7 enables you to do this by exporting a configured I-Device in a GSD file. The GSD file can be imported in the other project or the other engineering system like other GSD files. This allows not only for communication within the project, but also communication across projects and data exchange between different manufacturers in a tried and tested way. We will show that in another article. In this article, we will show the Configuration of the I-device within the same Siemens PLC project. I-device configuration within the same PLC project We will assume that we have two PLCs in our project, CPU 1516-3 PN/DP which will act as the controller in this configuration, and CPU 1214C which will act as the I-device. Start by adding the two PLCs into your TIA Portal project and setup a Profinet connection between them. See picture 2. picture 2. Setup connection between two PLCs. Now, we need to configure the CPU 1214C PLC as an I-device. You do that by going to the Profinet interface properties and from the operating mode option you click on the IO device option. See picture 3. picture 3. Select IO device. After that, you need to assign the I-device to a higher-level controller which is the CPU 1516-3 PN/DP PLC in our project. To do that just select that PLC from the Assigned IO controller drop-down list. See picture 4. picture 4. Assign the I-device to the controller. After that, the I-device is now connected and assigned to the controller PLC. See picture 5. picture 5. The I-device is assigned to the controller PLC. The next step is to exchange the data between the I-device and the controller with what is known as transfer areas. Creating a transfer area Transfer areas are the IO areas that are used to exchange data between the I-Device and the higher-level IO controller. Go to the “I-Device Communication” section. Click the first field of the “Transfer areas” column. TIA Portal will create a predefined name that you are able to change. As you can see from picture 6. picture 6. Create a transfer area Select the type of communication relationship: currently, only CD can be selected. See picture 7. Picture 7. Choose CD communication option. Once you select the CD option, a transfer area will be created and the addresses of the IO controller and I-device will be automatically created. See picture 8. Picture 8. Transfer area is created. The addresses are pre-assigned automatically, if required, you can adjust the addresses to your environment and specify the length of the transfer area to be transferred consistently. To create another transfer area as before, just press the “add new”, see picture 9. picture 9. Add new transfer area. As we said before, data exchange is based on the simple processing image concept, which means you always send an output and receive an input. Also note that the arrow you see in previous picture indicates the flow of information between the I-device and the controller. So if I send data from the controller to the I-device then the arrow will be from the controller to I-device and the address of controller will be output and address of I-device will be input and vise verse as you can see from previous picture. Also keep in mind that it is always better to rename your transfer areas to proper indicating names. See picture 10. Picture 10. Rename your transfer areas. Loading the PLC project To load the PLC project data, select both controllers one after the other in the project navigation and load the project into the respective module. Note that, because we don’t have actual hardware devices, we can’t simulate this feature.
  23. In this article, we will discuss yet another way of communicating between two PLCs, whether they are in the same project or two different PLC projects. In this article, we will talk about the PUT command in Siemens PLC which can be used to send or put data from one PLC into a second PLC. What is the PUT Command? In general, the PUT command is a TIA Portal built-in function block FB that is used exclusively for S7-Family CPUs to put data from a local PLC to a remote partner PLC. When using the PUT command, I would have two PLCs, where I need to send data from one PLC called local to another PLC called partner. Some configurations must be done to the partner PLC, to enable it to be accessed by the other PLC. In addition to a Profinet connection between the PLCs. We will create a sample project to show how to use the PUT command. PUT Command in Siemens PLC We will assume a sample project where we have two PLCs in the same project, PLC_1 which will act as the local PLC and PLC_2 which is the partner PLC. We want to write an integer from the local to the partner PLC. Sample PLC project First, let’s create a new project and add the two PLCs. See picture 1. picture 1. Add the local and partner PLCs. What I need now is to configure PLC_2, the one that will receive the data to be able to receive this data. And PLC_1 will be used with the PUT command. The 1st thing I need to do is allow the access of the PUT command to the PLC_2 that will receive the data. See picture 2. picture 2. Allow PUT command access. As you see from the picture, we allow the PUT command to access the PLC_2 from the Properties of the PLC_2, in the Protection and Security option, click on the “Permit access with PUT/GET communication from the remote partner” Now, I am allowed to put data from any remote partner to PLC_2 using the PUT command. The 2nd thing is to prepare a space or memory in PLC_2 to the data that will be put in it. We will assume that we want to PUT an integer value into that PLC, so I will prepare a memory according to that. See picture 3. picture 3. Prepare area to receive data. And that is it; this is the entire configuration you need to prepare from the PLC_2 side to be able to receive data through PUT command. Next, we set up the data being sent from the PLC_1. We will create a data block to hold the data sent to PLC_2 and inside this data block, we will define an integer tag to be PUT into PLC_2. See picture 4. picture 4. Create a data block to hold the sent data. We defined an integer tag “SendMeToPLC_2” that we want to send to PLC_2. See picture 5. picture 5. Define the data to be sent. Note that, for PLC_1, we don’t need to allow the access with PUT command option. We activate this feature in the PLC that will receive data, not the PLC that will send it. Now, let’s use the PUT command in our programming, in the main OB1 we will drag and drop the PUT command FB. See picture 6. picture 6. Add the PUT command to OB1. Note that, the PUT command is found in the S7 communication folder, as it is an exclusive function for S7 family PLC, because it involves safety issues. Remember in picture 2 when we allowed the use of PUT command it was in the Security and Protection attribute of the PLC properties as it is related to PLC safety and protection. The PUT command is essentially a function block, so when adding it to my logic I will be asked to create a data instance. See picture 7. picture 7. Create a data instance for the PUT command. After you press OK, the PUT command is now added to your PLC logic. See picture 8. picture 8. PUT command After we added the PUT command, now we need to configure it, we have two parameters to configure for the PUT command. The connection between PLCs The block that will be PUT from PLC_1 to PLC_2 To go to the configuration view of the PUT command, press the small blue icon shown in last picture. In the connection parameter, you will set the communication between the local (PLC_1) and partner (PLC_2) PLCs. See picture 9. picture 9. Connection parameter. As you can see, the Local PLC is set to PLC_1 which is the PLC where the PUT command is used. The partner side is still empty and that is where we should assign PLC_2. If you click on the drop-down list you will have two options for a partner. See picture 10. picture 10. Partner connection The partner is the PLC that will receive the data; you will find that you have two options to select from: PLC_2 [CPU 1516-3 PN/DP] Unspecified Because both PLCs are in the same project, when I choose the PLC_2 option, all connection parameters will be automatically filled in. see picture 11. picture 11. PLC_2 as a partner On the other hand, if the partner PLC is from a different project, then I will choose the Unspecified option, and in that case, I will have to fill in some data such as the Partner PLC’s IP address. See picture 12. picture 12. Unspecified Partner As you can see, in that case, I need to fill in some data, such as the IP address and also I need to add a subnet for PLC_1. To add a subnet for PLC_1 we will go to Profinet properties of the PLC_1 and select add subnet option. See picture 13. picture 13. Add subnet. Once that is done, the connection parameter configuration will be done. See picture 14. The connection name should be Unique for each PUT command you make, TIA Portal will automatically give it a new name, but it is maybe better for you to assign a more proper name for the connection in your project. We here kept it as it is. picture 14. Connection parameter is done The next step in the PUT command configuration is the Block parameter setup. In these parameters we specify the trigger for the PUT command, meaning what signal will start the PUT command action. And also what data will be put from PLC_1 and where will it be stored in the PLC_2. See picture 15. picture 15. Block parameter setup For the Start Request (REQ) signal we have defined an input tag (SendData %I0.0). And as we mentioned before we have already defined the tag that will be send to PLC_2 and where it will be stored inside the PLC. Completing the block parameter configuration will conclude the configuration of the PUT command. See picture 16. picture 16. Calling of a PUT command So, in summary, when the REQ signal is triggered, the data in SD_1 will be sent to ADDR_1.
  24. Design an efficient PLC ladder logic program that samples analog input (I:1.0) at the rate of 2Hz and outputs the average value to analog output O:1.0 once every two seconds. PLC Analog Input Sampling Ladder Logic
  25. Assume there are sixteen stations along a conveyor system. The stations are numbered from 0-15 with station zero being the first (i.e. the point where parts enter the conveyor). Parts are to advance along the conveyor at the rate of one station every four seconds. A part may or may not be at a given station at any point in time. An input sensor I:0.0/0 is used to detect a part entering the conveyor. At station 5, parts are checked for defects and an input sensor I:0.0/1 is energized if the part is defective. At station 10, any defective parts are to be removed from the conveyor by energizing output O:0.0/0. Write an efficient ladder logic program for this process. PLC Conveyor Ladder Logic Program
Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...