-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathvacuum_control.comp
52 lines (47 loc) · 1.74 KB
/
vacuum_control.comp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/********************************************************************************
vacuum_control.comp
*********************************************************************************/
component vacuum_control "This component services the dust vacuum";
pin in bit cool_mist_in "if high, start mist";
pin in bit cool_flood_in "if high, start flood";
pin in bit vac_arm_in "if high, arm vacuum";
pin in float spind_rpm_in "reads the spindle RPM.";
pin in float trig_rpm_in "RPM that turns on the vacuum";
pin in bit laser_mode_in "if high, laser mode active";
pin out bit cool_mist_out "turn on mist coolant";
pin out bit cool_flood_out "turn on flood coolant";
pin out bit vac_out "turn on vacuum";
pin out bit laser_air_out "turn on laser air";
function _;
author "Travis Farmer";
license "GPL";
;;
FUNCTION(_) {
if (laser_mode_in == 1) {
if (cool_mist_in == 1 || cool_flood_in ==1) {laser_air_out = 1;}
else {laser_air_out = 0;}
} else {
laser_air_out = 0;
if (vac_arm_in == 1) {
cool_mist_out = 0;
cool_flood_out = 0;
if (spind_rpm_in >= trig_rpm_in) {
vac_out = 1;
} else {
vac_out = 0;
}
} else {
vac_out = 0;
if (cool_mist_in == 1) {
cool_mist_out = 1;
} else {
cool_mist_out = 0;
}
if (cool_flood_in == 1) {
cool_flood_out = 1;
} else {
cool_flood_out = 0;
}
}
}
}