M Bus Protokoll in einer 1212c CPU erstellen (TIA Portal)

Dynasti

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

und zwar muss ich einen Stromzähler mit einer M-Bus Schnittstelle über eine serielle Schnittstelle der 1212c auslesen. Dazwischen ist noch ein Pegelwandler geschaltet, der mir das M-Bus auf seriell wandelt. Nun muss ich das M-Bus Protokoll quasi auf der S7 nachstellen um zu kommunizieren. Hab schon versucht einen DB im M-Bus Code zu erstellen (als Telegramm im Sendepuffer), dennoch bekomm ich keine Auslesung zu Stande. Hat jemand Erfahrung damit? Beispielweise wie ich ein solches M-Bus Telegramm erstellen kann, was im Sendepuffer bereit stehen muss und was in den Empfangspuffer reingehört . Bin dankbar für jegliche Hilfe und bedanke mich schonmal für die Antworten.


Mfg
Dynasti
 
Hast du wirklich nur einen reinen Pegelwandler? Dann ist das eine sportliche Aufgabe. Ich habe M-Bus aus dem Grunde über ein Gateway angebunden welches das M-Bus Protokoll abwickelt. Und selbst damit war das noch fummelig.

Schau dir mal den Code von verfügbaren M-Bus Bibliotheken an, hier z.B.
rSCADA - Raditex control systems

Vielleicht gibt es auch fertig übersetzte Demoprogramme womit man M-Bus Teilnehmer abfragen kann.
Ich würde damit erstmal versuchen das Ganze am PC ans Laufen zu bekommen um zu sehen was da so hin- und hergeschickt wird, und es gibt es ja noch die offizielle Protokollbeschreibung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mittlerweile wirklich zu einer schweren Aufgabe geworden....Leider habe ich diese Vorraussetzungen mit der Hardware. Nichteinmal der Hersteller kann mir da weiterhelfen ;) .
Ich weiß ja wie so ein Telegramm aussieht und aufgebaut ist aber das Problem ist die Anwendung im TIA Portal. Hilfreich wäre auch wie das Senden von Baud/Start/C-Feld/A-Feld usw. aussehen könnte. Hatte hier auch schon ein ähnliches Thema entdeckt aber leider ist der Ersteller schneller als die Antworten gewesen und nun lange nicht mehr Online gewesen.

Eventuell lässt sich noch ein gutes universelles Ausleseprogramm finden was am besten noch kostenlos ist bzw. wenig Kosten verursacht, die Zählerwerte auf dem PC ablegt und ich dann auf diese Datein mit der 1212c zugreifen kann.
Wäre aber nur die Notlösung falls es gar nicht klappt.

Danke für die Codes und weitere Hilfe ist immer willkommen.
 
@Dynasti
und wenn du noch 5 weitere Threads hier eröffnest, dann wird dir hier mit Sicherheit keiner die Arbeit abnehmen.

http://www.sps-forum.de/feldbusse/5...ens-simatic-step-7-basic.html?highlight=m-bus

http://www.sps-forum.de/feldbusse/6...1241-rs232-und-m-bus-auslesen-tia-portal.html

Das, was du wissen musst, um so etwas umzusetzen (Link zur Protokollbeschreibung; Verweis auf User im Forum, die so etwas ansatzweise schon gemacht haben; etc.),
das steht doch bereits im Thread von Ende Januar.

P.S.
Bzgl. prinzipieller serieller Kommunikation mit S7-1200 findet sich auf die schnelle z.B. bei Siemens folgendes:
http://www.google.de/url?sa=t&rct=j...rICIAw&usg=AFQjCNHy4nbUgq2MzYjLJhQwDsw1k6hJ5g

da kann man sich bestimmt auch noch etwas abschauen.
 
Zuletzt bearbeitet:
Dazwischen ist noch ein Pegelwandler geschaltet, der mir das M-Bus auf seriell wandelt.

Ich sage es ungern, aber mit einem Pegelwandler wirst du es nicht hinbekommen.
Das ist selbst für Profis einer mehrwöchige Arbeit bis es sicher und reproduzierbar funktioniert.
Daher kann ich dir nur zu einem Gateway raten.
Alles andere ist, so wie ich sehe sehe, schade um die Zeit.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

das Auslesen über das M-bus Programm klappt problemlos über ein Programm (MB Sheet von Relay), also müsste die Kommunikation vorhanden sein. Ich muss ja im Prinzip nur dieses REQ_UD2 Telegramm an den Zähler senden und dieser antwortet mir dann über diese Anfrage der Daten 2, mit einem RSP_UD Telegramm. Nichts anderes macht dieses M Bus Sheet Programm auch und über einen DB lässt sich dieser hexadezimal Code übertragen. Initialisierung der Slaves findet auch nicht statt, es geht direkt das REQ_UD2 raus. Das Programm lässt gleichzeiitig ein Telegramm Tool laufen, in dem man sieht was im Tx Puffer steht bzw im Rx Puffer ankommt. Habe leider nur die Anhaltspunkte aus diesem M-bus Programm, vllt macht es gleichzeitig etwas was ich nicht mitbekomme ;). Verlass mich da aber auf den Tx bzw Rx Puffer.

Auf der SPS klappt es leider noch nicht. Ich sende über den SEND_PtP direkt ein REQ_UD2 zum Zähler und erwarte dann eigentlich das Ausleseprotokoll über das RSP_UD Telegramm im Empfangspuffer, laut Protokollbeschreibung 56 Byte groß. Bekomm auch eine DONE Bestätigung vom Operanten SEND_PtP also vom Senden. Allerdings wird nichts Empfangen, da auf dem NDR des RCV_PtP keine Bestätigung eintrifft und auch im Empfangspuffer nichts landet.

Mein DONE Ausgang setzt mir einen merker über einen P_TRIG und dieser Merker schaltet dann die p Flanke meines REQ Eingangs beim RCV_PtP. Stimmt denn diese logik vom senden / empfangen? Oder habe ich etwas vernachlässigt wie zum Beispiel eine Wartezeit zwischen Sendebestätigung und Empfangsstart.
Übertrage mit 2,4kB und gerader Parität RX / TX gedreht am Pegelwandler.
Eventuell Baudrate zu hoch oder falsche Parität?


PS: Noch eine andere Frage:
Und zwar lässt sich das Protokoll des M-Bus Programms in einer CSV Datei abspeichern, gibt es da eine Möglichkeit den Datensatz in die SPS zu bekommen?

Gruß und Danke
Dynasti
 
Hallo,

habe es nun hinbekommen :), läuft alles bestens und vielen Dank nochmal für die Hilfestellungen.


Gruß
Dynasti
 
Zurück
Oben