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
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.
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