Tia Portal Baustein

spsEngineering

Level-2
Beiträge
24
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hat jemand ahnung damit, der in receive buffer kommt zwei antwort , der fängt mit bus adresse zb. 001 und 002. ich wollte so machen das , wenn der antwort fängt mit 001 dann speichert in erste antwort und wenn der antwort fängt mit 002 dann speichert in zweite antwort.
gibts etwas baustein der arbeitet in FUP oder KOP in TIA PORTAL. Ich danke im voraus.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meinst Du sowas?
Anhang anzeigen 56969
Ansonsten bitte etwas genauer erklären, ist sehr wirr.
so was aber kriege ich antwort von Temperatur messung gerät und der antwort ist nicht immer gleiche. aber der antwort fängt immer mit Bus adresse 001 und 002 weil habe ich gerät mit Bus adresse konfiguiert. ZB. 001!T25.5 , 002!T30.5 , 001!T22.2 , 002!T19.2 , ändert wie umgebung , jetzt will ich nur zwei unterscheiden und speichern das 001 ist erste und speichert in 1antwort und 002 ist zweite und speichert in 2antwort.
 
Vergleiche, ob das erste Zeichen im Empfangspuffer == '0' ist UND das zweite Zeichen == '0' ist UND das dritte Zeichen == '1' ist.
Oder kopiere die ersten 3 Zeichen aus dem Empfangspuffer in den Hilfs-String #status für den Stringvergleich #status == '001'

Harald
 
Du willst also aus einem Empfangspuffer dessen Typ ein String ist die ersten 3 Zeichen lesen, diese unterscheiden ob sie 001 oder 002 sind um dann die Temperatur selbst in unterschiedliche Variablen zu speichern?

Hätte ich mal grob so erstellt anhand '001!T12.2'
Zeichen 1-3=001
Zeichen 4-5=ignorieren
Zeichen 6-Ende=12.2 -> umwandeln in Real
1635154309921.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was mir noch einfällt wegen dem Aufbau des Strings:
Wenn Du nicht nur Temperaturen sondern auch andere Werte bekommst, die Temperaturen aber am !T erkennbar sind, dann würde ich im obigen LEFT die Zahl 3 auf 5 ändern bei L und in der darunterliegenden Abfrage #Adresse_STRING=='001' zu '001!T' ändern. Dann werden auch nur die Temperaturen übernommen und kein eventueller anderer Status.
 
Was mir noch einfällt wegen dem Aufbau des Strings:
Wenn Du nicht nur Temperaturen sondern auch andere Werte bekommst, die Temperaturen aber am !T erkennbar sind, dann würde ich im obigen LEFT die Zahl 3 auf 5 ändern bei L und in der darunterliegenden Abfrage #Adresse_STRING=='001' zu '001!T' ändern. Dann werden auch nur die Temperaturen übernommen und kein eventueller anderer Status.
Danke das du viel mühe gegeben hast. Ich danke ihnen. Ich versuche das zu machen,
 
Hat jemand ahnung , kann ich 2 messgerät bus adresse einmal von sendptpDB baustein fragen? meine ich 001?T$L$R und 002?T$L$R einmal abfragen. weil habe ich beide antwort in einem rcv Buffer gespeichert aber habe ich zwei baustein zu abfragen (SEND).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Warum weißt Du nicht, zu welchem Gerät das SEND ging? Hast Du keine Schrittkette? (SEND zu Adresse 1 und auf Antwort oder Timeout warten und ggf. Receive abholen, SEND zu Adresse 2 und auf Antwort oder Timeout warten und ggf. Receive abholen, ... wieder von vorne)

Harald
 
Warum weißt Du nicht, zu welchem Gerät das SEND ging? Hast Du keine Schrittkette? (SEND zu Adresse 1 und auf Antwort oder Timeout warten und ggf. Receive abholen, SEND zu Adresse 2 und auf Antwort oder Timeout warten und ggf. Receive abholen, ... wieder von vorne)

Harald
doch funktioniert es aber gibt langsamer antwort . habe so alarm gemacht wenn mehr 30 grad dann blink led dann es blinkt led aber bischhen langsmer zeit deswegen will ich so schneller daten schicken mit clock takt.
 
Bei Modbus RTU auf einen seriellen Bus kannst und darfst Du nicht schneller kommunizieren als die Geräte antworten. Das dauert halt ein paar hundert Millisekunden je Gerät, und einmal "reihum" jedes Gerät abfragen ist die Summe der Zeiten.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
doch funktioniert es aber gibt langsamer antwort . habe so alarm gemacht wenn mehr 30 grad dann blink led dann es blinkt led aber bischhen langsmer zeit deswegen will ich so schneller daten schicken mit clock takt.
Kommt ja nun auch auf Deinen Anwendungszweck an. Wenn Du eine Raumtemperatur überwachst, oder aber die Außentemperatur, dann langt einmal die Minute völlig.
Daher würde ich nun nicht unbedingt zyklisch abfragen wollen.
Beim Test mag es vielleicht nervig sein wenn die Reaktion erst einige Sekunden später eintritt, aber im Betrieb ist das fast egal, man schaut ja nicht dauernd auf den Wert.

Wenn Du unbedingt sehr schnelle Daten haben willst, dann sollte man vielleicht überlegen keine langsame Verbindung zu nutzen sondern direkt einen Fühler an der SPS anschließen.
 
Zurück
Oben