TIA HMI E/A-Felder werden immer Überschrieben

meikelneit

Level-2
Beiträge
172
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen guten Tag,

ich habe im Moment ein Problem da bräuchte ich einmal Hilfe. Ich arbeite mit TIAv14 habe eine 1512 CPU und ein TP1200 Comfort.

Das problem das ich habe, wenn ich im HMI in einem E/A-Feld eine eingabe tätige, wird diese wieder mit 0 übeschrieben. Es handelt sich bei der Verknüpften Variablen um ein UDT_Element. Dieses UDT wird noch von einem andren FB in der CPU beschrieben, also ist dort an einem Ausgang(out) angeschaltet. Aber in dem FB werden eigentlich nicht die besagten Parameter beschrieben, welche an den E/A- Feldern Parametriert sind.

Erstmal kurz und knapp, ich hoffe ich konnte genug info Liefern das es für Antworten oder Rückfragen ausreicht.

Schönen Gruß und danke schonmal im Vorraus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
schalte den UDT als INOUT an den FB

Wenn der UDT an einem OUT angeschaltet ist, dann arbeitet der FB intern mit einem UDT in den Instanzdaten und am Ende des FB wird der komplette UDT aus den Instanzdaten in den angeschalteten UDT kopiert - Änderungen an den Werten des angeschalteten UDT außerhalb des FB werden also überschrieben.

Harald
 
Also der UDT sieht wie auf folgendem Bild aus:

Unbenannt.jpg

der bereiche Measurement wird aus dem FB beschrieben, da er das aus dem Ultraschallschweßgerät ausliest, und der Bereich misc wird aus dem HMI vor gegeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist das entsprechende Element irgendwo an einem IN/OUT Anschluß angehängt?
Das kann das beschriebene Verhalten auch auslösen, da die HMI Zugriffe nicht synchron zum CPU Zyklus erfolgen.
 
Jetzt noch mal eine weitere Frage,

du sagst ja beim OUT wird in den Instanzdaten gearbeitet und am Ende dann die gesammte Struktur zurück geschrieben. Wie ist das dann beim INOUT, arbeitet er dann direkt auf der angeschalteten Struktur? Ist das der Unterschied?

Mich würde mal interressieren warum das dann so ist.


PS: Das hat auf jeden fall das Problem gelöst!
 
Also der UDT sieht wie auf folgendem Bild aus:

Anhang anzeigen 48225

der bereiche Measurement wird aus dem FB beschrieben, da er das aus dem Ultraschallschweßgerät ausliest, und der Bereich misc wird aus dem HMI vor gegeben.

Hallo,

Du solltest im Beitrag #3 den Tipp von Harald annehmen.

UDT ist nichts anderes als eine Maske in welcher Deine Struktur hinterlegt ist.
Wenn diese Struktur an einem FB an einem OUT steht, wird alles was in dieser Struktur ist beschrieben von dem FB. Unabhängig ob in dem FB nur ein Teil bearbeitet wird oder nicht. In Deinem Fall würden also die Werte von misc immer wieder auf 0 gesetzt.

Kannst Du auch sehen wenn Du in einer Beobachtungstabelle Die Werte änderst. Sie stellen sich im nächsten Zyklus wieder zurück auf den vorherigen Wert.

Das OUT am FB bedeutet somit auch "sozusagen" das der FB an dem die UDT steht die alleinige Kontrolle darüber hat.

Es ist also richtig das der FB den UDT einliest, verändert, und dann ausgibt. Dafür ist IN/OUT da, also damit mehrere FBs oder auch die HMI an diesem arbeiten kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
INOUT: Einlesen der Daten, bearbeiten im FB, zurückschreiben wenn der FB durch ist.
IN: Einlesen, aber keine Ausgabe von Daten
OUT: Daten die im DB des FB sind werden genutzt, nicht von aussen sicher beschreibbar, geschrieben wenn der FB durch ist.
 
Ist das entsprechende Element irgendwo an einem IN/OUT Anschluß angehängt?
Das kann das beschriebene Verhalten auch auslösen, da die HMI Zugriffe nicht synchron zum CPU Zyklus erfolgen.
UDT an INOUT werden in der Regel per Referenz übergeben, da tritt das Problem nicht auf (der FB arbeitet direkt auf der angeschalteten Struktur)
Nur wenn für Aktualparameter und FB-Instanz optimierte und nicht optimierten Datenbereiche gemischt verwendet werden, dann werden UDT an INOUT per Value übergeben (der FB erhält eine Kopie und schreibt am Ende die Kopie zurück auf die übergebene Struktur), und HMI-Schreibzugriffe werden manchmal überschrieben (wenn der HMI-Schreibzugriff stattfindet während der FB abgearbeitet wird).

Harald
 
Zuletzt bearbeitet:
Zurück
Oben