TIA Einzelnes Bit in einem Ausgangsbyte setzen

usarobert

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe hier eine S7-1214 und einen Vision Sensor von Festo, welcher über ProfiNet eingebunden ist. Ich nutze FUP
Gleich vorne weg, ich habe noch nie etwas mit ProfiNet gemacht und habe eventuell deshalb einen "Kopfknoten".
In der Beschreibung steht nun, dass ich für den JobWechsel an dem Sensor zuerst die JobNummer senden muss. Also nutze ich Move und setzte z.B. die 2 in meinen %QB4
Nachdem die Nummer gesetzt ist, soll man das Bit 3 setzen, um den Jobwechsel zu starten. Das bekomme ich aber nicht hin. zuerst habe ich es mit S versucht auf %QB2.3 das klappt aber nicht. Dann habe ich versucht mit MOVE eine 1 in %QB2.4 geht aber auch nicht .. wie macht man das ?
Das setzt sich dann fort. Auf dem %IB6 soll ich im Bit 4 eine 1 bekommen als Bestätigung, und dann die 1 für den Jobwechsel, sowie die Jobnummer zurücknehmen. Ich kann aber auch nicht die & Funktion mit %IB6.4 nutzen .. ist vermutlich das gleiche Problem wie oben.
Wie geht am das an ? :confused:
Danke im voraus.
 
Das wäre nicht %QB2.3 sondern nur %Q2.3 bzw. nicht %IB6.4 sondern %I6.4.
;)


Ich empfehle aber trotzdem den Slice-Zugriff, um symbolisch programmieren zu können.
Die Hilfe F1 gibt Beispiele für diese Art der Zugriffe auf die einzelnen Bits, Bytes oder Words größerer Variablen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

du kanns wie hucki bereits angedeutet hat einen Slice-Zugriff machen.
Bedeutet dass du deinem Ausgangsbyte eine Symbolik zuweist.

1. Möglichkeit:
Z.B.: wäre dein AB100 dann "Ausgang100".
Dann kannst du im Programm einfach mit "Ausgang100".%X03 auf das vierte Bit bzw. Bit 3 zugreifen.

2. Möglichkeit:
Du kannst auch mit den SCATTER und GATHER Funktionen arbeiten - dort könntest du dein Byte zuerst zerlegen mit Scanner
dann im Array of BOOL das Bit mit Index[3] setzen und dann mit GATHER wieder u einem Byte konvertieren und dieses dann auf dein AB laden.

3. Möglichkeit:
Du kannst auch, wenn du das Byte als IN-Parameter verwendest auch den AT Befehl zum zerlegen verwenden.
 
Zurück
Oben