Hallo, ich habe ein Problem mit meiner Bewässerungssteuerung. Alles läuft wie programmiert, z.B. die Balkonkästen vier mal am Tag eine Minute lang, jedoch zu unterschiedlichen Zeiten bleibt der MC alle paar Tage mal stehen, leider mit aktiviertem Magnetventil. Hier ist meine verwendete Zeitschleife: RELAIS44: CLR P1.0 ;Relais 4 einschalten MOV DPTR,#60000 ;Zeitverzögerung LCALL LTIME ;Sprung zur Zeitnahme SETB P1.0 ;Realais aus JMP START ;Neu starten ;----------------------------------------------------------------------- ---- ; Subroutine : Zeitverzögerung gem. Wert in DPTR ( 1000 entspricht 1 Sec.) ;----------------------------------------------------------------------- ---- LTIME: MOV A,DPL ORL A,DPH JZ SRET2 SETB C MOV A,DPL SUBB A,#0 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A LCALL TIME0 SJMP LTIME SRET2: RET TIME0: MOV DPLSAV,#170 ;(n1+1)*5 microsec = 985 micros NOP TIME0L: NOP NOP NOP DJNZ DPLSAV,TIME0L RET END Hat jemand eine Erklärung? Gruß Wolfgang
Hallo Wolfgang, wie rufst Du die Routine "RELAIS44" auf? Hilfreich wäre es auch, wenn der Rest des Codes zu sehen wäre. Die Fehlerursache ist nicht immer dort, wo der Fehler auftritt. Grüße Oliver
Hallo Wolfgang, ersetze die Magnetventile mal durch Lämpchen zur Kontrolle. Es ist möglich, daß daß Anziehen der Magnetventile Deinen mP außer Tritt bringt. Wenn daß so ist, Stromversorgung abblocken und Kabelführung zu den Ventilen ändern. MfG manfred Glahe
Danke, für die ersten Hinweise. Die Routine wird durch Prüfen, ob ein Port negativ ist aufgerufen. Den Code habe ich nicht im Büro, aber sehr simpel. Beim "Hängen bleiben" war der steuernde Port aber wieder positiv. Die Relais (f. Magnetventile) werden über Schalttransistoren angesteuert und sind über 10 Meter entfernt, daher sehe ich keine Beeinflussungsmöglichkeit. Das der MC stehen bleibt, erkenne ich an einer LED die jeweils über "Start" ein- und ausgeschaltet wird. Im Falle der aktiven Bewässerung bleibt die Kontroll LED während der Warteschleife an. Gruß Wolfgang
Hallo Wolfgang, mit "wie rufst Du die Routine RELAIS44 auf" hatte ich etwas anderes im Sinn. Wird sie durch einen Call augerufen? Falls ja, dann den JMP START durch RET ersetzen. Irgendwie habe ich das Gefühl, es ereignet sich ein schleichender Stack Overflow. Grüße Oliver
Kleine Zwischenfrage, woher bekommt man denn Magnetventile? Viele Grüße Steffen
zu steffens komentar: zB. für eine fussbodenheizung? ich hätt auch interesse. hennning
Hallo, für eine Bewässerung reichen Universalventile aus Waschmaschinen (z.B. Einzelventile bei Conrad ca. 6 ) in Ergänzung Gardena Bewässerungstechnik (Düsen, Tropfer, Versenkregner, etc.) im Baumarkt (z.B. OBI). Für eine Fußbodenheizung Messingventile (z.B. bei Conrad über 100 ). Es löst zwar nicht mein Programmproblem, aber immerhin..... Gruß Wolfgang
Du kannst ja einfach einen zweiten MC nehmen und damit den ersten reseten, wenn der eine vorgegebene Zeit lang einen Port nicht ändert oder den Watchdog dafür nehmen. Alternativ kann man 3 MC mit 3 verschidenen Programmen nehmen, die das Gleiche bewirken sollen und mit einer 2-von-3-Schaltung demokratisch und fehlertolerant abstimmen lassen ;-)
hi google mal: TC1232 dieser 'wachhund' beisst in den 'reset' falls dein uC stehen bleibt. ed
Hallo, danke für die Hinweise. Aber..... Ich arbeite mit AT 89C4051 MC nach meiner Kenntnis ohne Watchdog Funktion. Weiteres Problem, die Tropfbewässerung (Balkonkästen)arbeitet 6 mal am Tag eine Minute. Die Rieseler bei Bedarf (Feuchtefühler) 1 mal 30 Min. am Tag. Wenn ich 30 Min. überwache sind die Kästen schon abgesoffen bevor der Hund anschlägt. Ich würde lieber den "zeitweisen" Fehler finden! Gruß Wolfgang
hi wieviel platz hast du deinem STACK gegoennt...und wo liegt sein anfang? ed
Hallo Wolfgang, "Die Relais (f. Magnetventile) werden über Schalttransistoren angesteuert und sind über 10 Meter entfernt, daher sehe ich keine Beeinflussungsmöglichkeit." Solange eine Kabelverbindung besteht welche nicht galvanisch getrennt ist spielt die Entfernung keine große Rolle. Waschmaschinen Ventile sind in der Regel 220V AC gesteuert. Wie machst Du das genau? Ich verwende für eine Wasserwerksteuerung Halbleiterrelais (Solid State)das bereitet keine Probleme da die optisch isoliert sind und Nullpunkt geschaltet werden. Was macht der µP wenn er die Ventile nicht schalten muß? Tritt der Fehler auch eher auf wenn Du die Ventile mal mit einer Proberutine häufig schaltest? MfG Manfred Glahe
Beim den 8051-ern sind nach einem Reset alle Portpins auf High. Das hat seinen Grund darin, daß jeden Pin, der als Eingang benutzt wird, ein Low-Pegel nach Reset kurzschließen würde. Deshalb empfielt es sich, alle Lasten so zu treiben, daß sie bei High (und somit auch im Resetzustand) ausgeschaltet und bei Low eingeschaltet werden. Der 4051 hat keinen Watchdog intern. Man kann z.B. den MAX813L nehmen, der muß dann im Programm mindestens alle 1s getriggert werden. Peter
Hallo, die Frage mit dem Stack habe ich nicht verstanden (bin Anfänger). Die galvaniche Trennung ist durch den Schalttransistor in der Folge ein 5V Lastrelais und danach teilweise 10/ 20 Meter weiter ein Schaltrelais für das 220V Magnetventil gegeben. Was soll der MC machen wenn er nicht ein Ventil schaltet, er läuft durch und prüft alle Steuerpins ob ein Befehl (MINUS) kommt. Damit beantwortet sich auch die Frage nach der Steuerung, mit LOW werden die Ventile eingeschaltet. Ich teste verschiedene Varianten. Seit ich die Zeit von 60000 auf 6000 heruntergesetzt habe und mit einem Zähler 10 mal durchlaufe, ist der MC (2 Tage) nicht mehr hängen geblieben. Gruß Wolfgang
Hallo, ich vermute mal, das die Ursache bei den Relais zu suchen sind. Möglichkeit zur Abhilfe wäre eine Reihenschaltung aus R + C parallel zu den Kontakten der Relais. Die Sache muss natürlich entsprechen Spannungsfest sein. C = 100 - 330n mindestens 275AC Betriebsspannung R = 100 Ohm 1Watt Gruß, Günter
Hi, ich hatte auch mal ein ähnliches Problem. Bei Abfallen eines Relais wurde eine so große Spannung induziert, die dann den ganzen Speicher meines tollen Conrad Temperatur Displays gelöscht hat. Aber mit der Idee von Günter konnte ich damals das Problem lösen. Viel Erfolg
Hallo Wolfgang, "Ich teste verschiedene Varianten. Seit ich die Zeit von 60000 auf 6000 heruntergesetzt habe und mit einem Zähler 10 mal durchlaufe, ist der MC (2 Tage) nicht mehr hängen geblieben." Die Absturzhäufigkeit sollte sich aber erhöhen wenn die Ansteuerung der Relais dafür verantwortlich währe. Sind über diesen Zeitraum eventuell andere (störende) Verbraucher am Netz abgeschaltet gewesen? Ist ein Entstörfilter testweise eingesetzt worden? Die langen Kabelverbindungen welche zum µP führen können auch als "Antenne" gesehen werden welche induktive Störpulse von anderen Netzverbrauchern einfangen. Läuft der4 µP durch ohne Kabelverbindung nach außen? Eventuell mit einem 2. µP einen Testaufbau (mit separater Stromversorgung) parallel laufen lassen. Entstörung ist eine der schwierigsten Aufgaben an solchen Projekten (80 Prozent der Versuche bleiben in der Regel wirkungslos). Grundsätzlich muß aber erst einmal unterschieden werden ob es sich um ein HARD- oder Software Problem handelt. MfG Manfred Glahe
Hi Wolfgang, "die Frage mit dem Stack habe ich nicht verstanden (bin Anfänger)." Dann dürfte da mit ziemlicher Sicherheit auch Dein Fehler liegen und Du solltest Dich erstmal näher mit dem Stack beschäftigen. Stackfehler haben nämlich die Eigenschaft völlig unlogische Fehlerbilder zu produzieren. Sie können auch ein scheinbar funktionierendes Programm bewirken. Du kannst ja mal Deinen kompletten Code als Dateianhang senden. Peter
Hallo, danke für die Antworten. Ich gehe von einem Softwarefehler aus. Das mit dem Stack ist eine berechtigte Forderung. Die Reduzierung der Schleifenzahl brachte auch wieder den bekannten Fehler. Ich gehe von einem Mangel in der Subroutine (nicht von mir, dafür reicht es nicht) aus. Ich habe mir eine anderen Schleifencode besorgt. Seit zwei Tagen ist der Fehler nicht mehr aufgetreten. Ich habe die zeitweise stehen bleibende Steuerung mal angehangen. Gruß Wolfgang
Hallo Wolfgang, ich kann Dir bei deinem Problem nicht weiterhelfen, aber ich bin auch dabei mir eine Bewässerungsanlage zu bauen und bin seit Wochen verzweifelt auf der Suche nach brauchbaren (und günstigen) Magnetventilen . Ich wäre Dir SEHR dankbar, wenn du mir mitteilen könntest, was für Magnetventile du verwendest und, wo man die bekommt. Gruß Pingpong
Hallo, woher Magnetventile zu bekommen sind, steht in der achten Antwort. Der Fehler, dass der MC stehen bleibt, ist weg. Es war die Schleifenroutine. Eine andere Routine bringt den Fehler nicht mehr. Gruß Wolfgang
Die einfachste Möglichkeit einer sicheren Steuerung sind 3 unabhängige Implementierungen auf 3 MCs und eine dahintergeschaltete 2-von-3-Funktion für jedes der Ausgangsbits. Das ist zwar aufwändiger, aber wenn es um etwas Wichtiges/Teures geht, ist das eine gute Lösung.
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.