TIA STRUCT- bzw. ARRAY- Datentyp ... Nachhilfe

Krümi

Level-1
Beiträge
18
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich benötige mal bitte eine kurze Nachhilfe für das Anlegen und Verwenden, also weiterverarbeiten einer STRUCT bzw. ARRAY Variable.

Ich möchte mir eine immer wiederkehrende Variable für einen Antrieb anlegen:

Der Antrieb hat beispielsweise Endlagen- und Drehmomentschalter für "AUF" und "ZU" sowie eine Analoge Stellungsrückmeldung, er wird über die Taster "AUF" / "HALT" / "ZU" angesteuert und die entsprechenden Endlagen werden über die Leuchtdrucktaster ausgegeben.

Wie würde der Programmteil für diese beispielhafte Steuerung unter Verwendung eines "STRUCT`s" sinnvoll aussehen? Wie wird diese Variable angelegt und im Steuerungsprogramm verwendet? ... Über ein Programmbeispiel von euch würde ich mich sehr freuen!
Was ist der Unterschied zum "ARRAY"?


Vielen Dank!
Sebastian!
 
Ich hab mal eine kleine Demo erstellt. Ich hoffe das hilft dir weiter.

Der Unterschied zum Array besteht wohl in der Einfachheit. Du kannst Structs ganz einfach per Dot-Notation einbinden,sie sind leicht zu erstellen und du kannst dutzende Variabeln mit dem selben Struct definieren. Du erhälst bei der Eingabe zusätzlich noch eine Unterstützende List die die definierten Structs dieser Variable auflistet (einfach mal in der Demo einen neuen Eingang erstellen und nur "Antrieb1." eingeben).

Ich muss aber ehrlich sagen dass ich bis jetzt selten mit Arrays gearbeitet hab, ich glaube die anderen können dahingehend die Unterschiede besser aufzeigen.

Ich hoffe ich konnte helfen.
 

Anhänge

  • STRUCT-Demo.zip
    39,2 KB · Aufrufe: 66
Zuviel Werbung?
-> Hier kostenlos registrieren
Grundlegender Unterschied ist für mich das ein STRUCT aus verschiedenen Datentypen bestehen kann und ein ARRAY eigentlich nur aus einem.
Wir nutzen z.B. ein STRUCT um einen bestimmten Anlagenteil zu beschreiben. Als Beispiel einen Motor. Der hat dann z.B. An/Aus als BOOL Solldrehzahl und Istdrehzahl als INT. Wenn ich nun 100 Motoren von diesem Typ hab dann könnte ich mir ein ARRAY von diesem STRUCT anlegen und hätte gleich alles fertig. Ich hoffe das war verständlich.
 
Hallo nochmal - und Vielen Dank für eure Antworten!

Der Sinn ist mir nun um einiges klarer geworden.
Hat vielleicht trotz allem noch jemand die Zeit, ein kleines Demoprogramm im Tia zu erstellen, um die Anwendung des ganzen in der Praxis noch etwas mehr zu verdeutlichen!?
Ich verstehe noch nicht ganz, wenn ich z.B. einen STRUCT als PLC-Datentyp angelegt habe, wo und besonders wie ich dieses, -ich nenne es mal- Variablenpaket, dann an meinen Funktionsbausteinen, in welchem sich mein eigentliches Steuerungsprogramm für meinen Motor / Antrieb befindet, "angeschlossen" wird.

Danke, Gruss Sebastian!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Beispiele sagen mehr als tausend Worte:D
Im Datenbaustein1 ist das Array für die Ansteuerung von 101 Motoren, dass aus verschiedenen selbst erstellten Datentypen (Structs) besteht.
 

Anhänge

  • StructArray.zip
    1,7 MB · Aufrufe: 57
Dazu habe ich eine Frage. Ich will einen Umrichter über Profibus ansteuern.

Der Umrichter erwartet ein Steuerwort und einen Drehzahl-Sollwert. Zurück bekomme ich ein Statuswort und verschiedene andere Werte.
Ich kann nun zwei PLC-Datentypen mit den entsprechenden Strukturen zum lesen/schreiben anlegen.

Bei TIA sollte ja alles optimiert und symbolisch sein. Nun will ich also meine PLC-Datentypen SO über Profibus an den Umrichter übertragen, dass die Größen auch genau in der richtigen Reihenfolge ankommen bzw. ich diese empfange.

Geht das bei TIA mit optimierten Bausteinen?
Bisher nutze ich SFC14/15 zum senden/empfangen. Muss ich jetzt andere Bausteine nutzen?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Beispiele sagen mehr als tausend Worte:grin:
Im Datenbaustein1 ist das Array für die Ansteuerung von 101 Motoren, dass aus verschiedenen selbst erstellten Datentypen (Structs) besteht.

Hallo Honeytbone!

Ich danke herzlichst Dir für Deine Mühe!

Jedoch stehe ich bei diesem Thema irgendwie mächtig auf dem Schlauch. Ich kann mir die Vorteile dieser Programmierweise für meine Anwendung noch nicht so richtig ableiten.:confused:
Mir würde es glaub helfen, wenn Du dein Beispiel, um die SPS- Ein- und Ausgangsvariablen und um ein stückchen Anwenderprogramm, in beispielsweise einem FB erweiterst. So das die Verschaltung der Variablen erkenntlich wird.

Sorry für den Stress aufgrund meines scheinbarem Halbwissens! :rolleyes:
 
Zurück
Oben