Hallo zusammen,
ich möchte mit einem Bügellaser von Balluff die Länge meines Werkzeugs messen, in diesem Falle einen Fräser, um dann die gemessene Länge in den TCP eines temporären Tools zu verrechnen.
Es geht auch nur um die Länge in Z Richtung des Tools.
Ich habe eine SollPosition mit dem bekannten TCP am Laser erstellt, von diesem fahre ich dann in Z Richtung mit dem SearchL Befehl in den Laser. Dies passiert 4 mal mit immer langsam werdenden Geschwindigkeiten. Allerdings zeigt mir das ProduktivSystem immer wieder unreproduzierbare Suchwarnungen an unterschiedlichen Stellen.
Zum Setup: Laser - Balluff BGL80; E/A Wago DeviceNet,
Code
PROC newtest()
movel reltool(pTCP_Z_SOLL,0,0,-200), v1000, z1, tMill65\WObj:=wobj0;
movel reltool(pTCP_Z_SOLL,0,0,-50),v200,z1,tMill65\wobj:=wobj0;
SearchL\Sup, R2_di_tool_Lenght\Posflank, p1, reltool(pTCP_Z_SOLL,0,0,50), v80, tMill65\WObj:=wobj0;
SearchL\Sup, R2_di_tool_Lenght\Negflank, p2, reltool(pTCP_Z_SOLL,0,0,-50), v80, tMill65\WObj:=wobj0;
avg{1}:=(p1.trans.z+p2.trans.z)/2;
SearchTarget{1}.trans.z:=(pTCP_Z_SOLL.trans.z+avg{1})/2;
SearchL\Sup, R2_di_tool_Lenght\Posflank, p3, reltool(SearchTarget{1},0,0,25), v50, tMill65\WObj:=wobj0;
SearchL\Sup, R2_di_tool_Lenght\Negflank, p4, reltool(SearchTarget{1},0,0,-20), v50, tMill65\WObj:=wobj0;
avg{2}:=(p3.trans.z+p4.trans.z)/2;
SearchTarget{2}.trans.z:=(avg{1}+avg{2})/2;
SearchL\Sup, R2_di_tool_Lenght\Posflank, p5, reltool(SearchTarget{2},0,0,20), v25, tMill65\WObj:=wobj0;
SearchL\Sup, R2_di_tool_Lenght\Negflank, p6, reltool(SearchTarget{2},0,0,-15), v25, tMill65\WObj:=wobj0;
avg{3}:=(p5.trans.z+p6.trans.z)/2;
SearchTarget{3}.trans.z:=(avg{2}+avg{3})/2;
movel reltool(SearchTarget{3},0,0,-5),v5,fine, tMill65\WObj:=wobj0;
waittime\inpos ,0.5;
SearchL\Sup, R2_di_tool_Lenght\Posflank, p7, reltool(SearchTarget{3},0,0,5), v5, tMill65\WObj:=wobj0;
waittime\inpos ,0.5;
SearchL\Sup, R2_di_tool_Lenght\Negflank, p8, reltool(SearchTarget{3},0,0,-10), v5, tMill65\WObj:=wobj0;
avg{4}:=(p7.trans.z+p8.trans.z)/2;
SearchTarget{4}.trans.z:=(p7.trans.z+p8.trans.z)/2;
ENDPROC
Alles anzeigen
Kann es an der Eingangskarte liegen (Lag)?