/
koppi-cnc-io.hal
100 lines (79 loc) · 2.96 KB
/
koppi-cnc-io.hal
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
###########################################################
#
# IO HAL file for koppi's CNC
#
# Created 2015/05/09 by Jakob Flierl <jakob.flierl@gmail.com>
#
# This file connects internal LCNC HAL signals with
# external Haldware on the EtherCAT bus.
#
###########################################################
###########################################################
# Signals for monitorting of the connection state
# and slave state
###########################################################
net ec-slaves-responding <= lcec.slaves-responding
net ec-link-up <= lcec.link-up
net ec-all-op <= lcec.all-op
###########################################################
# digital inputs
###########################################################
net voltage-on <= lcec.0.3.din-3-not
net estop-hw-button <= lcec.0.3.din-0
net probe-pin-in <= lcec.0.3.din-1
#net x-pos-lim-in <= lcec.0.3.din-1
#net x-neg-lim-in <= lcec.0.3.din-2
#net y-pos-lim-in <= lcec.0.3.din-3
#net y-neg-lim-in <= lcec.0.3.din-0-not
#net z-pos-lim-in <= lcec.0.3.din-2
#net z-neg-lim-in <= lcec.0.3.din-2
net x-home-sw-in <= lcec.0.4.srv-din1
net y-home-sw-in <= lcec.0.5.srv-din1
net z-home-sw-in <= lcec.0.6.srv-din1
###########################################################
# digital outputs
###########################################################
#net coolant-on => lcec.0.2.dout-0
net spindle-cw <= lcec.0.7.dout-0
#net spindle-ccw <= lcec.0.2.dout-2
#net z-brake => lcec.0.2.dout-3
###########################################################
# servo controlers
###########################################################
# X axis
#
# set motor position scale (default 1 motor revolution)
setp lcec.0.4.srv-scale [AXIS_0]SCALE
setp lcec.0.4.enc-pos-scale [AXIS_0]ENC_SCALE
# switch on if joint is enabled
# this signal is used for the fault autoreset feature, too
net x-enable => lcec.0.4.srv-enable
# enable operation if joint is enabled
# The delta driver internally delay this signal
# till switched-on feedback is set to 1
#net x-enable => lcec.0.3A1.srv-enable
# check driver fault status
net x-amp-fault <= lcec.0.4.srv-error
# output velocity command from position control
# the scale of this value respects the setting
# of srv-pos-scale. if scale is set to 1.0 this
# means 1 motor revolution per second.
net x-vel-cmd => lcec.0.4.srv-cmd
# motor encoder position is used as joint
# position feedback
net x-pos-fb <= lcec.0.4.enc-pos
# Y axis - same logic as X axis
setp lcec.0.5.srv-scale [AXIS_1]SCALE
setp lcec.0.5.enc-pos-scale [AXIS_1]ENC_SCALE
net y-enable => lcec.0.5.srv-enable
net y-amp-fault <= lcec.0.5.srv-error
net y-vel-cmd => lcec.0.5.srv-cmd
net y-pos-fb <= lcec.0.5.enc-pos
# Z axis - same logic as X axis
setp lcec.0.6.srv-scale [AXIS_2]SCALE
setp lcec.0.6.enc-pos-scale [AXIS_2]ENC_SCALE
net z-enable => lcec.0.6.srv-enable
net z-amp-fault <= lcec.0.6.srv-error
net z-vel-cmd => lcec.0.6.srv-cmd
net z-pos-fb <= lcec.0.6.enc-pos
#net z-brake <= lcec.0.4A3.srv-oper-enabled