RSLogix5000 Kontaktplan Ausdruck negieren

Dariusum

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

bei der Frage werden wohl die meisten den Kopf schütteln aber ich komme einfach nicht weiter.
Wie kann ich in Kontaktplan die Negation eines Ausdrucks angeben?
z.B.: NOT (a < b)

Das man diesen Ausdrug leicht umformen kann ist mir klar, allerdings bräuchte ich eine allgemeine Lösung bei der der Ausdruck an sich nicht verändert wird und die möglichst ohne zusätzliche Variablen auskommt. Grundsätzlich würde es ja schon reichen wenn ich die "rung-condition" nach dem LES invertieren würde, aber wie?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
War mein erster Gedanke. Aber neg hat einen Eingang und einen Ausgang, negiert also eine Variable während sich les direkt auf die runge condition auswirkt.
 
Hallo,
anstatt LES würde ich den GEQ-Block verwenden. Damit hättest Du die Negation.
Du kannst natürlich auch das Ergebnis des LES-Blocks auf einen Merker vom Typ Boolean zuweisen.
Diesen Merker fragts Du über einer Öffner ab (XOF).


Gruß Frank
 
Hallo,
anstatt LES würde ich den GEQ-Block verwenden. Damit hättest Du die Negation.
Du kannst natürlich auch das Ergebnis des LES-Blocks auf einen Merker vom Typ Boolean zuweisen.
Diesen Merker fragts Du über einer Öffner ab (XOF).

Das alles wollte Dariusum ja gerade nicht. Ich habe auch gerade mal
das RS5000 angeworfen und war überrascht, dass es den Befehl der
Bit-Negation direkt im Ladder-Pfad garnicht gibt. Ich habe ihn bisher
nicht vermisst, dashalb ist es mir auch nicht aufgefallen, dass der fehlt.

Frank
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Erstmal danke für die Antworten. Scheinbar ist es wirklich nicht so einfach. Da ich weiterkommen muss werde ich wohl in den sauren Apfel beißen und mir den Ausdruck zuerst in eine Variable zu schreiben und anschließend negiert wieder einzulesen. Da ich zur Zeit leider keine SPS zur Verfügung habe, hätte ich noch die Frage ob folgender Code funktioniert :


ST :

VAR_TEMP
a : DINT;
b : DINT;
temp_1 : BOOL;
c : BOOL;
END_VAR;
c:= NOT (a < b);
=>
Kontaktplan : LES a b OTE temp_1 XIO temp_1 OTE c

Dies bitte wieder nur als Beispiel betrachten. Ich brauche eine Lösung die auch für komplizierte Ausdrücke funktioniert die ich möglichst wenig verändern will.
 
Zurück
Oben