Files
6040-003/KUKA/KRC/R1/TP/BrakeTest/BrakeTestReq.src

122 lines
2.0 KiB
Plaintext

&ACCESS RVO5
&REL 1
&COMMENT BrkTst-main task
&PARAM EDITMASK = *
&PARAM DISKPATH = TP/BrakeTest
DEF BRAKETESTREQ(AxesBitMask: IN)
;BRAKETESTREQ
;fold {h}
INT Idx, Key, AxesBitMask
BOOL Test_Ende
BOOL BraketestForce
BraketestForce=false
IF gBraketestForce THEN
BraketestForce=true
ENDIF
gBraketestForce=false
ON_ERROR_PROCEED
AxesBitMask=AxesBitMask*1
IF ($ERR.Number<>0) THEN
AxesBitMask=-1
ERR_CLEAR($ERR)
ELSE
ERR_RAISE($ERR)
ENDIF
IF Varstate("$pro_ip.si01.name[]")==#declared THEN ;program selected
MsgDialog(Key, "DlgPeformManuallyBrakeTest", brakeTestMdbName[], , "Cancel", "GoToPark", "BTman",,,,,FALSE)
SWITCH Key ;dialogue answer
CASE 5
BraketestForce=TRUE
CASE 6
BrakeTestStart()
BraketestError()
CASE 7
Return
DEFAULT
Return
ENDSWITCH
ELSE ;cyclic call
IF NOT($BRAKETEST_REQ_INT) AND NOT(BraketestForce) THEN
Return
ENDIF
ENDIF
Test_Ende=false
RobotBrkState=#BT_UNTESTED
BrakeTestStart()
BAS (#INITMOV,0 )
repeat
PTP $AXIS_ACT
RobotBrkState = Test_BRAKE(AxesBitMask, BraketestForce)
SWITCH RobotBrkState
CASE #BT_WARNING,#BT_EXCESSIVE, #BT_MAXUNKNOWN, #BT_READY
CountResultUnknown = 0
Test_Ende = TRUE
CASE #BT_ERROR
BraketestError()
CASE #BT_UNKNOWN
Test_Ende = BraketestUnknown()
CASE #BT_UNTESTED
Test_Ende = TRUE
ENDSWITCH
until Test_Ende
BrakeTestBack()
END
DEF BraketestError()
INT Key
Key = 0
MsgDialog(Key, "BT_BRAKE_ERROR", brakeTestMdbName[]," ", "GoToPark",,,,,,,FALSE)
BrakeTestPark()
WAIT FOR TRUE
repeat
MsgNotify("ParkPositionReached", brakeTestMdbName[])
halt
until false
END
DEFFCT BOOL BraketestUnknown()
INT Key
Key=0
CountResultUnknown = CountResultUnknown + 1
IF (CountResultUnknown >= MaxCountResultUnknown) THEN
MsgDialog(Key, "BT_BRAKE_UNKNOWN", brakeTestMdbName[]," ", "TryAgain", "Cancel",,,,,,FALSE)
IF Key==7 then
Return FALSE
ELSE
Return TRUE
ENDIF
ELSE
Return TRUE
ENDIF
ENDFCT
;endfold