TIA V12 - STRUCT nach INT kopieren

mnuesser

Level-1
Beiträge
1.022
Reaktionspunkte
165
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe mir in einem FB-Baustein ein STRUCT im STAT von 16 Bits aufgebaut.

In Step7 bin ich dann später hingegangen und habe per MOVE dieses STRUCT auf
ein INT kopiert, dieses habe ich dann als OUT rausgeführt. Dient eigentlich nur zum beobachten.

Wenn ich dies nun bei TIA machen möchte, meckert er dass er STRUCT nur auf STRUCT kopieren kann.
Gibts da jetzt noch eine schönere Lösung als alles von Hand per Addierung nachzubilden?
 
Slice Zugriffe auf INT

Ich würde mal behaupten, daß diese neuen Slice-Zugriffe für S7-1200/1500 NICHT mit INT gehen, sondern nur mit Byte, Word, Doppelword.
ne harald, bei mir geht das sogar sehr gut :)
Dieser für S7-1200/1500 neue Slice-Bitzugriff auf INT-Variablen hat mir keine Ruhe gelassen ... ich wollte die original Siemens Dokumentation dazu sehen.

Zunächst der schon länger existierende Online Support FAQ:
Wie können Sie in STEP 7 V11 bit-, byte- oder wortweise und symbolisch auf die unstrukturierten Datentypen zugreifen?
Beitrags-ID: 57374718 Datum: 2011-12-21 schrieb:
Bei den S7-1200 Baugruppen (ab FW V2.0) haben Sie die Möglichkeit, bitweise auf Variablen vom Datentyp Byte, Word oder DWord zuzugreifen.
[...]
Nachfolgendes Beispiel zeigt den bitweisen symbolischen Slice-Zugriff. Das "x" steht für den bitweisen Zugriff in dem jeweiligen Wort oder Byte und die Nummer dahinter gibt den Offset des betreffenden Bits aus.

Bild 03 zeigt ein Beispiel für den byteweisen Slice-Zugriff. Hier steht das "b" für den byteweisen Zugriff und die Nummer gibt den Offset des betreffenden Byte aus.

Beim wortweisen Slice-Zugriff wird das "w" angegeben und die Nummer gibt den Offset des betreffenden Wortes aus.
Die Aufzählung der möglichen Variablen-Datentypen enthält keine Ganzzahl-Datentypen. Nichts woraus man schließen könnte, daß es auch mit INT möglich ist.
Allerdings enthält dieser FAQ den irreführenden Begriff Offset. Mit Offset ist hier aber kein Versatz im Sinne von Adressberechnungen gemeint! Das wäre nämlich falsch (weil Big-Endian). Die Nummer gibt einfach nur die Nummer des Items in der Variable an, wobei die Nummer 0 für das niederwertigste Item steht. Zum höchstwertigsten Item wird einfach aufsteigend durchnummeriert.


Und was sagt das vom TIA Portal mitinstallierte Informationssystem?
(Es war/ist nicht einfach, die diesbezügliche Beschreibung im TIA Informationssystem zu finden, selbst wenn man eigentlich weiß was man sucht.)
Informationssystem TIA Portal V11 SP2 Update 4 schrieb:
Einzelne Bits einer Variablen adressieren

Sie haben die Möglichkeit, gezielt Bereiche innerhalb deklarierter Variablen zu adressieren. Dabei können Sie auf Bereiche der Breiten 1 Bit, 8 Bit oder 16 Bit zugreifen.
[...]
Die Variable muss vom Datentyp "Bitfolge" sein. Bei aktivierter IEC-Prüfung ist auch der Zugriff auf Variablen des Datentyps "Ganzzahl" möglich.
Die von mir rot markierte Aussage ist selbstverständlich falsch!.
Nur wenn die IEC-Prüfung NICHT aktiviert ist, dann ist dieser Zugriff auf Ganzzahl-Variablen erlaubt. Wie man sehr leicht nachprüfen kann.

Wird die IEC-Prüfung für den Baustein aktiviert, dann ergibt ein Slice-Zugriff folgende Fehlermeldung beim Übersetzen (original Meldung kopiert!):
Netzwerk 1,Unzulässiger Peripehriezugriff x0 für "test_INT_Var".x0.,1,0,11:56:06
Hilfe zur Meldung 604:4509 schrieb:
Der direkte Zugriff auf die Peripherie mit :p unterliegt folgenden Einschränkungen:
  • Der Zugriff darf nur für Ein- und Ausgänge verwendet werden.
  • Der Zugriff ist nicht für S7-300/400 zulässig.
:ROFLMAO: Ohh Mann Siemens, wer schreibt bloß Eure Dokumentationen? :sad:

Ohne gezielt zu suchen, findet man einfach zu viele falsche, fehlerhafte oder unverständliche Beschreibungen.
Und welcher Smartphone-Fuzzi oder Designer hat Euch eingeredet, daß man im Hilfesystem keinen [Zurück]-Button mehr braucht? (Backspace funktioniert "noch")

Harald
 

Anhänge

  • TIA11_Slice.JPG
    TIA11_Slice.JPG
    244,4 KB · Aufrufe: 156
Zuletzt bearbeitet:
Zurück
Oben