Mehrere Funktionen an Schaltfläche

buzan

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi.

Ich habe ein Problem mit Funktionsanbindung an eine Schaltfläche im TP900 mit Tia Projektierung.

Ein Bild erzeugen klappt ohne Probleme. Dort dann Schaltflächen Platzieren auch alles easy.

Wenn ich nun aber an der Schaltfläche mehrere SetzeBitInVariable oder RücksetzeBitInVariable Funktionen hintereinander hinzufüge wird in der
Simulation immer nur die letzte dieser Funktionen ausgeführt.

Die Bits die ich Pro Schaltfläche setzten oder rücksetzen möchte befinden sich alle im selben Byte.
Das ist so aber auch nötig, da in diesem Byte 7 verschiedene Meldungen via Profibus an einen Motor übergeben werden.

Stelle ich mich da einfach zu Blöd an oder gibt es da ne einfache Lösung?

Danke schon mal im voraus.

Beste Grüße

buzan
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... oder weise der Variablen mal den Wert zu, den sie nach dem Setzen/Rücksetzen der mehreren Bits haben müßte ... ich könnte mir vorstellen, dass es etwas "internes" ist ...

Gruß
Larry
 
Vermutlich mußt Du alle Bits in einer Zuweisung gleichzeitig setzen um das Problem zu umgehen (TIA-Bug oder -Feature?).
Das TP900 müsste doch Skripte können - programmiere Dir eine Wordverknüpfung mit OR.

Falls keine Skripte möglich sind, dann läßt sich was mit "SchiebenUndMaskieren" basteln.
- in einer "Nebenrechnung" auf eine Hilfsvariable zuerst die zu setzenden Bits mit "SchiebenUndMaskieren" garantiert auf 0 bringen
- danach die Bitwertigkeiten der zu setzenden Bits dazuaddieren

Gibts in TIA vielleicht auch eine Systemfunktion mit OR-Maskierung? (also ein Pendant zu "SchiebenUndMaskieren", nur mit OR statt AND?)

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es wird nicht überprüft, ob sich zwischenzeitlich andere Bits in der Variablen geändert haben.
Das beschreibt eigentlich nicht das beschriebene problematische Verhalten von TIA. Damit ist eigentlich die nach dem Lesen bis zum Schreiben zwischenzeitlich mögliche Änderung der Variable in der Steuerung gemeint.

Für mich ist das ein nicht explizit dokumentiertes Feature - ich würde sagen ein Bug. Die RT weiß eigentlich den geänderten Wert der Variable, benutzt ihn aber nicht für das nächste SetzeBitInVariable. Das hätte man auch "richtig" machen können.

Harald
 
@PN/DP: Da stimme ich Dir zu.

Da steht, die Systemfunktion (setzeBitinVariable) schreibt bei einer Änderung die Variable zur SPS und prüft nicht, ob sich inzwischen die anderen Bits geändert haben.

Die RT weiß eigentlich den geänderten Wert der Variable, benutzt ihn aber nicht für das nächste SetzeBitInVariable

Für mich klingt das so, daß Änderungen in Folge (ein Tastendruck - 5-6 mal bits ändern) nicht zwischengespeichert werden, sondern der letzte Wert der Variable angenommen wird.

Dann sollte der Mist aber auch bei einer Mehrfachverwendung "in einem Rutsch" angekreidet werden.
 
Hey.

Danke schon mal für die vielen Antworten.

Ob das Panel Scripte kann oder nicht ist ne gute Frage aber bin in der Materie ziemlich neu von daher wollte ich es "Einfach" lösen ;)

Das setzten der Variable als ganzes funktioniert nicht, da 1 Bit in dem Byte leider Variabel ist. Wenn ich nun alles direkt setzte könnte damit
das eine Bit dann gesetzt werden obwohl es das nicht darf oder auch andersrum.

Um es evtl. Konkreter zu sagen. 3 Bits die ich in unterschiedlicher Reihenfolge setzten will Stoppen einen Motor oder geben Ihm die Drehrichtung vor.
Das Variable Bit sagt dann irgend wann ob der Motorregler ne Freigabe hat oder nicht.

An Sich ist das auch nur für ein Testaufbau so geplant. Im Späteren muss das dann mit Merkern etc. in der Steuerung selber zusammen gebastelt werden.
Hoffe das es da dann einfacher funktioniert.

Gruß

Buzan
 
Zuletzt bearbeitet:
Zurück
Oben