Nick писал(а):раздельно?
Код: Выделить всё
// Values for tune-type parameter.
typedef enum {
TYPE_PID,
TYPE_PI_FF1,
} Mode;Nick писал(а):раздельно?
Код: Выделить всё
// Values for tune-type parameter.
typedef enum {
TYPE_PID,
TYPE_PI_FF1,
} Mode;Код: Выделить всё
loadrt threads name1=servo-thread period1=1000000
loadrt pid num_chan=1
loadrt hostmot2
loadrt hm2_pci config=" num_encoders=6 num_pwmgens=0 num_3pwmgens=0 num_stepgens=0 sserial_port_0=000xxxxx "
setp hm2_5i25.0.watchdog.timeout_ns 10000000
loadrt siggen
loadrt line4to2 count=2
loadrt mux4 count=2
loadrt toggle
loadrt passthru count=8
loadrt reciprocal
loadrt logic personality=0x203
loadrt tristate_float names=xen,yen,zen
loadusr -Wn gui0 pyvcp -c gui0 servo-tuning-gui.xml
# ################################################
# THREADS
# ################################################
addf hm2_5i25.0.read servo-thread
addf line4to2.0 servo-thread
addf line4to2.1 servo-thread
addf mux4.0 servo-thread
addf mux4.1 servo-thread
addf pid.0.do-pid-calcs servo-thread
addf hm2_5i25.0.write servo-thread
addf hm2_5i25.0.pet_watchdog servo-thread
addf siggen.0.update servo-thread
addf toggle.0 servo-thread
addf passthru.0 servo-thread
addf passthru.1 servo-thread
addf passthru.2 servo-thread
addf passthru.3 servo-thread
addf passthru.4 servo-thread
addf passthru.5 servo-thread
addf passthru.6 servo-thread
addf passthru.7 servo-thread
addf reciprocal.0 servo-thread
addf logic.0 servo-thread
addf xen servo-thread
addf yen servo-thread
addf zen servo-thread
# ################
# Siggen
# ################
net period <= gui0.period-f => reciprocal.0.in
net amplitude <= gui0.amplitude-f => siggen.0.amplitude
net frequency <= reciprocal.0.out => siggen.0.frequency
net square-signal <=siggen.0.square => mux4.0.in0
net triangle-signal <=siggen.0.triangle => mux4.0.in1
net sine-signal <=siggen.0.sine => mux4.0.in2
net square-select <= gui0..Square => line4to2.0.in0
net triangle-select <= gui0..Triangle => line4to2.0.in1
net sine-select <= gui0..Sine => line4to2.0.in2
net mux0-select-0 <= line4to2.0.out0 => mux4.0.sel0
net mux0-select-1 <= line4to2.0.out1 => mux4.0.sel1
# ################
# Enable
# ################
net momentary-enable <= gui0.enable => toggle.0.in
net global-enable <= toggle.0.out => pid.0.enable
# ################
# PID
# ################
net p-gain-in <= gui0.Pgain => passthru.0.in
net p-gain-out <= passthru.0.out => pid.0.Pgain
net i-gain-in <= gui0.Igain => passthru.1.in
net i-gain-out <= passthru.1.out => pid.0.Igain
net d-gain-in <= gui0.Dgain => passthru.2.in
net d-gain-out <= passthru.2.out => pid.0.Dgain
net pid-bias-in <= gui0.bias => passthru.3.in
net pid-bias-out <= passthru.3.out => pid.0.bias
net pid-ff0-in <= gui0.ff0 => passthru.4.in
net pid-ff0-out <= passthru.4.out => => pid.0.FF0
net pid-ff1-in <= gui0.ff1 => passthru.5.in
net pid-ff1-out <= passthru.5.out => => pid.0.FF1
net pid-ff2-in <= gui0.ff2 => passthru.6.in
net pid-ff2-out <= passthru.6.out => => pid.0.FF2
net pid-deadband-in <= gui0.deadband => passthru.7.in
net pid-deadband-out <= passthru.7.out => pid.0.deadband
setp pid.0.maxoutput 10.0000
net pid-command <= mux4.0.out => pid.0.command
net pid-output <= pid.0.output
net pid-feedback <= mux4.1.out => pid.0.feedback
net x-axis-feedback => mux4.1.in0
net y-axis-feedback => mux4.1.in1
net z-axis-feedback => mux4.1.in2
net x-axis-select <= gui0.axis-selection.X => line4to2.1.in0
net y-axis-select <= gui0.axis-selection.Y => line4to2.1.in1
net z-axis-select <= gui0.axis-selection.Z => line4to2.1.in2
net mux1-select-0 <= line4to2.1.out0 => mux4.1.sel0
net mux1-select-1 <= line4to2.1.out1 => mux4.1.sel1
net orout logic.0.or => hm2_5i25.0.7i77.0.1.analogena
# ################
# X Axis
# ################
setp hm2_5i25.0.7i77.0.1.analogout0-scalemax -10.0
setp hm2_5i25.0.7i77.0.1.analogout0-minlim -10.0
setp hm2_5i25.0.7i77.0.1.analogout0-maxlim 10.0
net x-axis-select => logic.0.in-00
# encoder feedback
setp hm2_5i25.0.encoder.00.counter-mode 0
setp hm2_5i25.0.encoder.00.filter 1
setp hm2_5i25.0.encoder.00.index-invert 0
setp hm2_5i25.0.encoder.00.index-mask 0
setp hm2_5i25.0.encoder.00.index-mask-invert 0
setp hm2_5i25.0.encoder.00.scale 1000
net x-axis-feedback <= hm2_5i25.0.encoder.00.position
net pid-output => xen.in
net pid-outx xen.out => hm2_5i25.0.7i77.0.1.analogout0
net x-axis-select => xen.enable
# ################
# Y Axis
# ################
setp hm2_5i25.0.7i77.0.1.analogout1-scalemax -10.0
setp hm2_5i25.0.7i77.0.1.analogout1-minlim -10.0
setp hm2_5i25.0.7i77.0.1.analogout1-maxlim 10.0
net y-axis-select => logic.0.in-01
# encoder feedback
setp hm2_5i25.0.encoder.01.counter-mode 0
setp hm2_5i25.0.encoder.01.filter 1
setp hm2_5i25.0.encoder.01.index-invert 0
setp hm2_5i25.0.encoder.01.index-mask 0
setp hm2_5i25.0.encoder.01.index-mask-invert 0
setp hm2_5i25.0.encoder.01.scale 1000
net y-axis-feedback <= hm2_5i25.0.encoder.01.position
net pid-output => yen.in
net pid-outy yen.out => hm2_5i25.0.7i77.0.1.analogout1
net y-axis-select => yen.enable
# ################
# Z Axis
# ################
setp hm2_5i25.0.7i77.0.1.analogout2-scalemax -10.0
setp hm2_5i25.0.7i77.0.1.analogout2-minlim -10.0
setp hm2_5i25.0.7i77.0.1.analogout2-maxlim 10.0
net z-axis-select => logic.0.in-02
# encoder feedback
setp hm2_5i25.0.encoder.02.counter-mode 0
setp hm2_5i25.0.encoder.02.filter 1
setp hm2_5i25.0.encoder.02.index-invert 0
setp hm2_5i25.0.encoder.02.index-mask 0
setp hm2_5i25.0.encoder.02.index-mask-invert 0
setp hm2_5i25.0.encoder.02.scale -1000
net z-axis-feedback <= hm2_5i25.0.encoder.02.position
net pid-output => zen.in
net pid-outz zen.out => hm2_5i25.0.7i77.0.1.analogout2
net z-axis-select => zen.enable
# ################
# Let's Go!
# ################
net cnc-enable => hm2_5i25.0.7i77.0.0.output-00
sets cnc-enable true
net M6-non => hm2_5i25.0.7i77.0.0.output-02
sets M6-non true
start
loadusr halscopeКод: Выделить всё
поправил
-NightV[/note]Надо в XML во все секции dial добавить атрибут:Ямал писал(а):pyvcp_dial instance has no attribute 'halparam'
Код: Выделить всё
<param_pin>1</param_pin>Так это не at_pid, это GUI для удобства ручной настройки.Ямал писал(а):Файлы брал здесь:http://www.linuxcnc.org/index.php/engli ... al?limit=6
Обычным текстовым редактором.Ямал писал(а):А как редактировать HML файл? Пытаюсь вставить, но не получается.