Safety
From IkuhluWiki
S-a-f-e-t-y
Our safety system is based loosely on the Defense readiness system that the US uses. Defcon Wiki
Defcon 3: Our lowest state of readiness: In this state the machine will cut with safety doors open up at up to 22° of A angle.
Defcon 2: More safety features to enable cutting at a greater angle: In this state the machine will cut with safety doors shut all the way up to 52° of A angle.
Defcon 1: Requires all safety features available on the machine to be operational. This state will allow cutting to 90° if supported by the machine and Safety doors/mats/curtains are all in place.
Contents |
Default Safety PLC
This is the default plc generated from Ikuhlu.
The only way to clear this is by putting the machine into E-Stop
By default, clearing a fault will require cycling e-stop.
;Automatically Generated by Ikuhlu
;******************** PLC 30 ***** S-A-F-E-T-Y (Dance) Check ******
#DEFINE SafetyType P6950
#DEFINE AAngleLimit P6951
#DEFINE AAngle P5120
#DEFINE Door1 M8
#DEFINE Door2 M10
#DEFINE Door3 M12
#DEFINE Door4 M14
#DEFINE Mat1 M16
#DEFINE Mat2 M18
#DEFINE CheckAAngle 4
#DEFINE CheckMats 2
#DEFINE CheckDoors 1
CLOSE END GATHER DELETE GATHER DELETE TRACE
OPEN PLC 30 CLEAR
IF(SafetyType = 0 OR SafetyType & CheckAAngle = CheckAAngle)
IF(I{0}00=1) ;If A is active, puts the correct A motor number
IF(ABS(AAngle) > ABS(AAngleLimit))
P50 = P50|1
ENDIF
ENDIF
ENDIF
IF(SafetyType = 0 OR SafetyType & CheckDoors = CheckDoors)
IF((Door1 & Door2 & Door3 & Door4) = 0)
P50 = P50|1
ENDIF
ENDIF
IF(SafetyType = 0 OR SafetyType & CheckMats = CheckMats)
IF((Mat1 | Mat2) != 0)
P50 = P50|1
ENDIF
ENDIF
CLOSE
P230 = 1.001; Revision number
Some Notes
With a proper custom fault setup PLC 30 can be used to define what happens at each of the fault levels. For instructions on how Custom Faults, follow the link.
Sample 1: Fully active faults: With this setup the machine will fault even when not cutting a part program. If a fault condition occurs in a part program, it can't be recovered gracefully.
Be aware that you could already have custom faults, priorities and numbers could change.
Faults.txt
1:100:0:Safe Angle Exceeded:#FFFF00:Clear 2:101:0:Safety Doors Open:#FF8C00:Clear 3:102:0:Safety Doors Open or On Safety Mats:#FF4500:Clear
Custom PLC 30 - All the time
This PLC 30 will run when a program is cutting, and no program is cutting.
A clear button will also appear if the Custom Faults were setup for such.
;Automatically Generated by Rob
;******************** PLC 30 ***** S-A-F-E-T-Y (Dance) Check ******
#DEFINE SafetyType P6950
#DEFINE AAngleLimit P6951
#DEFINE AAngle P5120
#DEFINE Door1 M8
#DEFINE Door2 M10
#DEFINE Door3 M12
#DEFINE Door4 M14
#DEFINE Mat1 M16
#DEFINE Mat2 M18
#DEFINE CheckAAngle 4
#DEFINE CheckMats 2
#DEFINE CheckDoors 1
CLOSE END GATHER DELETE GATHER DELETE TRACE
OPEN PLC 30 CLEAR
IF(SafetyType = 0 OR SafetyType & CheckAAngle = CheckAAngle)
IF(I{0}00=1) ;If A is active, puts the correct A motor number
IF(ABS(AAngle) > ABS(AAngleLimit))
P52 = P52|1
ENDIF
ENDIF
ENDIF
IF(SafetyType = 0 OR SafetyType & CheckDoors = CheckDoors)
IF((Door1 & Door2 & Door3 & Door4) = 0)
P52 = P52|2
ENDIF
ENDIF
IF(SafetyType = 0 OR SafetyType & CheckMats = CheckMats)
IF((Mat1 | Mat2) != 0)
P52 = P52|4
ENDIF
ENDIF
CLOSE
P230 = 99.001; Revision number
Custom PLC 30 - For running programs only
This set will only worry about checking safety conditions if a program is running With this setup the machine will only fault when a part program is in motion. If a fault condition occurs in a part program, it will pause and once the fault condition is no longer met, and the fault is cleared, a part can continue.
Faults.txt
1:100:3:Safe Angle Exceeded:#FFFF00:Clear 2:101:3:Safety Doors Open:#FF8C00:Clear 3:102:3:Safety Doors Open or On Safety Mats:#FF4500:Clear
Plc 30:
Custom PLC 30
;Automatically Generated by Rob
;******************** PLC 30 ***** S-A-F-E-T-Y (Dance) Check ******
#DEFINE SafetyType P6950
#DEFINE AAngleLimit P6951
#DEFINE AAngle P5120
#DEFINE Door1 M8
#DEFINE Door2 M10
#DEFINE Door3 M12
#DEFINE Door4 M14
#DEFINE Mat1 M16
#DEFINE Mat2 M18
#DEFINE CheckAAngle 4
#DEFINE CheckMats 2
#DEFINE CheckDoors 1
#DEFINE PartRunning M5180 ; Added by Rob
CLOSE END GATHER DELETE GATHER DELETE TRACE
OPEN PLC 30 CLEAR
IF(PartRunning=1)
IF(SafetyType = 0 OR SafetyType & CheckAAngle = CheckAAngle)
IF(I{0}00=1) ;If A is active, puts the correct A motor number
IF(ABS(AAngle) > ABS(AAngleLimit))
P52 = P52|1
ENDIF
ENDIF
ENDIF
IF(SafetyType = 0 OR SafetyType & CheckDoors = CheckDoors)
IF((Door1 & Door2 & Door3 & Door4) = 0)
P52 = P52|2
ENDIF
ENDIF
IF(SafetyType = 0 OR SafetyType & CheckMats = CheckMats)
IF((Mat1 | Mat2) != 0)
P52 = P52|4
ENDIF
ENDIF
ENDIF
CLOSE
P230 = 99.001; Revision number
