TIA Array of Word. Mehr als ein Wort = 16#0001

SPSnewbie91

Level-2
Beiträge
186
Reaktionspunkte
10
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen.

CPU: 1516F-3 PN/DP
TIA: V18

Ich habe folgende Situation. Ich erhalte von einem Leitsystem die Freigabe zur Betätigung eines Fußtasters. Der Fußtaster kann entweder "kurz" oder "lang" gedrückt werden. Die Definition was lang u kurz ist spielt hier keine Rolle. Ich bekomme nur die Freigabe, dass der Bediener den Taster kurz oder lang drücken darf. Hierfür habe ich ein Array [1..16] of Word. Ist für diesen Anwendungsfall zu hoch dimensioniert, aber da ich die Information vom Leitsystem erhalte und diese ihre Bausteine sicherlich nicht anpassen muss ich mein Array ebenfalls so definieren. Das Array heißt TAMPE. Erhalte ich auf TAMPE [1] das Bitmuster 16#0001 so ist die Freigabe für einen kurzen Tastendruck gegeben. Auf TAMPE [2] das selbe Bitmuster steht für den langen Tastendruck. Nun möchte ich eine Störmeldung ausgeben, falls ich, aus irgendwelchen Gründen, auf TAMPE [1] und [2] oder vllt sogar auf [14] oder ähnliches das Bitmuster 16#0001 erhalte. Sprich es darf nur eine TAMPE 16#0001 haben u die restlichen 16#0000. Gibt es eine Möglichkeit das Array of Word abzufragen, ob mehr als eine TAMPE das Bitmuster 16#0001 hat?

1702896935784.png
Danke schon Mal für die Hilfe.

Gruß
SPSnewbie91
 
Mal quick and dirty am Handy:
Code:
VAR_TEMP
    i : INT;
    count : INT;
END_VAR;

VAR;
    mehrAlsEiner : BOOL;
END_VAR;

count := 0;
mehrAlsEiner := FALSE;

FOR i := 1 TO 15 DO
    IF Tampe[i] = W16#0001 THEN
        count := count + 1;
    END_IF;

    IF count > 1 THEN
        mehrAlsEiner := TRUE;
        EXIT;
    END_IF;
END_FOR;
 
Zuletzt bearbeitet:
Zurück
Oben