Hallo,
ich arbeite mit dem Modbus an einem Leistungssteller (JUMO TYA 201). Der Verbindungsaufbau funktioniert ohne Probleme, jedoch schaltete der Leistungssteller nach einer gewissen Zeit in den Modus "Busfehler" um, da keine Verbindung aufrecht gehalten wird.
Hier mein Beispielcode:
[
attachment=56721]
Jetzt suche ich nach einer Lösung wie ich den Modbus aktiv haben kann bis ich diesen per VI schließe.
Gruß
p4tti
Hallo p4tti,
wie strikt ist die Vorgabe "ohne etwas zu schreiben oder zu lesen"?
Kannst du nicht einfach regelmäßig einen Istwert abfragen oder immer wieder den gleichen Stellwert senden?
Das wäre ein Möglichkeit, jedoch finde ich diese nicht sauber.
Ich regel mit dem Leistungssteller eine Heizung und stelle diese z.B. auf einen bestimmten Wert ein und möchte mit dieser heizen bis ich diese ausschalte.
Aber wenn ich keine andere Möglichkeit gibt des Modus "Busfehler" zu umgehen werde ich wohl etwas abfragen müssen.
Ich wunder mich, dass die Verbindung abbricht, ohne dass ich die Session schließe.
Gruß
Patrick
Hallo p4tti,
Zitat:Ich wunder mich, dass die Verbindung abbricht, ohne dass ich die Session schließe.
Die Verbindung selbst bricht wohl nicht ab.
Aber viele Geräte, insbesondere solche mit potentiell gefährlicher Wirkung, haben eine Art "Totmannschalter" eingebaut: wenn innerhalb einer bestimmten Zeitspanne keine Aktion von einer übergeordneten Steuerung kommt, wird das Gerät "sicher gemacht", d.h. (je nach Anwendungsfall) abgeschaltet! (Anderer Fall: Ich habe gerade eine PKW-Kühlwasserpumpe in Benutzung, die geht auf 100% Leistung/Kühlwasserstrom, wenn das Steuersignal wegbleibt…)
Also: Handbuch lesen, dort sollte dieser Timeout-Wert genannt sein. Und dann eben regelmäßig Steuerbefehle senden!
Als Stichwort fürs Handbuch evtl noch Watchdog, Trigger!
Ich habe mich jetzt damit angefreundet den Leistungswert auszulesen und somit den "Busfehler" zu umgehen.
Dafür habe ich eine While Schleife aufgebaut, soweit so gut. Jedoch hängt sich jetzt anscheinend nach einer gewissen Zeit der Modbus selber auf. Vllt liegt es auch an der verwendeten Plasmionique_Modbus_Libary. Oder daran das ich jetzt mit LV 2016 arbeite und diese Libary nicht mit der Version kompatibel ist?
[
attachment=56727]
Gruß
Patrick
Hallo Patrick,
vielleicht hängt es ja auch mit den vielen Knicken in den Drähten zusammen, dass die Daten nicht mehr fließen wollen!? (
)
Ich habe die Drähte jetzt alle geglätten und im richtigen Verrundungsradius ausgelegt, leider immernoch keine Funktion
(30.09.2016 09:50 )p4tti schrieb: [ -> ]Vllt liegt es auch an der verwendeten Plasmionique_Modbus_Libary. Oder daran das ich jetzt mit LV 2016 arbeite und diese Libary nicht mit der Version kompatibel ist?
Das halte ich für unwahrscheinlich. Was ist die Fehlermeldung, wenn es nicht funktioniert? Wie oft liest du aus - vielleicht lastet du den Modbus-Slave zu sehr aus? Alternativ musst du den Fehler halt abfangen, dh. im Fehlerfall TCP schließen und wieder neu aufbauen. Das darf nicht mehr als einige ms dauern.
Gruß, Jens