lineare Bewegung automatisch laufen lassen (mit Codesys)
Verfasst: 13 Dez 2023, 20:38
hallo,
durch zwei Elemente "Lineare Bewegung" simuliere ich Roboterarm-Bewegung in einer Ebene (XY, von oben gesehen). Dafür habe ich die Möglichkeit durch Eigenschaft "Positionierung" zum ersten Halt in XY-Koordinaten zu Steuern verwendet. Im ersten Schritt funktioniert das auch, wenn zur ersten Position gesteuert werden muss. Dann ändere ich "Positionsvorgabe" und schalte wieder "Positionierung aktivieren" und "Positionsdaten übernehmen" auf TRUE. Die neue Position wird übernommen, aber das Objekt bewegt sich nicht, wenn schon auch die Variablen mit PLC-Lab synchronisiert wurden. Woran könnte das liegen?
---> hier wird zweite Position eingestellt, wenn die erste erreicht wurde:
IF GVL.ST1_RB_PositionReachedX AND GVL.ST1_RB_PositionReachedY THEN
GVL.ST1_RB_xAutomaticMove := FALSE;
GVL.ST1_RB_StartMove := FALSE;
GVL.ST1_RB_iMagnet:=1;
GVL.ST1_RB_iGoToX := 132; // Koordinaten vom 2. Punkt
GVL.ST1_RB_iGoToY := 220;
Robot_Schritt :=2;
END_IF
GVL.ST1_RB_StartMove := TRUE;
GVL.ST1_RB_xAutomaticMove := TRUE;
durch zwei Elemente "Lineare Bewegung" simuliere ich Roboterarm-Bewegung in einer Ebene (XY, von oben gesehen). Dafür habe ich die Möglichkeit durch Eigenschaft "Positionierung" zum ersten Halt in XY-Koordinaten zu Steuern verwendet. Im ersten Schritt funktioniert das auch, wenn zur ersten Position gesteuert werden muss. Dann ändere ich "Positionsvorgabe" und schalte wieder "Positionierung aktivieren" und "Positionsdaten übernehmen" auf TRUE. Die neue Position wird übernommen, aber das Objekt bewegt sich nicht, wenn schon auch die Variablen mit PLC-Lab synchronisiert wurden. Woran könnte das liegen?
---> hier wird zweite Position eingestellt, wenn die erste erreicht wurde:
IF GVL.ST1_RB_PositionReachedX AND GVL.ST1_RB_PositionReachedY THEN
GVL.ST1_RB_xAutomaticMove := FALSE;
GVL.ST1_RB_StartMove := FALSE;
GVL.ST1_RB_iMagnet:=1;
GVL.ST1_RB_iGoToX := 132; // Koordinaten vom 2. Punkt
GVL.ST1_RB_iGoToY := 220;
Robot_Schritt :=2;
END_IF
GVL.ST1_RB_StartMove := TRUE;
GVL.ST1_RB_xAutomaticMove := TRUE;