# M-Bus Schnittstelle implementieren in Siemens Simatic Step 7 Basic



## Dynasti (27 Januar 2013)

Sehr geehrte Spezialisten,

wie schon der Titel vermuten lässt, bezieht sich meine Aufgabe eine M-Bus (Meter-Bus) Schnittstelle zu implementieren.
Wäre dankbar für jegliche Tipps bezüglich der Vorgehensweise, zu verwendene Anweisungen und alles was mir weiterhelfen könnte.
Bin in diesem Bereich leider noch etwas unerfahren und dachte mir eigentlich, nach Umgang mit Ablaufsteuerungen und Auswertungen von Positonierungen (allgemeine Automatisierung von Maschinen), wird das schon klappen, ist aber leider eine andere Baustelle.
Gerne beantworte ich alle Fragen die euch helfen, genauer auf mein Problem einzugehen.

Vielen Dank im voraus für die Hilfestellungen.


----------



## uncle_tom (28 Januar 2013)

Hallo,

das M-Bus Protokoll ist kein Geheimniss - die Spezifikationen kann man sich downloaden.

http://www.m-bus.com/files/default.php

Für die Anschaltung an eine S7 bräuchtest du dann noch einen Pegelwandler (M-Bus auf RS232) und einen seriellen CP (z.B. CP340).

Es gibt von Siemens auch einen inoffiziellen M-Bus Treiber:

Link

Diesen Treiber lässt sich Siemens aber vergolden - will heissen, der ist richtig teuer.

Ein "Kochbuch" bzgl. "Treiber"-Entwicklung auf einer SPS-Steuerung gibt es meines Wissens nicht.
Da muss und darf sich jeder selber versuchen.


Mfg
uncle_tom


----------



## IBFS (28 Januar 2013)

uncle_tom schrieb:


> Für die Anschaltung an eine S7 bräuchtest du dann noch einen Pegelwandler (M-Bus auf RS232) und einen seriellen CP (z.B. CP340).
> 
> Es gibt von Siemens auch einen inoffiziellen M-Bus Treiber:
> 
> ...



Supertip - einen CP341 - mit  * Step 7 Basic* verwenden zu wollen. Wir reden heir von der S7-1200.

----

Ich würde mal hier schauen:    http://www.relay.de/frame_3fach.htm

http://www.relay.de/pub/Flyer PDF/Flyer C20_C3.pdf

Vielleicht braucht es noch einen:  Serial Device Server für Ethernet Best.Nr. TCP001

Auf alle Fälle ist es nicht mit irgendeinem simplen Wandler getan.  Das erschließt sich schnell, wenn man sich mit der Materie etwas beschäftigt.

Grüße

Frank


----------



## winnman (28 Januar 2013)

Wo steht was von 1200?


----------



## Dynasti (28 Januar 2013)

Entschuldigt, anbei meine Technische Ausrüstung.

Hardware:
CPU 1212C (Ethernet)
CM 1241 (Kommunikationsmodul für seriellen Datenaustausch über Punkt-zu-Punkt-Kopplung; RS 232)
SM 1231 (Analoge Eingänge)

Software:
SIMATIC Step 7 basic

Bin eigentlich nur den Simatic Manager gewohnt, deswegen muss ich mich erst ein wenig zurechtfinden.
Habt ihr Erfahrungen im Programmieren und mit diesem Protokoll?
Jede kleinste Hilfe könnte mir da helfen, fange in dem Bereich quasi bei null an
Danke


----------



## uncle_tom (28 Januar 2013)

IBFS schrieb:


> Supertip - einen CP341 - mit  * Step 7 Basic* verwenden zu wollen. Wir reden heir von der S7-1200



mal schön die Bälle flachhalten - wo bitte steht in seinem 1. Post was von S7-1200



> Vielleicht braucht es noch einen:  Serial Device Server für Ethernet Best.Nr. TCP001



ja vielleicht, vielleicht aber auch nicht.




> Auf alle Fälle ist es nicht mit irgendeinem simplen Wandler getan.  Das erschließt sich schnell, wenn man sich mit der Materie etwas beschäftigt.



vielleicht solltest *Du* dich erstmal mit der M-Bus Materie beschäftigen, bevor du hier schreibst.


Ich hab selber schon Projekte mit M-Bus realisert - kenne mich also mit der Materie durchaus aus.

Selbstverständlich reicht ein "simpler" Pegelwandler aus, um die M-Bus Physik auf RS232 umzulegen, und diese dann z.B. via CP340/341 bzw. CM1241 auf eine Siemens SPS aufzuschalten.
Andere Steuerungshersteller (z.B. Beckhoff, Saia, Wago, etc.) machen bzw. machten das genauso.
Da der Pegelwandler von Relay aber nicht gerade günstig ist, sind die oben genannten Hersteller (Beckhoff, Wago) mittlerweile dazu übergegangen, eigene Anschaltungen (Klemmen) für M-Bus zu entwickeln.

Wenn man sich den seriellen CP in der Simatic sparen möchte, dann könnte die Variante mit dem Com-Server auch funktionieren.
Dieser sollte via Client/Server Kommunikation (Send/Receive) auch an einer S7 funktionieren.
Link


P.S.
Im übrigen hat ein User hier im Forum so etwas (M-Bus an S7-1200) schon realisiert.
Stichwort "Suchfunktion"
http://www.sps-forum.de/showthread.php/51938-M-Bus-Protokoll


----------



## IBFS (28 Januar 2013)

uncle_tom schrieb:


> - wo bitte steht in seinem 1. Post was von S7-1200
> http://www.sps-forum.de/showthread.php/51938-M-Bus-Protokoll



Mit *Step 7 Basic* lässt sich nun mal nur die S7-1200 programmieren oder? - Egal wie flach der Ball auch gespielt wird.




> Ich hab selber schon Projekte mit M-Bus realisert - kenne mich also mit der Materie durchaus aus.



Ich konnte beim besten Willen dein Basiswissen nicht aus deinem Post erkennen. 
Dafür war die Antwort #2 nicht zielführend genug. Aber das hast du ja mit #6 etwas 
korrigiert wenn man mal vom Intro absieht.

Frank


----------



## IBFS (28 Januar 2013)

winnman schrieb:


> Wo steht was von 1200?



Das ist so ziemlich das sinnloseste Posting, was ich je gelesen habe. 
In der Zeit, also du diese Zeile niedergeschrieben hast, hätte ein
kurzes Nachdenken zur Erleuchtung geführt. Das sich dafür sogar
noch jemand bedankt, macht es nur noch schlimmer.

Frank


----------



## Dynasti (30 Januar 2013)

Hat schon jemand mal mit der Step7 Basic Software, eine M-Bus Schnittselle programmiert? Bzw ist das mit diesen Standart Bausteinen überhaupt möglich? Oder bin ich da auf etwas von Siemens angewiesen?

Gruß


----------



## IBFS (30 Januar 2013)

Dynasti schrieb:


> Hat schon jemand mal mit der Step7 Basic Software, eine M-Bus Schnittselle programmiert?
> Bzw ist das mit diesen Standart Bausteinen überhaupt möglich? Oder bin ich da auf etwas von Siemens angewiesen?



Diesen Hinweis hast du doch hoffentlich gelesen, oder?:



uncle_tom schrieb:


> Im übrigen hat ein User hier im Forum so etwas (M-Bus an S7-1200) schon realisiert.
> Stichwort "Suchfunktion"
> http://www.sps-forum.de/showthread.php/51938-M-Bus-Protokoll



Mehr Wissen, als das dort geschriebene scheint es hier nicht zu geben.


 uncle_tom hat zwar herumposaunt, dass er sich mit der Materie auskennt. Er ist aber leider auch nicht in der Lage eine geschlossene Lösung zu bringen.

Da es also mit Pegelwandler zwar geht, aber sich niemand findet einen fertigen Baustein für die 1200 zu präsentieren, bleibt da doch nur die Lösung
mittels echten Umsetzen, die die M-BUS Daten zyklisch einsammeln und dir danach mittels RS232 oder Ethernet an die 1200 transferieren.

Das kostet zwar mehr, aber erleichtert die spätere Fehlersuche.

Gruß

Frank


----------



## Dynasti (30 Januar 2013)

Ja, den Hinweis hatte ich schon gelesen. Allerdings ist der Ersteller dieses Threads schon ein paar Schritte weiter als ich. Wie es aussieht muss ich mir da selber was programmieren, was wesentlich mehr Zeit beansprucht. Auf jeden Fall danke ich euch für die versuchte Hilfe. Manchmal etwas schade, dass hier einige aufeinander losgehen und das wesentliche Problem aus den Augen verlieren.

Weitere Hilfe ist natürlich immer Willkommen.

Gruß


----------



## uncle_tom (31 Januar 2013)

IBFS schrieb:


> ...
> uncle_tom hat zwar herumposaunt, dass er sich mit der Materie auskennt. Er ist aber leider auch nicht in der Lage eine geschlossene Lösung zu bringen.
> ...



vielen Dank für die Blumen.

Ich hab ihm jetzt den Link zu den M-Bus Spezifikationen geliefert.
Weiterhin hab ich ihm bestätigt, dass es mit seiner Hardware prinzipiell funktioniert.
Zu guter letzt hab ich ihm noch den Link zu einem alten Thread gegeben, in welchem ein User davon berichtet, dass er bereits mehr oder weniger erfolgreich eine M-Bus Kommunikation mit einer S7-1200 am laufen hat.

Was soll ich ihm den noch gutes Tun ?
Soll ich ihm vielleicht auch noch den Treiber schreiben ?

Wenn man sich den alten Thread durchliest, dann schreibt hier ja auch jemand, dass die M-Bus Kommunikation bzw. Spezifikation ziemlich komplex ist, und somit das erstellen eines Treibers etwas aufwendiger sein wird.
Ich hatte bisher leider keine Zeit und Lust mich damit zu beschäftigen - hatte mir aber die M-Bus Specs. schon mal angeschaut.

Mit der "Materie" auskennen, heisst nicht, dass ich ihm einen quelloffenen fertigen Treiber liefern kann und will.
Ich hab bereits mit verschiedenen Steuerungssystemen M-Bus Aufschaltungen realisert (Beckhoff, Saia, Siemens (via VIPA), etc.) - jeweils unter Verwendung von fertigen Treiberlösungen, und hab somit Erfahrung mit M-Bus gesammelt.

Bzgl. Treiberentwicklung bin ich zwar vermutlich kein Profi - für einen vollwertigen S7-Modbus Treiber bzw. die Umsetzung des Beckhoff ADS Protokolls in einer S7 reicht es aber z.B. allemal aus.


----------



## IBFS (31 Januar 2013)

uncle_tom schrieb:


> vielen Dank für die Blumen.



Gerne doch.



uncle_tom schrieb:


> Was soll ich ihm den noch gutes Tun ?
> Soll ich ihm vielleicht auch noch den Treiber schreiben ?



Das hatte ich mir so gedacht 




uncle_tom schrieb:


> Wenn man sich den alten Thread durchliest, dann schreibt hier ja auch  jemand, dass die M-Bus
> Kommunikation bzw. Spezifikation ziemlich komplex  ist, und somit das erstellen eines Treibers
> etwas aufwendiger sein  wird.



Genau aus dem Grund habe ich vom Pegelwandler abgeraten und zu einem Preprozessor (Datensammler) geraten, 
wo man nur noch die Zählerstände abfragt. Auch ist die IB mittels einem M-BUS-Display viel einfacher.

Aber genau diese Idee fandest du ja nicht gut.

Grüße

Frank


----------

