absoluter Zugriff auf einzelne Bits (S7-1200)

zloyduh

Level-1
Beiträge
226
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, wie kann ich auf einzelne Bits eines DB´s bei einer S7-1200 zugreifen?

Wenn ich z.B. folgendes eingebe DB126.DBX1.0 bekomme ich eine Meldung
"Absolute Zugriffe auf Daten sind in Bausteinen mit optimiertem Zugriff nicht zulässig"

Obwohl ich bei der erstellung des FC Bausteins das Häckchen absoluter Zugriff abgewäht habe.
Was kann das sein?
Ist der zugriff auf Daten bei einer S7-1200 anders als bei einer 300er?

Kann mir jemand da weiter helfen???
 

Anhänge

  • Meldung.jpg
    Meldung.jpg
    65,5 KB · Aufrufe: 93
  • DB.jpg
    DB.jpg
    100,3 KB · Aufrufe: 103
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist der zugriff auf Daten bei einer S7-1200 anders als bei einer 300er?
Ja, ein bisschen.
Du hast das Word ja schon als Array deklariert, wenn das Bild zu der Variable passt.
In deinem Fall müsste das Bit heißen:
err.err[8]
Und falls meine Aussage so stimmt, hoffe ich du verwendest in Zukunft (für die "nach Dir Welt") ein bisschen aussagekräftigere Symbolik / Kommentare.
 
Zuletzt bearbeitet:
Ich schätze mal der DB ist symbolisch, dann gehen da keine absoluten Zugriffe mehr drauf (die Adressen der Vars werden ja vom Compiler erst beim übersetzten vergeben).

Ich verstehe nur nicht ganz was zloyduh mit dem Array machen möchte. Entweder er hat es falsch deklariert => das Array ist ein Feld von 16 Wörtern und kein Bitarray aus 16Bit (WORD) oder er nutzt es falsch.
War es wirklich angedacht auf das 8 Bit im 1. Wort des Arrays zu zugreifen? Quasi err.err[0] := 512 ?

Gibts bei Siemens keine Möglichkeit bei symbolisch erstellten Bitarrays einzelne Bits zu setzen ?
(Codesys/Twincat: Byte.0 ... Byte.7 bzw. Word.0 ... Word.15)
 
Ich verstehe nur nicht ganz was zloyduh mit dem Array machen möchte. Entweder er hat es falsch deklariert => das Array ist ein Feld von 16 Wörtern und kein Bitarray aus 16Bit (WORD) oder er nutzt es falsch.
Stimmt, ist ein Wordarray, habe ich übersehen.
Gibts bei Siemens keine Möglichkeit bei symbolisch erstellten Bitarrays einzelne Bits zu setzen ?
Doch, aber (wie du schon erkannt hast) er hat es ja als Wordarray deklariert.
Und das ist der kleine Unterschied zu Step7 klassig, da ging es trotzdem.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Hilfe,

Das Word Array wird bei mir als Trigger-Variable für HMI-Meldungen benutzt...

Habe den Fehler gefunden: Der DB war falsch konfiguriert:: :razz:
 
Hatte bei der Erstellung des DB´s das häckchen "Optimierter zugriff" nicht abgewählt.
Dieses muss abgewählt werden!

:s11:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn man den DB mit der rechten Maustaste anklickt, kann man das in den Eigenschaften des DBs auch nachträglich ändern. Danach sollte man aber vorsichtsdhalber neu übersetzen und landen.
 
Zurück
Oben