Hallo Forum,
Im Rahmen meiner Abschlussarbeit soll an einem Zylinder 3 Punkte auf dessen Kreisbogen vermessen werden. Und damit der Kreismittelpunkt trianguliert werden.
Leider stellen sich mir hier ein paar Probleme, ich hoffe das mir vielleicht jemand weiterhelfen kann.
SR10 R1420
KRC4 Compact
Version 8.3.39
Über eine EK1100 wird wird das Feldbus Signal eines Lasers gespeist. Dieser misst Distanzen in µm und gibt diese in 32Bit aus. Diese 32Bit sind mit dem Digitalen Eingang der Steuerung mit IN[1] to IN[32] verschalten. Siehe Bild.
Realisiert werden soll eine Fahrt von Punkt 1 zu Punkt 2, welche unterbrochen wird sobald der Laser einen Wert über oder unterschreitet.
Soweit so gut, laut Handbuch lösen Interrupts bei Eingängen mit steigender Flanke, also änderung eines bool aus.
Der Laser spuckt aber nur DINT aus...
Hab hier mal ein Programm, wie ich es probiert habe.
SRC FILE:
&ACCESS RVP
&REL 2
DEF Interrupt_Test ( )
SIGNAL Laser_Roh_Signal $IN[1] TO $IN[32]
$IN[100] = FALSE
;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART = FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=FHOME
BAS (#PTP_PARAMS,100 )
$H_POS=XHOME
PTP XHOME
;ENDFOLD
INTERRUPT DECL 10 WHEN $IN[100] == TRUE DO stoppen( )
INTERRUPT ON 10
$VEL.CP = 2.0
$ACC.CP = 2.0
$VEL.ORI1 = 150
$VEL.ORI2 = 200
$ACC.ORI1 = 150
$ACC.ORI2 = 200
LIN pStart_Messung
LIN pEnde_Messung
;;Wie lasse ich das gleichzeitig ausführen während der Programmzeiger die Bewegung ausführt?
IF Laser_Roh_Signal < 200*1000 THEN
$IN[100] = TRUE
ENDIF
INTERRUPT OFF 10
;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART = FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=FHOME
BAS (#PTP_PARAMS,100 )
$H_POS=XHOME
PTP XHOME
;ENDFOLD
END
---------------------------------------------------
DEF stoppen( )
BRAKE
INTERRUPT OFF 10
Saved_Interrupt_Pos = $POS_INT
RESUME
END
Display More
DAT FILE:
&ACCESS RVP
&REL 2
DEFDAT Interrupt_Test
EXT BAS (BAS_COMMAND :IN,REAL :IN )
DECL E6POS Saved_Interrupt_Pos={X 0.0}
DECL E6POS pStart_Messung={X 641.801697,Y -735.139648,Z 1005.21143,A 73.1313934,B -81.7891769,C 57.5627899,S 6,T 26,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
DECL E6POS pEnde_Messung={X 953.273560,Y -208.828293,Z 1005.21143,A 109.653061,B -81.7891769,C 57.5627937,S 6,T 26,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
ENDDAT
Display More
Kann ich das in mit KRL realsieren? Oder brauche ich eine extra SPS die mir einen Ausgang schaltet je nachdem was der Sensor für Werte liefert?
Wenn ja, könnte ich die Soft SPS PLC benutzen?
Vielen Dank für jeden Rat!