Modbus RTU PFC200 mit 652er serieller Schnittstelle RS485

luluhühü

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Gelöst Modbus RTU PFC200 mit 652er serieller Schnittstelle RS485

Guten Tag,

ich versuche über Modbus RTU mittels 750-652er Klemme auf einem PFC200 Controller Register auszulesen.
Jedoch kann mein Slave nur eine gewissen anzahl von Registern gleichzeitig ausgeben.
wie kann ich aber alle Werte auslesen?

ich habe mir überlegt
z.B.:

wert 1-10 als erstes zu lesen und im Programm zu speichern,
nach 2 Sekunden sollen die werte 11-20 ausgelesen werden
...
und so weiter
...
und wenn alle Werte ausgelesen sind, dies von vorne zu wiederholen.

aber wie kann ich das realisieren, dass im Programm trotzdem alle Werte angezeigt werden?

mit mehreren Funktionsbausteinen oder mehrere Programmen ?

Ich bin auf dem Gebiet noch ein Neuling.

Vielen Dank für jede Beteiligung an diesem Thema.
 
Zuletzt bearbeitet:
Moin, Dein Problem wird nicht sein, dass das Programm die Werte nicht hält, sondern dass bei Modbus immer alle Register gepollt werden. Mit den Konfiguratoren wirst Du daher nicht arbeiten können. Du wirst daher den Modbus als Funktionsbaustein aus der e!COCKPIT Bibliothek WagoAppPlcModbus realisieren müssen (bei CODESYS 2.3 gibt es auch eine Bibliothek, aber da fällt mir der Name grad nicht ein). Dort kannst Du dann die einzelnen Gruppen in einer Queue definieren und in einer Schrittkette zeitversetzt abfragen. Der Support hat auf Anfrage sicherlich ein Bsp. für Dich. In der Firma hab ich auch eines, aber das dauert aktuell etwas.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin, Dein Problem wird nicht sein, dass das Programm die Werte nicht hält, sondern dass bei Modbus immer alle Register gepollt werden. Mit den Konfiguratoren wirst Du daher nicht arbeiten können. Du wirst daher den Modbus als Funktionsbaustein aus der e!COCKPIT Bibliothek WagoAppPlcModbus realisieren müssen (bei CODESYS 2.3 gibt es auch eine Bibliothek, aber da fällt mir der Name grad nicht ein). Dort kannst Du dann die einzelnen Gruppen in einer Queue definieren und in einer Schrittkette zeitversetzt abfragen. Der Support hat auf Anfrage sicherlich ein Bsp. für Dich. In der Firma hab ich auch eines, aber das dauert aktuell etwas.


Guten Abend,
ja ich mach das NICHT mit dem Konfigurator.
Ich mache das mit dem MyserialMaster FB über die Bibliothek wie Sie schon sagten.
Jedoch weis ich nicht wie ich das realisieren kann mit dem Programm, dass nur 6 Register gleichzeitig ausgelesen werden.
Ich möchte in etwas 30 Register auslesen und programmiere in ST.
jetzt habe ich es mit einer Jobliste und einer wResponselist versucht, aber irgendwie mag das so nicht wirklich...
 
Das ist genau der richtige Weg. Die einzelnen Jobs einfach nur noch in einer Schrittkette/Statemaschine einbinden. Ich hab da ein gutes Bsp. vom Support, komm nur kurzfristig nicht dran. Frag da mal, das beschleunigt Deine Arbeit sicher.
 
@strgalt
Wenn Du schon keinen konstruktiven Mehrwert beibringst, dann zitier mich wenigstens richtig. Meine Aussage bezog sich auf das sequenzielle Lessen von Registergruppen, da der Slave nicht alle Register gleichzeitig bereitstellen kann.
 
habe eine Lösung gefunden:
nach langer Recherche habe das einfach mit einer Jobliste gemacht dann ging das wunderbar :)
Problem ich konnte bisher nur in C und Java PRogrammieren dieser ST war mir noch etwas neu, geht jetzt aber auch ohne probleme :)
Vielen Dank an alle.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@KLM
Was wird das denn?
Ich habe lediglich deine Aussage korrigiert, da diese ganz einfach nicht stimmen kann, egal auf was du dich beziehst.
Der Konfigurator funktioniert nicht mit den Klemmen, egal ob lesen, schreiben oder sonstwas. Fertig!
Und eine Falschaussage zu korrigieren empfinde ich schon als Mehrwert, wenn es Dir nicht gefällt, einfach woanders weiterlesen...
 
habe eine Lösung gefunden:
nach langer Recherche habe das einfach mit einer Jobliste gemacht dann ging das wunderbar :)
Problem ich konnte bisher nur in C und Java PRogrammieren dieser ST war mir noch etwas neu, geht jetzt aber auch ohne probleme :)
Vielen Dank an alle.
Hallo,
wie hast du die Jobliste erstellt?
Gruß Thomas
 
@TomWe
Die Jobliste habe ich aufgetrennt in mehrere Kategorien (siehe Kommentare im Bild),
um unwichtigere Daten seltener abzufragen (Joblist Configuration).1639032515140.png1639032572440.png
Achtung, der Aufwand, die Programmierung einigermassen sauber zu schreiben könnte überwältigend sein für Neulinge.
Es empfiehlt sich auch, Read und Write Variablen abzutrennen um nachvollziehen zu können ob die Werte auch in den Modbus Slave geschrieben und dann korrekt abgelesen werden.
1639032855659.png
Auf Wunsch kann ich eine Exportdatei hochladen, garantiere aber nicht dass sie funktioniert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@TomWe
Die Jobliste habe ich aufgetrennt in mehrere Kategorien (siehe Kommentare im Bild),
um unwichtigere Daten seltener abzufragen (Joblist Configuration).Anhang anzeigen 57938Anhang anzeigen 57939
Achtung, der Aufwand, die Programmierung einigermassen sauber zu schreiben könnte überwältigend sein für Neulinge.
Es empfiehlt sich auch, Read und Write Variablen abzutrennen um nachvollziehen zu können ob die Werte auch in den Modbus Slave geschrieben und dann korrekt abgelesen werden.
Auf Wunsch kann ich eine Exportdatei hochladen, garantiere aber nicht dass sie funktioniert.
Vielen Dank. Das hilft mir sehr ein besseres Verständnis zu bekommen wie sowas zu schreiben ist.
 
Zurück
Oben