TIA Einmaliges Senden

Beiträge
10
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich habe eine SPS 1515 und bearbeite diese über TIA v18.
Mein Anliegen ist, dass ich Werte an einem Regler über den Baustein TSEND verändern möchte.
Ich möchte die Anfrage einmalig senden, bei einer weiteren Änderung der Werte soll es möglich sein, die Werte manuell erneut zu senden.
Das Problem ist, dass das aktuelle Netzwerk die Werte überschreibt.
Für Ideen und Anregungen bin ich jederzeit offen.
 
Wie sieht dein Programm genau aus?

Was überschreibt das "aktuelle Netzwerk" für Werte?

Wenn du den Sendebefehl nur einmal ausführst, sendest du die Werte auch nur einmal.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie sieht dein Programm genau aus?

Was überschreibt das "aktuelle Netzwerk" für Werte?

Wenn du den Sendebefehl nur einmal ausführst, sendest du die Werte auch nur einmal.
Genau, die Werte sollen so lange gehalten werden und bei Änderung dieser Temperatursollwerte soll es eine erneute Übertragung geben, aber wieder nur einmal, bis man die Werte wieder ändern will.
 
Du könntest dir die Werte die über TSEND kommen in einer Puffervariable speichern und jeden Zyklus den alt Wert mit dem Neuwert vergleichen. Bei Ungleichheit mit einer positiven Flanke die Werte übernehmen
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Genau, die Werte sollen so lange gehalten werden und bei Änderung dieser Temperatursollwerte soll es eine erneute Übertragung geben, aber wieder nur einmal, bis man die Werte wieder ändern will.
Dann würde ich bei dem Request-Eingang noch eine Variable verunden, welche diesen händischen Sendeimpuls darstellen soll.

Der Request-Einagng arbeitet mit einer steigenden Flanke. Somit bedeutet eine Deuer-1 kein durchgehendes senden via TSEND.
 
...
Der Request-Einagng arbeitet mit einer steigenden Flanke. Somit bedeutet eine Deuer-1 kein durchgehendes senden via TSEND.

Das ist laut Definition im TIA Handbuch falsch.
Eine Funktion mit einem request Eingang startet nach erfolgreicher Abarbeitung des Befehls (done=TRUE) und einem weiterhin anstehenden TRUE an request erneut
 
Das ist laut Definition im TIA Handbuch falsch.
Eine Funktion mit einem request Eingang startet nach erfolgreicher Abarbeitung des Befehls (done=TRUE) und einem weiterhin anstehenden TRUE an request erneut
Wo soll das stehen?

1722494877425.png

Also ich kenne dein beschriebenes Verhalten aus der Praxis auch nicht. Bei mir funktioniert er wie hier beschrieben.


Außerdem noch ein kleiner Vermerkt aus einem Siemensbeispiel:

1722495021291.png
 
im Handbuch unter Unterschied Synchron / Asynchron:

1722499108012.png

Bei "RDREC" kenne ich genau das verhalten das er immer wieder von neuem beginnt, ich kenne aber auch Bausteine die sich wieder Erwartens bei dem Eingang "REQ" nur einmalig abarbeiten - geht aber gegen die Definition.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
im Handbuch unter Unterschied Synchron / Asynchron:

Anhang anzeigen 80170

Bei "RDREC" kenne ich genau das verhalten das er immer wieder von neuem beginnt, ich kenne aber auch Bausteine die sich wieder Erwartens bei dem Eingang "REQ" nur einmalig abarbeiten - geht aber gegen die Definition.
Laut Beschreibung der Funktion RDREC, arbeitet dieser ja auch mit einer 1 an REQ und kommuniziert durchgehend.
Nicht wie bei TSEND, nur mit einer steigenden Flanke.

Da liegt der Unterschied.
Vielleicht ist der REQ bei der Beschreibung der asynchronen Kommunikation nur etwas sehr allgemein gehalten.
Es zählt jedoch was die Bausteinbeschreibung sagt, nicht was die allgemeine Kommunikationsbeschreibung sagt.

TSEND arbeitet definitiv nur mit einer steigenden Flanke, will man erneut was senden, muss eine neue steigende Flanke an den REQ-Eingang.

Aber gut, dass wir dann die Missversändnisse zwischen uns lösen könnten✌️
 
Ja vollkommen richtig (y)
Ich wollte nur die Pauschale Aussage "REQ / Request mit Flanke einmalig" nicht so stehen lassen da die Beschreibungen hier nicht immer 100% aussage kräftig sind - muss man immer aufpassen und genau lesen wie es in der jeweiligen Funktion implementiert ist oder im Zweifelsfall Testen ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja vollkommen richtig (y)
Ich wollte nur die Pauschale Aussage "REQ / Request mit Flanke einmalig" nicht so stehen lassen da die Beschreibungen hier nicht immer 100% aussage kräftig sind - muss man immer aufpassen und genau lesen wie es in der jeweiligen Funktion implementiert ist oder im Zweifelsfall Testen ;)
Ich habe das ja nie pauschalisiert, ich habe mich in jedem Post auf den Baustein TSEND bezogen;)

Sollte nicht anders rüberkommen, sry.
 
Ich benutze eine positive Flanke, ich brauch aber dies nur einmal und nicht mehrfach, da der Baustein nicht dauerhaft raus senden soll.
Niemand weiß was du da programmiert hast, daher wird dir so auch niemand helfen können.

Ich habe gestern schon gefragt wie dein Programm aussieht und ob du mal Bilder einstellen kannst.

So wirst du keine Lösung für dein Problem bekommen.

Wie bildest du z.B. das Signal am REQ-Eingang?
Dieses scheint ja bei jeder Wertänderung einen Flankenwechsel am REQ zu generieren.
Somit musst du das unterbinden, wenn du dann nichts automatisch senden möchtest.
 
Du könntest dir die Werte die über TSEND kommen in einer Puffervariable speichern und jeden Zyklus den alt Wert mit dem Neuwert vergleichen. Bei Ungleichheit mit einer positiven Flanke die Werte übernehmen
Dann aber auch in die Ursprungsvariable zurückschreiben.
Vergleich über XOW.
Wieso eine Flanke?Bei Unterschied zwischen den beiden Werten wird der Wert der Fremd-SPS mit dem neuen Wert einmalig überschrieben.
Danach sind beide Variablen gleich.
Kopiert man jetzt auf der anderen Seite ebenfalls eine Änderung in den Neuwert/ALtwert passiert nichts, bis über die Schnittstelle der Neuwert wieder geändert wird.Oder habe ich einen Denkfehler?
 
Es könnte nur ein Problem geben wegen der Asynchronität.
Das weiss ich nicht.Dann müsste man ein datenbit(verlängerter Impuls) schicken der verhindert das in den altwert reingepinselt wird.
Der Impuls müsste mit der Datenübertragung angestossen werden.
Wieder eine Zwischenvariable?Kraatz?Wird dann komplizierter.
 
Zurück
Oben