PI 4 mit PIC18F Kommunikation

OP #7378558
Lesenswert?

Hallo in die Runde, mein Raspi 4 soll zukünftig die Netzleistungen vom Modbus TC/ IP abholen und an einen PIC18F senden. Welcher PIC es werden soll ist noch offen..

Welche Schnittstelle die EINFACH am PIC zu programmieren ist würdet ihr nehmen ?

I2C SPI USB ??

Vielen Dank schon mal.

OP #7378665
Lesenswert?

Rahul D. schrieb:

Daniel E. schrieb:

an einen PIC18F senden.

Warum? Was kann der, was ein Raspberry Pi nicht kann? Bzw. warum nicht einem Pic mit einer Ethernet-Schnittstelle ausrüsten?

Ethernet ist mir bekannter Maßen mit PIC für nicht Experten nicht so einfach

PIC18F kann ich ganz gut „ohne Ethernet“

Thema Gab es schon mal..

Beitrag "PIC18 Modbus TCP"

Ich brauch eine einfache und für mich !! umsetzbare Lösung, zur Not mal hier oder den Arbeitskollegen mit einer Frage betteln aber nicht komplett Ethernet lernen

Für dem PI 4 gibts ja Beispiele im Netz

Danke

#7378687
Lesenswert?

Daniel E. schrieb:

Ich brauch eine einfache und für mich !! umsetzbare Lösung, zur Not mal hier oder den Arbeitskollegen mit einer Frage betteln aber nicht komplett Ethernet lernen

So kompliziert ist das auch nicht. Bei der richtigen Wahl des Controllers, gibt es auch entsprechende Beispiele. Da fällt der (genau dieser) PIC dann aber wohl raus.

Für dem PI 4 gibts ja Beispiele im Netz

Ja. Damit ist noch nicht die Frage beantwortet, warum du einen Pic an ein Raspberry Pi anbinden willst. Brauchst du den als I/O-Baustein?

OP #7378698
Lesenswert?

Da fällt der (genau dieser) PIC dann aber wohl raus.

Welcher wäre es den da ? Ein PIC32F

Für dem PI 4 gibts ja Beispiele im Netz

Ja. Damit ist noch nicht die Frage beantwortet, warum du einen Pic an ein Raspberry Pi anbinden willst. Brauchst du den als I/O-Baustein?

Der PI 4 soll nur die Leistung, Spannungen am Anschlusspunkt vom Homemanager lesen und zum PIC weiterleiten/ kommunizieren

Das ist alles was er soll.

Danke

#7378727
Lesenswert?

Daniel E. schrieb:

Hallo in die Runde, mein Raspi 4 soll zukünftig die Netzleistungen vom Modbus TC/ IP abholen und an einen PIC18F senden. Welcher PIC es werden soll ist noch offen..

Welche Schnittstelle die EINFACH am PIC zu programmieren ist würdet ihr nehmen ?

Für Modbus bietet sich UART mit RS485 an. Dann kannst Du einen käuflichen Modbus/TCP auf Modbus/RTU (seriell RS485) Umsetzer nehmen und das Modbus-Protokoll direkt auf dem PIC verarbeiten. Modbus/RTU ist ein wenig unterschiedlich zu Modbus/TCP, bei dem das TCP bereits die korrekte Übertragung sicherstellt. Bei Modbus/RTU fällt der Ethernet Header weg, und es kommt am Ende eine Prüfsumme dazu.

So einen Umsetzer kann man sich auch leicht selber programmieren, aber es gibt das auch fertig zu kaufen, und in der Industrie wird sowas auch eingesetzt.

Wenn Du das ganze nicht nur für Dich selber machen willst, solltest Du das genau so machen. Dann kann wer anders auch einfach ein anderes Modbus-Gerät anschließen.

Es gäbe noch Modbus/Ascii, aber das verwendet heutzutage niemand mehr. Das war nützlich, als Kommunikationsstrecken noch 7-bittig waren, oder 5-Bit Baudot. Das Zeug kommt ja aus den 70'er Jahren.

fchk

OP #7379174
Lesenswert?

Rahul D. schrieb:

Daniel E. schrieb:

Der PI 4 soll nur die Leistung, Spannungen am Anschlusspunkt vom Homemanager lesen und zum PIC weiterleiten/ kommunizieren

Das ist alles was er soll.

Mit Kanonen auf Spatzen schießen, nur um den geliebten PIC zu nutzen - super Konzept. Und wieder einer Frage ausgewichen: Was soll der PIC überhaupt machen?

Der Pic + LCD soll einen einem Trafo mit Gleichrichter und Tiefsetzsteller betrieben werden, einen Akku tagsüber bei Überschuss laden und am Abend/ über Nacht über eine weiteren Tiefsetzsteller einen Mikrowechselrichter 600 oder 1000 W maximal stromgeregelt versorgen, so dass es ein Nulleinspeisung wird…

OP #7379392
Lesenswert?

Für Modbus bietet sich UART mit RS485 an. Dann kannst Du einen käuflichen Modbus/TCP auf Modbus/RTU (seriell RS485) Umsetzer nehmen und das Modbus-Protokoll direkt auf dem PIC verarbeiten. Modbus/RTU ist ein wenig unterschiedlich zu Modbus/TCP, bei dem das TCP bereits die korrekte Übertragung sicherstellt. Bei Modbus/RTU fällt der Ethernet Header weg, und es kommt am Ende eine Prüfsumme dazu.

So einen Umsetzer kann man sich auch leicht selber programmieren, aber es gibt das auch fertig zu kaufen, und in der Industrie wird sowas auch eingesetzt.

fchk

So ein Adapter/ Konverter kostet auch, 80 Euro wenn ich richtig gesucht habe .. Da macht es auch mein PI4, meine Meinung

Entweder diese Lösung oder keine, weil PIC und Ethernet wird bei mir alleine nichts 🤷‍♂️

#7379470
Lesenswert?

Daniel E. schrieb:

Der Pic + LCD soll einen einem Trafo mit Gleichrichter und Tiefsetzsteller betrieben werden, einen Akku tagsüber bei Überschuss laden und am Abend/ über Nacht über eine weiteren Tiefsetzsteller einen Mikrowechselrichter 600 oder 1000 W maximal stromgeregelt versorgen, so dass es ein Nulleinspeisung wird…

Schwere Geburt... Und das bekommst du (alleine) hin?

Daniel E. schrieb:

So ein Adapter/ Konverter kostet auch, 80 Euro wenn ich richtig gesucht habe .. Da macht es auch mein PI4, meine Meinung

Entweder diese Lösung oder keine, weil PIC und Ethernet wird bei mir alleine nichts 🤷‍♂️

Wie stellst du dir denn die Umsetzung des Raspberry Pi auf PIC vor? Der Modubus-TCP-Konverter muss sein Signal ja irgendwie an den PIC weiterleiten (egal, über welche Schnittstelle). Oder gibt es da schon was fertiges?

Ist von den Sachen überhaupt schon was vorhanden?

#7379481
Lesenswert?

Daniel E. schrieb:

So ein Adapter/ Konverter kostet auch, 80 Euro wenn ich richtig gesucht habe ..

Du hast falsch gesucht. 51€ reichen. https://www.amazon.de/dp/B0B4JNWF7N

Da macht es auch mein PI4, meine Meinung

Dann solltest Du es aber standardkonform machen und nicht deinen eigenen Mist fabrizieren.

Modbus/RTU (seriell, Binärformat): [CODE] [Addr][Func][Data 1....n][CRC1][CRC2] [/CODE]

Modbus/TCP: [CODE] [TransIdH][TransIdL][00][00][00][06]{ff][Func][Data 1....n] [/CODE]

Entweder diese Lösung oder keine, weil PIC und Ethernet wird bei mir alleine nichts 🤷‍♂️

Die noch nicht beantwortete Frage war, warum Du das nicht komplett auf dem Pi implementierst. Der könnte das im Prinzip auch alleine. Wenn Du das auf dem Pi nicht hinbekommst, wirst Du auch die Protokollumsetzung nicht hinbekommen, denke ich. Deswegen der Hint mit den fertigen Gateways.

fchk

#7379494
Lesenswert?

Uart ist zum Austausch selbst gefrickelter Daten das einfachste. Beliebige baudraten und Entfernungen möglich, da bidirektional und ohne clock-signal Problee (Doppelimpulse). In jedem uC vorhanden, simpelste Ansteuerung.

Das ganze protokollgebastel ist trotzdem viel Arbeit: Telegramm-Format, Checksumme, Interrupt - Task synchronisieren (fifos), Timeouts, Fehlererkennung und Behandlung, ...

Viele Designentscheidungen und Pitfalls. Ein fertiges Protokoll zu nehmen (z.b. modbus) oder eine Verbindung mit höheren Mechanismen (z.b. Can) ist da oft sinnvoll.

#7379511
Lesenswert?

Frank K. schrieb:

Deswegen der Hint mit den fertigen Gateways.

Für python gibt es fertige Modbus-Libraries. Ob die auch TCP können, weiß ich nicht (sollte sich aber herausfinden lassen - "not my job at the moment").

Frank K. schrieb:

Der könnte das im Prinzip auch alleine.

Falls irgendwas zeitkritisch-regelungstechnisch gemacht werden muss, wäre der PIC dafür geeignet. Für alles andere würde ich das Raspberry Pi verwenden.

OP #7379602
Lesenswert?

Für den PI 4 gibts das was fertiges für die SMA Umrichter…

Hab mit dem PIC18F schon paar Sachen umgesetzt, läuft stabil und Elektronik Kenntnis gibts bzw. auf Arbeit verfügbar bei den Leiterplatten/ Schaltungsdesignern…

Hätte auch Kollegen für die Software, aber will möglichst alleine vom Fleck kommen, nur für den Notfall/ Backup eben

Wenn sich jemand hier findet auch als Open Source, aber das wird glaube ich nichts….

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren