|
Beschreibung Das STEP 7 (TIA Portal) V11 Programm "STEP7_V11_Bit_Field_Pos" enthält zwei Funktionen, mit denen Sie die Bitposition eines aktiven Bits in einem Merkerwort ermitteln und ein 32-Bit Feld auf kommende oder gehende Ereignisse überwachen können.
Auswertung der Bitposition des aktiven Bits in einem Merkerwort Die Funktion "Bit_Pos" berechnet das aktive Bit in einem Merkerwort. Wenn Sie z. B. für einen sequentiellen Prozess eine Ablaufsteuerung mit einem Merkerwort programmieren, so ist in diesem Merkerschrittwort entsprechend dem gerade aktiven Schritt der Schrittkette immer nur ein Bit aktiv. Mit der Bitzählung kann der aktive Schritt z. B. in einem Visualisierungssystem mittels Symbollisten als Klartext visualisiert werden. Für die Visualisierung ist es von Vorteil, die Bitposition und damit den gerade aktiven Schritt, als Integer-Wert zu erhalten.

Bild 01
Wenn immer nur ein Bit gesetzt ist, ergibt sich folgender Zusammenhang:
2X = Y
X = lnY / ln2
Dabei entspricht X der Bitposition und Y ist der Wert des Merkerwortes. Für die Bitposition muss X dann noch um 1 inkrementiert werden. Außerdem berücksichtigt die Funktion "Bit_Pos" noch die beiden Sonderfälle, dass der Wert Y nicht Null und nicht negativ (Vorzeichen) sein darf.
Überwachung eines 32-Bit Feldes
Um ein 32-Bit Feld auf kommende oder gehende Ereignisse zu überwachen, können Sie mit der Funktion "Monitor_Bit" die zu überwachenden Bits auf positive und negative Flanken abfragen. So wie im oben beschriebenen Beispiel wird aber hier ein Doppelwort als DINT definiert und das gesetzte Bit berechnet.
Die Programmierung in der Funktion "Monitor_Bit" ist wie folgt realisiert:
- Um bei beliebig vielen gesetzten Bits das Bit herauszufiltern, das in diesem Zyklus seinen Zustand geändert hat, wird eine EXKLUSIV ODER DOPPELWORT-Verknüpfung zwischen dem Wert des letzten Zyklus und dem des aktuellen Zyklus verwendet. Eine exklusive Veroderung ergibt nur das Bit, das ausschließlich bei einem der beiden Werte auftritt.
- Durch eine weitere UND-Abfrage wird ermittelt, ob es sich bei dem Bit um ein kommendes oder ein gehendes Signal handelt.
- Ist bei diesem Doppelinteger nur ein Bit gesetzt, gilt für den DI-Wert Y die oben beschriebene Definition. Den X-Wert erhalten Sie aus der Umwandlung: X = lnY / ln2 und die Bitposition ergibt sich mit der Inkrementierung: X + 1.
Hinweis
Die kommenden und gehenden Ereignisse können Sie für die Bits 1 bis 31 beliebig ermitteln, was für den Wertebereich 0 bis +2147483647 gilt. Das Bit 32 gilt für das Vorzeichen. Erhält das Bit 32 den Signalzustand 1, wird die Nummer für das gesetzte Bit 32 ausgegeben (Ausgang "Bit") und das Bit für den Ausgang "Event_Come" (für kommendes Ereignis) gesetzt. Wenn Sie die Funktion aber weiterhin anwenden und weitere kommende und gehende Ereignisse ermitteln wollen, müssen Sie vorher das Bit 32 wieder auf Null zurück setzen.

Bild 02
Im Beispiel wie im Bild 02 hat sich der Signalzustand bei Bit 16 von 0 auf 1 geändert. Die ermittelte Bit-Nr. 16 wird am Ausgang "Bit" ausgegeben und der Ausgang "Event_Come" erhält das Signal True (für kommendes Ereignis).
Kopieren Sie die Datei "STEP7_V11_Bit_Field_Pos.zip" in ein separates Verzeichnis und starten Sie die Datei anschließend per Doppelklick. Das STEP 7 Projekt wird jetzt automatisch mit allen dazugehörigen Unterverzeichnissen entpackt. Anschließend können Sie das entpackte Projekt mit STEP 7 V11 öffnen und bearbeiten. In den beiden Funktionen sind deutsche und englische Kommentare enthalten.
STEP7_V11_Bit_Field_Pos.zip ( 2492 KB )
Erstellumgebung
Bilder und Download in diesem FAQ sind mit dem Produkt STEP 7 (TIA Portal) V11 erstellt worden. In der folgenden Tabelle sind die Komponenten aufgeführt, mit denen dieser Beitrag erstellt und die beschriebene Funktionsweise verifiziert wurde:
| Testumgebung |
Version |
| PC-Plattform |
Intel(R) Corel(TM)2 Duo CPU P8700 2,53 GHz |
| PC-Betriebssystem |
MS Windows XP SP3 |
| STEP 7 (TIA Portal) |
V11 + SP2 |
| CPU 1214C (6ES7214-1AE30-0XB0) |
Firmware V2.0 |
|