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

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 771
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #15 am: August 29, 2024, 19:01:01 Nachmittag »
Hallo Markus,

ich hab schon ein paar kleine Fehler eliminiert und noch was hinzugefügt.
Man kann jetzt auf der letzten Seite alle Parameter mit Grundwerten laden. ist auch gut in der Simulation zu gebrauchen.
Schau mal durch ob die so sinnvoll sind. Ich bin da zu wenig Gärtner.  ;)

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

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

Zitat
Zusatzlüften ist nicht ganz klar...wenn deine Abkürzungen "Vz" und "NL", Startzeit und Dauer bedeuten, geht es nicht
Zwangslüften wird gemacht nach x Stunden für x Minuten, wenn nicht durch den Regler schon gelüftet wurde. Vz = Verzögerung, Nl = Nachlauf

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

Zitat
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).
Hat das einen bestimmten Grund? Mann könnte den Timeout Bewässern auf 0 setzen.

Zitat
Wenn der Zyklus einmal durchgelaufen ist, muss man einmal "DEL" drücken um mit "OK" wieder "RUN" setzen zu können.
Hatte ich extra so gemacht. Muss dann wohl noch angezeigt werden, das das Programmende ereicht wurde. Der Status auf Seite 1 zeigt jetzt an in welchem Programmschritt man ist.

Zitat
Wird IA04 benutzt (kann nichts finden - ist das die Luftfeuchte - die kann eh raus) - ist in der Simulation aktiv aber hat keine Funktion.
Nun ja, eine Info über die Luftfeuchte wäre vlt ganz sinnvoll. Wir leiden ja nicht unter Speichermangel ;D

Gruß Thomas
« Letzte Änderung: August 29, 2024, 19:05:33 Nachmittag von radar17892 »
Weil Einfach einfach Einfach ist!

Offline ML10000000000000

  • Newbie
  • *
  • Beiträge: 16
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #16 am: August 29, 2024, 22:43:34 Nachmittag »
Also erstmal, RIESEN RESPEKT! So verdammt Schnell, super nett und kompetent wie Du bist, sollte sich dein Chef glücklich schätzen! So od. so, ich tue es!!!

Lustig, die Idee von Dir, die Grundwerte zu laden hatte ich auch schon, wollte Dich aber nicht mit immer neuen Baustellen nerven😂 spart endlos Zeit beim testen💪💪💪

Zwangslüften nach z.B. 2 Stunden für 15 Minuten heißt dann konkret, dass der Lüfter alle 2 Std. für 10min. aktiv ist, egal ob die Heizung auch aktiv ist korrekt?
On Top wäre, wenn das Netz nur außerhalb der Lichtzeit aktiv ist (weil, sonst z.B. gerade gelüftet wurde um die Temperatur zu regeln und dann geht der Lüfter erneut durch die Zwangsbelüftung an - das wäre für den CO2 Austausch unnötig und würde evtl. sogar die Heizung aktivieren weil zu viel Kühlung erzeugt würde).

Wässern auf 0 setzen zu können hat sich erledigt, weil Du es ja jetzt noch geiler gemacht hast und die Soll-Erdfeuchte individuell pro Phase eingepflegt hast (wollte ich gerade sagen, dass das cool wäre und Du hast es schon drin😶 sehr cool!)
EDIT: Beim Testen merk ich grad, dass man auch MB94 also die SOLL-Erdfeuchte-Anzucht nicht auf < 20% setzen kann..aber ich den es ist egal, wenn dann halt der Topf ein paar Tage sinnlos gegossen wird..

Verriegelung Zyklusende - 👍 wenn mans weiß😂

IA04 -> SOLL-Luftfeuchte? Also einfach als Profilaxe für eine Erweiterung? Check es nicht...Luftfeuchte wird ja nicht geregelt...

Welches Bier trinkst Du, ich schick dir ne Pulle🍺 Top Hilfe Thoms!

Gruß Markus

Habs mal noch zusätzlich beschriftet:

0345 MW34:= 250; //Temp. Sollwert in 0,1C°
0346 MB69:= 10; //Hysterese Lüfter in 0,1C°
0347 MB71:= 10; //Hysterese Heizung in 0,1C°
0348 MB72:= 20; //Regelabstand Heizung-Lüfter in 0,1C°
0349 MB73:= 00; //Luftfeuchte Soll in % (keine Funktion)
0350 MB76:= 15; //Bewässerungdauer in min.
0351 MB77:= 10; //Hysterese Erdfeuchte
0352 MB78:= 20; //Startzeit Bewässerung in std. (Pumpe starten um xx Uhr)
0353 MB79:= 30; //Pulszeit Pumpe in sec. (Pumpe AN für xx sec.)
0354 MB80:= 60; //Pausezeit Pumpe in sec. (Pumpe AUS für xx sec.)
0355 MB81:= 4; //ZwangsLüften alle xx std.
0356 MB82:= 15; //ZwangsLüften für xx min.
0357 MB87:= 7; //Dauer Anzuchtphase in Tagen
0358 MB89:= 20; //Licht EIN Uhrzeit Anzucht in std.
0359 MB90:= 0; //Licht EIN Uhrzeit Anzucht in min.
0360 MB91:= 12; //Licht AUS Uhrzeit Anzucht in std.
0361 MB92:= 0; //Licht AUS Uhrzeit Anzucht in min.
0362 MB93:= 3; //Bewässern alle x Tage
0363 MB94:= 20; //Erdfeuchte Soll Anzucht in %
0364 MB96:= 30; //Dauer Wachstumsphase in Tagen
0365 MB98:= 20; //Licht EIN Uhrzeit Wachstum in std.
0366 MB99:= 0; //Licht EIN Uhrzeit Wachstum in min.
0367 MB100:= 12; //Licht AUS Uhrzeit Wachstum in std.
0368 MB101:= 0; //Licht AUS Uhrzeit Wachstum in min.
0369 MB102:= 3; //Bewässern alle x Tage
0370 MB103:= 20; //Erdfeuchte Soll Wachstum in %
0371 MB106:= 60; //Dauer Blütephase in Tagen
0372 MB108:= 20; //Licht EIN Uhrzeit Blüte in std.
0373 MB109:= 0; //Licht EIN Uhrzeit Blüte in min.
0374 MB110:= 8; //Licht AUS Uhrzeit Blüte in std.
0375 MB111:= 0; //Licht AUS Uhrzeit Blüte in min.
0376 MB112:= 1; //Bewässern alle x Tage
0377 MB113:= 50; //Erdfeuchte Soll Blüte in %
« Letzte Änderung: August 30, 2024, 00:14:10 Vormittag von ML10000000000000 »

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 771
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #17 am: August 30, 2024, 12:36:02 Nachmittag »
Hab das mal bei mir in der Mittagspause schon eingefügt.
Was meinst du mit :
Zitat
On Top wäre, wenn das Netz nur außerhalb der Lichtzeit aktiv ist (weil, sonst z.B. gerade gelüftet wurde um die Temperatur zu regeln und dann geht der Lüfter erneut durch die Zwangsbelüftung an - das wäre für den CO2 Austausch unnötig und würde evtl. sogar die Heizung aktivieren weil zu viel Kühlung erzeugt würde).
Der Timer Zwangslüften wird zurück gesetzt sobald der Lüfter angesteuert wird. Willst du da noch eine Sperrzeit einfügen?
Die Begrenzungen der Eingabewerte hab ich in den Textanzeigen gemacht. Die kann man noch anpassen um unsinnige Eingaben zu begrenzen.
Weil Einfach einfach Einfach ist!

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 771
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #18 am: August 30, 2024, 12:42:09 Nachmittag »
Momentan sieht es so aus:
//Aufruf Echtzeituhr
RC01 (
EN := ,
DT => ,
E1 => ,
YY => ,
MM => ,
DD => ,
WD => ,
HR => ,
MN => ,
SC => );
//Tagesflanke erzeugen
M02:= RC01WD <> MB84;
MB84:=RC01WD;
//Einlesen, filtern und scalieren der Sensoren
//Temperatur (Bereich Messumformer -20 - 80°C) Ausgabe in 0,1°C
FT01 (
EN := true,
I1 := IA02,
TG := 90,
KP := 100,
CY => ,
QV => );
LS01 (
EN := true,
I1 := FT01QV,
X1 := 0,
Y1 := -200,
X2 := 4095,
Y2 := 800,
QV => );
//Erdfeuchte in %
FT02 (
EN := true,
I1 := IA01,
TG := 80,
KP := 100,
CY => ,
QV => );
LS02 (
EN := true,
I1 := FT02QV,
X1 := 0,
Y1 := 0,
X2 := 4095,
Y2 := 100,
QV => );
//relative Luftfeuchte in %
FT03 (
EN := true,
I1 := IA03,
TG := 80,
KP := 100,
CY => ,
QV => );
LS03 (
EN := true,
I1 := FT03QV,
X1 := 0,
Y1 := 0,
X2 := 4095,
Y2 := 100,
QV => );

//Belüftung 2-Punktregler mit Hysterese
//es braucht zur Änderung nur die Solltemperatur verstellt zu werden, alles andere sind Regelparameter die
//nur zur IBN einmal eingestellt werden
//alle Temperaturwerte sind in 0,1°C um eine gute Auflösung / Regelung zu bekommen
IF LS01QV > (MW34 + MB69) THEN
M06:= true;
ELSIF LS01QV < (MW34) THEN
M06:= false;
ELSE ;
END_IF;
//Zwangsbelüftungspuls nach x Stunden ohne Lüfteranforderung zum Luftaustausch
T04 (
EN := M03 and not M06,
RE := ,
ST := ,
I1 := (MB81*60),
I2 := MB82,
Q1 => ,
QV => );
//Lüfterausgang ansteuern                       
Q03:= (M06 or T04Q1) and M03;
//Heizung 2-Punktregler mit Hysterese und Regelabstand zur Solltemperatur
//der Regelabstand besimmt wie weit unter der Solltemperatur die Heizung anfängt zu regeln
IF LS01QV > (MW34 - MB72) THEN //Heizung aus
M07:= false;
ELSIF LS01QV < (MW34 - MB72 - MB71) THEN //Heizung ein
M07:= true;
ELSE ;
END_IF;
Q04:= M07 and M03; //Ausgang Heizung schalten

//Bewässerungstageszähler
C02 (
EN := true,
C_ := (MB78 = RC01HR), //Bewässerungsstartzeit erreicht
D_ := ,
SE := ,
RE := T05Q1 or (LS02QV >= MB115) or not M03,//reset Zähler wenn Timeout oder Erdfeuchte erreicht
SH := MB114, //1=jeden Tag, ... 3=jeden 3.Tag bewässern
SL := ,
SV := ,
OF => ,
FB => ,
CY => ,
ZE => ,
QV => );
//Timeout Bewässerung erreicht
T05 (
EN := C02OF,
RE := ,
ST := ,
I1 := MB76,
I2 := ,
Q1 => ,
QV => );
//Bewässerung mit Puls/Pause um eine Trägheit zu erzeugen,
//damit der Boden Zeit hat das Wasser gleichmäßig aufzunehmen.
T02 (
EN := C02OF,
RE := ,
ST := ,
I1 := MB79, //Pulszeit in s
I2 := MB80, //Pausenzeit in s
Q1 => ,
QV => );
//Wasserpumpe einschalten, wenn Tank nicht leer
Q02:= T02Q1 and I01;
//Fehler Tank leer verzögert setzen und mit DEL-Taste resetten
T03 (
EN := not I01,
RE := M11 and P07,
ST := ,
I1 := T#30s,
I2 := ,
Q1 => ,
QV => );
IF T03Q1 THEN
M11:= true;
END_IF;
IF M11 and P07 THEN
M11:= false;
END_IF;

//Lichtsteuerung, Umschaltung erfolgt erst bei erreichen der nächsten Schaltzeit in Sekunde 0
//man könnte auch noch den M04 mit einer Handflanke umschalten
IF (RC01HR = MB259) and (RC01MN = MB260) and (RC01SC = 0) THEN  //Ausschaltzeit hh:mm erreicht
M04:= false; //Licht anfordern aus
ELSIF (RC01HR = MB257) and (RC01MN = MB258) and (RC01SC = 0) THEN  //Einschaltzeit  hh:mm  erreicht
M04:= true; //Licht anfordern ein
ELSE ;
END_IF;
Q01:= M04 and M03; //Ausgang Licht schalten

M09:= (C01QV = 1) and P05; //Start vom Display
M10:= (C01QV = 1) and P07; //Stop vom Display
//Schrittkette Wachstumsphasen
//0= stop/init; 1= Anzuchtphase; 2= Wachstumsphase; 3= Blütenphase;
CASE MB85 OF
0: //Initialisierungsschritt
  M03:= false;
  MB86:= 0; //Anzucht Zähler nullen
  MB95:= 0; //Wachstum Zähler nullen
  MB105:= 0; //Blüte Zähler nullen
  IF M489 or M09 THEN //Programm starten
    MB85:= 1;//gehe zu Anzuchtphase
    END_IF;
       
1: //Anzuchtphase
M03:= true; // Programm läuft
IF M02 THEN //Tage hochzählen
    MB86:= MB86+1;
    END_IF;
    MB88:= MB87-MB86; //Restzeitanzeige
    //Schaltzeiten Licht auf die ArbeitswerteMB laden
    MB257:= MB89;
    MB258:= MB90;
    MB259:= MB91;
    MB260:= MB92;
    MB114:= MB93; //Bewässerungstage laden
    MB115:= MB94; //Erdfeuchte Soll laden            
    IF MB86 > MB87 THEN //Ende Anzuchtphase erreicht
    MB86:= MB86 - 1;
    MB88:= 0;
    MB85:= 2;//gehe zu Wachstumsphase    
    END_IF;
    IF M490 or M10 THEN MB85:= 0; //Stop/Abbruch
    END_IF;
     
2: //Wachstumsphase
M03:= true; // Programm läuft
IF M02 THEN //Tage hochzählen
    MB95:= MB95+1;
    END_IF;
    MB97:= MB96-MB95; //Restzeitanzeige
    //Schaltzeiten Licht auf die ArbeitswerteMB laden
    MB257:= MB98;
    MB258:= MB99;
    MB259:= MB100;
    MB260:= MB101;
    MB114:= MB102; //Bewässerungstage laden
    MB115:= MB103; //Erdfeuchte Soll laden        
    IF MB95 > MB96 THEN //Ende Wachstumsphase erreicht
    MB95:= MB95 - 1;
    MB97:= 0;    
    MB85:= 3;//gehe zu Blühphase
    END_IF;
    IF M490 or M10 THEN MB85:= 0; //Stop/Abbruch
    END_IF;
       
3: //Blühphase
M03:= true; // Programm läuft
IF M02 THEN //Tage hochzählen
    MB105:= MB105+1;
    END_IF;
    MB107:= MB106-MB105; //Restzeitanzeige
    //Schaltzeiten Licht auf die ArbeitswerteMB laden
    MB257:= MB108;
    MB258:= MB109;
    MB259:= MB110;
    MB260:= MB111;
    MB114:= MB112; //Bewässerungstage laden
    MB115:= MB113; //Erdfeuchte Soll laden        
    IF MB105 > MB106 THEN //Ende Blühphase erreicht
    MB105:= MB105 - 1;
    MB107:= 0;
    MB85:= 4;//gehe zu Programmende
    END_IF;
    IF M490 or M10 THEN MB85:= 0; //Stop/Abbruch
    END_IF;
       
4: //Programmende erreicht, mit Stopmerker zurück zu init
M03:= false;
M05:= true;
IF M490 or M10 THEN
MB85:= 0; // gehe zu Initialisierungsschritt
END_IF;    
ELSE
MB85:= 0; //falls ein anderer Wert, SK initialisieren
END_CASE;

//Displayansteuerung
IF M11 THEN //roter Hintergrund bei Wassertank leer
LE04:= true;
LE05:= false;
LE06:= false;
ELSIF M03 and not M11 THEN  //grüner Hintergrund wenn Programm läuft
LE04:= false;
LE05:= true;
LE06:= false;
ELSE //sonst weißer Hintergrund
LE04:= false;
LE05:= false;
LE06:= true;
END_IF;

C01 (
EN := ,
C_ := P03 or P01, //hoch blättern
D_ := P01, //runter blättern
SE := C01FB,
RE := C01OF or T06Q1,
SH := 9,
SL := -1,
SV := 8,
OF => ,
FB => ,
CY => ,
ZE => ,
QV => );
//Startseite
D01 (
EN := C01QV = 0,
AI := ,
Q1 => ,
AO => );
//Sollwerte
D02 (
EN := C01QV = 1,
AI := ,
Q1 => ,
AO => );
//Anzucht
D03 (
EN := C01QV = 2,
AI := ,
Q1 => ,
AO => );
//Wachstum
D04 (
EN := C01QV = 3,
AI := ,
Q1 => ,
AO => );
//Blüte
D05 (
EN := C01QV = 4,
AI := ,
Q1 => ,
AO => );
//Regelparameter 1
D06 (
EN := C01QV = 5,
AI := ,
Q1 => ,
AO => );
//Regelparameter 2
D07 (
EN := C01QV = 6,
AI := ,
Q1 => ,
AO => );
//Regelparameter 3
D08 (
EN := C01QV = 7,
AI := ,
Q1 => ,
AO => );
//Werkseinstellung laden
D09 (
EN := C01QV = 8,
AI := ,
Q1 => ,
AO => );

//Fehlermeldung Wasser
D20 (
EN := M11,
AI := ,
Q1 => ,
AO => );

//Werkseinstellungen laden mit 3s OK Taste auf D09
T06 (
EN := (C01QV = 8) and P05 and not M03,
RE := ,
ST := ,
I1 := T#3s,
I2 := ,
Q1 => ,
QV => );
IF T06Q1 THEN
MW34:= 250; //Temp. Sollwert in 0,1C°
MB69:= 10; //Hysterese Lüfter in 0,1C°
MB71:= 10; //Hysterese Heizung in 0,1C°
MB72:= 20; //Regelabstand Heizung in 0,1C°
MB73:= 60; //Luftfeuchte Soll in % (keine Funktion)
MB76:= 30; //max Bewässerungdauer in min.
MB77:= 10; //Hysterese Erdfeuchte in %
MB78:= 20; //Startzeit Bewässerung um xx Uhr
MB79:= 30; //Pulszeit Pumpe in sec. (Pumpe AN für xx sec.)
MB80:= 60; //Pausezeit Pumpe in sec. (Pumpe AUS für xx sec.)
MB81:= 4; //ZwangsLüften nach xx std. ohne Lüfteransteuerung
MB82:= 15; //ZwangsLüften für xx min.
MB87:= 7; //Dauer Anzuchtphase in Tagen
MB89:= 20; //Licht EIN Uhrzeit Anzucht in std.
MB90:= 0; //Licht EIN Uhrzeit Anzucht in min.
MB91:= 12; //Licht AUS Uhrzeit Anzucht in std.
MB92:= 0; //Licht AUS Uhrzeit Anzucht in min.
MB93:= 3; //Bewässern alle x Tage
MB94:= 20; //Erdfeuchte Soll Anzucht in %
MB96:= 30; //Dauer Wachstumsphase in Tagen
MB98:= 20; //Licht EIN Uhrzeit Wachstum in std.
MB99:= 0; //Licht EIN Uhrzeit Wachstum in min.
MB100:= 12; //Licht AUS Uhrzeit Wachstum in std.
MB101:= 0; //Licht AUS Uhrzeit Wachstum in min.
MB102:= 3; //Bewässern alle x Tage
MB103:= 20; //Erdfeuchte Soll Wachstum in %
MB106:= 60; //Dauer Blütephase in Tagen
MB108:= 20; //Licht EIN Uhrzeit Blüte in std.
MB109:= 0; //Licht EIN Uhrzeit Blüte in min.
MB110:= 8; //Licht AUS Uhrzeit Blüte in std.
MB111:= 0; //Licht AUS Uhrzeit Blüte in min.
MB112:= 1; //Bewässern alle x Tage
MB113:= 50; //Erdfeuchte Soll Blüte in %
END_IF;


Weil Einfach einfach Einfach ist!

Offline ML10000000000000

  • Newbie
  • *
  • Beiträge: 16
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #19 am: August 30, 2024, 21:37:15 Nachmittag »
Ah ok, da werden die 20-80 limitiert. Werde das auf 0-80 setzen damit ich so die Bewässerung während der Anzuchtphase ganz ausschalten kann.

Zwangslüften nur wenn LED aus (verhindert dann unnötige Temperaturschwankungen). Also quasi eine Sperrzeit während der Belichtungszeit.

Falls Dir ganz langweilig ist, könnte man noch die Soll-Temperatur individuell pro Phase regeln.

Sonst fällt mir dann für die Aktion echt nix mehr ein😂

Man kann die letzte Version perfekt benutzen, daher sehe ich die Sache soweit als fertig..

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 771
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #20 am: September 04, 2024, 09:57:49 Vormittag »
Hat Spaß gemacht das zu entwickeln.
Du kamst ja auch mit einem kompletten Programm hier an und hast dir schon Gedanken gemacht das umzusetzen.
Zitat
Falls Dir ganz langweilig ist, könnte man noch die Soll-Temperatur individuell pro Phase regeln.
Dann trage doch einfach eine Zuweisung hinter die Erdfeuchte Soll in der Case ein in den 3 Phasen. Als Speicher kannst du remanente MW ab MB117 nehmen, die müssten noch frei sein.
MW34:= MW59;  //Temperatursollwert Anzucht laden

Jetzt noch die Einträge auf den D-Bausteinen der Phasenwerte machen, einzelne Sollwertvorgabe löschen und fertig bist du.

Die Pulle Bier hatte ich gestern abend schon :D  also alles fresh. ;)

Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline ML10000000000000

  • Newbie
  • *
  • Beiträge: 16
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #21 am: September 07, 2024, 03:44:51 Vormittag »
Mir auch! Hab sogar (bedingt) gefallen an ST gefunden (ist so sehr viel strukturierter als FUP bei dem Programmumfang).

Hab die Software jetzt auf meiner Steuerung im Einsatz u bemerkt, dass der Lüfter nach dem Zwangslüften nicht mehr aus geht.

Lag am T04 -> der muss am EN nach Ablauf der Verzögerung einmal kurz zurück gesetzt werden u. läuft erst dann weiter. Hab das mit "and not T04Q1" ergänzt in der EN Bedingung des T04. Funktioniert so, ist aber evtl. nicht sauber.

Und die Pumpe geht anfangs (beim allerersten mal) für eine Pulsdauer an auch wenn sie das nicht sollte. Das liegt glaub ich daran, dass C02 den Wert in MB114 erst im Moment des "start-drückens" läd, aber in dem Moment ist die Bedingung QV >= SH (0=0) erfüllt sodass der Timer T02 startet und einmal eine Pulsdauer lang bewässert. Kann man C02OF mit initialisieren sodass es als "Startswert" "false" ist (der dann natürlich direkt überschrieben wird, wenn die Bedingung QV >= SH erfüllt ist). In c ging das easy mit dem belegen der Variablen mit einem wert aber in ST check ichs jetzt nicht😜 da hilft heute auch kein Bier mehr😂🍺✌️

Hab mal meine veränderte Version mit angehängt. Das mit der Pumpe ist nur kür aber das mit dem Lüfter ist gut wenn er wieder aus gehen kann.

Besten Gruß Markus

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 771
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #22 am: September 07, 2024, 09:36:10 Vormittag »
Ich setze mich nächste Woche mal dran und arbeite die Punkte ab.
Vlt fällt mir noch was zur Bewässerung ein.
Bis dahin, Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 771
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #23 am: September 14, 2024, 19:01:16 Nachmittag »
So, ich hab die Punkte noch abgearbeitet. Musste allerdings die Menueseiten für die Phasensollwerte verdoppeln, weil nicht mehr alles drauf gepasst hat.

Zitat
Hab die Software jetzt auf meiner Steuerung im Einsatz u bemerkt, dass der Lüfter nach dem Zwangslüften nicht mehr aus geht.
Lag am T04 -> der muss am EN nach Ablauf der Verzögerung einmal kurz zurück gesetzt werden u. läuft erst dann weiter. Hab das mit "and not T04Q1" ergänzt in der EN Bedingung des T04. Funktioniert so, ist aber evtl. nicht sauber.
Doch, so sollte es sein, hast völlig recht. Hab ich wohl übersehen. Jetzt passt es.

Zitat
Und die Pumpe geht anfangs (beim allerersten mal) für eine Pulsdauer an auch wenn sie das nicht sollte.
Ist gefixt, Zähler ist erst aktiv 1 Zyklus nach dem Wertladen.

Gruß Thomas
Weil Einfach einfach Einfach ist!

Offline ML10000000000000

  • Newbie
  • *
  • Beiträge: 16
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #24 am: September 14, 2024, 20:03:57 Nachmittag »
Wie schon die vorherigen mal aber diesmal zum finalen male... -> SAU STARK!!!

Also ich würde sagen, dass ist jetzt echt klasse so und falls noch andere Gärtner Freude dran finden umso besser.

Besten Dank Dir!

Gruß Markus✌️

Offline ML10000000000000

  • Newbie
  • *
  • Beiträge: 16
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #25 am: September 19, 2024, 11:50:10 Vormittag »
Hätte da noch eine Frage an den SPS Profi...

Weißt Du, ob man die easy über MODBUS TCP steuern kann?

Also wie bei einer Industriemaschine einen Steuerungsrechner mit WIN IOT LTSC der dann über den MODBUS schreiben und lesen kann?

Dann könnte man ja richtig geile GUIs bauen.. Falls es geht, gibt es Einschränkungen oder kann ich über den MODUS auf alles zugreifen?

Viell. geh ich doch weg vom Raspberry für mein Großprojekt.

Besten Gruß Markus

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 771
  • Think easy!
    • mollgruppe
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #26 am: September 19, 2024, 19:23:53 Nachmittag »
Na klar geht das mit Modbus TCP.
Deshalb habe ich schon bestimmte Merker und MB zusammengefasst um effizienter zu kommunizieren.
Die Merker 489 und 490 sind schon als start/Stop Befehle über Modbus vorgesehen.
 Hatte ich anfangs auch schon geschrieben, zB mit Galileo auf einem XV Panel oder gleich eine Webvisu bauen. Die soll jetzt auch besser sein ab v8.25, hab es noch nicht probiert.
Wenn die Steuerung über Netzwerk erreichbar ist, kannst du vieles machen. Hab auch schon Virtuino IOT probiert und mir Dashboards gebaut zum fernbedienen vom Handy aus.
« Letzte Änderung: September 19, 2024, 19:48:23 Nachmittag von radar17892 »
Weil Einfach einfach Einfach ist!

Offline ML10000000000000

  • Newbie
  • *
  • Beiträge: 16
Antw:Quellcode für vollautarke Anbausteuerung - tuning möglich/nötig😂
« Antwort #27 am: September 19, 2024, 23:50:23 Nachmittag »
Cool! Auch schon von einem Windows PC aus mit einem C# + JS code? Dann wäre ich nicht an das nicht ganz günstige Galileo Display gebunden...

Ja stimmt, hattest du schon erwähnt. Das es generell geht weiß ich aber eben vermutlich nur sehr simple GUI's.

Deswegen dachte ich, warum nicht in C# den Server handeln u über die Ethernetkarte mit der SPS Kommunizieren.

Ist dann zwar nicht Echtzeitfähig aber aber das ist ja egal bei der Anwendung.

Ein JavaScript hätte eben die volle Bandbreite an optischen Gestaltungs- und Performanceleven.

Webvisu seh ich mir mal an✌️

Dass DU die Optionen schon mit Eingeplant und angelegt hast wundert mich jetzt so gar nicht😊💪💪💪 STARK!!!

Offline ML10000000000000

  • Newbie
  • *
  • Beiträge: 16
Aus lust an der Freude, hab ich mir gerade die Merkerbereichbelegung angehesen...warum ist in deinem sauberen code alles ROT in der liste? schreibkonflikte..so ganz versteh ich das iwie nicht😂

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 771
  • Think easy!
    • mollgruppe
Zitat
warum ist in deinem sauberen code alles ROT in der liste
Nun das liegt wohl an der wirklich simplen Prüfung. Wird auf eine Variable an mehr als einer Stelle geschrieben ist die sofort rot, unabhängig davon wie das gemacht wurde. Gerade in ST gibt es Anweisungen bei denen das beabsichtigt ist ( IF THEN ELSE, oder auch in CASE wo ein Merker zB abhängig von der Casevariable mal true oder false gesetzt wird. So auch im Programm in den Phasen die Sollwert zugewiesen werden.

Übrigens ist nicht nur der Zugriff auf die E4 per Modbus TCP möglich, sondern auch über JSON API zB mit Node Red. Wäre das was für dich? Da gibt's auch Anleitungen  auf YT dazu.

Gruß Thomas
« Letzte Änderung: Gestern um 13:05:54 von radar17892 »
Weil Einfach einfach Einfach ist!