Huanyang VFD with 2,2 kw chinesium spindle

More
6 years 9 months ago #156160 by MovT
Hi.

I want to bring my chinesium spindle to work with help here. But i only have one speed at the spindle. I stuck now. No matter what speed i will set e.g. M3 S12000 the spindle will start and stop acceleration at 6000 rpm. M3 S0 stops the spindle. All work well but not the speed settings.

Here the config snippets:

LinuxCNC Version 2.8

Custom HAL
Code:
loadusr -Wn vfd hy_vfd -n vfd -d /dev/ttyUSB0 -p none -r 9600 #loadusr -Wn vfd hy_vfd -n vfd -t 1 -d /dev/ttyUSB0 -p none -r 9600 -s 1 -S 24000 -F 400 -f 100 -V 220 -I 11 -P 4 net spindle-cmd-rpm-abs => vfd.speed-command net spindle-cw spindle.0.forward => vfd.spindle-forward net spindle-ccw spindle.0.reverse => vfd.spindle-reverse net on spindle.0.on => vfd.spindle-on => hm2_7i76e.0.7i76.0.0.output-13 net spindle-at-speed => vfd.spindle-at-speed setp vfd.enable 1

.ini
Code:
[SPINDLE_0] P = 0 I = 0 D = 0 FF0 = 1 FF1 = 0 FF2 = 0 BIAS = 0 DEADBAND = 0 MAX_OUTPUT = 24000.0 OUTPUT_MIN_LIMIT = 6000 OUTPUT_MAX_LIMIT = 24000 OUTPUT_SCALE = 24000

.hal
Code:
#******************* # SPINDLE #******************* setp pid.s.Pgain [SPINDLE_0]P setp pid.s.Igain [SPINDLE_0]I setp pid.s.Dgain [SPINDLE_0]D setp pid.s.bias [SPINDLE_0]BIAS setp pid.s.FF0 [SPINDLE_0]FF0 setp pid.s.FF1 [SPINDLE_0]FF1 setp pid.s.FF2 [SPINDLE_0]FF2 setp pid.s.deadband [SPINDLE_0]DEADBAND setp pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT setp pid.s.error-previous-target true net spindle-index-enable <=> pid.s.index-enable net spindle-enable => pid.s.enable net spindle-vel-cmd-rpm => pid.s.command net spindle-vel-fb-rpm => pid.s.feedback net spindle-output <= pid.s.output # ---setup spindle control signals--- net spindle-vel-cmd-rps <= spindle.0.speed-out-rps net spindle-vel-cmd-rps-abs <= spindle.0.speed-out-rps-abs net spindle-vel-cmd-rpm <= spindle.0.speed-out net spindle-vel-cmd-rpm-abs <= spindle.0.speed-out-abs #net spindle-enable <= spindle.0.on #net spindle-cw <= spindle.0.forward #net spindle-ccw <= spindle.0.reverse net spindle-brake <= spindle.0.brake net spindle-revs => spindle.0.revs net spindle-at-speed => spindle.0.at-speed net spindle-vel-fb-rps => spindle.0.speed-in net spindle-index-enable <=> spindle.0.index-enable # ---Setup spindle at speed signals--- sets spindle-at-speed true

I would be very happy when i get it working as expected.

Thanks,
Udo

Please Log in to join the conversation.

More
6 years 9 months ago #156163 by bbsr_5a
is the Parameter set to get speed from the RS485
the hyanjang also got a Jumper
seams you only set the start stop to the USB signal

Please Log in to join the conversation.

More
6 years 9 months ago #156173 by MovT
Yes all works still under Windows 7 with Mach3 and the VFD driver. Same machine same wiring etc.

How i can debug the communication?

tail -f /dev/ttyUSB0 didnt work ;(

Please Log in to join the conversation.

More
6 years 9 months ago #156183 by MovT
5 Minutes ago i go back to Mach3 and test the spindle. All works fine and the speed went up to 24000 rpm.

I can't figure out what i miss in my config.

by the way, the vfd.speed-comand is always 0. vfd.rott says 6000 rpm if th spindle run. Thats very weird.

Any help will be appreciated.


Best,
Udo

Please Log in to join the conversation.

More
6 years 9 months ago #156191 by Todd Zuercher
Does your spindle have encoder feedback? If it doesn't why do you have a pid configured. The PID can't close the loop without feedback.

Please Log in to join the conversation.

More
6 years 9 months ago #156197 by MaHa
My configuration, another vfd but hf spindle and 7i76e. It's pncconf wizard generated and modified.
In the .ini file this entry.

Code:
#******************** # Spindle #******************** [SPINDLE_9] P = 0.0 I = 0.0 D = 0.0 FF0 = 1.0 FF1 = 0.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 24000.0 OUTPUT_SCALE = 26000 OUTPUT_MIN_LIMIT = 0 OUTPUT_MAX_LIMIT = 24000

the output scale was needed, to get 6000rpm at 100 Hz and 24000rpm at 400Hz.

In hal, timedelay for speedupdelay, and lincurve to set any s lower than 6000 to 6000 and limit to 24000rpm is also in my config.
Code:
loadrt timedelay count=1 loadrt lincurve personality=4 addf timedelay.0 servo-thread addf lincurve.0 servo-thread setp timedelay.0.on-delay 4 setp timedelay.0.off-delay 0 #******************* # SPINDLE S #******************* setp pid.s.Pgain [SPINDLE_9]P setp pid.s.Igain [SPINDLE_9]I setp pid.s.Dgain [SPINDLE_9]D setp pid.s.bias [SPINDLE_9]BIAS setp pid.s.FF0 [SPINDLE_9]FF0 setp pid.s.FF1 [SPINDLE_9]FF1 setp pid.s.FF2 [SPINDLE_9]FF2 setp pid.s.deadband [SPINDLE_9]DEADBAND setp pid.s.maxoutput [SPINDLE_9]MAX_OUTPUT setp pid.s.error-previous-target true # ---auto rpm: 1-6000 = 6000 / 24000 max setp lincurve.0.x-val-00 0 setp lincurve.0.y-val-00 0 setp lincurve.0.x-val-01 1 setp lincurve.0.y-val-01 6000 setp lincurve.0.x-val-02 6000 setp lincurve.0.y-val-02 6000 setp lincurve.0.x-val-03 24000 setp lincurve.0.y-val-03 24000 net spindle-index-enable <=> pid.s.index-enable net spindle-enable => pid.s.enable net spindle-vel-cmd-rpm-abs => pid.s.command net spindle-vel-fb-rpm-abs => pid.s.feedback net spindle-output <= pid.s.output # ---digital potentionmeter output signals/setup--- setp hm2_7i76e.0.7i76.0.0.spinout-minlim [SPINDLE_9]OUTPUT_MIN_LIMIT setp hm2_7i76e.0.7i76.0.0.spinout-maxlim [SPINDLE_9]OUTPUT_MAX_LIMIT setp hm2_7i76e.0.7i76.0.0.spinout-scalemax [SPINDLE_9]OUTPUT_SCALE net spindle-output => hm2_7i76e.0.7i76.0.0.spinout net spindle-enable => hm2_7i76e.0.7i76.0.0.spinena timedelay.0.in net spindle-cw => hm2_7i76e.0.7i76.0.0.spindir # ---setup spindle control signals--- net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps net spindle-vel-cmd-rps-abs <= motion.spindle-speed-out-rps-abs net spindle-vel-cmd-rpm <= motion.spindle-speed-out net spindle-pre <= motion.spindle-speed-out-abs lincurve.0.in net spindle-vel-cmd-rpm-abs <= lincurve.0.out net spindle-enable <= motion.spindle-on net spindle-cw <= motion.spindle-forward net spindle-ccw <= motion.spindle-reverse net spindle-brake <= motion.spindle-brake net spindle-revs => motion.spindle-revs net spindle-at-speed => motion.spindle-at-speed timedelay.0.out net spindle-vel-fb-rps => motion.spindle-speed-in net spindle-index-enable <=> motion.spindle-index-enable # sets spindle-at-speed true

Please Log in to join the conversation.

More
6 years 9 months ago #156200 by Todd Zuercher
If he is simply commanding the VFD through modbus, (not the 7i76's analog out). There should be no reason to scale an output. Also the VFD can have its parameters set to honor the minimum and max speeds and ramp speed, so there would be no need for the Limit3. Simply connecting the motion. spindle-speed-out to hal pin for the serial driver.

It may be helpful if you posted your entire hal file rather than snippets of it.

At this point I'm not sure if the VFD is starting and being ran by physical connections to your 7i76 or by the serial connection. You seem to have both in your hal file. If you intend to run using the serial connections you should not connect the physical ones. On a lot of these drives if you enable the terminal strip inputs you must disable the serial link and vice versa.

Please Log in to join the conversation.

More
6 years 9 months ago #156211 by MovT
All answers sounds very cryptic. I am a beginner in LinuxCnC. My first attempt was in a case successful. The Spindle starts but the vfd.command-speed wasn't delivered by any kind of the examples.

I digged deeeper in the signal chain and grab the first input and so what - it works now.

The line:

net spindle-cmd-rpm-abs => vfd.speed-command

was changed to :

net spindle-vel-cmd-rpm => vfd.speed-command

and all was fine.

M3 S12000 bring the spindle to 12000 rpm and if the spindle achieved the target rpm spindle-at-sped will set to true.

Thanks anyway guys.

Hope the rest will be in the same manner.

Best,
Udo

Please Log in to join the conversation.

Time to create page: 7.306 seconds
Powered by Kunena Forum