Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Störung erzeugen

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:  Störung erzeugen (1431 / mal gelesen)
alexandra123
Mitglied



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

Beiträge: 21
Registriert: 06.08.2020

erstellt am: 26. Okt. 2020 16:24    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,

ich habe gerade ein kleines Problem, und verstehe selbst gerade nicht warum ich das nicht gelöst bekomme.

Ich möchte auf Basis einer vorliegenden Tabelle Störungen (Wartungsarbeiten) erzeugen. ierfür habe ich folgenden Befehl gefunden:

Code:
<Pfad>.Störungen.erzeugeStörung(Name:string [, Verfügbarkeit/Abstand:real oder string, MTTR/Dauer:any, Bezug:string, Start:any, Stop:any, Aktiv:boolean])

Nur verstehe ich gerade nicht, wie ich dies nun wirklich eintragen muss.

Ich habe den Name, Dauer und Start der Wartung in der Tabelle und zusätzlich den Pfad der Station.
Bsp.:
Name ist in der Variable Wartungsname
Start ist in der Variable Wartungsbeginn
Dauer ist in der Variable Wartungsdauer hinterlegt.
Pfad der MontageStation ist in der Variable Pfad hinterlegt (.Modell.Montagestaton1)

Code:
Pfad.Störungen.erzeugeStörung(Name:Wartungsname [, Verfügbarkeit/Abstand:real oder string, MTTR/Dauer:Wartungsdauer, Start:Wartungsbeginn, Aktiv:boolean])

Das Erzeugen der Störung an sich klappt auch (wenn ich den hinteren Teil weglasse), jedoch weiß ich nicht wie ich genau die Angaben machen muss, damit Verfügbarkeit ausgeschaltet wird und Start und Dauer eingetragen werden. Bekomme hier immer einen Syntaxfehler.

Noch eine kleine andere Frage: Ich möchte damit sich mein generiches Modell aufbaut innerhalb einer Methode am Ende direkt eine nächste Methode ausführen. Hierfür fehlt mir aber ein einfacher Befehl wie MethodeAufrufen(PfadderMethode). Habe das mit MethAufr und ausführenIn versucht aber klappt irgendwie nicht und weiß nicht was ich falsch mache.

Vielen Dank für eure Hilfe! 

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: 26. Okt. 2020 18:09    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 alexandra123 10 Unities + Antwort hilfreich

Hallo Alexandra,

Zitat:
Ich habe den Name, Dauer und Start der Wartung in der Tabelle und zusätzlich den Pfad der Station.

das ist keine Verteilung. damit wozu etwas nutzen, was Verteilung abbildet.

Beispielsweise eine Methode und Tabelle in Station hinterlegen. In Tabelle die Daten kopieren.
Methode in Init aktivieren und mit waituntil auf Zeitpunkt "Start" warten. dann mit MethAufr diese Methode wieder aufrufen. (Vorsicht Zeitpunkte "Start" müssen hierfür unique sein!)

Code:

Station.gestört := true;
Station.entstörtIn(deineDauer);

Code:
Habe das mit MethAufr und ausführenIn versucht aber klappt irgendwie nicht und weiß nicht was ich falsch mache

MethAuf und ausführenIn sind befehle, welche dieses Event in die Ereignisliste eintragen. Deise gehen nur! wenn Sumulation läuft.

Wenn die Simulation nicht gestartet ist, dann die Methoden direkt aufrufen:

Code:
Methode();
Methode(Param);

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

alexandra123
Mitglied



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

Beiträge: 21
Registriert: 06.08.2020

erstellt am: 26. Okt. 2020 19:05    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


Montage1Stoerungen.PNG

 
Hallo Nadin,

also das mit der Methode aufrufen funktioniert!  Man muss nur wissen wie.....

Zu den Wartungen habe ich jetzt aber nochmal eine Frage:
Also ich verstehe deinen Ansatz und werde das wohl auch so machen wenn ich das nicht wie geplant hinbekomme.
Aber was spricht dagegen das so zu machen wie ich das geplant hatte?
Würde dann so aussehen wie im Bild anbei. (Wartung_1)

Ich erzeuge also die Wartungen bereits im Voraus. Das würde ich gerne so machen, dass eben die Verfügbarkeit bei Wartung_1 deaktiviert ist (wie man es auch anklicken kann wenn man die Störung bearbeitet) und eben Start und Dauer eingetragen sind.

Code:
......for y := 1 to .Benutzerobjekte.t_Wartung.YDim
WartungsID := .Benutzerobjekte.t_Wartung["WartungsID", y1]
Wartungsbeginn := str_to_time(.Benutzerobjekte.t_Wartung["Wartungsbeginn", y1])
Wartungsdauer := str_to_time(.Benutzerobjekte.t_Wartung["Wartungsdauer", y1])
RessourceName := .Benutzerobjekte.t_Wartung["Ressource_Name", y1]

StörungsBEZ := to_str("Wartung_" + WartungsID)

if StationName = RessourceName

MontageNetzStationObject.Störungen.erzeugeStörung(StörungsBEZ)
                StörungsPfad := str_to_obj(to_str(MontageNetzStationObject) + ".Störungen." + to_str(StörungsBEZ)
                StörungsPfad.Start := Wartungsbeginn
......

Hier verstehe ich eins nicht. Ich bekomme die Meldung

Code:
.SimulationModell.Netzw_1.Montage1.Störungen.Wartung_1
(StörungsPfad) ist kein gültiger Pfad.
Habe dann auch mal bisschen rumprobiert, diese Meldung kommt nur durch dieses Wartung_1 am Ende. Die Wartung_1 wurde aber zu dem Zeitpunkt schon in der Montagestation als Störung erzeugt.

Wenn ich das Ganze direkt in den Code eingebe, also 

Code:
.SimulationModell.Netzw_1.Montage1.Störungen.Wartung_1.Start := Wartungsbeginn
funktioniert es.
Da es jedoch mehrere Wartungen sind, die mit Hilfe der Schleife erzeugt werden, bringt mir das nichts.

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: 26. Okt. 2020 20:12    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 alexandra123 10 Unities + Antwort hilfreich

Zitat:
Aber was spricht dagegen das so zu machen wie ich das geplant hatte?
Würde dann so aussehen wie im Bild anbei. (Wartung_1)

Nichts, soweit alles richtig eingetragen ist  ;)  . Aber "so wie im Bild" wird es nicht aussehen; Verfügbarkeit 100% heißt keine Störrung!

Zitat:
StörungsPfad := str_to_obj(to_str(MontageNetzStationObject) + ".Störungen." + to_str(StörungsBEZ)

das ist kein Objekt. Deshalb die Fehlermeldung. Beispielsweise mit execute(..) lösbar.

Auch kannst du beispielsweise die Störungstabelle holen und setzen:

Code:
var _tab : table;
_tab.create;
Einzelstation.Störungen.holeTabelle(_tab);
_tab.schreibeZeile(1,_tab.ydim+1,"StoerTest",true, "Konst", "1:00","Konst","1:50",void,void,"Konst","50","Konst","0","Simulationszeit");
Einzelstation.Störungen.setzeTabelle(_tab);

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

alexandra123
Mitglied



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

Beiträge: 21
Registriert: 06.08.2020

erstellt am: 27. Okt. 2020 09:07    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

Wie würde denn die execute() Anweisung denn in meinem Fall aussehen?
Verstehe die Erklärung von execute() in der Hilfe nicht so ganz.

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

alexandra123
Mitglied



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

Beiträge: 21
Registriert: 06.08.2020

erstellt am: 04. Nov. 2020 11:32    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

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: 04. Nov. 2020 20:24    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 alexandra123 10 Unities + Antwort hilfreich


executeExample.jpg

 
beispiel im Bild

------------------
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

alexandra123
Mitglied



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

Beiträge: 21
Registriert: 06.08.2020

erstellt am: 05. Nov. 2020 14:33    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

Dankeschööön! 

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