Jump to content
  • Sign in to follow this  

    Was ist ein Datenblock? Globale Datenblöcke in SPS

       (0 reviews)

    leikang

    Beim Programmieren einer SPS stehen verschiedene Blockstrukturen zur Verfügung. Dazu gehören Funktions-FCs, Funktionsblöcke FBs und Datenblöcke DBs. Diese Blöcke sind sehr praktische Tools, mit denen Sie Ihre SPS-Logik besser gestalten und Ihren Code lesbarer und einfacher nachvollziehbar und debuggbar machen können.

    In früheren Artikeln haben wir die FCs und FBs besprochen. In diesem Artikel werden wir die Datenblock-DBs besprechen, genauer gesagt den globalen Datenblock.

    Inhalt:

    • Was ist ein Datenblock-DB?
    • Typen von Datenblöcken.
    • Was ist ein globaler Datenblock?
    • Erstellen eines globalen Datenblocks?
    • Arbeiten mit globalen Datenblöcken.
    • Beispielsimulation.

    Was ist ein Datenblock?

    Ein Datenblock-DB ist ein Speicherbereich, der zum Speichern der Werte der Parameter verwendet wird, die während der Ausführung des SPS-Programms geschrieben werden.

    Im Gegensatz zum Codeblock enthält der Datenblock-DB nur Variablendeklarationen. Er hat keine Netzwerke oder Anweisungen wie ein FC oder ein FB. Die Struktur des DB wird dadurch definiert, wie viele Variablen Sie im Datenblock deklariert haben.

    Datenblocktypen in der SPS

    Es gibt zwei Arten von Datenblöcken:

    1. Globale Datenblöcke
    2. Instanzdatenblöcke
    3. ARRAY-Datenblöcke

    Globale Datenblöcke

    Wie der Name schon sagt, wird der globale Datenblock global für die gesamte SPS-Logik deklariert. Er ist keinem bestimmten Codeblock zugewiesen. Sie können von jedem Codeblock an beliebiger Stelle in Ihrer SPS-Logik auf die Werte eines globalen Datenblocks zugreifen. Ein globaler Datenblock enthält nur statische Tags.

    Die Struktur des globalen Datenblocks kann frei definiert werden. In der Deklarationstabelle für Datenblöcke deklarieren Sie die Datenelemente, die im globalen Datenblock enthalten sein sollen.

    Instanzdatenblöcke

    Der Instanzdatenblock wird direkt einem Funktionsblock-FB zugewiesen, unabhängig davon, ob dieser Funktionsblock intern in der SPS definiert ist, wie Timer und Zähler, oder ob es sich um benutzerdefinierte Funktionsblöcke (FBs) handelt.

    Die Struktur eines Instanzdatenblocks kann nicht frei definiert werden, sondern wird durch die Schnittstelle des Funktionsblocks bestimmt. Der Instanzdatenbaustein enthält genau die Bausteinparameter und Variablen, die in der Funktionsbausteinschnittstelle deklariert sind.

    Sie können im Instanzdatenbaustein jedoch instanzspezifische Werte definieren, z. B. Startwerte für die deklarierten Variablen.

    ARRAY-Datenbausteine

    ARRAY-Datenbausteine sind nur für S7-1500-CPUs verfügbar und sind globale Datenbausteine, die aus einem ARRAY bestehen. Dieses ARRAY kann auf einem beliebigen Datentyp basieren.

    Beispielsweise ist ein ARRAY eines PLC-Datentyps (UDT) möglich. Der DB enthält neben dem ARRAY keine anderen Elemente. Aufgrund ihrer flachen Struktur erleichtern ARRAY-Datenbausteine den Zugriff auf die ARRAY-Elemente und deren Übertragung an aufgerufene Bausteine.

    Der Abschnitt „Verschiebeoperationen“ der Task Card „Anweisungen“ bietet Möglichkeiten zur Adressierung von ARRAY-DBs.

    In diesem Artikel werden wir uns mit dem globalen Datenbaustein befassen und die anderen beiden Typen in separaten Artikeln besprechen.

    Was ist ein globaler Datenbaustein?

    Datenbausteine werden zum Speichern von SPS-Programmdaten verwendet. Das heißt, sie enthalten variable Daten, die vom Anwenderprogramm verwendet werden. Globale Datenbausteine speichern Daten, die von allen anderen Bausteinen verwendet werden können.

    Die maximale Größe von Datenbausteinen variiert je nach CPU. Die Struktur globaler Datenbausteine können Sie frei definieren.

    Sie haben auch die Möglichkeit, PLC-Datentypen (UDT) als Vorlage für die Erstellung globaler Datenbausteine zu verwenden.

    Jeder Funktionsbaustein FB, jede Funktion FC oder jeder Organisationsbaustein OB kann die Daten aus einem globalen Datenbaustein lesen oder selbst Daten in einen globalen Datenbaustein schreiben. Diese Daten bleiben auch nach Verlassen des Datenbausteins im Datenbaustein erhalten. Siehe Bild 1.

    149-1.gif

    Bild 1 – Zugriff auf globalen Datenbaustein

    Wie Sie dem vorherigen Bild entnehmen können, kann auf einen globalen Datenbaustein von jedem Codebaustein innerhalb des SPS-Programms aus zugegriffen werden, während auf den Instanzdatenbaustein nur der zugehörige Funktionsbaustein zugreifen kann.

    Erstellen eines globalen Datenbausteins

    Sie erstellen einen globalen Datenbaustein auf die gleiche Weise wie einen Funktions-FC oder einen Funktionsbaustein FB. Fügen Sie Ihrem Projektbaum einen neuen Block hinzu. Siehe Abbildung 2.

    149-2.gif

    Abbildung 2 – Erstellen eines globalen Datenblocks

    Lassen Sie uns einige Variablen im globalen Datenblock deklarieren.

    Klicken Sie dazu auf „Neu hinzufügen“ unter „Name“, schreiben Sie den gewünschten Variablennamen und wählen Sie dann den Variablendatentyp aus. Siehe Abbildung 3.

    149-3.gif

    Abbildung 3 – Variablendeklaration in einem globalen Datenblock

    Arbeiten mit einem globalen Datenblock

    • Deklarieren eines Tags.

    Wir haben bereits in Abbildung 3 gezeigt, wie man ein Tag/eine Variable deklariert.

    • Definieren eines Startwerts

    Der Startwert eines Tags ist ein von Ihnen definierter Wert, den das Tag nach einem CPU-Start annimmt. Der Wert muss dem Datentyp des Tags entsprechen und sollte den Bereich des Datentyps nicht überschreiten. Siehe Abbildung 4.

    Das Tag nimmt beim Start den definierten Wert an, sofern es nicht als remanent deklariert wurde.

    149-4.gif

    Bild 4 – Definieren des Startwerts Ihrer Tags

    Wenn ich also den Startwert von Tank1Level auf einen beliebigen Wert ungleich Null setze, wird dieser Wert beim nächsten Neustart der SPS angewendet. Siehe Abbildung 5.

    149-5.gif

    Abbildung 5 – Definieren eines Startwerts für Ihre Variablen

    • Beibehalten von Variablen in globalen Datenbausteinen

    Um Datenverlust bei einem Stromausfall zu verhindern, können Sie die Daten als remanent markieren. Diese Daten werden in einem remanenten Speicherbereich gespeichert.

    Die Optionen zum Einstellen des Retains hängen von der Art des Datenbausteins und der Art des eingestellten Bausteinzugriffs ab. Siehe Abbildung 6.

    149-6.gif

    Abbildung 6 – Beibehaltungsoption in globalen Datenbausteinen

    Wie Sie in Abbildung 6 sehen, ist die Variable Tank2Level auf einen Retain-Wert eingestellt, was bedeutet, dass selbst wenn die SPS angehalten hat oder es einen Stromausfall gab, Tank2Level dieselben Daten gespeichert hat, wenn die SPS wieder eingeschaltet wird. Es wird nicht auf den Startwert zurückgesetzt.

    • Zugriff auf/von HMI

    In einem globalen Datenblock können Sie festlegen, ob eine Variable in den HMI-Tag-Tabellen sichtbar sein kann oder nicht. Sie können auch festlegen, ob diese Variable vom HMI gelesen oder geschrieben werden kann. Siehe Abbildung 7.

    149-7.gif

    Abbildung 7 – Zugriff vom HMI

    Die Standardeinstellung für jede deklarierte Variable in einem globalen Datenblock ist, dass sie vom HMI aus aufgerufen, gelesen und geschrieben werden kann. Wenn Sie diese Funktion für eine bestimmte Variable deaktivieren möchten, müssen Sie die Zugriffsoption für diese Variable deaktivieren.

    Beispielsimulation

    Bisher haben wir einen globalen Datenblock erstellt und einige Variablen darin deklariert.

    Jetzt werden wir versuchen, eine Simulation des Programms auszuführen und zu sehen, ob wir besser verstehen können, was ein globaler Datenblock ist.

    Nachfolgend sind zwei SPS-Simulationen aufgeführt.

    Testen der Startwerte einer Variablen

    Sehen Sie sich die folgende Animation an, die den Startwert einer Variablen in einem globalen Datenblock erklärt.

    spacer.png

    Animation 1

    Animation 1 Erklärung:

    1. Die Startwerte der Tankfüllstandsparameter sind Null, Sie können im Video sehen, dass sie durch den Simulationsbildschirm geändert werden.
    2. Wenn die SPS neu gestartet, aus- und wieder eingeschaltet wird, sehen Sie, dass die Werte auf die Startwerte zurückgesetzt werden, die Null sind.
    3. Danach wurden die Startwerte auf 500, 32654 bzw. -356 geändert, und beim Neustart der SPS wurden die Werte auf die neuen Startwerte geändert.
    4. Beachten Sie, dass wir beim Ändern der Startwerte unsere Logik erneut auf die SPS herunterladen mussten; Sie müssen das jedes Mal tun, wenn Sie eine Änderung an Ihrer Logik vornehmen.

    Testen der Beibehaltungsoption von Variablen in der globalen Datenbank

    Sehen Sie sich die folgende Animation an, die die Beibehaltungsoption einer Variablen in einem globalen Datenblock erklärt.

    spacer.png

    Animation 2

    Animation 2 Erklärung:

    1. Zuerst werden Sie feststellen, dass die Eigenschaft „Retain“ von Tank2Level jetzt aktiv ist.
    2. Sie sehen im Video, wie die Werte der 3 Tanks geändert werden.
    3. Wenn die SPS angehalten und dann wieder gestartet wird, werden Tank1Level und Tank3Level auf den Startwert 0 zurückgesetzt, aber Tank2Level behält seinen Wert von -22938.

    Fazit

    Auf einen globalen Datenblock kann von überall und von jedem Block aus zugegriffen werden, der im SPS-Programm vorhanden ist. Sie können in einer globalen Datenbank so viele Variablen deklarieren, wie Sie möchten.

    Die bewährte Vorgehensweise besteht darin, separate Datenblöcke für die verschiedenen Abschnitte Ihrer Logik zu erstellen, damit Ihre Logik sehr einfach zu befolgen ist. Beispielsweise ein separater Datenblock für alle Variablen, die von einer HMI gelesen oder geschrieben werden müssen.

    Sign in to follow this  


    User Feedback

    Create an account or sign in to leave a review

    You need to be a member in order to leave a review

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    There are no reviews to display.


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