Hallo zusammen, ich grabe meinen alten Thread mal aus Beitrag "Modbus Sunspec Protokoll zu mA oder V Signal" und frage mal in die Runde, ob jemand einen PIC (18 F?) empfehlen kann, welcher hierfür (Modbus TCP) her halten kann? Aktuell programmiere ich einen 18F mit meinem Sohn mit Interrupts/ ADC und PWM, so dass es für mich eventuell leichter erscheint einen PIC zu nehmen. Eigentlich muss der PIC "doch nur" im TCP Netz lauschen, die entsprechenden Daten einlesen, zerlegen und bei XXX Wert ein PWM wert setzen, so wie ich es jetzt schon mache oder stell ich mir das zu einfach vor? Frage, die sich mir gerade stellt, woran erkennt der Controller das es SMA Modbus Daten sind und nicht vom Internetverkehr ? Antworten braucht er jedenfalls nicht. Den gekauften Rasberry Pi 4 würde ich da erstmal lieber wieder zur Seite legen Danke an alle.
Danny_678 schrieb: > und frage mal in die Runde, ob jemand einen PIC (18 F?) empfehlen kann, > welcher hierfür (Modbus TCP) her halten kann? Es gibt genau eine PIC18-Familie mit eingebautem Ethernet MAC/PHY: PIC18F67J60/87J60/97J60. Unterscheiden sich in der Anzahl der Pins, sind absonsten identisch. Wenn Du Ethernet mit einem 8 Bit PIC machen willst, dann wirst Du den tunlichst nehmen. Dazu brauchst Du den TCP-Stack aus der Legacy(!) MLA. Der funktioniert einwandfrei. Ein passendes Board bekommst Du hier, wenn Du nicht selber bauen willst: https://www.olimex.com/Products/PIC/Proto/PIC-P67J60/ > Eigentlich muss der PIC "doch nur" im TCP Netz lauschen, die > entsprechenden Daten einlesen, zerlegen und bei XXX Wert ein PWM wert > setzen, so wie ich es jetzt schon mache oder stell ich mir das zu > einfach vor? Nein. Du erzeugst einen Socket und baust eine TCP Verbindung zu einem Server auf. Diese Verbindung ist durch die IP-Adresse und den Serverport 502 für Modbus TCP gekennzeichnet. Ab diesem Punkt gehts dann genauso wie bei seriell/RTU weiter, nur mit dem Unterschied, dass bei TCP-Verbindungen der TCP/IP-Stack die Prüfsummen erzeugt und prüft, das muss dann der Modbus-Stack nicht machen. Jedenfalls wirst Du dann Modbus-Pakete senden und empfangen wollen/müssen. Da hilft es dann, die Normen vorrätig zu haben. Dieses Vorgehen ist überall das gleiche, egal ob mit Windows, Linux oder dem PIC. Wenn Du fertig bist oder die Verbindung irgendwie unterbrochen wird, machst Du Deinen Socket zu, und das wars. > Frage, die sich mir gerade stellt, woran erkennt der Controller das es > SMA Modbus Daten sind und nicht vom Internetverkehr ? Du hast halt eine falsche Vorstellung. Du hörst nicht auf irgendwelche Pakete, sondern Du must gezielt eine Verbindung zu einem Gerät aufbauen, und über die magische Nummer 502 sagst Du ihm, dass Du den Modbus-Dienst willst. SSH wäre Nummer 22, http Portnummer 80.
Sehr ausführlich deine Antwort, vielen Danke. Muss trotzdem an einem Punkt noch einmal an knüpfen. Der Home Manager kommuniziert mit dem Wechselrichter über das Netzwerk. Jeder wird wahrscheinlich eine eigene Adresse haben, die von SMA festgelegt ist. Mir ist immer noch nicht klar, warum ich in die Kommunikation eingreifen sollte oder muss, da ich das Gespräch zwischen den beiden Teilnehmern abhören und entsprechend der übertragenen Leistung mein PWM Signal generieren möchte. Für den von dir beschriebenen PIC gibt es hier ein Netz Experimentier Baugruppen wie diese https://www.google.com/shopping/product/1?q=PIC18F67J60&client=safari&channel=iphone_bm&biw=414&bih=719&tbs=vw:l,ss:44&prmd=sinv&sxsrf=ALeKk03alTy42V20_5csI4sHid7RDqLdVg:1587292551406&prds=num:1,of:1,epd:2040295052239887490,paur:ClkAsKraX12jVzor6GBWhrj11R8JacT72EvFMOS8s7eyQvDv-430jFxA00LxBrWc-AnJNpNyiBYxtXXiHsPaOWRubMR8xRuyIX3-cQkfFonl7Gx4LeKNVTNfkBIZAFPVH70iZkvDR6iwjZPHdIuWP835gaaPDA,prmr:1,pid:2040295052239887490,cs:1 Mit meinem Pickit 3 sollte das ja machbar sein. Danke
Danny_0678 schrieb: > Der Home Manager kommuniziert mit dem Wechselrichter über das Netzwerk. > Jeder wird wahrscheinlich eine eigene Adresse haben, die von SMA > festgelegt ist. Mir ist immer noch nicht klar, warum ich in die > Kommunikation eingreifen sollte oder muss, da ich das Gespräch zwischen > den beiden Teilnehmern abhören und entsprechend der übertragenen > Leistung mein PWM Signal generieren möchte. Du kannst nicht in die Kommunikation eingreifen. Du kannst sie auch nicht so einfach abhören. Du musst eine neue Verbindung aufbauen und Dir selber die benötigten Werte holen. Alle Ethernet-Geräte hängen an einem Ethernet-Switch. Jedes Gerät hat seine eigene Ethernet-Adresse (die nichts mit der IP-Adresse darüber zu tun hat). Der Switch-Chip hat eine spezielle Art von Speicher, wo er sich merkt, welche Teilnehmer mit welcher Adresse an welchem Anschluss des Switches hängt. Wenn der "Home Manager" ein Paket an den Wechselrichter schickt, wird Dein PIC das Paket gar nicht zu Gesicht bekommen, weil der Switch-Chip das Paket nur an den Port weiterleitet, an dem der Wechselrichter hängt. Es gibt Switche, wo man das ganze einstellen kann (Stichwort "Port Mirroring" oder "RMON"), aber Privatleute haben solche Switche in der Regel nicht, weil sie teuer sind. Selbst wenn Du diese Hürde überwinden würdest, müsstest Du Dir jetzt eine Software schreiben, die einzelne TCP-Streams aus Ethernet-Paketen herausfiltert und wieder in der richtigen Reihenfolge zusammensetzt und dann das Ergebnis analysiert. Kein TCP-Stack kann das so, das müsstest Du Dir alles von Null an selber schreiben, und das wird Dir mit Deinem Knowhow so nicht gelingen. Sorry wenn ich das so hart schreiben muss, aber das ist zwei Nummern zu groß für Dich. Außerdem ist der PIC dafür nicht die geeignete Plattform, weil man für eine solche Analyse mehr Speicher braucht als für die direkte Abwicklung einer TCP-Verbindung. Sowas macht man eher auf eine PC, zumindest in der Entwicklungsphase. Dein PIC kann nur selber eine Verbindung zum Wechselrichter aufbauen und den periodisch nach den gewünschten Parametern fragen und dementsprechend irgendwelche Aktionen ausführen. Genau das ist der Weg, den Du gehen wirst. > Für den von dir beschriebenen PIC gibt es hier ein Netz Experimentier > Baugruppen wie diese > > https://www.google.com/shopping/product/1?q=PIC18F67J60&client=safari&channel=iphone_bm&biw=414&bih=719&tbs=vw:l,ss:44&prmd=sinv&sxsrf=ALeKk03alTy42V20_5csI4sHid7RDqLdVg:1587292551406&prds=num:1,of:1,epd:2040295052239887490,paur:ClkAsKraX12jVzor6GBWhrj11R8JacT72EvFMOS8s7eyQvDv-430jFxA00LxBrWc-AnJNpNyiBYxtXXiHsPaOWRubMR8xRuyIX3-cQkfFonl7Gx4LeKNVTNfkBIZAFPVH70iZkvDR6iwjZPHdIuWP835gaaPDA,prmr:1,pid:2040295052239887490,cs:1 Das ist auch von Olimex, aber eben ohne Lochraster für eigene Erweiterungen. > Mit meinem Pickit 3 sollte das ja machbar sein. Definitiv. Eventuell musst Du den ISP-Stecker tauschen, weil Olimex keine nackten Stiftleisten nimmt, sondern Molex MTA-100 mit Rastnasen. Sollte aber kein Problem sein. fchk
:
Bearbeitet durch User
Huch, klingt für mich jedenfalls kompliziert und nicht so einfach zu lösen. Jetzt umso mehr ? Ich stehe am Scheideweg, PIC oder Rasberry Pi 4. Eine Empfehlung vom Meister bzw. wo ist der Weg nicht so steinig ? Danke and schönen Sonntag
Der Raspberry Pi ist auf jeden Fall um Welten einfacher zu programmieren, was die Netzwerk-Kommunikation und Zugriff auf Speichermedien angeht. Aber er nimmt auch mehr Strom auf und ist größer. Das musst du selber abwägen.
Spare Dir erstmal die Hardware. Sorge erstmal dafür, dass Du eine funktionierende Netzwerkverbindung hast und fange auf Deinem PC mit der MODBUS-Kommunikation an. Hast Du schon ein PC-Linux? Wenn nicht, dann wäre das der nächste Schritt. Entweder in einer virtuellen Maschine oder als Dual Boot. Um Linux kennenzulernen, ist der PC die beste Plattform. Nächster Schritt: ARM Linux Hardware. Ich bin kein Freund von den Raspberries. Die Peripherie von denen ist einfach nur Müll, verglichen mit anderen Kandidaten. Mein Vorschlag: https://www.olimex.com/Products/SOM204/A20-SOM204-EVB/ Da hast Du zwei Netzwerkanschlüsse. Damit könntest Du zum Beispiel die Netzwerkverbindung auftrennen und "Mann in der Mitte" spielen und Dich so in die Kommunikation reinhängen. Außerdem hast Du dort viel mehr und viel bessere Peripherie. Das Auftrennen der Netzwerkverbindung könntest Du auch schon mit Deinem PC und einer zweiten Netzwerkkarte machen. Wenn Du mit einem PC-Linux zurechtkommst, wirst Du Dich auf einem ARM-Linux sofort zuhause fühlen, auch programmiertechnisch. Wenn Du dann noch auf eine Mikrocontrollerplattform willst, ist PIC32MZ für Dich das einfachste. Nimm das hier: https://www.microchip.com/DevelopmentTools/ProductDetails/dm320007 plus https://www.microchip.com/DevelopmentTools/ProductDetails/AC320004-4 Auch damit kannst Du Dich in eine Netzwerkverbindung reinhängen. Der Switch-Chip auf dem Aufsatzboard hat nämlich einige Tricks auf Lager. Und der PIC32 auf dem Board hat mit 200MHz Takt, 512k RAM, 2M Flash und Fast Ethernet schon einiges mehr zu bieten. Aber da Du ja eh nur Stückzahl 1 brauchst, wirst Du wahrscheinlich bei den Olimex-Board hängen bleiben. Dann noch ein Tip: Wenn Du mit Netzwerkgeschichten hantierst, kann Dir ein guter managebarer Switch das Leben deutlich erleichtern. Der kann dann nämlich beispielsweise Netzwerkverkehr umleiten, damit Du ihn Dir ansehen kannst. Vorschlag: https://www.amazon.de/dp/B0747TBTDX/ref=psdc_1626220031_t2_B00I4QJRWE Gut, ganz wenig ist das jetzt nun nicht. Aber für das, was die Kiste kann, zahlst Du bei HPE oder Cisco locker das dreifache. Muss ja auch nicht alles sofort sein. fchk
Den Pi 4 könnte ich entweder mit so einer Funkdose, welche vom Homemanager aktiviert wird oder zu festen Zeiten ab 10 Uhr aktivieren. Leistungsüberschuss > 6,8 kW gibts erst ab 12 Uhr rum. Energie wäre zum Glück nicht das Problem ?. Danke.
Hallo Frank, vielen Dank für die ausführlichen Zeilen. Du scheinst ziemlich tief hierzu in der Materie stecken ? nach deinen Vorschlägen. Mit dem PIC32 werde ich wohl eher Rentner sein und die Anlage Schrott, als das es laufen würde. Hatte heute Kontakt mit einem Arbeitskollegen, er meinte auch einen Pi 4. Er hat auch was mit dem Pi im Haus was gemacht mit Lüftungsanlage und so. Eventuell kann er mich praktisch unterstützen. Vielen Dank bis hier her. Danke an alle und bleibt gesund ! Grüße
Danny_0678 schrieb: > Hallo Frank, vielen Dank für die ausführlichen Zeilen. Du scheinst > ziemlich tief hierzu in der Materie stecken ? nach deinen Vorschlägen. Äh, ja. Ich habe mit dem ganzen Thema 1981 angefangen, als die Welt noch ganz anders aussah. > Mit dem PIC32 werde ich wohl eher Rentner sein und die Anlage Schrott, > als das es laufen würde. Hatte heute Kontakt mit einem Arbeitskollegen, > er meinte auch einen Pi 4. Er hat auch was mit dem Pi im Haus was > gemacht mit Lüftungsanlage und so. Eventuell kann er mich praktisch > unterstützen. Die meisten Leute kennen nicht anderes als die Raspberries, wenn sie an die kleinen Rechner denken. Ich habe einen Arbeitskollegen, den ich anfangs nicht von den Dingern abbringen konnte, der aber nach einem Jahr und etlichen Boards, die ich ihm für seine Compute Modules gemacht habe, versteht, warum ich explizit von den Raspberries abrate. Ich habe mir schon was dabei gedacht, als ich Dir das Olimex-Board empfohlen habe. Von der Bedienung oder der Programmierung ist das beides Linux und damit ziemlich ähnlich, nur das Olimex-Board hat weniger Einschränkungen in der Hardware, und der zweite Ethernet-Port kann für Dich echt nützlich sein, auch wenn es nur ein 100 MBit/s Port ist. fchk
Hi, ein passendes Board kannst auch von mir inkl. Doku und Beispielen zu bekommen. Ich nehme den auch sehr gerne. https://schwabenplan.com/downloads/d03000.pdf VG Ingo
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.