Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Mehtode zur Rufsteuerung

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Mehtode zur Rufsteuerung (1407 mal gelesen)
Erdnussbutter93
Mitglied
Student


Sehen Sie sich das Profil von Erdnussbutter93 an!   Senden Sie eine Private Message an Erdnussbutter93  Schreiben Sie einen Gästebucheintrag für Erdnussbutter93

Beiträge: 14
Registriert: 25.07.2017

erstellt am: 26. Jul. 2017 08:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Fahrstuhl.PNG

 
Hallo,

ich habe einen Fahrstuhl entwickelt und möchte nun eine Methode schreiben, damit der Fahrstuhl nur fährt, wenn er gerufen wird.
Das heißt, befindet sich jemand in meinen linken Puffern, so soll ein Ruf ausgelöst werden und sich der Fahrstuhl dort hin bewegen.
Hat jemand eine Idee, um das umzusetzen?

Viele Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nadin1223
Mitglied
Ing.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 31. Jul. 2017 15:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Erdnussbutter93 10 Unities + Antwort hilfreich

Hallo Erdnussbutter93,
wie sieht dein EPK, eindlicher Automat oder Pseudokode aus?

vg
Nadin

------------------
„Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten.“ Matthew Austern

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Erdnussbutter93
Mitglied
Student


Sehen Sie sich das Profil von Erdnussbutter93 an!   Senden Sie eine Private Message an Erdnussbutter93  Schreiben Sie einen Gästebucheintrag für Erdnussbutter93

Beiträge: 14
Registriert: 25.07.2017

erstellt am: 31. Jul. 2017 16:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Anlage1.PNG


Anlage2.PNG


Anlage3.PNG

 
Hi Nadin,

das ist mein aktueller Stand der Dinge. Mit der CreationTabelle generiere ich für jede Quelle BEs mit dem Attribut "Zieletage" (0,1 oder 2). Aktuell fährt mein Aufzug hoch und runter, setzt die Personen mit der Attribut zugeteilten Etage ab und nimmt bei Bedarf neue Personen auf. Doch jetzt soll der Aufzug auf Ruf reagieren und alle vorhandenen Aufträge in Rufrichtung abarbeiten.
Könntest du mir weiterhelfen?

Danke und viele Grüße  

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Erdnussbutter93
Mitglied
Student


Sehen Sie sich das Profil von Erdnussbutter93 an!   Senden Sie eine Private Message an Erdnussbutter93  Schreiben Sie einen Gästebucheintrag für Erdnussbutter93

Beiträge: 14
Registriert: 25.07.2017

erstellt am: 31. Jul. 2017 16:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Anlage4.PNG

 
meine Tabelle sieht dann übrigens so aus. In der Integer-Spalte steht das Ziel meines BEs.
Jetzt stelle ich mir das ungefähr so vor:
-Wenn Eintrag in Liste, fahre dort hin
-Wenn weitere Einträge, prüfe ob der aktuellste Eintrag größer oder kleiner der Abholetage ist
-Wenn größer, (fährt dann nach oben) halte an allten Etagen, die aufsteigend sind
-Wenn kleiner, (fährt nach unten) halte an allen Etagen, die absteigend sind
-Nach dem Abarbeiten einer Richtung (zb von der 3 bis zur ersten Etage), nimm aktuellsten Auftrag und führe ihn aus
und dann wieder von vorn. Allerdings kann ich das so nicht in eine Methode schreiben...Ist das überhaupt so möglich?

Beste Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nadin1223
Mitglied
Ing.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 01. Aug. 2017 01:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Erdnussbutter93 10 Unities + Antwort hilfreich

Zitat:
Doch jetzt soll der Aufzug auf Ruf reagieren

Der Lift hat zwei Zustände. Entweder Arbeitend oder Wartet. Wenn Arbeitend dann Person drückt Taste und Lift kommt auf diese Etage. Wenn Arbeitend haben die Personen im Lift priorität.
TIPP: diesen Zustand in Variable abfangen. Wenn Wartend dann LiftSteuerung aktivieren.

Zitat:

-Wenn Eintrag in Liste, fahre dort hin
-Wenn weitere Einträge, prüfe ob der aktuellste Eintrag größer oder kleiner der Abholetage ist
-Wenn größer, (fährt dann nach oben) halte an allten Etagen, die aufsteigend sind
-Wenn kleiner, (fährt nach unten) halte an allen Etagen, die absteigend sind
-Nach dem Abarbeiten einer Richtung (zb von der 3 bis zur ersten Etage), nimm aktuellsten Auftrag und führe ihn aus


im Prinzip PseudoKode Station Eingang:
Code:

Tabelle eintragen
wenn Wartend LiftSteuerung()


PseudoKode Sensor
Code:

setze Fahrrichtung (in erster und letzter Etage Fahrrichtung = Ziel Erreicht. Das was noch im Lift verbleibt gibt die Fahrrichtung vor. Achtung!!! Fahrrichtung hat drei Zustände: Hoch/Runter/Ziel Erreicht)
wenn auf Etage warten Personen oder in Lift Personen haben Etage als Ziel, dann halte an Lift.anhalten:= true -->  Entladen --> Beladen --> LiftSteuerung()
wenn sensorposition = Ziel dann halte an und setze Fahrrichtung = Ziel Erreicht
sonst fahre durch



PseudoKode LiftSteuerung Fahrrichtung hat priorität
Code:

Lift.arbeitend := true
wenn Fahrrichtung = Ziel Erreicht dann -->
wenn Personen im Lift setze nächstes Ziel (setzeFahrrichtung Person in Lift)
wenn Fahrrichtung /= Hoch oder Runter dann --> dann fahre weiter

wenn Personen auf Etage (in Tabelle.Ydim > 0) und Lift leer --> dann setze Fahrrichtung zu nächster Etage und Lift.start (Etage in Fahrrichtung priorisieren. Wenn keine Fahrrichtung, dann steigen eig. alle ein)
sonst Lift bleibt auf Etage stehen und Lift.arbeitend := false



setzeFahrrichtung Person in Lift priorität Fahrrichtung
Code:

Gehe BE in Lift durch, wenn Person in Fahrrichtung dann setze Ziel in Fahrrichtung
wenn keine BE in Fahrrichtung, dann nächste Fahrrichtung
und Fahrrichtung setzen und Lift.start


Lift init

Code:

Ziel setzen und fahren lassen.


TIPP: in Tabelle dann BE als Index speichern
Beladen
Code:

wenn Platz dann -->
wenn Lift.Fahrrichtung gleich Richtung Etage dann -->
dieses Objekt umlagern auf Lift
Tabelle.entferneZeile(das was du Umlagers als Objekt)<--wenn BE als index, sonst suchen 


sonst nichts


Für Lift Attribute:
--> Fahrrichtung [integer] -->init auf Ziel Erreicht
--> Ziel [integer] --> init in Lift_init Methode (hier geht auf Zielort) Das Ziel hat nichts mit Entladen und Beladen zu tun, da auch bei zwischenstation angehalten werden sollte, aber die zuvor gesetze Etage priorität hat.

Variable:
--> V_Lift [boolean] --> init wartend


vg
Nadin

------------------
„Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten.“ Matthew Austern

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Erdnussbutter93
Mitglied
Student


Sehen Sie sich das Profil von Erdnussbutter93 an!   Senden Sie eine Private Message an Erdnussbutter93  Schreiben Sie einen Gästebucheintrag für Erdnussbutter93

Beiträge: 14
Registriert: 25.07.2017

erstellt am: 01. Aug. 2017 09:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


GlobaleVariable.PNG

 
Hallo Nadin,

danke für die vielen Tipps! Ich versuche sie nacheinander abzuarbeiten. Als erstes beschäftige ich mich mit der Globalen Variable. Diese wollte ich so defnieren, dass ich sage:
Wenn Aufzug mit Inhalt beladen AufzugAktiv:=true
Wenn Aufzug nicht mit Inhalt beladen AufzugAktiv:=false
Wenn ich das definiert habe, kann ich dem Aufzug anweisen, ob er den innen oder ausrufen Priotität eingestehen soll.
Allerdings scheitere ich mit dem deklarieren der Globalen Variable.
Wo könnte mein Fehler sein?

Viele Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz