D.h. dann, dass bei ProTool immer nur das Bit0 eines Bytes gesetzt, bzw. rückgesetzt werden kann - das gibt's ja fast nicht, oder?
Nöö, heißt es nicht. Man kann auch 2, 4, 8, 16, 32, 64, 128 in eine Byte-Variable schreiben, dann setzt man jedesmal ein anderes Bit in der Variable auf 1 (alle übrigen Bits werden dabei immer auf 0 geschrieben!). Man kann auch mehrere Bits gleichzeitig auf 1 schreiben (alle Zahlen von 3 bis 255 außer die eben aufgezählten).
Hallo Anne, bist Du heute etwa krank? Du bist doch sonst nicht so "blond".
Was Dich jetzt so verwirrt liegt nicht am ProTool, sondern am OP7. Das uralte OP7 ist eines der ersten OP (ich meine sogar DAS erste OP), was für den Anschluß an die S7-300 entwickelt wurde. Das OP7 kennt keine Systemfunktion Bit_setzen bzw. Bit_rücksetzen. Es kann nur die direkte Verknüpfung einer Funktionstaste mit einer boolschen Bit-Variable (Taste drücken: setzt das Bit / Taste loslassen: rücksetzt das Bit) und das Zuweisen eines Wertes an eine numerische Variable (Byte, Word oder Doppelword bzw. REAL). Siehe nochmal Beitrag #6.
Wenn man nun wie Du eine Schalter-Funktion benötigt, so geht das nur mit der Systemfunktion Wert_setzen. Man muß dafür beim OP7 eine numerische Variable benutzen, auch wenn man nur die Werte 0 und 1 in die Variable schreiben will. Wenn man nun nur 0 und 1 in die Variable schreibt, so hat das den Effekt, daß nur das niederwertigste Bit der Variable dabei verändert wird (alle anderen Bits werden immer auf 0 geschrieben). Wo ist da ein Problem außer der Speicherplatzverschwendung? Welches Bit das niederwertigste Bit in einer Variable ist, sollte man "im Schlaf" wissen oder man probiert es einfach aus oder simuliert das. Wenn man es nicht weiß und nicht ausprobieren will, dann kann man natürlich "vorsichtshalber" einen Wert in die Variable schreiben, der garantiert alle Bits in der Variable setzt, also z.B. 255 in ein Byte, 65535 in ein Word, -1 in ein INT, ... Dann ist es egal, welches Bit man abfragt. Man kann aber auch die numerische Variable im SPS-Programm auf == 0 und <> 0 vergleichen, das hat sogar den Vorteil, daß man den Vergleich symbolisch mit genau der Variable machen kann, die im OP7 per Wert_setzen beschrieben wird.
Harald