Autor Thema: Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂  (Gelesen 3456 mal)

Offline ML10000000000000

  • Jr. Member
  • **
  • Beiträge: 22
Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« am: August 18, 2024, 14:25:40 Nachmittag »
Hab mir ne Steuerung für Klima, Licht, Bewässerung gebastelt.

Richtig stark wäre, wenn jemand voll im Thema easy ist und den Code verbessern könnte, damit alle die Interesse an einer Anbausteuerung haben, auch sauberen Code verwenden können.

Soweit läuft alles. Ich setze die Software bereits so ein. (Bin Mechatronik-Techniker u. ehr im Thema S7 SPS / Codeesys bewandert - aber auch nur die basics für den Hausgebrauch😂)

Wer Fragen zur verwendeten Hardware hat, gerne melden. Ist aber eigentlich selbsterklärend..

Im wesentlichen stecken alle Funktionen (verbesserungsfähig) drin, aber z.B. sehe ich in der Simulation, dass der Balken für die Anzuchtphase toggelt, wenn das letzte drittel der Blütephase aktiv wird).

Wenn also jemand den Code verbessern u. wieder hochladen kann, haben dann alle was davon..

Gruß an die Gemeinde

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #1 am: August 22, 2024, 21:50:49 Nachmittag »
Hallo ML,
hab mir mal dein Programm angeschaut. Bin leider auf Grund der kargen Kommentierung nicht ganz durchgestiegen. Vlt solltest du eine grobe Beschreibung liefern was du wo machst.
Was mir aber gleich aufgefallen ist, sind die Überschneidungen von Merkern und MB/MW. zB im UF Wochentime, schreibst du die Minuten in MB01, gleichzeitig beschreibst du auch M01-03. Das beist sich und du solltest du MB02 verwenden.
Auch im Hauptprogramm sind Überschneidungen: MW12 "Laufzeit in Wochen" und der M179 "stop Blüte 1". M179 ist Teil des MW12!!
Siehe auch MB01 und M04!!

Dein Merkeraufteilung ist nicht optimal. Verwende besser zum speichern von Sollwerten MW im oberen Bereich (ab MW33 oder MW257), dann hast du genug Merkerbits für das Programm übrig. Remanente Merker kann man im oberen Bereich (bis M512) nutzen. Schau mal unter Projekt-> Merkerbereichsbelegung, das ist das schön aufgelistet.

Du hast ein RS UF gemacht, brauchst du garnicht, den gibts schon mit den Spulen "setzen" und "rücksetzen".
Heizung und Lüftung liegen sehr nahe aneinander. Funktioniert das so, oder geht bei steigender Temperatur die Hzg aus und direkt der Lüfter an und umgekehrt?

Scalierung Temperatur: am LS -20 - 80°C  -> im Textbaustein hast du aber Wertebereich 0-100 eingestellt.

Bei den ganzen Berechnungen und Vergleichen die du machst, drängt sich ST als Sprache auf. Viel einfacher und wesentlich kompakter.

Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline ML10000000000000

  • Jr. Member
  • **
  • Beiträge: 22
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #2 am: August 23, 2024, 13:16:28 Nachmittag »
Servus Thomas,
danke, dass Du Dir die Zeit genommen hast.

Ja, die Doppelbelegung von Merkern ist mir auch schon aufgefallen, hatte extra versucht keine doppelt zu verwenden aber finde den Aufbau in EASY etwas unschön, dass ein verwendeter Merker noch einmal verwendet werden kann.

Danke für den Tipp mit der Merkerbereichsbelegung.

Ja, es läuft alles und die Heizung schaltet genau ein, wenn der Lüfter aufhört (aber schön ist das alles nicht, dass ist klar...). ST ist so gar nicht meine Welt, daher wird das nie passieren..

Skalierung Temp. - das habe ich wohl nicht ganz verstanden. Wertebereich 0-100 skalieren auf -20 - 80 (habe ich es dann in einem Baustein anders oder wie meinst Du?)

PS: Wenn ich diesen Horror an hin u her übergeben kommentiere, wirds vermutlich nicht viel besser nachvollziehbar😂

Ich habe aber leider keine bessere Lösung gefunden, dieses Programm in easy zu Programmieren.

Besten Dank u. Grüße aus Bayern

Offline ML10000000000000

  • Jr. Member
  • **
  • Beiträge: 22
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #3 am: August 23, 2024, 13:31:15 Nachmittag »
Also aus der Bereichstabelle werde ich nicht so richtig schlau...irgendwie ist da ja alles nicht richtig nutzbar.

Woraus entstehen die Konflikte?!

Z.B.

M30:Schreibkonflikt; MB4:nicht vollständig nutzbar

M30 wir nur einmal verwendet (dachte erst es liegt eine Doppelbelegung des Merker 30 vor).

Geiler Tipp mit der Tabelle aber wie bekomme ich nun die Schreibkonflikte gelöst?
 


Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #4 am: August 23, 2024, 22:01:35 Nachmittag »
Ein Konflikt entsteht wenn man zB M04 benutzt und gleichzeitig das MB1 oder das MW1. M1-8 sind Teil des MB1. M1-16 ist Teil des MW1, M17-32 ist Teil des MW2 usw
Wenn du den M03 setzt, so hat das MB1 den Wert 4 ohne das du das MB1 beschrieben hast.

Übrigens, wo ist der Unterschied zu S7, wenn du M0.3 setzt und gleichzeitig MW0 für etwas anderes benutzen willst? Auch hier ist der Merker Teil des MW.
« Letzte Änderung: August 24, 2024, 11:26:03 Vormittag von radar17892 »
Weil Einfach einfach Einfach ist!

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #5 am: August 24, 2024, 12:39:20 Nachmittag »
Wenn es nicht dringend ist, könnte ich mich im September mal mit der Optimierung befassen. Vielleicht hast du noch Ideen zur Erweiterung oder so.
Weil Einfach einfach Einfach ist!

Offline ML10000000000000

  • Jr. Member
  • **
  • Beiträge: 22
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #6 am: August 25, 2024, 02:33:24 Vormittag »
Servus Thomas,

danke, dass Du Dir erneut die Zeit nimmst hier mein verlorenes Wissen wieder aufzufrischen💪😂.

Ja, ich hab massenhaft Ideen für die easy, wobei die nur mein privater "working-prototype" ist. Die Eigentl. Hauptidee soll(te) auf RPi-Basis laufen und Programm & Websocket (realtime) über WLAN bereitstellen - hab schon viele CAD Daten fürs Gehäuse u. Schaltplan sowie Platinen-Layouts und Excel Dateien mit Vorgaben etc......an der EMV für die Platine sowie an den Kosten des Spritzgusses fürs Gehäuse / Investoren etc. scheitert es (noch) gibt noch 2 riesige USPs aber die sollte ich nicht einfach im Netz raus hauen..wer weiß😂 - das wäre DAS PRODUKT AM MARKT - aber naja).

Bin SPS technisch offensichtlich deutlich weiter weg von von den Basics als ich dachte (sagen wir, es liegt am jahrelangen C/Python Programmieren).

Aber auf die wundervoll eindeutige Fehlermeldungen wie: "Fehlercode in Untergeordnetem Register 15641146464674674" von Siemens kann ich auch gut verzichten, nicht dass noch der Eindruck entsteht, ich könnte Siemens leiden..(aber Du hast vollkommen recht mit Merker-Werte-Bereichen und Überschneidungen - bin da einfach hirnlos ans Werk gegangen).

M01 - M08 = Bit 0-7 des Merkerbyte 1 (MB1) - ja, da dämmert was...macht jetzt wieder sinn..

Vielen Dank Dir schonmal💪👍✌️
« Letzte Änderung: August 25, 2024, 02:57:03 Vormittag von ML10000000000000 »

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #7 am: August 26, 2024, 19:48:23 Nachmittag »
Hallo ML,
Ich hab da mal was geschrieben. Wenn du mit Python was schreibst, bist du von ST nicht so weit weg wie du denkst ;)
Das Programm solte nicht schwer zu lesen sein. Die Hysteresen und Parameter hab ich eingearbeitet. Schau es dir mal an.
Du hast noch einen Sollwert Luftfeuchte, habe aber nichts gefunden wie du den regeln willst. Ausbaufähig ist das Programm leicht.
Man kann leicht eine Visu mit Galileo und zB XV100-E4 machen oder auch den Webserver aktivieren um aus der Ferne zu steuern.

Gruß Thomas
« Letzte Änderung: August 26, 2024, 20:19:28 Nachmittag von radar17892 »
Weil Einfach einfach Einfach ist!

Offline ML10000000000000

  • Jr. Member
  • **
  • Beiträge: 22
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #8 am: August 27, 2024, 01:46:59 Vormittag »
Hey Thomas,

ja, möglich..😜 mir sind c und c++ schon zu verschieden😂😉

Finde die Ausführung auf ner easy als standalone am besten.

Die Soll_Luftfeuchte finde ich selbst grad nicht mehr im Programm😂...muss ein Planungsfehler wegen der parallelen Planung von dem anderen Projekt gewesen sein (da sollte es über U-Schallnebler gehen - Luftfeuchte muss aber ehr minimiert werden in der Praxis also Lufttrockner wäre sinnvoller aber erstmal egal, weil ehr keine freien Ausgänge mehr vorhanden sind).

Also besten Dank für Deine Umsetzung! Erinnert mich an die Technikerschule (sehr sauber💪). ST wird nie meine Sprache werden aber das meiste kann ich nachvollziehen. Finde es schwer beim einlesen zu verstehen, welcher Merker hier was macht aber das is ja am Ende egal wenns läuft😂

Einzig die "00:00 Uhr Problematik" ist etwas schlecht, da die Beleuchtung von 20:00 - 08.00 perfekt ist wegen der Kühle der Nacht.

Verbesserungen für eine gute Version:
Die Option mit dem bewässern über die WT ist extrem "quick&dirty" - besser wäre, den abstand in Tagen einstellen zu können (statt der WT einen Merker mit der Anzahl an tagen abstand zwischen den Bewässerungsvorgängen z.B. 1 für jeden tag 3 für jeden 3. tag usw.) - es war auch geplant, dass man die Erdfeuchte also auch die Bewässerungsabstände je Phase am Display einstellen kann - z.B.:

Anzucht -> bewässern: alle 3 tage ; Erdfeuchte: 50%
Wachstum -> bewässern: alle 2 tage ; Erdfeuchte: 30%
Blüte -> bewässern: alle 1 tage ; Erdfeuchte: 50%

Gut wäre noch eine Oder Verknüpfung beim lüften, sodass der Lüfter in regelmäßigen abständen die Luft austauscht, auch wenn die Solltemperatur dauerhaft unterschritten wird (CO2 Austausch vor allem in der Dunkel/Nachphase).

Hast Du eigentl. persönliches Interesse an dem Projekt oder einfach Freude am Programmieren und helfen?

Ach ja, wenn Du mal lachen willst über meine Python "Fähigkeiten": https://www.youtube.com/watch?v=YKbZPxObD34
« Letzte Änderung: August 27, 2024, 02:21:02 Vormittag von ML10000000000000 »

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #9 am: August 27, 2024, 08:38:40 Vormittag »
Ich mache das aus Spaß am programmieren.
Die Bewässerung hab ich über 2punktregler gemacht, weiß nicht was du mit WT meinst. Aber das mit den bewässern alle 1-3 Tage geht auch zu machen. Durch die Case ist es recht flexibel, phasenabhängig die entsprechenden Werte zu laden.
Bei den Merkern brauchst du nur kurz mit der Maus drüber halten und der Kommentar wird angezeigt. Ist eigentlich alles beschriftet.
Die Schaltuhr kann man entsprechend anpassen, kein Problem. Evtl auch mit Startzeit und dann Laufzeit oder so.
Man muss nur die Info haben welche abläufe implementiert werden sollen.

Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline ML10000000000000

  • Jr. Member
  • **
  • Beiträge: 22
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #10 am: August 27, 2024, 12:39:13 Nachmittag »
Du bist ja ein coooler Hund!

Ok mit den Kommentaren wirds durchschaubar👌😂

Mit WT meine ich den Wochen-Timer Baustein in meinem FUB Chaos, den ich missbraucht hab um das Bewässern nicht täglich zu aktivieren.

Wenn Du noch Lust und Laune hast:
Die 00:00 Uhr Geschichte bekomm ich in FUB sicher nicht mal eben hin...aber für den Endanwender ist es schon gut, wenn er einstellen kann, was er will und es wird ausgeführt.

In den Menüs für die Phasen könnte die Infozeile unten weg u dafür eine Zeile mit der variablen zum Einstellen der Bewässerungstage je nach Phase (abstand bis zum auslösen eines counters u dann rücksetzten - sowie, ein timer welcher den gießvorgang zeitlich begrenzt z.B. fix auf 1 Std. - muss ja nicht verändert werden)

andernfalls muss ich mir ST dann leider doch mal intensiv ansehen, weil ist ja echt praktisch! wüsste nicht wie "switch-case" in FUB gehen sollte und so wirds deutlich schöner als in FUB...aber was der Bauer nicht kennt, ne...

Gruß Markus

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #11 am: August 27, 2024, 13:50:41 Nachmittag »
Das sind so Infos die ich vorher noch nicht hatte. Ich werde es einarbeiten und mal testen.
Weil Einfach einfach Einfach ist!

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 788
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #12 am: August 28, 2024, 15:33:14 Nachmittag »
So es müsste jetzt mit den vorgeschlagenen Änderungen laufen. Probier es mal aus.

Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline ML10000000000000

  • Jr. Member
  • **
  • Beiträge: 22
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #13 am: August 28, 2024, 17:59:12 Nachmittag »
Respekt! Schläfst Du auch mal od. bist du 24/7 am Programmieren😉💪

Ich probiere es später mal ausgiebig aus.. bin mir aber sicher, dass es läuft, so wie Du deine Codes ausführst👌

Ich berichte! Besten Gruß bis dahin..

Offline ML10000000000000

  • Jr. Member
  • **
  • Beiträge: 22
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #14 am: August 29, 2024, 14:23:21 Nachmittag »
Servus Thomas,

bin erst jetzt dazu gekommen...also in der Simulation ist ST ja wirklich noch schöner zum Prüfen als FUP🤢😂

Soweit so gut, Lichtsteuerung passt. Lüften / heizen passen.

Die Restlaufzeitberechnung zeigt nach Ablauf 255 und nicht 0 an, sonst perfekt!

Zusatzlüften ist nicht ganz klar...wenn deine Abkürzungen "Vz" und "NL", Startzeit und Dauer bedeuten, geht es nicht😉😂.

Im Menü "Regelparameter 3" muss man noch die haken setzten für P1 P3 sonst hängt man in dem Menü fest.

Wässern auf 0 = ganz aus (wäre sinnvoll - hab versucht es zu ändern aber finde nichts, wo der Wert des Merkers zw. 0-3 limitiert wird).

Wenn der Zyklus einmal durchgelaufen ist, muss man einmal "DEL" drücken um mit "OK" wieder "RUN" setzen zu können.

Wird IA04 benutzt (kann nichts finden - ist das die Luftfeuchte - die kann eh raus) - ist in der Simulation aktiv aber hat keine Funktion.

Besten Gruß, Markus