122 lines
2.0 KiB
Plaintext
122 lines
2.0 KiB
Plaintext
&ACCESS RVO
|
|
&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 |