-> Hier kostenlos registrieren
Im TIA Portal Version 19 Update 2 wird ein Unified-System mit einem Faceplate verwendet. Dieses Faceplate enthält mehrere Tasten (Command-Keys). Jede Taste setzt ein spezifisches Bit innerhalb einer Doppelwort-Variable (DWORD). Die Funktionalität der Tasten basiert auf dem von Siemens bereitgestellten Skript "SetzeBitinVariable".
Fehlerbeschreibung:
Bei der Nutzung der Command-Keys tritt ein unerwartetes Verhalten in der Steuerung auf. Das Problem äußert sich wie folgt:
Zusätzliches Fehlverhalten:
Das Problem tritt nur auf, wenn das Faceplate geöffnet bleibt. Folgende zusätzliche Beobachtungen wurden gemacht:
Vermutung:
Das Verhalten deutet auf ein Problem in der Interaktion zwischen dem Faceplate, dem Bit-Setzungsmechanismus und dem Steuerungs-Skript hin:
Hat einer eine Idee ?
Fehlerbeschreibung:
Bei der Nutzung der Command-Keys tritt ein unerwartetes Verhalten in der Steuerung auf. Das Problem äußert sich wie folgt:
- Beim Setzen eines bestimmten Bits (z. B. Bit 16) durch das Faceplate wird dieses in der Steuerung korrekt gesetzt.
- Wenn das gesetzte Bit (z. B. Bit 16) in der Steuerung zurückgesetzt wird und anschließend ein anderes Bit (z. B. Bit 15) durch das Faceplate aktiviert wird, wird unerwarteterweise auch das zuvor zurückgesetzte Bit (Bit 16) erneut gesetzt.
- Dieses Verhalten tritt unabhängig davon auf, welches Bit aus der Doppelwort-Variable gesetzt danach gesetzt wird. Das Ergebnis ist, dass immer zusätzlich Bit 16 ungewollt aktiviert wird. Aber nur einmal !
Zusätzliches Fehlverhalten:
Das Problem tritt nur auf, wenn das Faceplate geöffnet bleibt. Folgende zusätzliche Beobachtungen wurden gemacht:
- Faceplate-Zustand:
- Wird das Faceplate geschlossen, nachdem ein Bit (z. B. Bit 16) gesetzt und in der Steuerung zurückgesetzt wurde, und das Faceplate danach erneut geöffnet, funktioniert die Bit-Setzung wie erwartet.
- Beispiel: Nach dem erneuten Öffnen des Faceplates und Aktivieren von Bit 15 wird ausschließlich Bit 15 gesetzt, ohne dass Bit 16 zusätzlich aktiviert wird.
- Problem bei geöffnetem Faceplate:
- Wenn das Faceplate geöffnet bleibt, bleibt der Fehler bestehen. Es scheint, dass das Faceplate oder das zugrunde liegende Skript eine Art Zustand zwischenspeichert, der dazu führt, dass ein zuvor gesetztes Bit (z. B. Bit 16) erneut aktiviert wird, sobald ein anderes Bit (z. B. Bit 15) gesetzt wird.
- Das Problem kann vorübergehend behoben werden, indem das Faceplate geschlossen und erneut geöffnet wird.
- Zusätzliche positive Flanke:
- Eine Lösung scheint darin zu bestehen, dass nach dem Rücksetzen des fehlerhaften Bits (z. B. Bit 16) durch die Steuerung eine positive Flanke eines anderen Bits ausgelöst wird. Erst dann kehrt das System in einen stabilen Zustand zurück und arbeitet korrekt.
Vermutung:
Das Verhalten deutet auf ein Problem in der Interaktion zwischen dem Faceplate, dem Bit-Setzungsmechanismus und dem Steuerungs-Skript hin:
- Möglicherweise wird der Zustand eines gesetzten Bits im geöffneten Faceplate oder im Skript nicht korrekt zurückgesetzt.
- Alternativ könnte ein Fehler im Skript "Setze Bit in eine Variable" oder ein Synchronisationsproblem zwischen der Steuerung und dem Faceplate die Ursache sein.
Hat einer eine Idee ?