summaryrefslogtreecommitdiff
path: root/configs/sim/axis/vismach/hexapod-sim/core_sim_6.hal
blob: a39a6dae68ddf5457a7426be71ac1dc9449e95d7 (plain)
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
# core HAL config file for simulation - 6 axis

# load RT modules
loadrt genhexkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD num_joints=[TRAJ]AXES
loadrt ddt count=9

# add motion controller functions to servo thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf ddt.0 servo-thread
addf ddt.1 servo-thread
addf ddt.2 servo-thread
addf ddt.3 servo-thread
addf ddt.4 servo-thread
addf ddt.5 servo-thread
addf ddt.6 servo-thread
addf ddt.7 servo-thread
addf ddt.8 servo-thread

# create HAL signals for position commands from motion module
net Xpos <= axis.0.motor-pos-cmd
net Ypos <= axis.1.motor-pos-cmd
net Zpos <= axis.2.motor-pos-cmd
net Apos <= axis.3.motor-pos-cmd
net Bpos <= axis.4.motor-pos-cmd
net Cpos <= axis.5.motor-pos-cmd


# loop position commands back to motion module feedback
net Xpos => axis.0.motor-pos-fb
net Ypos => axis.1.motor-pos-fb
net Zpos => axis.2.motor-pos-fb
net Apos => axis.3.motor-pos-fb
net Bpos => axis.4.motor-pos-fb
net Cpos => axis.5.motor-pos-fb

# send the position commands thru differentiators to
# generate velocity and accel signals
# define the signals, and hook them up
net Xpos => ddt.0.in
net Xvel <= ddt.0.out
net Xvel => ddt.1.in
net Xacc <= ddt.1.out
net Xacc => ddt.2.in
net Xjerk <= ddt.2.out
net Ypos => ddt.3.in
net Yvel <= ddt.3.out
net Yvel => ddt.4.in
net Yacc <= ddt.4.out
net Yacc => ddt.5.in
net Yjerk <= ddt.5.out
net Zpos => ddt.6.in
net Zvel <= ddt.6.out
net Zvel => ddt.7.in
net Zacc <= ddt.7.out
net Zacc => ddt.8.in
net Zjerk <= ddt.8.out

# estop loopback
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in

# create signals for tool loading loopback
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed

# amp control
net xena axis.0.amp-enable-out
net yena axis.1.amp-enable-out
net zena axis.2.amp-enable-out
net aena axis.3.amp-enable-out
net bena axis.4.amp-enable-out
net cena axis.5.amp-enable-out

net xflt axis.0.amp-fault-in
net yflt axis.1.amp-fault-in
net zflt axis.2.amp-fault-in
net aflt axis.3.amp-fault-in
net bflt axis.4.amp-fault-in
net cflt axis.5.amp-fault-in