Wer programmiert mir (gegen Bezahlung) eine Modbus RTU RS485 Verbindung?

Hallo,

ich möchte einen Mega2560 als Modbus Master im Halbduplex betreiben. Dieser soll 10 Bytes an Arduino Nano Slave1 senden und 10 Bytes abfragen. Die Daten sollen im seriellen Monitor angezeigt werden (der Mega hat ja mehrere serielle Schnittstellen).
Danach soll der Master 10 Bytes an Arduino Nano Slave2 senden und 10 Bytes abfragen. Die Daten sollen im seriellen Monitor angezeigt werden.
Das ganze so programmiert, das später weitere Slaves eingebunden werden können(Schleife um die Slaves abzufragen?).
Pro Slave benötige ich je ein Array für Senden und eins zum Empfangen.

Ich habe mich bereits mit SimpleModbus beschäftigt und bekomme mit dem Beispiel Daten von einem Nano zum Anderen, aber nur in einer Richtung. Den Mega habe ich mit dem selben Code nicht zum laufen bekommen...außerdem verstehe ich die Funktionen mit den Registern nicht, vielleicht auch weil mein Englisch nicht soo gut ist...

Also wenn das Jemand für mich machen würde, bitte PN.
Ach so, das Programm bitte auf Deutsch kommentieren :wink:

Gruß, Stfan

Du kennst die Stundensätze in der Softwareentwicklung? Schon um Deine Beschreibung in eine belastbare Spezifikation umzusetzen, würde ich mit mindestens 5 Stunden kalkulieren (abhängig von der Güte Deiner Mitarbeit). Da ist noch nichts programmiert.

Das Ganze natürlich jeweils zur Vorkasse, um Zahlungsprobleme zu vermeiden und als Werksvertrag, d.h. es wird die Arbeitsleistung, nicht aber der Erfolg geschuldet.

Ich denke, wenn Du gewillt bist, es zu lernen und dabei bekommst Du hier auch Hilfe, bist Du besser dran. Auch in Hinblick auf spätere Erweiterungen.

Gruß Tommy

hmmm...
ich dachte auch eher, das jemand so ein "kleines" Programm in 3-4 Std. fertig hat oder liege ich damit völlig falsch?

Gruß, Stfan

Dann gibt es hinterher oft Streitereien ob der Auftraggeber es so oder so gemeint hat - aber immer anders, als der Realisierer es gebaut hat.

Wir hatten einmal (und leider auch nur einmal :wink: ) einen schönen Satz drin: Wenn die Spezifikation nicht eindeutig ist, obliegt dem Programmierer die Auslegung.

Wenn Du einen findest - gut für Dich. Ich werde es nicht sein.

Gruß Tommy

Wer programmiert mir (gegen Bezahlung)...

Im englischsprachigen Teil dieses Arduino-Forums gibt es die "Abteilung"
Gigs and Collaborations
Dort könnte deine Anfrage gut hinpassen.

Laien unterschätzen oft den Aufwand einer Programmerstellung.
Außerdem braucht der Programmierer die vom “Klienten” benutzte Hardware.

Grüße Uwe

uwefed:
Laien unterschätzen oft den Aufwand einer Programmerstellung.

Ich habe mal von folgender "Berechnungsmethode" gehört:

  • Multipliziere die geschätzte Zeitdauer mit zwei
  • Nimm die nächst größere Dimension

Bei einer geschätzten Dauer von 4 Stunden ginge das dann etwa so:
4 Stunden mal 2 = 8 Stunden
nächst größere Dimension: 8 Tage :slight_smile: :slight_smile:

stfan1409:
ich möchte einen Mega2560 als Modbus Master im Halbduplex betreiben. Dieser soll 10 Bytes an Arduino Nano Slave1 senden und 10 Bytes abfragen. Die Daten sollen im seriellen Monitor angezeigt werden (der Mega hat ja mehrere serielle Schnittstellen).
Danach soll der Master 10 Bytes an Arduino Nano Slave2 senden und 10 Bytes abfragen. Die Daten sollen im seriellen Monitor angezeigt werden.
Das ganze so programmiert, das später weitere Slaves eingebunden werden können(Schleife um die Slaves abzufragen?).
Pro Slave benötige ich je ein Array für Senden und eins zum Empfangen.

Im Beispiel von “SimpleModbus” 2.2 aber auch im 1.2 ist nur ein Master. Welche Beispielsketches hast du verwendet? Bitte um genaue Quellenangabe sowohl vom unbekannten Slave wie auch vom Master, da es mehrere SpinOffs davon gibt.

Zum Grundverständnis: Modbus ist immer Single Master.

Die SimpleModbusMaster ist bereits so aufgebaut, dass die abgefragten Ergebnisse in einem Array vorliegen.

“Schleife” für mehrere Slaves brauchst du nicht, du definierst einfach mehrere Packete (im Sinne von SimpleModbusMaster) - für jeden Slave separat.

Für eine Erstlieferung wirst du etwa 3 Tage rechnen müssen. Dauern wird es länger, da es wohl viele Rückfragen an dich geben wird. Du kannst ja mal einen Lastenheft erstellen, je detailierter das wird, desto günstiger wird die Analyse auf der Auftragnehmer-Seite. Auf Grund der bisherigen ungenauen Angaben, ist das eben nicht mal in 3h runtergeschrieben.

Die ersten 15 min sind bereits verbraucht :wink:

Ok,
dann werde ich da mal weiter versuchen, einen Anfang hatte ich ja schon.

Die 3-4 Std. waren auf die reine Arbeitszeit bezogen(nur Software ohne Hardware) und als Vergleich: Ich programmiere beruflich Siemens SPS. Um 3 Stück über z.B. Profibus zu verbinden(1xMaster, 2xSlave) würde ich für die Grundfunktion 2 Std. ansetzen. Je mehr Daten ausgetauscht werden sollen, desto länger dauert es - das ist dann aber nur noch kopieren der Grundfunktion, b.z.w. Datenbausteine erweitern…egal

Ich denke ich programmiere so weit ich komme und melde mich dann im Forum(neues Thema). Bisher hat das ja immer geklappt :slight_smile:

Gruß, Stfan.

Würde auch schon alleine das FDS auf einen Tag ansetzen.
Und da ist noch nicht mal eine Korrektur drinnen.
Der Programmierer kann nich abschätzen, obsd du Fahrenheit oder Celsius mit einem
Senor X oder Y messen/regeln/steuern möchtest.
Sonst kommt nur Chaos raus.

Hatte ich erst mal hier im Forum.
Bis wir das grundlegenste (Spannungsversorgung) ausgelegt hatten,
war es ihm schon zuviel Arbeit.