Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Routenverkehr

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:  Routenverkehr (2785 mal gelesen)
Darius2001
Mitglied
Angestellter

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

Beiträge: 5
Registriert: 25.01.2009

erstellt am: 25. Jan. 2009 21:06    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


Routenverkehr.JPG

 
Moinsen,

anbei ein (hoffentlich  ) kleines Routenproblem. In einer Stunde sollen immer 4 Touren gefahren gewerden. Insgesamt müssen 3 unterschiedliche Teile transportiert werden. Fahrzeug kann immer 2 Teile transportieren.
Puffer bei den Quellen haben immer kapa von 2! (Beispiel (P_H)
Teil_H hat Füllmenge (FM) von 12
Teil_G hat FM von 24
Teil_D hat FM von 24
Aufgrund von Rahmenbedingungen müssen in der ersten tour Teil G + Teil D gefahren werden,
dann in Tour 2 von 4 muss Teil H + Teil H.
Tour 3 = Tour 1
Tour 2 = Tour 4

Wie aber sage ich jetzt meinen Transporter; Nimm aus Puffer (P_G) ein Teil und dann fahre bitte zu Puffer
P_D und nehme wieder nur ein Teil, ignoriere in dieser konstellation aber Teil_H!!! Bei Teil_H soll er wiederum
2 mal bei Puffer_H ein Teil entnehmen und den Rest ignorieren und zum Band fahren.

Fahre dann mit den beiden Teilen zu den entsprechenden Stationen und tausche mit Leergut, bring leergut zurück!

Ich kann dem Fahrzeug sagen, hey nimm ein Teil D mit bring es zum Band und tausche geg. leergut!
Die restlichen Prämissen kann ich nicht darstellen.

Sollte ich jetzt alle Klarheiten beseitigt haben...einfach nochmal fragen 

MFG
Darius2001

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

pom
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 182
Registriert: 25.08.2006

erstellt am: 27. Jan. 2009 14:02    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 Darius2001 10 Unities + Antwort hilfreich

Hallo,
du kannst z.b die Route über einen Trigger aus lösen.

Ein Trigger führt alle 15min eine MEthode aus.

Die MEthode zählt eine Variable hoch, diese symbolisiert unsere aktuelle Route

Code:

Route_ID:=Route_ID+1
If Route_ID > 4 then
Route_ID:=1;
end;

Anhand der Routen_ID wird das erste Ziel festgelegt

Code:

Inspect Route_ID

when "1" or "3" then
  Fahrzeug.Zielort:=Puffer_P_G;

when "2" or "3" then
  Fahrzeug.Zielort:=Puffer_H;

end;


Nun fährt das Fahrzeug an hand der Routen_ID zum ersten Ziel. Dort muss über den Sensor das BE verladen werden. Dabei ist es wichtig das alle Sensoren nur Aktiv sind, wenn diese auch das Ziel sind!
Der Sensor führt also eine weitere Methode aus.

Code:

@.Stop;
Inspect @.Zielort.Name

when "Puffer_H" then
for i:=1 to 2 loop
  Waituntil  @.Zielort.belegt prio 1;
   @.Zielort.inhalt.umlagern(@);
  next;
@.Zielort:=Station;

when "Puffer_P_G" then
Waituntil  @.Zielort.belegt prio 1;
@.Zielort.inhalt.umlagern(@);
@.Zielort:=Puffer_P_D;

when "Puffer_P_D" then
Waituntil  @.Zielort.belegt prio 1;
@.Zielort.inhalt.umlagern(@);
@.Zielort:=Station;

end;

@.Fahren;


Nun hat das Fahrzeug die BES geladen welche für die entsprechende Route benötigt werden. Das Leergut austauschen und zurückfahren kannst du auf dem selben bzw. ähnlichen weg lösen.

MFG
Patrick

Plant Hilfe:
- Inspect
- Umlagern
- Waituntil
- Belegt
- Sensoren aktivieren
- @
- Inhalt
- Stop / Fahren

[Diese Nachricht wurde von pom am 27. Jan. 2009 editiert.]

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

Darius2001
Mitglied
Angestellter

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

Beiträge: 5
Registriert: 25.01.2009

erstellt am: 28. Jan. 2009 20:56    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

Moinsen,

vielen Dank für die schnelle Antwort...muss ich Sonntag gleich mal probieren gebe dann ein Feedback!

besten gruss
Darius

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

Darius2001
Mitglied
Angestellter

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

Beiträge: 5
Registriert: 25.01.2009

erstellt am: 06. Feb. 2009 13:41    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

Hallo Zusammen,

der erste Teil mit dem Trigger bereitet mir Kopfzerbrechen. Hab den Trigger vorher noch nicht eingesetzt.
Also nach dem Motto probieren geht über studieren:
Die 15 Minuten hätte ich jetz bei der Periodenlänge eingesetzt, dann wollte ich die Methode verknüpfen (Reiter Aktionen). Klappt aber leider nicht..ist grau hinterlegt. Die Onlinehilfe konnte mir da auch nicht Recht helfen.


Konkret weiß ich nicht wie ich durch den Trigger die Methode von Pom:
 
  Code:
    Route_ID:=Route_ID+1
    If Route_ID > 4 then
    Route_ID:=1;
    end;

Anhand der Routen_ID wird das erste Ziel festgelegt

    Code:
    Inspect Route_ID

    when "1" or "3" then
      Fahrzeug.Zielort:=Puffer_P_G;

    when "2" or "3" then
      Fahrzeug.Zielort:=Puffer_H;

    end;

anstoßen kann.


MFG
Darius

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

pom
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 182
Registriert: 25.08.2006

erstellt am: 09. Feb. 2009 08:00    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 Darius2001 10 Unities + Antwort hilfreich

Hallo,

achte darauf das du die Vererbung neben dem knopf "Methode" deaktiviert hast (also nicht grün). Dann kannst du dort als Aktion die MEthode hinterlegen.

MFG
Patrick

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

Darius2001
Mitglied
Angestellter

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

Beiträge: 5
Registriert: 25.01.2009

erstellt am: 22. Feb. 2009 16:23    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


Set_die_Zweite.JPG

 
Hallo Zusammen,

vielen Dank für die Hilfe POM. Das mit der Methode und dem Trigger hab ich dann auch mal hinbekommen... .

Wenn ich mit den Quelltext arbeite, bekomme ich eine Reihe von Fehlermeldungen die ich nicht erklären kann.
In der Methode "Set laden" steht das mit der Route_id hochzählen von dir.

Info: Route_id habe ich in dieser Methodeb als Globale Variable festgelegt.
 
Route_ID:=Route_ID+1;

    if Route_ID > 4 then
    Route_ID:=1;
    end;
Die Methode ist mit dem Trigger verknüpft.


Bei der Methode Fahrsteuerung die bei Kontakt mit den Sensoren ausgelöst wird, sagt Emplant es sind Fehler im Quelltext zeigt aber nicht wo an...:

Wie weiß die Methode eigentlich, dass der Zielort auf einem anderen "Weg" liegt???
Bisher
 
Aber hier erst nochmal die Methode...

is
i: integer;
do

Inspect Route_ID

when 1, 3 then
@.Zielort:=P_Dome_1;

when 2, 4 then
@.Zielort:=P_Gurte_1;

end;

@.Stop;
Inspect @.Zielort.Name

when P_Dome_1 then
for i:=1 to 2 loop
  Waituntil  @.Zielort.belegt prio 1;
  @.Zielort.inhalt.umlagern(@);
  next;
@.Zielort:=P_Dome;

when "P_Gurte 1" then
Waituntil  @.Zielort.belegt prio 1;
@.Zielort.inhalt.umlagern(@);
@.Zielort:=P_Holz_1;

when "P_Holz_1" then
Waituntil  @.Zielort.belegt prio 1;
@.Zielort.inhalt.umlagern(@);
@.Zielort:=P_Holz;

end;

@.Fahren;
end;

Sprich, das Fahrzeug hält bereits beim ersten Senor an und das Programm meldet sich ab da an regelmäßig mit Meldungen,
dass der Quelltext n.i.O. ist.


Vielen Dank für einen weiteren Tip im Voraus.

greetings

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

pom
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 182
Registriert: 25.08.2006

erstellt am: 23. Feb. 2009 07:51    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 Darius2001 10 Unities + Antwort hilfreich

Hallo,

also du brauchst drei Methoden.
Eine für die Route_ID
Eine für das Anfahren des Zielortes
Eine für das Umladen der BEs und festlegung des neuen Zielortes

Deswegen solltest du deine Methode Fahrsteuerung aufteilen:
Anfahren des Zielortes:

Code:

is
do

Inspect Route_ID

when 1, 3 then
@.Zielort:=P_Dome_1;

when 2, 4 then
@.Zielort:=P_Gurte_1;

end;


Umladen der BEs und festlegung des neuen Zielortes

Code:

is
i: integer;
do

@.Stop;
Inspect @.Zielort.Name

when "P_Dome_1" then
for i:=1 to 2 loop
  Waituntil  @.Zielort.belegt prio 1;
  @.Zielort.inhalt.umlagern(@);
next;
@.Zielort:=P_Dome;                     

when "P_Gurte 1" then
Waituntil  @.Zielort.belegt prio 1;
@.Zielort.inhalt.umlagern(@);
@.Zielort:=P_Holz_1;

when "P_Holz_1" then
Waituntil  @.Zielort.belegt prio 1;
@.Zielort.inhalt.umlagern(@);
@.Zielort:=P_Holz;

end;

@.Fahren;
end;


Du hattest einen Schreibfehler
when P_Dome_1 then   ---> when "P_Dome_1" then


Du darfst diebeiden MEthodenteile nicht hintereinander aufrufen, deswegen brauchst du insgesamt drei Methoden.


Grüße
Patrick

[Diese Nachricht wurde von pom am 23. Feb. 2009 editiert.]

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

Darius2001
Mitglied
Angestellter

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

Beiträge: 5
Registriert: 25.01.2009

erstellt am: 28. Feb. 2009 15:25    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

Moinsen,

das mit dem Trigger hat nicht so gut funktioniert, da ich nicht so genau wusste wo ich die 3 Methoden unter bringen soll... nun gut habe es jetzt so versucht:

Ablaufsteuerung 1:
SensorID : integer)
is
do
if @.zielort=P_Dome_1 and SensorID=1 then
  @.anhalten;
if @.belegt then
while not @.leer loop
@.pausieren(5);
@.inhalt.umlagern(Leergut); --  Hier wird das Leergut abgegeben!
end; --loop
@.zielort:=P_Gurte_1;
else -- fahrzeug ist leer, die Tour startet das erste mal!
while not @.voll loop
@.pausieren(5);
waituntil P_Dome_1.belegt prio 1;
P_Dome_1.inhalt.umlagern(@); -- Hier werden 2 Behälter aufgenommen
end; --while
@.zielort:=P_Dome;
end; -- if leer
end; -- if zielort p_dome_1
@.fahren;
end;

Hier stürzt das Programm ab, wenn ich von P_Dome1 mit dem Leergut wiederkomme und 2 Behälter an Bord habe und die an den Baustein "Leergut" übergebe möchte!

Ablaufsteuerung 41
(SensorID : integer)
is
i:integer
do
if @.zielort=P_Dome and SensorID=1 then
@.anhalten;
while not @.leer loop
@.pausieren(5);
@.inhalt.umlagern(P_Dome);
end; --loop

/*while not @.voll loop
@.pausieren(5);
waituntil P_Dome1.belegt prio 1;
P_Dome1.inhalt.umlagern(@);
end; --while*/

/*waituntil P_Dome1.belegt and P_Dome1.bereit prio 1;
P_Dome1.inhalt.umlagern(@);

waituntil P_Dome1.belegt and P_Dome1.bereit prio 1;
P_Dome1.inhalt.umlagern(@);*/

for i:=1 to 2 loop
  Waituntil  P_dome1.belegt and P_dome1.bereit prio 1;
P_dome1.inhalt.umlagern(@);
next;   
end; -- if zielort p_dome

@.zielort:=P_Dome_1;
@.fahren;
end;

Hier habe ich im Vorfeld über die init methode 2 BEs "Leergut" im Puffer P_dome1 hinterlegt, da er gleich in der ersten Tour 2 x Leergut mitnehmen soll... Die Methode "Ablaufsteuerung 41 " sorgt dafür, dass er die beiden BEs "Fördergut" beide abgibt ohne zu murren, nur nimmt er immer nur ein Be "Leergut" mit und ich habe das schon mit allen möglichen Anweisungen probiert (/*) und irgendwie weigert sich das Fahrzeug, 2 x Leergut mitzunehmen. 
(Eigenschaften Länge Fahrzeug 3.3, Länge Be 1,6)

Wie bekommt man das Fahrzeug eigentlich dazu einen Zielort anzufahren, der auf einen anderen Weg liegt (P_Holz). (Beim Mittleren Weg)

MFG
Darius

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