-
-
Notifications
You must be signed in to change notification settings - Fork 24
/
koppi-cnc.hal
97 lines (78 loc) · 2.79 KB
/
koppi-cnc.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
###########################################################
#
# Master HAL file for koppi's CNC
#
# Created 2015/05/09 Jakob Flierl <[email protected]>
#
# Global HAL configuration file
#
###########################################################
###########################################################
# Setup
###########################################################
loadusr -W haltalk
# load kinematiks and motion controller (realtime)
loadrt trivkins
# trajectory planner
loadrt tp
# motion controller, load parameters from ini file
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES kins=trivkins tp=tp
# load ethercat config parser
loadusr -W lcec_conf [LCEC]CONFIG
# load ethercat realtime module
loadrt lcec
# load position controller PID instances
loadrt pid names=x-pid,y-pid,z-pid
#newinst pid x-pid
#newinst pid y-pid
#newinst pid z-pid
loadusr -W hal_input -KRAL Logitech
###########################################################
# Functions
#
# specify the thead and the order where component functions
# will be called. Since we need no high speed pulse generation
# like soft pwm and stepper generator, only the servo thread
# is used (wich allows floating point calculations and runs
# at 1ms cycle time per default). Functions be called in the
# order of definition.
#
# Base thread could be used in simple systems for high speed
# tasks like mentioned above. Base thread only supports
# integer arithmetics.
#
###########################################################
addf lcec.read-all servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
#addf x-pid servo-thread
#addf y-pid servo-thread
#addf z-pid servo-thread
addf x-pid.do-pid-calcs servo-thread
addf y-pid.do-pid-calcs servo-thread
addf z-pid.do-pid-calcs servo-thread
addf lcec.write-all servo-thread
###########################################################
# E-Stop
#
# See file "koppi-cnc-postgui.hal" for signal connections
#
###########################################################
loadrt classicladder_rt
addf classicladder.0.refresh servo-thread
loadusr classicladder --nogui koppi-cnc-estop.clp
###########################################################
# Toolchange
#
# Manual tool change window
#
###########################################################
loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
###########################################################
# ES8266 esp-01 test
###########################################################
loadusr ./esp-01-mqtt.py