Forum: Mikrocontroller und Digitale Elektronik Profibus DP -> Arduino/RasPi


von Denni D. (delphi)


Lesenswert?

Hi,

kann mir jemand eine Lösung nennen, wie ich einen Arduino oder RasPi mit 
einem Profibus DP Master verbinde? Es gibt offenbar fertige Umsetzer die 
zumindest aus dem Profibus ein normales RS232 machen, diese sind aber 
relativ teuer.

Davon ab braucht es ja aber wahrscheinlich nach wie vor eine Library für 
das Profibus-Protokoll auch wenn es auf RS232 umgesetzt wurde, oder?

Es sollen nur IST-Werte aus einem Messumformer ausgelesen werden.

von Teo D. (teoderix)


Lesenswert?


von Denni D. (delphi)


Lesenswert?

Da ist ja auch noch jemand wach... Oscars? ;)

Mein Problem ist, ich hab so gar keinen Hang zum programmieren, 
geschweige denn meine eigene Schnittstellenbibliothek schreiben. Wenn da 
nichts fertiges existiert bin ich am Arsch.

Wenn der Master wenigstens automatisch die Daten regelmäßig rauspusten 
würde, aber das passiert nur auf Anfrage über den Bus.

: Bearbeitet durch User
von Teo D. (teoderix)


Lesenswert?

Denni D. schrieb:
> Da ist ja auch noch jemand wach... Oscars? ;)

Stirn runzel?
Was interessiert mich die Selbstbeweihräucherung irgendwelcher 
Multimillionäre? Ich kenn ja noch nich mal einen, von diesen 
Gesichtsverleihern!


> Mein Problem ist, ich hab so gar keinen Hang zum programmieren,
> geschweige denn meine eigene Schnittstellenbibliothek schreiben. Wenn da
> nichts fertiges existiert bin ich am Arsch.

Na so weit würde ich jetz nicht (mit) gehen, aber nah ran würd's mich 
doch bringen ;)

Da wird's schon was geben, das Dich weiter bringt. Nur Geduld und weiter 
suchen.... :/

von Denni D. (delphi)


Lesenswert?

Mehr bleibt mir nicht übrig. Kollege meinte ich sollte den Schrott Bus 
wegschmeißen und was mit ordentlicher Opensource-Technik bauen. Leider 
führt an dem Profibus kein Weg vorbei (Festinstallation).

von blubb (Gast)


Lesenswert?

Profbus is doch nur RS485 mit etwas Protokoll oben druff..

von Uwe C. (Firma: privat) (olmuk)


Lesenswert?

Messumformer dient als Master ?
Du wirst hier und woanders mit Deiner Art
abgesehen von dem erheblichen Problem des Protkolles
keine Antwort finden.
Schrott-Bus???
Komisch das die Industrie seit Jahren auf Schrott setzt.....

von Denni D. (delphi)


Lesenswert?

Uwe C. schrieb:
> Messumformer dient als Master ?

Ja, ein Messumformer, und dieser ist ein Profibus-Master. Alle nötigen 
Infos in einem Satz.

> Du wirst hier und woanders mit Deiner Art
> abgesehen von dem erheblichen Problem des Protkolles
> keine Antwort finden.

"Deiner Art"? Sorry, ich glaube wenn du jetzt anfangen willst zu 
stänkern will ich von dir auch keine Antwort haben. Du scheinst ja eh 
alles anders zu verstehen als man es schreibt?

> Schrott-Bus???
> Komisch das die Industrie seit Jahren auf Schrott setzt.....

Und schon wieder, lies was ich oben geschrieben habe und verstehe die 
Worte.
Nichts desto trotz dass es nicht meine Worte waren: wenn die Industrie 
nicht die Protokolle offen legt ist es in erster Linie nutzlos für 
nicht-industrielle Zwecke.

von Denni D. (delphi)


Lesenswert?

blubb schrieb:
> Profbus is doch nur RS485 mit etwas Protokoll oben druff..

Ja klar, aber ich finde nirgendwo eine Doku oder Bibliothek um was damit 
machen zu können. :) Hast du eine Quelle?

von Teo D. (teoderix)


Lesenswert?


von Juli (Gast)


Lesenswert?

Also zum Profibus gibt es zahlreiche Unterlagen und die Funktionsweise 
ist auch nicht geheim, weil es eben auf RS485 basiert.
Schau mal unter folgendem Link, da hi ts viele kostenlose Dokumente:

http://www.profibus.com/download/?pxdprofibusfilter_technology[0]=2&pxdprofibusfilter_technology[1]=3

Zu deiner eigentlichen Frage wie man einen RasPi mit dem Profibus zum 
laufen bringt, kann ich lediglich nur sagen dass du dir ein RS485 
Transceiver IC besorgst und den kannst du an einen UART vom RasPi dran 
hängen. Die Telegramm-Auswertung musst du Software-seitig umsetzen. Ob 
es da fertige Libs gibt, kann ich dir auch nicht sagen, da ich mit einem 
RasPi nicht viel arbeite.
Um welchen Profibus handelt es sich? DP-V0, DP-V1, DP-V2, PA?
Soll der RasPi denn als Master (Klasse 1 oder 2) oder Slave dienen?
Mit welcher Baud-Rate läuft der Bus denn aktuell?

Im Zweifelsfall kann ich dir dazu Unterlagen privat zukommen lassen, da 
ich sie nicht öffentlich zur Verfügung stellen darf.

Gruß Julian

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Denni D. schrieb:
> Ja, ein Messumformer, und dieser ist ein Profibus-Master.

Mir kommt das merkwürdig vor. Magst Du eine Typenbezeichnung nennen?

von Denni D. (delphi)


Lesenswert?

Juli schrieb:

> Um welchen Profibus handelt es sich? DP-V0, DP-V1, DP-V2, PA?
> Soll der RasPi denn als Master (Klasse 1 oder 2) oder Slave dienen?
> Mit welcher Baud-Rate läuft der Bus denn aktuell?

Soweit ich das verstanden habe noch mit gar nichts, weil der Bus bisher 
noch nicht angeschlossen ist. Der Umformer ist dann aber auf jeden Fall 
der Master, ich denke laut Diagram in dem Betriebshandbuch können nur 
Master Daten anfordern?

> Im Zweifelsfall kann ich dir dazu Unterlagen privat zukommen lassen, da
> ich sie nicht öffentlich zur Verfügung stellen darf.

Das wäre prima :)

Rufus Τ. F. schrieb:
> Denni D. schrieb:
>> Ja, ein Messumformer, und dieser ist ein Profibus-Master.
>
> Mir kommt das merkwürdig vor. Magst Du eine Typenbezeichnung nennen?

https://portal.endress.com/wa001/dla/5000319/0381/000/05/TI00194CDE_1514.pdf

:)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Denni D. schrieb:
> https://portal.endress.com/wa001/dla/5000319/0381/000/05/TI00194CDE_1514.pdf

Dem entnehme ich nicht, daß das ein Profibus-Master sein soll.

von Uwe C. (Firma: privat) (olmuk)


Lesenswert?

Ich bin es halt nicht gewohnt als Fragesteller der um
eine Hilfestellung bittet ( wo war bitte? ) rum k...
das Er sich mit Schrott beschäftigen muss.

Deine Antwort das die Industrie keine Daten offenlegt
bestätigt das. Warum soll jemand der gutes Geld verdient
es "fertig" zur Verfügung stellen?
Es gibt sehr gute, leider recht grosse Literatur über den
Bus und vor allem das Protokoll.
Hardwartechnisch ist das heute gut machbar, aber wenn Du nicht
in die Tiefe einsteigen willst wird es leider nichts werden.
Habe mich auch schon damit beschäftigt und habe aufgegeben.
Wenn Du mal google bemühst wirst Du günstige Hardware finden mit
der Du Deinen Sensor auslesen / anschliessen kannst.
Aber dann musste halt Step7/TIA/Codesys, also wieder programmieren.

Viele Erfolg

von Michael B. (mb_)


Lesenswert?

Denni D. schrieb:
> kann mir jemand eine Lösung nennen, wie ich einen Arduino oder RasPi mit
> einem Profibus DP Master verbinde?
> Es sollen nur IST-Werte aus einem Messumformer ausgelesen werden.

Ich verstehe das jetzt so, dass der Messumformer der PB-Slave ist und 
der Raspi den DP-Master bildet.

Mit etwas Arbeit könnte man das mit meiner PiLC bzw. dessen 
PyProfibus-Modul ans Laufen bekommen:
https://bues.ch/a/pilc
https://bues.ch/a/profibus

PiLC nutzt den RS232 des Raspi und macht die ganze Profibus-Geschichte 
in Software. Ein PB-ASIC wird hier nicht benötigt.
Entsprechend langsam ist es dann aber auch.
Eine Baudrate von 19200 ist mit dem Raspi möglich. Je nach Slave 
vielleicht auch noch etwas mehr. Das kommt dann darauf an, ob es eine 
entsprechende Baudrate gibt, die der Slave und der Raspi gleichzeitig 
unterstützen.

Die PiLC ist allerdings weit entfernt von einer fertigen Lösung. Derzeit 
funktioniert PiLC nur im DP Master Modus und auch nur mit einem Slave am 
Bus.

Die PiLC ist Open Source und gute Beiträge sind entsprechend willkommen. 
:)

von Michael B. (mb_)


Lesenswert?

Juli schrieb:
> Also zum Profibus gibt es zahlreiche Unterlagen und die Funktionsweise
> ist auch nicht geheim

Geheim ist es nicht. Aber teuer.
Frei verfügbar sind sehr sehr wenig Detailinformationen über die 
Protokolle.

>, weil es eben auf RS485 basiert.

RS485 hat nicht viel mit Profibus zu tun. RS485 wird von Profibus-DP als 
Physical-layer verwendet. Das war es aber auch schon. Das komplizierte 
Zeugs läuft alles auf den darüberliegenden Transport- und 
Applikations-Schichten ab.

von Michael B. (mb_)


Lesenswert?

Denni D. schrieb:
>>> Ja, ein Messumformer, und dieser ist ein Profibus-Master.
>>
>> Mir kommt das merkwürdig vor. Magst Du eine Typenbezeichnung nennen?
>
> https://portal.endress.com/wa001/dla/5000319/0381/000/05/TI00194CDE_1514.pdf
>
> :)

Ich sehe da nichts von DPM. Allerdings habe ich es nur grob überflogen.
Kannst du bitte das GSD, was zu zur Inbetriebnahme ja sowieso zwingend 
brauchst, hier mal hochladen?

von Denni D. (delphi)


Lesenswert?

Michael B. schrieb:

> Ich sehe da nichts von DPM. Allerdings habe ich es nur grob überflogen.
> Kannst du bitte das GSD, was zu zur Inbetriebnahme ja sowieso zwingend
> brauchst, hier mal hochladen?

GSD? :)

von Bastler (Gast)


Angehängte Dateien:

Lesenswert?

EIne GSD ist eine Gerätebeschreibungsdatei.
Diese muss jeder Slave haben. Sie werden in einem Projektirungstool wie 
z.B. Step7 eingebunden.
Dort steht drin welche Baudraten der Slave unterstützt, welche Parameter 
wo liegen, mögliche Input-Output Daten, ...

Da dies ein *.txt Datei ist kann man auch selber die Infos rausholen.

Im Anhang eine Datei für ein RS232-Profibus Gateway.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bastler schrieb:
> EIne GSD ist eine Gerätebeschreibungsdatei.
> Diese muss jeder Slave haben

Angeblich ist das Ding hier ja ein Master ...

von Bastler (Gast)


Lesenswert?

Du sagst es: Angeblich...

von Denni D. (delphi)


Lesenswert?

Bastler schrieb:
> Du sagst es: Angeblich...

Sorry, das war das falsche PDF. Hier das richtige:

https://portal.endress.com/wa001/dla/5000000/0396/000/06/BA209CDE_1311.pdf

Ist doch ein Slave:


> Ausgangssignal PROFIBUS-PA gemäß IEC 61158-2, IEC 61158-2, Profil
> PA 2.0
> PA-Funktion Slave
> Übertragungsrate 31,25 kBit/s
> Signalcodierung Manchester II
> Antwortzeit Slave ca. 20 ms
> Ausfallsignal Signal: Statusbit wird gesetzt, letzter gültiger
> Messwert wird gehalten
> Display: Fehlercode
> Physikalische Schicht IEC 61158-2
> Busspannung 9 ... 32 V
> Stromaufnahme Bus 10 mA ±1 mA
> Ausgangssignal PROFIBUS-DP gemäß IEC 61158-2, Profil PA 2.0
> DP-Funktion Slave
> Übertragungsrate 9,6 kBit/s, 19,2 kBit/s, 93,75 kBit/s, 187,5 kBit/s,
> 500 kBit/s, 1,5 MBit/s
> Signalcodierung NRZ-Code
> Ausfallsignal Signal: Statusbit wird gesetzt, letzter gültiger
> Messwert wird gehalten
> Display: Fehlercode
> Physikalische Schicht RS 485


Übrigens: eine GSD-Datei ist nicht vorhanden, mangels entsprechender 
Hardware die diese Datei bräuchte. Der Kasten ist in der Installation 
alleine und wird nur über das Display ausgewertet, durch Ablesen.

Dafür gibt die PDF-Datei ab Seite 19 Aufschluss über die Zusammensetzung 
der Datenpakete? Leider sagt mir das jetzt noch nicht ob ich die Kiste 
durch Senden einer bestimmten Bitfolge dazu bekomme, die Werte zu 
senden.


Die MAX485 ICs sind doch für max. 12V vorgesehen, oder?
Ich hab so einen 5€-8Kanal/24MHz-Logicanalyzer der in Sigrok-Pulseview 
eigentlich ganz gut funktioniert. Ob ich den mal testweise mit einem 
SubD-Stecker über Spannungsteiler anschließe? Ist bekannt, ob die 
Versorgungsspannung bei Profibus generell gleich bleibt oder ob die 
Geräte on the fly the Spannung ändern? Dann würde ich vorher mal die 
Kontakte gegen Gehäusemasse messen und schauen wie viel Spannung da 
anliegt. Der LogicAnalyzer verträgt ja max. ~5V.

Die einzige belastbare Info bezüglich Profibus DP-Pinout ist:

1   VP         +5v supply for termination
2   Rxd/TxD-N  Data Line minus (A-line)
3   DGND       Data Earth
4   Rxd/TxD-P  Data Line plus (B-Line)
5   Shield Earth  Connection Data Earth
Thread   Shield Earth   Connection +5v supply for termination

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.