Bit im Array

Programmiersprache?

In SCL ne Schleife über das Array und wenn entsprechendes Bit = 0, dann Zähler eins dazu.
In AWL ne Loop und rest genauso

MfG
 
Um sicher zu gehen - Du willst nicht wissen, ob ein spezielles Bit Deines Bool-Arrays 0 oder 1 ist, sondern ob auf dieses Element des Arrays irgendwo in Deinem Programm zugegriffen wird oder ob es noch nie im Programm verwendet wurde?
 
Genau.

Also es handelt sich um einen Störmelde DB. Und da möchte ich Meldungen nachpflegen. Dazu benötige ich noch freie Bits in dem Array....
Ob die Bits 1 oder 0 sind kann ich nicht prüfen, da im Normalfall alles 0 ist

mfg
DerMatze
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich vermute also mal, es geht nur um das suchen mit Step7, nicht um ein suchen mit dem SPS-Programm selbst.
Du kannst absolut suchen. Wenn dein DB z.Bsp. der DB55 ist, dann kannst du nach DB55.DBD8 suchen, was dann 32 bit bzw. 4 Byte sind. Wenn du das über "Gehe zur Verwendungstelle" machst, hast du in dem Dialog unten ein Fenster "Überlappender Zugriff auf Speicherbereiche". Wenn du dort einen Haken setzt, zeigt er dir auch alle Bitzugriffe an.
 
Allerdings gilt hier wie auch ansonsten immer:

Indirekte Zugriffe werden nicht erkannt. Wird über Pointer (z.B. S [AR1, #P0.2]) adressiert ist nur mehr eine mühsame Codeanalyse zielführend.
 
Symbolische Adressierung im Instanzbaustein selbst werden auch nicht erkannt.

Im Bausteinordner unter Extra->Referenzdaten anzeigen->Querverweise kann man auch einen Filter für den DB bzw. Merkerbereich machen, hier kann man auch noch die Zugriffsart an- bzw. abwählen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich vermute also mal, es geht nur um das suchen mit Step7, nicht um ein suchen mit dem SPS-Programm selbst.
Du kannst absolut suchen. Wenn dein DB z.Bsp. der DB55 ist, dann kannst du nach DB55.DBD8 suchen, was dann 32 bit bzw. 4 Byte sind. Wenn du das über "Gehe zur Verwendungstelle" machst, hast du in dem Dialog unten ein Fenster "Überlappender Zugriff auf Speicherbereiche". Wenn du dort einen Haken setzt, zeigt er dir auch alle Bitzugriffe an.

Selbst verwendete Bits werden nicht über diese Suche angezeigt?!
 
Selbst verwendete Bits werden nicht über diese Suche angezeigt?!

Bits, die absolut oder symbolisch adressiert sind werden angezeigt.
Wenn irgendwo steht

AUF DB55

U...
S DBX100.0,

kann man auch nicht nach DB55.DBD100 suchen, man kann aber nur DBD100 in die Suchmaske eingeben, bekommt dann aber leider auch keine Bits mehr angezeigt. Indirekte Adressierung, wie von anderen hier schon erwähnt, wird ebenfalls nicht gefunden.

Es werden also nur sie wirklich qualifizierten Verwendungen wie DB55.DBX100.0 oder deren Symbolische Schreibweise, so diese komplett angelegt wurde gefunden.
 
Zurück
Oben