Hallo, aus einem anderen Projekt heraus habe ich den Bedarf an einem M-Bus Interface. Dazu habe ich schon so einiges im Netz gefunden, bin mir aber unsicher was man da wirklich nehmen kann. Der M-Bus an den ich ankoppeln möchte hat die Besonderheit das er im nicht mit den sonst üblichen 36V Ruhepegel, sondern 18V arbeitet. Der Arbeitspegel (Master) ist dann entsprechend 10V und nicht 24V wie beim "Original" M-Bus. Das Bus-Prinzip beim Slave ist jedoch dasselbe (bezüglich Stromaufnahme). Mein erstes M-Bus Interface (2-draht_to_ttl.png) habe ich mit Hilfe dieses Forums gebaut, welches letztlich nur ein Pegelwandler war um von 18V/10V auf 5V/0V zu kommen um damit dann über einen TTL-USB Serial-Adapter im Terminal auf dem PC die Daten eines Master lesen zu können. Das hat auch funktioniert, jedoch kann ich damit weder senden noch die Slave-Antworten empfangen. Dann habe ich einen anderen Aufbau aus einem anderen Schaltplan getestet, welcher explizit als "M-Bus Master" deklariert war (m-bus_pegelwandler.png), dieser bot sogar eine galvanische Trennung. Damit konnte ich dann Master spielen und einem Slave sowohl Daten senden, als auch seine Antworten empfangen. Nun suche ich nach einer Schaltung mit der ich als Slave arbeiten und Daten vom Master lesen aber auch selbst senden kann. Mir ist klar das ich mich immer für die ein oder andere Variante entscheiden muss. Ich möchte auch bewusst keinen integrierten Baustein einsetzen wie den TSS721A, also mit Standard-Komponenten aufbauen. Eine galvanische Trennung mittels Optokoppler erscheint mir sehr sinnvoll und wäre gewünscht. Hat da jemand einen Schaltungsvorschlag für mich? Oder wie ich erkenne ob es sich um eine Slave-Schaltung handelt?
weil du da schon im Thema bist: welche wäre denn für die Vitotronic 200 KW1? Soll zwar bald ersetzt werden, aber die Termine von meinem HB sind nicht die genauesten... Wollte das auch schon mit dem Optolink anfangen, aber das ist ja auch eine Bastelei.
:
Bearbeitet durch User
Olli Z. schrieb: > Hat da jemand einen Schaltungsvorschlag für mich? Ich habe 2006 eine Schaltung entwickelt. Ich steuere bis heute einen Vailant Brennwert - Heizkessel. Bei Bedarf kann ich Dir die Eagle Dateien schicken. mfg Klaus
Klaus R. schrieb: > Ich habe 2006 eine Schaltung entwickelt. Ich steuere bis heute einen Danke fürs teilen! Ist das ein M-Bus Slave? Oder kann der evtl. sogar beide Modus? Wozu wird die DTR/CTS Steuerung benötigt? Läuft das nicht auch ohne? Wie sind die Trimmer einzustellen?
:
Bearbeitet durch User
Olli Z. schrieb: > Wie sind die Trimmer einzustellen? So, dass beim Senden die Pegel stimmen und beim Empfang die Schaltschwelle ungefähr in der Mitte liegt (max. Störabstand). Auf der Sendeseite muss erst R1 abgeglichen werden und dann R2, weil Änderungen von R1 die Einstellung von R2 beeinflusst. Oder was meinst du mit deiner Frage.
Olli Z. schrieb: > Ist das ein M-Bus Slave? Ziemlich sicher nicht, der versorgt nämlich nicht den Bus mit Strom. Das ist mit an Wahrscheinlichkeit grenzender Sicherheit ein Master. Sieh Dir mal das hier an: https://piers.rocks/mbus/m-bus/iot/slave/pi/esp8266/2019/01/08/mbus-slave-schematic.html
Olli Z. schrieb: > mbus-usb-example-schematic.png https://github.com/rscada/libmbus/blob/master/hardware/MBus_USB.pdf
Auch das ist ein Master (wie in der URL auch drinsteht). MBus-Devices werden üblicherweise über den Bus gespeist, oder hat hier schon mal wer 'ne Wasseruhr mit zusätzlichem Stromversorgungsanschluss gesehen?
Olli Z. schrieb: > Ist das ein M-Bus Slave? Oder kann der evtl. sogar beide Modus? > Wozu wird die DTR/CTS Steuerung benötigt? Läuft das nicht auch ohne? > Wie sind die Trimmer einzustellen? Hallo, ich war noch mit es anderem beschäftigt, deswegen melde ich mich erst jetzt. Ich habe zwei Wärmemengenzähler im Einsatz, Sontex Supercal 539. Man kann diese Zähler auch über den MBus mit Strom versorgen. Das habe ich gerne angenommen, denn ich wollte nicht nach 6 Jahren eine Batterie tauschen, wenn das überhaupt machbar wäre. Also der MBus Slave ist der Wärmemengenzähler. Von denen kann es viele geben. Der Kern des Slaves ist ein richtiger Microprozessor. Der MBus Master ist eigentlich nur ein Pegelumsetzer ohne besondere Fähigkeiten. Der Master spricht jeden Slave einzeln mit seiner Adresse an. DTR Data Term Ready Damit wird vom Master den Slave Empfangsbereitschaft signalisiert. Der MBUS wird bei Ready hochgefahren, bei Not Ready heruntergefahren. Sollten auf dem MBus mehrere Teilnehmer gleichzeitig sprechen, fährt man den Bus kurz herunter und wieder hoch. Die Slave reagieren auf den Pegel des MBus. CTS Clear to Send Der Master erhält das Signal, der MBus hat Betriebsspannung. Mit Trimmer R1 und R2 wird der obere und untere Pegel des MBus eingestellt. Als Schalter nehme ich hier einen linearen Spannungsregler. Er ist für den relativ langsammen MBus schnell genug und die Spannungen werden exakt eingehalten. Die Slave erhalten über die Spannungsimpulse 24V/12V ihre Informationen, also spannungsmoduliert. Der Slave antwortet dem Master über die Modulation seines Stromverbrauchs zwischen 11 bis 20 mA. Jeder Slave hat einen Ruhestrom von einigen, wenigen mA. Mit jedem weiteren Slave erhöht sich der Ruhestrom des MBus. Und wenn 10 Slave am MBus wären, dann hätte man schon ca. 5 mA x 10 = 50 mA Ruhestrom. Jetzt meldet sich ein Slave mit 11 bis 20 mA. Die werden dann den 50 mA hinzuaddiert. Also muß man mit dem Trimmer R10 schon ziemlich genau die Schalthysterese einstellen. Bei 2 Slave ist das einfacher. Teuere Master können diese Hysterese automatisch einstellen. Das ist zwar kein Hexenwerk, war für mich aber nicht notwendig. mfg Klaus
In meiner Heizung ist der Master die Steuerungsplatine (VR18) und der Slave das Bedienteil. Mein Plan war das ich die Bedienung über meine Hausautomation durchführe und darüber dann auch die internn Sensoren der Heizung abfragen kann. Daher ist es für mich von besonderer Bedeutung einen Slave-Aufbau zu haben. Die weitere Besonderheit ist auch der Spannungspegel von 18V. Das wird sicher Einfluss auf die Dimensionierung der Schaltung haben.
Klaus R. schrieb: > Der MBus Master ist eigentlich nur ein Pegelumsetzer ohne besondere > Fähigkeiten. Der Master spricht jeden Slave einzeln mit seiner Adresse > an. Der MBus-Master versorgt den Bus mit Strom, und ist deswegen je nach Anzahl angeschlossener Geräte unterschiedlich aufgebaut. Wenn das keine "besondere Fähigkeit" ist, dann weiß ich auch nicht. Die üblichen Schaltungen, die man für MBus-Master findet, können sechs Geräte mit Strom versorgen; Master für mehr Geräte werden schaltungstechnisch deutlich aufwendiger. Olli Z. schrieb: > In meiner Heizung ist der Master die Steuerungsplatine (VR18) und der > Slave das Bedienteil. Tatsächlich? Das Bedienteil ist also ein MBus-Gerät (mit Adresse) und wird von der Steuerungsplatine angesprochen? Das klingt unerwartet. Und das würde Deinen Plan sehr verkomplizieren, denn ein MBus-Master kann nicht mit einem anderen MBus-Master kommunzieren, das aber müsstest Du tun, denn Deine Hausautomatisierung ist logischerweise ein Master. Wahrscheinlicher ist es, daß das Bedienteiil ein MBus-Master ist und die Steuerplatine ein Slave; das Bedienteil steuert die Kommunikation, indem es bei der Steuerplatine Daten anfordert. In so einem Fall trennt man das Bedienteil vom Bus und hängt seinen eigenen Master an den Bus, der dann wiederum mit der Steuerplatine "redet". Eine kommerzielle PC-Software zum Auslesen von MBus-Geräten (und zum Einstellen von Parametern etc.) ist MBSheet von der Firma Relay: https://www.relay.de/produkte/software/mbsheet Diese Software kann bei beliebigen MBus-Geräten Datentelegramme anfordern, decodiert sie entsprechend der MBus-Spezifikation und stellt die Ergebnisse hübsch aufbereitet dar. Das Decodieren kann man auch selbst machen, dazu eignet sich libmbus http://www.rscada.se/libmbus/ (Source auf Github).
Klaus R. schrieb: > Ich habe 2006 eine Schaltung entwickelt. Ich steuere bis heute einen > Vailant Brennwert - Heizkessel. Hallo, hier habe ich mich vertan. Den MBus nutze ich nur für meine Wärmemengenzähler. Der Vailant Brennwert - Heizkessel arbeitet mit einem eBUS. Der Bus ist völlig anders als der MBus. Den eBus Koppler wollte ich nicht selber basteln, es war auch keine Zeit zu verlieren und habe ihn mir von hier besorgt. https://esera.de/produkte/ebus/ Er lief sofort und ohne Störungen. Der eBus ist zwar gut dokumentiert und die Befehlssätze auch definiert. Nur hat jeder Betreiber auch die Freiheit eigene Befehle hinzuzufügen. Und davon hat Vailant reichlich gebrauch gemacht. Somit war das Vailant - System weitgehend proprietär. Aber dann tat sich etwas zwischen 2009 und 2010. Seit dem lese ich den Bus nicht nur, sondern kann auch viele Sachen Steuern. Damals war dieser Thread mein Durchbruch. https://community.symcon.de/t/vaillant-therme-ueber-ebus-steuern/26181 Terenyi war der User der ein wirklich gutes PHP Programm für einen eBus Connector geschrieben hat. In PHP kann man leicht grausamme Scripte schreiben. Terenyi war da ganz anders, genial. https://community.symcon.de/t/ebus-connector/30502 Der heute beste Einstieg ist aber eine neue Vorgehenweise. Sie umfaßt auch aktuelle Vailantgeräte. https://www.verdrahtet.info/2021/05/15/ebus-logger-heizungsdaten-direkt-auslesen/ Der maßgebende Treiber ist John. https://github.com/john30/ebusd Das mußte noch einmal wieder raus. Vailant hatte mich mit ihrem proprietären Code doch einige Zeit beschäftigt. mfg Klaus
DerEinzigeBernd schrieb: > Olli Z. schrieb: >> In meiner Heizung ist der Master die Steuerungsplatine (VR18) und der >> Slave das Bedienteil. > Tatsächlich? Das Bedienteil ist also ein MBus-Gerät (mit Adresse) und > wird von der Steuerungsplatine angesprochen? Das klingt unerwartet. Ja, natürlich. Die Heizung läuft grundsätzlich auch ohne Bedienteil. Zudem gibt es die Möglichkeit das interne Bedienteil auszuhebeln und über einen 2-Draht-Bus (M-Bus) woanders hin zu platzieren. Ebenso wie eine zusätzliche Bedieneinheit an eben diesen Bus anzuschließen. Außerdem ist es doch ganz logisch das das Bedienteil ein Slave sein muss, da es ja nur Soll- und Ist-Werte ausgibt, selbst aber keine Regelaufgaben übernimmt, dafür ist ja die VR18 da. Also denke ich das meine Idee das Bedienteil zu simulieren, schon richtig sein sollte. Einiges an den Datagrammen konnte ich ja schon entschlüsseln (siehe meine anderen Threads hier im Forum) indem ich als M-Bus Master ein solches Bedienteil angeschlossen hatte. Aber welche Rolle spielt nun der unterschiedliche Spannungspegel dabei? Der M-Bus in der Viessmann OC arbeitet mit 18V High und 10V Low. Da traue ich mich nicht ein reguläres M-Bus Interface mit 36V und 24V anzuschließen. Verringere ich die Spannung auf die Hälfte hat das bei einfachen Schaltungen mit berechneten Widerständen sicher massive Auswirkungen auf die Arbeitspunkte der Transistoren sowie die berechneten Stromflüsse?
:
Bearbeitet durch User
Olli Z. schrieb: > Verringere ich die Spannung auf die Hälfte hat das bei > einfachen Schaltungen mit berechneten Widerständen sicher massive > Auswirkungen auf die Arbeitspunkte der Transistoren sowie die > berechneten Stromflüsse? Nicht unbedingt. Zeig mal Deine Schaltung. mfg Klaus
Klaus R. schrieb: > Olli Z. schrieb: >> Verringere ich die Spannung auf die Hälfte hat das bei >> einfachen Schaltungen mit berechneten Widerständen sicher massive >> Auswirkungen auf die Arbeitspunkte der Transistoren sowie die >> berechneten Stromflüsse? > Nicht unbedingt. Zeig mal Deine Schaltung. Hust, damit habe ich diesen Thread ja begonnen, siehe gaaanz oben rechts :-)
Olli Z. schrieb: > Hust, damit habe ich diesen Thread ja begonnen, siehe gaaanz oben rechts > :-) Hallo, habe ich mir bald gedacht. Hoffentlich hast Du damit nichts ausser Betrieb gesetzt. Deine Schaltung erzeugt für Low 34 V - 12,73 V = 21,27 V Für High 34 V - 0,80 V = 33,2 V >> Der M-Bus in der Viessmann OC arbeitet mit 18V High und 10V Low Ich habe mal eine Anpassung für Viessmann gemacht. Versorgungsspannung auf 18 V heruntergesetzt. Durch ändern des Spannungsteiler R3 & R4 habe ich die Schulter auf 7,91 V gelegt. Die Viessmann Schaltung erzeugt für Low 18 V - 7,91 V = 10,09 V Für High 18 V - 0,80 V = 17,2 V Wie Du siehst, diese Schaltung schaltet nicht ganz auf 0 V durch. Der MBUS sollte so auch für Viessmann funktionieren. Auf 1 V kommt es da auch nicht an. In Deiner Schaltung müßte der Slave schon mit 20 mA antworten. Sonst schaltet der BC337 nicht durch. mfg Klaus
Klaus R. schrieb: > Deine Schaltung erzeugt für Low 34 V - 12,73 V = 21,27 V > Für High 34 V - 0,80 V = 33,2 V Ne, das ist ein Mißverständnis. Ich habe die rechte Schaltung nachgebaut und mit 18V betrieben, nicht mit 36V.
Olli Z. schrieb: > Ne, das ist ein Mißverständnis. Ich habe die rechte Schaltung nachgebaut > und mit 18V betrieben, nicht mit 36V. Ja, dann habe ich ja für Dich mit der Schaltung MBus_Viessmann schon die Lösung präsentiert. Das Senden ist damit möglich. Die Strommodulation der ursprünglichen Schaltung sollte auch funktionieren, wenn R7 richtig angepasst wird. >> Der Slave antwortet dem Master über die Modulation seines Stromverbrauchs zwischen 11 bis 20 mA. Kann man ja leicht überprüfen. 11 mA x 39 Ohm = 429 mV 20 mA x 39 Ohm = 780 mV Mit 780 mV sollte der BC337 durchgeschaltet werden. mfg Klaus
Inzwischen habe ich mir diesen M-Bus Master Sketch besorgt um damit das externe Bedienteil etwas weiter zu untersuchen https://download.mikroe.com/documents/add-on-boards/click/m-bus-master-click/m-bus-master-click-schematic-v100.pdf Leider ist das auf 36V dimensioniert und nicht auf 18V wie der interne M-Bus von Viessmann. Dort wird der space durch einen 10V Pegel vom Master erzeugt, beim M-Bus hingegen von einem 24V Pegel. Das müsste man wohl irgendwie umbauen... so ganz verstehe ich die Schaltung mit den Z-Dioden da nicht. Auch die Antworten vom Slave werden damit wohl nicht erkannt. Zwar sind diese Stromgesteuert, aber die Messung über die OpaAmps bezieht sich ja auch auf eine andere Bauteildimensionierung für 36V. Sprich der Spannungsabfall über R9 ist doch entscheidend?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.