Hej,
Steuerung KR C1
SW 2.34
Ich versuche mich gerade daran einen Kollisionsüberwachung mittels $TORQ_DIFF hin zu bekommen.
Mein Gedanke war, die Werte in der SPS.sub zu überwachen und mir da bei Überschreiten eine Variable auf 1 setzen zu lassen.
Im eigentlichen Programm soll dann mittel. Interrupt die Bewegung unterbrochen und zurück Positioniert werden.
Code in der SPS.sub:
IF ($TORQ_DIFF[1]>15) THEN
B_COLLISION=TRUE
ENDIF
IF ($TORQ_DIFF[2]>15) THEN
B_COLLISION=TRUE
ENDIF
IF ($TORQ_DIFF[3]>15) THEN
B_COLLISION=TRUE
ENDIF
IF ($TORQ_DIFF[4]>12) THEN
B_COLLISION=TRUE
ENDIF
IF ($TORQ_DIFF[5]>15) THEN
B_COLLISION=TRUE
ENDIF
IF ($TORQ_DIFF[6]>15) THEN
B_COLLISION=TRUE
ENDIF
Die Interrupt Deklaration im HP sieht wie folgt aus:
INTERRUPT DECL 10 WHEN B_COLLISION DO INT_KOL ( )
Nun habe ich folgendes Problem. So wie es beschrieben ist klappt es nicht. Er fährt trotz Kollision seinen Weg.
Wenn anstatt B_COLLISION nun ein Eingang abgefragt wird, und ich diesen setze wird die Rückpositionierung durchgeführt.
Ich kann mir nicht erklären warum das so ist.
Schöne Gruß
Robotiker