Forum: Mikrocontroller und Digitale Elektronik Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort


von Darko D. (darlo)


Lesenswert?

Hallo alle zusammen. Ich bin schon seit ca. 5 Jahren hier, habe aber nur 
ein paar mal um Hilfe gebeten.
Heute ist es wieder soweit. Ich würde mich freuen, wenn einer von euch 
sich persönlich meinem Projekt widmet. Ich könnte natürlich alles hier 
posten, das würde aber sehr viel Zeit kosten und würde wahrscheinlich 
nicht schnell zum Erfolg führen. Wenn das aber nicht anders geht, dann 
auch gerne so.

Ich würde gerne dafür auch zahlen, wenn mir jemand mein Programm so 
ändert dass es auch funktioniert.

Ich habe einen at mega 8 und 5 Eingänge digital und 5 Ausgänge digital.

Alles sind wenn / dann Bedingungen und auch Bedingungen so wie:

solange der Eingang 1 nicht betätigt wird, solange soll der ausgang 3 
betätigt sein.

Es sind aber auch viele Verschachtelungen vorhanden. Ich denke mal ein 
profi brauch für das ganze Programm 20 Minuten. Wie könnte ich mit eurer 
Hilfe zum Ziel kommen?

Um die Erstattung der Fahrtkosten etc. sorge ich natürlich.

Danke erst mal!

von my2ct (Gast)


Lesenswert?

Darko D. schrieb:
> Ich denke mal ein profi brauch für das ganze Programm 20 Minuten.

Du kriegst die Aufgabe des Programms selber nicht einmal geordnet 
dargestellt und meinst beurteilen zu können, wie lange ein Profi dafür 
braucht.
Ein Vielfaches der 20 Minuten gehen wahrscheinlich schon alleine dafür 
drauf, um dir zu erzählen, wie du ihm dein Problem in verständlicher 
Form (i.e. logisch strukturiert) verklaren kannst.

von Denis (Gast)


Lesenswert?

Mach erst mal ein Programmablaufplan/PAP.
Dann geht es weiter.

von Darko D. (darlo)


Lesenswert?

Hallo. Es tut mir leid, wenn ich mich nicht so gut ausdrücken kann.
Ich wollte damit nur sagen, dass es vom Anspruch nicht so hoch ist.
Es sind eig. nur wenn dann Bedingungen die ineinander verschachtelt 
sind.
Ich habe ein ordentliches Flussdiagramm gemalt. Ich werde es gleich 
hochladen. LG

von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Hier zum Beispiel das Flussdiagramm.

von Oliver S. (oliverso)


Lesenswert?

Bier und Popkorn stehen schon bereit…

Oliver

: Bearbeitet durch User
von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Das hier ist vom AT Mega 8 die Belegung (wenn das so geht) hoffe ich:

von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Als letztes möchte ich noch das unvollständige und nicht korrekte 
Programm als txt datei zur Verfügung stellen. Oli, für Essen und trinken 
wird auch gesorgt!

von MaWin (Gast)


Lesenswert?

Deine Hausaufgaben machst du besser selbst. Dann lernst du auch etwas.

von pnp (Gast)


Lesenswert?

Darko D. schrieb:
> Das hier ist vom AT Mega 8 die Belegung (wenn das so geht) hoffe
> ich:

Warum hast du beispielsweise beim "Port C4" dahinter
(rot) geschrieben "Port C15"? Ähnlich bei anderen Ports...

von Darko D. (darlo)


Lesenswert?

Hallo. ja das stimmt wohl. Ich bin allerdings vor wenigen wochen Vater 
geworden und dann ist es immer mit der Zeit so eine sache...
Ich würde mich dennoch freuen, wenn mir jemand die ersten 5 Zeilen erst 
mal stilistisch i.O. bringt, denn das == false oder true ist glaube ich 
falsch...

von my2ct (Gast)


Lesenswert?

Darko D. schrieb:
> Schaltung_Verlauf.bmp
> 5,36 MB

Darko D. schrieb:
> AT_Mega8.bmp
> 3,46 MB

Erst lesen, dann posten.
Was könnte der Hinweis "Zeichnungen und Screenshots im PNG- oder 
GIF-Format hochladen" wohl bedeuten?

Fällt dir etwas auf?

von Darko D. (darlo)


Lesenswert?

Hallo pnp.
Das kann ich dir sagen.

Weil ich mich verechnet habe. Ich glaube B7 bedeutet das B1 und B2 und 
B3 zusammen angesteuert werden, ist das richtig? Es hätte jeweils 1 mehr 
heißen müssen oder?

von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Ich habe beides in PNG geändert. Danke für den Hinweis.

von Darko D. (darlo)


Lesenswert?

Ich gaube ich erinnere mich.

Port C0 heißt im Programm C1 weil 2hoch null gleich 1 ergibt.
Port c1 heißt im Programm c2 weil 2hoch eins gleich 2 ergibt.
und so weiter.

Und C5 im programm wäre dann der vierer und der einser zusammen...

von pnp (Gast)


Lesenswert?

Darko D. schrieb:
> Hallo pnp.
> Das kann ich dir sagen.
>
> Weil ich mich verechnet habe. Ich glaube B7 bedeutet das B1 und B2 und
> B3 zusammen angesteuert werden, ist das richtig? Es hätte jeweils 1 mehr
> heißen müssen oder?

Nein. "Port C4" heißt "PortC Pin4". Und wo sich dieser am µC befindet, 
ist im Datenblatt festgelegt. Du kannst nicht einfach aus einer 4 eine 
15 machen. :-)

von Darko D. (darlo)


Lesenswert?

Danke danke. Ich habe da nicht einfach ne 15 draus gemacht.

Port c4 im Programm wäre dann Port zwei hoch 4 und das ist dann PortC16. 
Ich habe mich wie gesagt immer um einen vertan.

von Stefan F. (Gast)


Lesenswert?

Mir fällt sofort auf, dass das Programm drei tote Enden hat.

Was passiert danach? Wenn du danach nicht kit dem Weltuntergang 
rechnest, dann muss es dort irgendwie weiter gehen.

Weiterhin fehlt mir da jegliche Fehlerbehandlung. In so einem Diagramm 
würde ich die auch nicht einzeichnen, aber wenigstens als Text dazu 
liefern. Beispiele:

> Ventil auf ansteuern bis Endlage erreicht
Und wenn die Endlage nicht erreicht wird, was dann? Wie lange darf das 
dauern?

> Betätigung Schalter auf/zu B31
Was soll passieren, wenn der Schalter zwischendurch während des 
folgenden Ablaufes erneut betätigt wird?

Bei deinen ganzen Kästchen wird nicht klar zwischen Bedingungen, 
Ereignissen und Reaktionen unterschieden. Das solltest du klarer 
darstellen, durch unterschiedliche Symbole.

Die ersten 10 Minuten sind schon vorbei. So viel zu den 20 Minuten.

von EAF (Gast)


Lesenswert?

> if(PORTB |=(1<<31) == true)
Habs nicht geprüft, aber das wird nie wahr werden.

1. eine Zuweisung im if ist meist bedenklich
2. das "== true" ist überflüssig, oder tut nicht das was du möchtest
3. die (1<<31) ? das wird sicherlich nicht das tun, was beabsichtigt 
ist.

3 Böcke in einer Zeile!

von Darko D. (darlo)


Lesenswert?

Oha ihr macht mir Mut...
Also eine Fehlerbehandlung soll da nicht mit eingebaut werden. Das wird 
dann zu kompliziert.
Es handelt sich um eine Klappe die Auf und zu gehen soll. Es soll 
solange angesteuert werden bis die endlage erreicht ist. Die endlage 
wird irgendwann erreicht. Warum soll sie nicht erreicht werden. Das 
dauert schätzungsweise ca. 5 bis 7 sekunden.
Wenn die endlage nicht erreicht wird ist irgendwas kaputt. das sehe ich 
dann ja.

Das Programm soll nicht ins tote laufen. Solange der taster nicht 
betätigt wird, passiert auch nichts. Am besten wäre es wenn der taster 
(B32) während der prozedur stillgelegt werden könnte. bis ein Ende 
erreicht ist.

von EAF (Gast)


Lesenswert?

Zum Programm Entwurf:

Bin nur Arduino, könnte mich auf C runter beugen.

Verstehe aber den Plan nicht.
Müsste erstmal wissen/verstehen was der ganze Kram den überhaupt sein 
soll. Welche Klappe welchen Sinn hat.

Das ganze riecht nach einem "Zustandsautomaten"!
Es stinkt geradezu danach.

Also denkt man auch in Zuständen!
Klar benennen! Aufzählungen!
Die Bedingungen für den Wechsel der Zustände klar benennen.

Dort in if Verschachtelungen zu denken, geht fix schief.
1 Ebene mit einer einfachen Bedingung ist leicht zu überblicken
Je mehr Ebenen und je komplexer die Bedingungen, desto  gruseliger der 
Debug Aufwand.

von Darko D. (darlo)


Lesenswert?

Aber ich glaube, dass das Programm von oben nach unten läuft. das 
bedeutet wenn einmal eine if Prüfung stattgefunden hat, dann ist er in 
der Prozedur drinnen. Wenn sich der Status dann ändert spielt es keine 
Rolle. die Bedingung wird dann stumpf abgearbeitet.

von Darko D. (darlo)


Lesenswert?

Kann ich ein Video von der Klappe machen? Vielleicht ist das 
Anschaulicher? Es wäre schade, wenn das zwei Jahre lange Projekt am 
Programm scheitert...

von Darko D. (darlo)


Lesenswert?

> if(PORTB |=(1<<31) == true)

das sollte eig. bedeuten als text:

Wenn PB5 belegt ist, dann soll ....

Wie heist es denn in der Programmiersprache richtig?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Warum machst du dir das Leben so schwer und benennst die Pins nicht? 
Wenn die Klappe an PortB B4 hängt, schreibst du:
1
#define Klappe 4
2
// und als PortB 
3
#define Ausgang PORTB
4
// dann kannst du schreiben
5
Ausgang |= (1 << Klappe);   // Klappe auf
6
Ausgang &= ~(1 << Klappe);   // Klappe zu

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
>> if(PORTB |=(1<<31) == true)
>
> das sollte eig. bedeuten als text:
>
> Wenn PB5 belegt ist, dann soll ....
>
> Wie heist es denn in der Programmiersprache richtig?

Vermutlich:
 if(PORTB | (1<<PB5))

von Darko D. (darlo)


Lesenswert?

Ok. Das sieht optisch schon mal gut aus. Und wie sieht es aus, wenn das 
ganze nicht true sein soll also wenn PB5 False ist dann....

von Dan (Gast)


Lesenswert?

Ich würde zu einer Siemens Logo greifen, nix gebastel…

funktioniert auch in 10 Jahren noch und wenn nicht, gibts Ersatz…

Meine Meinung und eigene Erfahrung

von Darko D. (darlo)


Lesenswert?

Wird bestimmt auch zuverlässig funktionieren. Es ist bei mir schon quasi 
alles fertig, es fehlt nur noch das Programm. Gebastelt ist bei mir 
nichts. Alle elektrischen und pneumatischen Normen wurden eingehalten.

von EAF (Gast)


Lesenswert?

if(!(PORTB | (1<<PB5)))

von Darko D. (darlo)


Lesenswert?

Oha, drei Klammern zu am ende. WAHNSINN! Danke! Ich hoffe ich bekomme 
noch ein Weihnachtsgeschenk von einem aus Bremen und Umgehbung und es 
klingelt an der Türe :-)

von EAF (Gast)


Lesenswert?

if(PORTB & (1<<PB5))

von Darko D. (darlo)


Lesenswert?

Das ist bestimmt eine anders Schreibweise.

von EAF (Gast)


Lesenswert?

| << --das war falsch!
Sorry

Wie gesagt, das mit den Bedingungen nervt fürchterlich.
Ein Scheunentor für Flüchtigkeitsfehler.
Wie ich sie gerade wieder gebaut habe....

Schon gesagt, ich würde es gänzlich anders angehen!

von Darko D. (darlo)


Lesenswert?

Ja ich möchte das gerne durchziehen. Ein anderer Weg ist mir nicht 
bekannt noch habe ich die Möglichkeit jetzt einen ganz anderen Weg 
einzuschlagen. Ich bekomme es zur Not mit Opferung des ganzen 
Winterurlaubes ab morgen auch irgendwie hin. Ich sehe sowas als nichts 
Unmögliches 5 oder 10 Bedingungen aufzustellen.

Es fehlen mir einfach auch die Grundlagen.
Da muss ich mich leider vielleicht selbst einarbeiten...

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Oha, drei Klammern zu am ende. WAHNSINN!

Deswegen kapselt man sich so etwas in Funktionen: mit sprechenden Namen:
1
bool schalter_klappe_gedrueckt()
2
{
3
    return (PORTB && (1<<PB5))==0;
4
}
5
6
7
if (schalter_klappe_gedrueckt()) 
8
{
9
   tue dies;
10
}
11
12
if (!schalter_klappe_gedrueckt())
13
{
14
   tue das;
15
}

Gleiches gilt für die Ansteuerung der Ausgänge

von Rainer V. (a_zip)


Lesenswert?

Darko D. schrieb:
> Also eine Fehlerbehandlung soll da nicht mit eingebaut werden. Das wird
> dann zu kompliziert.

Mal ehrlich...haste in der Firma beim Schrottwichteln den Hauptgewinn 
gezogen???  Als allererstes erwarte ich mal ein irgendwie geartetes 
Flußdiagramm, das zeigt, was alles soll, was nicht soll und was kann und 
was nicht kann usw... wenn du schon daran scheiterst, dann brauchst du 
mit Programm gar nicht erst anfangen! Sorry, aber meine Meinung ...
Gruß Rainer

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Aber ich glaube, dass das Programm von oben nach unten läuft.

Früher oder später wird es komplexer, mit Ereignissen die den normalen 
einfachen Ablauf unterbrechen. Spätestens dann wirst du uns für den Tipp 
mit dem Zustandsautomaten dankbar sein.

Hier ein bisschen Anregung, wie man Zustandsautomaten grafisch und als 
Tabelle darstellen kann. Mein persönlicher Favorit ist die Tabelle.
http://stefanfrings.de/multithreading_arduino/index.html#planung

von Axel R. (axlr)


Lesenswert?

Darko D. schrieb:
> Ok. Das sieht optisch schon mal gut aus. Und wie sieht es aus, wenn das
> ganze nicht true sein soll also wenn PB5 False ist dann....

Beitrag "Re: Einen einzelnen Pin abfragen"
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Eing%C3%A4nge_(Wie_kommen_Signale_in_den_%C2%B5C)
1
/* Fuehre Aktion aus, wenn Bit Nr. 2 (das "dritte" Bit) in PINB geloescht (0) ist */
2
if ( !(PINB & (1<<PINB5)) ) {
3
  /* Aktion */
4
}

von Axel R. (axlr)


Lesenswert?

ach. zu spät ;)

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Also eine Fehlerbehandlung soll da nicht mit eingebaut werden.
> Das wird dann zu kompliziert.

Das ist der Punkt, wo ich den Auftrag ablehnen würde. Außer, du 
unterzeichnest mir einen Freibrief für ein beliebig schlechtes Ergebnis 
mit deinem eigenen Blut, sowie einer Unterlassens-Erklärung, diesen Fall 
jemals öffentlich zu machen.

Ach Käse, dafür ist es schon zu spät. Also ich gebe dir gerne Tipps, 
aber ich werde dir nichts programmieren.

von Axel R. (axlr)


Lesenswert?

Axel R. schrieb:
> Darko D. schrieb:
>> Ok. Das sieht optisch schon mal gut aus. Und wie sieht es aus, wenn das
>> ganze nicht true sein soll also wenn PB5 False ist dann....
>
> Beitrag "Re: Einen einzelnen Pin abfragen"
> 
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Eing%C3%A4nge_(Wie_kommen_Signale_in_den_%C2%B5C)
>
>
1
> /* Fuehre Aktion aus, wenn Bit Nr. 2 (das "dritte" Bit) in PINB 
2
> geloescht (0) ist */
3
> if ( !(PINB & (1<<PINB5)) ) {
4
>   /* Aktion */
5
> }
6
>

Ich hab den Kommentar ausm Tutorial nicht angepasst. Da muss dann 
tatsächlich die korrespondierende Zahl hin -> "5", in deinem Fall. Nicht 
die "ZWEI", sry

von Stefan F. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> bool schalter_klappe_gedrueckt()
> {
>     return (PORTB && (1<<PB5))==0;
> }

Sorry, um Eingänge zu lesen muss man natürlich PINB schreiben und nur 
ein &.

von Xerxes (Gast)


Lesenswert?

Darko D. schrieb:
> Hallo pnp.
> Das kann ich dir sagen.
>
> Weil ich mich verechnet habe. Ich glaube B7 bedeutet das B1 und B2 und
> B3 zusammen angesteuert werden, ist das richtig? Es hätte jeweils 1 mehr
> heißen müssen oder?

DAS IST FALSCH !

B7 ist ein NAME / Label der in io.h definiert ist. Das ist kein Wert mit 
dem man rechnen kann !

Bitte mal hier lesen : 
https://de.wikibooks.org/wiki/C-Programmierung_mit_AVR-GCC/_IO-Ports

Daa sind auch Beispiele für den Mega8 angegeben.

von Lutz (Gast)


Lesenswert?

Wenn ihn diese ganzen Fehler nicht vollends verwirren, wäre ich 
überrascht.

von Christian S. (roehrenvorheizer)


Lesenswert?

> Warum soll sie nicht erreicht werden.

Was soll denn passieren, wenn in der Klappe die Katze oder der Otter 
drin stecken und nicht alleine raus kommen. Läuft das Programm dann zum 
Abort?

mfG

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> Es fehlen mir einfach auch die Grundlagen.
> Da muss ich mich leider vielleicht selbst einarbeiten...

Wenn jetzt schon 2 Jahre ins Land gezogen sind, dann sehe ich da etwas 
schwarz.

Darko D. schrieb:
> noch habe ich die Möglichkeit jetzt einen ganz anderen Weg
> einzuschlagen.
Wenn die Aufgabe einen endlichen Automaten erfordert, dann wird die 
Endlösung auch ein solcher sein.
Egal ob du weißt, was das ist, oder jemals beabsichtigt hast einen 
solchen zu bauen.
Ich halte es für einfacher ihn dann auch so zu nennen und die 
ausgetretenen Pfade zu nutzen.
Tipp: Du bist nicht der erste, der einen solchen Automaten baut.

Grob vereinfacht:
Alle Ablaufsteuerungen sind endliche Automaten (Zustandsmaschinen)

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Ich habe einen at mega 8 und 5 Eingänge digital und 5 Ausgänge digital.
>
> Alles sind wenn / dann Bedingungen und auch Bedingungen so wie:
>
> solange der Eingang 1 nicht betätigt wird, solange soll der ausgang 3
> betätigt sein.

Also wenn ich das richtig verstehe, gibt es auf die 32 möglichen 
Eingangskombinationen auch nur maximal 32 Ausgangskombinationen?

> Es sind aber auch viele Verschachtelungen vorhanden.

Schmeißt das die oberen Aussagen wieder um?

Schmeiß die 5 Eingangsbits in die 5 untersten Bits eines Bytes und hole 
damit eine weitere Zahl aus einem Array, in der sich die Kombination der 
5 Ausgangsbits befindet.

Dafür musst Du vorher eine Tabelle machen, in der das, was Du eigentlich 
möchtest, drin steht. Sprich: Für jede Eingangskombination musst Du für 
jeden Ausgang eine Entscheidung treffen, ob dieser bei der Kombination 
an oder aus sein soll.

Du könntest diese Tabelle prinzipiell auch in ein EPROM oder GAL brennen 
und dann ohne Prozessor arbeiten. EPROM ginge mit viel Geduld und 
Konzentration sogar von Hand.

Gruß
Jobst

von Stefan F. (Gast)


Lesenswert?

Jobst M. schrieb:
> Du könntest diese Tabelle prinzipiell auch in ein EPROM oder GAL brennen
> und dann ohne Prozessor arbeiten

So einfach ist es nicht. Du hast wohl übersehen dass da 
Zeitverzögerungen mit drin sind und bestimmte Teile erst ausgeführt 
werden sollen, nachdem vorher etwas anderes passierte.

Bei einem kommerziellen Auftrag wären jetzt schon Reisekosten und 
mindestens 2 Stunden Meeting angefallen. So viel zu "Ich denke mal ein
Profi brauch für das ganze Programm 20 Minuten".

von Manfred (Gast)


Lesenswert?

Matthias S. schrieb:
> Warum machst du dir das Leben so schwer und benennst die Pins nicht?

An dem Ding ist Mechanik dran, die aus Sicht des µC unendlich langsam 
reagiert. Das schreit danach, einen ATMega328 zu nehmen und das in 
Arduino zu machen, vorne alles schön mit Klarnamen deklariert:
1
digitalWrite (Relais, HIGH);
2
digitalWrite (LEDRed, LOW);
3
if ((digitalRead(StartKey) == LOW) ...

Vor xx-Jahren habe ich ein paar Ablaufsteuerungen auf MC68HC805 in 
Assembler gemacht, die direkte Portklempnerei mit and / or würde ich mir 
heutzutage nicht mehr antun wollen.

Darko D. schrieb:
> Ich bekomme es zur Not mit Opferung des ganzen
> Winterurlaubes ab morgen auch irgendwie hin.

Ah ja, soweit zu "20 Minuten"

Für mich liest sich das so, dass Du in der Firma eine Aufgabe bekommen 
hast, der Du nicht gewachsen bist.

> Ich sehe sowas als nichts
> Unmögliches 5 oder 10 Bedingungen aufzustellen.

Ich auch nicht, aber werde es nicht für Dich machen.

> Da muss ich mich leider vielleicht selbst einarbeiten...

Besser ist das. Wenn das dann fertig ist und an die reale Maschine 
kommt, wird es nicht sauber funktionieren, da sollte man die Software 
selbst in der Hand haben und direkt anpassen können.

von Darko D. (darlo)


Lesenswert?

Hallo. Danke wirklich an die die mir irgendwie geholfen haben. Ich habe 
das mit den 20 Minuten wohl zeitlich total verschätzt. Ich kenne mich 
damit auch gar nicht so aus. Wir werden jetzt so verbleiben, dass ich 
selbst das zum laufen bekomme, den Quellcode hier poste und dann den 
quellcode nur für den feinschliff zum überfliegen sehe.
Es geht schließlich nur darum eine blöde Klappe auf und ab zu fahren. 
Ich möchte kein neues Auto erfinden was weniger Sprit verbraucht.
Ich kann mir auch bei aller liebe nicht erklären, was an dem 
Flussdiagramm nicht zu verstehen ist.

Ich habe mir wirklich viel mühe gegeben und weiß auch nicht wie ich das 
anders schreiben soll. Ich habe ja angeboten ein Video zu posten. Aber 
das wurde leider übersehen.

Nagut dann bis in ca. 2 wochen. LG Darko aus Bremen

von Darko D. (darlo)


Lesenswert?

Interessant, dass das eine Aufgabe aus der Firma sein soll!
Kreativität ist hier ja groß geschrieben!!!

von Hannes (Gast)


Lesenswert?

Darko D. schrieb:
> Ich habe mir wirklich viel mühe gegeben und weiß auch nicht wie ich das
> anders schreiben soll. Ich habe ja angeboten ein Video zu posten. Aber
> das wurde leider übersehen.

Aus dem ganzen Hintergrundrauschen das Gehaltvolle raus zu ziehen ist 
extrem schwierig, für einen Anfänger unmöglich. Leg alles zur Seite und 
fang neu an.

Eine SPS zu verwenden ist sicher kein schlechter Tipp, heißt aber eine 
neue Dose der Pandora aufzumachen. Und heißt auch, SPS lernen.

Falls es unbedingt eine uC-Lösung sein soll, würde ich vielleicht noch 
Richtung Stefan hören, und mir die Geschichte mir dem Zustandsautomaten 
ankucken. Das heißt aber, erst mal Basics lernen.

Als Nächstes lernst du zu abstrahieren, denken auf hohem Niveau. Für 
deinen Basisentwurf vergisst du erst mal so Dinge wie B7 und 
2-hoch-irgendwas, oder auch & und ||. Du brauchst erst einen Plan, der 
funktioniert und keinen Programmcode. Und dann lernst du C oder C++ oder 
was auch immer.

Erst danach kannst Du daran denken, zu coden ...

just my 2ct

von Rainer V. (a_zip)


Lesenswert?

Darko D. schrieb:
> Interessant, dass das eine Aufgabe aus der Firma sein soll!
> Kreativität ist hier ja groß geschrieben!!!

Du mußt das so verstehen, dass es in Firmen immer mal wieder Chefs gibt, 
die eine vermeindlich einfache Aufgabe einfach demjenigen an den Hals 
hängen, der nicht rechtzeitig in Deckung gegangen ist. Wobei der Chef 
ganz diffus im Kopf hat, dass in seiner Truppe prinzipiell jeder alles 
kann! Dass das nicht so ist - sein muß - interessiert den Chef erst mal 
nicht und die Mitarbeiter haben auch kein Interesse daran, an dieser 
Meinung groß was zu ändern. So kann es jemanden aus der Truppe eben ganz 
bös erwischen und dann könnte er z.B. so einen "Hilferuf" wie deinen 
hier ablassen :-)
Gruß Rainer

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> Es geht schließlich nur darum eine blöde Klappe auf und ab zu fahren.
> Ich möchte kein neues Auto erfinden was weniger Sprit verbraucht.
> Ich kann mir auch bei aller liebe nicht erklären, was an dem
> Flussdiagramm nicht zu verstehen ist.

Ein kleines Verständnisproblem kann das ganze bisher geschriebene 
hinfällig machen. Aus dem Grund will ein erfahrener Programmierer immer 
das gesamte vollständig verstanden haben! Ein Bild.
Wenn das Bild im Kopf, auf Papier, klar ist, dann ist programmieren nur 
wie ein malen nach Zahlen.


Und nein, dein Flussdiagram ist ein Anfang, aber sicher nicht komplett 
verständlich, wenn man den Apparat nicht kennt.
Bedenke:
Keiner hier, kennt deine Maschine.
Keiner kann die logischen Fehler erkennen, welche du da evtl eingebaut 
hast.
Ich kann nur sagen, deine Erklärungen sind unzureichend. Bisher.


Darko D. schrieb:
> Ich habe ja angeboten ein Video zu posten. Aber
> das wurde leider übersehen.
Du möchtest, dass ich/wir nach Information betteln?!?!?!
Das kannst du knicken!
Entweder lieferst du die nötige Information, wenn dir geholfen werden 
soll.
Oder du lieferst eben nicht.

von my2ct (Gast)


Lesenswert?

my2ct schrieb:
> Ein Vielfaches der 20 Minuten gehen wahrscheinlich schon alleine dafür
> drauf, ...

Jetzt sind wir schon bei über 7 1/2 Stunden ...

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

my2ct schrieb:
> my2ct schrieb:
>> Ein Vielfaches der 20 Minuten gehen wahrscheinlich schon alleine dafür
>> drauf, ...
>
> Jetzt sind wir schon bei über 7 1/2 Stunden ...

Naja, die ~20 Minuten sind durchaus realistisch wenn der TE in der Lage 
ist seine Anforderung vollständig(!) und fehlerfrei zu formulieren. Das 
bedeutet insbesondere KEIN Video vom Ablauf zu posten, was man nicht mit 
Worten formulieren kann, kann man auch nicht implementieren. Eigentlich 
eine einfache Sache.

Aber Formulierungen wie Ventilklappe auf bis Ende (C7) sind einfach 
nicht präzise genug. Es muss vielmehr ein Aktoren Kommando sein C6 
inaktiv + C7 aktiv und dann eine Prüfung auf B3 aktiv + B7 inaktiv und 
das in einer Schleife mit einer maximalen Wartezeit und einer 
Fehlerbehandlung wenn es zu lange dauert oder unplausible Informationen 
ankommen z.B. B3 und B7 gleichzeitig aktiv. etc, etc.

Wenn man alle Elemente im PAP auf diese Art schon sprachlich formuliert, 
kann man es praktisch direkt in Quelltext gießen.

: Bearbeitet durch User
von Darko D. (darlo)


Lesenswert?

Hallo alle zusammen. Ich habe eingesehen, dass die 20 Minuten nicht 
realistisch sind. Diese Zeit bezog sich allerdings rein auf das 
Programmieren. Ich bin davon ausgegangen, dass das Flussdiagramm 
selbsterklärend ist. Dem ist aber nicht so. Ich bin leider nicht in der 
Lage noch präzisere Informationen zu liefern, weil das Diagramm für mich 
zu 100 Prozent selbsterklärend ist. Wir verbleiben einfach so, dass ich 
das ganze zum Laufen bekomme und Ihr dann vielleicht darüber schaut, ob 
das so in Ordnung ist oder ob man das verbessern kann. Was ich natürlich 
gerne machen könnte wären Fragen beantworten wie zum Beispiel:

Was soll passieren wenn der Endlagenschalter nicht erreicht wird?
Antwort: es soll so lange versucht werden bis der erreicht wird, auch 
wenn es 100 Jahre dauert, denn dann muss was kaputt sein. Und dann muss 
es repariert werden.

Ich hoffe das ich auch nach der schwerwiegenden Niederlage gestern in 
ca. 2 Wochen auf euch zugreifen kann. Und für diese geringen 
Anforderungen muss man sicherlich kein Programmierprofi sein. Ich denke, 
dass ich es selbst schaffen werde nach einiger Zeit.

von Darko D. (darlo)


Lesenswert?

Meine Frau war gestern sauer auf euch, weil Ihr mir nicht so direkt 
geholfen habt. Ich habe das ein wenig anders gesehen. Ich komme 
normalerweise aus einem ganz anderen Forum. Dort heißt es oft: Mein Auto 
springt nicht an, woran liegt es? Darüber rege ich mich auch so auf über 
die unpräzisen Informationen so wie ihr es auch macht. So hart ist das 
Leben einfach :-)

von Jobst M. (jobstens-de)


Lesenswert?

Stefan ⛄ F. schrieb:
> Du hast wohl übersehen dass da
> Zeitverzögerungen mit drin sind und bestimmte Teile erst ausgeführt
> werden sollen, nachdem vorher etwas anderes passierte.

Offensichtlich ist es mir durch die Lappen gegangen. Danke!

Dann muss man eben einfach Rückkopplungen von weiteren Aus- und 
Eingängen auf weitere Eingänge schaffen.
Jede Anforderung Multipliziert den Aufwand dann.

Dennoch hängt alles daran, dass dafür die Anforderungen in einer 
Übersicht aufgelistet werden müssen. Aber da sind sich hier ja alle 
einig.

Gruß
Jobst

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> ich auch nach der schwerwiegenden Niederlage gestern
Eine Enttäuschung?
Das ist ein wahrhaft positives Erlebnis, oder?
Denn eine (selbst)Täuschung ist von dir genommen.
Jetzt kann es, der Wahrhaftigkeit ins Gesicht blickend, weiter gehen!

Darko D. schrieb:
> Ich bin leider nicht in der
> Lage noch präzisere Informationen zu liefern, weil das Diagramm für mich
> zu 100 Prozent selbsterklärend ist.
Du hast die Maschine vor dir!
Wir sehen nichts.

Wenn denn wenigstens die Klötzchen in deinem Flussdiagramm eindeutig 
benannt wären....
Dann könnte man sie einzeln besprechen.
Sind sie aber nicht.

Hinter einigen Klötzchen verbergen sich auch wieder Abläufe, endliche 
Automaten.
Es ist ein Automaten Zoo.


Ich mache mal den Propheten:
Du wirst in deinen Bedingungen und Schachtelungstiefen ersaufen.

Der einzige Ausweg daraus: Klarheit schaffen.
Klarheit in den Gedanken, und auf dem Papier.

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Meine Frau war gestern sauer auf euch, weil Ihr mir nicht so direkt
> geholfen habt.

Tja, das Leben ist kein Schuhgeschäft mit cooler Musik! Schönen Gruß! 
:-D

Gruß
Jobst

von Darko D. (darlo)


Lesenswert?

Ja wahscheinlich habt ihr alle Recht. Ich werde es einfach versuchen und 
daraus lernen müssen. Eventuell auch so, wie man es nicht macht.
So ganz undurchsichtig ist es für mich allerdings nicht. Ihr habt Recht, 
dass ihr weder die Klappe noch die ganze Mechanik dahinter gesehen habt.
Das Ziel des Forums ist es ja nicht irgendwelche Leute zu enttäuschen, 
sondern zu helfen. (Zumindest die meisten) Manchmal ist die Realität 
aber eine andere wie man sie selbst wahrnimmt.

von Karl (Gast)


Lesenswert?

Oder du lässt es gegen Bezahlung
von jemanden machen. Selber machen ist natürlich
am billigsten.

von Darko D. (darlo)


Lesenswert?

Ja das war ja auch mein Gedanke. Deshalb ja auch aus dem Raum Bremen. 
Allerding habe ich mich da zeittechnisch offensichtlich völlig 
verschätzt.
Mit allem drum und dran wären es dann vielleicht 4 oder 5 Stunden 
Arbeitszeit mit Anfahrt und pi pa po. Mehrere hundert Euro für den 
Quellcode kann ich nicht zahlen.

von Darko D. (darlo)


Lesenswert?

Ich bin von einer reinen Schreibzeit von vielleicht 20 bis 30 Minuten 
ausgegangen. Allerdings war mir nicht bewusst, dass die 
Rahmenbedingungen nicht in Ordnung sind.
Ich kenne die Klappe ja nun innen und auswendig, weil ich sie ja selbst 
gebaut / geschweißt und konstruiert habe. Ihr nicht.

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> Das Ziel des Forums ist es ja nicht irgendwelche Leute zu enttäuschen,
> sondern zu helfen.

Falsch!
Täuschungen und Irrtümer beseitigen ist einer der Zwecke des Forums.
Ohne geht es nicht vorwärts.

Für "Täuschungen beseitigen" gibt es ein Wort: Enttäuschen

von Stefan F. (Gast)


Lesenswert?

EAF schrieb:
>> Ich bin leider nicht in der
>> Lage noch präzisere Informationen zu liefern
> Du hast die Maschine vor dir!

Ja, schon aber es hat halt nicht jedermann das Talent, seine 
Anforderungen technisch und logisch sauber zu formulieren. Wir haben in 
unserer Firma genau so viele technische Projektleiter wie 
Softwareentwickler um den Kunden genau dabei zu helfen. Und die haben 
alle immer gut zu tun.

von Roland F. (rhf)


Lesenswert?

Hallo,
Tim T. schrieb:
> Aber Formulierungen wie Ventilklappe auf bis Ende (C7) sind einfach
> nicht präzise genug. Es muss vielmehr ein Aktoren Kommando sein C6
> inaktiv + C7 aktiv und dann eine Prüfung auf B3 aktiv + B7 inaktiv und
> das in einer Schleife mit einer maximalen Wartezeit und einer
> Fehlerbehandlung wenn es zu lange dauert oder unplausible Informationen
> ankommen z.B. B3 und B7 gleichzeitig aktiv. etc, etc.

Nehmen wir mal an vor du würdest als Kunde vor einem Dienstleister 
sitzen und ihm von deinem Problem erzählen und darum bitten dafür eine 
Lösung zu finden und der Dienstleister würde dir sagen du sollst doch 
gefälligst erst mal dein Problem präzisieren, denn "wenn man alle 
Elemente im PAP auf diese Art schon sprachlich formuliert, kann man es 
praktisch direkt in Quelltext gießen".

Was würdest du dann denken?

rhf

von Stefan F. (Gast)


Lesenswert?

EAF schrieb:
> Der einzige Ausweg daraus: Klarheit schaffen.
> Klarheit in den Gedanken, und auf dem Papier.

Jawohl.

Leider kommt die Einsicht oft erst zu spät, nachdem der erste Wurf nicht 
zufrieden stellte. Beim Ausbessern merkt man erst nach vielen Stunden, 
dass das Grundgerüst unzureichend ausbaufähig ist und man quasi nochmal 
mit einem neuen Konzept von vorne anfangen muss. Bis dahin hat man 
bereits das dreifache an Zeit/Geld hinein gesteckt, als nötig gewesen 
wäre.

von Darko D. (darlo)


Lesenswert?

Ich würde antworten, dass ich nicht weiß was PAP ist und was Elemente 
sind. Und auf die Probleme würde ich sagen, dass die Klappe hochfahren 
muss und die Absaugung aus sein soll dabei und das im moment nicht 
funktioniert.

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Ich werde es einfach versuchen und
> daraus lernen müssen. Eventuell auch so, wie man es nicht macht

Mach mal. Wenn es ein Hobby ist, dann kann man mit dem Aufwand ja auch 
leben.

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Allerding habe ich mich da zeittechnisch offensichtlich völlig
> verschätzt.
> Mit allem drum und dran wären es dann vielleicht 4 oder 5 Stunden
> Arbeitszeit mit Anfahrt und pi pa po.

Stop!

Du maßt dir schon wieder an, den Aufwand schätzen zu können obwohl du 
gerade erst bemerkt hast, dass du genau das nicht kannst!

> Mehrere hundert Euro für den Quellcode kann ich nicht zahlen.

Das wird aber so viel kosten, wenn du es machen lässt.

von Stefan F. (Gast)


Lesenswert?

Roland F. schrieb:
> Nehmen wir mal an vor du würdest als Kunde vor einem Dienstleister
> sitzen und ihm von deinem Problem erzählen ...
> Was würdest du dann denken?

Wir sind hier aber Kunde und Dienstleister.

von Darko D. (darlo)


Lesenswert?

Ja also ganz ungern mache ich es nicht. Der Lernfaktor ist bei mir auch 
wichtig. Allerdings habe ich im Moment ein kleines Kind zu Hause (3 
Monate) und die Klappe ist jetzt zu 95 % Fertig (2 Jahre Aufbauzeit) Nur 
die Software fehlt quasi. Es wäre schade wenn das Ganze noch 2 Jahre 
jetzt dauern würde.

von Stefan F. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wir sind hier aber Kunde und Dienstleister.

Das nicht fehlte. Wir sind nicht Kunde und Dienstleister.

Wer hier wie ein Kunde behandelt werden will, der soll einen Auftrag 
erteilen und zahlen.

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Ja also ganz ungern mache ich es nicht.
> Der Lernfaktor ist bei mir auch wichtig

Versuche den Vorschlag anzunehmen, es als Zustandsautomat zu 
dokumentieren (grafisch und als Tabelle) und dann wie von mir 
vorgeschlagen mit switch/case umzusetzen.

Das ist ein möglicher Ansatz, der Erfahrungsgemäß gut klappt und gut 
ausbaufähig ist.

von MaWin (Gast)


Lesenswert?

Was ist eigentlich mit der Leistungselektronik für die Aktoransteuerung? 
Wer entwickelt die?

von Darko D. (darlo)


Lesenswert?

Die Schalter / Ventile Leistungselektronik ist schon fertig. Sie ist von 
mir selbst gelötet.

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Die Schalter / Ventile Leistungselektronik ist schon fertig. Sie ist von
> mir selbst gelötet.

Und vermutlich genau so gut durchdacht, wie der Programmablauf. Also 
ohne Fehlerbehandlung.

von Darko D. (darlo)


Lesenswert?

Löten kann ich ein bisschen. Ich habe eine Lötstation von Ersa mit 
Heißluft. Vario 2 heißt sie glaube ich.

von Darko D. (darlo)


Lesenswert?

Ja ohne Fehlerbehandlung.

von EAF (Gast)


Lesenswert?

MaWin schrieb:
> Was ist eigentlich mit der Leistungselektronik für die Aktoransteuerung?
> Wer entwickelt die?

Warte, ich ahne die Antwort schon!

Schraubklemmen, das sind Schraubklemmen.
Das ist kein Problem.

von pnp (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wer hier wie ein Kunde behandelt werden will, der soll einen Auftrag
> erteilen und zahlen.

Aber auch dann muss man Fragen nach der genauen Funktionsweise 
beantworten. Also genau das, was der TO leider nicht kann...

von Darko D. (darlo)


Lesenswert?

Ja das habe ich verstanden. Ich weiß auch leider nicht was ein 
Zustandsautomat ist. Was ich anbieten kann (als Kunde) ist einen 
deutschen Text niederzuschreiben was alles passieren soll und was 
passieren kann.
Wenn das weiterhelfen könnte würde ich das tun.

von STK500-Besitzer (Gast)


Lesenswert?

Darko D. schrieb:
> Ich weiß auch leider nicht was ein
> Zustandsautomat ist

Sowas und die anderen Fachbegriffe kann man googlen.

von MaWin (Gast)


Lesenswert?

Darko D. schrieb:
> Die Schalter / Ventile Leistungselektronik ist schon fertig. Sie ist von
> mir selbst gelötet.

Ok. Die Frage war allerdings, ob sie bereits entwickelt ist, bzw. wer 
das tun soll. Das hat mit Löten nichts zu tun.
Aber gut, wenn deine Schaltung funktioniert, wird sie möglicherweise 
hinreichend gut entwickelt sein.

von MaWin (Gast)


Lesenswert?

Darko D. schrieb:
> Ich weiß auch leider nicht was ein Zustandsautomat ist.

https://de.wikipedia.org/wiki/Endlicher_Automat

von René F. (Gast)


Lesenswert?

Darko D. schrieb:
> Ich weiß auch leider nicht was ein
> Zustandsautomat ist.

Ein Zustandsautomat (auch State machine genannt) erzeugt vereinfacht 
ausgedrückt auf Basis von Eingangssignalen bestimmte Ausgangssignale.

Du hast also deine 5 Eingangssignale (E0, E1, E2, E3, E4) und deine 5 
Ausgangssignale (A0, A1, A2, A3, A4).

Mit Hilfe dieser 5 Eingangssignale kannst du 2^5 (32) verschiedene 
Zustände erfassen und 2^5 (32) verschiedene Antworten ausgeben.

Diese kannst du in Form einer (Wahrheits-)Tabelle anlegen. Mit 
verschiedenen Methodiken lässt sich daraus ein boolscher Algorithmus 
erzeugen (konjunktive Normalform und disjunktive Normalform). Es wird 
aber auch Zustände geben, in denen dich vielleicht nur 3 der 5 
Eingangssignale interessieren. Dies kann zum optimieren des Algorithmus 
verwendet werden, auch hier gibt es verschiedene Verfahren um aus der 
Normalform eine Optimierung zu erzeugen. (Karnaugh-Veitch-Diagramm, 
Quine und McCluskey Verfahren), eine einfache State machine lässt sich 
so mit dem optimierten Algorithmus mit wenig Aufwand umsetzen.

In deinem Fall halte ich es aber für sinnvoller eine gewöhnliche 
Ablaufsteuerung zu realisieren, lässt sich besser warten und ist 
verständlicher.

von EAF (Gast)


Lesenswert?

Darko D. schrieb:
> ich anbieten kann (als Kunde) ist einen
> deutschen Text niederzuschreiben was alles passieren soll und was
> passieren kann.
> Wenn das weiterhelfen könnte würde ich das tun.

Der Esel und die Karotte.....

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Ja das habe ich verstanden. Ich weiß auch leider nicht was ein
> Zustandsautomat ist.

Habe ich dir aufgeschrieben und verlinkt:

Stefan ⛄ F. schrieb:
> Hier ein bisschen Anregung, wie man Zustandsautomaten grafisch und als
> Tabelle darstellen kann.
http://stefanfrings.de/multithreading_arduino/index.html#planung

von Joe (Gast)


Lesenswert?

Einfacher Lösungsansatz ohne Flußdiagramm.

Es gibt 32 Eingangszustände und 32 Ausgangszustände.
Nun kann man die Eingangszustände zyklisch abfragen und dann den 
entsprechenden Ausgangszustand setzen.

Eingangszustände    Ausgangszustände (Bsp.)
0 0 0 0 0   =0         0 1 1 0 0    =12
0 0 0 0 1   =1         0 0 1 1 1    =7
0 0 0 1 0   =2         1 0 1 1 0    =11
u.s.w.               u.s.w.

Alles in ein Array schreiben und dann den "Eingangswert" als Index 
verwenden.

Das wars.

von Stefan F. (Gast)


Lesenswert?

Joe schrieb:
> Das wars.

Nein das war's nicht. Dieses Konzept ist unzureichend. Du hast das 
Diagramm von Darko genau so wenig verstanden, wie Jobst.

von Darko D. (darlo)


Lesenswert?

OK. Verstanden. Ich werde es in einer solchen Form niederschreiben. Dann 
werde ich die Form hier schreiben!

von Joe (Gast)


Lesenswert?

Oder mit boolscher Algebra für die Ausgänge jeweils einen Term 
schreiben.
A B C D E als Eingänge
X1 X2 X3 X4 X5 als Ausgänge

Dann

X1=(A = 1) oder (B = 0) und (D = 1)
X2= (B=1) und (C=1) oder (E=1)

u.s.w.

fertig.

von Joe (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Nein das war's nicht. Dieses Konzept ist unzureichend. Du hast das
> Diagramm von Darko genau so wenig verstanden, wie Jobst.

Ich habe mir das Diagramm gar nicht angesehen.

von Stefan F. (Gast)


Lesenswert?

Joe schrieb:
> Oder mit boolscher Algebra

Nein, auch das genügt nicht.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Roland F. schrieb:
> Nehmen wir mal an vor du würdest als Kunde vor einem Dienstleister
> sitzen und ihm von deinem Problem erzählen und darum bitten dafür eine
> Lösung zu finden und der Dienstleister würde dir sagen du sollst doch
> gefälligst erst mal dein Problem präzisieren, denn "wenn man alle
> Elemente im PAP auf diese Art schon sprachlich formuliert, kann man es
> praktisch direkt in Quelltext gießen".
>
> Was würdest du dann denken?

Ich würde denken hmm, komme ich damit klar oder beauftrage ich einen 
anderen Dienstleister, der mich alleine wegen dem zeitlichen 
Mahraufwand, mir alles aus der Nase zu ziehen, eine ganze Menge mehr 
Geld kosten wird. Dazu kommt noch dass solche Dienstleister, die das 
Denken für mich übernehmen, grundsätzlich auch noch einen höheren 
Stundensatz haben.

Bezogen auf den TE kann ich nicht erkennen, dass er gewillt ist diese 
Mehrkosten zu zahlen und darum eben mehr Eigeninitiative zeigen muss.

Darko D. schrieb:
> Ja das habe ich verstanden. Ich weiß auch leider nicht was ein
> Zustandsautomat ist. Was ich anbieten kann (als Kunde) ist einen
> deutschen Text niederzuschreiben was alles passieren soll und was
> passieren kann.
> Wenn das weiterhelfen könnte würde ich das tun.

Das Problem hierbei ist, es müsste vollkommen unmissverständlich 
geschrieben sein und keinerlei implizites Wissen erfordern; also so dass 
man ohne die geringste Ahnung vom mechanischen Aufbau und sonstigen 
Umständen alleine durch den Text alles notwendige für die Steuerung 
erfährt.

Wieder als Beispiel: Du gehst stillschweigend davon aus, dass wenn B3 
aktiv ist B7 inaktiv ist, solche Informationen gehören aber zwingend 
dazu, da niemand hier wissen kann wie die Klappe im Detail angesteuert 
wird.

von Darko D. (darlo)


Lesenswert?

Das habe ich auch verstanden. Ich bedanke mich auf jeden Fall für die 
rege Antwort. Danke!!!!!!!!!!! Ich werde es in den nächsten Stunden / 
Spätestens Weihnachten hinbekommen!

von Stefan F. (Gast)


Lesenswert?

Joe schrieb:
> Ich habe mir das Diagramm gar nicht angesehen.

Aber du meinst, ihm Ratschläge zur Umsetzung geben zu können. Alle 
Achtung, das ist Kreativ. Nur ist hier gerade leider nicht die Muse 
gefragt, sondern eine technische Umsetzung.

von Darko D. (darlo)


Lesenswert?

Ich meine hinbekommen mit den 32 verschiedenen Zuständen.

von Darko D. (darlo)


Lesenswert?

Wartet bitte ab, bis ich die Zustände klar definiert habe.
Vielleicht leutet es dann ja ein.

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Ich meine hinbekommen mit den 32 verschiedenen Zuständen.

Vermutlich brauchst du gar nicht so viele.

von Darko D. (darlo)


Lesenswert?

Ich bin mir sicher, dass ich nicht 32 Zustände brauche, weil zum 
Beispiel der Endlagenschalter Klappe auf und der Endlagenschalter Klappe 
zu nicht gleichzeitig betätigt sein können. (z.B)

von Stefan F. (Gast)


Lesenswert?

Für die Klappe fallen mir spontan 4 Zustände ein:

Klappe ist offen
Klappe schließt sich
Klappe ist geschlossen
Klappe öffnet sich

Und eventuell zur Fehlerbehandlung:

Klappe ist blockiert

Aber das ist ja nicht alles, da gibt es noch mehr Teile, die Zustände 
haben.

von Darko D. (darlo)


Lesenswert?

Ja vielen Dank! Das erste mal sah ich mich lächeln und ein kleines Licht 
am Ende des Tunnels!! Wir schaffen das!!!!!!!!!

von ek13 (Gast)


Lesenswert?

Die älteren Generationen der „Siemens Logo“ + „Logosoft“ bekommt man 
sehr günstig z.B. bei eBä.
Damit wäre dein Problem ein Kinderspiel.
https://youtu.be/rcX2HI84_NM

Fröhliche Weihnachten 🎄

von Darko D. (darlo)


Lesenswert?

Ja vielen Dank nochmal. Ich werde heute mit Sicherheit besser schlafen 
als gestern!!

von Stefan F. (Gast)


Lesenswert?

Es gibt viele unterschiedliche Erklärungen und Umsetzungen von 
Zustandsautomaten. Ich habe sie auch nicht gleich verstanden. Aber 
nachdem ich mich mit einem nicht durchdachten Plan verzettelt hatte 
wurde mir hier im Forum von gefühlt 20 Leuten nahe gelegt, mich trotzdem 
nochmal damit zu befassen. Ich fand dann in der Bibliothek ein Buch zum 
Thema, dessen erstes Kapitel sorgte für den "es hat Klick" gemacht 
Effekt. Danach habe ich auch die anderen Artikel verstanden, die mir 
vorher nichts sagten.

Der Knackpunkt war bei mir zu verstehen, was ein Zustand (im Sinne des 
Zustandsautomaten) ist und dass eine Maschine oft aus vielen parallel 
laufenden Zustandsautomaten besteht.

Leider weiß ich den Titel des Buches nicht mehr, das ist schon lange 
her.

Ich schreibe dir das, weil ich dich dazu anregen möchte, andere 
Erklärungen zu suchen, wenn dir meine oder die von Wikipedia nicht 
einleuchtet.

By the way: das Konzept wird oft auch "Endlicher Automat" oder "State 
Machine" genannt.

von Peter D. (peda)


Lesenswert?

Du machst Dir das Leben künstlich schwer mit den Portpins. Keiner kann 
sich merken, welche Funktion hinter einer Portnummer steckt.
Definiere Dir daher einen Header, wo alle Ein- und Ausgänge mit lesbaren 
Namen versehen werden und benutze diese sowohl im PAP als auch im Code.
Hier mal das Prinzip:
Beitrag "Re: Port als Variable"
1
#include "sbit.h"
2
#define TASTE     PIN_D2
3
#define ABSAUGUNG PORT_D5
4
//..
5
  if (TASTE)
6
    ABSAUGUNG = 1;
7
//..

von Jobst M. (jobstens-de)


Lesenswert?

Stefan ⛄ F. schrieb:
> Nein das war's nicht. Dieses Konzept ist unzureichend. Du hast das
> Diagramm von Darko genau so wenig verstanden, wie Jobst.

Ganz ehrlich? Bei der mieserablen Informationslage ist es kein Wunder, 
wenn man das nicht versteht. Zumindest habe ich die Lust verloren, mir 
die ganzen Scheibchen hier im Thread zusammen zu popeln. Dass es anderen 
genau so geht, kann ich nachvollziehen.
Du scheinst als einziger hier die Muße zur Erfassung der Infos zu 
besitzen. Aber auch Du verzichtest aus guten Gründen darauf, ihm den 
Kram zu implementieren.

Wenn das Warten auf irgendeinen Vorgang nicht durch einen der 5 Eingänge 
zurückgemeldet wird, dann wird es pro abzuwartender Aktion eine 
Verdopplung der schon vorhandenen 32 Eingangskombinationen geben. Einige 
Kombinationen wird es nicht geben, andere sind irrelevant. Dennoch wird 
man mit 32 Kombinationen vermutlich nicht hinreichen. Das ist auch kein 
Problem, vergrößert aber den Umfang.

Es fehlt ebenfalls ein Schaltplan, in dem die mechanischen 
Abhängigkeiten eingezeichnet sind.
Und es fehlt die Info, auf welche Dinge gewartet werden muss, für die es 
keine elektrischen Signale gibt.

Das Ablaufdiagram beginnt schon mit einem Problem: "Betätigung Schalter 
auf/zu"
Was soll das bedeuten? Auf? Zu? Egal? Beides?

Was ist der Zweck des Dings?

Und Darko: Weniger Entschuldigungen oder Geschichten über 
Schlafstörungen, Kind, Frau, Auto, Zeit, ... Das macht die ganze 
Geschichte hier noch undurchsichtiger.

Gruß
Jobst

von Stefan F. (Gast)


Lesenswert?

Jobst M. schrieb:
> Ganz ehrlich? Bei der mieserablen Informationslage ist es kein Wunder,
> wenn man das nicht versteht.

Ja, ich wollte damit auch nicht sagen dass ich zwei euch dumm anstellt.

von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Ja das sehe ich ein. Das soll auch keine Entschuldigung sein! Ich habe 
mir aber die Mühe gemacht folgende 32 Zustände zu definieren.
Allerdings bin ich auch dort gescheitert, weil es abhängig ist WANN der 
Endlagenschalter Klappe zu betätigt ist. Es ist ein Unterschied ob die 
Klappe gerade geschlossen wurde oder ob sie jetzt geöffnet werden soll.

Gerne könnt ihr das mal ansehen.

Bitte macht euch auch nicht zu viel Mühe auch wenn das sehr nett ist!!
Wenns nicht klappt, dann muss ich irgendwie weitersehen oder zur ganz 
großen Not die Blöde Klappe immer von Hand auf und zu machen. So wie 
alle anderen auch.

von nixversteh (Gast)


Lesenswert?

Darko D. schrieb:
> Gerne könnt ihr das mal ansehen.

Oh mannomann .... was soll denn das sein:

Scharnier offen/geschlossen.

Das versteht ja kein Schwein. Ein Scharnier ist ein Gelenk
zwischen zwei Teilen die dadurch gekoppelt sind.

Man kann natürlich auch Luft auf die Fahradkette pumpen.

von Darko D. (darlo)


Lesenswert?

Herr Jobst, der Schalter Klappe auf/zu ist ein Taster.
Wenn die Klappe geöfnet ist und man den Taster dann drückt, soll die 
Klappe zufahren.

Wenn die Klappe zu ist und man den Taster dann drückt soll sie 
auffahren.

Deswegen heist der Taster auf / zu. Ich wüsste nicht wie man das 
gleichzeitig betätigen soll.

von Darko D. (darlo)


Lesenswert?

Nein, das Scharnier ist eine pneumatische Zuziehhilfe, wenn die Klappe 
ganz unten ist. Diese Zuziehhilfe presst die Klappe gegen die 
Gummidichtung.
Beim Öffnen der Klappe muss das Scharnier (Zuziehhilfe geöffnet werden 
und dann im Anschluss kann die Klappe auffahren.

Ich sagte doch ich bin gescheitert!!!!!!

von STK500-Besitzer (Gast)


Lesenswert?

Darko D. schrieb:
> Wenn die Klappe zu ist und man den Taster dann drückt soll sie auffahren.
> Deswegen heist der Taster auf / zu. Ich wüsste nicht wie man das> gleichzeitig 
betätigen soll.

Dann nenn den Taster "Start".

von Stefan F. (Gast)


Lesenswert?

Darko D. schrieb:
> Gerne könnt ihr das mal ansehen.

Das geht völlig an meinem Vorschlag vorbei. Zerlege die Maschine in 
Teile, die Zustände einnehmen können. Ein Beispiel für die Klappe habe 
ich dir gegeben:

Zustände:

Klappe ist offen
Klappe schließt sich
Klappe ist geschlossen
Klappe öffnet sich

Überlege dir dazu, welche Ereignisse zu Zustandsänderungen führen.

Im Zustand "Klappe ist offen" kann ein Kommando dazu führen, dass die 
Klappe geschlossen werden soll. Die Aktion dazu ist, ihren Motor links 
herum laufen zu lassen. Nächster Zustand ist "Klappe schließt sich".

Im Zustand "Klappe schließt sich" soll die Betätigung des unteren 
Endschalters dazu führen, dass ihr Motor gestoppt wird. Nächster Zustand 
ist "Klappe ist geschlossen".

Im Zustand "Klappe ist geschlossen" kann ein Kommando dazu führen, dass 
die Klappe geöffnet werden soll. Die Aktion dazu ist, ihren Motor rechts 
herum laufen zu lassen. Nächster Zustand ist "Klappe öffnet sich".

Im Zustand "Klappe öffnet sich" soll die Betätigung des oberen 
Endschalters dazu führen, dass ihr Motor gestoppt wird. Nächster Zustand 
ist "Klappe ist offen".

Fehlerbehandlung fehlt da noch. Das wäre die Beschreibung des 
Zustandsautomaten für eine Klappe. Das ganze wird dann noch als Tabelle 
und als Diagramm dargestellt (siehe Muster auf meiner Webseite).

In dieser Art wird jedes Teil der Maschine beschrieben, dass Zustände 
haben kann. Nun interagieren diese miteinander. Oben heißt es "kann ein 
Kommando dazu führen, dass die Klappe geöffnet/geschlossen werden soll". 
Welcher Teil der Maschine oder welches Bedienelement emittiert dieses 
Kommando? Auch das kann man sauber beschreiben.

Wie man Zeitverzögerungen einbaut, habe ich auf meiner Webseite gezeigt.

Am Ende kommen dabei ein Gebilde aus mehreren Zustandsautomaten heraus, 
die sich Gegenseitig Signale/Kommandos senden. Auch dazu sollte wiederum 
ein Diagramm gezeichnet werden das zeigt wer mit wem Kommuniziert, sowie 
ein weiteres Diagramm dass die normalen Signale/Kommandos in zeitlicher 
Folge darstellt.

Wenn das fertig ist kommt erst der Softwareentwickler in Spiel. Er hat 
die Aufgabe, das alles in ein lauffähiges Programm zu gießen. Es ist der 
Softwareentwickler, der sich überlegt, wie man ein Signal in der 
jeweiligen Programmiersprache darstellen kann und wie die einzelnen 
Programmteile Signale senden/empfangen können. Im einfachsten Fall 
können das simple globale boolesche Variablen sein.

Ich denke, mehr kann ich dazu nicht mehr schreiben, sonst artet es in 
ein Buch aus. Und Bücher zum Thema gibt es bereits, sicher bessere als 
ich sie schreiben könnte.

von nixversteh (Gast)


Lesenswert?

Darko D. schrieb:
> Diese Zuziehhilfe presst die Klappe gegen die Gummidichtung.

Dann kann man das nicht als Scharnier bezeichnen.

Darko D. schrieb:
> Ich sagte doch ich bin gescheitert!!!!!!

Wenn du eine Katze als Pferd bezeichnest - dann ja.

von Joe (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Joe schrieb:
>> Oder mit boolscher Algebra
>
> Nein, auch das genügt nicht.

Dann warte ich auf deinen Lösungsvorschlag!    ?????

von Jobst M. (jobstens-de)


Lesenswert?

Stefan ⛄ F. schrieb:
> ich wollte damit auch nicht sagen dass ich zwei euch dumm anstellt.

Alles gut, das habe ich so auch nicht aufgefasst.


Darko D. schrieb:
> Angehängte Dateien:
>           32_Zustaende.txt (1,6 KB)

0/1 ist verwirrend.

Spekulationen:
 1 = gedrückt oder ja
 0 = losgelassen oder nein

> In diesen nachfolgenden 16 Zuständen soll gar nichts passieren,
> weil der Taster Klappe auf / zu nicht gedrückt ist

Dennoch müssen die Ausgänge ja einen Zustand haben!

In Deiner Tabelle passiert folgendes, wenn "gar nichts passiert":
Taster wird gedrückt, Klappe bewegt sich.
Taster wird losgelassen, Klappe bewegt sich immer weiter auch wenn 
Endlageschalter betätigt wird, da "gar nichts passiert"

Weiterhin lese ich aus der Tabelle, dass ein warten auf irgendwelche 
Endpositionen doch durch einen Eingang representiert wird und damit voll 
dadurch abgedeckt ist.

Den Ausgänge A0 und A4 kannst Du Dir sparen, da sie immer 0 sind.

Gruß
Jobst (nicht "Herr Jobst")

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Nein, das Scharnier ist eine pneumatische Zuziehhilfe, wenn die Klappe
> ganz unten ist. Diese Zuziehhilfe presst die Klappe gegen die
> Gummidichtung.
> Beim Öffnen der Klappe muss das Scharnier (Zuziehhilfe geöffnet werden
> und dann im Anschluss kann die Klappe auffahren.

Gibt es dafür auch Endschalter?

Nachtrag: Für Scharnier geschlossen?

Gruß
Jobst

: Bearbeitet durch User
von Jobst M. (jobstens-de)


Lesenswert?

Noch etwas passiert:

Wenn Du den Taster drückst, fährt alles in eine der beiden Endpositionen 
und sobald diese erreicht sind sofort wieder in die andere Richtung.

Ich möchte folgendes vorschlagen:

- Taster drücken alles fährt in Richtung 1 maximal bis Endposition 
erreicht.
- Taster loslassen alles bleibt stehen.
- Taster drücken alles fährt in Richtung 2 maximal bis Endposition 
erreicht.
- Taster loslassen alles bleibt stehen.
... und wieder von oben.

Das bedeutet auch, dass die Klappe bei einem Problem wieder zurück 
gefahren werden kann. (Durch erneutes drücken)

Taster: Schreib das bitte auch! Ein Schalter rastet.

A2 soll takten. Wenn sich die Klappe irgendwo in der Mitte befindet?

Auch über die Zuordnung Klappe oben/unten und auf/zu kann man nur 
spekulieren.

Wenn das Ventilscharnier offen ist, soll sich die Klappe nie bewegen 
...?

Das ist noch alles nicht schlüssig, obwohl ich mittlerweile eine 
Vorstellung von dem habe, was Du vor hast:

Du möchtest den Vorgang mit der Taste starten und diese auch die ganze 
Zeit dabei gedrückt halten.
In einer Richtung soll die Klappe bis zur Endposition zu gefahren werden 
und dann soll das "Scharnier" geschlossen werden. (Endschalter?)
Wenn diese Position erreicht ist, ist der Vorgang beendet.
Umgekehrt soll sich das "Scharnier" öffnen und wenn offen, soll die 
Klappe auf gehen, bis der entsprechende Endschalter geschlossen wird.

Also ähnlich wie bei einem Fahrstuhl: Tür erst öffnen, wenn Stockwerk 
erreicht und Fahrstuhl steht. Und losfahren erst, wenn Tür wieder zu.

Eine einfache, gegenseitige Verriegelung.

Wenn das so ist, warum hast Du das dann nicht so geschrieben?


Gruß
Jobst

von Stefan F. (Gast)


Lesenswert?

Joe schrieb:
> Dann warte ich auf deinen Lösungsvorschlag!

Wenn du meine Beitrage dazu nicht siehst, dann willst du sie nicht 
sehen.

von Rainer V. (a_zip)


Lesenswert?

...langsam verstehe ich, warum der TO bis hierhin schon 2 Jahre 
gebraucht hat! Hier fehlt es irgendwie an grundlegendem Verständnis und 
offensichtlich hat der TO auch keinen Bastler im Bekanntenkreis. So wird 
das also bestimmt nichts...
Gruß Rainer

von René F. (Gast)


Lesenswert?

Rainer V. schrieb:
> ...langsam verstehe ich, warum der TO bis hierhin schon 2 Jahre
> gebraucht hat! Hier fehlt es irgendwie an grundlegendem Verständnis und
> offensichtlich hat der TO auch keinen Bastler im Bekanntenkreis. So wird
> das also bestimmt nichts...
> Gruß Rainer

Was soll denn das für ne Aussage sein? Vielleicht ist er ja ein 
grandioser Mechaniker? Digitaltechnik und Programmierung sind für viele 
Menschen, welche bisher nur wenig Berührungspunkte mit dieser Welt 
hatten eben sehr abstrakt.

Ähnlich geht es mir beispielsweise im HF bzw. Funkbereich. Klar lässt 
sich das erlernen, würde ich hier in das dazugehörige Unterforum gehen, 
würde ich wahrscheinlich in der Hälfte der Threads nur Bahnhof 
verstehen..

von Spess53 (Gast)


Lesenswert?

Hi

>Was soll denn das für ne Aussage sein? Vielleicht ist er ja ein
grandioser Mechaniker?

Darko schrieb:

Was soll denn das für ne Aussage sein? Vielleicht ist er ja ein
grandioser Mechaniker?

 Darko D. schrieb:
...und die Klappe ist jetzt zu 95 % Fertig (2 Jahre Aufbauzeit)

nach "grandioser Mechaniker" hört sich das nicht an. Und die Software 
ist da nicht mit drin:

>Nur die Software fehlt quasi.

Was soll deine Frage nach der Aussage also?

MfG Spess

von nixversteh (Gast)


Lesenswert?

Spess53 schrieb:
> nach "grandioser Mechaniker" hört sich das nicht an.

Das erkennt man schon daran dass er ein Funktionselement
als "Scharnier" bezeichnet das gar keines ist.

Darko D. schrieb:
> Nein, das Scharnier ist eine pneumatische Zuziehhilfe, wenn die Klappe
> ganz unten ist. Diese Zuziehhilfe presst die Klappe gegen die
> Gummidichtung.

von Rainer V. (a_zip)


Lesenswert?

Ehrlich, ich würde vorschlagen, wir warten auf den Samariter, der sich 
nach Bremen traut und auch 3 Fliegen mit 7 Klappen erschlägt!
Rainer

von EAF (Gast)


Lesenswert?

Ich habe nix gegen Zuziehhilfen.

von Darko D. (darlo)


Lesenswert?

Guten Morgen alle zusammen und Frohe Weihnachten!!
Noch einmal ein großes Dankeschön an Jobst und Stefanus und die anderen 
Gäste selbstverständlich auch.
Ich habe durch das Lesen des kompletten Chats gemerkt, dass ihr euch 
alle damit sehr auseinander gesetzt habt. Das hat mich sehr gefreut!
Ich brauche im Moment nur Zeit um mich mit den Zustandsautomaten und 
deren Funktionen auseinanderzusetzen, um zu dem Ziel zu kommen.
Es ist auch richtig, dass ich nicht bereit bin mehrere Hundert Euro an 
eine Fachfirma zu zahlen die mir die Software und das was an Fragen 
dazugehört zu bezahlen. Da ich nicht so viel Geld verdiene.
2 Jahre hat das Projekt bisher gedauert. Allerdings ist nicht täglich 
daran gearbeitet worden. Ich habe auch keine Probleme damit das Teil zu 
beschreiben. Vielleicht kommt da ja noch ein Tipp aus einer ganz anderen 
Richtung dazu.

Ich habe eine 1,9m hohe eine 1m tiefe und eine 1,5m breite 
Sandstrahlkabine konstruiert, geschweißt und entwickelt. Das besondere 
ist eigentlich, dass die Kabine incl. der Schrauben, Nieten und 
sonstigen Befestigungsvarianten komplett aus Edelstahl ist.

Daher ist es auch notwendig bei geschlossener Klappe noch einmal durch 
eine zusätzliche Zuziehhilfe den Anpressdruck an die Gummidichtung zu 
erhöhen.
Ein weiterer Grund warum es diese Zuziehhilfe gibt ist es, dass ca. 80 % 
des Klappengewichtes zum hochdrücken durch 2 Gasdruckdämpfer übernommen 
wird.

Die Funktionsweise des Programms ist ähnlich wie das Jobst beschrieben 
hat. Der Hauptunterschied (welchen ich mir wünsche) ist, dass man den 
Taster nicht gedrückt halten muss die ganze Zeit.
Mein Ziel war es eig. den Taster einmal zu drücken, dann ca. 4 bis 5 
Sekunden abzuwarten bis die Absaugung austrudelt und dann aus der Ferne 
zuzusehen, wie sich mein Glück öffnet.

Es ist auch vollkommen richtig, dass Ihr erkannt habt, dass die 
Zuziehhilfe nur einen Endlagenschalter für den Status offen hat.
Durch eine Federkraft wird sie in genau 2,5 Sekunden geschlossen, wenn 
das Ventil "schließen" betätigt wird. Um den Verdrahtungsaufwand zu 
minimieren soll das Programm einfach nach einer 3 sekündigen Ansteuerung 
des Ventils Zuziehhilfe zu davon ausgehen, dass es geschlossen ist.

Der Zustand offen der Zuziehhilfe muss aber BEVOR die Klappe zufährt 
überprüft werden, denn bei geschlossener Zuziehhilfe knallen die Haken 
der Klappe gegen die Außenscharniere der Zuziehhilfe.

Vielleicht rundet die Beschreibung des Teils ja auch das Puzzle ein 
bisschen ab.
Bisher also nochmal vielen Dank!!!!!!!!!!!!!!!!!!!

von Stefan F. (Gast)


Lesenswert?

Der ganze Text hätte zusammen mit Fotos und einem kurzen (!) Video in 
den Eröffnungsbeitrag gehört. Dann kann man mit deinem Diagramm viel 
mehr anfangen.

von STK500-Besitzer (Gast)


Lesenswert?

Darko D. schrieb:
> Das besondere
> ist eigentlich, dass die Kabine incl. der Schrauben, Nieten und
> sonstigen Befestigungsvarianten komplett aus Edelstahl ist.

Sowas ähnliches haben wir mal an einem Tag zusammengebraten.

Wie sieht das bei deiner mit der elektrostatischen Aufladung aus?
Alles schön geerdet?

Dinge, die sich von alleine bewegen, brauchen immer einen 
Schutzmechanismus, damit sich niemand die Finger oder anderes klemmen 
kann.
Also braucht dein Aufbau entweder einen Taster, den man dauerhaft 
drücken muss, oder einen Sensor, der verhindert, dass sich jemand im 
Schwenkbereich der Klappe befindet.

von Darko D. (darlo)


Lesenswert?

An einem Tag???? WAHNSINN!!!!
Der Kleber der Scheibe hat bei mir schon einen Tag gedauert :-)
Ich schätze dass dort ca. 700 bis 800 Stunden bisher reingegangen sind!
LG

Zwei Tage hat ja schon der Transport und der Zusammenbau im Keller 
gedauert...

von STK500-Besitzer (Gast)


Lesenswert?

Darko D. schrieb:
> Der Kleber der Scheibe hat bei mir schon einen Tag gedauert :-)

Es ging um die Konstruktion und den Zusammenbau.
Das Material musste auch beschaft werden und das Sikaflex musste auch 
trocknen.
Nach einem Wochenende haben wir das Ding dann aber auch gleich benutzt.
Einfach nur eine Klapptür mit Reibriegeln und keinen elektronischen 
Schnickschnack.
Eine Lampe war noch drin.

von Darko D. (darlo)


Lesenswert?

Zum Thema Sicherheit: Die Klappe ist geerdet.
Einen Klemmschutz hat die Klappe nicht. Durch die Gasdruckdämpfer 
reduziert sich die Klappenfahrgeschwindigkeit so sehr, dass ein 
"erschlagen" von der Klappe nicht möglich ist. Des weiteren wiegt die 
Klappe ungefähr 25 kg. 80 % der Hochdrückkraft übernehmen die Dämpfer, 
sodass ein schmerzhaftes Einklemmen sowieso gar nicht möglich ist.

von EAF (Gast)


Angehängte Dateien:

Lesenswert?

Darko D. schrieb:
> Bisher also nochmal vielen Dank!!!!!!!!!!!!!!!!!!!
Bitte weniger !, dafür bitte mehr aufschlussreichen Text.
Tipp: Man kann Tastendrücke sinnvoller einsetzen.

Bisher hast du es nicht für nötig gehalten deine Kästchen, im 
Flussdiagramm, eindeutig zu benennen.

Das habe ich mal für dich übernommen.
Auch wenn es gruslig aussieht, ist es doch funktional.

Fragen:
Was bedeutet das takten in C6?
Ist das wieder ein Automat?

Was ist das für eine Endlage in B4?
Darf sich der Programmierer da eine aussuchen?

Warum steht an C1 ein Schalter, wenn es doch ein Taster ist?
Hat der 2 Funktionen?

Was unterscheidet A8 von D8?
Was unterscheidet D4 von E4?

Warum finde ich die "Freigabe Absaugung" nicht im Flussdiagramm?
Was ist das überhaupt?

von Jobst M. (jobstens-de)


Lesenswert?

Was ist mit:

Jobst M. schrieb:
> Den Ausgänge A0 und A4 kannst Du Dir sparen, da sie immer 0 sind.

Gruß
Jobst

Beitrag #6921431 wurde von einem Moderator gelöscht.
Beitrag #6921460 wurde von einem Moderator gelöscht.
Beitrag #6921704 wurde von einem Moderator gelöscht.
Beitrag #6921726 wurde von einem Moderator gelöscht.
von Stefan F. (Gast)


Lesenswert?

c-hater schrieb im Beitrag #6921704:
> Sowas zu fordern, steht dir schlicht nicht zu. Wer glaubst du zu sein?

Dito. Dir steht demnach nicht zu, mich so anzufahren. Vor allem bei 
Themen die dich nicht betreffen. Wer glaubst du zu sein?

Beitrag #6921759 wurde von einem Moderator gelöscht.
Beitrag #6921770 wurde von einem Moderator gelöscht.
Beitrag #6921777 wurde von einem Moderator gelöscht.
Beitrag #6921778 wurde von einem Moderator gelöscht.
von Darko D. (darlo)


Lesenswert?

Hallo.
Ich kann einige Fragen beantworten.
Takten bedeutet:
Ventil Klappe zu wird für 100ms angesteuert,
dann wird 500ms gewartet
dann wird wieder 100ms angesteuert,
und dann wieder 500 ms gewartet.

Dies wird so lange wiederholt, bis die Klappe den Endlagenschalter 
Klappe zu erreicht. Wenn das dann der Fall ist, wird das Ventil 
Scharnier zu (Zuziehhilfe zuziehen) für 3 Sekunden angesteuert, weil der 
Vorgang ca. 2,5 Sekunden dauert und dort kein Endlagenschalter verbaut 
ist.

Frage von Ihnen:
Was ist das für eine Endlage in B4?

Antwort:
B4 sagt mir gar nichts. Wo soll das sein? Im Flussdiagramm gibt es B3 
und B7...

Frage von Ihnen:
Warum steht an C1 ein Schalter, wenn es doch ein Taster ist?

Antwort:
C1 muss ein Ausgang sein.
Ich erkenne nicht woher sie die Informationen nehmen?


Der Mikrocontroller hat 5 Eingänge (Port B1 bis Port B5)
und 5 Ausgänge Port C0 bis C4

Daher verstehe ich auch nicht die Fragen:

Was unterscheidet A8 von D8?
Was unterscheidet D4 von E4?

Dies Zahlen sagen mir nichts...

Ich werde mich wie von Jobst und den anderen empfohlen erst mal mit den 
Zustandsautomaten auseinandersetzen müssen.

LG Darko

von etreas (Gast)


Lesenswert?

der thread ist leider tl;tr - kam schon einer mit finite state machines 
an?

beste grüße

von Bämbel (Gast)


Lesenswert?

etreas schrieb:
> kam schon einer mit finite state machines an?

Ja.
Ist die Suchfunktion deines Browsers defekt?

von etreas (Gast)


Lesenswert?

dir auch frohe weihnachten bämbel :)

Beitrag #6921796 wurde von einem Moderator gelöscht.
Beitrag #6921800 wurde von einem Moderator gelöscht.
Beitrag #6921814 wurde von einem Moderator gelöscht.
von MaWin (Gast)


Lesenswert?

Darko D. schrieb:
> Ich erkenne nicht woher sie die Informationen nehmen?
> ....
> Dies Zahlen sagen mir nichts...

Würdest du meinen Beitrag aufmerksam lesen, hätte dir auffallen können, 
dass ich ein Ordnungssystem in dein Flussdiagram eingebaut habe, da du 
ja nicht dazu in der Lage bist. Bzw. dir die Ordnung am Arsch vorbei 
geht. Selbst nach mehrmaliger Aufforderung.

Beitrag #6921827 wurde von einem Moderator gelöscht.
Beitrag #6921830 wurde von einem Moderator gelöscht.
von Hannes (Gast)


Lesenswert?

etreas schrieb:
> der thread ist leider tl;tr - kam schon einer mit finite state
> machines an?

Is' schon so lange her - dat is' schon gar nimmer wahr...

Wie soll‘s auch anders sein? Ein guter Teil der Anwesenden sind 
therapiebedürftig - wegen anhaltender, narzisstischer 
Persönlichkeitsstörung. Da ist jede auch nur entfernt brauchbare Idee in 
Nu zerredet.

Beitrag #6921891 wurde von einem Moderator gelöscht.
Beitrag #6921899 wurde von einem Moderator gelöscht.
Beitrag #6921903 wurde von einem Moderator gelöscht.
Beitrag #6921905 wurde von einem Moderator gelöscht.
Beitrag #6921917 wurde von einem Moderator gelöscht.
Beitrag #6921921 wurde von einem Moderator gelöscht.
von etreas (Gast)


Lesenswert?

oh ok - kam dann wohl falsch rüber. war auch lax formuliert sry. ich les 
gerade Modeling Software with Finit State Machines :) waren schon etwas 
aus der digitaltechnik und mikrocumputer technik bekannt - wenn man fsm 
tatsächlich als fsm und nicht als pattern aus gof versteht, sind die das 
beste mittel komplexität in den griff zu bekommen

von etreas (Gast)


Lesenswert?

wer übrigens eine richtig geile fsm sehen möchte, hole sich die wad von 
doom 2 und einen source port - parallel dazu den veröffentlichten 
source: https://github.com/id-Software/DOOM

von EAF (Gast)


Lesenswert?

Ich mache mal die Rechnung auf:

2H Nachfragen im Forum, bis Klärung (90%). Über Tage verteilt
2H Flussdiagramm strukturieren, plus weitere Planung/Vorbereitung
1H Codieren
1H Prototype/Testumgebung bauen und debuggen


Das macht 6H a XX Euronen.
Weitere Änderungen/Anpassungen/Zusatzarbeiten kosten extra.


Das Programm liegt hier fertig getestet.
Flussdiagramm 1:1 übernommen
Programmiert mit der Arduino IDE
Getestet auf einem UNO
Kompiliert fehlerfrei für ATMega8

Ein Umbau auf C, ohne Arduino: Machbar
Ein paar delay() und eine Schleife finden sich dort. Die könnte man 
ersetzen, wenn man dort kleine Sub Automaten einsetzt.

Über Schönheit kann man bekanntlich streiten, aber Schönheit gehört auch 
nicht zur Anforderungsliste.

Übrigens:
Keine if Kaskaden
Kein switch/case Konstrukt
Flache Schachtelungen max 1 Ebene im Funktionsblock

von Jan (Gast)


Lesenswert?

Hey Darko,

Sicherlich hast du selbst schon gemerkt, dass hier im Forum nur die 
wenigsten Fragen zu konstruktiven Ergebnissen führen. Gerade so Fragen 
wie "Kann mir mal jemand bei meinem einfachen Programm helfen" führen 
dann binnen kürzester Zeit zu hunderten Postings von zig verschiedenen 
Menschen und jeder für sich hat eine ganz eigene Lösungsmethode, die 
natürlich als DIE PERFEKTE UND EINZIGE LÖSUNG verkauft wird und alles 
andere ist ja sowieso völlig falsch!!!!!!

Dabei hast du allerdings wohl vergessen, dass du das als Hobby betreibst 
und ein Hobby soll a) Spass machen und b) man macht ein Hobby natürlich 
selber und lässt niemand anders sein Hobby machen.

Das einzige, was du hier in den letzten Tagen gewonnen hast ist, dass 
dein eigenes Hirn sich mit der Sache durchgehend beschäftigt hat und du 
jetzt besser durchblickst als vorher. Und genau so löst man Probleme.

Und jetzt setzt du dich mal in Ruhe hin und überlegst dir, wie man so 
ein Problem am besten angehen würde, schiebst das alte Programm zur 
Seite und machst ein neues. Diesmal ein besseres, was man auch viel 
einfacher lesen kann.

Letztendlich musst DU es verstehen, denn DU musst es warten.

von EAF (Gast)


Lesenswert?

Jan schrieb:
> und jeder für sich hat eine ganz eigene Lösungsmethode,
Natürlich!
Frage 3 Leute und du erhältst 5 Ansagen, welche sich teilweise massiv 
widersprechen, aber doch alle richtig sind.

Jan schrieb:
> die
> natürlich als DIE PERFEKTE UND EINZIGE LÖSUNG verkauft wird und alles
> andere ist ja sowieso völlig falsch!!!!!!
Falsch.

von Stefan F. (Gast)


Lesenswert?

Jan schrieb:
> Letztendlich musst DU es verstehen, denn DU musst es warten.

Macht er ja auch. Alles gut.

von Otto (Gast)


Lesenswert?

Hallo,

was bisher noch nicht geklärt wurde ist, ob es eine funktionierende 
Hardware gibt und ob das bestehende  Programm auf diese geflasht werden 
konnte. Gibt es davon einen Schaltplan? Wie sieht die 
Spannungsversorgung aus, wie sind die Eingänge beschaltet, wie werden 
die Relais und Schütze angesteuert, welche Spannungen müssen geschaltet 
werden?

Viele Grüße
otto

von EAF (Gast)


Angehängte Dateien:

Lesenswert?

Dieses ist das Flussdiagramm, welches ich verwendet habe.
https://www.mikrocontroller.net/attachment/540263/Schaltung_Verlauf.bmp
Dort heraus stammen auch die etwas kryptischen Zustandsnamen.

Es gibt ein paar Dinge, die ich wohlwollend ignoriert habe:
A: freigabeAbsaugung kommt im Flussdiagramm nicht vor, habe auch kA, was 
das sein soll.
B: Die Aktoren kenne Auf und Zu, nur die Klappe kennt oben und unten. 
KA, ob oben wirklich auf bedeutet, habe es mal angenommen
C: Die Frage mit den "Enden" blieb ungeklärt. Jetzt ist ein Ende ein 
Ende und ein Ende.
D: Einige Zustände sind doppelt. KA, wozu das gut ist. Aber da im Plan 
so, ist es auch im Programm so.

PS:
Bitte den Quellcode nicht an den Darko verraten, der muss erst bluten.

von EAF (Gast)


Lesenswert?

Otto schrieb:
> was bisher noch nicht geklärt wurde ist, ob es eine funktionierende
> Hardware gibt und ob das bestehende  Programm auf diese geflasht werden
> konnte.

Damit gibt es ganz sicher keine Probleme!
Siehe: Beitrag "Re: Brauche Hilfe AT Mega 8 im Raum Bremen evlt. vor Ort"

von Stefan F. (Gast)


Lesenswert?

EAF schrieb:
> KlappenAutomat.ino

Ich find interessant, wie du die Zustandswechsel implementiert hast. 
Verblüffend simpel - why not?

Allerdings würde ich empfehlen, den Zuständen sprechende Namen zu geben. 
Das müsste man dann natürlich im Diagramm dann auch entsprechend 
kennzeichnen.

von EAF (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Verblüffend simpel
Ich nenne es "naiv", oder "schlicht".
Eine Sammlung von Trivialitäten. Sauber voneinander getrennt, anfassbar 
und wartbar.
Nicht gedankenlos, aber gedankenarm.

Schön, dass es dir gefällt.

Stefan ⛄ F. schrieb:
> Allerdings würde ich empfehlen, den Zuständen sprechende Namen zu geben.
> Das müsste man dann natürlich im Diagramm dann auch entsprechend
> kennzeichnen.
Natürlich!
Diese "Kreativität" gehört allerdings nicht zu den Anforderungen, muss 
darum extra abgegolten werden.

von EAF (Gast)


Lesenswert?

PS:
zB3 hat noch einen Fehler, es muss natürlich nach 
"endschalterKlappeOben" gefragt werden.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Stefan ⛄ F. schrieb:
> EAF schrieb:
>> KlappenAutomat.ino
>
> Ich find interessant, wie du die Zustandswechsel implementiert hast.
> Verblüffend simpel - why not?

Wie willst du das denn bitte sonst machen? Ein Switch und da die 
Funktionen rein und die Zustandsvariable in den Funktionen ändern? Da 
ist ein Funktionspointer doch schon irgendwie der näher liegende 
Ansatz...

von Stefan F. (Gast)


Lesenswert?

Tim T. schrieb:
> Wie willst du das denn bitte sonst machen?

Es gibt mehrere Möglichkeiten. Zwei davon sind im Artikel 
https://www.mikrocontroller.net/articles/Statemachine beschrieben. Ich 
möchte allerdings den Rahmen dieses Threads nicht mit Diskussionen um 
weitere Methoden sprengen. Dem Darko (TO) brummt der Kopf bestimmt schon 
genug.

von oldmax (Gast)


Lesenswert?

Hi
Auch wenn ich mich bei der Lösung des Problems zurück halte möchte ich 
Mal einen allgemeinen Tip loswerden. Macht aus euren Werken kein 
Geheimnis. Ich bin sicher, wäre von Anfang an klar gewesen, das es sich 
um eine Sandstrahlkabine handelt, wären viele unnütze Kommentare 
unterblieben und vielleicht auch schon ein fertiges Programm geliefert 
worden.
Auch zum Aspekt Fehlverhalten und Sicherheit ein kleiner Hinweis. Alles, 
was man sich eventuell vorstellen kann, ist möglich. Vom Einklemmen bis 
Invalidität, auch wenn's übertrieben scheint und auch Bastler sollten im 
Hinterkopf haben, das Versicherer gern die Gelegenheit nutzen, 
Verantwortung auf andere abzuwälzen, wenn sie dadurch aus einer 
Verpflichtung kommen. Auch Gerichte sind dann schon Mal schnell bei 
fahrlässiger Körperverletzung. So, genug geunkt.
Darko, dein Projekt ist jetzt nicht wirklich kompliziert, doch leider 
spreche ich nicht C und mit Assembler würde ich dich vermutlich noch 
mehr stressen.
Es gibt genug, die dir mit C helfen können und auch werden.
Lediglich den Ablauf könnte ich Mal formulieren
Grundstellung:
Gebläse aus, Verriegelung offen (hast du als Scharnier bezeichnet)
Klappe offen
Taster Start
Klappe schließt
Endschalter Klappe geschlossen
Verriegelung presst Klappe an (Zeitfunktion oder Druckschalter)
Gebläse ein (Betriebszustand)

Betriebszustand:
Taster Start
Gebläse aus (Rückmeldung Druckschalter oder Zeitfunktion)
Verriegelung lösen (Endschalter)
Klappe öffnen (Endschalter)
Grundstellung
Wenn du jetzt Mal einfach so schrittweise denkst, dann kommst du zur 
Stagemaschine
Schritt 0: Grundstellung
Taster Start Schritt 1 : Gebläse aus. Rückmeldung löst Schritt 2 aus
Usw.
Gruß oldmax

von EAF (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich
> möchte allerdings den Rahmen dieses Threads nicht mit Diskussionen um
> weitere Methoden sprengen.

Warum nicht!?

Das Thema dieses Threads ist:
> Der endliche Automat im praktischen Einsatz

Oder:
> Wie mach ichs mir?

Stefan ⛄ F. schrieb:
> Dem Darko (TO) brummt der Kopf bestimmt schon
> genug.
Das stört mich nicht.
Lass ihn doch brummen......

Es könnte übrigens die Möglichkeit bestehen, dass irgendeiner was bei 
der Diskussion lernt. Vielleicht ist es ja das, was stört.

--------------

Es gibt sicherlich ein knappes Dutzend Verfahren, wie man eine 
Ablaufsteuerung angehen kann.

In den allermeisten Fällen wird so ein Dingen deterministisch werden 
müssen. Auch ist die Anzahl Zustände, in der Regel, begrenzt/endlich.

Man muss sich die Aufgabe genau anschauen, bevor man sich für eine Linie 
entscheidet.

Stefan ⛄ F. schrieb:
> Zwei davon sind im Artikel
Die switch/case Variante schmeckt mir nicht sonderlich. Eher schon 
"computed goto". Beiden gemein ist, dass dann eine Funktion schnell mal 
eben über 25 Zeilen hat. Das macht es unübersichtlich. Zudem pervertiert 
ein switch/case Konstrukt ab einer gewissen Schwelle von einer 
Sprungtabelle zu einer wenig performanten Entscheidungskaskade.

Anfänger versuchen es häufig erstmal mit einer Kontrollfluss 
orientierten Sichtweise. Verirren sich dann in verschachtelten If 
Blöcken und komplizierten Bedingungen. Selbst wenn es irgendwann mal 
funktioniert, ist es kaum wart-/änderbar. Darko hat ein solches Beispiel 
geliefert.

Gerne gehe ich Ablaufsteuerungen aus der Datenfluss Sicht an. z.B. die 
Koppelpläne aus der SPS Welt ziehen das konsequent durch.

Dann gibt es ja auch noch die Ereignisorientierte Sichtweise. Welche 
durchaus, bei passenden Anforderungen, die beste/eleganteste Möglichkeit 
sein kann.

von Dieter (Gast)


Lesenswert?

Darko D. schrieb:
> Ich werde mich wie von Jobst und den anderen empfohlen erst mal mit den
> Zustandsautomaten auseinandersetzen müssen.

Vielleicht wären Petri-Netze einfacher für Dich. Dein Ablaufdiagramm 
geht schon weitestgehend in diese Richtung.

von EAF (Gast)


Lesenswert?

Dieter schrieb:
> einfacher für Dich

Ihm scheint verschollen zu sein.

von Jobst M. (jobstens-de)


Lesenswert?

Hat sich in seiner Sandstrahlkabine eingeschlossen und kommt nun nicht 
mehr an den Taster.
Er wollte den Taster ja nicht festhalten müssen ...
Alfred Hitchcock hätte seinen Spaß! :-D

Gruß
Jobst

von STK500-Besitzer (Gast)


Lesenswert?

Jobst M. schrieb:
> Hat sich in seiner Sandstrahlkabine eingeschlossen und kommt nun nicht
> mehr an den Taster.
> Er wollte den Taster ja nicht festhalten müssen ...

LOL

von Waidmanns Heil (Gast)


Lesenswert?

EAF schrieb:
> Ihm scheint verschollen zu sein.

Nein. Er ist mit einem Petri-Netz zum Angeln gegangen.

Dieter schrieb:
> Vielleicht wären Petri-Netze einfacher für Dich.

von Darko Dragojevic (Gast)


Lesenswert?

Nein. Ich bin da. Kann mich aber frühestens im neuen Jahr melden. Guten 
Rutsch allen zusammen! Lg Darko

von Darko Dragojevic (Gast)


Lesenswert?

Ich habe übrigens sehr viel gelernt die Tage durch euch. Das ist schon 
viel mehr wert als die Kabine. Bis in ein paar Tagen.

von Martin V. (oldmax)


Angehängte Dateien:

Lesenswert?

Hi
Hab mir mal die Mühe gemacht, es etwas bildlicher mit einer Schrittkette 
darzustellen. Die gelb markierten "Freigabe-Sicherheit"-Eingänge können 
jeweils in den Schritten anders ausfallen. Möglich sind 
Motorschutzschalter vom Gebläse, Bewegungsmelder im Gefahrenbereich oder 
Trittmatten oder einfach auch weggelassen, weil nicht benötigt.
Gruß oldmax

von Darko Dragojevic (Gast)


Lesenswert?

Hallo alle zusammen, die erste volle Woche im Jahre 2022 ist noch nicht 
vorüber, daher darf man noch frohes neues Jahr wünschen.

Um an meinem Projekt wieder ein kleines bisschen weiter zu kommen, habe 
ich mich entschieden einen deutschen,
unmissverständlichen und präzise formulierten Text zu schreiben, was das 
Programm auf dem Atmega8 verwalten muss.
Ich habe mich allerdings auch parallel mit den Automaten und anderen 
Darstellungsweisen von strukturierten Abläufen befasst.


Einleitung:
Das Ziel der ganzen Geschichte ist es, die Bedienerfreundlichkeit meiner 
selbst gebauten Sandstrahlkabine zu erhöhen.
Die Kabine ist 150cm breit und 190cm hoch. Die Kabine ist mit einer 
Frontklappe ausgestattet die ebenfalls 150cm breit ist und ca.110cm hoch 
ist.
Die Unterkante der Klappe ist ca. 80cm über dem Boden.
Die Kabine ist auch mit einer Absaugung verbunden. Diese Absaugung 
brauch insgesamt 2 Freigaben um laufen zu können.
Eine Freigabe erteilt der Bediener über einen Schalter (nicht Taster) am 
Bedienerpult und die andere Freigabe erteilt der ATmega 8.
Es macht keinen Sinn die Absaugung bei geöffneter Klappe anzuhaben.
Es soll aber möglich sein, die Kabine zu anderen Zwecken auch ohne 
Absaugung zu betreiben. Zum Beispiel irgenwas auspusten.
Am Bedienerpult befindet sich ein Taster (nicht Schalter) zum Öffnen und 
zum Schließen der Klappe.


Hauptteil:
Die Klappe wird mit einem an der Seite befindlichen pneumatischen 
Zylinder aufgefahren.
Dieser pneumatische Zylinder hat 2 Ventile. Sobald das Ventil zum 
hochfahren angesteuert wird, befüllt sich der Druckluftzylinder mit Luft 
und bewegt die Klappe
hoch. Sobald das andere Ventil betätigt wird, wird die Druckluft im 
Zylinder abgelassen und die Klappe bewegt sich durch ihr Eigengewicht 
herunter.
Man darf nur ein Ventil zur Zeit ansteuern. Beide Ventile zur gleichen 
Zeit anzusteuern macht keinen Sinn.
Die Klappe ist auch mit zwei Endlagentastern ausgestattet. Die 
Elektronik kann daher die Position der Klappe ermitteln.
Mir fallen dadurch 3 Zustände ein. Klappe oben, Klappe unten, Klappe in 
unbekannter Höhe.

Die Elektronik soll daher wie folgt vorgehen:
Die Elektronik soll nur aktiv werden wenn der Benutzer eine Änderung des 
Status der Klappe haben möchte.
Ist die Klappe ganz oben (Endschalter oben ist betätigt), soll sie 
heruntergefahren werden.
Ist die Klappe ganz unten (Endschalter unten ist betätigt), soll sie 
hochgefahren werden.
Ist die Klappe irgendwo in der Mitte soll sie runtergefahren werden.

Leider ist es notwendig, den Anpressdruck zwischen Klappe und 
Kabinenrahmen mittels einer Zuziehhilfe, die ebenfalls pneumatisch 
funktioniert zu erhöhen.
Diese Zuziehhilfe hat auch zwei Ventile. Eins für zu und eins für auf.
Im Gegensatz zur Klappe hat die Zuziehhilfe nur einen Endlagentaster nur 
für den Status auf.
Das Schließen der Zuziehhilfe dauert exakt 2,5 sekunden.

Das bedeutet das nun jedes Mal bevor die Klappe auf und zu gefahren 
werden soll, gewährleitet sein muss, dass die Zuziehhilfe den Satus 
"offen" hat.
Bei einer geschlossenen Zuziehhilfe kann die Klappe mechanisch weder 
geöffnet noch geschlossen werden.

Noch ein paar Sätze zur Absaugung.
Gedacht ist es so: Ist der Schalter der Absaugung auf ein, soll die 
Absaugung bei geschlossener Klappe auch die Freigabe des ATmega 8 
bekommen.
Ist die Klappe nicht ganz geschlossen oder ganz oben, nimmt der ATmega 8 
die Freigabe als Ausgang weg. Dann spielt es keine Rolle in welcher 
Stellung
der Schalter Absaugung ein/aus ist. Der Status des Schalters wird als 
Eingang in den ATmega 8 gespeist.
Ist die Klappe geschlossen und die Absaugung läuft, dann soll der 
ATmega8 die Freigabe Absaugung wegnehmen und 7 sekunden warten bis diese 
Austrudelt. Erst dann darf
die Klappe geöffnet werden. Ist die Klappe zu und die Absaugung ist aus 
(Schalter Absaugung steht auf aus) brauch der Bediener natürlich keine 7 
sekunden warten bis sich
die Klappe öffnet.

Als allerletztes ist nur noch der Vorgang "Schließen von Klappe ganz 
auf" und der Vorgang "Schließen aus unbekannter Höhe" zu erklären.

Schließen aus ganz oben (Endlage oben ist betätigt):

Das Ventil Klappe zu soll 1,5 sekunden lang angesteuert werden, um einen 
sehr großen Weg in relativ kurzer Zeit zurückzulegen. Nach dieser zeit 
fehlen ungefähr noch 15cm Weg.
In diesen letzten 15 cm soll der AT mega 8 folgende Ausführung machen:

500ms warten,
100ms Ventil Klappe zu ansteuern
500ms warten,
100 ms Ventil Klappe zu ansteuern etc.

solange bis die Endlage Klappe geschlossen erreicht ist.
Immer wenn diese Endlage erreicht ist, soll anschließend das Ventil 
Zuziehhilfe zumachen 3 sekunden lang angesteuert werden.
Dann soll die Freigabe Absaugung erteilt werden.

jetzt Schließen aus irgendwo in der Mitte:

500ms warten,
100ms Ventil Klappe zu ansteuern
500ms warten,
100 ms Ventil Klappe zu ansteuern etc.

solange bis die Endlage Klappe geschlossen erreicht ist.

Ich bin mir nun relativ sicher, dass das ein normal denkender Mensch 
versteht.
Anders kann ich es im Moment nicht darstellen. Wenn auch das nicht 
verstanden wird, dann muss ich nach einer ganz anderen Lösung suchen.
Vielleicht für jeden kram einen separaten Schalter....

Ich danke euch noch einmal.
LG Darko aus Bremen

von Stefan F. (Gast)


Lesenswert?

Darko Dragojevic schrieb:
> Ich habe mich allerdings auch parallel mit den Automaten und anderen
> Darstellungsweisen von strukturierten Abläufen befasst.

Merkt man. Die neue Beschreibung der Aufgabe gefällt mir um Welten 
besser als die erste. Noch ein paar Fotos von der Verriegelung der 
Klappe und dem Bedienfeld wären gut.

von STK500-Besitzer (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Merkt man. Die neue Beschreibung der Aufgabe gefällt mir um Welten
> besser als die erste. Noch ein paar Fotos von der Verriegelung der
> Klappe und dem Bedienfeld wären gut.

Einfach mal ein Schema des ekeltrischen Aufbaus (Ventile, 
Endlagenschalter, Absaugung...) würde mehr aussagen als kubikmeterweise 
Prosa und Bilder von Frontplatten...

von Darko Dragojevic (Gast)


Lesenswert?

Das ist kein Problem. Werde ich die Tage nachreichen.
LG

von Jobst M. (jobstens-de)


Lesenswert?

Sehr schöne Beschreibung, ein paar Feinheiten fehlen mir dennoch.
Sind aber Peanuts:

Darko Dragojevic schrieb:
> Das Schließen der Zuziehhilfe dauert exakt 2,5 sekunden.

Danach soll das Ventil für die Zuziehhilfe wieder geschlossen werden 
oder darf das offen bleiben und so weiter zuziehen?


Darko Dragojevic schrieb:
> Ist die Klappe zu und die Absaugung ist aus
> (Schalter Absaugung steht auf aus) brauch der Bediener natürlich keine 7
> sekunden warten bis sich
> die Klappe öffnet.

Also die Absaugung mit dem Schalter vorher abschalten und danach sofort 
mit dem Taster die Klappe öffnen. Dann braucht man nicht 7s zu warten 
... ;-)


Darko Dragojevic schrieb:
> 500ms warten,
> 100ms Ventil Klappe zu ansteuern
> 500ms warten,
> 100 ms Ventil Klappe zu ansteuern etc.
>
> solange bis die Endlage Klappe geschlossen erreicht ist.

Und danach kann das "Klappe schließen" Ventil geöffnet bleiben?
Oder soll es weiter pulsen? (Verschleiß?)
Sonst arbeitet der Restdruck in der Klappenpneumatik ja gegen die 
Zuziehhilfe.


Gruß
Jobst

von Martin V. (oldmax)


Lesenswert?

Hi
Ja, die letzte Beschreibung war deutlich, doch was will der TO? Du habe 
beschrieben, in Worten und bildlich, wie er zur Lösung kommt. Wenn das 
Verständnis fehlt, diese Anleitung zur Denkweise für den Ablauf, 
sorry,da können wir uns die Finger wund schreiben. Wo st das Problem, 
die Ablaufkette nur zur Bewegung der Klappen zu nutzen und die 
Ventilatoren mit der entsprechenden Verriegelung und Enschaltbedngung 
separat umzusetzen. Wenn er ein fertiges Programm möchte, dann muss auch 
ein Schaltplan her,oder sollen wir solange raten, bis die richtige 
Konfiguration gefunden ist? Mal ehrlich, für diese Aufgabe hätten auch 
max. 20 Beiträge gereicht.
Gruß oldmax

von Jobst M. (jobstens-de)


Lesenswert?

Darko D. schrieb:
> Das hier ist vom AT Mega 8 die Belegung (wenn das so geht) hoffe ich:

Für Programmierung via ISP solltest Du die Pins 17 bis 19 frei räumen.

Gruß
Jobst

von Darko Dragojevic (Gast)


Lesenswert?

Hallo Jobst. Sehr interessant, dass da dennoch Fragen offen bleiben. 
Gerne beantworte ich die natürlich.

Der Schließvorgang dauert genau 2,5 Sekunden. Nach einer 3 sekündigen 
Ansteuerung kann davon ausgegangen werden, dass der pneumatische 
Zylinder drucklos ist. Danach soll das Ventil "Zuziehhilfe schließen" 
bitte nicht mehr angesteuert werden.

Zum Thema Absaugung.
Ja rein theoretisch hast du Recht, wenn man die Absaugung manuell 
ausschaltet und schnell kurz danach den Taster "Klappe auf" betätigt, 
würde die Klappe aufgehen.
Darin sehe ich 2 Probleme. Erstens ist die Absaugung schon bei 
geschlossener Klappe ohrenbetäubend laut, ich möchte gar nicht wissen 
wie laut es bei geöffneter Klappe ist und das zweite Problem ist, dass 
dann die Pneumatik für die Klappe auf gegen das Vakuum der Absaugung 
kämpft. Man müsste wenn man es industriell nach ECE und DIN und was es 
da alles gibt, einen Timer zählen lassen der dann auch die Zeit nach der 
Betätigung des Schalters zählt. Das brauch ich hier aber nicht. Aber 
danke für die Anregung.
Ich werde das aber nicht so machen, dass ich dann ganz schnell den 
Klappe auf Taster drücke.

Die letzte Frage beantworte ich natürlich auch gerne.
Das Ventil "Klappe zu" brauch nachdem der Entlagenschalter erreicht ist 
nicht mehr angesteuert werden.
Optimalerweise kann man ja dem atmega 8 sagen, dass wenn die Endlage 
unten erreicht ist, dass danach noch eine dauerhafte Ansteuerung des 
Ventils für 0,5 Sekunden durchgeführt werden soll, um auch diesen 
pneumatischen Zylinder drucklos zu machen. Ich bevorzuge es persönlich, 
dass nach diesen ganzen hoch und runter Fahrereien alle Ventile 
geschlossen bleiben.

von Darko Dragojevic (Gast)


Lesenswert?

Das ist sehr schlecht, wenn ich die Pins freiräumen soll. Ich habe mich 
auch beim Löten gewundert, dass diese Ports doppelt belegt sind.
Ich weiß nicht ob via ISP programmiere. Ich habe ein programm das nennt 
sich ich glaube AVR demo. Nach 30 min. schließt es sich und dann muss 
ich das neu öffnen.

Und dann hab ich so ein kleines Tool über usb verbunden. Ich hoffe das 
ist nicht ISP...

von EAF (Gast)


Lesenswert?

Darko Dragojevic schrieb:
> Ich hoffe das
> ist nicht ISP...

Ist es.

von Darko Dragojevic (Gast)


Lesenswert?

Martin du hast Recht mit den 20 Beiträgen. Es war mein Fehler, dass ich 
nicht in der Lage war, deutlich zu machen, was ich möchte. Das ist mir 
nur über Umwege gelungen, die vielleicht auch nicht optimal waren. Nun 
kann man aber bis auf minimale Feinschliff-Arbeiten erkennen was ich 
möchte und was letztenendes das Programm können soll. Das ist ja schon 
mal der erste Schritt, dass mein Gegenüber erst mal weiß was ich möchte.
LG

von Darko D. (darlo)


Lesenswert?

Das ist ja doof, dass ich ISP benutze. Dann muss ich es umlöten.
pin 17 kommt auf pin 14
pin 18 kommt auf pin 10
und pin 19 kommt auf 9

Ich hoffe das geht so.

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
Noch kein Account? Hier anmelden.