Existiert eine Entsprechung/Bibliothek für den AT-Operator aus SCL in CodeSys?

StanS

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen zusammen,

ich soll gerade einen Baustein aus der Sprache in SCL in ST in CodeSyS überführen. Hierbei sind mehrere Variablen mit Hilfe des AT-Operators aus der TIA-Welt Überlagert (siehe https://support.industry.siemens.co...len-mit-dem-schlüsselwort-at-?dti=0&lc=de-WW).

Ich bin recht neu in der Welt des SPS-Programmierung und habe daher kaum Erfahrung. Weiß vielleicht jemand von euch, ob es eine Entsprechung dazu gibt, habe bisher leider noch nichts außer dem "harten"-programmiertechnischen Weg gefunden.

Viele Grüße
Stan
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich es richtig verstanden habe, dann besitzen die Operatoren AT nicht die selbe Funktionalität.

Bei CodeSyS handelt es sich beim AT-Operator, laut Online-Hilfe um "Das Schlüsselwort AT weist in der Variablendeklaration eine Projektvariable einer bestimmten Eingabe-, Ausgabe- oder Speicheradresse der im Gerätebaum konfigurierten Steuerung zu." Also : Zuweisen einer Speicheradresse.

Bei SCL geht es um "
Um auf Datenbereiche innerhalb einer deklarierten Variablen zuzugreifen, können Sie die deklarierten Variablen mit einer weiteren Deklaration überlagern. Sie haben so die Möglichkeit, eine bereits deklarierte Variable mit einem anderen Datentyp anzusprechen. Sie können z. B. die einzelnen Bits einer Variablen vom Datentyp WORD mit einem ARRAY of BOOL ansprechen.". Also auf die selbe Variable über verschiedene Datentypen zugreifen.

Daher wenn ich das richtig verstehe, sollte Union eher dem AT aus SCL entsprechen.

("
Ein UNION ist eine Datenstruktur, die meist unterschiedliche Datentypen enthält. In einer Union haben alle Komponenten den gleichen Offset, wodurch sie denselben Speicherplatz belegen. In der folgenden Beispieldeklaration einer Union würde also eine Zuweisung auf name.a auch name.b betreffen.")

Das Wiederholen und Niederschreiben half meinem Verständnis. Danke für die Hilfe!
VG
Stan

 
Ich glaube den Codesys Beschreibung ist nicht richtig.
AT ergibt ein alternativen "Sicht" auf ein bestehende Datenstruktur - aka "Überlagerung" wie du schreibst.
Den Siemens Beschreibung stimmt.

Gibt es ein Beispiel von AT in Codesys ?
 
Stimmt schon so wie der TE geschrieben hat. Mit AT kann man in CodeSys nur Variablen auf bestimmte I/Q/M-Speicheradressen legen. Für eine alternative Sicht auf eine Variable gibt es die Unions, allerdings erst in CodeSys 3.
 
Wenn Codesys 2.3 und UNION nicht verfügbar könnte man evtl. mit MemCopy auf eine entsprechende Struktur umkopieren, evtl. am Ende wieder zurück.
Hab ich selbst so noch nicht probiert, nur mal zur Anregung.
 
Zurück
Oben