test hal
This commit is contained in:
58
vfd_test.hal
Normal file
58
vfd_test.hal
Normal file
@@ -0,0 +1,58 @@
|
||||
# Samodzielny plik testowy dla mb2hal i falownika Vevor D100
|
||||
# Uruchom w terminalu za pomoca:
|
||||
# halrun -I -f vfd_test.hal
|
||||
|
||||
# 1. Tworzymy wirtualny watek czasu rzeczywistego (wymagane w halrun)
|
||||
loadrt threads name1=servo-thread period1=1000000
|
||||
|
||||
# 2. Ladujemy mb2hal z nasza konfiguracja
|
||||
loadusr -W mb2hal config=vfd_d100.ini
|
||||
|
||||
# 3. Ladujemy komponenty pomocnicze
|
||||
loadrt scale names=spindle_speed_scale,spindle_feedback_scale
|
||||
loadrt mux2 names=spindle_dir_mux,spindle_run_mux
|
||||
loadrt near names=spindle_at_speed_near
|
||||
|
||||
# 4. Dodajemy funkcje do watku
|
||||
addf spindle_speed_scale servo-thread
|
||||
addf spindle_feedback_scale servo-thread
|
||||
addf spindle_dir_mux servo-thread
|
||||
addf spindle_run_mux servo-thread
|
||||
addf spindle_at_speed_near servo-thread
|
||||
|
||||
# 5. Startujemy watki czasu rzeczywistego
|
||||
start
|
||||
|
||||
# =====================================================================
|
||||
# LOGIKA STEROWANIA (Symulacja sygnalow wejsciowych z LinuxCNC)
|
||||
# =====================================================================
|
||||
|
||||
# Wartosci sterujace: 2.0 = Forward, 4.0 = Reverse, 8.0 = Stop
|
||||
setp spindle_dir_mux.in0 2.0
|
||||
setp spindle_dir_mux.in1 4.0
|
||||
setp spindle_run_mux.in0 8.0
|
||||
|
||||
# Tworzymy sygnaly i podlaczamy je do wejsc logicznych (bez udzialu 'motion')
|
||||
net test-spindle-rev spindle_dir_mux.sel
|
||||
net test-spindle-dir spindle_dir_mux.out => spindle_run_mux.in1
|
||||
net test-spindle-on spindle_run_mux.sel
|
||||
net test-spindle-cmd spindle_run_mux.out => vfd.control.00.float
|
||||
|
||||
# Skalowanie zadanej predkosci: 24000 RPM -> 400.0 Hz (wartosc 4000 w Modbus)
|
||||
# Gain = 4000 / 24000 = 0.16666667
|
||||
setp spindle_speed_scale.gain 0.16666667
|
||||
setp spindle_speed_scale.offset 0.0
|
||||
net test-speed-rpm spindle_speed_scale.in
|
||||
net test-speed-scaled spindle_speed_scale.out => vfd.speed.00.float
|
||||
|
||||
# Skalowanie sprzezenia zwrotnego: RPM z VFD -> RPS dla LinuxCNC
|
||||
setp spindle_feedback_scale.gain 0.01666667
|
||||
setp spindle_feedback_scale.offset 0.0
|
||||
net test-rpm-feedback vfd.metrics.rpm.float => spindle_feedback_scale.in
|
||||
net test-rps-feedback spindle_feedback_scale.out
|
||||
|
||||
# Detekcja "At Speed"
|
||||
setp spindle_at_speed_near.difference 300.0
|
||||
net test-speed-rpm => spindle_at_speed_near.in1
|
||||
net test-rpm-feedback => spindle_at_speed_near.in2
|
||||
net test-at-speed spindle_at_speed_near.out
|
||||
Reference in New Issue
Block a user