Jump to content

Content I Started

Showing all content posted in for the last 365 days.

This stream auto-updates     

  1. Today
  2. проверка воды на загрязнения или анализ воздуха мониторинг границ СЗЗ https://1aba.ru/analiz-othodov/ Ещё можно узнать: где серийный номер на ноутбуке asus анализ проб воздуха
  3. оценка освещенности на производстве или проверка воздуха экологический мониторинг воздуха https://top1ab.ru/laboratornye-produkty-bezopasnosti/izmerenie-mikroklimata-na-rabochix-mestax/ Ещё можно узнать: как убрать припухлость от прыща анализ воды
  4. оценка шумовой нагрузки на рабочем месте или мониторинг выбросов мониторинг воздуха https://top1ab.ru/izmereniya-fizicheskix-faktorov-na-rabochix-mestax/ Ещё можно узнать: запустите станцию администратора с ключом adm лабораторный анализ воздуха
  5. безопасность на рабочих местах или анализ физических факторов на производстве лаборатория анализа воздуха https://1aboratory.ru/proizvodstvennyj-kontrol/ Ещё можно узнать: евро краткое обозначение Радиологический анализ воды
  6. проверка воздуха на рабочем месте или контроль условий на рабочих местах мониторинг выбросов https://1aba.ru/analiz-othodov/ Ещё можно узнать: евро на английском значок Измерение микроклимата на рабочих местах
  7. отбор проб воздуха рабочей зоны или анализ проб воздуха контроль условий на рабочих местах https://41ab.ru Ещё можно узнать: значок евро на клавиатуре анализ качества воздуха
  8. Last week
  9. In diesem Artikel geht es um die Methode zur Fehlerbehebung bei der SPS-Programmierung. In industriellen SPSen, in denen Tausende von Ein- und Ausgängen verwendet werden, hängt die Länge von SPS-Programmen von der Anwendung oder Anlagennutzung ab. Beheben von Problemen mit Siemens-SPS-Programmen Manchmal ändern Leute unwissentlich die Logikparameter, was zu einem Fehler führen kann. Aufgrund der Komplexität des Designs entstehen sogar einige Fehler während der Logikdesignphase. Die Siemens-SPS-Software verfügt über verschiedene praktische Tools zur Fehlerbehebung bei in den Programmen generierten Fehlern. Fehler können beispielsweise Überlappungen der Adressierung, mehrere gleiche Ausgabeinstanzen, Überlappungen von Speicherbitadressen, häufiges wiederholtes Arbeiten mit einem einzigen Programm usw. sein. Um solche Probleme zu finden, stehen in der Siemens-Software vier Arten von Fenstern zur Verfügung, die uns bei der Fehlerbehebung helfen. Sie lauten: Querverweis Aufrufstruktur Zuweisungsliste Abhängigkeitsstruktur Lassen Sie uns besprechen, wie wir sie in unserem Programm zur Fehlerbehebung verwenden und wo wir sie in der Software finden. Querverweis Querverweise werden verwendet, um alle in der Logik verwendeten digitalen und analogen Ein- und Ausgänge zu finden. Sie helfen uns dabei, herauszufinden, wie oft die E/A im Programm verwendet werden, und führen Benutzer auch direkt zum spezifischen Standort der E/A auf den Logikseiten. Hier ist ein Beispiel für eines der Programme, in dem Sie sehen können, wie die Querverweistabelle aussieht. Sie enthält alle Informationen wie Adressierung, die Sprache des Programms, verwendete Ein- und Ausgänge usw. Aufrufstruktur Wenn Sie wissen möchten, welcher Block in der Programmierung verwendet wird, wird die Aufrufstruktur verwendet. Dies ist eine Umkehrung der Querverweisfunktion, bei der wir erfahren, wie oft SFC- und FB-Blöcke in OB (Organisationsblock) verwendet werden, und hier erfahren wir, wie oft OB in SFC und FBs verwendet wird. Zuweisungsliste Die Zuweisungsliste ist eine sehr nützliche Funktion, wenn es darum geht, zu erfahren, wie viele Eingänge, Ausgänge, Timer und Zähler in unserer Anwendung verwendet werden und wie viele davon noch übrig sind, damit wir sie in zukünftigen Logiken verwenden können. Abhängigkeitsstruktur Die Abhängigkeitsstruktur wird verwendet, um anzuzeigen, wo jeder einzelne Block innerhalb der Programmierung verwendet wird. In Schritt 7 gelangen Sie jedoch nicht direkt an die Stelle, sondern in TIA PORTAL an die Stelle, an der das Programm geschrieben ist. HINWEIS: Um diese Fenster in Schritt 7 zu öffnen, verwenden Sie die Informationen wie in der Zeichnung gezeigt. Nach dem Klicken auf „Anzeigen“ stehen Ihnen die Optionen zur Verfügung. Führen Sie im TIA PORTAL die folgenden Schritte aus, die in der Zeichnung dargestellt sind.
  10. 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!
  11. In diesem Beitrag erfahren wir, wie man digitale und analoge Eingänge in einer SPS filtert. Wie im Thema beschrieben, ist Filtern ein Mittel, um unerwünschte Spitzen in den in der SPS empfangenen Signalen zu entfernen. Seine Aufgabe besteht darin, die Schwankungen zu beseitigen und nur die richtigen Signaländerungen zu einem bestimmten Zeitpunkt an die SPS weiterzuleiten. In einer SPS kommt zuerst die Filterschaltung und dann die SPS-Eingangsverarbeitungsschaltung, die den endgültigen gefilterten Eingang akzeptiert und für ihre Logik verwendet. Digitale SPS-Eingangsfilter Betrachten wir zunächst den digitalen Eingang. Die Aufgabe eines Eingangs mit einem Filter besteht darin, einen digitalen Feldeingang zu akzeptieren und ihn über den Filter an eine Verarbeitungsschaltung weiterzuleiten. Wenn Sie das folgende Bild sehen, besteht es aus zwei Teilen. Zunächst einmal zeigt der grüne Kreis an, dass die Eingangsänderung weitergeleitet wird, und der rote Kreis zeigt an, dass die Eingangsänderung nicht weitergeleitet wird. Im ersten (oberen) Teil gibt es zwei Änderungen, bei denen es viele Schwankungen gibt und diese Eingangsänderungen umgangen werden. Es gibt zwei Änderungen, bei denen es keine Schwankungen gibt und diese Eingangsänderung an die Verarbeitungsschaltung weitergegeben wird. Die gleiche Theorie gilt für den zweiten (unteren) Teil. Dies ist durch Filtern möglich. Das Filtern wird durch einen Faktor oder eine Zeit definiert. Angenommen, Sie stellen eine Zeit von 3 ms ein. Die Rolle des Filters besteht darin, nur die Eingangsänderung zu akzeptieren, die länger als 3 ms bleibt. Wenn sich die Eingabe vor 3 ms ändert, wird diese Eingabe nicht berücksichtigt und ignoriert. Dies bedeutet, dass kurze und hochfrequente Störimpulse vernachlässigt werden. Diese Logik ist dieselbe wie ein Entprell-Timer, den wir in die SPS-Logik schreiben. Im folgenden Bild schaltet sich die Lampe nur ein, wenn der Startknopfeingang 3 Sekunden lang hoch bleibt. Dies ist dieselbe Logik, die in einem digitalen Passfilter verwendet wird. Die Eingangsänderung wird nur dann an den Verarbeitungsteil weitergeleitet, wenn dieser Eingang für die eingestellte Zeit einen Zustand (hoch oder niedrig) beibehält. Abgesehen von der Zeit haben einige SPS, wie besprochen, die Möglichkeit, anstelle der Zeit einen Faktor einzustellen. Der Faktor berechnet die interne Zeit und bestimmt die Filterstufe. Je höher der Faktorwert, desto höher die Filterleistung. SPS-Analogeingangsfilter Sehen wir uns nun die Filterung bei analogen Eingängen an. Da analoge Eingänge von Natur aus variabel sind, kann die Filterlogik für sie nicht auf dieselbe Weise wie für digitale Eingänge implementiert werden. Daher wird bei analogen Eingängen eine Mittelwertlogik verwendet. Der Filter mittelt die in einer bestimmten eingestellten Zeit erreichten Werte und gibt einen durchschnittlichen Endwert für diese Zeit an. Siehe das Bild unten für die Studie. Die erste – die blaue Farbe hat einen Faktor von 1. Die zweite – die grüne Farbe hat einen Faktor von 2. Die dritte – die orange Farbe hat einen Faktor von 3. Die vierte – die braune Farbe hat einen Faktor von 4. Wenn der Wert des Filterfaktors zunimmt, können Sie sehen, dass sich die Form des Signals verbessert, indem das Signal mit einem schärferen Wert gefiltert wird. In einer festgelegten Zeit wird der Filter die Werte mitteln, die er vom Eingang erhält; und basierend auf den darin verwendeten Formeln wird er den endgültigen Durchschnittsausgang pro Zeit ausgeben. Wenn also der Filterfaktor oder die Gewichtung erhöht wird, erhalten wir einen feineren Wert eines analogen Signals mit weniger Störungen. Normalerweise wird zu diesem Zweck ein First-Pass-Filter verwendet. Daraus schließen wir, dass die Filterung sehr nützlich ist, um unerwünschtes Rauschen vom Feldeingang zu reduzieren und geeignete Werte weiterzugeben, was auch den SPS-Eingangsschaltkreis vor Schäden schützt; wenn hohe oder unerwünschte Spitzen auftreten.
  12. leigehong

    DCS- versus SPS-Architektur

    Der Hauptunterschied zwischen DCS und PLC ist das Geschäftsmodell, das wir im Vergleich zwischen DCS- und SPS-Architektur erörtert haben. DCS- versus SPS-Architektur Das DCS-Geschäftsmodell basiert auf einem monolithischen integrierten System eines einzigen Herstellers. DCS-Architektur Bei einem DCS sind Controller, E/A-Subsystem, Datenbankserversoftware, Engineering-Software und Bedienersoftware alle eine einzige monolithische Einheit, die gemeinsam entwickelt wurde und nur miteinander funktioniert. Es ist nicht möglich, Komponenten von Drittanbietern zu verwenden. Es ist nicht möglich, eine dieser Komponenten auf einem anderen System zu verwenden. Ein DCS verwendet ein E/A-Subsystemnetzwerk und ein Steuerungsnetzwerk auf Basis von Standard-Ethernet, jedoch mit einem proprietären Anwendungsprotokoll und normalerweise nur mit einem bestimmten zugelassenen Modell von Ethernet-Switches. Abbildung 1 In einem DCS stammen alle Komponenten vom selben Hersteller. Nur eine bestimmte Version von Windows ist zulässig und nur auf einem Typ zugelassener Computer, der vom DCS-Hersteller geliefert wird. Diese Einschränkungen ermöglichen es dem DCS-Hersteller, alles sehr gründlich, in großem Maßstab, mit hoher Belastung, mit vielen Controllern und Arbeitsstationen zusammen zu testen. Anwendungen wie Batch-Steuerung, erweiterte Steuerung und Auto-Tuning usw. werden ebenfalls zusammen getestet. Dadurch wird sichergestellt, dass es keine Kompatibilitätskonflikte und unvorhergesehenen Abhängigkeiten gibt. Gründliche Tests im großen Maßstab sind möglich, da es im Wesentlichen nur einen Typ jeder Komponente gibt, also nur eine oder sehr wenige Kombinationen. Software von Drittanbietern ist nur auf separaten „Anwendungsstationen“ zulässig, wo sie nicht mit den nativen DCS-Anwendungen in Konflikt geraten kann und vom DCS-Hersteller getestet und genehmigt werden muss; auf die Whitelist gesetzt. Ein DCS ist monolithisch und verwendet E/A-Subsystem, Controller und Software derselben Marke sowie eine einzige Computer- und Betriebssystemplattform. Dies wurde im großen Maßstab gründlich getestet. DCS-Langzeitsupport Systeme bleiben normalerweise 15 Jahre oder länger betriebsbereit. Während dieser Zeit wird es mehrere Windows-Versionen, Service Packs, Hotfixes und zahlreiche Updates der Virendefinitionen geben, und auch die Computerhardware muss ersetzt werden. Normalerweise unterstützt DCS nur eine einzige Art von Antivirensoftware, und wenn es eine neue Virendefinition gibt oder wenn es ein Service Pack oder einen Hotfix für das Windows-Betriebssystem gibt, wird die gesamte monolithische Suite aller Hardware und Software vor der Veröffentlichung erneut vom Systemanbieter zusammen getestet, um sicherzustellen, dass die Virendefinition und das Service Pack ohne Kompatibilitätskonflikte bereitgestellt werden können. DCS-Upgrade DCS-Versionen werden auch als eine einzige monolithische Einheit aller Hardware und Software aktualisiert, wie z. B. E/A-Karten-Firmware, Controller-Firmware, Serversoftware, Engineering-Station-Software, Operator-Station-Software sowie jede andere Software, die alle zusammen aktualisiert werden. Jedes Mal, wenn es eine neue Systemversion gibt, werden alle diese Komponenten im Voraus vom Systemhersteller gründlich und in großem Umfang zusammen getestet, um sicherzustellen, dass sie alle miteinander kompatibel sind. Darüber hinaus wurde der Online-Hotcutover-Prozess von der früheren Version auf die neue Version gründlich und in großem Umfang getestet, um eine reibungslose Bereitstellung vor Ort sicherzustellen. Diese Sicherheit, die gründliche und groß angelegte Tests bieten, macht DCS bei großen Anlagen wie petrochemischen Komplexen sehr beliebt. Solche Tests werden durch die wenigen Kombinationen in einem monolithischen System praktikabel. SPS-Architektur/Geschäftsmodell Das SPS-Geschäftsmodell basiert auf einer flexiblen Architektur eines Systemintegrators (SI). SPS-Architektur Die SPS-Architektur ist sehr flexibel, da jede Komponente von einem der vielen Anbieter frei ausgewählt werden kann. Die SPS ist die CPU mit Konfigurationssoftware und IO-Subsystem. Manchmal kann das I/O-Subsystem von einem Drittanbieter stammen. Sogar I/O-Karten, die in die Rückwand eingesteckt werden, können von Drittanbietern stammen. Die HMI-Software stammt normalerweise von einem Drittanbieter. Ein nativer OPC-Server des SPS-Herstellers ist normalerweise am besten, manchmal werden jedoch auch OPC-Server von Drittanbietern verwendet. Abbildung 2 Für eine SPS werden Komponenten verschiedener Hersteller integriert Grundsätzlich funktioniert jede SPS mit jedem E/A-Subsystem, OPC-Server und jeder HMI-Software, da Standardprotokolle wie PROFIBUS-DP, PROFINET, Modbus/RTU, Modbus/TCP, DeviceNet und EtherNet/IP sowie OPC usw. verwendet werden. Netzwerkgeräte, Computer und Windows-Version können frei gewählt werden. Einige Komponenten, die nicht funktionieren, werden auf die schwarze Liste gesetzt. Abbildung 3 DCS verwendet einen einzigen Lieferanten, während SPS-Lösungen mehrere Lieferanten kombinieren, was zu einer großen Anzahl von Kombinationen führt Hinweis: Heutzutage ist auch ein einziger SPS-Paketlieferant verfügbar Diese Flexibilität ermöglicht Hunderte von Kombinationen aus Hardware und Software, was es diesen Herstellern unmöglich macht, zusammenzukommen und jede mögliche Kombination ihrer Hardware und Software auf jeder Windows-Version zu testen, bevor sich ein Werk zum Kauf entscheidet. Einige Kombinationen können von den beteiligten Herstellern getestet werden, aber dies kann in großem Maßstab und mit hoher Belastung erfolgen oder auch nicht. Eine SPS erlaubt jede Kombination aus E/A-Subsystem, CPU und HMI/SCADA-Software auf einer großen Vielfalt von Computer- und Betriebssystemplattformen. Nicht jede Kombination kann getestet werden. Der SPS-Hersteller liefert möglicherweise alle Hardware- und Softwarekomponenten vom selben Hersteller, da viele SPS-Hersteller HMI-Unternehmen übernommen haben. Wenn dies der Fall ist, wurde diese bestimmte Kombination möglicherweise gründlicher getestet als die anderen getesteten Kombinationen. Zusätzliche Anwendungen von Drittanbietern wie Batch-Steuerung, erweiterte Steuerung und Auto-Tuning usw. werden im Allgemeinen nicht zusammen getestet, da dies zu einer noch größeren Anzahl von Kombinationen führt. Die SPS verwendet genau wie DCS proprietäre Konfigurationssoftware. Das heißt, Sie können für Ihre SPS keine Konfigurationssoftware von Drittanbietern verwenden, genau wie für ein DCS. Ein nativer OPC-Server für die SPS ist besser als ein OPC-Server von Drittanbietern, da die SPS-Konfigurationssoftware den Adressraum für den OPC-Server im Allgemeinen automatisch konfiguriert. Langfristige Unterstützung für SPS Während der 15 oder mehr Jahre eines typischen Systembetriebs wird es mehrere Windows-Versionen, Service Packs, Hotfixes, viele Updates für Virendefinitionen geben, und auch die Computerhardware muss ersetzt werden. Normalerweise gibt es für SPS keine Beschränkungen hinsichtlich der Antivirensoftware oder der Version des Windows-Betriebssystems, sodass die Anzahl der Kombinationen aus Virendefinitionen, Service Packs und Hotfixes für diese Hersteller zu groß und unpraktisch wird, um gemeinsam jede mögliche neue Kombination vor einer Bereitstellung in Anlagen zu testen und sicherzustellen, dass es bei der Bereitstellung auf der großen Anzahl von Kombinationen aus Hardware und Software zu keinen Kompatibilitätskonflikten kommt. Der SPS-Hersteller kann sich auf eine einzige Antivirensoftware und Windows-Version beschränken. Wenn dies der Fall ist, wurde diese bestimmte Kombination möglicherweise gründlicher getestet als die anderen Kombinationen, die sie testen. SPS-Upgrade Bei einer SPS werden Hardware- und Softwarekomponenten einzeln aktualisiert. Das heißt, Firmware des E/A-Subsystems, CPU-Firmware und Konfigurationssoftware, OPC-Server, HMI-Software sowie jede andere Software werden unabhängig voneinander aktualisiert. Wenn man die verschiedenen Versionen für jede Komponentenoption berücksichtigt, wird die Anzahl der Kombinationen um ein Vielfaches größer. Diese Flexibilität macht es für diese Hersteller unpraktisch, zusammenzukommen und jede mögliche Kombination neuer Versionen vor dem Einsatz in Anlagen zu testen. Das Testen des Hot-Cutovers einer Kombination von Versionen auf eine andere Kombination von Versionen wird nahezu unmöglich. Der SPS-Hersteller kann alle Hardware- und Softwarekomponenten liefern, sich auf eine einzige Antivirensoftware und Windows-Version beschränken, die vor dem Einsatz getestet werden, und sich auf ein einziges E/A-Subsystem beschränken (Datenbankserver, Controller/SPS, Bedienstation/HMI, DCS, SPS, systemweite Versionsupgrades) und den Hot-Cutover vor dem Einsatz testen. Auf diese Weise würde die Flexibilität der SPS aufgegeben, um die Robustheit eines DCS zu erreichen.
  13. 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.
  14. 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.
  15. Vergleichsanweisungen in der SPS werden verwendet, um Wertepaare zu testen und die logische Kontinuität einer Sprosse zu prüfen. Vergleichsanweisungen sind daher selten, wenn überhaupt, die letzten Anweisungen auf einer Sprosse. Arten von Vergleichsanweisungen Nehmen wir beispielsweise an, dass eine LES-Anweisung mit zwei Werten präsentiert wird. Wenn der erste Wert kleiner als der zweite ist, ist die Vergleichsanweisung wahr. Gleich-Anweisung (EQU) Verwenden Sie die EQU-Anweisung, um zu testen, ob zwei Werte gleich sind. Wenn Quelle A und Quelle B gleich sind, ist die Anweisung logisch wahr. Wenn diese Werte nicht gleich sind, ist die Anweisung logisch falsch. Quelle A muss eine Adresse sein. Quelle B kann entweder eine Programmkonstante oder eine Adresse sein. Werte werden in Zweierkomplementform gespeichert. Ungleich-Befehl (NEQ) Verwenden Sie den NEQ-Befehl, um zu testen, ob zwei Werte ungleich sind. Wenn Quelle A und Quelle B ungleich sind, ist der Befehl logisch wahr. Quelle A muss eine Adresse sein. Quelle B kann entweder eine Programmkonstante oder eine Adresse sein. Werte werden in Zweierkomplementform gespeichert. Kleiner-als-Befehl (LES) Verwenden Sie den LES-Befehl, um zu testen, ob ein Wert (Quelle A) kleiner als ein anderer (Quelle B) ist. Wenn Quelle A kleiner als der Wert an Quelle B ist, ist der Befehl logisch wahr. Quelle A muss eine Adresse sein. Quelle B kann entweder eine Programmkonstante oder eine Adresse sein. Werte werden in Zweierkomplementform gespeichert. Kleiner-als-oder-gleich-Befehl (LEQ) Verwenden Sie den LEQ-Befehl, um zu prüfen, ob ein Wert (Quelle A) kleiner oder gleich einem anderen (Quelle B) ist. Wenn der Wert an Quelle A kleiner oder gleich dem Wert an Quelle B ist, ist der Befehl logisch wahr. Quelle A muss eine Adresse sein. Quelle B kann entweder eine Programmkonstante oder eine Adresse sein. Werte werden in Zweierkomplementform gespeichert. Größer-als-Befehl (GRT) Verwenden Sie den GRT-Befehl, um zu prüfen, ob ein Wert (Quelle A) größer als ein anderer (Quelle B) ist. Wenn der Wert an Quelle A größer als der Wert an Quelle B ist, ist der Befehl logisch wahr. Größer-als-oder-gleich-Befehl (GEQ) Verwenden Sie den GEQ-Befehl, um zu prüfen, ob ein Wert (Quelle A) größer oder gleich einem anderen (Quelle B) ist. Wenn der Wert an Quelle A größer oder gleich dem Wert an Quelle B ist, ist die Anweisung logisch wahr. Maskierter Vergleich auf Gleichheit (MEQ) Verwenden Sie die MEQ-Anweisung, um Daten an einer Quelladresse mit Daten an einer Vergleichsadresse zu vergleichen. Die Verwendung dieser Anweisung ermöglicht es, Teile der Daten durch ein separates Wort zu maskieren. Quelle ist die Adresse des Werts, den Sie vergleichen möchten. Maske ist die Adresse der Maske, durch die die Anweisung Daten verschiebt. Die Maske kann ein hexadezimaler Wert sein. Vergleich ist ein ganzzahliger Wert oder die Adresse der Referenz. Wenn die 16 Datenbits an der Quelladresse gleich den 16 Datenbits an der Vergleichsadresse sind (abzüglich maskierter Bits), ist die Anweisung wahr. Die Anweisung wird falsch, sobald sie eine Nichtübereinstimmung erkennt. Grenzwerttest-Anweisung (LIM) Verwenden Sie die LIM-Anweisung, um Werte innerhalb oder außerhalb eines angegebenen Bereichs zu testen, je nachdem, wie Sie die Grenzwerte festlegen. Die Werte für Untergrenze, Test und Obergrenze können Wortadressen oder Konstanten sein, beschränkt auf die folgenden Kombinationen: Wenn der Testparameter eine Programmkonstante ist, müssen sowohl der Untergrenze- als auch der Obergrenze-Parameter Wortadressen sein. Wenn der Testparameter eine Wortadresse ist, können die Untergrenze- und Obergrenze-Parameter entweder eine Programmkonstante oder eine Wortadresse sein. Wahr/Falsch-Status der LIM-Anweisung Wenn die Untergrenze einen Wert hat, der gleich oder kleiner als die Obergrenze ist, ist die Anweisung wahr, wenn der Testwert zwischen den Grenzwerten liegt oder gleich einem der Grenzwerte ist. Wenn die Untergrenze einen Wert hat, der größer als die Obergrenze ist, ist die Anweisung falsch, wenn der Testwert zwischen den Grenzwerten liegt.
  16. 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:
  17. Grundlagen des Kontaktplans in der SPS-Programmierung Kontaktplanlogik war ursprünglich eine schriftliche Methode zur Dokumentation des Entwurfs und der Konstruktion von Relaisgestellen, wie sie in der Fertigung und Prozesssteuerung verwendet werden. Jedes Gerät im Relaisgestell wurde im Kontaktplan durch ein Symbol dargestellt, wobei die Verbindungen zwischen diesen Geräten angezeigt wurden. Darüber hinaus wurden auch andere externe Elemente des Relaisgestells wie Pumpen, Heizungen usw. im Kontaktplan angezeigt. Kontaktplanlogik hat sich zu einer Programmiersprache entwickelt, die ein Programm durch ein grafisches Diagramm darstellt, das auf den Schaltplänen der Relaislogik-Hardware basiert. Kontaktplanlogik wird zur Entwicklung von Software für speicherprogrammierbare Steuerungen (SPS) verwendet, die in industriellen Steuerungsanwendungen verwendet werden. Der Name basiert auf der Beobachtung, dass Programme in dieser Sprache Leitern ähneln, mit zwei vertikalen Schienen und einer Reihe horizontaler Sprossen dazwischen. Während Kontaktplandiagramme früher die einzige verfügbare Notation zum Aufzeichnen von speicherprogrammierbaren Steuerungsprogrammen waren, sind heute andere Formen in IEC 61131-3 standardisiert. Kontaktplanlogik wird häufig zum Programmieren von SPSen verwendet, wenn eine sequentielle Steuerung eines Prozesses oder Fertigungsvorgangs erforderlich ist. Kontaktplanlogik ist für einfache, aber kritische Steuerungssysteme nützlich. Da speicherprogrammierbare Steuerungen immer ausgefeilter wurden, wurde sie auch in sehr komplexen Automatisierungssystemen verwendet. Häufig wird das Kontaktplanlogikprogramm in Verbindung mit einem HMI-Programm verwendet, das auf einer Computerarbeitsstation ausgeführt wird. Beispiel eines einfachen Kontaktplanlogikprogramms Die Sprache selbst kann als eine Reihe von Verbindungen zwischen logischen Prüfern (Kontakten) und Aktoren (Spulen) betrachtet werden. Wenn ein Pfad zwischen der linken Seite der Sprosse und dem Ausgang durch aktivierte (wahre oder „geschlossene“) Kontakte verfolgt werden kann, ist die Sprosse wahr und das Speicherbit der Ausgangsspule ist aktiviert oder wahr. Wenn kein Pfad verfolgt werden kann, ist der Ausgang falsch (0) und die „Spule“ wird analog zu elektromechanischen Relais als „stromlos“ betrachtet. Die Kontaktplanlogik verfügt über Kontakte, die Schaltkreise zur Steuerung von Spulen schließen oder unterbrechen. Jede Spule oder jeder Kontakt entspricht dem Status eines einzelnen Bits im Speicher des programmierbaren Controllers. Im Gegensatz zu elektromechanischen Relais kann ein Kontaktplanprogramm beliebig oft auf den Status eines einzelnen Bits verweisen, was einem Relais mit einer unendlich großen Anzahl von Kontakten entspricht. Sogenannte „Kontakte“ können sich auf physische („harte“) Eingaben an den programmierbaren Controller von physischen Geräten wie Drucktasten und Endschaltern über ein integriertes oder externes Eingabemodul beziehen oder den Status interner Speicherbits darstellen, die an anderer Stelle im Programm generiert werden können. Jede Sprosse der Kontaktplansprache verfügt normalerweise über eine Spule ganz rechts. Einige Hersteller erlauben möglicherweise mehr als eine Ausgangsspule auf einer Sprosse. —( )— Eine normale Spule, die immer dann aktiviert wird, wenn ihre Sprosse geschlossen ist. —()— Eine „Nicht“-Spule, die immer dann aktiviert wird, wenn ihre Sprosse geöffnet ist. —[ ]— Ein normaler Kontakt, der immer dann geschlossen wird, wenn seine entsprechende Spule oder ein Eingang, der sie steuert, aktiviert wird. —[]— Ein „Nicht“-Kontakt, der geschlossen wird, wenn die entsprechende Spule oder ein Eingang, der sie steuert, nicht aktiviert ist. Die „Spule“ (Ausgang einer Sprosse) kann einen physischen Ausgang darstellen, der ein an den programmierbaren Controller angeschlossenes Gerät steuert, oder ein internes Speicherbit zur Verwendung an anderer Stelle im Programm. Logisches UND ------[ ]--------------[ ]----------------( ) Schlüsselschalter 1 Schlüsselschalter 2 Türmotor Das Obige realisiert die Funktion: Türmotor = Schlüsselschalter 1 UND Schlüsselschalter 2 Diese Schaltung zeigt zwei Schlüsselschalter, die Sicherheitspersonal verwenden könnte, um einen Elektromotor an einer Banktresortür zu aktivieren. Wenn die normalerweise offenen Kontakte beider Schalter geschlossen werden, kann Strom zum Motor fließen, der die Tür öffnet. Logisches UND mit NICHT ------[ ]--------------[]----------------( ) Tür schließen Hindernis Türmotor Das Obige realisiert die Funktion: Türmotor = Tür schließen UND NICHT (Hindernis). Diese Schaltung zeigt einen Druckknopf, der eine Tür schließt, und einen Hindernisdetektor, der erkennt, ob sich etwas im Weg der sich schließenden Tür befindet. Wenn der normalerweise offene Druckknopfkontakt schließt und der normalerweise geschlossene Hindernisdetektor geschlossen ist (kein Hindernis erkannt), kann Strom zum Motor fließen, der die Tür schließt. Logisches ODER --+-------[ ]-------+-----------------( ) | Äußeres Entriegeln | Entriegeln | | +-------[ ]-------+ Inneres Entriegeln Das Obige realisiert die Funktion: Entriegeln = Inneres Entriegeln ODER Äußeres Entriegeln Diese Schaltung zeigt die beiden Dinge, die die elektrischen Türschlösser eines Autos auslösen können. Der Fernbedienungsempfänger wird immer mit Strom versorgt. Der Schlossmagnet wird mit Strom versorgt, wenn einer der beiden Kontaktsätze geschlossen ist. Industrielles STOP/START In der üblichen industriellen Start-/Stopp-Verriegelungslogik haben wir eine „Start“-Taste zum Einschalten eines Motorschütz und eine „Stopp“-Taste zum Ausschalten des Schützes. Wenn die „Start“-Taste gedrückt wird, wird der Eingang über den Öffnerkontakt der „Stopp“-Taste wahr. Wenn der „Run“-Eingang wahr wird, schließt der versiegelte „Run“-Schließerkontakt parallel zum „Start“-Schließerkontakt und hält die Eingangslogik wahr (verriegelt oder versiegelt). Nachdem der Schaltkreis verriegelt wurde, kann die „Stopp“-Taste gedrückt werden, wodurch sich sein Öffnerkontakt öffnet und folglich der Eingang falsch wird. Der „Run“-Schließerkontakt öffnet sich dann und die Schaltkreislogik kehrt in ihren Ruhezustand zurück. --+----[ ]--+----[]----( ) | Start | Stopp Lauf | | +----[ ]--+ laufen -------[ ]--------------( ) Motor laufen lassen Das Obige realisiert die Funktion: laufen = (Start ODER laufen) UND (NICHT Stopp) Beachten Sie die Verwendung von Klammern, um die logische ODER-Funktion zu gruppieren, bevor die logische UND-Funktion ausgewertet wird (die eine höhere Betriebspriorität hat). Beachten Sie auch die Verwendung von NICHT, um die „Stopp“-NC-Kontaktlogik darzustellen. Diese Verriegelungskonfiguration ist eine gängige Redewendung in der Kontaktplanlogik. In der Kontaktplanlogik wird sie als Seal-In-Logik bezeichnet. Der Schlüssel zum Verständnis der Verriegelung liegt in der Erkenntnis, dass der „Start“-Schalter ein Momentschalter ist (sobald der Benutzer die Taste loslässt, ist der Schalter wieder geöffnet). Sobald der „Lauf“-Magnetschalter einrastet, schließt er den „Lauf“-NO-Kontakt, der den Magnetschalter einrastet. Das Öffnen des „Start“-Schalters hat dann keine Wirkung. Aus Sicherheitsgründen sollte ein Not-Aus und/oder Stopp in Reihe mit dem Startschalter fest verdrahtet sein, und die Relaislogik sollte dies widerspiegeln. --[]----[]----+--[ ]--+---------( ) ES Stop | Start | Motor | | +--[ ]--+ Run Komplexe Logik Hier ist ein Beispiel dafür, wie zwei Sprossen in einem Leiterlogikprogramm aussehen könnten. In realen Anwendungen kann es Hunderte oder Tausende von Sprossen geben. Normalerweise wird komplexe Leiterlogik von links nach rechts und von oben nach unten „gelesen“. Wenn jede der Linien (oder Sprossen) ausgewertet wird, kann die Ausgangsspule einer Sprosse als Eingang in die nächste Stufe der Leiter einspeisen. In einem komplexen System gibt es viele „Sprossen“ auf einer Leiter, die in der Reihenfolge der Auswertung nummeriert sind. 1. ----[ ]---------+----[ ]-----+----( ) Schalter | HiTemp | A/C | | +----[ ]-----+ Feucht 2. ----[ ]----[]--------------------( ) A/C Heizen Kühlen Zeile 1 realisiert die Funktion: A/C = Schalter UND ( HiTemp ODER Feucht ) Zeile 2 realisiert die Funktion: Kühlen = A/C UND ( NICHT Heizen ) Dies stellt ein etwas komplexeres System für Sprosse 2 dar. Nachdem die erste Zeile ausgewertet wurde, wird die Ausgangsspule „A/C“ in Sprosse 2 eingespeist, die dann ausgewertet wird, und die Ausgangsspule „Kühlen“ könnte in ein Ausgangsgerät „Kompressor“ oder in Sprosse 3 auf der Leiter eingespeist werden. Dieses System ermöglicht die Aufschlüsselung und Auswertung sehr komplexer Logikdesigns. Zusätzliche Funktionalität Zusätzliche Funktionalität kann einer Leiterlogikimplementierung vom SPS-Hersteller als spezieller Block hinzugefügt werden. Wenn der spezielle Block eingeschaltet wird, führt er Code für vorgegebene Argumente aus. Diese Argumente können innerhalb des speziellen Blocks angezeigt werden. +-------+ -----[ ]--------------------+ A +---- Fernentriegelung +-------+ Fernzähler +-------+ -----[ ]--------------------+ B +---- Innenentriegelung +-------+ Innenzähler +--------+ --------------------+ A + B +----------- | in C | +--------+ Addierer In diesem Beispiel zählt das System, wie oft die Innen- und Fernentriegelungstasten gedrückt werden. Diese Informationen werden in den Speicherplätzen A und B gespeichert. Speicherplatz C enthält die Gesamtzahl der elektronischen Türentriegelungen. SPS haben viele Arten von Spezialblöcken. Dazu gehören Timer, Rechenoperatoren und Vergleiche, Tabellennachschlagevorgänge, Textverarbeitung, PID-Steuerung und Filterfunktionen. Leistungsstärkere SPS können auf einer Gruppe interner Speicherplätze arbeiten und eine Operation auf einem Adressbereich ausführen, um beispielsweise einen physischen sequentiellen Trommelregler oder eine Finite-State-Maschine zu simulieren. In einigen Fällen können Benutzer ihre eigenen Spezialblöcke definieren, die eigentlich Unterprogramme oder Makros sind. Die große Bibliothek an Spezialblöcken und die schnelle Ausführung haben die Verwendung von SPSen zur Implementierung sehr komplexer Automatisierungssysteme ermöglicht.
  18. Erweiterte SPS-Programmierung zur Sortierung defekter Teile, um zwischen guten und schlechten Teilen zu unterscheiden und diese dann über Förderbänder zu transportieren. Erweiterte SPS-Programmierung zur Sortierung defekter Teile Die folgende Simulation zeigt die Identifizierung guter und schlechter Produkte und die Sortierung der Produkte anhand ihrer Qualität mithilfe der SPS-Kontaktplanlogik. Die Förderbänder werden zum Transport der Produkte verwendet. Die Förderbänder werden gestartet und gestoppt, wenn die Produkte auf das Förderband geliefert werden und während des Bohrvorgangs. Die Bohrmaschine wird zum Bohren der Produkte gemäß der Konstruktion verwendet. Manchmal kann der Bohrvorgang die Produkte beschädigen. Ein Sensor erkennt die Qualität der Produkte und ein Schieber wird verwendet, um die schlechten Produkte in einen anderen Lagerbehälter zu schieben. SPS-Ein- und Ausgänge Die folgende Tabelle listet die erforderlichen Ein- und Ausgänge des SPS-Systems auf. Typ Gerätenr. Gerätename Betrieb Eingang X0 Bohren EIN während des Bohrens. Eingang X1 Teil wird gebohrt Ein Teil wird zugeführt, wenn Y0 eingeschaltet ist: Ein großer Metallwürfel. Eingang X2 Richtig gebohrt EIN, wenn das Teil richtig gebohrt ist. Das vorherige Ergebnis wird gelöscht, wenn das Bohren beginnt. Eingang X3 Falsch gebohrt EIN, wenn das Teil am linken Ende erkannt wird. Eingang X4 Sensor EIN, wenn das Teil am rechten Ende erkannt wird. Eingang X5 Sensor EIN, wenn das Teil vor dem Schieber erkannt wird. Eingang X10 Sensor EIN, wenn das Teil nicht richtig gebohrt ist. Das vorherige Ergebnis wird gelöscht, wenn das Bohren beginnt. Ausgabe Y0 Versorgungskommando Wenn Y1 eingeschaltet ist, bewegt sich das Förderband vorwärts. Ausgabe Y1 Förderband vorwärts Wenn Y3 eingeschaltet ist, bewegt sich das Förderband vorwärts. Ausgabe Y2 Beginnen Sie mit dem Bohren Beginnt mit dem Bohren, wenn Y2 eingeschaltet ist (ein Prozesszyklus, der nicht zwischendurch gestoppt werden kann). Ausgabe Y3 Förderband vorwärts Fährt aus, wenn Y5 eingeschaltet ist, und ein, wenn Y5 ausgeschaltet ist. Der Schieber kann nicht mitten im Hub angehalten werden. Ausgabe Y5 Pusher Fährt aus, wenn Y5 eingeschaltet ist, und ein, wenn Y5 ausgeschaltet ist. Der Schieber kann in der Mitte des Hubs nicht angehalten werden. Programmbeschreibung Dieses Projekt zielt darauf ab, mithilfe von Sensoren zwischen guten und defekten Teilen zu unterscheiden und sie entsprechend zu sortieren. Das Projekt besteht aus zwei Hauptbereichen: Gesamtsteuerung und Bohrsteuerung. Gesamtsteuerung Auf dem Bedienfeld befindet sich ein Druckknopf namens PB1 (X20). Wenn Sie PB1 drücken, löst dies den Befehl „Zufuhr“ (Y0) für den Trichter aus, wodurch dieser Teile zuführt. Wenn Sie PB1 loslassen, wird der Befehl „Zufuhr“ deaktiviert und der Trichter angehalten. Auf dem Bedienfeld befindet sich ein Schalter namens SW1 (X24). Wenn Sie SW1 einschalten, beginnen die Förderbänder, sich vorwärts zu bewegen. Wenn Sie SW1 ausschalten, werden die Förderbänder angehalten. Bohrsteuerung Besprechen wir nun die Steuerung des Bohrers: Wenn der Teil unter dem Bohrsensor (X1) im Bohrer aktiviert wird, hält das Förderband an. Der Bohrvorgang beginnt, wenn der Befehl „Bohrung starten“ (Y2) aktiviert wird. Es stoppt, wenn der Bohrsensor (X0) aktiviert wird. Nach einem vollständigen Bohrzyklus wird, wenn „Bohrung starten“ (Y2) aktiviert wird, entweder der Sensor „Richtig gebohrt“ (X2) oder „Falsch gebohrt“ (X3) ausgelöst. Beachten Sie, dass der Bohrer nicht mitten im Betrieb gestoppt werden kann. In dieser SPS-Simulation wird jedes dritte Teil als defekt betrachtet (ein Teil mit mehreren Löchern fällt ebenfalls in die Kategorie „defekt“). Wenn der Sensor „Teil erkennen“ (X10) im Schieber ein defektes Teil identifiziert, stoppt das Förderband und der Schieber bewegt das Teil auf das „Defekt“-Fach. Denken Sie daran, dass der Schieber vollständig ausgefahren wird, wenn der Betätigungsbefehl für ihn EIN ist. Wenn der Befehl AUS ist, fährt der Schieber vollständig ein. Ein Teil, das die Prüfung besteht, wird weiter auf dem Förderband zum „OK“-Fach am rechten Ende geführt. SPS-Programmierung
  19. Este artículo trata sobre el método de resolución de problemas de programación de PLC. En los PLC industriales donde se utilizan miles de entradas y salidas, sabemos la duración de los programas de PLC, depende de la aplicación o el uso de la planta. Solucionar problemas de programas de PLC Siemens Algunas veces, las personas pueden cambiar los parámetros lógicos sin saberlo y esto puede provocar una falla. Incluso se crean algunas fallas durante la etapa de diseño lógico debido a la complejidad del diseño. El software siemens plc tiene diferentes herramientas útiles disponibles para solucionar las fallas generadas en los programas. Las fallas pueden ser como superposición de direcciones, múltiples instancias de salida iguales, superposición de direcciones de bits de memoria, muchas veces se usa un solo programa para trabajar una y otra vez, etc. Para descubrir estos problemas, hay cuatro tipos de ventanas disponibles en el software de Siemens que nos ayudarán a solucionar los problemas. Ellos son: Referencia cruzada Estructura de llamada Lista de tareas Estructura de dependencia Analicemos cómo usarlos en nuestro programa para solucionar problemas y dónde encontrarlos en el software. Referencia cruzada La referencia cruzada se utiliza para encontrar todas las entradas y salidas digitales y analógicas utilizadas en la lógica. Nos ayudará a saber la cantidad de veces que se utilizan las E/S en el programa y también llevará a los usuarios directamente a la ubicación específica de las E/S en las páginas lógicas. A continuación se muestra un ejemplo de uno de los programas, en el que puede ver cómo se ve la tabla de referencias cruzadas. Contiene toda la información como direccionamiento, idioma del programa, entradas y salidas utilizadas, etc. Estructura de llamada Cuando desee saber qué bloque se utiliza en la programación, se utiliza la estructura de llamada. Esta es una función inversa de referencia cruzada en la que llegamos a saber cuántas veces se usan SFC y bloques FB en OB (Bloque de organización) y aquí llegamos a saber cuántas veces se usan OB en SFC y FB. Lista de tareas La lista de asignaciones es una característica muy útil a la hora de saber cuántas entradas, salidas, temporizadores y contadores utilizamos en nuestra aplicación y cuántos de ellos aún quedan, para poder utilizarlos en futuras lógicas. Estructura de dependencia La estructura de dependencia se utiliza para mostrar dónde se utilizan todos y cada uno de los bloques dentro de la programación. Pero en el paso 7 no lo llevará directamente a la ubicación; sin embargo, en TIA PORTAL lo llevará a la ubicación donde está escrito el programa. NOTA: Para abrir estas ventanas en el paso 7, use la información como se muestra en Dibujo. Después de hacer clic en mostrar tienes las opciones. En TIA PORTAL, siga el siguiente paso que se muestra en el dibujo.
  20. En esta publicación, daré algunas instrucciones básicas que provienen de mi experiencia personal para brindarle una guía sobre cómo es la resolución de problemas en sistemas de automatización (PLC/DCS): La resolución de problemas de los sistemas de automatización tiene en general la misma táctica para encontrar la solución a la falla del sistema. Sin embargo, dependiendo de la complejidad y el tamaño de la aplicación y del sistema de automatización específico, los pasos para la solución de problemas serían un poco diferentes o más complicados. El mejor conocimiento se obtiene mediante la práctica y las condiciones reales de resolución de problemas. Practicar una y otra vez es la solución en mi opinión. ¡¡Cualquier suplemento y comentario es bienvenido!! Solucionar problemas de un sistema PLC Antes de continuar, aceptamos que los sistemas de automatización modernos tienen PLC para controlar la aplicación. Si tenemos una aplicación pequeña entonces el sistema posiblemente tenga un microPLC (o nanoPLC) u otro tipo de controlador compacto (muchas veces esto depende de la aplicación). Dije sistemas de automatización modernos porque en el pasado (antes de que los PLC y otros controladores compactos fueran conocidos y utilizados por las empresas de desarrollo de automatización), el control de un sistema de automatización se realizaba únicamente con relés. Investigar el programa del controlador Lo primero que debemos hacer es averiguar si cumplimos las condiciones adecuadas para la operación que está defectuosa. Para ello debemos encontrar la “mente” de nuestro sistema. Esta “mente” es el controlador (ya sea una especie de PLC u otro tipo de controlador compacto). Si no cumplimos con las condiciones adecuadas, entonces debemos investigar el programa del controlador para averiguar el origen del problema (SIEMPRE revise que aparezcan mensajes en SCADA. Esto guiará más rápido a la solución porque en SCADA aparece información importante como falla /descripción de alarma o una dirección específica en el PLC). Lo que descubriremos es... ya sea una señal defectuosa del hardware (por ejemplo, una señal digital de un botón o una señal digital de un interruptor mecánico o una señal digital de un contacto de relé que "no llega" a la entrada del controlador o una señal analógica que tiene valores incorrectos) o una señal defectuosa de otro sistema de software (por ejemplo, SCADA). Investigar las condiciones que surgieron del hardware. Cuando concluimos sobre el origen del problema, entonces dejamos por un momento el programa del controlador y salimos a comprobar nuestras conclusiones. Ya deberíamos haber encontrado los dibujos del sistema de automatización para poder ver las conexiones de los componentes que queremos comprobar. Por ejemplo, si descubrimos que tenemos una señal digital de un botón que “no llega” a la entrada del controlador, entonces tomamos nuestro multímetro y vamos a revisar el botón. Si el botón está bien, investigamos si hay algún fusible entre el botón y la entrada del controlador. Si lo hay, lo comprobamos. Si el fusible está bien, entonces investigamos el recorrido del cable. Quizás tengamos un cable cortado. Si el cable está bien, entonces quizás tengamos un problema de hardware en la entrada del controlador y quizás debamos cambiar este módulo de entrada por uno nuevo o arreglarlo (las reparaciones deben ser realizadas por personal calificado). Investigar el hardware tras las salidas de nuestro controlador. Si concluimos que estamos en las condiciones adecuadas, entonces debemos revisar los componentes que tenemos entre el controlador y el equipo defectuoso (nos referimos al equipo que no funciona como debería). Por ejemplo, si tenemos un horno industrial que no cierra la puerta (aunque tengamos las condiciones para cerrar la puerta desde el programa), tal vez tengamos un relé defectuoso que se energiza desde el PLC (u otro controlador) para cerrar la puerta. Si el relé está bien, entonces quizás tengamos problema con el motor que se encarga de cerrar la puerta. Debemos verificar el estado del motor (bobinas del motor, piezas mecánicas) Si el motor está bien, debemos verificar los valores de voltaje que llegan a la entrada del motor (con nuestro multímetro) y también verificar el estado del cable si las medidas del multímetro no son correctas. Si el voltaje y el cable están bien, entonces tal vez tengamos un atasco en algún lugar de la construcción de la puerta del horno. ¡Las unidades de potencia son una “ventaja”! Generalmente, cuando tenemos unidades de potencia (variadores) en nuestro sistema de automatización para accionar un motor, entonces debemos tener juntos el manual de la unidad de potencia específica. Esto se debe a que las unidades de potencia cuentan con un display digital o displays LED de 7 segmentos o simples LEd’s para informarnos sobre la falla que existe en su interior o en el motor accionado. Esto es muy útil para ingenieros y técnicos. Además, las unidades de potencia modernas tienen algoritmos especiales para verificar el estado del motor, los valores de voltaje y corriente, etc. Por ejemplo, si un motor se sobrecalienta, el variador nos informará de ello porque verifica continuamente el sensor de temperatura (por ejemplo, el termistor) que se encuentra dentro de la carcasa del motor. Luego debemos revisar el motor si realmente está sobrecalentado o tenemos algún sensor de temperatura defectuoso que debemos reemplazar. Verificar el estado de los controladores Algunas veces, cuando la CPU de nuestro PLC detecta una condición inaceptable en el flujo del programa, entonces pasa al modo “STOP” y posiblemente un led parpadea indicando este mal funcionamiento. Además, si ocurre algún otro mal funcionamiento en el sistema, algunos LED indican el tipo de falla (consulte el manual del controlador para obtener más información). El mismo comportamiento tiene en general cualquier tipo de controlador que se establezca en un sistema de automatización. Sistemas de seguridad Muchos sistemas de automatización (a menudo máquinas de producción) tienen en su diseño algunos "sistemas de seguridad" como "Pilz" o "Siemens Sirius". Se trata de controladores compactos e inteligentes para controlar situaciones como la apertura de puertas protectoras o la parada de emergencia. Cuando ocurre algo de esto, el sistema de seguridad detiene el funcionamiento del sistema de automatización para protección de personas y máquinas. Para restablecer el sistema de automatización al estado funcional, existen instrucciones especiales en los manuales de los sistemas de seguridad. La conclusión de todo lo anterior es tener una táctica paso a paso para la resolución de problemas. Con el paso del tiempo y adquiriendo más experiencia, quizás nos saltemos algunos pasos, sobre todo si somos el personal responsable del mantenimiento de un sistema con el que nos topamos a diario. Sin embargo, una buena táctica es ser organizado y paciente. ¡Buena suerte con tus esfuerzos!
  21. En este post entenderemos cómo filtrar entradas digitales y analógicas en un PLC. Como dice el tema, el filtrado es un medio para eliminar picos no deseados en las señales recibidas en el PLC. Su función es eliminar las fluctuaciones y pasar sólo los cambios de señal adecuados en un momento determinado al PLC. Dentro de un PLC, el circuito de filtro viene primero y luego viene el circuito de procesamiento de entrada del PLC, que acepta la entrada filtrada final y la utiliza para su lógica. Filtros de entrada digital PLC Consideremos primero la entrada digital. La función de la entrada con un filtro es aceptar una entrada de campo digital y pasarla a un circuito de procesamiento a través del filtro. Si ve la imagen de abajo, hay dos partes. En primer lugar, el círculo verde indica que se aprobará el cambio de entrada y el círculo rojo muestra que no se aprobará el cambio de entrada. En la primera parte (arriba), hay dos cambios en los que hay muchas fluctuaciones y los cambios de entrada se omitirán. Hay dos cambios en los que no hay fluctuaciones y ese cambio de entrada se pasará al circuito de procesamiento. Lo mismo es la teoría con la segunda parte (abajo). Esto es posible filtrando. El filtrado se define por un factor o tiempo. Supongamos que establece un tiempo de 3 ms. La función del filtro es aceptar solo el cambio de entrada que se mantiene por encima de 3 ms. Si la entrada cambia antes de 3 ms, esa entrada no se considerará y se ignorará. Esto significa que se desprecian los impulsos perturbadores cortos y de alta frecuencia. Esta lógica es la misma que la del temporizador antirrebote que escribimos en la lógica del PLC. En la imagen de abajo, la lámpara se encenderá solo cuando la entrada del botón de inicio permanezca alta durante 3 segundos. Esta es la misma lógica utilizada en un filtro de paso digital. Pasará el cambio de entrada a la parte de procesamiento solo cuando esa entrada mantenga un estado (alto o bajo) durante el tiempo establecido. Además del tiempo, como comentamos, algunos PLC tienen la opción de configurar un factor en lugar del tiempo. El factor calcula el tiempo interno y decide el nivel de filtrado. Cuanto mayor sea el valor del factor, mayor será el poder de filtrado. Filtros de entrada analógica PLC Ahora veamos el filtrado en entradas analógicas. Como las entradas analógicas son de naturaleza variable, la lógica de filtro para ellas no se puede implementar de la misma manera que para las entradas digitales. Entonces, en las entradas analógicas, se utiliza la lógica de promedio. El filtro promediará los valores alcanzados en un tiempo determinado y dará un valor final promedio para ese tiempo. Consulte la imagen a continuación para ver el estudio. El primero: el color azul tiene un factor de 1. El segundo, el color verde, tiene un factor de 2. El tercero: el color naranja tiene un factor de 3. El cuarto: el color marrón tiene un factor de 4. A medida que aumenta el valor del factor de filtro, puede ver que la forma de la señal mejora al filtrar la señal a un valor más nítido. En un tiempo determinado, el filtro promediará los valores que obtiene de la entrada; y, según las fórmulas utilizadas en él, dará el resultado promedio final por tiempo. Entonces, a medida que aumenta el factor de filtro o ponderación, obtenemos un valor más fino de una señal analógica con menos interferencia. Normalmente se utiliza para este fin un filtro de primer paso. De esta manera, concluimos que el filtrado es de gran utilidad para reducir el ruido no deseado de la entrada de campo y pasar valores adecuados, que también protegerán el circuito de entrada del PLC de daños; si se producen picos altos o no deseados.
  22. leikang

    Arquitectura DCS versus PLC

    La principal diferencia entre DCS y PLC es el modelo de negocio que analizamos comparando la arquitectura DCS versus PLC. Arquitectura DCS versus PLC Se puede decir que el modelo de negocio DCS se basa en un sistema integrado monolítico de un solo fabricante. Arquitectura DCS Para un DCS, el controlador, el subsistema de E/S, el software del servidor de base de datos, el software de ingeniería y el software del operador son todos una única unidad monolítica diseñada en conjunto y solo funcionan entre sí. No es posible utilizar componentes de terceros. No es posible utilizar ninguno de estos componentes en ningún otro sistema. Un DCS utiliza una red de subsistema de E/S y una red de control basada en Ethernet estándar, pero con un protocolo de aplicación propietario y, por lo general, solo con un modelo particular aprobado de conmutadores Ethernet. Figura 1 En un DCS todos los componentes provienen del mismo fabricante Solo se permite una versión específica de Windows y solo en un tipo de computadora aprobada enviada por el fabricante del DCS. Estas restricciones permiten al fabricante de DCS probar todo en conjunto de manera muy exhaustiva, a gran escala, con mucha carga y con muchos controladores y estaciones de trabajo. También se prueban juntas aplicaciones como control de lotes, control avanzado y ajuste automático, etc. Esto garantiza que no haya conflictos de compatibilidad ni dependencias imprevistas. Es posible realizar pruebas exhaustivas a gran escala porque básicamente hay un solo tipo de cada componente, por lo que solo hay una o muy pocas combinaciones. El software de terceros solo está permitido en “estaciones de aplicaciones” separadas donde no puede entrar en conflicto con las aplicaciones nativas del DCS y debe ser probado y aprobado por el fabricante del DCS; en la lista blanca. Un DCS es monolítico y utiliza el mismo subsistema de E/S, controlador y software de la misma marca, y una única plataforma de computadora y sistema operativo. Esto ha sido probado exhaustivamente a muy gran escala. Soporte a largo plazo de DCS Los sistemas suelen permanecer operativos durante 15 años o más. Durante este tiempo, habrá varias versiones de Windows, paquetes de servicio, revisiones, muchas actualizaciones de definiciones de virus y también será necesario reemplazar el hardware de la computadora. Por lo general, DCS solo admite un único tipo de software antivirus y cada vez que hay una nueva definición de virus o cuando hay un paquete de servicio o revisión del sistema operativo Windows, el sistema prueba nuevamente todo el conjunto monolítico de todo el hardware y software. proveedor antes del lanzamiento, lo que garantiza que la definición de virus y el paquete de servicio se puedan implementar sin conflictos de compatibilidad. Actualización del DCS Las versiones de DCS también se actualizan como una única unidad monolítica de todo el hardware y software, como el firmware de la tarjeta de E/S, el firmware del controlador, el software del servidor, el software de la estación de ingeniería, el software de la estación del operador y cualquier otro software, todos se actualizan juntos. Cada vez que hay una nueva versión del sistema, el fabricante del sistema ha probado minuciosamente todos estos componentes juntos a gran escala para garantizar que todos sean compatibles entre sí. Además, el proceso de transferencia directa en línea de la versión anterior a la nueva versión se ha probado minuciosamente a gran escala, lo que garantiza una implementación sin problemas en el sitio. Es esta tranquilidad que proporcionan las pruebas exhaustivas y a gran escala lo que hace que el DCS sea muy popular en grandes instalaciones como complejos petroquímicos. Estas pruebas resultan prácticas gracias a las pocas combinaciones en un sistema monolítico. Arquitectura PLC / Modelo de Negocio Se puede decir que el modelo de negocio de PLC se basa en una arquitectura flexible realizada por un integrador de sistemas (SI). Arquitectura PLC La arquitectura del PLC es muy flexible y cada componente se puede seleccionar libremente entre cualquiera de los muchos proveedores. El PLC es la CPU con software de configuración y subsistema IO. A veces, el subsistema de E/S puede provenir de un tercero. Incluso las tarjetas de E/S que se conectan al backplane pueden provenir de terceros. El software HMI suele ser de terceros. Normalmente es mejor un servidor OPC nativo del fabricante del PLC, pero a veces se utilizan servidores OPC de terceros. Figura 2 Para un PLC se integran componentes de diferentes fabricantes Básicamente, cualquier PLC funciona con cualquier subsistema de E/S, servidor OPC y software HMI porque se utilizan protocolos estándar como PROFIBUS-DP, PROFINET, Modbus/RTU, Modbus/TCP, DeviceNet y EtherNet/IP, así como OPC, etc. . El equipo de red, las computadoras y la versión de Windows se pueden seleccionar libremente. Algunos componentes que no funcionan están en la lista negra. Figura 3 DCS utiliza un único proveedor, mientras que las soluciones PLC combinan varios proveedores, lo que genera una gran cantidad de combinaciones. Nota: Actualmente también está disponible un proveedor de paquete de PLC único Esta flexibilidad permite cientos de combinaciones de hardware y software, lo que hace imposible que estos fabricantes se reúnan para probar todas las combinaciones posibles de su hardware y software en cada versión de Windows antes de que una planta decida comprar. Los fabricantes involucrados pueden probar algunas combinaciones, pero pueden o no ser a gran escala con cargas pesadas. Un PLC permite cualquier combinación de subsistema de E/S, CPU y software HMI/SCADA, en una amplia variedad de plataformas informáticas y de sistemas operativos. No se pueden probar todas las combinaciones. El fabricante de PLC puede suministrar todos los componentes de hardware y software, todos del mismo fabricante, ya que muchos fabricantes de PLC han adquirido empresas de HMI. Si es así, es posible que esta combinación en particular haya sido probada más exhaustivamente que las otras combinaciones probadas. Las aplicaciones auxiliares de terceros, como control de lotes, control avanzado y autoajuste, etc., generalmente no se prueban juntas, ya que dan como resultado un número aún mayor de combinaciones. PLC utiliza software de configuración propietario al igual que DCS. Es decir, no puede utilizar software de configuración de terceros para su PLC, al igual que un DCS. Un servidor OPC nativo para el PLC es mejor que un servidor OPC de terceros porque el software de configuración del PLC generalmente configura automáticamente el espacio de direcciones para el servidor OPC. Soporte a largo plazo para PLC Durante los 15 años o más de funcionamiento típico del sistema, habrá varias versiones de Windows, paquetes de servicio, revisiones, muchas actualizaciones de definiciones de virus y también será necesario reemplazar el hardware de la computadora. Normalmente, los PLC no tienen restricciones en cuanto al software antivirus o la versión del sistema operativo Windows, por lo que nuevamente el número de combinaciones de definiciones de virus, paquetes de servicios y revisiones se vuelve demasiado amplio y poco práctico para que estos fabricantes se reúnan para probar cada nueva combinación posible antes de una implementación en plantas para garantizar que no habrá conflictos de compatibilidad cuando se implemente en una gran cantidad de combinaciones de hardware y software. El fabricante del PLC puede limitar a un único software antivirus y versión de Windows. Si es así, es posible que esta combinación en particular haya sido probada más exhaustivamente que las otras combinaciones que prueban. Actualización de PLC Para un PLC, los componentes de hardware y software se actualizan individualmente. Es decir, el firmware del subsistema de E/S, el firmware de la CPU y el software de configuración, el servidor OPC, el software HMI y cualquier otro software se actualizan de forma independiente entre sí. Teniendo en cuenta diferentes versiones para cada opción de componentes, el número de combinaciones aumenta en órdenes de magnitud. Esta flexibilidad hace que no sea práctico que estos fabricantes se reúnan para probar todas las combinaciones posibles de nuevas versiones antes de su implementación en las plantas. Probar la transferencia en caliente de una combinación de versiones a otra combinación de versiones se vuelve casi imposible. El fabricante del PLC puede suministrar todos los componentes de hardware y software, limitarse a un único software antivirus y una versión de Windows que se prueban antes de la implementación, y limitarse a un único controlador de servidor de base de datos de subsistema de E/S/estación de operador de PLC/HMI, DCS, sistema PLC. actualizaciones de versiones amplias y pruebe la transferencia directa antes de la implementación. De esta forma se abandonaría la flexibilidad del PLC para alcanzar la robustez de un DCS.
  23. Cuando trabaja en un sistema de automatización industrial para la programación de PLC, tiene requisitos en los que necesita controlar un proceso de forma gradual o paso a paso. Algoritmos de control No puedes simplemente activar o desactivar una lógica para realizar tu trabajo. Puede tener efectos adversos en la salida real de su PLC. Por esta razón, existen varios tipos de métodos de control disponibles en un programa de PLC para realizar las acciones adecuadas. En esta publicación, veremos los diversos métodos de algoritmos de control que se utilizan en un programa de PLC. Control PID Este es, con diferencia, el método de control más famoso. PID utiliza un mecanismo de control de circuito cerrado. Esto significa que primero recibirá la retroalimentación y, según lo que desee, variará la salida en consecuencia. Para ello, el controlador PID utiliza cálculos matemáticos internos con tres parámetros: proporción, integral y derivada. Entonces, si desea controlar una enfriadora con un compresor, entonces el PLC controlará la salida del compresor midiendo primero la temperatura real y verificándola con la cantidad que requiere el usuario. En función de esa diferencia cada vez, la salida del compresor se controlará gradualmente o se encenderá y apagará para mantener la temperatura. Para ello se utilizará un bloque PID en el programa del PLC para realizar esta tarea. Generador de funciones Este es un tipo de método de control muy simple. En el generador de funciones, debe definir una tabla de entrada de n valores. De manera similar, defina una tabla de salida de n valores. Entonces, por ejemplo, si definimos 10 tablas de valores tanto en el lado de entrada como en el de salida, tenemos un elemento de 10 tamaños. Ahora bien, estos 10 elementos tendrán valores diferentes. Si configura 0-100 en el lado de entrada, entonces habremos configurado 0-50 en el lado de salida. Estos 10 elementos son 10 rangos, es decir, 0-10, 10-20, 20-30, etc. En consecuencia, el lado de salida se distribuirá en 10 elementos de 0 a 5, 5 a 10, 10 a 15 y así sucesivamente hasta 50. Cuando una entrada en tiempo real se encuentra entre cualquier valor en el lado de entrada, la salida escalada correspondiente será aprobado. Aquí tiene total flexibilidad para configurar los valores de la tabla de entrada y salida. Control de lógica difusa La lógica difusa es un método relativamente bueno para controlar una salida. Normalmente, tiene dos estados binarios: 0 y 1. Entonces, consideremos si una válvula se puede abrir o cerrar. ¿Pero qué pasa si la válvula se atasca en el medio? No sabemos si la válvula está cerca del estado abierto o cerrado. En ese caso, ayuda si existe un estado entre 0 y 1. Esto ayuda al menos a acercarse a una posibilidad. A esto se le llama lógica quisquillosa. Aquí puedes definir valores cercanos a 0 y 1. Puede ser como 0,9 o 0,2. En consecuencia, puede controlar las salidas cuando se acerque a estos valores. Y cuando alcanza el límite extremo, es decir 0 o 1, puedes abrir o cerrar completamente la válvula. Antes de eso, puedes operar las válvulas gradualmente. Esto aporta un control más preciso al proceso. Entonces, este bloque de control permite una colección de valores que pueden resultar útiles en situaciones impredecibles. Se requiere mucho conocimiento y experiencia para establecer correctamente los valores y conjuntos para que la lógica funcione correctamente. Posición proporcional Esta lógica abrirá o cerrará un dispositivo pulsando los contactos para abrir o cerrar en algún temporizador predefinido establecido por el usuario. Se realiza para un ancho de pulso proporcional a la desviación entre la posición requerida y la posición actual. Debe configurar parámetros de control como cuánto mínimo y máximo limitar la salida, cuánto tiempo permanecerá encendida la salida, la velocidad a la que el dispositivo debe abrirse o cerrarse en %/segundo, etc. El bloque de funciones recibe retroalimentación real, evalúa los temporizadores internos y verifica si la apertura o el cierre se realizan dentro de la velocidad deseada o no. En caso contrario se dará el correspondiente pulso de apertura o cierre. De esta forma, vimos los diversos métodos de algoritmos de control utilizados en la programación de PLC.
  24. Los objetos más elementales en la programación del diagrama de escalera son los contactos y las bobinas, destinados a imitar los contactos y las bobinas de los relés electromecánicos. Los contactos y las bobinas son elementos de programación discretos que tratan con estados variables booleanos (1 y 0; encendido y apagado; verdadero y falso). Cada contacto en un programa PLC de Diagrama de Escalera representa la lectura de un solo bit en la memoria, mientras que cada bobina representa la escritura de un solo bit en la memoria. Las señales de entrada discretas al PLC desde interruptores del mundo real se leen mediante un programa de diagrama de escalera mediante contactos referenciados a esos canales de entrada. En los sistemas PLC heredados, cada canal de entrada discreta tiene una dirección específica que debe aplicarse a los contactos dentro de ese programa. En los sistemas PLC modernos, cada canal de entrada discreta tiene un nombre de etiqueta creado por el programador que se aplica a los contactos dentro del programa. De manera similar, los canales de salida discretos, a los que se hace referencia mediante símbolos de bobina en el diagrama de escalera, también deben llevar algún tipo de dirección o etiqueta con el nombre de la etiqueta. Para ilustrar, imaginaremos la construcción y programación de un sistema de detección de llama redundante para monitorear el estado de la llama de un quemador utilizando tres sensores. El objetivo de este sistema será indicar un quemador “encendido” si al menos dos de los tres sensores indican llama. Si solo un sensor indica llama (o si ningún sensor indica llama), el sistema declarará que el quemador está apagado. El estado del quemador se indicará visiblemente mediante una lámpara que los operadores humanos podrán ver fácilmente dentro del área de la sala de control. El cableado de nuestro sistema se muestra en el siguiente diagrama: Cada sensor de llama emite una señal de voltaje CC que indica la detección de llama en el quemador, ya sea encendido (24 voltios CC) o apagado (0 voltios CC). Estas tres señales de voltaje CC discretas son detectadas por los primeros tres canales de la tarjeta de entrada discreta del PLC. La lámpara indicadora es una bombilla de 120 voltios y, por lo tanto, debe recibir alimentación de una tarjeta de salida discreta de CA, que se muestra aquí en la última ranura del PLC. Para que el programa de escalera sea más legible, asignaremos nombres de etiquetas (direcciones simbólicas) a cada bit de entrada y salida en el PLC, describiendo su dispositivo real en un formato fácil de interpretar. Etiquetaremos los primeros tres canales de entrada discretos como sensor de entrada A, sensor de entrada B y sensor de entrada C, y la salida como quemador de salida encendido. Aquí se muestra un programa en escalera para determinar si al menos dos de los tres sensores detectan llama, con los nombres de las etiquetas haciendo referencia a cada contacto y bobina: Los contactos conectados en serie en un diagrama de escalera realizan la función lógica Y, mientras que los contactos en paralelo realizan la función lógica O. Por lo tanto, este programa de detección de llamas dos de tres podría describirse verbalmente como: “El quemador se enciende si A y B, o B y C, o A y C” Una forma alternativa de expresar esto es usar la notación del álgebra booleana, donde la multiplicación representa la función Y y la suma representa la función O: Quemador_encendido = AB + BC + AC Otra forma más de representar esta relación lógica es utilizar símbolos de puerta lógica: Para ilustrar cómo funcionaría este programa, consideraremos un caso en el que los sensores de llama B y C detectan llama, pero el sensor A no (Nota 1). Esto representa dos de tres buenas condiciones, por lo que esperaríamos que el PLC encienda la luz indicadora de "Quemador encendido" según lo programado. Desde la perspectiva del rack del PLC, veríamos encendidos los LED indicadores de los sensores B y C en la tarjeta de entrada discreta, así como el LED indicador del canal de salida de la lámpara: Nota 1: La razón más probable por la que uno de cada dos sensores de llama no detecta la presencia de una llama es algún tipo de desalineación o suciedad del sensor de llama. De hecho, esta es una buena razón para utilizar un sistema de detección de llama 2 de 3 en lugar de un esquema de detector simple (1 de 1): hacer que el sistema sea más tolerante a problemas ocasionales con los sensores sin comprometer el funcionamiento del quemador. seguridad. Esos dos canales de entrada energizados "establecen" bits (estado 1) en la memoria del PLC que representan el estado de los sensores de llama B y C. El bit del sensor de llama A estará "borrado" (estado 0) porque su canal de entrada correspondiente está desenergizado. El hecho de que el LED del canal de salida esté energizado (y la lámpara indicadora de "Quemador encendido" esté energizada) nos indica que el programa del PLC ha "establecido" el bit correspondiente en el registro de memoria de salida del PLC al estado "1". Una pantalla de bits de registro de entrada y salida muestra los estados de "establecimiento" y "reinicio" del PLC en este momento: Al examinar el programa Diagrama de escalera con la indicación de estado habilitada, vemos cómo solo el par de contactos del medio pasa "potencia virtual" a la bobina de salida: Recuerde que el propósito de un contacto en un programa de PLC es leer el estado de un bit en la memoria del PLC. Estos seis “contactos virtuales” leen los tres bits de entrada correspondientes a los tres sensores de llama. Cada “contacto” normalmente abierto se “cerrará” cuando su bit correspondiente tenga un valor de 1, y se “abrirá” (pasará a su estado normal) cuando su bit correspondiente tenga un valor de 0. Así, vemos aquí que los dos contactos correspondientes al sensor A aparecen sin resaltar (no representando “conductividad” en el circuito del relé virtual) porque el bit de esa entrada está reseteado (0). Los dos contactos correspondientes al sensor B y los dos contactos correspondientes al sensor C aparecen resaltados (representando "conductividad" en el circuito virtual) porque sus bits están configurados (1). Recuerde también que el propósito de una bobina en un programa de PLC es escribir el estado de un bit en la memoria del PLC. Aquí, la bobina "energizada" establece el bit de la salida 0 del PLC en un estado "1", activando así la salida del mundo real y enviando energía eléctrica a la lámpara "Quemador encendido". Tenga en cuenta que el color resaltado no indica que un contacto virtual esté conduciendo energía virtual, sino simplemente que es capaz de conducir energía. Sin embargo, el color resaltado alrededor de una bobina virtual indica la presencia de "poder" virtual en esa bobina. Los contactos y relés no sólo son útiles para implementar funciones lógicas simples, sino que también pueden realizar funciones de enclavamiento. Una aplicación muy común de esto en sistemas PLC industriales es un programa de arranque/parada con enclavamiento para controlar motores eléctricos mediante interruptores de botón de contacto momentáneo. Como antes, esta funcionalidad se ilustrará mediante un circuito y programa de ejemplo hipotético: En este sistema, dos interruptores de botón están conectados a entradas discretas en un PLC, y el PLC, a su vez, energiza la bobina de un relé de contactor de motor por medio de una de sus salidas discretas. Un contacto de sobrecarga está cableado directamente en serie con la bobina del contactor para proporcionar protección contra sobrecorriente del motor, incluso en caso de una falla del PLC donde el canal de salida discreta permanece energizado (nota 2). El programa de escalera para este sistema de control de motores se vería así: Nota 2: Si bien es posible cablear el contacto de sobrecarga a uno de los canales de entrada discretos del PLC y luego programar un contacto de sobrecarga virtual en serie con la bobina de salida para detener el motor en caso de una sobrecarga térmica, esta estrategia dependería de que el PLC realice una función de seguridad que probablemente se realice mejor mediante circuitos cableados. Al presionar el botón "Inicio" se activa el canal de entrada discreta 6 en el PLC, que "cierra" el contacto virtual en el programa del PLC denominado IN switch Start. El contacto virtual normalmente cerrado para el canal de entrada 7 (el botón "Parar") ya está cerrado de forma predeterminada cuando no se presiona el botón "Parar", por lo que la bobina virtual recibirá "alimentación" cuando se presiona el botón "Inicio". presionado y el botón “Parar” no. Tenga en cuenta que el contacto sellado lleva exactamente la misma etiqueta que la bobina: Contactor de SALIDA. Al principio puede parecer extraño tener un contacto y una bobina en un programa de PLC etiquetados de manera idéntica (Nota 3), ya que los contactos se asocian más comúnmente con entradas y las bobinas con salidas, pero esto tiene mucho sentido si comprende el verdadero significado de Contactos y bobinas en un programa de PLC: como operaciones de lectura y escritura en bits en la memoria del PLC. La bobina etiquetada como contactor OUT escribe el estado de ese bit, mientras que el contacto etiquetado como contactor OUT lee el estado de ese mismo bit. El propósito de este contacto, por supuesto, es bloquear el motor en el estado "encendido" después de que un operador humano haya soltado el dedo del botón de "Arranque". Nota 3: Un error muy común entre los estudiantes que aprenden por primera vez la programación del diagrama de escalera de PLC es asociar siempre los contactos con las entradas del PLC y las bobinas con las salidas del PLC, por lo que parece extraño que un contacto lleve la misma etiqueta que una salida. Sin embargo, esta es una asociación falsa. En realidad, los contactos y las bobinas son instrucciones de lectura y escritura y, por lo tanto, es posible hacer que el PLC lea uno de sus propios bits de salida como parte de alguna función lógica. Lo que sería realmente extraño es etiquetar una bobina con una dirección de bit de entrada o un nombre de etiqueta, ya que el PLC no es eléctricamente capaz de establecer el estado de energía real de ningún canal de entrada. Esta técnica de programación se conoce como retroalimentación, donde una variable de salida de una función (en este caso, la variable de retroalimentación es el contactor de SALIDA) también es una entrada para esa misma función. La ruta de retroalimentación es implícita más que explícita en la programación del diagrama de escalera, siendo la única indicación de retroalimentación el nombre común compartido por bobina y contacto. Otros lenguajes de programación gráfica (como el bloque de funciones) tienen la capacidad de mostrar rutas de retroalimentación como líneas de conexión entre las salidas y entradas de funciones, pero esta capacidad no existe en el diagrama de escalera. Una secuencia paso a paso que muestra el funcionamiento y el estado de este sencillo programa ilustra cómo funciona el contacto de sellado, a través de un ciclo de arranque y apagado del motor: Esta secuencia ayuda a ilustrar el orden de evaluación o de escaneo de un programa de diagrama de escalera. El PLC lee un diagrama de escalera de izquierda a derecha, de arriba a abajo, en el mismo orden general en el que un ser humano lee oraciones y párrafos escritos en inglés. Sin embargo, según el estándar IEC 61131-3, un programa de PLC debe evaluar (leer) todas las entradas (contactos) de una función antes de determinar el estado de la salida de una función (bobina o bobinas). En otras palabras, el PLC no toma ninguna decisión sobre cómo configurar el estado de una bobina hasta que se hayan leído todos los contactos que suministran energía a esa bobina. Una vez que el estado de una bobina se haya escrito en la memoria, cualquier contacto que tenga el mismo nombre de etiqueta se actualizará con ese estado en los escalones posteriores del programa. El paso 5 de la secuencia anterior es particularmente ilustrativo. Cuando el operador humano presiona el botón "Parar", se activa el canal de entrada para el interruptor IN de parada, lo que "abre" el contacto virtual normalmente cerrado IN interruptor de parada. En el siguiente escaneo de este renglón del programa, el PLC evalúa todos los contactos de entrada (inicio del interruptor de entrada, parada del interruptor de entrada y contactor de salida) para verificar su estado antes de decidir qué estado escribir en la bobina del contactor de salida. Al ver que el contacto de parada del interruptor IN ha sido forzado a abrirse mediante la activación de su respectivo canal de entrada discreta, el PLC escribe un estado "0" (o "Falso") en la bobina del contactor OUT. Sin embargo, el contacto de retroalimentación del contactor de SALIDA no se actualiza hasta el siguiente escaneo, razón por la cual aún lo verá resaltado en color durante el paso 5. Un problema potencial con este sistema, tal como está diseñado, es que el operador humano pierde el control del motor en caso de una falla de cableado "abierto" en cualquiera de los circuitos del interruptor de botón. Por ejemplo, si un cable se cae de un contacto de tornillo para el circuito del interruptor del botón pulsador de "Arranque", el motor no podría arrancar si ya estaba detenido. De manera similar, si un cable se cayera de un contacto de tornillo para el circuito del interruptor del botón de “Parada”, el motor no podría detenerse si ya estaba funcionando. En cualquier caso, una conexión de cable rota actúa de la misma manera que el estado "normal" del interruptor de botón, que es mantener el motor en su estado actual. En algunas aplicaciones, este modo de falla no sería un problema grave. Sin embargo, en muchas aplicaciones es bastante peligroso tener un motor en marcha que no se puede detener. Por esta razón, es habitual diseñar sistemas de arranque/parada de motores un poco diferentes a lo que se muestra aquí. Para construir un sistema de control de motor de “parada en caso de falla” con nuestro PLC, primero debemos volver a cablear el interruptor de botón para usar su contacto normalmente cerrado (NC): Esto mantiene activado el canal de entrada discreta 7 cuando se suelta el botón. Cuando el operador presiona el botón "Parar", el contacto del interruptor se abrirá a la fuerza y el canal de entrada 7 se desenergizará. Si un cable se cae de un terminal de tornillo en el circuito del interruptor de "Parada", el canal de entrada 7 se desenergizará de la misma manera que si alguien presionara el botón de "Parada", lo que apagará automáticamente el motor. Para que el programa PLC funcione correctamente con este nuevo cableado de interruptor, el contacto virtual para la parada del interruptor IN debe cambiarse de normalmente cerrado (NC) a normalmente abierto (NO): Como antes, el contacto virtual de parada del interruptor IN está en estado "cerrado" cuando nadie presiona el interruptor "Parada", lo que permite que el motor arranque cada vez que se presiona el interruptor "Arranque". De manera similar, el contacto virtual de parada del interruptor de ENTRADA se abrirá cada vez que alguien presione el interruptor de "Parada", deteniendo así el flujo de "energía" virtual hacia la bobina del contactor de SALIDA. Aunque esta es una forma muy común de construir sistemas de arranque/parada de motores controlados por PLC (con un interruptor de botón NC y un contacto virtual de “parada” NO), los estudiantes nuevos en la programación de PLC a menudo encuentran confusa esta inversión lógica. Quizás la razón más común de esta confusión sea una mala comprensión del concepto "normal" de los contactos de interruptor, ya sean reales o virtuales. El contacto virtual de parada del interruptor IN está programado para estar normalmente abierto (NO), pero normalmente se encuentra en estado cerrado. Recuerde que el estado "normal" de cualquier interruptor es su estado mientras está en reposo sin estimulación, no necesariamente su estado mientras el proceso está en un modo de funcionamiento "normal". El contacto virtual "normalmente abierto" del interruptor IN normalmente se encuentra en estado cerrado porque su canal de entrada correspondiente generalmente se encuentra energizado, debido al contacto del interruptor del botón normalmente cerrado, que pasa energía eléctrica real al canal de entrada mientras nadie presiona el interruptor. ¡El hecho de que un interruptor esté configurado como normalmente abierto no significa necesariamente que normalmente se encontrará en estado abierto! El estado de cualquier contacto de interruptor, ya sea real o virtual, es función de su configuración (NO versus NC) y del estímulo que se le aplica. Otra preocupación que rodea a los problemas de cableado del mundo real es qué hará este sistema si el circuito de la bobina del contactor del motor se abre por cualquier motivo. Se puede desarrollar un circuito abierto como resultado de la caída de un cable de un terminal de tornillo, o puede ocurrir porque el contacto de sobrecarga térmica se abrió debido a un evento de sobretemperatura. El problema con nuestro sistema de arranque/parada de motor tal como está diseñado es que no es "consciente" del estado real del contactor. En otras palabras, el PLC “piensa” que el contactor se energizará cada vez que se energice el canal de salida discreta 2, pero en realidad puede no ser el caso si hay una falla abierta en el circuito de la bobina del contactor. Esto puede provocar una condición peligrosa si posteriormente se elimina la falla abierta en el circuito de la bobina del contactor. Imagine a un operador presionando el interruptor de "Arranque" pero notando que el motor en realidad no arranca. Preguntándose por qué puede ser esto, va a mirar el relé de sobrecarga para ver si está disparado. Si se dispara y el operador presiona el botón "Reset" en el conjunto de sobrecarga, el motor arrancará inmediatamente porque la salida discreta del PLC ha permanecido energizada todo el tiempo después de presionar el interruptor "Start". Hacer que el motor arranque tan pronto como se reinicie la sobrecarga térmica puede ser una sorpresa para el personal de operaciones, y esto podría ser bastante peligroso si alguien se encuentra cerca de la maquinaria motorizada cuando arranca. Lo que sería más seguro es un sistema de control del motor que se niegue a "engancharse" a menos que el contactor realmente se active cuando se presione el interruptor de "Arranque". Para que esto sea posible, el PLC debe tener alguna forma de detectar el estado del contactor. Para que el PLC sea “consciente” del estado real del contactor, podemos conectar el contacto del interruptor auxiliar a uno de los canales de entrada discreta no utilizados en el PLC, así: Ahora, el PLC puede detectar el estado en tiempo real del contactor a través del canal de entrada 5. Podemos modificar el programa PLC para reconocer este estado asignando un nuevo nombre de etiqueta a esta entrada (contactor auxiliar de entrada) y usando un contacto virtual normalmente abierto con este nombre como contacto sellado en lugar del bit del contactor de SALIDA: Ahora, si el contactor no se energiza por algún motivo cuando el operador presiona el interruptor de "Inicio", la salida del PLC no se bloqueará cuando se suelte el interruptor de "Inicio". Cuando se elimina la falla abierta en el circuito de la bobina del contactor, el motor no arrancará inmediatamente, sino que esperará hasta que el operador presione el interruptor de "Arranque" nuevamente, lo cual es una característica de operación mucho más segura que antes. Una clase especial de “bobina” virtual utilizada en la programación en escalera de PLC que vale la pena mencionar es la bobina de “enclavamiento”. Por lo general, vienen en dos formas: una bobina de ajuste y una bobina de reinicio. A diferencia de una bobina de "salida" normal que escribe positivamente en un bit de la memoria del PLC con cada escaneo del programa, las bobinas de "configuración" y "reinicio" solo escriben en un bit de la memoria cuando se energizan mediante energía virtual. De lo contrario, se permite que el bit conserve su último valor. Se podría escribir un programa de arranque/parada de motor muy simple con sólo dos contactos de entrada y dos de estas bobinas de enclavamiento (ambas con el mismo nombre de etiqueta y escritas en el mismo bit en la memoria): Tenga en cuenta el uso de un contacto de interruptor de botón normalmente abierto (NO) (¡otra vez!), sin contacto auxiliar que proporcione indicación de estado del contactor al PLC. Este es un programa mínimo, mostrado con el estricto propósito de ilustrar el uso de bobinas de enganche de “establecimiento” y “reinicio” en la programación de PLC con diagrama de escalera. Las bobinas de “Configuración” y “Reinicio” (denominadas bobinas de “Enclavamiento” y “Desenganche”) son ejemplos de lo que se conoce en el mundo de la programación de PLC como instrucciones retentivas. Una instrucción "retentiva" conserva su valor después de ser prácticamente "desenergizada" en el "circuito" del diagrama de escalera. Una bobina de salida estándar no es retentiva, lo que significa que no se "bloquea" cuando se desenergiza. El concepto de instrucciones retentivas y no retentivas aparecerá nuevamente a medida que exploremos la programación de PLC, especialmente en el área de los temporizadores. Normalmente, intentamos evitar que varias bobinas lleven la misma etiqueta en un programa de diagrama de escalera de PLC. Dado que cada bobina representa una instrucción de "escritura", varias bobinas que llevan el mismo nombre representan múltiples operaciones de "escritura" en el mismo bit en la memoria del PLC. Aquí, con las bobinas de enclavamiento, no hay conflicto porque cada una de las bobinas solo escribe en el bit del contactor de SALIDA cuando su contacto respectivo está energizado. Mientras sólo se accione uno de los pulsadores a la vez, no habrá conflicto entre las bobinas con el mismo nombre. Esto plantea la pregunta: ¿qué pasaría si se presionaran simultáneamente ambos pulsadores? ¿Qué pasaría si las bobinas “Set” y “Reset” fueran “energizadas” al mismo tiempo? El resultado es que el bit del contactor de SALIDA primero se "establecerá" (se escribirá en un valor de 1) y luego se "restablecerá" (se escribirá en un valor de 0) en ese orden a medida que los dos renglones del programa se escanearan de arriba a abajo. . Los PLC normalmente no actualizan sus registros de E/S discretas mientras escanean el programa del diagrama de escalera (esta operación se lleva a cabo antes o después de cada exploración del programa), por lo que el estado real del canal de salida discreta será cualquiera que la última operación de escritura indique. , en este caso “restablecer” (0 o apagado). Incluso si la salida discreta no está “confundida” debido a las operaciones de escritura conflictivas de las bobinas “Set” y “Reset”, otros renglones del programa escritos entre los renglones “Set” y “Reset” podrían estarlo. Considere, por ejemplo, un caso en el que había otros renglones de programa después de los renglones "Establecer" y "Reiniciar" que leían el estado del bit del contactor de SALIDA para algún propósito. De hecho, esos otros renglones se “confundirían” porque verían el bit del contactor de SALIDA en el estado “establecido”, mientras que la salida discreta real del PLC (y cualquier renglón que siga al renglón “Reset”) vería el bit del contactor de SALIDA en el estado. Estado de “reinicio”: Múltiples bobinas de salida (no retentivas) con la misma dirección de memoria son casi siempre un error de programación por esta razón, pero incluso las bobinas retentivas que están diseñadas para usarse en pares coincidentes pueden causar problemas si no se anticipan las implicaciones de la energización simultánea. Múltiples contactos con direcciones idénticas no son ningún problema, porque múltiples operaciones de "lectura" en el mismo bit en la memoria nunca causarán un conflicto. El estándar de programación de PLC IEC 61131-3 especifica contactos de detección de transición, así como los contactos "estáticos" más habituales. Un contacto de detección de transición se "actuará" sólo durante un escaneo del programa, incluso si su bit correspondiente permanece activo. En la norma IEC se definen dos tipos de contactos de diagrama de escalera con detección de transiciones: uno para transiciones positivas y otro para transiciones negativas. El siguiente ejemplo muestra un diagrama de cableado, un programa de diagrama de escalera y un diagrama de tiempos que demuestra cómo funciona cada tipo de contacto de detección de transición cuando es estimulado por una señal de entrada real (eléctrica) a un canal discreto: Cuando se presiona el interruptor de botón y se energiza la entrada discreta, la primera lámpara de prueba parpadeará "encendida" durante exactamente una exploración del programa del PLC y luego volverá a su estado apagado. El contacto de transición positivo (con la letra “P” adentro) activa la prueba OUT1 de la bobina solo durante el escaneo y ve el estado de la transición de la prueba IN de “falso” a “verdadero”, aunque la entrada permanece energizada durante muchos escaneos después de eso. transición. Por el contrario, cuando se suelta el interruptor del botón y se desactiva la entrada discreta, la segunda lámpara de prueba parpadeará "encendida" durante exactamente una exploración del programa del PLC y luego volverá a su estado apagado. El contacto de transición negativa (con la letra "N" en el interior) activa la prueba OUT de la bobina2 solo durante el escaneo ve el estado de la prueba IN transición de "verdadero" a "falso", aunque la entrada permanece desenergizada durante muchos exploraciones después de esa transición: Cabe señalar que la duración de un único escaneo de programa de PLC suele ser muy corta: se mide en milisegundos. Si este programa fuera realmente probado en un PLC real, probablemente no podría ver ninguna de las lámparas de prueba encendidas, ya que cada pulso tiene una duración muy corta. Los contactos de transición generalmente se usan cada vez que se desea ejecutar una instrucción solo una vez después de un evento "desencadenante", en lugar de ejecutar esa instrucción una y otra vez siempre que el estado del evento se mantenga "verdadero". Los contactos y las bobinas representan sólo las instrucciones más básicas en el lenguaje de programación del PLC de diagrama de escalera.
  25. 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.
  26. A finales de la década de 1960, una empresa estadounidense llamada Bedford Associates lanzó un dispositivo informático al que llamaron MODICON. Como acrónimo significaba Controlador Digital Modular, y más tarde se convirtió en el nombre de una división de la empresa dedicada al diseño, fabricación y venta de estas computadoras de control de propósito especial. Otras empresas de ingeniería desarrollaron sus propias versiones de este dispositivo y, finalmente, llegó a ser conocido en términos no propietarios como PLC o controlador lógico programable. SOCIEDAD ANÓNIMA El propósito de un PLC era reemplazar directamente los relés electromecánicos como elementos lógicos, sustituyendo en su lugar una computadora digital de estado sólido con un programa almacenado, capaz de emular la interconexión de muchos relés para realizar ciertas tareas lógicas. Un PLC tiene muchos terminales de "entrada", a través de los cuales interpreta estados lógicos "altos" y "bajos" y valores analógicos de interruptores y sensores. También tiene muchos terminales de salida, a través de los cuales emite señales "altas" y "bajas" para encender luces, solenoides, contactores, motores pequeños y otros dispositivos que se prestan para control de encendido/apagado y también salida analógica para controlar válvulas de control, motores. control de velocidad, etc En un esfuerzo por hacer que los PLC sean fáciles de programar, su lenguaje de programación fue diseñado para parecerse a diagramas de lógica de escalera. Por lo tanto, un ingeniero acostumbrado a leer esquemas de lógica de escalera se sentiría cómodo programando un PLC para realizar las mismas funciones de control. Programación de PLC La siguiente ilustración muestra un PLC simple, tal como podría verse desde una vista frontal. Dos terminales de tornillo proporcionan conexión a la fuente de alimentación para alimentar los circuitos internos del PLC, etiquetados como L1 y L2. Seis terminales de tornillo en el lado izquierdo brindan conexión a dispositivos de entrada; cada terminal representa un "canal" de entrada diferente con su propia etiqueta "X". El terminal de tornillo inferior izquierdo es una conexión "común", que generalmente está conectada a L2 (neutro) de la fuente de alimentación de 120 VCA. Dentro de la carcasa del PLC, conectado entre cada terminal de entrada y el terminal común, hay un dispositivo optoaislador (diodo emisor de luz) que proporciona una señal lógica "alta" aislada eléctricamente al circuito de la computadora (un fototransistor interpreta la luz del LED). ) cuando se aplica alimentación de 120 VCA entre el terminal de entrada respectivo y el terminal común. Un LED indicador en el panel frontal del PLC proporciona una indicación visual de una entrada "energizada": Las señales de salida son generadas por los circuitos de la computadora del PLC que activan un dispositivo de conmutación (transistor, TRIAC o incluso un relé electromecánico), conectando el terminal "Fuente" a cualquiera de los terminales de salida etiquetados "Y-". El terminal "Fuente", correspondientemente, generalmente está conectado al lado L1 de la fuente de alimentación de 120 VCA. Al igual que con cada entrada, un LED indicador en el panel frontal del PLC proporciona una indicación visual de una salida "energizada": De esta manera, el PLC puede interactuar con dispositivos del mundo real, como interruptores y solenoides. La lógica real del sistema de control se establece dentro del PLC mediante un programa informático. Este programa dicta qué salida se activa bajo qué condiciones de entrada. Aunque el programa en sí parece ser un diagrama de lógica de escalera, con símbolos de interruptor y relé, no hay contactos de interruptor ni bobinas de relé reales que operen dentro del PLC para crear las relaciones lógicas entre entrada y salida. Estos son contactos y bobinas imaginarios, por así decirlo. El programa se ingresa y se ve a través de una computadora personal conectada al puerto de programación del PLC. Considere el siguiente circuito y programa de PLC: Cuando el interruptor de botón no se acciona (no se presiona), no se envía energía a la entrada X1 del PLC. Siguiendo el programa, que muestra un contacto X1 normalmente abierto en serie con una bobina Y1, no se enviará “energía” a la bobina Y1. Por lo tanto, la salida Y1 del PLC permanece desenergizada y la lámpara indicadora conectada a ella permanece apagada. Sin embargo, si se presiona el interruptor de botón, se enviará energía a la entrada X1 del PLC. Todos y cada uno de los contactos X1 que aparecen en el programa asumirán el estado activado (no normal), como si fueran contactos de relé activados por la activación de una bobina de relé denominada "X1". En este caso, energizar la entrada X1 hará que el contacto X1 normalmente abierto se "cierre", enviando "energía" a la bobina Y1. Cuando la bobina Y1 del programa se “energiza”, la salida Y1 real se energizará, iluminando la lámpara conectada a ella: Debe entenderse que el contacto X1, la bobina Y1, los cables de conexión y la "alimentación" que aparecen en la pantalla de la computadora (sistema de ingeniería donde se carga el software PLC) son todos virtuales. No existen como componentes eléctricos reales. Existen como comandos en un programa de computadora (solo una pieza de software) que se parece a un diagrama esquemático de relé real. Igualmente importante es comprender que la computadora utilizada para mostrar y editar el programa del PLC no es necesaria para el funcionamiento continuo del PLC. Una vez que se ha cargado un programa en el PLC desde la computadora, la computadora se puede desconectar del PLC y el PLC continuará siguiendo los comandos programados. Incluyo la pantalla de la computadora en estas ilustraciones únicamente por su bien, para ayudar a comprender la relación entre las condiciones de la vida real (cierre del interruptor y estado de la lámpara) y el estado del programa (“potencia” a través de contactos y bobinas virtuales). La verdadera potencia y versatilidad de un PLC se revela cuando queremos alterar el comportamiento de un sistema de control. Al ser el PLC un dispositivo programable, podemos alterar su comportamiento cambiando los comandos que le damos, sin tener que reconfigurar los componentes eléctricos conectados a él. Por ejemplo, supongamos que quisiéramos hacer que este circuito de interruptor y lámpara funcione de manera invertida: presione el botón para apagar la lámpara y suéltelo para encenderla. La solución de “hardware” requeriría que un interruptor de botón normalmente cerrado fuera sustituido por el interruptor normalmente abierto actualmente en funcionamiento. La solución "software" es mucho más sencilla: basta con modificar el programa para que el contacto X1 esté normalmente cerrado en lugar de normalmente abierto. En la siguiente ilustración, tenemos el sistema alterado que se muestra en el estado en el que el pulsador no está accionado (no presionado): En la siguiente ilustración, el interruptor se muestra activado (presionado): Una de las ventajas de implementar el control lógico en software en lugar de hardware es que las señales de entrada se pueden reutilizar tantas veces en el programa como sea necesario. Por ejemplo, tome el siguiente circuito y programa, diseñados para energizar la lámpara si al menos dos de los tres interruptores de botón se accionan simultáneamente: Para construir un circuito equivalente utilizando relés electromecánicos, se tendrían que utilizar tres relés con dos contactos normalmente abiertos cada uno, para proporcionar dos contactos por interruptor de entrada. Usando un PLC, sin embargo, podemos programar tantos contactos como queramos para cada entrada “X” sin agregar hardware adicional, ya que cada entrada y cada salida no es más que un único bit en la memoria digital del PLC (ya sea 0 o 1). , y se puede recuperar tantas veces como sea necesario. Además, como cada salida del PLC no es más que un bit en su memoria, podemos asignar contactos en un programa de PLC “actuados” por un estado de salida (Y). Tomemos, por ejemplo, el siguiente sistema, un circuito de control de arranque y parada de motor: El interruptor de botón conectado a la entrada X1 sirve como interruptor de "Inicio", mientras que el interruptor conectado a la entrada X2 sirve como "Parada". Otro contacto en el programa, llamado Y1, utiliza el estado de la bobina de salida como un contacto de sellado, directamente, de modo que el contactor del motor continuará energizado después de soltar el botón pulsador de “Arranque”. Puede ver que el contacto normalmente cerrado X2 aparece en un bloque de color, lo que muestra que está en un estado cerrado (“conductor eléctrico”). Si tuviéramos que presionar el botón "Inicio", la entrada X1 se energizaría, "cerrando" así el contacto X1 en el programa, enviando "alimentación" a la "bobina" Y1, energizando la salida Y1 y aplicando energía de 120 voltios CA al Bobina de contactor de motor real. El contacto paralelo Y1 también se “cerrará”, bloqueando así el “circuito” en un estado energizado: Ahora, si soltamos el botón de “Arranque”, el “contacto” X1 normalmente abierto volverá a su estado “abierto”, pero el motor continuará funcionando porque el “contacto” sellado Y1 continúa brindando “continuidad”. para “alimentar” la bobina Y1, manteniendo así la salida Y1 energizada: Para detener el motor, debemos presionar momentáneamente el botón “Stop”, que energizará la entrada X2 y “abrirá” el “contacto” normalmente cerrado, rompiendo la continuidad a la “bobina” Y1: Cuando se suelta el botón "Parar", la entrada X2 se desenergizará, devolviendo el "contacto" X2 a su estado normal "cerrado". El motor, sin embargo, no arrancará nuevamente hasta que se accione el botón “Start”, porque se ha perdido el “sello” de Y1: Un punto importante a destacar aquí es que el diseño a prueba de fallos es tan importante en los sistemas controlados por PLC como en los sistemas controlados por relés electromecánicos. Siempre se deben considerar los efectos del cableado fallido (abierto) en el dispositivo o dispositivos que se están controlando. En este ejemplo de circuito de control del motor, tenemos un problema: si el cableado de entrada para X2 (el interruptor de "Parada") fallara al abrirse, ¡no habría forma de detener el motor! La solución a este problema es una inversión de la lógica entre el “contacto” X2 dentro del programa del PLC y el botón pulsador de “Parada” real: Cuando el botón pulsador de “Parada” normalmente cerrado no está accionado (no presionado), la entrada X2 del PLC se energizará, “cerrando” así el “contacto” X2 dentro del programa. Esto permite que el motor arranque cuando la entrada X1 está energizada y le permite continuar funcionando cuando ya no se presiona el botón de “Arranque”. Cuando se acciona el botón “Parada”, la entrada X2 se desenergizará, “abriendo” así el “contacto” X2 dentro del programa PLC y apagando el motor. Entonces, vemos que no hay diferencia operativa entre este nuevo diseño y el diseño anterior. Sin embargo, si el cableado de entrada en la entrada X2 fallara al abrirse, la entrada X2 se desenergizaría de la misma manera que cuando se presiona el botón "Parar". Entonces, el resultado de una falla de cableado en la entrada X2 es que el motor se apagará inmediatamente. Este es un diseño más seguro que el que se mostró anteriormente, donde una falla en el cableado del interruptor de "Parada" habría resultado en la imposibilidad de apagar el motor. Además de los elementos del programa de entrada (X) y salida (Y), los PLC proporcionan bobinas y contactos "internos" sin conexión intrínseca con el mundo exterior. Estos se usan de manera muy similar a como se usan los “relés de control” (CR1, CR2, etc.) en los circuitos de relés estándar: para proporcionar inversión de señal lógica cuando sea necesario. Para demostrar cómo se podría utilizar uno de estos relés "internos", considere el siguiente circuito y programa de ejemplo, diseñados para emular la función de una puerta NAND de tres entradas. Dado que los elementos del programa PLC generalmente están diseñados con letras individuales, llamaré al relé de control interno "C1" en lugar de "CR1", como sería habitual en un circuito de control de relés: En este circuito la lámpara permanecerá encendida mientras alguno de los pulsadores permanezca sin accionar (sin presionar). Para hacer que la lámpara se apague, tendremos que accionar (presionar) los tres interruptores, así:
  27. Conceptos básicos del diagrama de escalera en la programación de PLC La lógica de escalera era originalmente un método escrito para documentar el diseño y la construcción de bastidores de relés utilizados en la fabricación y el control de procesos. Cada dispositivo en el bastidor de relés estaría representado por un símbolo en el diagrama de escalera y se muestran las conexiones entre esos dispositivos. Además, en el diagrama de escalera también se mostrarían otros elementos externos al bastidor de relés, como bombas, calentadores, etc. La lógica de escalera ha evolucionado hasta convertirse en un lenguaje de programación que representa un programa mediante un diagrama gráfico basado en los diagramas de circuito del hardware de lógica de relé. La lógica de escalera se utiliza para desarrollar software para controladores lógicos programables (PLC) utilizados en aplicaciones de control industrial. El nombre se basa en la observación de que los programas en este lenguaje se parecen a escaleras, con dos rieles verticales y una serie de peldaños horizontales entre ellos. Si bien los diagramas de escalera alguna vez fueron la única notación disponible para registrar programas de controladores programables, hoy en día otras formas están estandarizadas en IEC 61131-3. La lógica de escalera se usa ampliamente para programar PLC, donde se requiere control secuencial de un proceso u operación de fabricación. La lógica de escalera es útil para sistemas de control simples pero críticos. A medida que los controladores lógicos programables se volvieron más sofisticados, también se han utilizado en sistemas de automatización muy complejos. A menudo, el programa de lógica de escalera se utiliza junto con un programa HMI que funciona en una estación de trabajo informática. Ejemplo de un programa de lógica de escalera simple El lenguaje en sí puede verse como un conjunto de conexiones entre controladores lógicos (contactos) y actuadores (bobinas). Si se puede trazar una ruta entre el lado izquierdo del renglón y la salida, a través de contactos afirmados (verdaderos o “cerrados”), el renglón es verdadero y el bit de almacenamiento de la bobina de salida es afirmado o verdadero. Si no se puede rastrear ningún camino, entonces la salida es falsa (0) y la "bobina", por analogía con los relés electromecánicos, se considera "desenergizada". La lógica de escalera tiene contactos que abren o rompen circuitos para controlar las bobinas. Cada bobina o contacto corresponde al estado de un solo bit en la memoria del controlador programable. A diferencia de los relés electromecánicos, un programa de escalera puede hacer referencia cualquier número de veces al estado de un solo bit, lo que equivale a un relé con un número indefinidamente grande de contactos. Los llamados "contactos" pueden referirse a entradas físicas ("duras") al controlador programable desde dispositivos físicos como botones pulsadores e interruptores de límite a través de un módulo de entrada integrado o externo, o pueden representar el estado de los bits de almacenamiento interno que pueden generarse. en otras partes del programa. Cada peldaño del lenguaje de escalera normalmente tiene una bobina en el extremo derecho. Algunos fabricantes pueden permitir más de una bobina de salida en un peldaño. —( )— Una bobina normal, energizada cada vez que su peldaño está cerrado. —()— Una bobina “no”, energizada cada vez que su peldaño está abierto. —[ ]— Un contacto regular, cerrado siempre que se energiza su correspondiente bobina o una entrada que la controla. —[]— Un contacto “no”, cerrado siempre que su correspondiente bobina o una entrada que la controle no esté energizada. La “bobina” (salida de un peldaño) puede representar una salida física que opera algún dispositivo conectado al controlador programable, o puede representar un bit de almacenamiento interno para usar en otra parte del programa. Y lógico ------[ ]--------------[ ]----------------( ) Interruptor de llave 1 Interruptor de llave 2 Motor de puerta Lo anterior realiza la función: Motor de puerta = Interruptor de llave 1 Y Interruptor de llave 2 Este circuito muestra dos interruptores de llave que los guardias de seguridad podrían usar para activar un motor eléctrico en la puerta de la bóveda de un banco. Cuando los contactos normalmente abiertos de ambos interruptores se cierran, la electricidad puede fluir hacia el motor que abre la puerta. Lógico Y con NO ------[ ]--------------[]----------------( ) Cerrar la puerta Obstrucción Motor de la puerta Lo anterior realiza la función: Motor de Puerta = Cerrar puerta Y NO(Obstrucción). Este circuito muestra un botón que cierra una puerta y un detector de obstrucciones que detecta si algo se interpone en el camino para cerrar la puerta. Cuando el contacto del botón normalmente abierto se cierra y el detector de obstrucción normalmente cerrado se cierra (no se detecta ninguna obstrucción), la electricidad puede fluir hacia el motor que cierra la puerta. O lógico --+-------[ ]-------+-----------------( ) | Desbloqueo exterior | desbloquear | | +-------[ ]-------+ Desbloqueo interior Lo anterior realiza la función: Desbloquear = Desbloquear Interior O Desbloquear Exterior Este circuito muestra las dos cosas que pueden activar los seguros eléctricos de las puertas de un automóvil. El receptor remoto siempre está encendido. El solenoide de bloqueo recibe energía cuando cualquiera de los conjuntos de contactos está cerrado. PARADA/INICIO industriales En la lógica industrial común de arranque/parada con enclavamiento, tenemos un botón de "arranque" para encender un contactor de motor y un botón de "parada" para apagar el contactor. Cuando se presiona el botón de "inicio", la entrada se vuelve verdadera, a través del contacto NC del botón de "parada". Cuando la entrada de “ejecución” se vuelve verdadera, el contacto NO sellado de “ejecución” en paralelo con el contacto NO de “inicio” se cerrará manteniendo la lógica de entrada verdadera (enclavada o sellada). Después de bloquear el circuito, se puede presionar el botón de “parada”, lo que provoca que se abra su contacto NC y, en consecuencia, que la entrada sea falsa. Luego se abre el contacto NA de “ejecución” y la lógica del circuito vuelve a su estado de reposo. --+----[ ]--+----[]----( ) | inicio | dejar de correr | | +----[ ]--+ correr -------[ ]--------------( ) hacer funcionar el motor Lo anterior realiza la función: ejecutar = (iniciar O ejecutar) Y (NO detener) Tenga en cuenta el uso de paréntesis para agrupar la función lógica OR antes de evaluar la función lógica AND (que tiene un orden de prioridad de operación más alto). También tenga en cuenta el uso de NOT para representar la lógica de contacto NC de “parada”. Esta configuración de pestillo es un modismo común en la lógica de escalera. En lógica de escalera se le conoce como lógica de sellado. La clave para entender el pestillo es reconocer que el interruptor de "inicio" es un interruptor momentáneo (una vez que el usuario suelta el botón, el interruptor se abre nuevamente). Tan pronto como se activa el solenoide de "marcha", cierra el contacto NO de "marcha", que bloquea el solenoide. La apertura del interruptor de “arranque” no tiene ningún efecto. Por razones de seguridad, se debe cablear una parada de emergencia y/o una parada en serie con el interruptor de arranque, y la lógica del relé debe reflejar esto. --[]----[]----+--[ ]--+---------( ) ES Parada | Inicio | Motor | | +--[ ]--+ Correr Lógica compleja A continuación se muestra un ejemplo de cómo se verían dos peldaños en un programa de lógica de escalera. En aplicaciones del mundo real, puede haber cientos o miles de peldaños. Normalmente, la lógica de escalera compleja se "lee" de izquierda a derecha y de arriba a abajo. A medida que se evalúa cada una de las líneas (o peldaños), la bobina de salida de un peldaño puede alimentar la siguiente etapa de la escalera como entrada. En un sistema complejo habrá muchos “peldaños” en una escalera, que están numerados en orden de evaluación. 1. ----[ ]---------+----[ ]-----+----( ) Cambiar | Alta temperatura | C.A | | +----[ ]-----+ Húmedo 2. ----[ ]----[]--------------------( ) A/C Calor Enfriamiento La línea 1 realiza la función: A/C = Switch AND ( HiTemp OR Humid ) La línea 2 realiza la función: Refrigeración = A/C Y (NO Calor) Esto representa un sistema un poco más complejo para el peldaño 2. Después de evaluar la primera línea, la bobina de salida "A/C" se alimenta al peldaño 2, que luego se evalúa y la bobina de salida "Refrigeración" podría alimentarse a una salida. dispositivo “Compresor” o en el peldaño 3 de la escalera. Este sistema permite descomponer y evaluar diseños lógicos muy complejos. Funcionalidad adicional El fabricante del PLC puede agregar funcionalidad adicional a una implementación de lógica de escalera como un bloque especial. Cuando el bloque especial está encendido, ejecuta código con argumentos predeterminados. Estos argumentos pueden mostrarse dentro del bloque especial. +-------+ -----[ ]--------------------+ A +---- Desbloqueo remoto +-------+ Contador remoto +-------+ -----[ ]--------------------+ B +---- Desbloqueo interior +-------+ Mostrador interior +--------+ -----------+ A + B +----------- | en C | +--------+ Sumador En este ejemplo, el sistema contará la cantidad de veces que se presionan los botones interior y de desbloqueo remoto. Esta información se almacenará en las ubicaciones de memoria A y B. La ubicación de memoria C contendrá el número total de veces que la puerta se ha desbloqueado electrónicamente. Los PLC tienen muchos tipos de bloques especiales. Incluyen temporizadores, operadores aritméticos y comparaciones, búsquedas de tablas, procesamiento de texto, control PID y funciones de filtrado. Los PLC más potentes pueden operar en un grupo de ubicaciones de memoria interna y ejecutar una operación en un rango de direcciones, por ejemplo, para simular un controlador de tambor secuencial físico o una máquina de estados finitos. En algunos casos, los usuarios pueden definir sus propios bloques especiales, que efectivamente son subrutinas o macros. La gran biblioteca de bloques especiales junto con la ejecución de alta velocidad ha permitido el uso de PLC para implementar sistemas de automatización muy complejos.
  1. Load more activity
×
×
  • Create New...