Autor
|
Thema: Störung erzeugen (1433 / mal gelesen)
|
alexandra123 Mitglied
Beiträge: 21 Registriert: 06.08.2020
|
erstellt am: 26. Okt. 2020 16:24 <-- editieren / zitieren --> Unities abgeben:
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.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 26. Okt. 2020 18:09 <-- editieren / zitieren --> Unities abgeben: Nur für alexandra123
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
Beiträge: 21 Registriert: 06.08.2020
|
erstellt am: 26. Okt. 2020 19:05 <-- editieren / zitieren --> Unities abgeben:
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.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 26. Okt. 2020 20:12 <-- editieren / zitieren --> Unities abgeben: Nur für alexandra123
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
Beiträge: 21 Registriert: 06.08.2020
|
erstellt am: 27. Okt. 2020 09:07 <-- editieren / zitieren --> Unities abgeben:
|
alexandra123 Mitglied
Beiträge: 21 Registriert: 06.08.2020
|
erstellt am: 04. Nov. 2020 11:32 <-- editieren / zitieren --> Unities abgeben:
|
nadin1223 Mitglied Ing.
Beiträge: 938 Registriert: 29.03.2016
|
erstellt am: 04. Nov. 2020 20:24 <-- editieren / zitieren --> Unities abgeben: Nur für alexandra123
|
alexandra123 Mitglied
Beiträge: 21 Registriert: 06.08.2020
|
erstellt am: 05. Nov. 2020 14:33 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|