S7 1200 - Zugriff auf einzelnes Bit eines Lokaldatenbytes

bazooqa

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

ich habe im Siemensforum die gleiche Frage gestellt, aber bisher keine Antwort bekommen. Vielleicht habe ich hier mehr Glück :D

Gegeben ist Step7 Basic SP2 sowie eine S7-1200 CPU 1214C. Wie kann ich bitweise auf ein Lokaldatenbyte zugreifen? Konkret habe ich im Static-Bereich eines FBs ein Byte deklariert, in dem ich einzelne Bits ändern muss. Anscheinend kann ich die Lokaldaten nur symbolisch adressieren, oder habe ich irgendetwas übersehen?

Vielen Dank im Voraus!
 
So, zwischenzeitlich habe ich eine kompetente aber leider nicht ganz zufriedenstellende Antwort im Siemens-Forum bekommen. :D

Die einzige Möglichkeit besteht nämlich darin, den Umweg über den Instanzdatenbaustein zu gehen. :-| Beim Erstellen des FBs muss dafür das Häkchen bei "Nur symbolisch adressieren" entfernt werden.

Naja - morgen mal schauen, ob das praktikabel ist...
 
Habe mir für solche Fälle einen FC gebaut der mir aus einem byte ein Array of bool für 8 Bit macht.innerhalb des aufrufenden Bausteines kann man dann auf die Einzelnen
Array-Elemente Zugreifen.Funzt aber erst ab SP 2.

Wandlerbaustein siehe Anhang
 

Anhänge

  • Byte nach Array Bool 1.JPG
    Byte nach Array Bool 1.JPG
    57,9 KB · Aufrufe: 148
  • Byte nach Array Bool 2.JPG
    Byte nach Array Bool 2.JPG
    52,1 KB · Aufrufe: 132
Zuviel Werbung?
-> Hier kostenlos registrieren
*stöhn*
Das Siemens es nicht eleganter gelöst hat ist enttäuschend.

Bei AB ControlLogix kann alle INT und DINT Strukturen auf den bit-level direkt zugegriffen werden.
Z.B. bit 2 in MyData.MyDint ist MyData.MyDint.2
Einfach, nicht ?

Wenn man denkt daran das S7-1200 soll erste Aufgabe von den nächste S7 Generation sein, dann hoffe ich das es wird besser in die Zukunft.
 
Also, diese Einschränkung ist ein Bestandteil von IEC601131-3 ?
Aber RSLogix 5000 ist auch "IEC601131-3 Konform".
Ist das auch so bei CoDeSys und Twincat ?

Egal, ich will "einfach, elegant, flexibel" und nicht "kompliziert, grob, eingeschränkt". Ist das zu hohe Erwartungen ?
 
Bei AB ControlLogix kann alle INT und DINT Strukturen auf den bit-level direkt zugegriffen werden.
Z.B. bit 2 in MyData.MyDint ist MyData.MyDint.2
Einfach, nicht ?

Und genauso ist es auch in CoDeSys.
Die IEC 61131-3 verbietet einem im übrigen nicht, über den Standard hinauszugehen. Wenn man eine Funktionalität nicht anbietet, dann ist der Standard jedenfalls nicht daran schuld.
In der nächsten Ausgabe der Norm wird übrigens ein Bitoperator enthalten sein.
 
Zurück
Oben