Fahrstuhl automatisch?

Posted By: Blacknova

Fahrstuhl automatisch? - 11/15/07 21:34

Hallo Zusammen,

probiere einen Lift der Automatisch hoch und wieder runter fährt.

///////////

action lift_hochfahren
{
while(1)
{
If(my.z< 200) //my.z kleiner als 200 ist fahre hoch
{
my.z +=4*time_step;
}
If (my.z> 200) //my.z grösser als 200 ist fahre wieder runter
{
my.z-=4*time_step;
}
wait(1);
}
}

///////////

Jetzt fährt er hoch aber nicht mehr runter.Er sollte hoch und wieder runter und dann wieder hoch und immer so weiter.

Gruss
Blacknova
Posted By: Michael_Schwarz

Re: Fahrstuhl automatisch? - 11/15/07 23:21

else ist besser, weil denk mal nach... was ist wenn der lift auf GENAU 200 ist? da würde KEINE if zutreffen.

Code:

action lift_hochfahren
{
while(1)
{
If(my.z< 200) //my.z kleiner als 200 ist fahre hoch
{
my.z +=4*time_step;
}
else
{
my.z-=4*time_step;
}
wait(1);
}
}


Posted By: MichaelGale

Re: Fahrstuhl automatisch? - 11/15/07 23:53

Vllt. liege ich ja falsch, aber der Skript ist auch nicht korrekt. In diesem Fall würde er hochfahren, kurz runterfahren, aber da die if Bedingung dann wieder erfüllt ist, sofort wieder hochfahren.
Posted By: Michael_Schwarz

Re: Fahrstuhl automatisch? - 11/16/07 00:00

mal abgesehen davon
Posted By: Fenriswolf

Re: Fahrstuhl automatisch? - 11/16/07 08:01

Tach,

@Blacknova
Du kannst das mit einem ganz simplen Endlichen Automaten lösen.
D.h. du kannst deinen Fahrstuhl in zwei Zustände einteilen (runter fahren, hoch fahren) und zwischen diesen wechseln.

Beispiel:
Code:
if (zustand == runter_fahren) {
my.z -=4*time_step;
if (my.z <= 0) { zustand = hoch_fahren; }
}
else {
my.z +=4*time_step;
if (my.z >= 200) { zustand = runter_fahren; }
}


Posted By: drich91

Re: Fahrstuhl automatisch? - 11/16/07 16:05

ich würds so machen, aber das von fenriswolf müsste gehen.
ich würd das so ähnlich machen mit variablen die beim hochfahren 1 und beim runterfahren 0 sind.
© 2024 lite-C Forums