Hallo Forum,
habe mal wieder ein Problem, bei dem ich Hilfe gebrauchen könnte.
Weiß nicht, ob es am Robi (z.B. Vorlaufzeiger), der SPS oder dem Profibus (Latenz) liegt.
Zwei Robis sollen in den selben Bereich einfahren. Der eine legt Teile auf eine Zwischenablage/einen Puffer (hier vier Teilenester), der andere entnimmt sie von dort. Prinzip soll sein: [glow=red,2,300]Wer zuerst kommt malt zuerst...[/glow] Der entnehmende Roboter hat eine etwas schnellere Taktzeit und baut somit den Teilepuffer ab.
Momentanes Problem ist, beide denken manchmal sie kämen zuerst, nämlich dann, wenn sie scheinbar gleichzeitig die Einfahrfreigabe einholen (kann schon mal zufällig trotz ungleicher Taktzeit geschehen). Die Nester liegen so dicht neben einander, dass im ungünstigsten Fall eine Berührung der Roboter möglich ist!!!
Roboter-Programm für Robi1 (in der Struktur identisch für beide Roboter)
WAIT FOR Rob1_Freigabe_Bereich_1 CONT
OUT Rob1_Aus_Bereich_1 State=FALSE CONT
...weiterer Programmablauf im Bereich...
SYN OUT Rob1_Aus_Bereich_1 TRUE at END Delay=0
PTP Aus_Bereich_1 CONT
SPS-Programm für Robi 1 (ebenfalls für beide identisch)
UND Rob2_Aus_Bereich_1
= Rob1_Freigabe_Bereich_1
Das Problem ist wie gesagt die Gleichzeitigkeit. Wenn der eine etwas später als der andere den Bereich anfordert, geht alles sicher von statten.
Seht Ihr ein Problem in meiner Programmierung? Habt Ihr Hinweise für mich?
Vielen Dank!