Cancel
Showing results for 
Search instead for 
Did you mean: 

BEs gleichmäßig auf BAZ verteilen

Creator
Creator

Hallo,

 

ich habe folgende Situation (siehe Anhang):

 

- 3 Bearbeitungszentren parallel geschaltet

- alle drei über Drehplatten mit Hauptlinie verbunden

 

Was muss ich nun tun, um bspw. der ersten Drehplatte zu sagen, dass sie das erste BAZ versorgen soll sobald dieses frei ist? Entsprechend aber auch, dass sie weiterschickt, solange das erste BAZ eben belegt ist?

 

Brauche ich hierzu die Flusssteuerung? Ich habe was das programmieren angeht leider noch kaum Erfahrung...

 

Danke schonmal!

9 REPLIES 9

Re: BEs gleichmäßig auf BAZ verteilen

Siemens Phenom Siemens Phenom
Siemens Phenom

Hallo,

 

so etwas lässt sich auch ohne Flusssteuerung über Simtalk programmieren, im Anhang ist ein Modell, welches so eine Situation beispielhaft implementiert.

Kind regards,

Igor
------------------------------------------------------------------------------------------------------
Did you like the answer? Then click the Thumbs Up button.
Did the answer solve your problem? Then accept the answer as solution


Re: BEs gleichmäßig auf BAZ verteilen

Creator
Creator

Danke für das Beispiel! Ich habe es momentan mit einem Umsetzer gelöst:

 

param EingangsNr: integer
if Kalttest2.belegt=false
 ?.AusgangFürBE := 3 /* Nummer des Ausgangs */
else
 ?.AusgangFürBE := 0
end

 

Das funktioniert an sich perfekt. Nun habe ich mein Modell dahingehend erweitert, dass bereits bearbeitete Teile nicht in einer Senke hinter dem BAZ verschwinden sondern zurück auf das Rohteilband kommen (so ist es in der Realität hier auch).

 

Einziges Problem ist jetzt, dass ich den folgenden Umsetzern mitteilen muss, dass bereits bearbeitete Teile durchgeschlust werden. Also quasi:

 

param EingangsNr: integer
if Kalttest2.belegt=false and Teil war noch in keinem BAZ
 ?.AusgangFürBE := 3
else
 ?.AusgangFürBE := 0
end

 

Wie lautet denn hier nun die korrekte Schreibweise?

Re: BEs gleichmäßig auf BAZ verteilen

Siemens Phenom Siemens Phenom
Siemens Phenom

Hallo,

 

hierzu könnte man eine boolesche benutzerdefiniert Variable einführen wie "bearbeitet" für die BE Klasse. Dieses Attribut kann dann mit "false" als Standardwert gesetzt werden und zu "true" gesetzt werden in der Eingangssteuerung einer Station. Das würde dann in etwa so aussehen

 

param EingangsNr: integer
if Kalttest2.belegt=false and bearbeitet=false
?.AusgangFürBE := 3
else
 ?.AusgangFürBE := 0
end

 

Kind regards,

Igor
------------------------------------------------------------------------------------------------------
Did you like the answer? Then click the Thumbs Up button.
Did the answer solve your problem? Then accept the answer as solution


Re: BEs gleichmäßig auf BAZ verteilen

Creator
Creator

Super Idee!

 

Das Ändern der Variable am Eingang des BAZ habe ich jetzt hiermit gemacht.

 

var index: integer
index := .BEs.Fördergut.holeAttrNr ("bearbeitet")
.BEs.Fördergut.setzeAttrWert (index,true)

Das funktioniert auch. Allerdings nur für das erste Teil. Danach werden alle Teile ohne Bearbeitung durchgeschleust weil die Variable "bearbeitet" für das BE dann true ist Smiley Sad

 

Scheint als muss ich konkreter angeben, dass nur das Teil aus dem BAZ auf true gesetzt wird...

Re: BEs gleichmäßig auf BAZ verteilen

Siemens Phenom Siemens Phenom
Siemens Phenom

Deswegen sollte dieses Attribut auch nur für das aktuell in die Station eintretende BE geändert werden, jedoch nicht für die gesamte Klasse wie es in dem Code geschieht. Hier wäre etwas Einfaches wie der folgende Code als Eingangssteuerung einer Station schon ausreichend

 

@.bearbeitet:=true

 

Kind regards,

Igor
------------------------------------------------------------------------------------------------------
Did you like the answer? Then click the Thumbs Up button.
Did the answer solve your problem? Then accept the answer as solution


Re: BEs gleichmäßig auf BAZ verteilen

Creator
Creator

Perfekt! Vielen Dank!

Re: BEs gleichmäßig auf BAZ verteilen

Creator
Creator

Guten Morgen,

 

gerade habe ich zufällig gemerkt, dass meine Sortierung nach bearbeitet oder nicht bearbeitet doch nicht funktioniert. Mit dem nachfolgenden Code werden alle BEs im Umsetzer zum selber Ausgang geschickt...

param EingangsNr: integer
if .BEs.Fördergut.bearbeitet=true
	?.AusgangFürBE := 0
else
	?.AusgangFürBE := 1
end

Scheinbar beziehe ich mich hier noch auf das allgemeine BE und nicht auf das sich tatsächlich auf dem Umsetzer befindliche... wo steckt mein Fehler?

 

 

Vielen Dank!

Re: BEs gleichmäßig auf BAZ verteilen

Creator
Creator
param EingangsNr: integer
if @.bearbeitet=true
	?.AusgangFürBE := 0
else
	?.AusgangFürBE := 1
end

So funktionierts.

 

Re: BEs gleichmäßig auf BAZ verteilen

Siemens Phenom Siemens Phenom
Siemens Phenom

Hallo,

 

genau, der Code Abschnitt

.BEs.Fördergut.bearbeitet=true

bezieht sich wieder auf die Klasse, nicht auf das Objekt selbst.

 

Kind regards,

Igor
------------------------------------------------------------------------------------------------------
Did you like the answer? Then click the Thumbs Up button.
Did the answer solve your problem? Then accept the answer as solution