Bits zuweisen

Fabian

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

muß derzeit hunderte verschiedene Werte vergleichen und wenn einer gleich ist,soll eine Message anliegen.Das mit den Vergleichen hat bisher ganz gut funktioniert und das mit der Meldung geht auch schon soweit.
Würde die Auswertung aber noch gerne vereinfachen.
Derzeit Frage ich immer ab, in welchen Step ich bin und setze dann dementsprechend meine Meldung.

Beispiel Fehlerdiagnose:Step2,4,6,8,usw... (=> Int +2 für Pointer)


L 2
L step_counter
==I
spbn xx
set
s dix 0.0
die oben genannte Abfrage wird natürlich nur bearbeitet sobald ein negativer Vergleich vorhanden war...

leider ist das nicht so elegant.Wäre super wenn mir jemand einen Tip geben könnte,wie man das Ganze mit weniger Aufwand machen könnte...

LG Fabi
 
Hallo Fabian,

hilft dir der Sprungverteiler SPL weiter? Für mich ist es aus diesem AWL-Schnipsel nicht ersichtlich.

spsfreak12345
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, vielleicht meint er, vereinfachen, dass er nicht hundert Netzwerke zum vergleichen hat.
Dann wäre es evtl sinnvoll sich mal über pointer zu informieren.

Ansonsten, bitte klarer ausdrücken.
 
Code:
//LOOP-Programmschleife über Messwerte laufen lassen
L #AnzahlMesswerte

NEXT: T Step_Counter
...
Messwerte vergleichen
...
SPB OUT  //raus aus Schleife, wenn gleicher Messwert gefunden

L Step_Counter
LOOP NEXT  //Schleife fortsetzen

SPA ENDE

//Sprungleiste mit Sprungzielen aus Schleifenzähler
OUT: L Step_Counter  //Schleifenzähler = Sprungziel
SPL ENDE
SPA M001
SPA M002
...
SPA ENDE

//Sprungziele zum Meldungen generieren
M001: ... //Meldung 1 generieren
...
SPA ENDE

M002: ... //Meldung 2 generieren
...
SPA ENDE
...


ENDE: NOP 1

1. Ansatz aus dem Gedächtnis:

- mit LOOP eine Programmschleife aufbauen und über die Messwerte laufen lassen
- die Schleife verlassen, wenn dein Messwert-Vergleich zutrifft
- mit dem Schleifenzähler die Sprungleiste bearbeiten
- den Schleifenzähler benutzt du als Sprungziel
- wenn in der Schleife kein Vergleich zutrifft, wird zum ENDE gesprungen (die SPL wird dann nicht bearbeitet)
 
danke für Eure antworten...

Hab die Abfragen natürlich schon mit Pointer durchgeführt...da es aber viele verschiedene Fächer sind mit jeweils hunderten darunter abgelegten Werten muss ich ja die verschiedenen Vergleiche auch noch analysieren.
Das mit der Sprungleiste hab ich auch soweit schon umgesetzt war nur schlecht von mir erklärt.

Nochmal ein Beispiel:
Könnte man die Auswertung wie unten beschrieben mit einem Schiebebefehl umzusetzen:
Beispiel :
“2“ => Bit0
“4“ => Bit1
“6“ => Bit2
“8“ => Bit3 usw…

würde damit gerne immer ein DW auswerten wollen und die entsprechenden Bist setzen...derzeit springe ich immer je nach Pointer und vergleich in das jeweilige Sprungziel.Durch die angedachte Variante würde ich nur noch einmal abfragen müssen und demensprechend schieben...
 
Zurück
Oben