Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  umlagern mit benutzerdefinierte Attribut

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:  umlagern mit benutzerdefinierte Attribut (3498 mal gelesen)
zhang1jing4
Mitglied
studentin


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

Beiträge: 53
Registriert: 14.05.2013

Jing

erstellt am: 13. Jun. 2013 13:14    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,

ich habe zwei Teile t1 und t2 als BE. Für jede Teil habe ich eine benutzerdefnierte Attribut "LagerIn" definiert. Diese Attribut hat den Format object. Als Wert habe ich die gewünschte Baustein "t1" und "t2" auf den Netzwerk eingegeben.

Ich erzeuge die Teile nach eine Tabelle in Quelle.
Wenn die Teile sich in Einzelstation befindet, habe ich eine Ausgang Methode für die Einzelstation geschrieben. Der Code sieht so aus:

is
UmlagernZiel bject;
do

if ?.bereit and ?.fertig then

if ?.Inhalt /= void then 
 
  UmlagernZiel := ?.Inhalt.lagerIn;

  ?.Inhalt.umlagern(UmlagernZiel);

                end;
end;

end;


Wenn ich die Einzelstation mit Baustein t1 und t2 nicht verbinde, dann funktioniert es gar nicht.
Die BEs bleiben einfach in Einzelstation.
Wenn ich diesen Bausteinen verbinde, dann läuft es zwar, aber die BEs lagern nicht richtig.
Wenn ich diese Methode als Eingang Methode für t1 und t2 nehmen, ist es genau so.

Kann jemand mir sagen, was das Problem ist?

Vielen Dank!

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

Bon Simul
Mitglied
Simulant


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

Beiträge: 1250
Registriert: 08.08.2011

Plant Simulation 10.1, 11 ff Professional

erstellt am: 13. Jun. 2013 13:40    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 zhang1jing4 10 Unities + Antwort hilfreich

Sie müssen mit @ in der Ausgangssteuerung auf das Teil zugreifen, ? bezeichnet das Objekt, in dem die Methode als Steuerung eingetragen ist. In der Ausgangssteuerung müssen Sie auch nicht mehr fertig aufrufen, die Bearbeitung ist dann garantiert abgeschlossen.

Ihre Methode müsste wie folgt aussehen:

Code:

is
  UmlagernZiel:  object;
do

  UmlagernZiel := @.lagerIn;
  waituntil umlagernZiel.bereit prio 1;

  @.umlagern(UmlagernZiel);

end;



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

zhang1jing4
Mitglied
studentin


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

Beiträge: 53
Registriert: 14.05.2013

Jing

erstellt am: 13. Jun. 2013 14:28    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

Zitat:
Original erstellt von Bon Simul:
Sie müssen mit @ in der Ausgangssteuerung auf das Teil zugreifen, ? bezeichnet das Objekt, in dem die Methode als Steuerung eingetragen ist. In der Ausgangssteuerung müssen Sie auch nicht mehr fertig aufrufen, die Bearbeitung ist dann garantiert abgeschlossen.

Ihre Methode müsste wie folgt aussehen:

Code:

is
  UmlagernZiel:  object;
do

  UmlagernZiel := @.lagerIn;
  waituntil umlagernZiel.bereit prio 1;

  @.umlagern(UmlagernZiel);

end;




Vielen Dank!
Ich habe es ausprobiert.
Jetzt habe ich eine Fehlermeldung bekommen: bei Code waituntil umlagernZiel.bereit prio 1;
Ein Void kann keine Methode bereit emfangen.

Ich habe die ganze umlagern in eine schleife gesetzt:
if @ /= void then
...
end

bekomme aber immer noch die Fehlermeldung.

Stimmt es, dass ich für diese Methode die Einzelstation und UmlagernZiel Bausteinen verbinden muss?

Danke schön.

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

Bon Simul
Mitglied
Simulant


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

Beiträge: 1250
Registriert: 08.08.2011

Plant Simulation 10.1, 11 ff Professional

erstellt am: 13. Jun. 2013 16:17    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 zhang1jing4 10 Unities + Antwort hilfreich

Die Fehlermeldung bedeutet, dass das Teil keinen Wert bei lagerIn hat.

Sie müssen einen Haltepunkt in der Zeile UmlagernZiel := @.lagerIn; setzen und sich ansehen, ob ein Ziel im Teil gesetzt ist.

Und: Sie benötigen keine Kanten, wenn Sie eine Ausgangssteuerung zum Umlagern benutzen.

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

zhang1jing4
Mitglied
studentin


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

Beiträge: 53
Registriert: 14.05.2013

Jing

erstellt am: 11. Jul. 2013 12: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

Zitat:
Original erstellt von Bon Simul:
Die Fehlermeldung bedeutet, dass das Teil keinen Wert bei lagerIn hat.

Sie müssen einen Haltepunkt in der Zeile UmlagernZiel := @.lagerIn; setzen und sich ansehen, ob ein Ziel im Teil gesetzt ist.

Und: Sie benötigen keine Kanten, wenn Sie eine Ausgangssteuerung zum Umlagern benutzen.


Problem gelöst!
Vielen Dank!

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