' schrieb:Heißt das, dass ich RTS sofort nach dem Senden der Anfrage abschalten muss?
Ja, ist sehe das so.
Zitat:Oder muss ich dafür etwas anderes reinprogrammieren?
Nein, auf jeden Fall nicht mehr als das mit der Handshake-Steuerei.
Zitat:Liegt es vielleicht auch an der "Handshake"-Einstellung und wie kann ich diese in LV bearbeiten?
Ja, ich sehe es so, dass es an der Handshake-Steuerung liegt.
Wahrscheinlich weiß der ModbusPoll-Treiber, dass die Schnittstelle eine RS485 ist und macht dementsprechend alles richtig. Das Problem wird sein, dem LV-Treiber zu sagen, dass er ein "Verbessertes Schnittstellen-Management wegen RS485" machen soll. Auf der Ebene, auf der du programmierst (Applikationsebene) wird dieses Problem aber nicht zu lösen sein. Wenn du den Sendetreiber per Handshake abschalten willst, dauert das aus gegebenen Gründen viel, viel länger, als wenn es der Treiber macht.
Zitat:Ist das die Flusssteuerung?
Ja.
Zitat:Ich sehe das Echo beim Protokoll von MODBUS POLL nicht. Da steht doch nur:
Ich hab noch mal gekuckt. Du hast Recht. Das mit der doppelten Anzeige ist was anderes.
Zitat:Bei LV sieht das Protokoll mit RTS-Ein/Aus, wie ich es nachträglich reinprogrammiert habe, so aus:
Request: 01 03 00 25 00 01 95 C1
Answer: 01 03 00 25 00 01 95 C1 01 03 02 FF EA 78 3B
Das Echo, das entsteht wie ich oben beschrieben habe, kann natürlich vom Treiber eliminiert werden. Ich gehe davon aus, dass der ModbusPoll-Treiber dieses Echo eliminiert, sodass es eine Stufe über dem Treiber gar nicht mehr in Erscheinung tritt. Das Problem auch hier: Der LV-Modbus-Treiber sollte das Echo eliminieren.
Zitat:Aber auch nur manchmal.
Klar: Wenn du in deinem Programm die Handshakeleitungen setzt, dann dauert das mal kürzer, mal länger. Da hast du keinen Einfluss drauf. Wenn es länger dauert, kommt keine Antwort.
Zitat:Ab und zu meldet LV auch ein timeout.
Klar: Es kommt ja nichts an. Zwei Sendetreiber senden gleichzeitig.
Zitat:Aber es steht niemals nur die Antwort der Heizung da. Schnappe ich ggf. noch meine herumgeisternde Anfrage auf? Ein Löschen der Puffer vor dem Senden und Empfangen hat übrigens nichts gebracht.
Nein, es ist keine herumgeisternde Anfrage. Gehe vorerst davon aus, dass das tatsächlich das Echo ist! Puffer löschen nützt natürlich gar nichts: Das Echo ist zeitsynchron zur Anfrage!
Hinweis:
Du kannst den Puffer zwar löschen, dann müsste das Echo verschwinden sein. Du darfst aber erst löschen, wenn das Senden definitiv beendet ist. Das die ganze Löscherei aber wahrscheinlich zu lange dauert, löscht du wahrscheinlich gleich die Antwort mit.
Zitat:Das heißt ich sende im Kreis, oder? Ich sende vom PC zum Konverter, der leitet es aber nicht weiter und so kommt es wieder bei mir an?
Nein, so rum nicht: Der PC sendet schon zum Konverter. Und der auch zur Heizung. Er sendet aber auch zu sich selbst. Die Ausgänge des Sendetreibers heißen T+ und T- - und die sind im Falle einer RS485 mit den Eingängen des Empfängers, die da R+ und R- heißen, verbunden - sonst wäre es ja kein Zwei-Draht-Bus, sondern ein Vier-Draht-Bus wie die RS422. Sobald die Heizung die Anfrage bekommen hat, wird sie die Antwort senden. Da aber T- und T+ vom Konverter noch aktiv sind, zerstört der Konverter praktisch die Antwort der Heizung.