TIA Siemens FIFO TIA 19

sps_klassik

Level-2
Beiträge
795
Reaktionspunkte
98
Zuviel Werbung?
-> Hier kostenlos registrieren
1734365821105.png


Hat mit dem Baustein schon jemand gearbeitet?Wenn ich an Item einen UDT anlege.kann ich ja einen Buffer vom gleichen Typ als Array anlegen.
Dort legt er dann ab.
Aber wie wird der Baustein getriggert?Muss mann da seinen eigenen Datensatz auf Änderung ueberwachen und dann einen Impuls erzeugen und weiterschieben an enqueue?
 

Anhänge

  • 1734365681861.png
    1734365681861.png
    82 KB · Aufrufe: 15
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hätte mal einen Vorschlag erwartet wie man solche Strukturen triggert, so als Vorschlag, aber lieber rummeckern.
Naja, wenn ich deinen Beitrag deute, hast du dir nur minimalst Gedanken drüber gemacht, es wahrscheinlich noch nicht mal selbst ausprobiert, aber gehofft, dass man dir eine Lösung vorkaut.
Das war mehr Feststellung als gemeckere.

Aber um deine Frage zu beantworten:
Muss mann da seinen eigenen Datensatz auf Änderung ueberwachen und dann einen Impuls erzeugen und weiterschieben an enqueue?
Ja genau so wird das gemacht.
 
Nein ich mag die Art nicht.Woher weisst du wieviel Gedanken ich mir gemacht habe?
Generell mal ein bisschen runterkommen.
Wenn du keine Antwort geben willst, musst du ja nicht schreiben.
 
Nein ich mag die Art nicht.Woher weisst du wieviel Gedanken ich mir gemacht habe?
Generell mal ein bisschen runterkommen.
Wenn du keine Antwort geben willst, musst du ja nicht schreiben.

Sorry, aber mal ehrlich:
Was erwartest du?
Du postest hier nen Screenshot von einem Baustein, dessen Beschaltung einfach ist und der dazu noch über ne gute Doku verfügt.
Üblicherweise zieht man sich den Baustein ins Projekt, beschaltet ihn und testet ihn. Beim Testen hättest du jederzeit mit deinen Daten spielen können und hättest feststellen können, ob ein Ändern der Daten ein Schieben auslöst.

Dass es dir im Kern um das effiziente Erkennen von Änderungen von Datensätzen geht, war - zumindest für mich - so nicht erkennbar.
Also bevor du dich beschwerst, mach dir bitte mal Gedanken, wie man sinnvoll Fragen stellt!

Und damit ich nicht offtopic werde:
Das Erkennen von Änderungen hängt natürlich von deinen Datensätzen ab.
Man kann z.B. dem Datensatz eine ID oder nen Zeitstempel mitgeben.
Oder man initialisiert den Datensatz nach dem Verarbeiten / Schieben.
Bei großen Datensätzen und / oder wenn Geschwindigkeit gefordert ist, reicht u.U. auch das Initialisieren eines einzelnen Feldes.
Also z.B. -1 in ein Zahlenfeld schreiben, von dem ich sicher weiß, dass da nur pos. Zahlen übermittelt werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hätte mal einen Vorschlag erwartet wie man solche Strukturen triggert ...
Es hängt doch vor allem von der Anwendung ab. Du musst ein Kriterium finden, zu dem du einlagerst und zu dem du auslagerst. Von einer Änderung des Datensatzes kann es abhängig sein, muss es aber nicht. Was hast du denn für eine Anwendung?
 
Ok, bevor sich das hier unnötiger weise hochschaukelt...

Mein Antwort ist vielleicht ein bisschen zu patzig geworden. Liegt vielleicht auch daran, dass ich momentan mit zuvielen Leuten zu tun habe, denen man schon bei den einfachsten Dingen den Allerwertesten nachtragen muss, aber sich gleichzeitig für die Krone der Programmierung halten.
Das du vielleicht ein bisschen was von meinem Frust abbekommen hast, ist nicht fair und auch kein professionelles verhalten.

Da ich nicht weiß, was in deinem udt für Werte enthalten sind, und wie dein Prozess aussieht, wird es schwer dir dazu eine gute Empfhelung zu geben.
 
Ich hätte mal einen Vorschlag erwartet wie man solche Strukturen triggert, so als Vorschlag, aber lieber rummeckern.
Kommt das nicht darauf an, was man(Du) machen möchte(st)?
Der FIFO kann ja bei vielen Aufgaben hilfreich sein.
Willst Du nen asynchronen Datenstrom anpassen oder Datenbursts für die abarbeitung entzerren oder Maschinenstrecken abbilden. Kann doch keiner wissen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So könnte ein Einfacher Trigger aussehen

Code:
Tmp_SetIntoQueue :=false;
If static_Actual <> static_Old then
   Tmp_SetIntoQueue :=true;
   static_Old := static_Actual;
End_if

// Aufruf fifo Baustein
 
Zurück
Oben