PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gesicherte Daten im eram bei Programmstart verwenden



mat-sche
19.01.2008, 20:31
Hallo Ihr da draußen,

ich bräuchte mal einen Gedankenanstoß und Code-Hilfe von Euch:

folgendes möchte ich realiesieren:

mein Programm soll meine Rollädensteuern, dabei muss das Prog wissen, ob die Rolläden oben oder unten sind. Diese Information will ich im eram unter einer bestimmten Adresse abspeichern. Ich gebe jedem Rolladen z.Bsp einen Variablennamen und einen Wert für auf oder zu (0 oder 1).

Wie kann ich aber nach einem Stromausfall beim Programmstart sagen, dass erst Werte aus dem eram zu lesen sei und dann diese in die entsprechende Variable geschrieben werden soll, die dann im folgenden Programmablauf zur Anwendung kommen.

Irgendwelche Ideen oder schon mal soetwas gemacht?

Danke und Gruß MAT

Dirk
19.01.2008, 21:10
Hallo mat-sche,

wo liegt das Problem?
Du kannst ja das oder die Byte/s im Eram definieren, z.B.:
Dim Rolladen As Eram Byte

Darin kannst du z.B. deine Rolladen-Positionen speichern.

Beim nächsten Programmstart liest du das Byte wieder ein,- es hat noch den Inhalt vom letzten Beschreiben. Ist es anfangs hFF, dann ist das Eram wohl noch leer.

Gruß Dirk

stefan_Z
19.01.2008, 22:32
Bei sowas würd ich mich aber NICHT auf das EEP verlassen. Da sollten Sensoren dran! Entweder unten, wenn das Rollo zu ist oder oben im Kasten, ob das Rollo aufgewickelt ist... sowas!
Kann man bestimmt easy basteln...

peterfido
19.01.2008, 23:00
Kommt darauf an. Es gibt ja auch die Möglichkeit, dass der Strom ausfällt, wenn der Rolladen gerade beim Fahren ist. Da reichen dann 0 und 1 nicht aus. Da die Antriebe normalerweise eine richtig eingestellte Endlage haben sollten, schadet es dem Motor nicht, wenn er Richtung zu angesteuert wird, wenn er bereits zu ist. Falls du auch eine Zeitsteuerung einbaust, empfehle ich eine batteriegepufferte RTC mit RAM. Dieses kannst du ruhig bei jedem Fahrbefehl beschreiben. Falls du die Laufzeit des Rolladen weisst kannst du ja abspeichern wieviel Prozent das Teil offen ist. Du könntest auch nach einem Stromausfall den Rolladen auffahren, sodass die Position wieder bestimmt werden kann, wobei dann das Ding dann auch hochfährt, wenn es gar nicht gewünscht ist, weshalb ich diese Möglichkeit nicht nehmen würde. oder oder oder
Dein Problem würde ich so lösen: Die Variable, welche den aktuellen Zustand beinhaltet nach jedem Fahrbefehl abspeichern und beim Neustart des Programmes diese auslesen.

dim Jal as byte
dim eJal as eram

dann beim Programmstart
jal = ejal


und beim Fahren

jal.0=0
jal.1=0
ejal=jal

bei Endlage dann

jal.0=1
ejal=jal

oder

jal.1=1
ejal=jal

je nachdem, welche erreicht wurde.

Dadurch schreibst du allerdings die Speicherzelle andauernd neu. Deswegen empfehle ich eher die RAM aus der Uhr Variante.

Die anderen Bits der ejal könntest du verwenden um zu prüfen, ob die Variable evtl noch nie geschrieben wurde, sodass die Lage des Rolladens auf unbekannt gestellt werden kann.

Dirk
20.01.2008, 13:18
Ich würde es auch so machen wie peterfido.
Damit man nicht ständig ins Eram schreibt (sollte man wirklich nicht!), würde ich im Programm nur mit normalen Variablen arbeiten und nur bei Programmabbruch (Stromausfall) oder z.B. einmal am Tag (Mitternacht oder so) die Variablen ins Eram schreiben.

Stromausfall müßte man über einen Watchdog erkennen und ggf. die uC-Schaltung über große Kondensatoren bzw. Goldcaps etwas stützen, damit auf jeden Fall noch vor dem Spannungseinbruch die Daten im Eram gesichert werden können.

Gruß Dirk

mat-sche
20.01.2008, 15:05
@all!

Vielen Dank für Eure Denkhinweise! Ich bin mir noch nicht ganz sicher wie ich es machen werde, ziehe aber Eure Vorschläge mit zu Rate. Werde mich dann wieder melden!

MAT

merlin63
24.03.2008, 19:26
hallo mat

ich gebe ja zu, das ich durch meinen beruf sehr cnc geschädigt bin ;-)
aber ich denke auch im falle eines stromausfalls und wieder einschalten des stromes, ein undefinierter zustand eintritt. am besten ist du verbaust so genannte referenzschalter....ich denke mal am oberen ende würden ja welche reichen und wenn derstrom wieder da ist, fährt das programm alle rollläden wieder bis zu den schaltern nach oben und du hast wieder eine saubere ausgangsposition.

LG thomas

mat-sche
25.03.2008, 20:24
hey thomas,

etwas alter beitrag aber dennoch danke für deine antwort! Leider ist es nicht so einfach irgend wo und wie einen schalter einzubauen. Mein projekt ist ein nachträglich bau und alle Fenster sind schon drin :D ohne eine möglichkeit dort schalter nachzurüsten. ich habe jetzt eine ups für meine kontroller gebaut und somit läuft das programm weiter auch wenn kein strom da ist ;)

LG MAT

merlin63
26.03.2008, 17:06
hi matze
ja ja...hast ja recht, habe ich nur zu spät gesehen. eine batterieversorgung....hmmmm auch nicht schlecht.....hoffentlich nachgeladen durch eine solarzelle ;-)....hoch lebe die technik

gruß thomas