Jump to content

Search the Community

Showing results for tags 'SIEMENS-DE'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


PLC & HMI product application technology forum!

  • Commonly used PLC brand product application technology discussion area!
    • Siemens PLC Forum
    • Allen Bradley PLC Forum
    • Mitsubishi PLC Forum
    • Schneider PLC Forum
    • Omron PLC Forum
    • B&R PLC Forum
    • ABB PLC Forum
    • Honeywell PLC Forum
    • Emerson PLC Forum
    • Hitachi PLC Forum
    • Rexroth PLC Forum
    • IDEC PLC Forum
    • Koyo PLC Forum
    • Delta PLC Forum
    • Eaton PLC Forum
    • Keyence PLC Forum
    • LS PLC Forum
    • Panasonic PLC Forum
    • Phoenix PLC Forum
    • Pilz PLC Forum
    • WAGO PLC Forum
    • Yokogawa PLC Forum
    • Toshiba PLC Forum
    • PEPPERL+FUCHS PLC Forum
  • Commonly used HMI brand product application technology discussion area!
    • Siemens HMI Forum
    • Fatek HMI Forum
    • Advantech HMI Forum
    • Weintek HMI Forum
    • Mitsubishi HMI Forum
    • Fuji HMI Forum
    • Pro-face HMI Forum
    • B&R HMI Forum
    • IDEC HMI Forum
    • Schneider HMI Forum
    • Weinview HMI Forum
    • LS HMI Forum
    • Omron HMI Forum
    • Panasonic HMI Forum
    • Delta HMI Forum
    • MCGS HMI Forum
    • beijer HMI Forum
    • Kinco HMI Forum
    • Redlion HMI Forum
    • XINJE HMI Forum
    • Samkoon HMI Forum
  • European PLC brand product application technology discussion area!
  • Americas PLC brand product application technology discussion area!
  • Asian PLC brand product application technology discussion forum!
  • European HMI brand product application technology discussion forum!
  • Americas HMI brand product application technology discussion forum!
  • Asian HMI brand product application technology discussion forum!
  • Industrial automation SCADA & HMI configuration software!
  • Technical discussion area related to industrial automation control
  • Commercial service area for PLC&HMI products of various brands!

Categories

  • PLC programming learning
  • HMI interface design
  • DCS control system
  • SCADA technology

Categories

  • European PLC & HMI brand
  • Americas PLC & HMI brand
  • Asian PLC & HMI Brands

Categories

  • PLC programming learning
  • HMI interface design
  • DCS control system
  • SCADA technology

Categories

  • PLC programming learning
  • HMI interface design
  • DCS control system
  • SCADA technology

Categories

  • PLC programming learning
  • HMI interface design
  • DCS control system
  • SCADA technology

Categories

  • PLC programming learning
  • HMI interface design
  • DCS control system
  • SCADA technology

Categories

  • PLC product technical files
  • HMI product technical files
  • DCS product technical files
  • PAC product technical files
  • SCADA product technical files

Product Groups

  • PLC products
  • PLC accessories
    • PLC lithium battery
    • PLC memory card
    • PLC programmer
    • PLC data line
  • HMI products
  • HMI accessories
    • HMI protection installation box
    • HMI self-made assembly accessories
    • HMI communication cable
    • HMI circuit board card components
  • Advertising for rent

Blogs

There are no results to display.

There are no results to display.

Categories

  • PLC Programming Technology Videos
  • HMI Design and Configuration Video
  • DCS Control System Video
  • PAC Automation Control Video
  • SCADA acquisition monitoring Vides

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


date of birth

Between and

gender


Education degree


About Me


Mobile phone


website


address


WhatsApp


Messenger


Telegram


Line


Skype


Instagram


VK Messenger


Viber


Snapchat


Zalo


Kakao Talk


ICQ


QQ


WeChat


Taobao WangWang


Ali DingTalk

Found 23 results

  1. In den letzten Artikeln haben wir besprochen, wie man mithilfe der TCON- und TDISCON-Blöcke eine Verbindung zwischen zwei SPS herstellt und wie man mithilfe der TSEND- und TRCV-Blöcke Daten zwischen ihnen verschiebt. Datenübertragung zwischen SPS-Systemen In diesem Artikel lernen wir eine neue Anweisung kennen, die zur Kommunikation und Datenübertragung zwischen SPS-Systemen mithilfe der TSEND_C- und TRCV_C-Blöcke verwendet werden kann. TSEND_C Die Anweisung TSEND_C ist eine TIA-Portal-Anweisung, die zum Einrichten und Herstellen einer Verbindung zwischen zwei SPS verwendet wird. Sobald die Verbindung eingerichtet und hergestellt wurde, wird sie automatisch von der SPS aufrechterhalten und überwacht. Die Anweisung TSEND_C wird asynchron ausgeführt und hat die folgenden Funktionen: Einrichten und Herstellen einer Kommunikationsverbindung ähnlich dem TCON-Block. Senden von Daten über eine bestehende Kommunikationsverbindung ähnlich dem TSEND-Block. Beenden oder Zurücksetzen der Kommunikationsverbindung ähnlich dem TDISCON. Daher wird TSEND_C als kompakt bezeichnet, da es gleichzeitig als mehr als 3 Blöcke fungiert. TRCV_C Der TRCV_C-Befehl ist ebenfalls ein TIA-Portal-Befehl, der zum Einrichten und Herstellen einer Verbindung zwischen zwei SPSen verwendet wird. Sobald die Verbindung eingerichtet und hergestellt wurde, wird sie automatisch von der SPS aufrechterhalten und überwacht. Der Befehl „TRCV_C“ wird asynchron ausgeführt und implementiert nacheinander die folgenden Funktionen: Einrichten und Herstellen einer Kommunikationsverbindung ähnlich wie TCON. Empfangen von Daten über eine bestehende Kommunikationsverbindung ähnlich wie TRCV. Beenden oder Zurücksetzen der Kommunikationsverbindung ähnlich wie TDISCON. Daher wird TRCV_C als kompakt bezeichnet, da es gleichzeitig als mehr als 3 Blöcke fungiert. Verwendung von TSEND_C und TRCV_C in unserem SPS-Projekt Im letzten Artikel mussten wir, als wir Daten von SPS_1 an SPS_2 senden und senden mussten, in jeder SPS drei verschiedene Blöcke verwenden. Siehe Bild 1. Bild 1. Logik in PLC_1 Wie Sie sehen, haben wir die TCON- und TDISCON-Blöcke verwendet, um die Verbindung herzustellen und zurückzusetzen, und wir haben TSEND verwendet, um die Daten von PLC_1 zu senden. Und dasselbe wurde für PLC_2 getan. Siehe Bild 2. Bild 2. Logik von PLC_2 Auch hier haben wir die TCON- und TDISCON-Blöcke verwendet, um die Verbindung herzustellen und zurückzusetzen, und wir haben TRCV verwendet, um die Daten von PLC_1 zu empfangen. Nun möchten wir alle diese Blöcke ersetzen und versuchen, stattdessen TSEND_C und TRCV_C zu verwenden, um dieselbe Funktionalität zu erreichen. Zuerst verwenden wir in PLC_1, wo wir Daten senden müssen, den TSEND_C-Block. Ziehen Sie den Block einfach per Drag & Drop in den Haupt-OB1. Siehe Bild 3. Bild 3. TSEND_C-Block hinzufügen. Da TSEND_C im Wesentlichen ein Funktionsblock ist, werden Sie aufgefordert, eine Dateninstanz zu erstellen. Siehe Bild 4. Bild 4. Eine Instanz für TSEND_C erstellen TSEND_C ähnelt dem TSEND-Block insofern, als dass Sie einige Konfigurationen vornehmen und einige Signale hinzufügen müssen. Siehe Bild 5. Bild 5. TSEND_C-Block Jetzt benötigen wir ein Signal für REQ und Daten zum Senden und auch zum Konfigurieren der Verbindung. Für das REQ-Signal haben wir ein SendData-Tag erstellt. Außerdem können wir den Datenblock, den wir im letzten Artikel erstellt haben und den wir an PLC_2 senden müssen, einfach per Drag & Drop auf den DATA-Eingang des Blocks ziehen. Siehe Bild 6. Bild 6. Konfiguration des TSEND_C-Blocks. Um die Verbindungsparameter für den Block zu konfigurieren, können wir auf das kleine Konfigurationssymbol oben auf dem Block drücken, um die Konfigurationsansicht zu öffnen. Die Konfigurationsansicht sieht der des TCON-Blocks sehr ähnlich. Siehe Bild 7. Bild 7. Verbindungsparameter von TSEND_C Wir haben bereits in früheren Artikeln gezeigt, wie die Verbindungsparameter konfiguriert werden, also können wir einfach dasselbe tun wie beim TCON-Block, siehe Bild 8. Bild 8. Konfiguration der Verbindungsparameter Mit dieser Verbindungskonfiguration haben wir alle Konfigurationen des TSEND_C abgeschlossen. Beachten Sie, wie viel schneller das im Vergleich zur Konfiguration der TCON-, TDISCON- und TSEND-Blöcke ging. Jetzt müssen wir TRCV_C zu PLC_2 hinzufügen, damit es die von PLC_1 gesendeten Daten empfangen kann. Ziehen Sie im Haupt-OB1 von PLC_1 einfach TRCV_C per Drag & Drop in Ihre Logik. Siehe Abbildung 9. Denken Sie daran, eine Dateninstanz für den TRCV_C-Block zu erstellen. Abbildung 9. TRCV_C hinzufügen Sobald TRCV_C zu Ihrer Logik hinzugefügt wurde, müssen wir es konfigurieren. Wie bei TSEND_C müssen wir ein Signal hinzufügen, um den Datenempfang zu aktivieren, und wir müssen auch den Datenblock hinzufügen, in dem wir die Daten speichern werden. Siehe Abbildung 10. Abbildung 10.TRCV_C Wir haben ein RecieveData-Tag als EN_R-Signal definiert. Siehe Bild 11. Bild 11. EN_R-Tag definieren Denken Sie daran, die Option „optimierter Blockzugriff“ des Datenblocks zu deaktivieren, sonst funktioniert der Block nicht, wie wir in den letzten Artikeln gezeigt haben. Als nächstes müssen wir die Verbindungsparameter des TRCV_C-Blocks konfigurieren, wie wir es mit dem TSEND_C getan haben. Denken Sie nur daran, dass die nicht angegebene Partner-SPS jetzt die PLC_1 ist, siehe Bild 12. Bild 12. Verbindungsparameter von TRCV_C SPS-Projektsimulation Nachdem wir nun den TSEND_C- und TRCV_C-Block konfiguriert haben, möchten wir unser Projekt simulieren und sehen, wie sie funktionieren. Zuerst erstellen wir jedoch eine einfache Logik, um die Daten von PLC_1 automatisch zu aktualisieren, die an PLC_2 gesendet werden. Siehe Bild 13. Bild 13. Einfache Logik zum automatischen Aktualisieren von Daten. Lassen Sie uns nun eine Simulation für unser Projekt kompilieren und starten. Das Erste, was Sie bemerken werden, ist, dass PLC_1 und PLC_2 sofort versuchen, eine Verbindung herzustellen, da wir TSEND_C und TRCV_C eingerichtet haben. Sie versuchen automatisch, eine Verbindung herzustellen. Deshalb wird eine Verbindung zwischen den beiden SPSen hergestellt. Siehe Abbildung 14. Abbildung 14. Die Verbindung wird direkt hergestellt. Wie Sie sehen, wird die Verbindung zwischen den SPSen direkt hergestellt, da der Parameter CONT in TSEND_C und TRCV_C auf TRUE gesetzt ist, was bedeutet, dass der Block automatisch versucht, eine Verbindung mit der Partner-SPS herzustellen. Wir können hier jedes Steuersignal einfügen, um den Verbindungsaufbau zu steuern. Außerdem können Sie sehen, dass REQ von TSEND_C und EN_R von TRCV_C auf FALSE gesetzt sind, weshalb keine Daten zwischen den SPSen übertragen werden. Siehe Abbildung 15. Abbildung 15. Keine Datenübertragung zwischen den SPSen. Wenn das REQ-Signal von TSEND_C auf true gesetzt ist, versucht PLC_1, die Daten zu senden, wartet aber darauf, dass die andere PLC den Datenempfang freigibt, siehe Bild 16. Bild 16. REQ ist true. Wie Sie sehen, ist SendData TRUE, aber es wurden keine Daten gesendet, da RecieveData immer noch false ist. PLC_2 empfängt nur dann Daten von PLC_1, wenn ReceiveData auf true gesetzt ist. Siehe Bild 17. Bild 17. Daten werden an PLC_2 gesendet Wie Sie sehen, werden Daten von PLC_1 an PLC_2 gesendet, wenn RecieveData true ist. Sie können jedoch sehen, dass die Daten in den beiden PLCs unterschiedlich sind, da sich die Daten von PLC_1 automatisch gemäß der einfachen Logik ändern, die wir zuvor erstellt haben. Das bedeutet, dass das Signal EN_R die Datenübertragung einmal zulässt. Wenn ich erneut Daten übertragen muss, muss dieses Signal erst falsch und dann wieder wahr werden. Sehen Sie sich das beigefügte TIA Portal-Projekt an und sehen Sie sich die Datenübertragung zwischen SPSen an.
  2. 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.
  3. In einem früheren Artikel haben wir besprochen, was ein Funktionsblock (FB) ist, wie er in einem SPS-Programm funktioniert und wie man ihn erstellt und verwendet. In diesem Artikel sprechen wir über Datenblockinstanzen verschiedener Funktionsblocktypen im Siemens Tia Portal und wann welcher Typ verwendet wird. Inhalt: Was ist ein Funktionsblock (FB)? Verschiedene Optionen für Dateninstanzen. Einzelinstanz. Parameterinstanz. Mehrfachinstanz. Was ist ein Funktionsblock? Ein Funktionsblock oder FB ist einfach ein Block, der Codelogik enthält. Sie verwenden diesen FB, um durch die darin geschriebenen Codeteile bestimmte Funktionen zu erreichen. Wenn Sie einen Funktionsblock in Ihren Code aufrufen, werden Sie aufgefordert, einen Datenblock (auch Dateninstanz genannt) zuzuweisen, der diesem FB zugeordnet werden soll, um die Werte der FB-Parameter zu speichern. Nicht alle Parameter innerhalb eines FB werden in der Dateninstanz gespeichert, aber darauf kommen wir später zurück. Beim Aufrufen eines Funktionsblocks haben Sie 3 verschiedene Optionen, um diesem Funktionsaufruf eine Datenblockinstanz zuzuordnen. Diese verschiedenen Optionen hängen davon ab, wo Sie Ihren FB aufrufen. Kurz gesagt: Ein Funktionsblock-FB ist im Grunde ein Funktions-FC mit einem dedizierten Datenblock-DB. Dieser Datenblock wird zum Speichern der Werte der Funktionsblockparameter verwendet. Verschiedene Optionen für Dateninstanzen Wir haben 3 verschiedene Optionen für eine Dateninstanz eines Funktionsblocks, und zwar: Einzelinstanz. Parameterinstanz. Mehrfachinstanz. Die drei verschiedenen Aufrufdateninstanzen stammen aus den 3 verschiedenen Aufrufmethoden: Sie können einen Funktionsblock-FB innerhalb des Haupt-OB1 aufrufen, wodurch Sie die folgenden Optionen haben: Einzelinstanz. Sie können den Funktionsblock FB innerhalb einer Funktion FC aufrufen, wodurch Sie zwei Optionen haben: Einzelinstanz Parameterinstanz Sie können den Funktionsblock innerhalb eines anderen Funktionsblocks aufrufen, wodurch Sie die drei verfügbaren Optionen zum Erstellen einer Dateninstanz haben: Einzelinstanz Parameterinstanz Mehrere Instanzen Einzelne Dateninstanz Beginnen wir zunächst mit der Erstellung eines Funktionsblocks FB. Wie bereits erwähnt, erstellen wir einen Funktionsblock, indem wir auf „Neuen Block hinzufügen“ klicken und den gewünschten Blocktyp auswählen. Siehe Abbildung 1. Abbildung 1 – Erstellen eines Funktionsblocks FB Rufen wir nun den wiederverwendbaren FB auf, den wir in unserem Haupt-OB1 erstellt haben. Siehe Abbildung 2. Abbildung 2 – Aufrufen des FB innerhalb des Haupt-OB1 Wie Sie im vorherigen Bild sehen, werden Sie beim Aufrufen eines FB innerhalb des Haupt-OB1 aufgefordert, eine Dateninstanz zuzuweisen, die diesem FB-Aufruf zugeordnet werden soll. In diesem Fall gibt es nur eine Option, nämlich die Einzelinstanz. Nach Auswahl der Einzelinstanzoption wird ein Datenblock erstellt und mit dem FB-Aufruf verknüpft. Siehe Abbildung 3. Abbildung 3 – Einzelinstanz erstellt Die erstellte Einzelinstanz wird verwendet, um die Werte einiger FB-Parameter zu speichern. Wie die Eingänge, Ausgänge, In Out und statischen Parameter. Andere Parameter des FB werden nicht gespeichert, wie Temperatur und Konstanten. Siehe Abbildungen 4 und 5. Abbildung 4 – Daten werden in der Dateninstanz gespeichert Abbildung 5 – Daten werden vom FB in der Dateninstanz gespeichert. Erstellen wir nun eine einfache Logik innerhalb des FB, um die Dateninstanzen besser zu verstehen. Diese Logik fügt einer statischen Variable einen konstanten Wert von 15 hinzu und verschiebt das Ergebnis dann zum Ausgang. Siehe Bild 6. Bild 6 – Erstellen Sie eine einfache Logik Gehen Sie nun zurück zum Haupt-OB1 und sehen Sie sich an, wie Ihr FB-Aufruf jetzt aussieht. Siehe Bild 7. Bild 7 – Aktualisieren Sie den FB-Aufruf nach jeder Änderung Jede Änderung, die Sie an der Logik innerhalb des FB vornehmen, führt dazu, dass der Funktionsblockaufruf aktualisiert werden muss, damit die vorgenommenen Änderungen angewendet werden können. Sie können den Blockaufruf aktualisieren, indem Sie mit der rechten Maustaste auf den FB-Aufruf klicken und die Option „Blockaufruf aktualisieren“ drücken oder indem Sie Ihren SPS-Code neu kompilieren. Siehe Bild 8. Bild 8 – Aktualisieren des FB-Aufrufs Nach der Aktualisierung des Blockaufrufs werden die im FB-Code vorgenommenen Änderungen angewendet und im Blockaufruf verwendet. Wie Sie in Bild 9 sehen. Der FB erwartet nun ein Eingangssignal vom Typ bool und gibt einen Ausgang vom Typ int aus. Bild 9 – Eingänge und Ausgänge sind nun mit dem FB-Aufruf verknüpft Lassen Sie uns unseren Code simulieren und sehen, wie sich die SPS verhält. Sehen Sie sich die nächste Animation an, die eine einfache Simulation der bisherigen SPS-Logik zeigt. Wie Sie in der Animation sehen, wird die Funktion immer dann ausgeführt, wenn das Startsignal TRUE ist, und der Ausgang ändert sich weiter. Und sobald das Startsignal nicht mehr verfügbar ist, bleibt der Ausgang auf dem zuletzt aufgezeichneten Wert. Die Verwendung der Dateninstanz besteht hier darin, dass die Werte der statischen Variablen und der Ausgangsvariablen in der einzelnen Instanz gespeichert werden, sodass die Funktion bei erneutem Startsignal mit den zuletzt aufgezeichneten Werten fortgesetzt wird. Sehr wichtiger Hinweis Sie sollten niemals dieselbe einzelne Instanz für zwei verschiedene Aufrufe eines FBs verwenden. Siehe die nächste Animation. Wie Sie in der Animation sehen, haben wir zwei verschiedene FB-Aufrufe, aber beide Aufrufe sind mit derselben einzelnen Instanz verknüpft, weshalb sich der Output2-Wert mit Output1 änderte, selbst wenn das Start2-Signal FALSE war. Wie zu erwarten, wird die Änderung der Dateninstanz des 1. Aufrufs auch im 2. Aufruf beeinflusst, da sie denselben Speicherblock haben. Siehe Abbildung 10. Abbildung 10 – Verwenden Sie niemals dieselbe Dateninstanz mit verschiedenen FB-Aufrufen Wenn Sie dieselbe Dateninstanz mit verschiedenen FB-Aufrufen verwendet haben, ist Ihr Funktionsblock nicht mehr wiederverwendbar. Auch wenn die Ein-/Ausgabeparameter für jeden einzelnen FB-Aufruf unterschiedlich sind. Wie Sie im letzten Video (Animation) gesehen haben, hatten beide Aufrufe dieselben Ergebnisse, obwohl der 2. Aufruf nicht einmal ein Aktivierungseingangssignal hat. Ein weiterer sehr wichtiger Hinweis Wir haben bereits erwähnt, dass Sie, wenn Sie Ihren FB von einem übergeordneten FC aus aufrufen, zwei Optionen für die zugehörige Dateninstanz haben: die Einzelinstanz und die Parameterinstanz. Siehe Abbildung 11. Abbildung 11 – Verwenden einer Einzelinstanz mit einem von einem FC aus aufgerufenen FB Wenn dies passiert und Sie einen FB innerhalb eines FC aufrufen, sollten Sie für Ihre FBs niemals eine Einzelinstanz verwenden. Um zu erfahren, warum das so ist, siehe Abbildung 12 Abbildung 12 – Mehrmaliges Aufrufen des übergeordneten FC Wie Sie in Abbildung 12 sehen, werden Sie nicht aufgefordert, einen Datenblock zuzuweisen, wenn Sie den übergeordneten FC in Ihrer Logik mehr als einmal aufrufen, da FCs keinen benötigen. Sie wissen jedoch, dass sich innerhalb des FC ein aufgerufener FB befindet, diesem FB ist eine Einzelinstanz zugeordnet. Die 3 FC-Aufrufe haben jetzt also dieselbe Dateninstanz für den FB-Aufruf. Ihre Funktion FC ist also nicht mehr wiederverwendbar. Was tun? Wenn Sie einen FB innerhalb eines FC aufrufen müssen, ist die beste Option die Verwendung der Parameterinstanz. Parameterinstanz Wie bereits erwähnt, sollten Sie, wenn Sie einen FB innerhalb eines FC aufrufen, nicht die einzelne Instanz wählen, sondern die Parameterinstanz ist für Ihre Wiederverwendbarkeit besser. Eine Parameterinstanz speichert die Dateninstanz des aufgerufenen FB im In-Out-Bereich der FC-Blockschnittstelle. So können Sie für jeden FC-Aufruf eine neue Dateninstanz eingeben. Siehe Bilder 13 und 14. Bild 13 – Zuweisen einer Parameterinstanz beim Aufrufen eines FB innerhalb eines FC Bild 14 – Jeder FC-Aufruf erfordert eine neue Dateninstanz Wie Sie im vorherigen Bild sehen, wird jedes Mal, wenn Sie den FC innerhalb Ihres Programms aufrufen, eine Dateninstanz für den wiederverwendbaren FB innerhalb des FC angefordert. Auf diese Weise müssen Sie die Dateninstanz jedoch selbst erstellen. Siehe Bild 15. Bild 15 – Erstellen einer neuen Dateninstanz Um eine neue Dateninstanz zu erstellen, gehen Sie genauso vor wie beim Erstellen eines FC oder eines FB, wählen dieses Mal jedoch die DB-Option. Und stellen Sie sicher, dass Sie den DB-Typ so auswählen, dass er mit dem des aufgerufenen FB übereinstimmt. Jetzt kann Ihr FC beliebig oft wiederverwendet werden, Sie müssen lediglich für jeden Aufruf eine Instanz erstellen. Siehe Abbildung 16. Abbildung 16 – Weisen Sie den DB dem FC-Aufruf zu Multiinstanzdatenbank Eine Multiinstanzdatenbank bedeutet einfach, dass der DB des aufgerufenen FB im DB des aufrufenden FBs höherer Ebene gespeichert wird. Diese Option ist nur verfügbar, wenn Sie einen FB von einem anderen FB aus aufrufen. Lassen Sie uns einen weiteren FB erstellen, um ihn als FB höherer Ebene zu verwenden. Rufen Sie diesen HigherLevelFB nach dem Erstellen vom Haupt-OB1 aus auf. Natürlich ist die einzige Aufrufoption eine einzelne Instanz, wie zuvor gezeigt. Siehe Abbildung 17. Abbildung 17 – Rufen Sie den HigherLevelFB vom Haupt-OB1 aus auf Rufen Sie nun den ReusableFB vom HigherLevelFB aus auf. Und wählen Sie die Option Multiinstanz. Siehe Abbildung 18. Abbildung 18 – Mehrfachinstanz-DB zuweisen Wenn Sie die Option Mehrfachinstanz wählen, wird die erstellte DB in den statischen Parametern des aufrufenden FB gespeichert. Siehe Abbildung 19. Abbildung 19 – Instanzen werden in statischen Parametern gespeichert Sie können den wiederverwendbaren FB viele Male aufrufen, bei jedem Aufruf wird die Mehrfachinstanz im statischen Parameter gespeichert. Siehe Abbildung 20. Abbildung 20 – Wiederverwendbaren FB viele Male aufrufen Wie Sie sehen, wird die Dateninstanz des FB auf niedrigerer Ebene in der Dateninstanz des FB auf höherer Ebene gespeichert. Dies ist am besten für eine bessere Programmstruktur und eine leicht lesbare Logik. Fazit Wenn Sie Funktionsblöcke in Ihrem Code erstellen, müssen Sie jedem FB-Aufruf, den Sie in Ihrer Logik vornehmen, einen Datenblock zuordnen. Dieser Datenblock oder auch Dateninstanz genannt, hat je nach Art des Blocks, der Ihren FB aufruft, unterschiedliche Optionen. Seien Sie bei der Auswahl des Dateninstanztyps vorsichtig, da einige Optionen für Ihren Fall möglicherweise nicht geeignet sind, wie wir zuvor gezeigt haben. Und manchmal kann dies zu Problemen in Ihrer Logik führen und Ihre Funktion kann nicht mehr wiederverwendet werden. Die Verwendung mehrerer Instanzen kann Ihnen dabei helfen, Ihre Programmstruktur besser zu organisieren, da alle aufgerufenen FBs ihre DBs im aufrufenden Haupt-FB speichern.
  4. Im vorherigen Artikel haben wir über Datenblöcke gesprochen und die zwei verschiedenen Arten von Datenblöcken besprochen, den globalen Datenblock und die Dateninstanzen von Funktionsblöcken FBs. In diesem Artikel werden wir besprechen, was mit optimiertem Datenblockzugriff und standardmäßigem Datenblockzugriff im Siemens Tia Portal gemeint ist. Inhalt: Was sind optimierte und standardmäßige Datenblöcke? Einfaches Programmbeispiel. Was sind Standard-DBs? Was ist der Offset? Was sind optimierte DBs? Vorteile der Verwendung optimierter DBs. Schlussfolgerungen. Was ist optimierter und standardmäßiger Datenblockzugriff? Erstens sind dies keine neuen Arten von Datenblöcken; wir sagten, wir haben nur zwei verschiedene Arten, den globalen DB und den Instanz-DB. Optimierter Datenblockzugriff ist eine Funktion für den Datenblock. Sie können diese Funktion in den Eigenschaften des von Ihnen erstellten Datenblocks aktivieren oder deaktivieren. Die optimierte Datenblockfunktion ist nur für S7-1200- und S7-1500-SPS verfügbar, nicht für S7-300 oder S7-400. Die Standardeinstellung für Datenblöcke bei der Arbeit mit S7-1200- oder S7-1500-SPS ist, dass sie optimiert sind. Wenn Sie einen Standarddatenblock möchten, müssen Sie diesen selbst festlegen. Was sind also optimierte und Standardblöcke? Um den Unterschied zu verstehen, erstellen wir ein einfaches Programm und versuchen zu zeigen, wie sich ein optimierter Block von einem Standardblock unterscheidet. Einfaches Programmbeispiel: In diesem Beispiel erstellen wir keine SPS-Logik und codieren keine Anweisungen. Wir erstellen nur zwei globale Datenblöcke. DB1 wird OptimizedDB und DB2 StandardDB genannt. In beiden Datenblöcken deklarieren wir jeweils vier Variablen der Datentypen Bool, Int, Real und Word. Siehe Bild 1. Bild 1 – Zwei globale DBs erstellen Als Erstes werden Sie feststellen, dass beide Datenblöcke genau gleich sind. Das liegt daran, dass die Standardeinstellung beim Erstellen eines Datenblocks, wie gesagt, die Optimierung ist. Wir müssen also die Einstellung von DB2 ändern, um daraus einen Standardblock zu machen und zu sehen, ob sich etwas ändert. Wir tun das über die Eigenschaften dieses DB2. Sie greifen auf die Eigenschaften von DB2 zu, indem Sie mit der rechten Maustaste auf den Datenblock klicken und auf Eigenschaften drücken. Siehe Bild 2. Bild 2 – DB2 auf Standardblockzugriff ändern Sobald Sie die in Bild 2 gezeigten optimierten Blockzugriffsattribute abwählen und auf OK drücken, wird eine Warnmeldung angezeigt, siehe Bild 3. Bild 3 – Popup „Blockzugriff ändern“ Sobald Sie auf OK drücken, wird Ihr DB2 auf Standardblockzugriff umgestellt. Siehe Bild 4. Um zu sehen, welchen Unterschied das gemacht hat. Bild 4 – DB2 ist jetzt ein Standardblock Was wir direkt sehen können, ist, dass DB1 und DB2 nicht mehr dasselbe sind. Die in DB2 dargestellte Standardblockzugriffsoption hat eine zusätzliche Spalte namens Offset. Vor jeder Variable im Offset-Feld steht ein … geschrieben, dies ändert sich, sobald Sie Ihr Programm kompilieren. Lassen Sie uns kompilieren und sehen, was passiert, siehe Bild 5. Bild 5 – Kompilieren Sie Ihr Programm, um den Offset neu zu laden Jetzt wird der Offset mit 0,0, 2,0, 4,0 bzw. 8,0 ausgefüllt, wie Sie sehen können. Also, was ist dieser Offset? Was bedeutet er? Darauf kommen wir später zurück, aber jetzt erstellen wir einen weiteren STANDARD-Block und deklarieren dieselben 4 Variablen, aber dieses Mal ändern wir die Reihenfolge der variablen Datentypen, siehe Bild 6. Bild 6 – Einen weiteren Standardblock DB3 erstellen Sie sehen im letzten Bild, dass der Offset von DB2 und DB3 unterschiedlich ist. Warum sind die Offsetwerte unterschiedlich, als wir die Reihenfolge der Datentypen geändert haben? Es sind dieselben Datentypen, aber in anderer Reihenfolge. Erstellen wir einen weiteren Standard-DB und deklarieren dieselben 4 Variablen, aber wieder in anderer Reihenfolge. Kompilieren Sie Ihren SPS-Code und vergleichen Sie nun den Offset der 3 DBs. Siehe Bild 7. Bild 7 – Drei verschiedene DBs mit drei verschiedenen Offsets Das Gleiche passierte erneut. Was sind Standard-DBs? Was ist der Offset? Datenblöcke mit Standardzugriff haben eine feste Struktur. Wenn Sie eine Variable in einem Standard-DB deklarieren, wird dieser Variable eine feste Adresse in diesem DB zugewiesen. Die Adresse dieser Variable wird in der Spalte „Offset“ angezeigt. Was wir also in den vorherigen Bildern im Offset gesehen haben, war die jeder Variable zugewiesene Adresse. Da die Struktur von Standard-DBs fest ist, können Sie nur in DBs mit fester Speicherkapazität arbeiten, d. h. einem 16-Bit-Bereich oder 2 Bytes. Dies ist der Grund für die unterschiedliche Adressierung derselben Variablen, wenn wir die Deklarationsreihenfolge geändert haben. Weitere Erklärungen finden Sie in Bild 8. Bild 8 – Einfache Darstellung von DB2 Bild 8 zeigt eine einfache Darstellung des Standarddatenblocks DB2. Wie bereits erwähnt, hat ein Standard-DB feste Speicherblöcke von 16 Bit. Wenn wir also Variable_1 als Datentyp BOOL deklarieren, belegt diese Variable die gesamten 16 Bit, obwohl sie nur 1-Bit-Speicher benötigt. Deshalb sehen Sie den Rest des Bereichs rot markiert, da er nicht verwendet wird, aber nicht mehr verwendet werden kann. Es handelt sich also um verlorenen Speicher. Bei Variable_2 benötigt der Datentyp INT 16 Bit, sodass 2 ganze Bytes verwendet werden. Dasselbe gilt für Variable_4, die vom Datentyp WORD ist. Bei Variable_3 belegten wir 4 Bytes, da sie vom Datentyp REAL ist. Deshalb beträgt der Offset für DB2 jeweils 0,0, 2,0, 4,0 und 8,0. Dasselbe Konzept wird für DB3 und DB4 ausgeführt. Da jedoch die Datentypreihenfolge der Variablen unterschiedlich ist, ist die Speicherdarstellung unterschiedlich und daher auch der Offset unterschiedlich. Sehen Sie sich die Bilder 9 und 10 für DB3 und DB4 an. Versuchen Sie, die Darstellung anhand der vorherigen Erklärung zu verstehen. Bild 9 – Speicherdarstellung von DB3 Bild 10 – Speicherdarstellung von DB4 Wenn Sie also mit einer Standard-DB arbeiten, müssen Sie beim Deklarieren Ihrer Variablen vorsichtig sein, da Sie wissen, dass jedes Mal, wenn Sie eine neue BOOL-Variable definieren, Speicher verloren geht. Wenn Sie die neue Variable am Ende Ihrer DB-Liste deklarieren, wird der Offset erweitert, um Ihre neue Variable einzuschließen. Wenn Sie die neue Variable jedoch zwischen Ihrer alten oder am Anfang der DB deklarieren, geschieht etwas anderes. Siehe Bild 11. Bild 11 – Deklarieren einer neuen Variable Als Erstes werden Sie feststellen, dass Ihr Offset jetzt verloren ist und Sie Ihren Code kompilieren müssen, um den neuen Offset wiederherzustellen. Siehe Bild 12. Bild 12 – Stellen Sie Ihren Offset wieder her, indem Sie Ihren Code neu kompilieren Ist Ihnen aufgefallen, wie sich die Adressierung der Variablen (OFFSET) geändert hat? Beispielsweise war der Offset des REAL-Tags 2,0, aber nachdem wir die neue Testvariable hinzugefügt haben, ist die Adressierung desselben REAL-Tags (OFFSET) jetzt 4,0, siehe Bild 13. Bild 13 – Offset-Änderung nach dem Hinzufügen der Testvariable Beim Hinzufügen einer neuen Variable wurde also die Adressierung aller alten Variablen geändert. Das bedeutet, dass jede Anweisung in Ihrem Programm, die den Wert einer bestimmten Variable schreiben oder lesen muss, jetzt die zugewiesene Adresse in der Anweisung betrachtet, aber jetzt hat die Adresse andere Daten als erwartet. Einfach ausgedrückt ist Ihre gesamte Logik jetzt durcheinander. Das wird zu einer Menge Ärger führen. Ganz zu schweigen davon, dass Sie jetzt zusätzlichen Speicher verloren haben, nachdem Sie die neue Variable hinzugefügt haben. Siehe Bild 14. Bild 14 – Hinzufügen einer MOVE-Anweisung Fügen wir eine MOVE-Anweisung hinzu, um einen Wert von 1 in das Tag Variable_2 zu verschieben. Sehen Sie, dass die Adresse der MOVE-Ausgabe %DB2.DBW2 lautet. Fügen wir nun eine neue Variable vom Typ INT zu DB2 hinzu. Siehe Bild 15. Bild 15 – Neue INT-Variable hinzufügen Wenn Sie die neue Variable hinzufügen, geht der Offset verloren und die SPS weiß nicht mehr, wo das Ziel von OUT1 der MOVE-Anweisung ist. Wir müssen das Programm kompilieren, um den neuen Offset neu zu laden. Siehe Bild 16. Bild 16 – Neue Adresse von OUT1 Sehen Sie, wie sich die OUT1-Adresse jetzt geändert hat? Es ist jetzt %DB2.DBW4 statt %DB2.DBW2. Dies ist ein sehr großer Nachteil bei der Verwendung von Standarddatenblöcken. Was sind optimierte DBs? Der Unterschied zwischen optimierten Datenblöcken und Standarddatenblöcken besteht darin, dass Variablen in einem optimierten Datenblock keiner festen Adresse zugewiesen werden, sondern den Variablen ein symbolischer Name zugewiesen wird. Außerdem ist die Struktur des Datenblocks nicht so festgelegt wie bei den Standarddatenblöcken, sodass beim Deklarieren neuer Tags kein Speicherverlust auftritt und die Adressen nicht geändert werden. Siehe Abbildung 17. Abbildung 17 – Deklarieren neuer Tags in optimierten Blöcken Das Deklarieren neuer Tags in optimierten Datenblöcken wirkt sich also nicht auf die übrigen Tags aus, da diese durch symbolische Namen und nicht durch absolute Adressierung definiert werden. Ein optimierter Datenblock erlaubt Ihnen nicht, Adressen zu verwenden, wenn Sie mit den darin definierten Tags arbeiten. Siehe Bild 18. Bild 18 – Absolute Adressierung bei optimierten Bausteinen Wie Sie im letzten Bild sehen, ist bei einem optimierten Datenbaustein keine absolute Adressierung erlaubt und nur symbolische Namen sind zulässig. Siehe Bild 19. Bild 19 – Verwendung symbolischer Namen bei optimierten DBs Vorteile von Datenbausteinen mit optimiertem Zugriff Datenbausteine mit optimiertem Zugriff haben keine fest definierte Struktur. Den Datenelementen (Tags) wird nur ein symbolischer Name zugewiesen und es wird keine feste Adresse innerhalb des Bausteins verwendet. Die Elemente werden automatisch im verfügbaren Speicherbereich des Bausteins gespeichert, so dass keine Lücken im Speicher entstehen. Dadurch wird die Speicherkapazität optimal ausgenutzt und Speicherverlust im Vergleich zu Standard-DBs vermieden. Dadurch ergeben sich folgende Vorteile: Sie können Datenbausteine mit beliebiger Struktur erstellen, ohne auf die physikalische Anordnung der einzelnen Variablen zu achten. Ein schneller Zugriff auf die optimierten Daten ist jederzeit möglich, da die Datenablage vom System optimiert und verwaltet wird. Zugriffsfehler, wie beispielsweise bei indirekter Adressierung oder vom HMI aus, sind nicht möglich. Denn es gibt keine Adressen, sondern nur eindeutige symbolische Namen für jede Variable. Sie können bestimmte einzelne Variablen als remanent definieren. In Standard-DBs können Sie nur den gesamten Baustein als remanent definieren. Fazit Optimierte Datenbausteine haben viele Vorteile gegenüber Standard-DBs. Durch die Verwendung symbolischer Namen können Adressänderungen von Variablen vermieden werden, wenn Sie Ihrem Baustein neue Variablen hinzufügen. Bei optimierten Bausteinen geht kein Speicherbereich verloren. Ganz im Gegensatz zu dem, was bei der Verwendung von Standard-DBs passiert.
  5. In früheren Artikeln haben wir verschiedene Arten von Bausteinen im SIEMENS TIA-Portal besprochen, wir haben über Funktionsbausteine FBs, Funktionen FCs und Datenbausteine DBs gesprochen. In diesem Artikel werden wir uns mit einem anderen Bausteintyp in SIEMENS-SPS befassen, nämlich den Organisationsbausteinen, und in diesem Artikel werden wir den wichtigsten Organisationsbaustein von allen besprechen, nämlich den Hauptorganisationsbaustein oder OB1. Inhalt: Was sind Organisationsbausteine? Verschiedene Arten von OBs. Was ist OB1? Zykluszeitüberwachung. Ein einfaches Programmbeispiel. Fazit. Was ist ein Organisationsbaustein (OB)? Organisationsbausteine können Sie sich als Funktionen FCs oder Funktionsbausteine FBs vorstellen. Der Unterschied besteht jedoch darin, dass Sie sie nicht aufrufen, sondern das Betriebssystem der SPS diese Organisationsbausteine aufruft. Ob das Betriebssystem den OB zyklisch als OB1 aufruft oder ob er aufgerufen wird, wenn ein bestimmtes Ereignis eintritt, in jedem Fall kümmert sich das Betriebssystem darum. Sie müssen nur den Block erstellen und die gewünschte Logik in den Block einfügen. Manchmal müssen Sie nicht einmal Code in den OB einfügen. Allein das Erstellen des OB selbst kann viele Vorteile bieten, die wir bei der Erörterung einiger dieser OBs sehen werden. Organisationsblöcke sind die Schnittstelle zwischen dem SPS-Betriebssystem und dem Benutzerprogramm. Jede SPS hat zwei verschiedene Programme, das Laufzeitprogramm, das das Betriebssystem der SPS ist, und das Benutzerprogramm, das die Logik oder den Code darstellt, den der SPS-Programmierer zur Steuerung eines bestimmten Prozesses schreibt. Diese beiden verschiedenen Softwareprogramme müssen miteinander kommunizieren, und dies geschieht über die Organisationsblöcke (OBs). Organisationsblöcke (OBs) werden zum Ausführen vieler Aufgaben verwendet, von denen einige unten aufgeführt sind: Starteigenschaften des Automatisierungssystems Zyklische Programmverarbeitung Interruptgesteuerte Programmausführung Fehlerbehandlung. Verschiedene Arten von Organisationsblöcken Organisationsblöcke sind im Grunde die Werkzeuge des Betriebssystems zum Ausführen vieler Aufgaben. Verschiedene Aufgaben erfordern unterschiedliche OBs, und deshalb gibt es in einer SPS viele verschiedene OBs. Wie viele verschiedene OBs es sind, hängt vom Typ der von Ihnen verwendeten SPS ab. Hier sind jedoch einige der häufigsten OBs, die Sie in fast allen SIEMENS-SPS finden können: Zyklischer Haupt-OB1. Zeitalarm-OBs. Tageszeit-OBs. Softwarefehler-OBs. Hardwarefehler-OBs Viele weitere Organisationsblöcke stehen zur Verwendung mit Ihrer Logik zur Verfügung. Siehe Abbildung 1. Abbildung 1 – Verschiedene Organisationsblöcke, die im TIA-Portal verfügbar sind In diesem Artikel besprechen wir den wichtigsten Organisationsblock von allen, nämlich den zyklischen Haupt-Interrupt-OB1. Zyklischer Haupt-Interrupt-OB1 Der zyklische Haupt-OB1 ist der Organisationsblock, der für die zyklische Ausführung Ihrer Logik durch die SPS verantwortlich ist. Immer wenn Sie ein neues Projekt erstellen und eine SPS hinzufügen, wird der Haupt-OB1 automatisch von der Software erstellt. Dies sind die mindestens erforderlichen Blöcke für einen SPS-Code. Siehe Abbildung 2. Abbildung 2 – Haupt-OB1 wird automatisch erstellt In diesem Haupt-OB1 können Sie entweder Ihr gesamtes SPS-Programm schreiben, wenn es sich um ein kleines Projekt handelt. Wenn Ihr Projekt ziemlich groß ist, haben Sie wahrscheinlich einige Funktionen FCs oder Funktionsblöcke FBs, die Sie ausführen müssen. In diesem Fall verwenden Sie den Haupt-OB1, um sie aufzurufen. Natürlich müssen Sie nicht jeden FC oder FB über den OB1 aufrufen, aber wenn Ihr OB1 nicht der erste Block Ihrer Verschachtelungsaufrufe ist, wird er nicht ausgeführt. Siehe Abbildung 3. Abbildung 3 – Aufrufen Ihrer Blöcke über OB1 Die wesentliche Grundlage Ihres SPS-Codes ist das zyklische Verhalten, d. h. Ihr Code muss kontinuierlich ausgeführt werden. Wenn die Verarbeitung Ihrer Logik abgeschlossen ist, beginnt das Betriebssystem erneut mit der Verarbeitung. Dies geschieht durch die Verwendung des Haupt-OB1. Sie platzieren und rufen Ihre gesamte Logik und Ihren Code in diesem OB1 auf und das Betriebssystem sorgt dafür, dass er kontinuierlich ausgeführt wird. Sie sollten wissen, dass Sie, auch wenn Sie keinen OB1-Block erstellen können, da dieser automatisch beim Hinzufügen einer neuen SPS erstellt wird, mehr als einen zyklischen Interruptblock erstellen können. OB1 ist ein zyklischer Interrupt, den das Betriebssystem automatisch und kontinuierlich aufruft und die darin enthaltene Logik ausführt. Bei großen SPS-Projekten, bei denen Ihre SPS-Logik viele Funktionen und Funktionsblöcke enthält, können Sie jedoch mehr als einen zyklischen Interrupt-OB verwenden, um Ihren Code besser zu strukturieren und ihn leichter lesbar und nachvollziehbar zu machen. In diesem Fall würden Sie einen weiteren zyklischen Interrupt erstellen, siehe Abbildung 4. Abbildung 4 – Erstellen von mehr als einem zyklischen OB Wenn Sie mehrere Programmzyklus-OBs erstellt haben, werden diese nacheinander in der Reihenfolge ihrer OB-Nummern aufgerufen. Der Programmzyklus-OB mit der niedrigsten OB-Nummer wird zuerst aufgerufen. Siehe Abbildung 5. Abbildung 5 – Programmzyklus mit mehr als einem zyklischen OB Nach Abschluss des zyklischen Programms aktualisiert das Betriebssystem die Prozessabbilder wie folgt: Es schreibt die Werte vom Prozessabbild der Ausgänge in die Ausgangsmodule. Es liest die Eingänge an den Eingangsmodulen und überträgt diese in das Prozessabbild der Eingänge. Die beiden vorherigen Schritte sowie die Ausführung des SPS-Programms werden als Scan-Zyklus bezeichnet. Siehe Abbildung 6. Abbildung 6 – Scan-Zyklus einer Siemens-SPS Zykluszeitüberwachung Die Zykluszeit bezieht sich auf die Laufzeit des zyklischen Programms, einschließlich der Laufzeit aller verschachtelten Programmteile wie FCs, FBs und höherpriorer OBs. Wenn Sie mehrere Programmzyklus-OBs erstellt haben, trägt jeder Programmzyklus-OB zur Zykluszeit bei. Das Betriebssystem überwacht, ob die Zykluszeit kleiner als die konfigurierte maximale Zykluszeit bleibt. Wenn die maximale Zykluszeit überschritten wird, wechselt die SPS je nach Programmierung entweder in den STOP-Modus oder ruft OB80 auf. Neben der Überwachung der maximalen Zykluszeit ist es auch möglich, eine minimale Zykluszeit zu garantieren. Dazu verzögert das Betriebssystem den Start eines neuen Zyklus, bis die Mindestzykluszeit erreicht ist. Sie können die Mindest- und Höchstzykluszeit in den Konfigurationseigenschaften Ihrer SPS konfigurieren. Siehe Abbildung 7. Abbildung 7 – Konfigurieren der Mindest- und Höchstzykluszeit Einfaches Programmbeispiel in der SPS Abbildung 8 – SPS-Programmbeispiel Um den SPS-Programmzyklus und die OB1-Ausführung besser zu verstehen, erstellen wir ein einfaches Programm. Dieses Programm verwendet eine Additionsanweisung, die in jedem Scanzyklus einen Wert von 1 in einem Speicherbereich akkumuliert. Siehe die folgende Simulation. Wie Sie in der Animation sehen, wird die Additionsanweisung sehr schnell ausgeführt; so schnell ist der Scanzyklus. Dies hängt davon ab, wie leistungsstark Ihre SPS ist. Aber hauptsächlich liegt der Scanzyklus im Bereich von Millisekunden. Fazit Organisationsblöcke sind die Schnittstelle zwischen dem SPS-Betriebssystem und Ihrem Steuerungsprogramm. Der Haupt-Zyklische-OB1 wird zyklisch vom Betriebssystem ausgeführt. Sie führen Ihre Logik aus, indem Sie sie in einen oder mehrere Zyklische-OBs einbinden. Die Scan-Zykluszeit ist die Zeit, die zum Ausführen Ihrer Logik 1 Mal benötigt wird.
  6. In einem früheren Artikel haben wir besprochen, was ein Organisationsblock ist, und wir haben über einen sehr wichtigen Organisationsblock gesprochen, nämlich den Haupt-OB1. In diesem Artikel werden wir die verschiedenen OBs weiter besprechen und dieses Mal sprechen wir über die Tageszeit-Interrupt-Organisationsblöcke oder OB10. Inhalt: Was ist der Tageszeit-Interrupt OB10? Wie erstellt und verwendet man OB10? Einfaches Programmbeispiel. Wichtige Regeln für Tageszeit-Interrupts. Schlussfolgerungen. Was ist ein Tageszeit-Interrupt (OB10)? Wie der Name schon sagt, ist ein Tageszeit-Interrupt ein Organisationsblock, der die Ausführung des Hauptzyklus Ihres SPS-Programms zu einer bestimmten Tageszeit unterbricht. Diese Interrupt-Zeit (Datum und Uhrzeit) kann so angegeben werden, dass sie einmal zu einer bestimmten Zeit oder regelmäßig in bestimmten Zeitintervallen auftritt, z. B. jede Minute, Stunde, jeden Tag, jede Woche und einige andere Optionen. Sie können mehr als einen Tageszeit-Interrupt im selben Programm haben. Sie müssen nicht dieselbe Logik oder denselben Code haben, jeder kann seine eigene Funktionalität haben und jeder kann separat so konfiguriert werden, dass er zu einer bestimmten Zeit auftritt. Wie erstelle und verwende ich OB10? Um einen Tageszeit-Interrupt zu erstellen, folgen Sie denselben Schritten, die Sie ausführen würden, wenn Sie einen neuen Block in Ihre Logik einfügen müssen. Siehe Abbildung 1. Abbildung 1 – Einen Tageszeit-Interrupt hinzufügen Klicken Sie im Projektbaum links auf die Option „Neuen Block hinzufügen“, wählen Sie den Organisationsblock und dann einen Tageszeit-Interrupt, wie im vorherigen Bild gezeigt. Jetzt können Sie OB10 öffnen und die SPS-Logik hinzufügen, die Sie ausführen möchten, wenn dieser Block aufgerufen wird. Mit „aufgerufen“ meinen wir, dass das Interrupt-Ereignis oder die Interrupt-Zeit aufgetreten ist und das Betriebssystem daher den Hauptzyklus unterbricht und OB10 ausführt. Wir werden einen sehr einfachen Code in OB10 schreiben, um besser zu verstehen, wie dieser OB10-Block funktioniert. In dieser Logik haben wir den Add-Befehl verwendet, um einem Speicherbereich, den wir TimeOfDayInterruptCounter genannt haben, einen Wert von 1 hinzuzufügen und das Ergebnis der Summierung dann wieder in denselben Bereich zu schreiben. Auf diese Weise können wir einen Zähler für die Ausführung des OB10 haben. Jedes Mal, wenn der OB10 aufgerufen und ausgeführt wird, erhöht sich der Wert von TimeOfDayInterruptCounter um 1. Siehe Bild 2. Bild 2 – Fügen Sie Ihre Logik zum OB10 hinzu Nachdem wir nun den OB10 erstellt und etwas Logik hineingeschrieben haben, müssen wir die eingestellte Zeit des OB10 konfigurieren und festlegen, wie oft er unseren Hauptzyklus unterbrechen soll. Um die Zeit- und Intervalleinstellung des OB10 zu konfigurieren, müssen wir zur Eigenschaftenseite des OB10 gehen. Siehe Bild 3. Bild 3 – Eigenschaften von OB10 In den Eigenschaften von OB10 finden Sie viele Einstellungen und Attribute, die Sie konfigurieren können. Was wir jetzt brauchen, ist die Seite mit den Tageszeit-Interrupts, damit wir festlegen können, wann und wie oft OB10 aufgerufen wird. Siehe Bild 4. Bild 4 – Einstellung der Tageszeit-Interrupts Wie Sie im letzten Bild sehen, können Sie die Ausführung von OB10, das Startdatum und die Tageszeit festlegen, zu der OB10 ausgeführt werden soll. Zur Simulation haben wir das Ausführungsintervall auf jede Minute festgelegt, sodass OB10 jede Minute aufgerufen und ausgeführt wird. Das bedeutet, dass ab dem Datum 23.03.2023 und der Uhrzeit 09:25 Uhr der Wert von TimeOfDayInterruptCounter jede Minute um 1 erhöht wird. Sie haben die Möglichkeit, die Zeit entsprechend der SPS-Systemzeit oder der Ortszeit einzustellen, wie Sie im letzten Bild sehen. In einem früheren Artikel haben wir über die System- und Ortszeit der SPS gesprochen, was jede Zeit bedeutet und wie man sie konfiguriert und verwendet. Wie wir bereits gesagt haben, ist die Ortszeit die Zeit, die Sie jetzt auf Ihrem PC sehen. Es ist also die tatsächliche Zeit der Region, in der die SPS verwendet wird. Sie müssen die Ortszeit für die SPS konfigurieren, je nachdem, wo sie verwendet wird. Siehe Bild 5. Bild 5 – Einstellen der Ortszeit für die SPS Beispiel für ein einfaches SPS-Programm Wir haben unserem SPS-Programm einen Tageszeit-Interrupt OB10 hinzugefügt und ihn so eingestellt, dass er jede Minute ausgeführt wird. Wir haben auch die Ortszeit der SPS konfiguriert. Wir haben eine einfache Logik einer ADD-Anweisung erstellt, um den Wert des TimeOfDayInterruptCounter bei jeder Ausführung des OB10 um 1 zu akkumulieren. Wir werden einen weiteren Befehl hinzufügen, aber im Haupt-OB1 ist dieser Befehl RD_LOC_T oder „Lokalzeit lesen“, damit wir sehen können, wie die Lokalzeit voranschreitet und sie mit der Ausführung von OB10 vergleichen können. Siehe Abbildung 6. Abbildung 6 – Einfaches Programmbeispiel Kompilieren Sie Ihr SPS-Programm und starten Sie eine neue Simulation. Beachten Sie, dass wir die Uhrzeit des Auftretens der Unterbrechung festlegen, damit OB10 aufgerufen und ausgeführt werden kann, während wir die SPS-Logik simulieren. Siehe die folgende Simulation. Wie Sie der Animation entnehmen können, ist der Wert von TimeOfDayInterruptCounter zu Beginn Null und wird dann ab 09:25 Uhr jede Minute um 1 erhöht, was bedeutet, dass der OB10 jede Minute ausgeführt wird. Wichtige Regeln für die Uhrzeitalarme Wenn Sie einen Uhrzeitalarm so einstellen, dass der entsprechende OB einmalig abgearbeitet werden soll, darf der Startzeitpunkt nicht in der Vergangenheit liegen (bezogen auf die Echtzeituhr der CPU). Wenn Sie einen Uhrzeitalarm so einstellen, dass der entsprechende OB periodisch abgearbeitet werden soll, der Startzeitpunkt jedoch in der Vergangenheit liegt, dann wird der Uhrzeitalarm-OB beim nächsten fälligen Zeitpunkt gemäß der aktuellen Uhrzeit abgearbeitet. Das Datum periodischer Uhrzeitalarme muss einem realen Datum entsprechen. Beispielsweise ist die monatliche Wiederholung eines Uhrzeitalarm-OBs mit einem Startdatum vom 31.01. daher nicht möglich. In diesem Fall wird ein OB nur in den Monaten gestartet, die 31 Tage haben. Ein beim Start aktivierter Zeitinterrupt wird erst ausgeführt, wenn der Start abgeschlossen ist. Ein Start löscht alle Zeitinterrupts, die durch eine Anweisung im Benutzerprogramm gesetzt und aktiviert wurden. Fazit OB10 ist ein Organisationsbaustein, der so konfiguriert werden kann, dass er den Zyklus Ihres Programms an einem bestimmten Tag und zu einer bestimmten Uhrzeit unterbricht. Dieser Interrupt kann entweder einmal oder regelmäßig in einem bestimmten Zeitintervall auftreten. Es gibt keinen bestimmten Grund, warum Sie einen OB10 benötigen würden, da dies von Ihrem Prozess und Ihrer Logik abhängt. Und ja, Sie können dieselbe Funktionalität mit Ihrem persönlichen Code erreichen, aber es handelt sich um eine verfügbare und einfach zu verwendende integrierte Funktion. Und Sie wissen, wie man sie verwendet.
  7. In früheren Artikeln haben wir besprochen, was ein Organisationsblock ist, und wir haben über den Haupt-Zyklischen Interrupt OB1 und den Tageszeit-Interrupt OB10 gesprochen. In diesem Artikel werden wir die verschiedenen OBs weiter besprechen, und dieses Mal sprechen wir über den Time Delay Interrupt Organization Block oder OB20. Inhalt: Was ist OB20? Wie ruft man OB20 auf? Parameter der SRT_DINT-Anweisung. Beispielprogramm. Fazit. Was ist Time Delay Interrupt (OB20)? OB20 ist ein Organisationsblock, der vom Betriebssystem aufgerufen und ausgeführt wird, aber wir müssen dem Betriebssystem mitteilen, wann dieser OB20 aufgerufen werden soll. Das Betriebssystem erhält die Informationen vom Benutzer-SPS-Programm, um diesen OB20 aufzurufen. Es wartet auf die konfigurierte Verzögerungszeit und ruft dann die Logik auf und führt sie aus, die sich im OB20 befindet. Wir erstellen einen OB20-Block, indem wir im Projektbaum einen neuen Block hinzufügen. Siehe Abbildung 1. Abbildung 1 – Einen neuen OB20-Block erstellen Nachdem ich nun einen Zeitverzögerungs-Interrupt erstellt habe, stellt sich die Frage, wann dieser ausgeführt wird. Und wie konfiguriere ich die Zeitverzögerung der Blockausführung? Auch hier ist OB20 ein Organisationsblock, was bedeutet, dass Sie den auszuführenden Block nicht aufrufen, sondern dem Betriebssystem mitteilen, wann es ihn aufrufen und die darin enthaltene Funktionalität ausführen kann. Wie teilt man dem Betriebssystem mit, dass es OB20 aufrufen soll? Um dem Betriebssystem mitzuteilen, dass wir OB20 aufrufen möchten, verwenden wir SRT_DINT oder den Startzeitverzögerungs-Interrupt, siehe Abbildung 2. Abbildung 2 – Startzeitverzögerungsanweisung Parameter der SRT_DINT-Anweisung Wie Sie im letzten Bild sehen, können Sie die SRT_DINT-Anweisung verwenden, um OB20 aufzurufen. Sie müssen jedoch einige Parameter konfigurieren, damit die Anweisung funktioniert. EN: Die Anweisung wird erst ausgeführt, wenn am EN-Eingang ein negatives Flankensignal anliegt. Das bedeutet, dass Sie eine Bedingung aus dem Satz von Bedingungen zuweisen müssen, um das Signal zu aktivieren, und die Anweisung funktioniert nur, wenn diese Bedingung wahr und dann wieder falsch ist. OB_NR: Sie weisen die Nummer des Verzögerungsinterrupts zu, den Sie aufrufen müssen, in unserem Fall 20, da wir OB20 erstellt haben, aber wir können mehr als einen Verzögerungsinterrupt erstellen und müssen dann jeden mit einer separaten SRT_DINT-Anweisung aufrufen. DTIME: Dies ist die Verzögerungszeit, die Sie abwarten möchten, bevor Sie OB20 ausführen. Wir werden diese Zeit der Simulation halber auf 5 Sekunden festlegen. SIGN: Kennung, die angezeigt wird, wenn der Zeitverzögerungsinterrupt-OB in den Startereignisinformationen des OB aufgerufen wird. Beispiel-SPS-Programm Um OB20 besser zu verstehen, erstellen wir eine einfache Logik, um zu sehen, wie ein OB20 aufgerufen und ausgeführt werden kann. Wir werden dieses SPS-Beispiel auf der Logik aufbauen, die wir in früheren Artikeln für OB1 und OB10 erstellt haben. In OB20 erstellen wir eine Logik, die zählt, wie viele OB1-Zyklen innerhalb der 5 Sekunden Verzögerungszeit aufgerufen und ausgeführt wurden, die wir für OB20 konfiguriert haben. Siehe Abbildung 3. Abbildung 3 – Logik in OB20 Im letzten Bild sehen Sie, dass wir den MOVE-Befehl verwendet haben, um Informationen zu Zykluszählungen zu Beginn des OB20-Aufrufs und nach dessen Ausführung zu übertragen. Den Rest der Logik finden Sie in Abbildung 4. Abbildung 4 – Berechnen Sie, wie viele Zyklen innerhalb von 5 Sekunden gezählt werden Danach subtrahieren wir die beiden Werte der Zykluszählungen, um zu ermitteln, wie viele Zyklen innerhalb der 5 Sekunden Verzögerung ausgeführt wurden. Nachdem wir nun die gewünschte Logik erstellt haben, wie können wir OB20 aufrufen? Wie bereits erläutert, müssen wir die Anweisung SRT_DINT verwenden. Wir werden diese Anweisung innerhalb des OB10 verwenden, den wir zuvor so konfiguriert haben, dass er jede Minute ausgeführt wird. Das bedeutet, dass der OB20 ebenfalls jede Minute aufgerufen und ausgeführt wird, jedoch mit einer Verzögerungszeit von 5 Sekunden. Im vorherigen Artikel haben wir eine Logik erstellt, die angibt, wie oft der OB1 aufgerufen und ausgeführt wird. Außerdem haben wir eine weitere Logik erstellt, die den OB10 jede Minute aufruft. In diesem Beispiel verwenden wir den Aufruf des OB10, um den OB20 aufzurufen. Siehe Abbildung 5. Abbildung 5 – Aufruf des OB20 über OB10 Wir haben bereits gesagt, dass der SRT_DINT ein negatives Flankensignal am EN benötigt, damit der Aufruf gestartet werden kann. Aus diesem Grund haben wir das Signal TimeOfDayInterruptEnabled verwendet, von dem wir wissen, dass es wahr sein wird, wenn OB10 ausgeführt wird, und dann wieder auf falsch zurückgeht, was uns das Flankensignal gibt, das wir brauchen. Nachdem die gesamte SPS-Logik nun abgeschlossen ist, kompilieren und führen wir eine neue Simulation aus. Sehen Sie sich die folgende Simulation unseres Projekts an. Sie sehen in der Animation, dass die Werte der Zykluszählungen zunächst Nullen sind, aber wenn OB10 aufgerufen wird und TimeOfDayInterruptEnabled wahr ist, wartet die Logik 5 Sekunden, dann werden die Zählwerte mit den Zykluszählungen aktualisiert. Fazit OB20 ist ein Organisationsblock, der vom Betriebssystem aufgerufen und ausgeführt wird. Wir können dem Betriebssystem sagen, dass es OB20 mit der Anweisung SRT_DINT aufrufen soll.
  8. In früheren Artikeln haben wir verschiedene Arten von Organisationsblöcken besprochen, wie den Haupt-OB1, der der wichtigste zyklische Programmblock ist. In diesem Artikel werden wir uns mit einem anderen zyklischen Organisationsblock befassen. Dem OB30 oder zyklischen Interrupt-OB. Inhalt: Was ist ein zyklischer Interrupt OB30? Was ist der Haupt-OB1-Zyklus? Warum brauche ich OB30? Wie konfiguriere ich zyklische Interrupts? Was ist, wenn ich mehr als einen zyklischen Interrupt habe? Fazit. Was ist ein zyklischer Interrupt OB30? Ein zyklischer Interrupt OB30 ist ein Organisationsblock, der in festgelegten und genauen Zeitintervallen aufgerufen und ausgeführt wird. Im Gegensatz zum zyklischen Haupt-OB1, der kontinuierlich aufgerufen und ausgeführt wird, wird der zyklische Interrupt in Zeitintervallen aufgerufen, die Sie beim Erstellen eines zyklischen Interrupt-OB konfigurieren sollten. Wenn ich beispielsweise einen OB30 mit einem Zeitintervall _auch Zykluszeit genannt_ von 20 ms erstellt habe, bedeutet dies, dass das Betriebssystem den Hauptzyklus-OB1 unterbricht und den OB30 alle 20 ms aufruft. Sie müssen sicherstellen, dass die Laufzeit eines zyklischen Interrupt-OB kleiner als sein Zeitintervall ist. Andernfalls kann es passieren, dass der nächste Aufruf des OB30 eintrifft, während dieser Aufruf des OB30 noch ausgeführt wird. In diesem Fall generiert das Betriebssystem einen Zeitfehler, der dazu führen kann, dass die SPS in den STOP-Modus wechselt. Was ist der Hauptzyklus-OB1? Der Hauptzyklus-OB1 ist der Organisationsbaustein, der für die zyklische Ausführung Ihrer Logik durch die SPS verantwortlich ist. Immer wenn Sie ein neues Projekt erstellen und eine SPS hinzufügen, wird der Haupt-OB1 automatisch von der Software erstellt. Die wesentliche Grundlage Ihres SPS-Codes ist das zyklische Verhalten, d. h. Ihr Code muss kontinuierlich ausgeführt werden. Wenn die Verarbeitung Ihrer Logik abgeschlossen ist, beginnt das Betriebssystem erneut mit der Verarbeitung. Dies geschieht durch die Verwendung des Haupt-OB1. Sie platzieren und rufen Ihre gesamte Logik und Ihren Code in diesem OB1 auf und das Betriebssystem sorgt dafür, dass diese kontinuierlich ausgeführt werden. Die Zykluszeit des Haupt-OB1 bezieht sich auf die Laufzeit des zyklischen Programms, einschließlich der Laufzeit aller verschachtelten Programmteile wie FCs, FBs und OBs mit höherer Priorität. Wenn Sie mehrere Programmzyklus-OBs erstellt haben, trägt jeder Programmzyklus-OB zur Zykluszeit bei. Das Betriebssystem überwacht, ob die Zykluszeit kleiner bleibt als die konfigurierte maximale Zykluszeit. Wenn sie die maximale Zykluszeit überschreitet, wechselt die SPS je nach Ihrer Programmierung entweder in den STOP-Modus oder ruft OB80 auf. Warum brauche ich OB30? Jemand könnte argumentieren, dass ich jede beliebige Funktionalität innerhalb des OB30 im Haupt-OB1 platzieren und versuchen kann, damit durchzukommen, abhängig von der sehr schnellen Leistung der meisten SPS heutzutage. Das kann manchmal in Ordnung sein, aber nicht immer. Abhängig von der Leistung Ihrer SPS kann die Hauptzykluszeit zwischen 1 und 150 ms liegen. Sie kann unterschiedlich sein, aber dies ist die Standardkonfiguration. Diese Zykluszeit hängt von vielen Faktoren ab, wie der Größe Ihres SPS-Programms und Interrupts in Ihrer Logik und anderen Faktoren, die die Laufzeit Ihres Zyklus höchstwahrscheinlich instabil machen. Wenn Sie nun bestimmte Funktionen genau alle 10 ms ausführen müssen, nicht alle 9 ms und nicht alle 11 ms, können Sie sich nicht auf den Haupt-OB1 verlassen, da das Ergebnis möglicherweise nicht wie gewünscht ist. In diesem Fall verwenden Sie den zyklischen Interrupt OB30, konfigurieren ihn auf die gewünschten 10 ms und das Betriebssystem stellt sicher, dass diese Funktion genau alle 10 ms aufgerufen und ausgeführt wird. Aus diesem Grund wird er Interrupt genannt, da er die Ausführung des Haupt-OB1 unterbricht, um Ihren OB30 aufzurufen und auszuführen. Beispiele für Funktionen, die OB30 benötigen PID-Reglerverarbeitung. Überwachung von Sicherheitskreisen. Überwachung der Kommunikation zwischen Maschinen. In allen vorherigen Beispielen müssen Sie Ihre Parameter zu bestimmten Zeiten kontinuierlich überwachen und überprüfen, da sie sich auf reale physikalische Größen oder auf die Maschinensicherheit beziehen. Die Ausführung solcher Funktionen sollte nicht verzögert werden, da sie die Sicherheit und Kontinuität Ihres Prozesses beeinträchtigen. Wie konfiguriere ich zyklische Interrupts? Wenn Sie einen zyklischen Interrupt erstellen, müssen Sie einige Parameter konfigurieren. Siehe Abbildung 1 zum Hinzufügen eines neuen OB30. Abbildung 1 – Neuen zyklischen Interrupt OB30 hinzufügen Wenn Sie einen zyklischen Interrupt erstellen, finden Sie viele Parameter, die Sie in den Eigenschaften des Blocks festlegen können, siehe Abbildung 2. Abbildung 2 – Eigenschaften von OB30 Die wichtigsten Parameter, die Sie berücksichtigen müssen, sind folgende: Zykluszeit Verwenden Sie den Parameter „Zykluszeit“, um den Zeitraum zwischen zwei Aufrufen des zyklischen Interrupt-OB festzulegen. Er ist ein ganzzahliges Vielfaches von 1 µs. Phasenversatz Hier stellen Sie die Zeitspanne ein, um die die Startzeitpunkte gegenüber dem Vielfachen der Zykluszeit verschoben werden. Siehe Abbildung 3 für die Konfiguration von Zykluszeit und Phasenversatz. Abbildung 3 – Einstellen der Zykluszeit und des Versatzes von OB30 Priorität des Weckalarm-OB Dies ist ein weiterer wichtiger Parameter, den Sie beim Konfigurieren eines zyklischen Interrupts berücksichtigen müssen, da Sie möglicherweise mehr als einen zyklischen Block haben. Wenn zwei verschiedene OBs gleichzeitig aufgerufen werden müssen, ruft das Betriebssystem den Block mit einer höheren Prioritätsnummer auf und führt ihn aus. Sie sollten wissen, dass der SPS-Hauptprogrammzyklus OB1 die Prioritätsnummer 1 hat, die niedrigste Prioritätsstufe, die ein Block haben kann. Deshalb kann OB1 durch jeden anderen Blockaufruf unterbrochen werden. Siehe Abbildung 4. Abbildung 4 – Festlegen der Priorität von OB30 Was passiert, wenn ich mehr als einen zyklischen Interrupt habe? Es ist nicht ungewöhnlich, dass Sie mehr als einen zyklischen Interrupt in Ihrer Logik haben. Wenn Sie zwei PID-Regler in Ihrer SPS-Logik haben, benötigen Sie möglicherweise zwei zyklische Interrupts, um jeden PID zu verarbeiten. In diesem Fall müssen Sie sicherstellen, dass sich der Aufruf und die Ausführung verschiedener zyklischer Interrupts nicht überschneiden. Wenn Sie beispielsweise OB30 mit einer Intervallzykluszeit von 5 ms und OB31 mit einem Zyklusintervall von 10 ms haben, bedeutet dies, dass der zweite Aufruf von OB30 auch die Zeit für den Aufruf von OB31 ist. Dies kann zu Logikfehlern führen, selbst wenn Sie die Priorität eines der beiden höher als die des anderen einstellen, wird Ihre Zykluszeit für den Block mit der niedrigeren Priorität durcheinandergebracht. Siehe Abbildung 5. Abbildung 5 – Überlappung des Aufrufs verschiedener zyklischer Interrupts In diesem Fall kann ein Phasenversatz ratsam sein, wenn Sie mehrere zyklische Interrupt-OBs verwenden. Wenn ihre Zykluszeiten gemeinsame Vielfache haben, können Sie einen Phasenversatz verwenden, um gleichzeitige Startzeiten zu verhindern. Siehe Abbildung 6. Abbildung 6 – Versatz zwischen verschiedenen OB-Aufrufen Um diese Überlappung zu vermeiden, setzen wir die Versatzzeit von OB31 auf 1 ms. Das bedeutet, dass die Zählung für das OB31-Zeitintervall um 1 ms gegenüber der Startzeit von OB30 verschoben wird. Siehe Abbildung 7. Abbildung 7 – Offset-Einstellung von OB31 Fazit Zyklische Interrupts sind sehr nützlich für zeitkritische Aufgaben, bei denen es zu keinen Verzögerungen kommen sollte. Sie können mehr als einen zyklischen Interrupt in Ihrer Logik haben. Verwenden Sie die Offset-Einstellung der zyklischen Interrupts, um gleichzeitige Startzeiten zu vermeiden. Verwenden Sie die Prioritätseinstellung, um die Reihenfolge der Ausführung verschiedener zyklischer Interrupts zu steuern.
  9. In früheren Artikeln haben wir begonnen, verschiedene Organisationsblöcke von TIA Portal PLCs zu besprechen, wir haben darüber gesprochen, was OBs sind, und wir haben einige der OBs wie OB1- Hauptzyklus, OB10 und OB20, die Tageszeitverzögerung bzw. Zeitverzögerungsinterrupts, besprochen. In diesem Artikel werden wir über den OB100 oder den Start-Organisationsblock im Siemens Tia Portal sprechen. Inhalt: Was ist OB100? Warum wird OB100 benötigt? Wichtige Hinweise beim Start. Einfaches Programmbeispiel. Was ist der Start-Organisationsblock (OB100)? OB100 oder der Start-OB ist ein Organisationsblock, der vom Betriebssystem einmal beim Start der SPS aufgerufen und ausgeführt wird, d. h. einmal bei jedem Übergang vom STOP- in den RUN-Modus. Der Hauptzyklus OB1 wird erst aufgerufen und ausgeführt, wenn alle Startfunktionen innerhalb von OB100 ausgeführt wurden. Sie können mehr als einen Start-OB in Ihrer SPS-Logik haben. Wenn das passiert, ruft das Betriebssystem sie alle nacheinander auf und führt sie aus, beginnend mit einer niedrigeren OB-Nummer zu einer höheren Nummer. Wenn Sie also OB100 und OB123 haben, wird zuerst OB100 aufgerufen und ausgeführt, dann OB123. Nachdem OB100 ausgeführt wurde, liest das Betriebssystem die Eingangsmodule in das PII und startet das Hauptzyklusprogramm OB1. Warum brauchen Sie OB100? Sie verwenden OB100 für viele Aufgaben, die Sie möglicherweise ausführen möchten oder müssen, bevor Sie Ihre zyklische Logik starten. Dies sind die folgenden Gründe: Variablen initialisieren. Systemmodule zurücksetzen. Sensoren/Aktoren neu kalibrieren. Vor dem Starten Ihres Prozesses auf Alarme und Sicherheitsbedingungen prüfen. Auch wenn Sie keinen Anlauf-OB für Ihre Logik erstellt haben, muss das Betriebssystem vor dem Start Ihrer Hauptlogik noch viele Aufgaben ausführen. Einige dieser Aufgaben sind: Nicht remanente Speicher löschen PAA löschen Anlauf-OBs aufrufen und ausführen, falls vorhanden. PAA aktualisieren Ausgänge nach dem Wechsel in den RUN-Modus aktivieren. Haben Sie bemerkt, dass die letzte Aufgabe einer Anlaufroutine darin besteht, die Ausgänge zu aktivieren? Deshalb besteht der erste Schritt bei der Ausführung des Hauptzyklusprogramms OB1 darin, die PAA in das Ausgangsmodul zu schreiben. Wichtige Hinweise während des Anlaufs Beachten Sie die folgenden Punkte zum Modus „STARTUP“: Die Ausgänge an den Modulen sind deaktiviert. Das Prozessabbild wird initialisiert. Das Prozessabbild wird nicht aktualisiert. Um während des „STARTUP“ den aktuellen Zustand von den Eingängen zu lesen, können Sie über direkten E/A-Zugriff auf die Eingänge zugreifen. Um während des Anlaufs die Ausgänge zu initialisieren, können Werte über das Prozessabbild oder über direkten E/A-Zugriff geschrieben werden. Die Werte werden beim Übergang in den „RUN“-Modus an den Ausgängen ausgegeben. Die nicht remanenten Merker, Timer und Zähler werden initialisiert. Die nicht remanenten Variablen in Datenbausteinen werden initialisiert. Beim Anlauf läuft noch keine Zykluszeitüberwachung. Einfaches Programmbeispiel In diesem Beispiel fügen wir unserer SPS-Logik einen Anlauf-OB100 hinzu und sehen, wie oft der OB100 ausgeführt wird. Siehe Bild 1 zum Hinzufügen eines neuen OB100. Bild 1 – Hinzufügen eines OB100 Wie Sie im letzten Bild sehen, fügen Sie Anlauforganisationsblöcke auf die gleiche Weise hinzu, wie wir eine Funktion eines Funktionsbausteins hinzufügen. Innerhalb des gerade erstellten OB100 fügen wir eine einfache ADD-Anweisung hinzu, um zu akkumulieren, wie oft der OB100 aufgerufen und ausgeführt wird. Siehe Bild 2. Bild 2 – Ausführungszeiten von OB100 akkumulieren Kompilieren und führen Sie nun Ihr Programm aus und sehen Sie, was passiert. In der folgenden Animation sehen Sie eine Simulation des SPS-Programms. Animation 1 Wie Sie in der obigen Animation sehen können, ist der OB100CycleCounter 1 und ändert sich nicht, wenn der SPS-Modus von STOP auf RUN wechselt. Er ändert sich zwar, aber Sie sehen diese Änderung nicht. Jedes Mal, wenn die SPS in den STOP-Modus und dann wieder in den RUN-Modus wechselt, wird der Zähler auf Null und dann wieder auf 1 zurückgesetzt, nachdem OB100 ausgeführt wurde. Sie können auch sehen, wie sich der Hauptzykluszähler von OB1 ändert, und wenn die SPS anhält und dann wieder läuft, beginnt der OB1CycleCounter erneut zu akkumulieren. Um die Änderung im Startzähler zu sehen, müssen wir den Wert des Tag-Speichers beibehalten. Siehe Bild 3. Bild 3 – Behalten des OB100CycleCounter-Tagspeichers Nachdem wir den OB100CycleCounter-Tag behalten haben, führen Sie die SPS-Simulation erneut aus und sehen Sie, was passiert. Siehe Simulationsanimation 2. Animation 2 Sie sehen jetzt in der obigen Animation, dass der Startzähler jedes Mal steigt, wenn ich die SPS stoppe und dann wieder starte. Da der Tagspeicher jetzt beibehalten wird, wird der Wert nicht auf Null zurückgesetzt, und deshalb sehen Sie, wie sich der Wert des OB100CycleCounters ansammelt. Jetzt muss ich meiner Start-SPS-Logik zusätzliche Funktionen hinzufügen, nämlich wissen, wann der letzte Start der SPS war. Wir werden das durch eine einfache Logik erreichen, bei der ich die lokale Zeit der SPS beim Start lese und Datum und Uhrzeit in einen bestimmten Speicherbereich verschiebe. Siehe Bild 4. Bild 4 – Lokale Zeit beim Start ablesen Nachdem Sie Ihre Logik hinzugefügt haben, kompilieren Sie die Simulation und führen Sie sie erneut aus. Sehen Sie sich die SPS-Simulationsanimation 3 an. Animation 3 Sie können der obigen Animation entnehmen, dass bei jedem Start der SPS das Startdatum und die Startzeit im von uns zugewiesenen Speicherbereich aufgezeichnet werden. Jetzt habe ich also die Informationen darüber, wie oft meine SPS gestartet wurde und wann der letzte Startzeitpunkt war. Fazit Start-OBs sind sehr wichtig, wenn Sie einige Funktionen auswerten möchten, bevor Sie Ihren zyklischen Prozess ausführen können. Sie können Start-OBs verwenden, um Parameter zu initialisieren, Sensoren zu kalibrieren und sogar Sicherheitsbedingungen zu prüfen, bevor Sie Ihren Prozess ausführen lassen.
  10. In diesem Artikel setzen wir unsere Diskussion über verschiedene Arten von Organisationsblöcken in der Siemens-SPS fort. Dieses Mal sprechen wir über den OB121 oder den Programmierfehler-Interrupt im Tia-Portal. Inhalt: Was sind Programmierfehler-Interrupts OB121? Beispiele für Programmierfehler. Was passiert, wenn ein Programmierfehler erkannt wird? Simulation eines Programmierfehlers im TIA-Portal. Wie kann der OB121 gegen Programmierfehler nützlich sein? Schlussfolgerungen. Was sind Programmierfehler-Interrupts (OB121)? OB121 ist ein Organisationsblock, der vom Betriebssystem der SPS aufgerufen wird, wenn beim Ausführen Ihrer Logik ein Programmierfehler auftritt. Beachten Sie, dass wir nicht von einem Programmierfehler sprechen, der vom Compiler abgefangen wird, wenn versucht wird, Ihre Logik in Ihre SPS herunterzuladen. Siehe Bild 1. Bild 1 – Einige Programmierfehler werden vom Compiler erkannt Wie Sie im letzten Bild sehen, liegt in meiner SPS-Logik ein Programmierfehler vor; einige Operanden fehlen in der Eingabe und Ausgabe von Netzwerk 1. Dieser Fehler wurde jedoch vom Compiler erkannt, bevor die Logik überhaupt in die SPS heruntergeladen wurde. Der Fehler in Bild 1 ist nicht der Programmierfehlertyp, der den Aufruf von OB121 auslösen kann. Fehler in Ihrem SPS-Programm, die vom Compiler nicht gefunden werden können, aber dennoch Probleme in Ihrer Logik verursachen können, während die SPS läuft, sind die Programmierfehler, die wir meinen. Diese Fehler lösen einen Aufruf von OB121 durch das Betriebssystem aus. Beispiele für Programmierfehler Hier sind einige Beispiele für Fehler in Ihrer SPS-Logik, die Programmierfehler verursachen können: Maximale Verschachtelungstiefe von Blockaufrufen überschritten. Sie haben einen NULL-Zeiger verwendet, um einen Operanden anzusprechen. Unbekannte Anweisung. Die adressierte Zeichenfolge weist falsche Längeninformationen auf. Bereichslängenfehler beim Lesen. Bereichslängenfehler beim Schreiben. Fehler in Timer-Nr. Zugriff auf einen nicht geladenen DB; die DB-Nummer befindet sich im zulässigen Bereich. DB existiert nicht. Diese und viele weitere Fehler können Programmierfehler in Ihrer SPS verursachen. Im Hilfebereich des TIA-Portals können Sie nachlesen, welche anderen Gründe zu Programmierfehlern in der SPS führen können. Was passiert, wenn ein Programmierfehler erkannt wird? Wenn Ihre SPS einen Programmierfehler erkennt, kann eines von drei Ereignissen eintreten. Ihre SPS zeigt einen Fehler an und wechselt in den STOP-Modus. Ihre SPS zeigt einen Fehler an, führt Ihre Logik jedoch weiter aus. Ihre SPS zeigt einen Fehler an und versucht dann, diesen Fehler zu beheben. Diese drei Ereignisse hängen im Wesentlichen von Ihrer SPS-Programmierung ab. Das heißt, Ihr Code entscheidet, wie sich das Betriebssystem bei Erkennung eines Programmierfehlers verhält. Simulation eines Programmierfehlers im TIA-Portal Um das Verhalten der SPS besser zu verstehen, erstellen wir ein einfaches Programm, in dem wir einen Programmierfehler verursachen, und sehen dann, was passiert. Siehe Bild 2. Bild 2 – Einfache Programmlogik Die von uns erstellte Logik ist sehr einfach. Wenn InitiateProgError aktiviert wurde, wird der Wert 126 in den Bereich DB52.DBW16 verschoben. Beachten Sie, dass wir DB52 nicht erstellt haben. Dies wird also unser Programmierfehler sein. Beachten Sie, dass dieser Fehler beim Kompilieren oder Herunterladen in die SPS nicht erkannt wird. Siehe Bilder 3 und 4. Bild 3 – Vom Compiler nicht erkannter Fehler Sehen Sie, wie der Block erfolgreich kompiliert wurde, obwohl ein Programmierfehler auftrat. Bild 4 – Block in SPS heruntergeladen Wieder wurde der Block mit einem Programmierfehler in die SPS heruntergeladen. Lassen Sie uns nun unser SPS-Programm simulieren und sehen, was passiert. Die Simulation des SPS-Codes finden Sie in Animation 1. Animation 1 Wie Sie in der obigen Animation sehen, blinkt die PLC ERROR-LED einige Sekunden lang rot, dann wechselt die PLC in den STOP-Modus. Gehen Sie zur PLC-Onlinediagnose, um zu sehen, was passiert ist. Siehe Bild 5. Bild 5 – Online- und Diagnose der PLC Was Sie in der Animation gesehen haben, ist genau das, was Sie im vorherigen Bild sehen. Es kann in 3 Schritten beschrieben werden: Die PLC erkennt den Programmierfehler, nämlich dass OB52 nicht geladen ist. Das Betriebssystem löst den Aufruf des OB121 aus, aber in unserer Logik wurde kein OB121 erstellt. Wenn die PLC feststellt, dass in unserer Logik kein OB121 erstellt wurde, initiiert das Betriebssystem eine STOP-Anforderung. Und die PLC wechselt in den STOP-Modus. Wie kann der OB121 gegen Programmierfehler hilfreich sein? Fügen wir unserem SPS-Code einen OB121 hinzu und sehen wir, wie sich die Dinge ändern. Siehe Bild 6. Bild 6 – Hinzufügen eines OB121 Nachdem wir den OB121 erstellt und in unsere SPS-Logik eingefügt haben, sehen wir, was in der Simulation passiert. Denken Sie daran, dass wir keine SPS-Logik in den OB121 geschrieben haben. Siehe Animation 2. Animation 2 Wie Sie in Animation 2 sehen, blinkt die PLC ERROR-LED rot, wenn InitiateProgError ausgelöst wird, aber die SPS läuft weiter. Das bedeutet, dass die SPS nicht in den STOP-Modus wechselt. Sehen wir uns die Online-Diagnose an, um zu sehen, was tatsächlich passiert ist. Siehe Bild 7. Bild 7 – Fehler hat nicht zum Stoppen der SPS geführt Sie sehen auf dem Bild, dass die SPS den Fehler erkennt, aber nicht in den STOP-Modus wechselt. Sie überspringt diesen Fehler, setzt den Zyklus fort und beginnt wieder von vorne. Wenn der Fehler erneut auftritt, erkennt sie ihn erneut und gibt einen Alarm in der Diagnose aus. Überspringen Sie den Fehler und fahren Sie fort. Das bedeutet, dass die SPS in jedem Scan-Zyklus denselben Alarm ausgibt. Und deshalb sehen Sie auf dem Bild, dass das Ereignis immer wieder ausgelöst wird und der Alarm sich in jedem Scan-Zyklus wiederholt. Ein leerer OB121 bietet Ihnen also den Vorteil, dass die SPS weiterläuft und Ihr Prozess weiterläuft. Aber wir können noch mehr tun: Wir können versuchen, diesen Fehler zu erkennen und zu beseitigen. Außerdem können wir versuchen, die Art des erkannten Programmierfehlers anzuzeigen. Fehlertyp bestimmen Der OB121 verfügt über eine interne Fehler-ID, die wir verwenden können, um den Fehlertyp anzuzeigen, beispielsweise als Alarm auf einem HMI. Innerhalb des OB121 erstellen wir eine einfache MOVE-Anweisung, mit der wir den Fault_ID-Eingang des OB121 in einen definierten Speicherbereich innerhalb unseres globalen DBs verschieben. Siehe Abbildung 8. Abbildung 8 – Fehlertyp identifizieren Wie Sie im vorherigen Bild sehen, wird die Fault_ID bei Auftreten des Programmierfehlers in die Data.ProgErrorID verschoben. Siehe Abbildung 9. Abbildung 9 – Programmierfehler Fault_ID Sie können sehen, dass die Fehler-ID 3A ist. Wenn Sie die TIA Portal-Hilfe überprüfen, können Sie die Bedeutung dieses Fehlers herausfinden. 3A: Zugriff auf einen DB, der nicht geladen ist; die DB-Nummer befindet sich im zulässigen Bereich. Den Fehler abfangen Das bedeutet einfach, dass Sie versuchen, den SPS-Programmierfehler zu beheben, nachdem Sie die Ursache ermittelt haben. Dies hängt hauptsächlich davon ab, was der Fehler ist und wie Sie ihn behandeln möchten. Wir werden einfach eine Lösung für den Fehler simulieren, um zu sehen, wie sich die SPS verhält. Die eigentliche Lösung für den von uns verursachten Fehler besteht darin, einfach den DB52 zu erstellen oder einen bereits erstellten Datenblock zu verwenden. Aber der Simulation halber werden wir einfach einen einfachen Kontakt hinzufügen, der sich öffnet, wenn der Programmierfehler auftritt, um diesen Fehler abzufangen. Siehe Bilder 10 und 11. Bild 10 – Den Fehler abfangen Immer wenn OB121 aufgerufen wird, wird der CatchError gesetzt. Bild 11 – Fehler beheben Wenn OB121 aufgerufen wird, wird CatchError gesetzt und verwendet, um den Programmierfehler in Netzwerk 1 abzufangen. Die SPS-Simulation finden Sie in Animation 3. Animation 3 Aus der obigen Animation können Sie erkennen, dass die SPS beim Auslösen von InitiateProgError kurzzeitig in den Fehlermodus gerät, der dann gelöscht wird und die SPS sich dauerhaft im RUN-Modus befindet. Fazit Einfach ein leeres OB121 in Ihrer Logik stellt sicher, dass Ihre SPS nicht in den STOP-Modus wechselt, wenn in Ihrem Code ein Programmierfehler vorliegt. Sie können das OB121 später auch verwenden, um den Fehler zu identifizieren und zu beheben.
  11. Die S7-1200 SPS ist eine kompakte, modulare und kostengünstige Lösung, die eine breite Palette an Funktionen und Flexibilität für kleine bis mittelgroße Automatisierungsanwendungen bietet. Zu diesen Funktionen gehören Kommunikationsoptionen, Speicher, CPU-Leistung und IO-Konfiguration. Wenn Sie einen Prozess steuern müssen, sollten Sie die SPS auswählen und so konfigurieren, dass sie Ihren Prozessanforderungen am besten entspricht. In diesem Artikel besprechen wir die Hardwarekonfiguration der S7-1200 SPS und geben ein Beispiel für die Konfiguration im Siemens Tia-Portal. Inhalt: Was ist die Hardwarekonfiguration einer SPS? Bedeutung der Hardwarekonfiguration. Einfaches Projektbeispiel. Wie konfigurieren wir unsere SPS mit dem gegebenen Beispiel? Hardwarekonfiguration der CPU. IO-Hardwarekonfiguration. HMI-Konfiguration. Fazit. Was ist die Hardwarekonfiguration einer SPS? Die Hardwarekonfiguration bezieht sich auf die spezifischen Komponenten der SPS, wie CPU, Speicher, Eingabe-/Ausgabemodule (E/A), Kommunikationsanschlüsse, Stromversorgung und alle zusätzlichen Module oder Zubehörteile, die möglicherweise benötigt und dem System hinzugefügt werden. Die Hardwarekonfiguration einer SPS umfasst auch das Aktivieren oder Deaktivieren einiger CPU-Funktionen, je nach Gerät, seinen Fähigkeiten und den Anforderungen Ihres Prozesses. Die Hardwarekonfigurationsschritte für eine SPS umfassen normalerweise Folgendes: Wählen Sie das geeignete SPS-Modell basierend auf den Anwendungsanforderungen. Identifizieren Sie die Eingabe-/Ausgabeanforderungen für das System, darunter Typ und Anzahl der Sensoren, Aktoren und anderen Geräte, die an die SPS angeschlossen werden. Wählen Sie das Kommunikationsprotokoll und die Netzwerktopologie, die zum Verbinden der SPS mit anderen Geräten und Systemen verwendet werden. Bestimmen Sie die Stromversorgungsanforderungen für die SPS und ihre Peripheriegeräte. Montieren Sie die SPS an einem geeigneten Ort und schließen Sie alle erforderlichen Kabel und Leitungen an. Konfigurieren Sie die SPS-Software für die Kommunikation mit den Hardwarekomponenten und richten Sie die entsprechenden Logik- und Steuerfunktionen ein. Die spezifischen Schritte zur Hardwarekonfiguration können je nach SPS-Modell und Anwendungsanforderungen variieren, aber dies sind die grundlegenden Schritte, die normalerweise in den Prozess einbezogen werden. In diesem Artikel sprechen wir über die Hardwarekonfiguration, die auf der TIA Portal-Plattform durchgeführt wird. Das heißt, wir gehen davon aus, dass Sie Ihre Anwendung kennen und dass Sie bereits Ihr SPS-Modell und die Stromversorgung ausgewählt haben. Sie können auf frühere Artikel zurückgreifen, in denen wir besprechen, wie Sie die SPS und die Stromversorgung auswählen, die am besten zu Ihrer Anwendung passen. Bedeutung der Hardwarekonfiguration in der SPS Eine ordnungsgemäße Hardwarekonfiguration stellt sicher, dass das System zuverlässig und robust ist. Wenn die Hardwarekomponenten nicht richtig konfiguriert sind, funktionieren sie möglicherweise nicht wie vorgesehen, was zu Systemausfällen oder -fehlern führt. Die Hardwarekonfiguration wirkt sich auf die Leistung des Systems aus. Durch Auswahl der richtigen Hardwarekomponenten und entsprechende Konfiguration kann das System mit maximaler Effizienz und Geschwindigkeit arbeiten und ein hohes Volumen an Ein- und Ausgängen verarbeiten. Die Hardwarekonfiguration wirkt sich auf die Skalierbarkeit und Flexibilität des Systems aus. Bei der Auswahl der Hardwarekomponenten und ihrer Konfiguration sollten zukünftige Erweiterungen oder Änderungen am System berücksichtigt werden, um sicherzustellen, dass das System problemlos Änderungen oder Upgrades verarbeiten kann. Die Hardwarekonfiguration wirkt sich auf die Kosten des Systems aus. Durch Auswahl der geeigneten Hardwarekomponenten und Konfiguration können unnötige Kosten vermieden und die Gesamtkosten des Systems minimiert werden. S7-1200-Hardwarekonfiguration Wir gehen von einem einfachen SPS-Projekt aus und sehen uns an, wie wir die SPS in unser Projekt konfigurieren können, bevor wir mit dem Schreiben unseres Codes beginnen. Temperaturkontrollsystem für einen Reaktor mit SPS Das Projekt beinhaltet die Kontrolle der Temperatur eines Reaktors mit einer SPS. Das System sollte die Temperatur des Reaktors messen und die Temperatur durch Kontrolle des Durchflusses einer Kühlflüssigkeit anpassen. Das Projekt verwendet vier Thermoelemente zur Messung der Temperatur, zwei Magnetventile zur Kontrolle des Durchflusses der Kühlflüssigkeit und einen Motor zum Antrieb des Laufrads des Reaktors. E/A-Konfiguration Eingänge: Thermoelemente 1 – 4: Dies sind 4 analoge Eingänge, die die Temperatur an verschiedenen Stellen im Reaktor messen. Not-Aus-Taster: Dies ist ein digitaler Eingang, der im Notfall zum Stoppen des Systems verwendet wird. Potentiometer für Temperatursollwert: Dies ist ein analoger Eingang, mit dem der Bediener den gewünschten Temperatursollwert einstellen kann. Ausgänge: Magnetventil 1 und 2: Dies sind 2 digitale Ausgänge, die den Durchfluss der Kühlflüssigkeit durch die Reaktorrohre steuern. Motorsteuerung: Dies ist ein digitaler Ausgang, der die Geschwindigkeit und Richtung des Motors steuert, der das Laufrad antreibt. Heizungssteuerung: Dies ist ein digitaler Ausgang, der das Heizsystem des Reaktors steuert. Systembetrieb: Das System wartet darauf, dass der Bediener den Temperatursollwert mit dem Potentiometer einstellt. Die SPS liest den Temperatursollwert und vergleicht ihn mit der aktuellen Temperatur des Reaktors, die von den vier Thermoelementen gemessen wird. Wenn die Reaktortemperatur unter dem Sollwert liegt, aktiviert die SPS den Heizungssteuerungsausgang, um die Temperatur zu erhöhen. Wenn die Reaktortemperatur über dem Sollwert liegt, aktiviert die SPS einen der Magnetventilausgänge, um den Durchfluss der Kühlflüssigkeit zu erhöhen und die Temperatur zu senken. Die SPS überwacht kontinuierlich die Temperatur und passt die Heizungs- und Kühlsysteme an, um den gewünschten Sollwert beizubehalten. Die SPS steuert auch den Motor, der das Laufrad antreibt, um den Inhalt des Reaktors zu mischen. Wenn der Not-Aus-Druckknopf gedrückt wird, deaktiviert die SPS alle Ausgänge und stoppt das System. Das SPS-Projekt kann je nach den spezifischen Anforderungen des Projekts weiter erweitert und geändert werden, um zusätzliche Funktionen wie Alarme, Datenprotokollierung oder Fernüberwachung einzuschließen. Wir werden uns jedoch nicht mit der Codierung der SPS-Logik dieses Systems befassen, sondern anhand dieses Beispiels erklären, wie die SPS hardwaremäßig so konfiguriert wird, dass sie zu unserem Projekt passt. Dazu gehört: Auswahl der SPS-CPU. Auswahl der IO-Module. Zuweisung der Eingangs- und Ausgangs-Tags zu den Hardwaremodulen. Zuweisung einer IP zur Kommunikation an die SPS. Zuweisung eines Schutzkennworts. Konfiguration der lokalen Zeit der SPS. Konfiguration des HMI und Herstellen der Verbindung mit der SPS. Wie konfiguriert man die SPS mit dem angegebenen Beispiel? Im Folgenden besprechen wir die grundlegende Erstellung eines SPS-Projekts mit der erforderlichen Hardware. Die Hardwarekonfiguration der CPU: Auswahl der CPU: Wenn Sie ein neues Projekt im TIA Portal starten, sollten Sie ein neues Gerät konfigurieren und es Ihrem Projekt hinzufügen. Siehe Bild 1. Bild 1. Konfigurieren Sie ein Gerät für Ihr Projekt Wie Sie dem vorherigen Bild entnehmen können, zeigt Ihnen das TIA-Portal bereits, dass der erste Schritt die Konfiguration eines neuen Geräts sein sollte. Im vorherigen Artikel haben wir besprochen, wie Sie die SPS auswählen, die zu Ihrem Prozess passt. Daher werden wir das hier nicht noch einmal erwähnen. Da es sich um ein einfaches Projekt handelt, wählen wir für unser Projekt die CPU 1214C AC/DC/RLY. Siehe Bild 2. Bild 2. Fügen Sie dem Projekt einen neuen Controller hinzu CPU-Eigenschaften: Je nachdem, welche CPU Sie für Ihr Projekt ausgewählt haben, stehen Ihnen unterschiedliche CPU-Funktionen und -Eigenschaften zur Verfügung. Sie können diese Funktionen je nach Bedarf aktivieren oder deaktivieren. Für einige der Funktionen sind zusätzliche Konfigurationen erforderlich. Siehe Bild 3. Bild 3 – Eigenschaften der CPU Wie Sie im vorherigen Bild sehen können, gibt es viele Eigenschaften, die Sie für Ihre CPU im Projekt festlegen können. Wir werden einige dieser Eigenschaften erwähnen, die Sie in jedem Projekt konfigurieren müssen, das Sie erstellen, andere Eigenschaften werden nur in Sonderfällen verwendet. Kommunikation: Dies ist eine sehr wichtige Konfiguration für jedes SPS-Projekt; Ihr Projekt wird höchstwahrscheinlich verschiedene Module und Geräte haben, die miteinander kommunizieren müssen. Das Einrichten der Kommunikation zwischen Ihrer SPS und diesen Geräten ist für Ihr Projekt wichtig. Durch die Auswahl der CPU haben Sie bereits definiert, wie die Kommunikation erfolgen soll. Einige CPUs funktionieren nur mit Profinet, einige nur mit Profibus und einige können beides verwenden. Die für dieses Beispiel ausgewählte SPS funktioniert nur mit Profinet. Über die Profinet-Schnittstelle legen Sie die IP-Adresse für Ihre SPS fest. Diese IP sollte im Projekt eindeutig sein; Sie können nicht dieselbe IP für zwei verschiedene Module verwenden. Siehe Bild 4. Bild 4 – Profinet-Schnittstelle Zykluszeit: Wie Sie wissen, ist dies eine weitere wichtige Eigenschaft für Ihre SPS. Die Zykluszeit Ihres Programms hängt davon ab, wie viel Code Sie geschrieben haben und wie lange die SPS braucht, um diesen Code auszuführen. In den Zykluszeiteigenschaften können Sie die Zyklusüberwachungszeit festlegen. Wenn die SPS länger als diese festgelegte Zeit braucht, um das Programm auszuführen, gibt die SPS einen Fehler aus. Siehe Bild 5. Mit dieser Eigenschaft können Sie auch die Mindestzykluszeit für Ihre CPU bestimmen. Dies können Sie tun, wenn Sie „Mindestzykluszeit für zyklische OBs aktivieren“ aktiviert haben. Sie können dann die gewünschte Mindestzykluszeit schreiben und die SPS passt ihre Leistung entsprechend dieser Zeit an. Natürlich ist diese Zeit durch die Leistungsfähigkeit der CPU begrenzt, sodass Sie diese Zeit nicht unter einen bestimmten Grenzwert senken können. Bild 5 – Zykluszeiteigenschaft System- und Taktspeicherbits: Systemspeicherbits und Taktspeicherbits sind in der CPU integrierte Bits, die das Betriebssystem verwendet, um bestimmte Ereignisse in der SPS anzuzeigen. Beispielsweise gibt es ein Speicherbit, das nur beim ersten Scan auf TRUE wechselt, oder ein Speicherbit, das TRUE wird, wenn sich der Diagnosestatus ändert. Es gibt auch einige dedizierte Taktspeicherbits, wie ein Bit, das einen Takt von 10 Hz darstellt, oder ein Bit, das einen Takt von 2 Hz darstellt. Diese Bits können in einigen Anwendungen sehr nützlich sein und bei gleicher Funktionalität eine Menge Programmiercode einsparen. Siehe Abbildung 6. Abbildung 6 – System- und Taktspeicherbits aktivieren Sie können die Verwendung eines oder beider Speicherbytes aktivieren; Sie können auch die Adresse dieser Bytes bestimmen, wie Sie auf der Abbildung sehen können. Tageszeit: Eine weitere sehr wichtige Eigenschaft Ihrer SPS ist das Einstellen der Zeit in Ihrer SPS. In fast jedem Projekt, das Sie erstellen, müssen Sie die Echtzeit kennen, um bestimmten Aktionen unterschiedliche Daten zuweisen zu können. Im vorherigen Artikel haben wir über lokale und Systemzeiten in der SPS und deren Verwendung gesprochen. Diese Eigenschaft der CPU ermöglicht es Ihnen, die lokale Zeit auf die gewünschte Zeitzone einzustellen. Siehe Abbildung 7. Abbildung 7 – Eigenschaft „Lokale Zeit“ Schutz und Sicherheit: Mit dieser Eigenschaft können Sie die Zugriffsebene und den Kennwortschutz für Ihre SPS bestimmen. Siehe Bild 8. Bild 8 – Schutz- und Sicherheitseigenschaft Die zuvor erwähnten Eigenschaften sind die am häufigsten konfigurierten Eigenschaften bei fast jedem SPS-Projekt, das Sie durchführen würden. Es gibt einige andere Eigenschaften, die bei einfachen Programmen wie Webservern und OPC UA weniger wahrscheinlich verwendet werden. Der nächste Schritt bei der Hardwarekonfiguration Ihres Projekts ist die Konfiguration der IOs. IO-Hardwarekonfiguration: Ein weiterer wichtiger Schritt Ihres Projekts ist die Konfiguration Ihrer IOs, d. h. Sie müssen entscheiden, wie viele IO-Module Sie benötigen und welche Art von IO-Modulen Sie benötigen. Bei der Entscheidung über Ihre IOs sollten Sie einige wichtige Punkte berücksichtigen, z. B. einige freie IO-Punkte zu haben und die IO-Module auszuwählen, die zu den Eingangssensoren und Ausgangsaktoren in Ihrem Projekt passen. Siehe Bild 9. Bild 9 – Analoges Eingangsmodul hinzufügen Wie wir in unserem Beispielprojekt erwähnt haben, verwenden wir 4 Thermoelemente als analoge Eingänge für meine SPS, also muss ich ein analoges Eingangsmodul mit mindestens 4 Eingangskanälen hinzufügen, da die ausgewählte SPS nur 2 analoge Eingangskanäle hat. Außerdem ist das Thermoelement ein spezieller Typ von analogem Eingang, der ein dediziertes Eingangsmodul erfordert. Deshalb haben wir uns für das Modul AI 8xTC entschieden, das 8 Eingangskanäle hat, die für die Verwendung mit Thermoelementen vorgesehen sind. Wir haben uns für das 8-Kanal-Modul und das 4-Kanal-Modul entschieden, um Reservekanäle für die zukünftige Verwendung zu haben, falls wir unser Projekt erweitern müssen. Wenn Sie zu den Eigenschaften des Moduls AI 8xTC gehen, werden Sie sehen, dass Sie jeden Eingangskanal einzeln konfigurieren können. Sie können den Typ des Thermoelements, die Messskala und andere Eigenschaften auswählen. Siehe Abbildung 10. Abbildung 10 – Eingangsmodul konfigurieren Als Nächstes müssen Sie Ihre IO-Tags definieren und jedem Eingang oder Ausgang einen entsprechenden IO-Punkt in Ihrer SPS oder in den IO-Modulen zuweisen. Siehe Abbildung 11. Abbildung 11 – Eingangs-Tags zuweisen Anschließend weisen Sie die restlichen Eingangs- und Ausgangs-Tags zu, siehe Abbildungen 12 und 13. Abbildung 12 – Eingangs-Tags für die SPS zuweisen Abbildung 13 – Ausgangs-Tags Ihrem Projekt zuweisen HMI-Konfiguration Ihr SPS-Projekt benötigt wahrscheinlich eine HMI. Nachdem Sie Ihre HMI ausgewählt haben, können Sie verschiedene Konfigurationen vornehmen. In diesem Artikel zeigen wir nur, wie die Kommunikation zwischen HMI und SPS konfiguriert wird. Wie Sie im vorherigen Bild sehen, wählen Sie ein HMI aus, indem Sie ein neues Gerät hinzufügen und dann ein HMI auswählen. Siehe Bild 14. Bild 14 – Auswählen eines HMI Es gibt verschiedene Möglichkeiten, die Kommunikation zwischen HMI und SPS einzurichten, aber der einfachste Weg ist über die Netzwerkansichtsseite. Siehe Bild 15. Bild 15 – Einrichten der HMI-Verbindung Auf der Netzwerkansichtsseite können Sie die Verbindung zwischen HMI und SPS einrichten, indem Sie einfach auf das kleine grüne Quadrat klicken, das Profinet vom HMI darstellt, und es auf die SPS ziehen. TIA Portal zeichnet dann eine grüne Linie zwischen den beiden Modulen und weist dem HMI automatisch eine IP-Adresse zu, um die Kommunikation zwischen ihnen einzurichten. Fazit Die Hardwarekonfiguration ist ein sehr wichtiger Schritt in jedem SPS-Projekt. Die richtige Hardwarekonfiguration Ihrer SPS stellt sicher, dass die erforderlichen Funktionen des Projekts erfüllt werden. Zur Hardwarekonfiguration gehören die Auswahl von E/A-Modulen, das Aktivieren oder Deaktivieren bestimmter CPU-Eigenschaften und das Konfigurieren verschiedener Geräte wie HMI mit Ihrer SPS.
  12. Siemens ist ein bekanntes multinationales Unternehmen, das in einer Vielzahl von Branchen tätig ist, darunter Energie, Gesundheitswesen, Transport und Industrieautomatisierung. Siemens wurde 1847 gegründet und hat sich seitdem zu einem globalen Konzern mit Niederlassungen in vielen Ländern entwickelt. Siemens ist für seine innovativen Produkte und Dienstleistungen bekannt und gilt als eines der nachhaltigsten Unternehmen der Welt. In diesem Artikel geben wir einen Überblick über Siemens PLC, die einen sehr kleinen Teil der verschiedenen Produkte von Siemens im Bereich der Industrieautomatisierung ausmachen. Inhalt: Siemens in der Industrieautomatisierung. Verschiedene SPS-Familien von Siemens. Übersicht über Siemens S7 PLCs. Simatic S7-1200. Simatic S7-1500. Simatic S7-300. Simatic S7-400. Simatic S7-ET 200 CPU Warum gibt es so viele verschiedene Modelle? Wie entscheide ich, welcher Typ von S7-SPS am besten zu meiner Anwendung passt? Fazit. Siemens in der industriellen Automatisierung Siemens ist ein führendes Unternehmen im Bereich der industriellen Automatisierung und bekannt für seine hochwertigen Produkte und Lösungen. Das Unternehmen bietet eine breite Palette an Produkten für die industrielle Automatisierung, darunter speicherprogrammierbare Steuerungen (SPS), Mensch-Maschine-Schnittstellen (HMIs), Frequenzumrichter (VFDs) und industrielle Kommunikationsnetzwerke. Siemens bietet auch Softwarelösungen für die industrielle Automatisierung an, wie beispielsweise das Totally Integrated Automation TIA Portal, ein Engineering-Framework, das alle Automatisierungssoftwaretools auf einer Plattform integriert. Außerdem hat Siemens seine eigene Industrial Internet of Things (IIoT)-Plattform namens MindSphere entwickelt, die die Erfassung und Analyse von Daten von angeschlossenen Geräten in industriellen Umgebungen ermöglicht. Unterschiedliche SPS-Familien von Siemens Siemens hat zwei Hauptfamilien von SPS entwickelt, und zwar: Simatic S5-Familie von SPS Simatic S7-Familie von SPS Die Simatic S5-Serie war die vorherige SPS-Generation von Siemens und wird noch immer in einigen älteren Industriesystemen verwendet. Wird aber nicht mehr hergestellt. Die Simatic S7-Serie ist die aktuelle SPS von Siemens. Sie bietet eine breite Palette von CPUs mit unterschiedlichen Leistungs- und Funktionsstufen, um unterschiedliche Automatisierungsanforderungen zu erfüllen. Die S7-Serie ist für ihre Zuverlässigkeit, Robustheit und Flexibilität bekannt und wird häufig in Branchen wie der Automobil-, Lebensmittel- und Getränke- sowie Pharmaindustrie eingesetzt. Übersicht über die Siemens S7-SPS Die SPS-Generation Siemens S7 bietet eine breite Palette von CPUs mit unterschiedlichen Leistungs- und Funktionsstufen, um die Anforderungen verschiedener industrieller Automatisierungsprozesse zu erfüllen. Diese CPUs gehören zu einer der folgenden Unterfamilien: Simatic S7-1200 Die Simatic S7-1200 ist eine kompakte SPS für kleine bis mittelgroße Anwendungen. Mit ihrem kompakten Design, der integrierten Kommunikation und den Programmieroptionen bietet sie eine flexible und kostengünstige Automatisierungslösung. Simatic S7-1500 Die Simatic S7-1500 ist eine Hochleistungs-SPS für mittelgroße bis große Anwendungen. Sie bietet erweiterte Funktionen wie Bewegungssteuerung, Sicherheit und Schutz und eignet sich daher für komplexe Automatisierungsaufgaben. Simatic S7-300 Die Simatic S7-300 ist eine modulare SPS, die sich leicht an eine Vielzahl von Anwendungen anpassen lässt. Sie bietet eine hohe Verarbeitungsleistung, umfangreiche Kommunikationsoptionen und eine große Auswahl an E/A-Modulen und ist daher in vielen Branchen eine beliebte Wahl. Simatic S7-400 Die Simatic S7-400 ist eine Hochleistungs-SPS, die für anspruchsvolle Anwendungen entwickelt wurde, die eine hohe Verarbeitungsleistung und umfangreiche Kommunikationsfunktionen erfordern. Sie bietet eine große Anzahl an E/A-Modulen, Redundanzoptionen und erweiterte Diagnosefunktionen und eignet sich daher für komplexe Automatisierungsaufgaben. Simatic S7-ET 200SP Die Simatic S7-ET 200SP ist ein kompaktes Remote-E/A-System, das sich leicht in andere Simatic S7-SPS integrieren lässt. Sie bietet ein hohes Maß an Flexibilität, Skalierbarkeit und Modularität und eignet sich daher für verschiedene Automatisierungsanwendungen. Wenn Sie im TIA Portal ein neues Projekt erstellen und versuchen, ein neues Gerät hinzuzufügen, können Sie alle verfügbaren und unterstützten CPUs aus verschiedenen S7-Familien finden. Siehe Abbildung 1. Abbildung 1 – In der Simatic S7-Generation sind verschiedene SPSen verfügbar S7-1200 SPS Die Simatic S7-1200 ist eine vielseitige und kostengünstige SPS, die eine Reihe von Modellen bietet, um unterschiedliche Automatisierungsanforderungen zu erfüllen, was sie zu einer beliebten Wahl für kleine bis mittelgroße Anwendungen macht. Hier ist eine Übersicht über die verschiedenen Modelle der S7-1200-Serie: Simatic S7-1200 CPUs: Dies sind die Standard-CPUs der S7-1200-Serie und sie sind in verschiedenen Versionen erhältlich, darunter CPU 1211C, CPU 1212C, CPU 1214C, CPU 1215C und CPU 1217C. Sie bieten erweiterte Funktionen als die Basic Controller, einschließlich integrierter Kommunikationsschnittstellen und zusätzlicher E/A-Optionen. Sie sind auch in verschiedenen Versionen erhältlich, darunter DC/DC/DC, DC/DC/RLY, AC/DC/RLY und AC/DC/TC. Sie haben eingeschränkte Funktionen, sind aber ideal für einfache Steuerungsaufgaben. Simatic S7-1200 Safety Integrated: Dies ist eine sicherheitszertifizierte Version der S7-1200, die sicherheitsrelevante Funktionen wie Sicherheitseingänge, Sicherheitsausgänge und Sicherheitskommunikation enthält, um die Sicherheit des Automatisierungssystems zu verbessern. Simatic S7-1200 SIPLUS: Dies ist eine robuste Version der S7-1200, die für den Betrieb in rauen Umgebungen mit extremen Temperaturen, Feuchtigkeit und Vibrationen ausgelegt ist. Siehe Bild 2 für verschiedene Modelle der S7-1200. Bild 2 – Verschiedene Modelle der S7-1200-CPU S7-1500-SPS Die Simatic S7-1500 ist eine leistungsstarke SPS, die eine Reihe von Modellen bietet, um unterschiedliche Automatisierungsanforderungen zu erfüllen, was sie zu einer beliebten Wahl für anspruchsvolle Anwendungen macht. Hier ist eine Übersicht über die verschiedenen Modelle der S7-1500-Serie: Simatic S7-1500 Standard-CPUs: Dies sind die Standard-CPUs der S7-1500-Serie und sie sind in verschiedenen Versionen erhältlich, darunter CPU 1511-1 PN, CPU 1513-1 PN, CPU 1515-2 PN und CPU 1518-4 PN. Sie bieten Hochgeschwindigkeitsverarbeitung und erweiterte Kommunikationsoptionen wie Profinet, Profibus und Industrial Ethernet. Simatic S7-1500 Safety Integrated: Dies ist eine sicherheitszertifizierte Version der S7-1500, die sicherheitsrelevante Funktionen wie Sicherheitseingänge, Sicherheitsausgänge und Sicherheitskommunikation enthält, um die Sicherheit des Automatisierungssystems zu verbessern. Simatic S7-1500 Advanced Controller: Dies sind erweiterte Versionen der S7-1500, die zusätzliche Funktionen wie Bewegungssteuerung, Hochgeschwindigkeitszählung und erweiterte Kommunikationsoptionen bieten. Simatic S7-1500 T-CPU: Dies ist eine erweiterte Version der S7-1500-CPUs mit erweiterten Bewegungssteuerungsfunktionen wie Kinematikfunktionen sowie Getriebe- und Nockenfunktionen. Simatic S7-1500 TM NPU: Dies ist eine neuronale Verarbeitungseinheit (NPU), die für Anwendungen des maschinellen Lernens und der künstlichen Intelligenz (KI) wie vorausschauende Wartung, Qualitätskontrolle und Prozessoptimierung entwickelt wurde. Siehe Abbildung 3 für verschiedene Modelle der S7-1500. Bild 3 – Verschiedene Modelle der S7-1500 S7-300 SPS Simatic S7-300 CPUs: Dies sind die Standard-CPUs der S7-300-Reihe und sie sind in verschiedenen Versionen erhältlich, darunter CPU 312C, CPU 313C, CPU 314C, CPU 315-2DP, CPU 317-2DP und CPU 319-3PN/DP. Sie bieten hohe Verarbeitungsleistung, erweiterte Kommunikationsoptionen und eine breite Palette an E/A-Optionen. Simatic S7-300 fehlersichere CPUs: Dies sind sicherheitszertifizierte Versionen der S7-300 CPUs, die sicherheitsrelevante Funktionen wie Sicherheitseingänge, Sicherheitsausgänge und Sicherheitskommunikation umfassen, um die Sicherheit des Automatisierungssystems zu verbessern. Simatic S7-300 Compact CPUs: Dies sind kompakte Versionen der S7-300 CPUs, die eine geringere Größe und einen geringeren Stromverbrauch bieten und sich daher ideal für Anwendungen mit begrenztem Platz und begrenzter Stromversorgung eignen. Simatic S7-300 Technology CPUs: Dies sind spezialisierte CPUs, die für bestimmte Automatisierungsanwendungen wie Bewegungssteuerung, Temperaturregelung und Prozesssteuerung entwickelt wurden. Simatic S7-300 Distributed Controller: Dies sind modulare Controller, die verteilte E/A- und Kommunikationsoptionen bieten und sich daher ideal für Anwendungen eignen, die eine verteilte Automatisierung erfordern. Siehe Abbildung 4 für verschiedene Modelle von S7-300. Bild 4 – Verschiedene Modelle der S7-300 S7-400 SPS Simatic S7-400 CPUs: Dies sind die Standard-CPUs der S7-400-Reihe und sie sind in verschiedenen Versionen erhältlich, darunter CPU 412-1, CPU 414-1, CPU 414-2, CPU 416-2 und CPU 417-4. Sie bieten hohe Verarbeitungsleistung, erweiterte Kommunikationsoptionen und eine breite Palette an E/A-Optionen. Simatic S7-400H CPUs: Dies sind hochverfügbare CPUs, die Redundanzoptionen bieten, um die Verfügbarkeit und Zuverlässigkeit des Automatisierungssystems zu verbessern. Simatic S7-400F/FH CPUs: Dies sind sicherheitszertifizierte CPUs, die sicherheitsrelevante Funktionen wie Sicherheitseingänge, Sicherheitsausgänge und Sicherheitskommunikation umfassen, um die Sicherheit des Automatisierungssystems zu verbessern. Verteilte Steuerungen Simatic S7-400: Dies sind modulare Steuerungen, die verteilte E/A- und Kommunikationsoptionen bieten und sich daher ideal für Anwendungen eignen, die eine verteilte Automatisierung erfordern. Siehe Abbildung 5 für verschiedene Modelle von S7-400. Abbildung 5 – Verschiedene Modelle von S7-400 Simatic S7-ET 200 SPS Simatic S7-ET 200 CPUs: Dies sind die Standard-CPUs der S7-ET 200-Reihe und sie sind in verschiedenen Versionen erhältlich, darunter CPU 1511C-1 PN, CPU 1513-1 PN und CPU 1515-2 PN. Sie bieten hohe Verarbeitungsleistung, erweiterte Kommunikationsoptionen und eine breite Palette an E/A-Optionen. Simatic S7-ET 200F CPUs: Dies sind sicherheitszertifizierte CPUs, die sicherheitsrelevante Funktionen wie Sicherheitseingänge, Sicherheitsausgänge und Sicherheitskommunikation umfassen, um die Sicherheit des Automatisierungssystems zu verbessern. Simatic S7-ET 200SP CPUs: Dies sind kompakte CPUs mit reduzierter Größe und Stromverbrauch, was sie ideal für Anwendungen mit begrenztem Platz und begrenzter Stromversorgung macht. Siehe Abbildung 6 für verschiedene Modelle von S7-ET200. Bild 6 – Verschiedene Modelle von S7-ET200 Warum gibt es so viele verschiedene Modelle? Es gibt viele verschiedene Modelle von Siemens S7-SPS, die den Kunden eine große Auswahl an Optionen und Funktionen bieten, sodass sie die SPS auswählen können, die ihren spezifischen Automatisierungsanforderungen am besten entspricht. Die verschiedenen Modelle bieten unterschiedliche Funktionen, Verarbeitungsleistung, Speicher, Kommunikationsoptionen und E/A-Funktionen. Einige Modelle sind für bestimmte Anwendungen wie Bewegungssteuerung, Temperaturregelung und Prozesssteuerung konzipiert, andere für allgemeine Automatisierungssysteme. Da sich die Technologie weiterentwickelt und neue Automatisierungsanforderungen entstehen, entwickelt und veröffentlicht Siemens auch weiterhin neue Modelle und Versionen von S7-SPS mit erweiterten Funktionen und Fähigkeiten und bietet den Kunden die neueste Automatisierungstechnologie, mit der sie ihre Produktivität steigern, ihre Kosten senken und die Leistung ihres Systems verbessern können. Wie entscheide ich, welcher Typ von S7-SPS am besten zu meiner Anwendung passt? Die Auswahl des richtigen Typs von S7-SPS für Ihre Anwendung erfordert die sorgfältige Abwägung mehrerer Faktoren. Hier sind einige allgemeine Schritte, die Ihnen bei der Entscheidung helfen, welcher Typ von S7-SPS am besten zu Ihrer Anwendung passt: Bestimmen Sie die Größe und Komplexität Ihres Automatisierungssystems: Wenn Sie ein großes und komplexes Automatisierungssystem haben, benötigen Sie möglicherweise eine Hochleistungs-SPS wie die S7-400 oder S7-1500, die eine große Anzahl von E/A-Punkten und erweiterte Kommunikationsoptionen verarbeiten kann. Wenn Ihr System kleiner und weniger komplex ist, reicht möglicherweise eine kleinere SPS wie die S7-1200 oder S7-300 aus. Identifizieren Sie die erforderlichen E/A-Typen und zählen Sie sie: Jede S7-SPS verfügt über einen anderen Bereich an E/A-Optionen und Kapazitäten. Sie müssen den Typ und die Anzahl der E/A-Punkte bestimmen, die Sie für Ihre Anwendung benötigen, und die SPS auswählen, die diese unterstützen kann. Berücksichtigen Sie die erforderliche Verarbeitungsgeschwindigkeit und Leistung: Unterschiedliche S7-SPS haben unterschiedliche Verarbeitungsgeschwindigkeiten und Leistungsfähigkeiten. Sie müssen die erforderliche Verarbeitungsgeschwindigkeit bestimmen und die SPS auswählen, die Ihren Leistungsanforderungen gerecht wird. Bewerten Sie die erforderlichen Kommunikationsoptionen: Verschiedene S7-SPS bieten unterschiedliche Kommunikationsoptionen, wie Ethernet, Profibus, Profinet und AS-i. Sie müssen die erforderlichen Kommunikationsprotokolle für Ihre Anwendung bestimmen und die SPS auswählen, die diese unterstützt. Berücksichtigen Sie die erforderlichen Sicherheitsfunktionen: Wenn Ihre Anwendung Sicherheitsfunktionen wie Sicherheitseingänge, Sicherheitsausgänge und Sicherheitskommunikation erfordert, benötigen Sie möglicherweise eine sicherheitszertifizierte SPS wie die S7-1500F oder S7-400F. Fazit Siemens bietet eine breite Palette an Produkten für die industrielle Automatisierung, darunter verschiedene SPS-Modelle mit unterschiedlichen Funktionen und Leistungsmerkmalen, darunter die CPUs S7-1200, S7-1500, S7-300 und S7-400. Die vielen verschiedenen Modelle der Siemens S7-SPS bieten Kunden eine große Auswahl an Optionen und Funktionen. Bei der Auswahl des SPS-Modells, das am besten zu Ihrem Prozess passt, müssen vor der Auswahl der SPS einige Punkte berücksichtigt werden. Einige dieser Punkte sind die Anzahl der E/A, Sicherheitsanforderungen und Kommunikationsoptionen.
  13. In diesem Artikel erfahren Sie, wie Sie das SPS-Datenblatt lesen, und erhalten wichtige Hinweise zu SPS-Spezifikationen, die für Automatisierungsingenieure nützlich sind. Außerdem sprechen wir darüber, welche unterschiedlichen Informationen in einem SPS-Datenblatt enthalten sind und wie diese für mich als Programmierer oder Installationsingenieur nützlich sein können. Inhalt: Welche Informationen enthält ein Datenblatt? Beispiele für die Informationen in einem SPS-Datenblatt Strom- und Spannungsnennwert SPS-Speicher Adressierung verschiedener Blöcke und Datenbereiche Spezifikationen für Ein- und Ausgänge Kommunikationsschnittstellen und -protokolle Umgebungsbedingungen Wichtige Hinweise zum Lesen des Datenblatts. Welche Informationen enthält ein Datenblatt? Das Datenblatt einer SPS enthält viele Informationen. Diese Informationen decken fast alle Funktionen ab, die die SPS bieten kann. Einige dieser Informationen sind für Sie jedoch nicht so wichtig wie andere. Dies hängt davon ab, welchen Anwendungsbereich Sie mit der SPS haben. Wenn Sie der Installationsingenieur sind, konzentrieren Sie sich auf die technischen Daten der SPS wie Versorgungsspannung, Art der Ein- und Ausgänge und Nennleistung dieser IO-Punkte. Sie achten auch mehr auf die Abmessungen der SPS und die Umgebungsbedingungen während des SPS-Betriebs, um die Größe des Schaltschranks zu bestimmen, den Sie für die SPS verwenden, sowie die Kühlmethoden, die für die SPS verwendet werden. Wie liest man das SPS-Datenblatt? Wenn Sie andererseits nur der SPS-Programmierer sind, sind die Informationen aus der Vergangenheit für Sie möglicherweise nicht so wichtig. Stattdessen konzentrieren Sie sich auf Daten, die sich beispielsweise auf den SPS-Speicher, die Anzahl der verfügbaren IOs und die Möglichkeit zum Hinzufügen neuer Module beziehen. Sie achten auch auf einige andere Informationen wie die von dieser SPS unterstützten Programmiersprachen, da nicht alle SPS alle Programmiersprachen unterstützen. Kommunikation und Vernetzung sind weitere wichtige Punkte, die Ihnen als Programmierer wichtig sind. Das Datenblatt einer SPS beginnt immer mit einer allgemeinen Übersichtsbeschreibung der SPS. Einfache Beispiele für S7-1200 und S7-1500 finden Sie in den Bildern 1 und 2. Bild 1 – 1. Seite eines S7-1500-SPS-Datenblatts. Bild 2 – 1. Seite eines S7-1200-SPS-Datenblatts. Wie Sie sehen, wird am Anfang des Datenblatts eine allgemeine Beschreibung der SPS gegeben. Diese allgemeine Beschreibung gibt Ihnen eine grundlegende Vorstellung von der SPS und davon, ob sie für Ihre Anwendung geeignet ist oder nicht. Beispiele für die Informationen in einem SPS-Datenblatt In diesem Artikel verwenden wir das Datenblatt einer S7-1200-SPS, um einige der darin enthaltenen Informationen zu zeigen. Strom- und Spannungswerte In einem bestimmten Abschnitt des Datenblatts müssen Informationen zu den Spannungs- und Stromwerten der SPS enthalten sein. Manche SPS benötigen eine Gleichstromversorgung, während andere eine Wechselstromversorgung benötigen. Auch die Ein- und Ausgänge der SPS können unterschiedliche Werte haben, was bei unserer SPS genau der Fall ist, bei der die Spannungsversorgung der SPS 220 AC beträgt, die Werte für die IOs jedoch Gleichstrom sind. Siehe Bild 3. Bild 3 – Spannungs- und Stromwerte. SPS-Speicher Im Datenblatt werden unterschiedliche Speicherkapazitäten der SPS angegeben. Dies zeigt, wie viel Arbeitsspeicher Sie haben und ob Sie ihn erweitern können oder nicht, siehe Bild 4. Bild 4 – Speicherbeschreibung der SPS Adressierung verschiedener Blöcke und Datenbereiche In diesem Abschnitt erfahren Sie mehr über die verschiedenen Blöcke, die Sie mit Ihrer SPS verwenden können, wie Timer, Zähler, FCs usw., sowie über die maximale Anzahl der Blöcke, die Sie verwenden können. Sie erhalten außerdem Informationen zum Speicher der Datenbereiche und ihrer Remanenz. Siehe Abbildung 5. Abbildung 5 – CPU-Blöcke sind verfügbar. Ein- und Ausgangsspezifikationen Dies sind weitere wichtige Daten, die angegeben werden sollten. Durch diese Informationen erfahren Sie, wie viele IOs mit Ihrer SPS bereitgestellt werden und wie Sie jedes IO verbinden und verwenden. Siehe Abbildungen 6 und 7. Abbildung 6 – Digitale Eingänge der SPS. Wie Sie sehen, haben wir 8 DI-Punkte in unserer SPS, von denen 6 für HSC-Eingänge (High-Speed Counting) wie Encoder verwendet werden können. Es zeigt Ihnen auch, dass die Eingangsspannung 24 VDC beträgt, was bedeutet, dass Sie AC-Sensoren von Eingängen nicht direkt an die SPS anschließen können. Bild 7 – In unserer SPS sind digitale Ausgänge verfügbar. Wenn die SPS analoge IOs hat, wird dies auch im Datenblatt erwähnt. Siehe Bild 8 Bild 8 – Beschreibung der analogen IOs. Kommunikationsschnittstellen und -protokolle Die in Ihrer SPS verfügbaren Kommunikationsschnittstellen sowie die von ihr unterstützten Kommunikationsprotokolle werden auch im Datenblatt erwähnt. Siehe Bild 9. Bild 9 – Die Kommunikationsschnittstelle der SPS. Wie Sie sehen, hat unsere SPS nur eine Kommunikationsschnittstelle, nämlich eine PROFINET-Schnittstelle, die als RJ-45-Anschluss bereitgestellt wird. Die SPS selbst kann jedoch viele Kommunikationsprotokolle wie PROFIBUS und AS-Interface unterstützen. Siehe Bild 10. Bild 10 – Unterstützte Kommunikationsprotokolle. Umgebungsbedingungen Dies sind weitere sehr wichtige Daten, die Sie über Ihre SPS wissen sollten, da sie Ihnen dabei helfen, zu entscheiden, welche Art von Gehäuse und Kühlung am besten für Ihre SPS geeignet ist. Siehe Abbildung 11. Abbildung 11 – Umgebungsbedingungen der SPS. Wichtige Hinweise zum Lesen des Datenblatts einer SPS Nicht alle SPS-Datenblätter enthalten dieselben Informationen, da unterschiedliche SPS unterschiedliche Funktionen und Fähigkeiten haben und daher unterschiedliche Informationen anzeigen müssen. Nicht alle Informationen im Datenblatt werden für Sie wichtig sein, das hängt davon ab, ob Sie, wie bereits erwähnt, ein SPS-Programmierer oder ein Installationstechniker sind. Es ist in Ordnung, wenn Sie einige der Informationen im Datenblatt nicht verstehen, denn wie gesagt enthält das Datenblatt Informationen zu fast allen von Ihrer SPS unterstützten Funktionen. Einige dieser Funktionen kennen Sie möglicherweise nicht und müssen sie möglicherweise nie verwenden. Beispielsweise die OPC UA- oder Webserverfunktionen. Wenn Sie also Daten finden, die Sie nicht verstehen, bedeutet das nicht unbedingt, dass Ihre SPS nicht zu Ihrem Projekt passt. Fazit Das Lesen des SPS-Datenblatts ist wichtig, um zu entscheiden, ob die SPS für Ihre Anwendung geeignet ist oder nicht. Es ist auch wichtig zu entscheiden, mit welchen IO-Typen und Spannungsversorgungswerten Sie arbeiten können. Versuchen Sie, das Datenblatt verschiedener SPS-Modelle zu lesen und prüfen Sie, ob Sie die darin enthaltenen grundlegenden Informationen verstehen.
  14. In diesem Artikel sprechen wir über ein großes Problem, das häufig auftritt, wenn Sie mit der Programmierung Ihrer SPS beginnen: die häufigsten Fehler der Firmware-Version und wie Sie diese beheben können. Inhalt: Was ist die Firmware-Version einer SPS? Warum kann die Firmware-Version Probleme verursachen? Wie kann man die Firmware-Version einer Hardware-SPS herausfinden? Wie geht man mit Firmware-Versionsfehlern um? Schlussfolgerungen. Was ist die Firmware-Version einer SPS? Die Firmware einer SPS oder eines SPS-Moduls (IOs, Kommunikationsmodule usw.) ist einfach die interne Software, die in der SPS installiert ist und dafür verantwortlich ist, was die Hardware tatsächlich tun kann. Eine Firmware-Version bestimmt, welche internen Funktionen Ihre SPS hat, wie Sicherheitsprotokolle, interne Optimierungsfunktionen, bessere Zeitverwaltung und andere verschiedene Funktionen und Fähigkeiten. Eine SPS mit einer älteren Firmware-Version hat weniger Funktionen und interne Fähigkeiten als eine SPS mit einer neueren Firmware-Version. Bilder 1 und 2 zeigen Ihnen, wie dieselbe Hardware-SPS mit unterschiedlichen installierten Firmware-Versionen unterschiedliche Funktionen und Leistungsfähigkeit hat. Bild 1 – Firmware-Version V4.0 Bild 2 – Firmware-Version V4.4 Ist Ihnen aufgefallen, dass dieselbe CPU jetzt durch ein Update auf eine höhere Firmware-Version mehr Funktionen erhält? Mit der höheren Firmware V4.4 verfügt die CPU jetzt neben anderen Funktionen über OPC UA, die ihre Leistungsfähigkeit verbessern. Warum kann die Firmware-Version Probleme verursachen? Normalerweise beginnen Sie Ihr SPS-Projekt, indem Sie die SPS auswählen und dann mit der Programmierung beginnen. Sie wählen Ihre SPS im TIA Portal nach einem von zwei Punkten aus: Sie haben die Hardware-SPS bereits gekauft, also wählen Sie dieselbe SPS aus, die Sie tatsächlich im TIA Portal-Projekt haben. Sie haben noch keine SPS gekauft, also wählen Sie im TIA Portal eine SPS aus, die Ihren Anforderungen entspricht, und kaufen sie dann später. In beiden Fällen tritt ein Problem auf, wenn die im TIA Portal-Projekt ausgewählte Firmware-Version der SPS von der Firmware-Version der tatsächlichen Hardware abweicht. Und Ihr Programm wird nicht einmal auf die Hardware-SPS heruntergeladen. Sie sollten also immer sicherstellen, dass die Firmware-Version der tatsächlichen SPS mit der im TIA Portal ausgewählten SPS übereinstimmt. Es ist erwähnenswert, dass Sie keine Probleme mit Ihrem Programm haben, wenn die im TIA Portal ausgewählte Firmware-Version älter ist als die der tatsächlichen SPS. Sie verlieren zwar einige der SPS-Funktionen und -Fähigkeiten, aber Ihr Programm funktioniert einwandfrei. Im Gegenteil treten Probleme auf, wenn die im TIA Portal ausgewählte Firmware-Version neuer ist als die der tatsächlichen SPS. Dann haben Sie ein Problem. Wenn Sie die Firmware-Version Ihrer Hardware nicht kennen, sollten Sie daher im TIA Portal-Projekt die ältere Version auswählen. Wie kann ich die Firmware-Version der Hardware-SPS herausfinden? Wir können die Firmware-Version der Hardware-SPS, die wir haben, auf zwei Arten herausfinden: Von der SPS selbst Die Firmware-Version eines SPS-Moduls ist immer irgendwo auf dem Hardwaregerät vermerkt. Siehe die nächsten Bilder. Bild 3 – Firmware-Version FS:04 Bild 4 – Firmware-Version ist V7.0.5 Von der TIA Portal-Software Mit der TIA Portal-Software können Sie Ihre SPS mit Ihrem TIA Portal verbinden und nach dem Gerät suchen. Anschließend können Sie die Firmware-Version des Hardwaregeräts finden, siehe die folgenden Schritte. Sie müssen nicht einmal ein neues Projekt erstellen; die Projektansicht des TIA Portals reicht aus, siehe Bild 5. Bild 5 – Projektansicht des TIA Portals ohne Erstellung eines Projekts. Suchen Sie über den Online-Zugriff nach Ihrer SPS. Da die Verbindung zwischen TIA Portal und der SPS über ein Ethernet-Kabel erfolgt, verwenden wir die Ethernet-Verbindungsoption. Doppelklicken Sie auf „Erreichbare Geräte aktualisieren“, um mit der Suche nach Ihrer SPS zu beginnen. Siehe Abbildung 6. Abbildung 6 – Aktualisieren Sie erreichbare Geräte, um nach Ihrer SPS zu suchen. Wenn eine Verbindung zwischen der SPS und dem TIA Portal besteht, sollte die Software Ihre SPS finden. Siehe Abbildung 7. Abbildung 7 – Ihre SPS wurde von der Software gefunden. Doppelklicken Sie nun auf „Online & Diagnose“, um die Informationen Ihrer SPS anzuzeigen. Siehe Abbildung 8. Abbildung 8 – Online-Informationen der SPS. Im Attribut „Allgemein“ finden Sie die Firmware-Version Ihrer SPS, wie im vorherigen Bild gezeigt. Sie können die Firmware-Version auch im Attribut „Funktionen“ finden. Siehe Bild 9. Bild 9 – Firmware-Version aus dem Funktionsattribut. Wie gehe ich mit Firmware-Versionsfehlern um? Erstellen wir zunächst ein Firmware-Versionsfehlerszenario und sehen uns dann an, wie dieser Fehler behandelt und behoben wird. Wir beginnen damit, einfach ein neues Projekt zu erstellen und dann ein neues Gerät hinzuzufügen. In diesem SPS-Beispiel wählen wir absichtlich eine neuere Firmware-Version als die tatsächliche Hardware-SPS. Wir wissen, dass unsere SPS-Firmware V4.0 ist, aber im TIA Portal wählen wir die Firmware-Version V4.4. Siehe Bild 10. Bild 10 – Fügen Sie eine neue SPS mit einer höheren Firmware-Version hinzu. Drücken Sie OK, um Ihr Gerät hinzuzufügen, und das war’s. Sie haben eine Situation geschaffen, die einen Firmware-Fehler verursacht. Um das zu sehen, versuchen wir, das Projekt auf unsere SPS herunterzuladen. Beachten Sie, dass wir noch nicht einmal Code geschrieben haben. Laden Sie ihn einfach auf die SPS herunter. Siehe Bild 11. Bild 11 – Download auf die SPS fehlgeschlagen, inkompatible Firmware. Wie Sie im vorherigen Bild sehen, wird beim Versuch, das Projekt auf die SPS herunterzuladen, ein Fehler angezeigt, der besagt, dass die Firmware-Versionen der SPS und des TIA Portals nicht übereinstimmen. Sie können es sogar sehen, wenn Sie versuchen, online zu gehen. Siehe Bild 12. Bild 12 – Die SPS befindet sich in einem Fehlerzustand. Um diesen Fehler zu beheben, müssen wir einfach die Firmware-Version der im TIA Portal-Projekt ausgewählten SPS auf eine ältere oder dieselbe Firmware wie die tatsächliche Hardware-SPS ändern. Dazu gehen wir auf die Eigenschaftenseite der SPS und wählen im Attribut „Allgemein“ die Option „Firmware-Version ändern“. Siehe Bild 13. Bild 13 – Option „Firmware-Version ändern“. Sobald Sie die Schaltfläche „Firmware-Version ändern“ drücken, wird ein Fenster zum Ändern des Geräts angezeigt. In diesem Fenster können Sie die Firmware-Version ändern. Siehe Bild 14. Bild 14 – Fenster „Gerät ändern“. Im Fenster „Gerät ändern“ sehen Sie das aktuelle Gerät, das Sie zuvor ausgewählt haben, und das neue Gerät, dessen Firmware Sie an Ihre aktuelle Version anpassen müssen. Beachten Sie, dass bei Auswahl einer niedrigeren Firmware, z. B. V4.3, die Informationen am unteren Rand des Fensters Ihnen zeigen, welche Funktionen Sie beim Wechsel zu einer niedrigeren Firmware verloren haben, wie Sie im vorherigen Bild sehen. Ändern Sie nun die Firmware des neuen Geräts auf die Version V4.0 der Hardware-SPS. Und beachten Sie, wie viele Funktionen und Fähigkeiten die SPS allein durch die Auswahl einer niedrigeren Firmware verloren hat. Siehe Bild 15. Bild 15 – Anpassen der Firmware zwischen Hardware-SPS und Software. Drücken Sie OK, um die Änderungen zu bestätigen, und versuchen Sie nun, Ihr Projekt erneut auf die SPS herunterzuladen. Sie werden feststellen, dass das Projekt jetzt ohne Fehler auf die SPS geladen wird. Siehe Bild 16. Bild 16 – Das Projekt wird in die SPS geladen. Ein erfolgreiches Laden des Projekts auf die SPS zeigt an, dass der Firmware-Versionsfehler nun behoben ist. Sie können auch online gehen und dies in der Online-Ansicht des SPS-Projekts überprüfen. Siehe Abbildung 17. Abbildung 17 – Online-Ansicht des Projekts. Die grünen Häkchen und Kreise, die Sie im vorherigen Bild sehen, zeigen an, dass alle Konfigurationen der Software und der Hardware übereinstimmen und miteinander kompatibel sind. Fazit Firmware-Versionsfehler sind ein sehr häufiges Problem beim Erstellen eines neuen Projekts im TIA Portal. Eine bewährte Vorgehensweise besteht darin, die Firmware-Version des Hardwaregeräts zu kennen und die Firmware davon mit dem ausgewählten Gerät im TIA Portal abzugleichen. Wenn Sie die Firmware des Hardwaregeräts nicht kennen, sollten Sie die älteste Version des ausgewählten Moduls im TIA Portal auswählen. So vermeiden Sie Firmware-Probleme mit Ihrem Projekt.
  15. In diesem Artikel beschäftigen wir uns mit Taktmerkerbits im TIA-Portal und in der Siemens-SPS. Und wir zeigen, wie Sie die Verwendung der Merkerbits aktivieren und wie Sie dadurch das Codieren vieler Logikzeilen vermeiden können, um eine einfache Funktion zu erhalten, die Ihre SPS bereits intern ausführt. Inhalt: Was sind Taktmerkerbits? Die Notwendigkeit von Taktmerkerbits. Taktmerker in meinem Projekt aktivieren. Ein einfaches Programmbeispiel. Programmsimulation. Fazit. Was sind Taktmerkerbits? Ein Taktmerker ist ein Bitspeicher, der seinen binären Status periodisch im Verhältnis 1:1 ändert. Das bedeutet einfach, dass er seinen Status periodisch zwischen wahr und falsch mit einer vordefinierten Frequenz ändert. In der CPU sind 8 Taktmerkerbits vordefiniert, weshalb sie auch Taktmerkerbyte genannt werden. Sie entscheiden, welches Merkerbyte der CPU zum Taktmerkerbyte wird, wenn Sie die Verwendung des Merkerbytes aktivieren und die Taktmerkerparameter zuweisen. Die Notwendigkeit von Taktspeicherbits Sie brauchen den Taktspeicher nicht unbedingt, da Sie Ihre eigene Logik erstellen und dieselbe Funktionalität erreichen können. Es ist jedoch gut, ihn in der Tasche zu haben, wenn Sie eine solche Funktionalität benötigen. Denn das Erstellen von 8 separaten Logiken für 8 Taktspeicherbits wird einiges an Zeit und Mühe kosten und Ihr Programm möglicherweise unnötig groß machen. Sie können den Taktspeicher beispielsweise verwenden, um blinkende Anzeigelampen zu aktivieren oder periodisch wiederkehrende Vorgänge wie das Aufzeichnen von Istwerten zu initiieren. Jedem Bit des Taktspeicherbytes wird eine Frequenz zugewiesen. Siehe die folgende Tabelle. Bit des Taktspeicherbytes 7 6 5 4 3 2 1 0 Periode (s) 2.0 1.6 1.0 0.8 0.5 0.4 0.2 0.1 Frequenz (Hz) 0.5 0.625 1 1.25 2 2.5 5 10 Tabelle 1. Frequenzen der Taktspeicherbits gemäß dem TIA Portal-Hilfehandbuch. Taktspeicher in Siemens PLC aktivieren Um die Taktspeicherbits in Ihrer Logik zu verwenden, müssen Sie die Verwendung des Taktspeicherbytes in den Eigenschaften der CPU aktivieren. Siehe Abbildung 1. Abbildung 1 – Verwendung des Taktspeicherbytes aktivieren Sie können die Adresse des Bytes auswählen, das Sie dem Taktspeicher zuweisen möchten. Stellen Sie nur sicher, dass es nicht mit anderen Speicherbytes in Ihrer PLC-Logik in Konflikt gerät. Wie Sie auf dem Bild sehen, haben wir die Adresse 0 gewählt. Wenn Sie also das 2-Hz-Taktbit verwenden müssen, verwenden Sie das Bit %M0.3 Beispielprogramm für ein Tia Portal-Förderband In einem früheren Artikel haben wir ein einfaches Beispiel für ein Förderband verwendet, das ein Produkt zwischen Anfang und Ende des Bandes bewegt. Es gab eine Anzeige-LED, die EINSCHALTET, wenn das Band läuft. Siehe Bild 2. Bild 2 – Einfaches Förderbandsystem Wir verwenden dasselbe Beispiel, aber dieses Mal machen wir die LED mithilfe der Taktspeicherbits intuitiver. Dieses Mal verwenden wir die Taktspeicherbits mit der LED, um verschiedene Fälle des Prozesses anzuzeigen. Prozessbeschreibung In einem Förderbandsystem, das von einer SPS gesteuert wird, gibt es an den beiden Enden des Bandes zwei Anwesenheitssensoren, um die Anwesenheit eines Produkts zu erkennen. Wenn das Produkt am Anfang des Bandes erkannt wird, kann das Förderband über einen Start-Druckknopf gestartet werden. Wenn das Produkt das Ende erreicht, stoppt das Band automatisch und läuft erst wieder, wenn am Anfang erneut ein neues Produkt erkannt und der START-Druckknopf gedrückt wird. Die Anzeige-LED sollte je nach aktuellem Systemfall mehr als ein Verhalten aufweisen. Diese Fälle sind wie folgt: Wenn sich am Anfang des Bandes ein Produkt befindet, aber START noch nicht gedrückt wurde, sollte die LED mit einer Frequenz von 0,5 Hz blinken. Wenn das Förderband das Produkt bewegt, sollte die LED mit einer Frequenz von 2 Hz blinken. Wenn das Produkt das Ende des Bandes erreicht, sollte die LED EIN sein. Wenn das Produkt vom Ende entfernt wird, erlischt die LED. Projekt-IOs Wir haben 4 digitale Eingänge wie folgt: START: Start-Druckknopf zum Betreiben des Förderbands. STOP: Stopp-Druckknopf, um das Förderband jederzeit anzuhalten. P1: Anwesenheitssensor am Anfang des Bandes. P2: Anwesenheitssensor am Ende des Bandes. Wir haben auch 2 digitale Ausgänge wie folgt: MOTOR: Wenn aktiviert, beginnt das Förderband zu laufen. LED: wird gemäß der zuvor erwähnten Reihenfolge aktiviert. Programmcode Zuerst wählen wir unsere SPS aus und weisen die IO-Tags zu. Siehe Bild 3 Bild 3 – Zuweisen von Ein- und Ausgangs-Tags Vergessen Sie nicht, die Verwendung des Taktspeicherbytes zu aktivieren, wie in Bild 1 gezeigt. Wir werden zwei Codenetzwerke haben, eines für die Steuerung des Förderbands und ein anderes für die LED-Logik. Die Logik finden Sie in den Bildern 4 und 5. Bild 4 – Die Steuerlogik des Förderbands Bild 5 – Die Steuerlogik der LED Wie Sie sehen, wurde die Logik durch die Verwendung der Taktspeicherbits einfach und leicht lesbar. Stellen Sie sich vor, Sie würden dieselbe Logik ohne die Verwendung dieser Bits erstellen. Sie hätten viele Timer verwendet und Ihre Logik wäre ziemlich kompliziert gewesen. Programmsimulation Wir haben zuvor erklärt, wie wir PLCSim verwenden, um unseren Code zu simulieren. In diesem Beispiel verwenden wir die Simulationssequenz, um dieselbe Sequenz wie beim tatsächlichen Prozess zu erstellen und zu sehen, ob das LED-Verhalten der beabsichtigten Funktionalität entspricht oder nicht. Beginnen Sie mit der Kompilierung unseres Codes und starten Sie eine neue Simulation. Siehe Bild 6. Bild 6 – Programmsimulation Wie Sie sehen, ist die LED jetzt AUS; es sind keine Produkte am Anfang oder Ende des Förderbands vorhanden. Wir haben eine Simulationssequenz erstellt und sehen, wie die LED auf unterschiedliche Prozessbedingungen reagiert. Sehen Sie sich die folgende Animation an. Sehen Sie, ob Sie bemerken, wie sich das LED-Verhalten bei unterschiedlichen Prozessbedingungen ändert. Fazit Taktspeicherbits werden mit einer vordefinierten Frequenz ein- und ausgeschaltet. Sie sind sehr nützlich, wenn Sie blinkende Anzeigelampen aktivieren oder periodisch wiederkehrende Vorgänge einleiten müssen. Die Verwendung von Taktspeicherbits spart Ihnen die Zeit und den Aufwand, die Sie aufwenden würden, um dieselbe Funktionalität durch Ihre eigene Logik zu erreichen.
  16. In diesem Artikel zeigen wir, wie Sie mit der Siemens Tia-Portalsoftware eine Programmsicherung von der physischen SPS auf Ihren Computer erstellen. Inhalt: Warum sollten Sie eine Sicherung erstellen? Wie erstellt man eine Sicherung von einer SPS? Hinweise zur Sicherung von einer SPS Fazit Warum sollten Sie eine Sicherung erstellen? Stellen Sie sich vor, Sie hätten Ihre Software versehentlich vom PC gelöscht, während Sie daran gearbeitet haben. Oder Sie müssen eine bestimmte Prozesssoftware aktualisieren, die seit 10 Jahren läuft, und Sie haben den Softwarecode nicht mehr. Anstatt den gesamten Code von Grund auf neu zu schreiben, ist es einfacher, einfach den aktuellen Code hochzuladen und Ihre Änderungen daran vorzunehmen. In diesem Artikel zeigen wir, wie Sie die in der SPS enthaltene Software ganz einfach auf Ihren PC hochladen. Wie erstellt man eine Sicherung von einer SPS? TIA Portal mit den neuen Siemens-Steuerungen S7-1200 und S7-1500 bietet beim Erstellen einer Sicherung mehr Vorteile als mit älteren Steuerungen wie S7-300 oder S7-400. Bei älteren Steuerungen erstellen Sie eine Sicherung, aber es werden keine Kommentare oder Adressdetails angezeigt. Die Software funktioniert einwandfrei, ist aber schwer zu lesen oder zu verstehen. Mit den neueren SPS-Steuerungen können Sie jetzt sowohl den Code als auch alle zugehörigen Adressierungen und Kommentare hochladen, was das Lesen des Codes sehr einfach macht und Aktualisierungen ermöglicht. Schritte zum Hochladen der Software von der SPS Erstellen Sie ein neues Projekt, aber anders als wir es normalerweise tun, fügen wir kein neues Gerät hinzu, sondern drücken auf Online und wählen „Gerät als neue Station hochladen“. Siehe Bild 1. Bild 1 – Laden Sie das Gerät als neue Station hoch. Dadurch laden Sie das Gerät in das PG/PC-Fenster hoch. Siehe Bild 2. Bild 2 – Fenster „Gerät hochladen“. Sie müssen den Typ der PG/PC-Schnittstelle wie im letzten Bild gezeigt auswählen und dann auf „Suche starten“ drücken. Wenn die Suche abgeschlossen ist, werden Ihnen alle Geräte angezeigt, die von Ihrer Software gefunden wurden. Beachten Sie, dass Sie nicht nur SPSen finden müssen; Sie können auch HMIs, IO-Module und alle anderen Kommunikationsmodule finden, die die Software erkennen kann. Siehe Bild 3. Bild 3 – Scan abgeschlossen und Geräte gefunden. Nach Abschluss des Scans können Sie die SPS auswählen, die Sie hochladen möchten, und dann auf „Hochladen“ drücken. Dadurch wird die Software von der SPS auf Ihr TIA-Portal hochgeladen. Siehe Bild 4. Bild 4 – Upload von der SPS ist abgeschlossen. Wie Sie auf dem vorherigen Bild sehen können, wird das gesamte auf der SPS gespeicherte Projekt in Ihr TIA-Portal hochgeladen. Sogar mit allen Kommentaren und Adressen. Siehe Bild 5. Bild 5 – SPS-Projekt wird hochgeladen Wie Sie sehen können, wurde das gesamte SPS-Projekt von der SPS auf Ihren PC hochgeladen. Mit allen Blöcken, Kommentaren und Projektkonfigurationen. Hinweise zur Sicherung von der SPS Wenn Ihr PC und die SPS unterschiedliche IP-Adressen haben, fordert Sie das TIA-Portal auf, Ihrem PC eine neue IP zuzuweisen, die der Adressierung der SPS entspricht. Dies wird sogar automatisch durchgeführt, wenn Sie es zulassen. Wenn das Projekt auf der SPS kennwortgeschützt ist, werden Sie aufgefordert, dieses Kennwort einzugeben, bevor der Upload-Schritt beginnt. Wenn Sie nicht das richtige Kennwort angeben können, wird der Upload nicht gestartet. Stellen Sie sicher, dass Sie dieses Kennwort kennen, falls vorhanden. Manchmal findet das TIA Portal Ihre SPS, kann das Projekt aber aus verschiedenen Gründen nicht hochladen. Beispielsweise ist das Projekt auf der SPS in einer anderen TIA Portal-Version geschrieben als der, die Sie gerade verwenden. In jedem Fall wird Ihnen der Grund für den fehlgeschlagenen Upload angezeigt und Sie können den Upload durchführen, sobald diese Gründe behoben sind. Fazit Sie können das Projekt auf der SPS mit dem TIA Portal auf Ihren PC hochladen. Wenn es sich bei der SPS um eine S7-1200 oder S7-1500 handelt, wird das Projekt mit allen zugehörigen Adressen und Kommentaren hochgeladen. Wenn es einen Grund gibt, der das TIA Portal daran hindert, das Projekt hochzuladen, wird Ihnen dieser Grund vom TIA Portal angezeigt und Sie können den Upload durchführen, sobald Sie das Problem behoben haben.
  17. In einem früheren Artikel haben wir über die Firmware-Version Ihrer SPS gesprochen und wie Sie Fehler behandeln, die aufgrund einer Firmware-Nichtübereinstimmung zwischen Ihrem Projekt im TIA Portal und Ihrer tatsächlichen SPS auftreten können. In diesem Artikel zeigen wir Ihnen, wie Sie die Firmware-Version Ihrer SPS aktualisieren. Inhalt: Was ist eine Firmware-Version? Warum kann die Firmware-Version mir Probleme bereiten? Wie erkenne ich die Firmware-Version meiner Hardware-SPS? Wie gehe ich mit Firmware-Versionsfehlern um? Wie aktualisiere ich die Firmware-Version meiner SPS? Fazit. Was ist eine Firmware-Version? Wie wir in einem früheren Artikel erklärt haben, ist die Firmware einer SPS oder eines SPS-Moduls (IOs, Kommunikationsmodule usw.) einfach die interne Software, die in der SPS installiert ist und dafür verantwortlich ist, was die Hardware tatsächlich tun kann. Eine SPS mit einer älteren Firmware-Version hat weniger Funktionen und interne Fähigkeiten als eine SPS mit einer neueren Firmware-Version. Bilder 1 und 2 zeigen Ihnen, wie dieselbe Hardware-SPS mit unterschiedlichen installierten Firmware-Versionen unterschiedliche Funktionen und Leistungsfähigkeit hat. Bild 1. Firmware-Version V4.0 Bild 2. Firmware-Version V4.4 Sie können sehen, dass der CPU jetzt durch das Update auf eine höhere Firmware-Version mehr Funktionen hinzugefügt wurden. Mit der höheren Firmware V4.4 verfügt die CPU jetzt neben anderen Funktionen, die ihre Leistungsfähigkeit verbessern, über OPC UA. Warum kann die Firmware-Version Probleme verursachen? Sie wählen Ihre SPS im TIA Portal nach einem der folgenden zwei Punkte aus: Sie haben die Hardware-SPS bereits gekauft, also wählen Sie dieselbe SPS aus, die Sie tatsächlich im TIA Portal-Projekt haben. Sie haben noch keine SPS gekauft, also wählen Sie im TIA Portal eine SPS aus, die Ihren Anforderungen entspricht, und kaufen diese dann später. In beiden Fällen tritt ein Problem auf, wenn die Firmware-Version der im TIA Portal-Projekt ausgewählten SPS von der Firmware-Version der tatsächlichen Hardware abweicht. Und bei manchen SPS wird Ihr Programm nicht einmal auf die Hardware-SPS heruntergeladen. Sie sollten also immer sicherstellen, dass die Firmware-Version der tatsächlichen SPS mit der im TIA-Portal ausgewählten SPS übereinstimmt. Es ist erwähnenswert, dass Sie keine Probleme mit Ihrem Programm haben werden, wenn die im TIA-Portal ausgewählte Firmware-Version älter ist als die der tatsächlichen SPS. Sie verlieren zwar einige der SPS-Funktionen und -Fähigkeiten, aber Ihr Programm wird einwandfrei funktionieren. Im Gegenteil treten Probleme auf, wenn die im TIA-Portal ausgewählte Firmware-Version neuer ist als die der tatsächlichen SPS. Dann haben Sie ein Problem. Wenn Sie die Firmware-Version Ihrer Hardware nicht kennen, sollten Sie daher im TIA-Portal-Projekt die ältere Version auswählen. Wie kann ich die Firmware-Version der Hardware-SPS herausfinden? Wir können die Firmware-Version der Hardware-SPS, die wir haben, auf eine von zwei Arten herausfinden: Von der SPS selbst: Die Firmware-Version jeder SPS oder jedes SPS-Moduls ist immer irgendwo auf dem Hardwaregerät vermerkt. Über die TIA Portal-Software: Mit der TIA Portal-Software können Sie Ihre SPS mit Ihrem TIA Portal verbinden und nach dem Gerät suchen. Anschließend können Sie die Firmware-Version des Hardwaregeräts finden. Wir haben im vorherigen Artikel gezeigt, wie das geht. Wie gehe ich mit Firmware-Versionsfehlern um? Wenn die Firmware-Version der tatsächlichen Hardware-SPS älter ist als die Version der im TIA Portal-Projekt ausgewählten SPS, führt dies zu Firmware-Fehlern. Um diese Fehler zu beheben, können wir einen der folgenden Ansätze ausprobieren: Wir können die SPS im TIA Portal-Projekt so auswählen, dass sie dieselbe oder eine ältere Firmware-Version wie die tatsächliche SPS hat. Das haben wir im vorherigen Artikel gezeigt. Wir können die Firmware-Version der tatsächlichen Hardware-SPS auf eine höhere Firmware-Version als die in Ihrem Projekt ausgewählte oder zumindest auf dieselbe Firmware-Version aktualisieren. Und das ist der Inhalt dieses Artikels. Wie aktualisiere ich die Firmware-Version meiner SPS? Sie können die Firmware-Version Ihrer SPS auf zwei Arten aktualisieren: Online über das TIA Portal. Offline über die Siemens Memory Card SMC. Aktualisieren Sie die Firmware online mit TIA Portal: Sie müssen kein vorhandenes Projekt im TIA Portal geöffnet haben, Sie benötigen lediglich die TIA Portal-Software und müssen die SPS mit Ihrem PC verbinden. Siehe Abbildung 3. Abbildung 3. Öffnen Sie Tia Portal, ohne ein neues Projekt zu erstellen. Wenn Sie TIA Portal öffnen, gehen Sie zum Online-Zugriff, wählen Sie den geeigneten Kommunikationsadapter zwischen Ihrer SPS und Ihrem PC und drücken Sie dann auf „Erreichbare Geräte aktualisieren“, um nach Ihrer SPS zu suchen. Siehe Abbildung 4. Abbildung 4. Suchen Sie Ihre SPS. Nachdem die SPS gefunden wurde, wie Sie im vorherigen Bild sehen können, öffnen Sie den SPS-Ordner und drücken Sie auf „Online und Diagnose“, um die SPS-Firmwareversion anzuzeigen. Siehe Abbildung 5. Abbildung 5. Die aktuelle Firmwareversion der SPS. Um JETZT die Firmwareversion zu aktualisieren, drücken Sie auf das Attribut „Firmware-Update“. Siehe Bild 6. Bild 6. Firmware-Update-Seite. Wie Sie sehen, wird beim Drücken des Attributs „Firmware-Update“ das aktuelle Firmware-Update V4.1.3 angezeigt. Außerdem wird der Firmware-Loader angezeigt, in dem Sie nach der Firmware-Version suchen können, die Sie installieren möchten. Natürlich muss die Firmware-Version zuerst auf Ihrem PC installiert sein, was bedeutet, dass wir die Firmware-Version herunterladen müssen. Um die Firmware-Version herunterzuladen, sollten Sie sich bei Ihrem Siemens-Konto anmelden. Wenn Sie noch keins haben, können Sie ganz einfach ein neues Konto erstellen. Die Aktivierung dauert jedoch 1 bis 2 Tage. Danach können Sie nach der Firmware-Version für Ihre SPS suchen. In unserem Fall haben wir eine S7-1200 CPU 1214C AC/DC/RLY und wir suchen anhand der Artikelnummer nach der Firmware-Version. Siehe Abbildung 7. Abbildung 7. Suchen Sie nach der Firmware-Version Ihrer SPS. Laden Sie anschließend die Firmware-Version herunter, die Sie installieren möchten. In unserem Fall möchten wir unsere SPS auf V4.4.0 aktualisieren, also laden wir diese Version auf unseren PC herunter. Siehe Bild 8. Bild 8. V4.4.0 herunterladen Die heruntergeladene Datei ist eine ZIP-Datei. Sie sollten die Datei entpacken, um die Datendatei mit der Firmware-Version zu erhalten, und dann zum Attribut „Firmware Loader“ zurückkehren und auf „Durchsuchen“ klicken, um nach der Firmware-Version zu suchen. Siehe Bild 9. Bild 9. Suchen Sie nach der Datei mit der Firmware-Version. Machen Sie sich keine Sorgen, dass Sie bei diesem Schritt einen Fehler machen, denn wenn die Firmware-Version nicht mit der SPS kompatibel ist, können Sie das Update nicht ausführen. Siehe Bild 10. Bild 10. Das Update wird nicht fortgesetzt, wenn die Firmware nicht übereinstimmt. Wie Sie sehen, trat beim Versuch, eine Firmware-Version für eine 1215C-CPU in unsere SPS mit einer 11214C-CPU hochzuladen, eine Fehlermeldung auf, dass die Datei nicht für die SPS geeignet sei. Klicken Sie JETZT erneut auf „Durchsuchen“, aber suchen Sie dieses Mal nach der richtigen Firmware-Version. Siehe Bild 11. Bild 11. Keine Fehlermeldung, wenn die Firmware-Version richtig ist. Wie Sie sehen, gab es keine Fehlermeldung, als wir eine geeignete Firmware-Version auswählten, und wir können jetzt auf „Update ausführen“ klicken, um mit der Aktualisierung unserer SPS zu beginnen. Sobald Sie den Aktualisierungsvorgang starten, wird ein Fenster zur Firmware-Aktualisierung angezeigt und am Ende wird eine Erfolgsmeldung angezeigt, wenn die Aktualisierung problemlos verlief. Siehe Bilder 12 und 13. Bild 12. Eine Firmware-Aktualisierung wird ausgeführt. Bild 13. Firmware-Aktualisierung erfolgreich abgeschlossen. Nachdem die Firmware-Version aktualisiert wurde, aktualisieren Sie Ihre Kommunikation, indem Sie erneut auf „Erreichbare Geräte aktualisieren“ klicken und die Firmware-Version der SPS überprüfen. Sie werden feststellen, dass die SPS jetzt die Firmware-Version V.4.4.0 statt V4.1.3 hat. Das bedeutet, dass wir die Firmware-Version unserer SPS aktualisieren konnten. Siehe Bild 14. Bild 14. Die Firmware wurde auf V4.44.0 aktualisiert Und so aktualisieren wir die Firmware-Version unserer SPS mithilfe des TIA-Portals. Offline mithilfe der Siemens-Speicherkarte SMC: Die andere Methode zum Aktualisieren der Firmware unserer SPS ist die Verwendung der SIEMENS-Speicherkarte SMC. Dazu müssen wir nur die Firmware-Version herunterladen, die wir verwenden möchten. Dann kopieren wir die Firmware-Version von unserer SPS auf die SMC und stecken die SMC in den dafür vorgesehenen Steckplatz in der SPS. Beim nächsten Einschalten der SPS wird die Firmware aktualisiert. Fazit Sie können die Firmware-Version mithilfe der TIA-Portal-Software oder der SIEMENS SMC-Speicherkarte aktualisieren. Achten Sie darauf, dass Sie die Firmware-Version genau richtig auswählen. Wenn eine Nichtübereinstimmung zwischen SPS und TIA-Portal besteht, wird das Update nicht gestartet.
  18. In einem früheren Artikel haben wir darüber gesprochen, was ein PID ist, und wir haben auch die verschiedenen Parameter eines PID erklärt und wie das System auf Änderungen dieser Parameter reagiert. In diesem Artikel zeigen wir, wie Sie einen PID in Ihrem TIA Portal-Projekt programmieren, konfigurieren und abstimmen. Inhalt: Wie fügen Sie Ihrer Logik einen PID hinzu? Wie konfigurieren Sie den PID? Grundeinstellung Prozesswerteinstellung Erweiterte Einstellung Wie führen Sie die Feinabstimmung des PID durch? Vorabstimmung des PID Feinabstimmung Welche verschiedenen Abstimmungsmethoden gibt es für PIDs? Wie fügen Sie Ihrer Logik einen PID hinzu? In TIA Portal und fast jeder anderen SPS-Plattform müssen Sie keinen PID-Regler programmieren, da das TIA Portal bereits integrierte Blöcke für PIDs hat. Um einen PID in Ihre Logik einzufügen, müssen Sie den PID-Block einfach per Drag & Drop in Ihren Code ziehen und mit der Konfiguration für Ihr System beginnen. Das Hinzufügen von PID zu Ihrem Code ist sehr einfach, es gibt jedoch einen sehr wichtigen Punkt, den Sie berücksichtigen sollten. Dies ist das Ausführungsintervall Ihres PID. Wie Sie wissen, findet der Hauptausführungszyklus im Main Cyclic OB1 statt und die Zykluszeit des OB1 hängt von vielen Faktoren ab, beispielsweise von der Länge Ihres Codes, von mathematischen Berechnungen in Ihrem Code und auch von Schleifen und Sequenzen. All diese verschiedenen Faktoren können die Zykluszeit Ihres OB1 nicht nur verlängern, sondern auch in jedem Zyklus anders machen, je nach Ihrem Code. Das bedeutet, wenn Sie Ihren PID-Block im Main OB1 aufrufen, hängt die PID-Ausführung von der Zykluszeit Ihres OB1 ab, und das ist kein Best-Practice-Ansatz. PIDs werden normalerweise verwendet, um physikalische Parameter wie Druck, Temperatur oder Geschwindigkeit zu steuern, und das bedeutet, dass Ihr Controller sehr schnell jede Änderung Ihres Prozesswerts erkennen und schnell reagieren muss, um diese Änderung auszugleichen und Ihnen eine reibungslose, stabile Steuerung zu bieten, die ein PID haben sollte. Wenn also der PID zum Haupt-OB1 hinzugefügt wird und von seiner Ausführungszeit betroffen ist, müssen möglicherweise Verzögerungen eingeleitet werden, was Ihr System instabil macht. Was ist zu tun? Eine bewährte Vorgehensweise besteht darin, Ihren PID-Block in einem zyklischen Interrupt-OB aufzurufen und die Zykluszeit dieses zyklischen Interrupts auf den für Ihr System geeigneten Wert einzustellen, normalerweise im Millisekundenbereich, abhängig von Ihrer Anwendung. Das bedeutet, wenn Sie den zyklischen Interrupt beispielsweise auf 1 Millisekunde einstellen, wird Ihr PID jede Millisekunde aufgerufen und ausgeführt, unabhängig davon, wo sich der Haupt-OB1-Zyklus befindet. Um also einen PID in Ihre Logik einzufügen, fügen wir zunächst einen neuen zyklischen Interrupt-OB hinzu und geben ihm einen geeigneten Namen. Siehe Abbildung 1. Abbildung 1. Hinzufügen eines zyklischen Interrupts zu Ihrem Projekt. Sie können auf der Abbildung sehen, dass wir die Zykluszeit auf 1000 Mikrosekunden oder 1 Millisekunde eingestellt haben. Unser PID wird also jede Millisekunde aufgerufen und ausgeführt. Nachdem Sie nun Ihren zyklischen OB zum Projekt hinzugefügt haben, können Sie den PID-Block einfach per Drag & Drop verschieben. Sie finden ihn auf der Registerkarte „Anweisungen“/Technologie/PID-Steuerung/Kompakter PID. Siehe Abbildung 2. Abbildung 2. Hinzufügen des PID-Blocks. Fügen Sie nun Ihre Systemparameter zum PID-Block hinzu, den Eingang, den Ausgang und den Sollwert. Siehe Abbildung 3. Abbildung 3. Weisen Sie Ihre PID-Parameter zu. Ist Ihnen auf dem letzten Bild aufgefallen, dass Sie 2 verschiedene Eingänge und 3 verschiedene Ausgänge haben? Was sind das? Eingabe: Dies ist Ihr Eingabewert Ihres Prozessparameters in realen physikalischen Größen. Wir verwenden unser Tanksimulationssystem, daher ist die Eingabe hier in diesem Fall der Tankfüllstand in Litern. Das bedeutet, dass Sie Ihre analoge Eingangsskalierung an einer anderen Stelle in Ihrem Projekt vorgenommen haben und den PID nur mit dem tatsächlichen Füllstand in Litern versorgen. Input_PER: Dies ist der Eingangswert Ihres Prozessparameters, kommt aber vom analogen Eingangsmodul. Das bedeutet, dass er nicht skaliert wird und im Bereich von 0-27648 liegt und die Skalierung des Eingangs innerhalb des PID erfolgt. Output: In diesem Fall gibt Ihnen der PID den Reglerausgangswert im Bereich von 0 % bis 100 % des maximalen Ausgangswerts. Output_PER: Genau wie input_PER gibt der PID den Ausgang in Form von 0-27648 aus. Output_PWM: In diesem Fall gibt der PID sein Ausgangssignal in Form von EIN/AUS-Impulsen aus, sodass entweder ein Ausgang vorhanden ist oder nicht. Und der Ausgangswert beträgt dann 100 %, wenn er EIN ist, und 0 %, wenn er AUS ist. Wir verwenden dasselbe Tanksimulationssystem wie zuvor und wie Sie auf dem vorherigen Bild sehen können, haben wir Input und Output_PER verwendet, da unsere Simulation auf diese Weise aufgebaut ist. Wie konfiguriere ich den PID? Um die Konfigurationsansicht des PID aufzurufen, können Sie entweder auf die Registerkarte „Konfiguration“ im Projektbaum oder auf das kleine Konfigurationssymbol über dem PID-Block selbst klicken. Siehe Bild 4. Bild 4. Konfigurationsansicht aufrufen. Dadurch gelangen Sie zur Funktionsansicht, in der Sie die verschiedenen Einstellungen Ihres PID konfigurieren können. Siehe Bild 5. Bild 5. Reglertypeinstellung. Die erste Konfiguration ist der Reglertyp. Hier können Sie auswählen, welche Art von Steuerung Sie verwenden möchten. Sie haben viele Optionen aus den angezeigten Dropdown-Menüs wie Temperatur, Druck, Länge und viele mehr. Sie können es auch auf „Allgemein“ einstellen, wo das System Ihre Werte als % sieht. In unserem System steuern wir Wasserliter in einem Tank, also wählen wir das Volumen. Sie können auch den manuellen/automatischen Modus des PID einstellen. Als Nächstes möchten Sie die Eingabe-/Ausgabeparameter konfigurieren. Siehe Bild 6. Bild 6. Eingabe-/Ausgabeparameter. Hier können Sie aus den verschiedenen Arten von Ein- oder Ausgängen wählen, wie wir zuvor erklärt haben. Wie gesagt, wir werden Input und Output_PER verwenden. Als Nächstes müssen Sie Ihre Prozesswerteinstellung konfigurieren. Siehe Bild 7. Bild 7. Prozesswertgrenze. In diesem Schritt legen Sie die unteren und oberen Grenzwerte Ihres Prozesswerts fest. Wenn Sie den Eingabetyp wählen, kann diese Einstellung geändert werden und Sie können die Grenzwerte Ihres Prozesses festlegen. In unserem Fall liegen die Tankgrenzwerte bei 0 bis 50 Litern. Wir haben sie also auf diese Werte eingestellt. Beachten Sie, dass diese Einstellung nicht verfügbar ist, wenn Sie Input_PER wählen, und Sie Ihren Prozessgrenzwert nur auf der nächsten Registerkarte festlegen können. Siehe Abbildung 8. Abbildung 8. Skalierung des Prozesswerts. Wenn Sie Input_PER verwenden, können Sie, wie Sie im vorherigen Bild sehen, Ihren Prozesswertgrenzwert in Bezug auf die vorhandene Skalierung von 0-27648 festlegen. Wenn Sie eine Warnung einrichten möchten, wenn Ihr Prozesswert einen unteren oder oberen Grenzwert erreicht, können Sie dies auf der Registerkarte „Prozesswertüberwachung“ konfigurieren. Siehe Abbildung 9. Abbildung 9. Prozesswertüberwachung. Als nächstes finden Sie in der Einstellungsliste die PWM-Grenzen, siehe Bild 10. Bild 10. PWM-Grenzen Hier können Sie die minimale EIN- und AUS-Zeit Ihres Ausgangs einstellen. Stellen Sie sich vor, Sie haben eine Pumpe oder ein Ventil in Ihrem System, das der PID über einen PWM-Ausgang steuert. Sie möchten nicht, dass der PID Ihrer Pumpe einfach eine Abfolge von sehr schnellem EIN/AUS-Verhalten gibt, da dies wahrscheinlich dazu führen würde, dass Ihre Pumpe durchbrennt. Sie können dem PID also von dieser Einstellung aus sagen, dass er die Pumpe für eine Mindestzeit einschalten soll, bevor er sie schließt, und umgekehrt. Sie können die gleiche Steuerung mit Ihrem PID haben, wenn Sie keinen PWM-Ausgang haben, und zwar von der nächsten Einstellung aus, den Ausgangswertgrenzen. Siehe Bild 11. Bild 11. Ausgangswertgrenzen. Sie können die unteren und oberen Grenzen Ihrer Steuerausgabe steuern. Sie können beispielsweise die untere Grenze auf 20 % setzen, wodurch der PID die Pumpe mit mindestens 20 % ihres Durchflusses betreibt. Ihr Steuerbereich liegt also zwischen 20 % und 100 %. Zuletzt und am wichtigsten können Sie Ihre PID-Parameter im Konfigurationsmodus auf der nächsten Registerkarte, der Registerkarte „PID-Parameter“, einstellen, siehe Abbildung 12. Abbildung 12. PID-Parameter. Hier können Sie die Abstimmungsparameter für Ihre PID-Verstärkungen P, I und D eintragen, falls Sie diese kennen oder falls Sie die Abstimmung selbst vorgenommen haben und die Parameter von woanders haben. Sie können sich auch entscheiden, ob Sie einen PID- oder nur einen PI-Regler verwenden möchten. Wenn Sie diese Parameter nicht haben, können Sie sie automatisch hochladen, nachdem Sie die Abstimmung Ihres PID vorgenommen haben. Wie führt man die Abstimmung des PID durch? Nachdem Sie nun Ihre PID-Konfiguration abgeschlossen haben, können Sie Ihren Regler ganz einfach über die Registerkarte „Inbetriebnahme“ im Projektbaum abstimmen. Siehe Abbildung 13. Abbildung 13. Inbetriebnahme Ihres PID Auf der Inbetriebnahmeseite ist Ihr Bildschirm in drei Teile unterteilt. Auf der oberen Seite können Sie mit der Vorabstimmung und Feinabstimmung des PID beginnen. In der Mitte befindet sich ein Diagrammbereich, der Ihnen die Echtzeitreaktion Ihres Systems zeigt. Sie können die Reglerausgabe und den Prozesswert sehen. Und jedes Mal, wenn sich der Sollwert ändert, sehen Sie das Verhalten Ihres PID, um diesen neuen Sollwert zu erreichen. Selbst wenn sich der Sollwert nicht geändert hat, aber beispielsweise der Bedarf aus unserer Tankversorgung steigt, sehen Sie die PID-Reaktion, um diesen Bedarf zu decken und den Sollwert auf dem erforderlichen Wert zu halten. Im dritten Bereich sehen Sie den Online-Status Ihres Reglers und können auch den Betriebsmodus Ihres PID festlegen. Sehen Sie sich das folgende Simulationsvideo an, das den Autotuning-Vorgang des PID im TIA-Portal zeigt. Im Video können Sie sehen, dass unser PID nach der Vorabstimmung die P-, I- und D-Parameter gefunden hat, die am besten zu unserem System passen. Sie können sehen, dass der Regler sehr schnell reagiert, wenn sich der Sollwert oder der Abfluss ändert, um den Sollwert wieder auf die erforderlichen Werte zu bringen. Sie können Ihre Tuning-Parameter jetzt mit einem einfachen Klick direkt in Ihr Projekt hochladen, siehe Bild 14. Bild 14. Laden Sie Ihre Parameter hoch. Nachdem Sie Ihre Parameter hochgeladen haben, finden Sie sie auf der Registerkarte „PID-Parameter“ in der Konfigurationsansicht. Siehe Bild 15. Bild 15. PID-Parameter. Der nächste Schritt sollte darin bestehen, eine Feinabstimmung des PID aus derselben Inbetriebnahmeansicht heraus durchzuführen. Da wir jedoch kein reales System haben und nur das Verhalten des Tanks und der Pumpe mithilfe mathematischer Berechnungen simulieren, können wir die Feinabstimmung nicht durchführen. Wenn Sie ein reales System haben, können Sie die Feinabstimmung vornehmen, bei der Ihr PID versucht, die Parameter zu finden, die dem System eine bessere Reaktion verleihen und sogar das Überschwingen Ihres Prozesswerts verhindern und den Sollwert direkt erreichen. Wenn wir in Zukunft ein reales System haben, können wir zeigen, wie es aussieht. Welche verschiedenen Abstimmungsmethoden gibt es für PID-Regler? Sie müssen die Abstimmung Ihres PID nicht über das TIA Portal vornehmen. Es gibt viele verschiedene Methoden, mit denen versucht wird, die besten PID-Parameter für Ihr System zu finden. Meistens handelt es sich dabei um mathematische Methoden, die auf Versuch und Irrtum basieren. Ich würde empfehlen, die Auto-Tune-Funktion im TIA Portal zu verwenden. Aber hier sind einige der Methoden, die verwendet werden, um dieselben Parameter zu erreichen. Heuristische Abstimmung. Ziegler-Nichols-Abstimmungsmethode Cohen-Coon-Abstimmungsmethode Kappa-Tau-Abstimmungsmethode Lambda-Abstimmungsmethode Und einige andere. Fazit Verwenden Sie einen zyklischen Interrupt mit Ihren PIDs. Konfigurieren Sie Ihren PID so, dass er am besten zu Ihrem System passt. Die Auto-Tune-Funktion im TIA Portal ist sehr nützlich und effektiv.
  19. Es gibt viele Möglichkeiten, wie SPSen miteinander kommunizieren und kommunizieren können. In diesem Artikel sprechen wir über eine dieser Methoden, nämlich wie man mithilfe der I-Device-Funktion eine Siemens-Kommunikation zwischen SPSen herstellt, um eine Datenübertragung von SPS zu SPS zu ermöglichen. Was ist die I-Device-Funktion? Die I-Device-Funktion kann verwendet werden, um sehr einfach Daten zwischen zwei SPSen auszutauschen. Ein I-Device ist einfach eine SPS, die als IO-Gerät verwendet wird. Das bedeutet, dass die SPS als IO-Modul fungiert, das Eingänge bereitstellt und Ausgänge von der anderen SPS empfängt. Die I-Device-Funktion ermöglicht PROFINET nicht nur die Kommunikation mit untergeordneten Geräten wie IO-Controllern, sondern auch die IO-Kommunikation mit anderen übergeordneten oder zentralen Controllern als IO-Gerät. Siemens-Kommunikation zwischen SPS Die meisten SPS der S7-Familie unterstützen die I-Device-Funktion, einige Steuerungen tun dies jedoch nicht, je nach Firmware-Version, zum Beispiel: S7-300 (ab Firmware-Version V3.2) S7-1200 (ab Firmware-Version V4) Sie können einfach feststellen, ob Ihre Steuerung die I-Device-Funktion hat oder nicht, indem Sie in die Eigenschaften der SPS-PROFINET-Schnittstelle gehen und die Option „Betriebsmodus“ überprüfen. Siehe Bilder 1a und 1b. Bild 1a. SPS unterstützt kein I-Device Auf dem Bild können wir die Option „Betriebsmodus“ nicht sehen, also wissen wir, dass die SPS die I-Device-Funktion nicht unterstützt. Bild 1b. SPS unterstützt die I-Device-Funktion Wie Sie auf dem Bild sehen, unterstützt diese SPS die I-Device-Funktion. Eine SPS mit der Konfiguration „Intelligentes IO-Device“ wird als I-Device bezeichnet. Ein I-Device ist wie ein Standard-IO-Device und muss auch wie ein solches behandelt werden. Das bedeutet, dass das I-Device auch an einen übergeordneten IO-Controller angeschlossen ist. Ein I-Device fungiert also als IO-Modul, ist aber auch weiterhin eine SPS und kann daher, wenn gewünscht, weiterhin als Controller fungieren. Datenaustauschkonzept Das Leitprinzip der I-Device-Methode besteht darin, das bekannte Prozessabbild in einer CPU zu verwenden. Aus Sicht des übergeordneten IO-Controllers ähnelt die Kommunikation mit einem I-Device der Kommunikation mit einem verteilten IO mit den üblichen Lese- und Schreibvorgängen an Ein- und Ausgängen. Aus Sicht des I-Devices ist die Datenübertragung an einen übergeordneten IO-Controller ebenfalls analog zur Datenübertragung an das lokale oder zugewiesene verteilte IO über Ein- und Ausgänge. I-Device-Konfigurationsoptionen Es gibt zwei Möglichkeiten zur Konfiguration: Konfigurieren eines I-Devices innerhalb eines Projekts. Konfigurieren eines I-Devices, das in einem anderen Projekt verwendet wird Wenn Sie ein I-Device für ein anderes Projekt konfigurieren, ermöglicht Ihnen STEP 7 dies, indem Sie ein konfiguriertes I-Device in eine GSD-Datei exportieren. Die GSD-Datei kann wie andere GSD-Dateien in das andere Projekt oder das andere Engineering-System importiert werden. Dies ermöglicht nicht nur die Kommunikation innerhalb des Projekts, sondern auch die Kommunikation zwischen Projekten und den Datenaustausch zwischen verschiedenen Herstellern auf bewährte Weise. Wir werden das in einem anderen Artikel zeigen. In diesem Artikel zeigen wir die Konfiguration des I-Devices innerhalb desselben Siemens-SPS-Projekts. I-Device-Konfiguration innerhalb desselben SPS-Projekts Wir gehen davon aus, dass wir in unserem Projekt zwei SPSen haben, CPU 1516-3 PN/DP, die in dieser Konfiguration als Controller fungiert, und CPU 1214C, die als I-Device fungiert. Fügen Sie zunächst die beiden SPSen zu Ihrem TIA Portal-Projekt hinzu und richten Sie eine Profinet-Verbindung zwischen ihnen ein. Siehe Abbildung 2. Abbildung 2. Verbindung zwischen zwei SPSen einrichten. Jetzt müssen wir die CPU 1214C SPS als I-Device konfigurieren. Gehen Sie dazu zu den Profinet-Schnittstelleneigenschaften und klicken Sie in der Betriebsmodusoption auf die Option IO-Device. Siehe Abbildung 3. Abbildung 3. IO-Device auswählen. Danach müssen Sie das I-Device einem übergeordneten Controller zuweisen, in unserem Projekt der CPU 1516-3 PN/DP SPS. Wählen Sie dazu einfach diese SPS aus der Dropdown-Liste Zugewiesener IO-Controller aus. Siehe Abbildung 4. Abbildung 4. Weisen Sie das I-Device dem Controller zu. Danach wird nun das I-Device angeschlossen und der Steuerung PLC zugeordnet. Siehe Bild 5. Bild 5. Das I-Device wird der Steuerung PLC zugeordnet. Im nächsten Schritt werden die Daten zwischen I-Device und Steuerung mit sogenannten Transferbereichen ausgetauscht. Transferbereich anlegen Transferbereiche sind die IO-Bereiche, die zum Datenaustausch zwischen I-Device und übergeordnetem IO-Controller verwendet werden. Gehen Sie in den Bereich „I-Device-Kommunikation“. Klicken Sie auf das erste Feld der Spalte „Transferbereiche“. TIA Portal erstellt einen vordefinierten Namen, den Sie ändern können. Wie Sie aus Bild 6 ersehen können. Bild 6. Transferbereich anlegen Wählen Sie den Typ der Kommunikationsbeziehung aus: aktuell kann nur CD ausgewählt werden. Siehe Bild 7. Bild 7. Wählen Sie die CD-Kommunikationsoption. Sobald Sie die Option CD auswählen, wird ein Transferbereich erstellt und die Adressen des IO-Controllers und des I-Devices werden automatisch erstellt. Siehe Abbildung 8. Abbildung 8. Transferbereich wird erstellt. Die Adressen werden automatisch vorbelegt, bei Bedarf können Sie die Adressen an Ihre Umgebung anpassen und die Länge des zu übertragenden Transferbereichs einheitlich festlegen. Um einen weiteren Transferbereich wie zuvor zu erstellen, drücken Sie einfach auf „Neu hinzufügen“, siehe Abbildung 9. Abbildung 9. Neuen Transferbereich hinzufügen. Wie bereits erwähnt, basiert der Datenaustausch auf dem einfachen Verarbeitungsbildkonzept, was bedeutet, dass Sie immer eine Ausgabe senden und eine Eingabe empfangen. Beachten Sie auch, dass der Pfeil, den Sie im vorherigen Bild sehen, den Informationsfluss zwischen dem I-Device und dem Controller anzeigt. Wenn ich also Daten vom Controller an das I-Device sende, zeigt der Pfeil vom Controller zum I-Device und die Adresse des Controllers wird ausgegeben und die Adresse des I-Devices wird eingegeben und umgekehrt, wie Sie im vorherigen Bild sehen können. Bedenken Sie auch, dass es immer besser ist, Ihre Übertragungsbereiche in aussagekräftige Namen umzubenennen. Siehe Bild 10. Bild 10. Benennen Sie Ihre Übertragungsbereiche um. Laden des SPS-Projekts Um die SPS-Projektdaten zu laden, wählen Sie in der Projektnavigation nacheinander beide Controller aus und laden Sie das Projekt in das jeweilige Modul. Beachten Sie, dass wir diese Funktion nicht simulieren können, da wir keine tatsächlichen Hardwaregeräte haben.
  20. In this article, we will discuss yet another way of communicating between two PLCs, whether they are in the same project or two different SPS projects. In this article, we will talk about the PUT command in Siemens SPS which can be used to send or put data from one SPS into a second SPS. What is the PUT Command? In general, the PUT command is a TIA Portal built-in function block FB that is used exclusively for S7-Family CPUs to put data from a local SPS to a remote partner SPS. When using the PUT command, I would have two PLCs, where I need to send data from one SPS called local to another SPS called partner. Some configurations must be done to the partner SPS, to enable it to be accessed by the other SPS. In addition to a Profinet connection between the PLCs. We will create a sample project to show how to use the PUT command. PUT Command in Siemens SPS We will assume a sample project where we have two PLCs in the same project, PLC_1 which will act as the local SPS and PLC_2 which is the partner SPS. We want to write an integer from the local to the partner SPS. Sample SPS project First, let’s create a new project and add the two PLCs. See picture 1. picture 1. Add the local and partner PLCs. What I need now is to configure PLC_2, the one that will receive the data to be able to receive this data. And PLC_1 will be used with the PUT command. The 1st thing I need to do is allow the access of the PUT command to the PLC_2 that will receive the data. See picture 2. picture 2. Allow PUT command access. As you see from the picture, we allow the PUT command to access the PLC_2 from the Properties of the PLC_2, in the Protection and Security option, click on the “Permit access with PUT/GET communication from the remote partner” Now, I am allowed to put data from any remote partner to PLC_2 using the PUT command. The 2nd thing is to prepare a space or memory in PLC_2 to the data that will be put in it. We will assume that we want to PUT an integer value into that SPS, so I will prepare a memory according to that. See picture 3. picture 3. Prepare area to receive data. And that is it; this is the entire configuration you need to prepare from the PLC_2 side to be able to receive data through PUT command. Next, we set up the data being sent from the PLC_1. We will create a data block to hold the data sent to PLC_2 and inside this data block, we will define an integer tag to be PUT into PLC_2. See picture 4. picture 4. Create a data block to hold the sent data. We defined an integer tag “SendMeToPLC_2” that we want to send to PLC_2. See picture 5. picture 5. Define the data to be sent. Note that, for PLC_1, we don’t need to allow the access with PUT command option. We activate this feature in the SPS that will receive data, not the SPS that will send it. Now, let’s use the PUT command in our programming, in the main OB1 we will drag and drop the PUT command FB. See picture 6. picture 6. Add the PUT command to OB1. Note that, the PUT command is found in the S7 communication folder, as it is an exclusive function for S7 family SPS, because it involves safety issues. Remember in picture 2 when we allowed the use of PUT command it was in the Security and Protection attribute of the SPS properties as it is related to SPS safety and protection. The PUT command is essentially a function block, so when adding it to my logic I will be asked to create a data instance. See picture 7. picture 7. Create a data instance for the PUT command. After you press OK, the PUT command is now added to your SPS logic. See picture 8. picture 8. PUT command After we added the PUT command, now we need to configure it, we have two parameters to configure for the PUT command. The connection between PLCs The block that will be PUT from PLC_1 to PLC_2 To go to the configuration view of the PUT command, press the small blue icon shown in last picture. In the connection parameter, you will set the communication between the local (PLC_1) and partner (PLC_2) PLCs. See picture 9. picture 9. Connection parameter. As you can see, the Local PLC is set to PLC_1 which is the PLC where the PUT command is used. The partner side is still empty and that is where we should assign PLC_2. If you click on the drop-down list you will have two options for a partner. See picture 10. picture 10. Partner connection The partner is the SPS that will receive the data; you will find that you have two options to select from: PLC_2 [CPU 1516-3 PN/DP] Unspecified Because both PLCs are in the same project, when I choose the PLC_2 option, all connection parameters will be automatically filled in. see picture 11. picture 11. PLC_2 as a partner Wenn die Partner-SPS hingegen aus einem anderen Projekt stammt, wähle ich die Option „Nicht angegeben“ und muss in diesem Fall einige Daten wie die IP-Adresse der Partner-SPS eingeben. Siehe Abbildung 12. Abbildung 12. Nicht angegebener Partner Wie Sie sehen, muss ich in diesem Fall einige Daten wie die IP-Adresse eingeben und außerdem ein Subnetz für PLC_1 hinzufügen. Um ein Subnetz für PLC_1 hinzuzufügen, gehen wir zu den Profinet-Eigenschaften von PLC_1 und wählen die Option „Subnetz hinzufügen“. Siehe Abbildung 13. Abbildung 13. Subnetz hinzufügen. Sobald dies erledigt ist, ist die Konfiguration der Verbindungsparameter abgeschlossen. Siehe Abbildung 14. Der Verbindungsname sollte für jeden PUT-Befehl eindeutig sein. TIA Portal gibt ihm automatisch einen neuen Namen, aber es ist vielleicht besser, wenn Sie der Verbindung in Ihrem Projekt einen passenderen Namen zuweisen. Wir haben es hier so gelassen, wie es ist. Abbildung 14. Verbindungsparameter sind fertig Der nächste Schritt in der PUT-Befehlskonfiguration ist die Einrichtung der Blockparameter. In diesen Parametern geben wir den Auslöser für den PUT-Befehl an, d. h. welches Signal die PUT-Befehlsaktion startet. Und auch, welche Daten von PLC_1 gesendet werden und wo sie in PLC_2 gespeichert werden. Siehe Abbildung 15. Abbildung 15. Einrichtung der Blockparameter Für das Startanforderungssignal (REQ) haben wir ein Eingabetag (SendData %I0.0) definiert. Und wie bereits erwähnt, haben wir bereits das Tag definiert, das an PLC_2 gesendet wird und wo es in der SPS gespeichert wird. Mit dem Abschluss der Blockparameterkonfiguration wird die Konfiguration des PUT-Befehls abgeschlossen. Siehe Abbildung 16. Abbildung 16. Aufruf eines PUT-Befehls Zusammenfassend lässt sich also sagen, dass bei Auslösen des REQ-Signals die Daten in SD_1 an ADDR_1 gesendet werden.
  21. In einem früheren Artikel haben wir über den PUT-Befehl gesprochen und wie wir ihn verwenden, um zwischen zwei SPSen zu kommunizieren, egal ob sie sich im selben Projekt oder in zwei verschiedenen Projekten befinden. In diesem Artikel sprechen wir über den GET-Befehl, der für das Siemens-SPS-zu-SPS-Kommunikationsprojekt zum Datenaustausch verwendet wird. Was ist der GET-Befehl? Genau wie der Put-Befehl ist ein GET-Befehl ein in TIA Portal integrierter Funktionsblock FB, der ausschließlich für CPUs der S7-Familie verwendet wird, um Daten von einer Remote-Partner-SPS zu einer lokalen SPS zu übertragen. Im Gegensatz zum PUT-Befehl überträgt der GET-Befehl Daten von der SPS_2 in die SPS_1, anstatt sie von der SPS_1 in die SPS_2 zu übertragen. Wenn ich den GET-Befehl verwende, hätte ich zwei SPSen, wobei ich Daten von einer SPS namens Partner zu einer anderen SPS namens Lokal übertragen muss. Die lokale SPS ist der Ort, an dem der GET-Befehl programmiert wird. Zusätzlich zu einer Profinet-Verbindung zwischen den beiden SPSen. An der Partner-SPS müssen einige Konfigurationen vorgenommen werden, damit die andere SPS darauf zugreifen kann. Wir erstellen ein Beispielprojekt, um zu zeigen, wie der GET-Befehl verwendet wird. Siemens-SPS-zu-SPS-Kommunikationsprojekt Wir gehen von einem Beispielprojekt aus, in dem wir zwei SPS im selben Projekt haben, SPS_1, die als lokale SPS fungiert, und SPS_2, die die Partner-SPS ist. Um eine Situation zu schaffen, in der wir den GET-Befehl verwenden müssen, gehen wir davon aus, dass wir eine Ganzzahl von der Partner-SPS_2 zur lokalen SPS_1 lesen/abrufen möchten. Erstellen wir zunächst ein neues Projekt und fügen die beiden SPS hinzu. Siehe Bild 1. Bild 1. Erstellen Sie ein neues Projekt und fügen Sie zwei SPS hinzu. Jetzt müssen wir die Partner-SPS_2 konfigurieren, um den GET-Zugriff von SPS_1 zu ermöglichen. Wir müssen auch die Daten vorbereiten, die von SPS_2 in SPS_1 verschoben werden. Zuerst müssen wir den Zugriff des GET-Befehls auf PLC_2 zulassen, der die Daten bereitstellen wird. Siehe Abbildung 2. Abbildung 2. Zugriff des GET-Befehls zulassen. Wie Sie auf der Abbildung sehen, erlauben wir dem GET-Befehl den Zugriff auf PLC_2 über die Eigenschaften von PLC_2. Klicken Sie in der Option „Schutz und Sicherheit“ auf „Zugriff mit PUT/GET-Kommunikation vom Remote-Partner zulassen“. Jetzt darf ich mit dem GET-Befehl Daten vom Partner PLC_2 lesen/abrufen. ALS NÄCHSTES möchten wir die Daten erstellen, die auf PLC_1 verschoben werden. Wir gehen davon aus, dass PLC_1 eine Ganzzahl von PLC_2 abrufen möchte. Wir definieren ein Ganzzahl-Tag mit dem Namen „SendDataToPLC_1“. Dieses Ganzzahl-Tag wird von PLC_2 in PLC_1 gelesen. Siehe Abbildung 3. Abbildung 3. Zu PLC_1 zu verschiebende Daten definieren Und das ist es; Dies ist die gesamte Konfiguration, die Sie von der PLC_2-Seite aus vorbereiten müssen, um Daten über den GET-Befehl empfangen zu können. JETZT gehen wir zu PLC_1. In PLC_1 möchten wir eine Logik erstellen, in der wir den GET-Befehl verwenden, um Daten von PLC_2 zu lesen. Wie im letzten Artikel ziehen wir den GET-Befehl einfach per Drag & Drop in unseren Main OB1. Siehe Bild 4. Bild 4. Ziehen und Ablegen des GET-Befehls Beachten Sie, dass sich der GET-Befehl im S7-Kommunikationsordner befindet, da er eine exklusive Funktion für SPS der S7-Familie ist, da er Sicherheitsprobleme beinhaltet. Denken Sie daran, dass sich in Bild 2, als wir die Verwendung des GET-Befehls erlaubten, dieser im Attribut „Sicherheit und Schutz“ der SPS-Eigenschaften befand, da er mit der Sicherheit und dem Schutz der SPS zusammenhängt. Wenn Sie den GET-Befehl per Drag & Drop in Ihren Ordner ziehen, werden Sie aufgefordert, eine Datenblockinstanz zu erstellen, da der GET-Befehl im Wesentlichen ein Funktionsblock-FB ist. Siehe Bild 5. Bild 5. Erstellen Sie eine Dateninstanz für den GET-Befehl. Nachdem wir nun den GET-Befehl zu unserer Logik hinzugefügt haben, müssen wir mit der Konfiguration des GET-Blocks beginnen, wie wir es zuvor mit dem Put-Befehl getan haben. Um die Konfigurationsansichten des GET-Befehls zu öffnen, drücken Sie auf das kleine blaue Symbol oben auf dem Block. Siehe Bild 6. Bild 6. Konfigurationsansicht öffnen. Wir müssen zwei Hauptparameter konfigurieren, den Verbindungsparameter und den Blockparameter. Siehe Bild 7. Bild 7. GET-Blockkonfiguration. Wie Sie auf dem Bild sehen können, ist die lokale SPS die SPS, von der der GET-Befehl aufgerufen wird. Während die Partner-SPS diejenige ist, die die Daten liefert, ist es auch dieselbe, für die wir den GET-Zugriff zugelassen haben. In unserem Projekt ist die Partner-SPS PLC_2. Sie können auch auf dem Bild sehen, dass das Partnerfeld leer ist und wir die SPS auswählen müssen. Siehe Bild 8. Bild 8. Unterschiedliche Option in der Partnerliste Wie Sie sehen, haben wir zwei verschiedene Optionen zur Auswahl für die Partner-SPS. Nicht angegeben ist, wenn die SPSen aus unterschiedlichen TIA Portal-Projekten stammen und wenn die SPSen aus demselben TIA Portal-Projekt stammen, dann finden Sie die andere SPS in der Liste. Wenn Sie die Option PLC_2 wählen, da sich unsere SPSen im selben Projekt befinden, wird die Verbindungskonfiguration automatisch ausgefüllt. Siehe Bild 9. Bild 9. PLC_2 als Partner Da sich beide SPS im selben Projekt befinden, werden alle Verbindungsparameter automatisch ausgefüllt, wenn ich die Option SPS_2 wähle. Wenn die Partner-SPS hingegen aus einem anderen Projekt stammt, wähle ich die Option „Nicht angegeben“ und muss in diesem Fall einige Daten wie die IP-Adresse der Partner-SPS eingeben. Siehe Abbildung 10. Abbildung 10. Partner-SPS als nicht angegeben. Wie Sie sehen, müssen Sie, wenn der Partner nicht angegeben ist, einige Informationen wie die IP-Adresse der Partner-SPS manuell hinzufügen. Sie können auch sehen, dass wir der lokalen SPS_1 ein Subnetz hinzufügen müssen. Gehen Sie dazu einfach zu den Profinet-Eigenschaften der SPS_1 und wählen Sie „Neues Subnetz hinzufügen“. Siehe Abbildung 11. Abbildung 11. Subnetz für SPS_1 hinzufügen Nachdem Sie der SPS_1 ein neues Subnetz hinzugefügt haben, ist die Konfiguration der Verbindungsparameter abgeschlossen. Siehe Bild 12. Bild 12. Verbindungsparameter sind abgeschlossen. Die nächste Konfiguration, um die wir uns kümmern müssen, ist der Blockparameter. Im Blockparameter definieren wir die Daten, die zwischen den beiden SPSen verschoben werden, und auch das Triggersignal, das den Start der Ausführung des GET-Blocks ermöglicht. Siehe Bild 13. Bild 13. Blockparameter. Wie Sie sehen, müssen wir das Triggersignal für den GET-Block definieren und wir müssen auch definieren, welche Daten von PLC_2 verschoben werden (Lesebereich ADDR_1) und wohin diese Daten gehen (Speicherbereich RD_1). Wir haben ADDR_1 bereits zuvor definiert, das ist das SendDataToPLC_1-Integer-Tag, das wir in PLC_2 definiert haben. JETZT definieren wir den Speicherbereich für dieses Integer-Tag und das Triggersignal. Siehe Bild 14. Bild 14. Triggersignal und Speicherbereich definieren Nachdem wir das Triggersignal, ADDR_1 und RD_1 definiert haben, werden wir diese Parameter in die Blockkonfiguration eintragen. Siehe Bild 15. Bild 15. Blockparameter eintragen Jetzt ist die Konfiguration des GET-Blocks abgeschlossen und Sie können sehen, dass der Block nun zum Herunterladen und Ausführen bereit ist. Siehe Bild 16. Bild 16. GET-Block Der GET-Block ist jetzt konfiguriert und sobald das Triggersignal aktiv ist, wird der Block ADDR_1 von PLC_2 lesen und in RD_1 in PLC_1 schreiben.
  22. Im vorherigen Artikel haben wir darüber gesprochen, wie man mithilfe von Open User Communication eine Verbindung zwischen zwei SPS herstellt, und wir haben das TCP-Protokoll verwendet, um eine Verbindung zwischen zwei SPS herzustellen. Wir haben im Artikel gezeigt, wie man Anweisungen wie TCON und TDISCON verwendet, um diese Verbindung herzustellen. Daten zwischen SPS verschieben In diesem Artikel zeigen wir, wie wir mit dem Verschieben von DATEN zwischen den SPS beginnen können, die wir im letzten Artikel verbunden haben. Wir werden zu diesem Zweck die Blöcke TSEND und TRCV verwenden. Daten an SPS_2 senden Wir werden auf dem Projekt aufbauen, das wir im letzten Artikel erstellt haben, was bedeutet, dass die Blöcke TCON und TDISCON bereits in unserem Projekt installiert sind. Und wir werden unser Projekt fortsetzen, indem wir die Blöcke TSEND und TRCV hinzufügen, um mit dem Verschieben von Daten zwischen den beiden SPS zu beginnen. Um Daten von SPS_1 an SPS_2 zu senden, beginnen wir mit der Erstellung eines Datenblocks, der alle Informationen enthält, die wir an SPS_2 senden müssen. Siehe Bild 1. Bild 1. Erstellen Sie einen neuen Datenblock. Wie wir bereits besprochen haben, ist es besser, Ihren Blöcken einen geeigneten Namen zu geben, damit Sie leicht und intuitiv herausfinden können, wofür die einzelnen Blöcke gedacht sind. Zweitens fügen wir dem Datenblock einige Daten hinzu, die wir an PLC_2 senden möchten. Wir sind davon ausgegangen, dass wir drei verschiedene Daten-Tags senden müssen. Siehe Bild 2. Bild 2. Definieren Sie einige Daten, die an PLC_2 gesendet werden sollen. Um den gerade erstellten Datenblock an PLC_2 senden zu können, müssen wir noch etwas tun: Wir müssen sicherstellen, dass der optimierte Blockzugriff des Datenblocks nicht ausgewählt ist. Dazu müssen wir zu den Eigenschaften des Datenblocks gehen und diese Option deaktivieren. Siehe Bilder 3 und 4. Bild 3. Gehen Sie zu den Eigenschaften des Datenblocks. Bild 4. Deaktivieren Sie die Option „Optimierter Blockzugriff“. Achten Sie darauf, diese Option zu deaktivieren, bevor Sie den TSEND-Block verwenden, da sie sonst nicht funktioniert. Nachdem wir nun die Daten vorbereitet haben, die wir an PLC_2 senden möchten, versuchen wir, sie tatsächlich zu senden. Wir werden das mithilfe des TSEND-Blocks tun. Ziehen Sie die Anweisung einfach per Drag & Drop in Ihren Haupt-OB1, um sie Ihrer Logik hinzuzufügen. Siehe Bild 5. Bild 5. TSEND-Block hinzufügen. Wenn Sie den TSEND-Block hinzufügen, werden Sie aufgefordert, einen Instanzdatenblock zu erstellen, da es sich im Wesentlichen um einen Funktionsblock handelt. Geben Sie ihm erneut einen richtigen Namen. Siehe Bild 6. Bild 6. Dateninstanz für TSEND erstellen. Wenn der TSEND-Block Ihrer Logik hinzugefügt wird, werden Sie feststellen, dass wir einige wichtige Konfigurationen vornehmen müssen. Siehe Bild 7. Bild 7. Der TSEND-Block. Wie Sie sehen, müssen wir einige Konfigurationen vornehmen: Das REQ-Signal, um das Senden der Daten zu ermöglichen. Für das REQ-Signal definieren wir ein Tag SendData, das zum Aktivieren des Sendens der Daten verwendet wird. ID der Verbindung, die ich zum Senden der Daten verwenden werde, da ich mehr als eine Verbindung haben kann, muss ich also zuweisen, welche Verbindung verwendet wird. Im letzten Artikel haben wir die ID 1 für die Verbindung zwischen PLC_1 und PLC_2 definiert, also setzen wir die ID auf 1. DATA, die ich senden muss. Wir haben bereits einen Datenblock mit allen Informationen erstellt, die ich senden muss, wir können den Datenblock einfach per Drag & Drop in den TSEND-Block ziehen. Siehe Bild 8. Bild 8. Konfigurieren Sie den TSEND-Block. Daten von PLC_1 empfangen Nachdem wir TSEND zum Senden der Daten an PLC_2 eingerichtet haben, müssen wir diese Daten innerhalb von PLC_2 empfangen. Dazu verwenden wir den TRCV-Block. Siehe Bild 9. Bild 9. TRCV-Block hinzufügen. Wie Sie sehen, fügen Sie den TRCV-Block einfach per Drag & Drop in Ihre Logik ein. Und Sie wissen, dass wir als Nächstes eine Dateninstanz für diesen Block erstellen müssen. Siehe Bild 10. Bild 10. Dateninstanz zum TRCV-Block hinzufügen. Nachdem der TRCV-Block in Ihre Logik aufgerufen wurde, müssen wir einige Parameter konfigurieren, wie wir es mit TSEND getan haben. Siehe Bild 11. Bild 11. Der TRCV-Block. Wie Sie sehen, ist EN-R ein Aktivierungssignal, das erfüllt sein muss, damit der TRCV-Block mit dem Empfangen der Daten beginnen kann. Die ID ist die Verbindung, die verwendet wird, und DATA ist der Ort, an dem die empfangenen Daten gespeichert werden. Wir müssen also einen Datenblock erstellen, um die darin enthaltenen Daten zu empfangen. Denken Sie daran, ihm einen richtigen Namen zu geben. Siehe Abbildung 12. Abbildung 12. Erstellen Sie einen Datenblock zum Empfangen von Daten. Definieren Sie als Nächstes die Informationstags, die von PLC_1 empfangen werden. Es empfiehlt sich, sicherzustellen, dass der Datenblock dieselbe Datenstruktur aufweist wie die Daten, die empfangen werden. Siehe Abbildung 13. Abbildung 13. Definieren Sie Datentags. Für EN-R definieren wir ein RecieveData-Tag, um den Datenempfang zu aktivieren. Und für die Verbindungs-ID ist es 1, wie wir es zuvor eingerichtet haben. Siehe Bild 14. Bild 14. EN-R-Signal. Als Nächstes ziehen Sie den von uns erstellten Datenblock per Drag & Drop in unseren TRCV-Block, um alle Konfigurationen abzuschließen. Siehe Bild 15. Bild 15. Fügen Sie Ihren Datenblock in den TRCV-Block ein. Wenn Sie den von uns erstellten DB per Drag & Drop verschieben, werden Sie feststellen, dass TIA Portal eine Warnung ausgibt und den gerade hinzugefügten Datenblock nicht akzeptiert. Und das liegt daran, dass wir „Optimierter Blockzugriff“ des Datenblocks nicht deaktiviert haben, wie wir es bei TSEND getan haben. Siehe Abbildung 16. Abbildung 16. Optimierter Blockzugriff. Wie bereits erwähnt, müssen wir diese Option deaktivieren, da TSEND und TRCV sonst nicht funktionieren. Siehe Abbildung 17. Abbildung 17. Deaktivieren Sie die Option „Optimierter Blockzugriff“. Sie können sehen, dass der Datenblock jetzt mit der TRCV-Anweisung akzeptiert wird, nachdem wir „Optimierter Blockzugriff“ deaktiviert haben. Nachdem nun der Aufruf und die Konfiguration der TSEND- und TRCV-Blöcke abgeschlossen sind, simulieren wir unser Projekt und sehen, wie die Daten gesendet und empfangen werden. Zuerst erstellen wir eine einfache Logik, die sicherstellt, dass Datenwerte für unsere definierten Tags vorhanden sind. Einfache Logik zum automatischen Erstellen von Datenwerten Wir erstellen eine einfache Logik zum automatischen Erstellen und Aktualisieren der Datenwerte, damit der Datentransfer zwischen den beiden SPSen leichter zu erkennen ist. Siehe Abbildung 18. Abbildung 18. Einfache Logik. Diese einfache Logik verwendet das Taktbit %M50.5, um die Werte der im Datenblock SendToPLC_2 gespeicherten Daten automatisch zu ändern. Simulation des SPS-Projekts Kompilieren wir unser Projekt und starten eine Simulation. Als Erstes müssen wir die Verbindung zwischen den beiden SPSen mithilfe des TCON-Blocks herstellen, den wir im letzten Artikel konfiguriert haben. Denken Sie daran, dass wir die Verbindungsfunktion von SPS_2 aktivieren und die Verbindung mit SPS_1 herstellen müssen. Siehe Bilder 19, 20 und 21. Bild 19. Keine Verbindung zwischen den SPSen Bild 20. Verbindung aktivieren. Bild 21. Verbindung herstellen. Nachdem wir nun die Verbindung zwischen den beiden SPSen hergestellt haben, verschieben wir die Daten von SPS_1 nach SPS_2, wie wir sie eingerichtet haben. Setzen Sie zuerst das Tag SendData auf TRUE. Siehe Bild 22. Bild 22. Das Signal REQ ist wahr. Sie können sehen, dass, obwohl SendData TRUE ist, keine Daten von SPS_1 an SPS_2 gesendet wurden. Und das liegt daran, dass der TRCV-Block noch nicht aktiviert ist, um Daten zu empfangen. Siehe Bild 23. Bild 23. EN-R-Signal ist falsch. Wie Sie sehen, ist der TRCV-Block nicht aktiviert, um Daten zu empfangen, da RecieveData noch nicht TRUE ist. Sobald EN-R wahr ist, werden die Daten vom Datenblock in PLC_1 in den Datenblock von PLC_2 gesendet. Siehe Bild 24. Bild 24. EN-R-Signal ist wahr. Sobald EN-R wahr ist, können Sie sehen, dass die Daten von PLC_1 in PLC_2 verschoben werden. Wenn Sie das Projekt öffnen und es selbst simulieren, werden Sie feststellen, dass die Daten in PLC_1 kontinuierlich aktualisiert und in PLC_2 übertragen werden. Und so können wir eine Kommunikation zwischen zwei PLCs herstellen und TSEND- und TRCV-Blöcke verwenden.
  23. In früheren Artikeln haben wir begonnen, die verschiedenen Möglichkeiten der Kommunikation zwischen zwei oder mehr SPS zu besprechen. Bisher haben wir über die I-Device-Funktion sowie die PUT- und GET-Befehle gesprochen, die ausschließlich für Siemens-SPS bestimmt waren. Kommunikation zwischen Siemens-SPS und anderen SPS In diesem Artikel werden wir eine andere Möglichkeit besprechen, zwei SPS miteinander zu verbinden. Diese Methode hat mehr Vorteile als die zuvor besprochenen PUT- und GET-Befehle, da sie im Gegensatz zu den PUT/GET-Befehlen steht, die ausschließlich der S7-Familie vorbehalten waren. Diese neue Methode ist eine offene Benutzerkommunikation, d. h. wir können sie zur Kommunikation zwischen einer SIEMENS-SPS und jeder beliebigen anderen SPS-Marke verwenden. Es müssen nicht einmal zwei SPS sein. Diese Methode kann zwischen einer SPS und jedem anderen Gerät kommunizieren, das das TCP-Netzwerkprotokoll versteht, wie z. B. PCs, Server, Drucker usw. In diesem Artikel zeigen wir, wie man eine Kommunikation zwischen zwei SPS mithilfe der TCON- und TDISCON-Blöcke einrichtet, und im nächsten Artikel zeigen wir, wie man nach dem Einrichten der Verbindung Daten zwischen den SPS verschiebt. Offene Benutzerkommunikationsblöcke TCON und TDISCON Wir verwenden den TCON-Block, um eine Kommunikationsverbindung zwischen zwei SPS einzurichten und herzustellen. Sobald die Verbindung eingerichtet und hergestellt wurde, wird sie automatisch von der SPS aufrechterhalten. Beide Kommunikationspartner rufen die TCON-Anweisung auf, um die Kommunikationsverbindung einzurichten und herzustellen. Das bedeutet, dass ich den TCON-Block in beiden SPS aufrufen muss und wir den Block in beiden SPS konfigurieren müssen, wie wir im Beispielprojekt sehen werden. Während der Blockkonfiguration geben wir an, welcher Partner der aktive Kommunikationsendpunkt und welcher der passive ist. Das heißt, welche SPS versucht, eine Verbindung herzustellen, und welche öffnet einen Kommunikationsport und wartet auf die andere. Eine bestehende Verbindung wird beendet und die aufgebaute Verbindung entfernt, wenn der TDISCON-Block ausgeführt wird oder wenn die CPU in den STOP-Modus wechselt. Um die Verbindung erneut einzurichten und herzustellen, müssen Sie TCON erneut ausführen. Beispiel-SPS-Projekt mit TCON Wie wir bereits in früheren Artikeln erklärt haben, müssen wir zum Einrichten einer Kommunikation zwischen zwei SPSen zwei Dinge einrichten: Kommunikation zwischen den SPSen. Datenübertragung zwischen den beiden SPSen. In diesem Artikel richten wir mithilfe des TCON-Blocks eine offene Benutzerkommunikation mit TCP-Protokoll zwischen zwei SPSen ein. Im nächsten Artikel zeigen wir, wie Daten verschoben werden, nachdem die Verbindung hergestellt wurde. Lassen Sie uns zunächst ein neues Projekt erstellen und unsere beiden SPSen hinzufügen. Wir fügen die CPU1516-3PN/DP-SPS hinzu und nennen sie PLC_1 und PLC_2. Ziel ist es, eine Verbindung zwischen ihnen herzustellen. Siehe Bild 1. Bild 1. Fügen Sie PLC_1 und PLC_2 hinzu. Nun fügen wir einfach den TCON-Block in unsere SPS-Logik ein. Wie bereits erwähnt, müssen wir den TCON für beide SPS aufrufen. Beginnen wir mit PLC_1. Ziehen Sie einfach den TCON-Block, den Sie im geöffneten Ordner für die Benutzerkommunikation finden, per Drag & Drop. Siehe Bild 2. Bild 2. Ziehen Sie die TCON-Anweisung per Drag & Drop Der TCON-Block ist im Wesentlichen ein Funktionsblock. Wenn wir ihn also zu meinem Haupt-OB1 hinzufügen, werden wir aufgefordert, eine Datenblockinstanz für diesen Block zu erstellen. Erstellen Sie die Dateninstanz und geben Sie ihr einen geeigneten Namen. Siehe Bild 3. Bild 3. Dateninstanz erstellen. Jetzt wird der TCON-Block zu Ihrer Logik hinzugefügt. Wir müssen die Verbindungsparameter für den Block konfigurieren. Drücken Sie einfach auf das kleine blaue Konfigurationssymbol über dem Block. Siehe Bild 4. Bild 4. Konfigurationsansicht öffnen Wenn Sie auf das blaue Symbol drücken, öffnen Sie die Konfigurationsansicht für den TCON-Block, wo wir die Verbindungsparameter einrichten können. Sie finden sie ziemlich genau wie die Verbindungsparameter der PUT- und GET-Befehle. Siehe Bild 5. Bild 5. Verbindungsparameter von TCON. Die Partner-SPS-Optionen im TCON-Block haben mehr Optionen als die der PUT/GET-Befehle, da wir eine offene Benutzerkommunikation verwenden. Siehe Bild 6. Bild 6. Partner-SPS-Optionen Wie Sie auf dem Bild sehen können, haben wir 4 verschiedene Optionen, und zwar: SPS_2: Falls sich beide SPS im selben Projekt befinden, wird hier die SPS_2 angezeigt. Broadcast: Dadurch wird die Verbindung für jedes Gerät im Netzwerk verfügbar. Multicast: Dadurch wird die Verbindung mit ausgewählten Geräten hergestellt, mehr als einem Gerät, aber nicht allen. Nicht angegeben: Wenn sich die SPS in einem anderen TIA Portal-Projekt befindet. Wenn wir die nicht angegebene Option wählen, werden wir aufgefordert, die IP-Adresse der SPS hinzuzufügen und wir müssen auch neue Verbindungsdaten hinzufügen. Siehe Bild 7. Bild 7. Neue Verbindungsdaten hinzufügen Wie Sie auf dem Bild sehen können, klicken Sie zum Erstellen neuer Verbindungsdaten einfach auf den Dropdown-Pfeil und drücken Sie auf Neu. Dadurch wird ein neuer Verbindungsdatenblock erstellt und dieser wird automatisch dem TCON-Block zugewiesen, siehe Abbildung 8. Abbildung 8. Verbindungsdatenblock wird erstellt. Wie Sie sehen, wurde ein Verbindungsdatenblock erstellt. Jetzt muss ich die IP-Adresse der Partner-SPS hinzufügen. Außerdem müssen wir auswählen, welche SPS die aktive Verbindungsherstellung sein soll. Dadurch wird entschieden, welche SPS für die Herstellung der Verbindung verantwortlich ist, während die andere in diesem Fall nur für das Öffnen eines Verbindungsports verantwortlich ist. Siehe Bild 9. Bild 9. Weisen Sie PLC_1 als aktive Verbindungsherstellung zu. Da wir PLC_1 als aktive Verbindungsherstellung auswählen, ist PLC_2 für das Öffnen eines Verbindungsports verantwortlich, und ich muss einen Wert für diesen Port auswählen. Es kann jeder beliebige Wert sein, aber er wird im TIA Portal automatisch als 2000 zugewiesen, also lassen wir ihn so wie er ist. Siehe Bild 10. Bild 10. Partnerport. Sie können im vorherigen Bild sehen, dass der Verbindungsparameter grün geworden ist, was bedeutet, dass alle Konfigurationen abgeschlossen und akzeptiert sind. Wenn TCON verwendet wird, um eine Verbindung zwischen zwei SPSen herzustellen, müssen beide SPSen den TCON-Befehl aufrufen, um die Verbindung herzustellen. Daher müssen wir jetzt dasselbe mit der anderen SPS_2 tun. Fügen Sie den TCON-Block in den Haupt-OB1 von SPS_2 ein, siehe Abbildung 11. Abbildung 11. Rufen Sie TCON in SPS_2 auf. Nachdem wir den TCON-Block hinzugefügt haben, müssen wir die Verbindungsparameter wie bei SPS_1 konfigurieren. Siehe Abbildung 12. Abbildung 12. Verbindungsparameter von SPS_2 Sie können auf der Abbildung sehen, dass wir immer noch SPS_1 als aktive Verbindungsherstellung wählen und den Port von SPS_2 immer noch auf 2000 belassen. Die aktive Verbindungsherstellung und der Port müssen für die Konfiguration beider SPSen gleich sein, sonst schlägt die Verbindung fehl. Nun ist die Verbindungskonfiguration für beide SPS abgeschlossen, siehe Bild 13. Bild 13. TCON-Block in beiden SPS. Wie wir auf dem Bild sehen, müssen wir noch etwas tun, nämlich die REQ für beide SPS definieren. Wir haben AllowConnection für SPS_2 und StartConnection für SPS_1 erstellt. Siehe Bild 14. Bild 14. Definieren Sie die REQ-Signale. Die Verbindung zwischen zwei SPS ist nun hergestellt und läuft wie folgt ab: SPS_1 versucht, eine Verbindung mit SPS_2 herzustellen, wenn das REQ-Signal aktiv ist, aber das kann es nicht, bis SPS_2 die Verbindungsfunktion aktiviert, und das wird geschehen, wenn der TCON-Block von SPS_1 ein Signal bei REQ empfängt. Ein REQ-Signal ist für TCON von PLC_2 aktiv, um die Verbindung zu aktivieren (das bedeutet, dass PLC_2 Port 2000 öffnet und auf Verbindung wartet). Ein REQ-Signal ist für TCON von PLC_1 aktiv, um Verbindung zu starten (das ermöglicht PLC_1, eine Verbindung mit PLC_2 über Port 2000 herzustellen). PROJEKTSIMULATION Lassen Sie uns unser Projekt kompilieren und eine Simulation starten, um zu sehen, wie die Verbindung hergestellt wird. Um die Verbindung einer beliebigen PLC und auch zwischen den PLCs anzuzeigen, können Sie die Netzwerkansicht öffnen und die Registerkarte Verbindungen öffnen, um alle aktiven und hergestellten Verbindungen anzuzeigen. Siehe Abbildung 15. Abbildung 15. PLC_2 wartet auf Verbindung. Wenn das REQ True ist, ist PLC_2 für Verbindung geöffnet. Sie können sehen, dass der STATUS-Wert 7002 ist. Wenn Sie die Hilfe des TCON-Blocks überprüfen, bedeutet der Status 7002, dass auf Verbindung gewartet wird. Sie können im Bild aus der Netzwerkansicht auch sehen, dass PLC_2 auf eine Verbindung wartet. Wenn das REQ des PLC_1 TCON-Blocks wahr ist, versucht PLC_1, eine Verbindung mit PLC_2 herzustellen, und da PLC_2 bereits geöffnet ist und auf eine Verbindung wartet, kann PLC_1 eine Verbindung mit PLC_2 finden und herstellen. Siehe Bild 16. Bild 16. PLC_1 stellt eine Verbindung her. Beachten Sie, dass alle Verbindungen in der Netzwerkansicht jetzt grün sind, was auf eine gesunde und laufende Verbindung zwischen PLC_1 und PLC_2 hinweist. Wie bereits erwähnt, wird die Verbindung automatisch aufrechterhalten, sobald sie eingerichtet und hergestellt wurde. Selbst wenn die REQ-Signale also falsch werden, bleibt die Verbindung zwischen den beiden PLCs bestehen. Siehe Bild 17. Bild 17. Verbindung besteht noch. Wenn aber das Einschalten der REQ-Signale die Verbindung nicht trennt, wie kann ich sie dann trennen, wenn ich das möchte? Trennungsblock TDISCON Um die Verbindung zwischen den beiden SPSen zu trennen, können wir die SPS in den STOP-Modus versetzen, was während des laufenden Prozesses nicht praktikabel ist. Und wir können auch den Trennungsblock oder TDISCON verwenden. Um einen TDISCON-Block hinzuzufügen, ziehen Sie ihn einfach per Drag & Drop in Ihre Logik, siehe Bild 18. Bild 18. TDISCON-Block hinzufügen Wie Sie sehen, wird zum Hinzufügen eines TDISCON-Blocks eine Datenblockinstanz benötigt. Sobald der Block zu Ihrer Logik hinzugefügt wurde, müssen Sie nur noch die Verbindungs-ID zuweisen, die Sie trennen möchten, und Sie müssen auch ein REQ-Signal zuweisen, um die Verbindungsbeendigung zu starten. Siehe Bild 19. Bild 19. TDISCON-Block JETZT fügen wir einen TDISCON-Block in der anderen SPS hinzu, damit wir die Verbindung trennen können. Siehe Bild 20. Für den TDISCON-Block von SPS_1. Bild 20. TDISCON in SPS_1 Kehren wir zur Simulation zurück und sehen wir uns an, wie TDISCON-Blöcke verwendet werden, siehe Bild 21. Bild 21. Verbindung noch aktiv. Wie Sie auf dem Bild sehen können, ist die Verbindung zwischen den SPS noch aktiv, wobei die REQ-Signale des TDISCON noch falsch sind. Wenn das REQ von SPS_1 TRUE wird, wird die Verbindung beendet, aber Sie werden feststellen, dass SPS_2 noch auf die Verbindung wartet, siehe Bild 22. Bild 22. REQ von SPS_1 ist wahr. Wenn das REQ für den TDISCON-Block von SPS_2 wahr ist, wartet SPS_2 nicht mehr auf die Verbindung. Siehe Bild 23. Bild 23. Verbindung ist beendet. Wir haben in diesem Artikel gezeigt, wie man mit den TCON- und TDISCON-Blöcken eine Verbindung zwischen zwei SPS herstellt.
Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...