TIA Bildbausteinwertaktualisierung erfolgt nicht an anderen Panels, nach Wertänderung an einem Panel

trabajador73

Level-2
Beiträge
152
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
Verwendet werden TP1500 Comfort und CPU 1518TF mit TiaPortal V18.
An einem E/A-Feld eines Bildbausteins wird eine Wertänderung vorgenommen und daraufhin dieser neue Wert auch in der angebundenen DB-Variable übernommen.
Dieser Bildbaustein wird an mehreren Panels verwendet mit der gleichen angebundenen Variablen.
Jedoch der neue Wert wird nicht an anderen Panel angezeigt, außer am Panel, bei welchem der Wert geändert worden ist.
Normal funktioniert eine automatische Aktualisierung an anderen Panels von diesem Bildbaustein. Bei diesem Projekt erfolgt im Bildbaustein zudem mittels Skript eine Umrechnung des Wertes von Feet in Meter für ein E/A-Feld und Meter in Feet bei einem Ausgabefeld.
Hier der Quellcode des Skripts:
'TagOut from HMI to PLC:
SmartTags("Properties\Interface.InputDistance") = SmartTags("InputDistance")* SmartTags("feet to meter")
SmartTags("Properties\Interface.Length") = SmartTags("Length") * SmartTags("feet to meter")

'TagIn from PLC to HMI:
SmartTags("CalcDistance") = SmartTags("Properties\Interface.CalcDistance") * SmartTags("meter to feet")

Vielleicht gibt es eine Möglichkeit alles in einem Skript des Bildbausteins zu lösen, das Aktualisieren von geänderten Wert des angebundenen DBs.
Danke für jeden Beitrag.
 
An einem E/A-Feld eines Bildbausteins wird eine Wertänderung vorgenommen und daraufhin dieser neue Wert auch in der angebundenen DB-Variable übernommen.
Mit "angebundene DB-Variable" meinst du die Variable in der PLC? In der PLC kommt der geänderte Wert an?
Was für einen Datentyp hat die Variable?

Jedoch der neue Wert wird nicht an anderen Panel angezeigt, außer am Panel, bei welchem der Wert geändert worden ist.
Wie wird denn die Variable an den anderen Panels "verwendet" und aktualisiert?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit "angebundene DB-Variable" meinst du die Variable in der PLC? In der PLC kommt der geänderte Wert an?
Was für einen Datentyp hat die Variable?
Vielen Dank für die Unterstützung PN/DP.
Die Variable hat den Datentyp "real" und wird in der PLC, also Steuerungsprogramm verwendet und der Wert wird auch korrekt von Feet in Meter im Bildbaustein umgerechnet und dann korrekt in einem DB der SPS auch gespeichert.
Die Variablenstruktur der Bildbausteinschnittstelle ist identisch, wie ein Bereich von einem DB, welcher an den Bildbaustein mittels Pointer angebunden ist.
Wie wird denn die Variable an den anderen Panels "verwendet" und aktualisiert?
Die EA-Felder des Bildbausteins sind über dessen Schnittstelle mit einem DB der PLC verknüpft. Alle EA-Felder dieses Bildbausteins sind mittels dem gleichen Pointer an der Bildbausteinschnittstelle mit dem jeweiligen Bereich des DBs verbunden.
Alle Panels sind gleich gehalten, daher der Aufruf des Bildbausteins erfolgt mit dem gleichen Pointer in allen Panels.
Aber wenn der Wert in einem Panel geändert wird, dann erfolgt aktuell keine Wertaktualisierung an den anderen Panels aufgrund des Skripts mit einer Umrechnung von der Eingabe in Feet zur Einheit Meter.
Die automatische Wertaktualisierung erfolgt, wenn keine Umrechnung gemacht wird.

Je länger das verwendete Skript von mir begutachtet wird, umso mehr wird mir auch klar, warum das nicht funktionieren kann.
Es erfolgt nur eine Umwandlung von Feet in Meter, also von der Paneleingabe in Feet wird korrekt in Meter umgewandelt, und anschließend korrekt an die PLC übermittelt.
Aber eine Wertänderung von der Steuerung, also PLC, an das EA-Feld des Bildbausteins kann nicht verarbeitet werden, weil keine Umwandlung von Meter in Feet für das EA-Feld erfolgt.
Ich weiß aber auch nicht, wie dies möglich sein könnte in einem Skript im Bildbaustein.

Sub UnitConversion()
'TagOut from HMI to PLC
SmartTags("Properties\Interface.InputDistance") = SmartTags("InputDistance")* SmartTags("feet to meter")
SmartTags("Properties\Interface.Length") = SmartTags("Length") * SmartTags("feet to meter")

'TagIn from PLC to HMI
SmartTags("CalcDistance") = SmartTags("Properties\Interface.CalcDistance") * SmartTags("meter to feet")
End Sub
 
Muss denn die Umrechnung mit 2 Variablen und per Skript gemacht werden? Warum geht nicht die Skalierung in den Eigenschaften der einen Variablen? Zu viele Skripte insbesondere bei Variablenänderungen belasten Comfort Panels. Das ist nicht so gedacht,..
Damit eine Variable aktualisiert wird, muss sie im aktuellen Bild verwendet werden oder die Aktualisierung auf "zyklisch fortlaufend" eingestellt werden.
 
Zurück
Oben