Safety

From IkuhluWiki

Jump to: navigation, search

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.

File:SafetyLevelChange.py


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
Personal tools