Again 0-10V Problem on MESA 7i97

More
3 years 1 week ago #283299 by nighteagle
Hello,
i want only the simple thing to have 0-10V instead of 0 to +- 10V to drive VFD. For reverse i have to close a contact on the VFD so i use here the output OUT1 of the MESA 7i97.

So i have read here:
linuxcnc.org/docs/2.4/html/man/man9/pwmgen.9.html

And then i wonder why it is false now - because pwmgen output_type have no value "0" now.
If i use type "1" then the behaviour by using M3 positive values and by M4 negative values.

So where is the setting to prevent +-10V and have these 0-10V always positive values?
Is there something a info about this or a wiki?

My config is now:
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 # ---PWM Generator signals/setup--- setp   [HMOT](CARD0).pwmgen.05.output-type 1 #PWM pin5 setp   [HMOT](CARD0).pwmgen.05.offset-mode 1 # offset mode so 50% = 0 setp   [HMOT](CARD0).pwmgen.05.scale   [SPINDLE_0]OUTPUT_SCALE net spindle-output      => [HMOT](CARD0).pwmgen.05.value net spindle-enable      => [HMOT](CARD0).pwmgen.05.enable # ---Encoder feedback signals/setup--- setp    [HMOT](CARD0).encoder.05.counter-mode 0 setp    [HMOT](CARD0).encoder.05.filter 1 setp    [HMOT](CARD0).encoder.05.index-invert 0 setp    [HMOT](CARD0).encoder.05.index-mask 0 setp    [HMOT](CARD0).encoder.05.index-mask-invert 0 setp    [HMOT](CARD0).encoder.05.scale  [SPINDLE_0]ENCODER_SCALE net spindle-revs             <=   [HMOT](CARD0).encoder.05.position net spindle-vel-fb-rps       <=   [HMOT](CARD0).encoder.05.velocity net spindle-vel-fb-rpm       <=   [HMOT](CARD0).encoder.05.velocity-rpm net spindle-index-enable     <=>  [HMOT](CARD0).encoder.05.index-enable # ---setup spindle control signals--- #Spindle Reverse set Output  OUT1 to give Signal 1 to VFD and forward 0 #net spindle-cw spindle.0.forward  =>  [HMOT](CARD0).ssr.00.out-01 net spindle-ccw spindle.0.reverse  =>  [HMOT](CARD0).ssr.00.out-01 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

 
Code:
[SPINDLE_0] P = 0 I = 0 D = 0 FF0 = 1 FF1 = 0 FF2 = 0 BIAS = 0 DEADBAND = 0 MAX_OUTPUT = 40000 OUTPUT_SCALE = -40000 OUTPUT_MAX_LIMIT = 40000 OUTPUT_MIN_LIMIT = 0

Please Log in or Create an account to join the conversation.

More
3 years 1 week ago #283300 by PCW
To get 0 to 10V you would not change any PWM settings
but rather change:

net spindle-vel-cmd-rpm => pid.s.command
to
net spindle-vel-cmd-rpm-abs => pid.s.command

Please Log in or Create an account to join the conversation.

More
3 years 1 week ago #283306 by nighteagle
Hello,
@PCW - it works! So i don't have found this simple solution.... how can somebody find something like this?

And another questions - the pwmgen type is 1 - and it means value and direction - so can i use this dir signal to enable my reverse on the VFD?

I use now this solution and i think is not the best idea:
Code:
#Spindle Reverse -> set Output OUT1 to "1" to VFD (forward set OUT1 to "0") #net spindle-cw spindle.0.forward => [HMOT](CARD0).ssr.00.out-01 net spindle-ccw spindle.0.reverse => [HMOT](CARD0).ssr.00.out-01

Better is to use the implemented DIR-PIN and link it to the output?

Please Log in or Create an account to join the conversation.

More
3 years 1 week ago - 3 years 1 week ago #283310 by PCW
I think using the spindle.0 pin is fine

( The PWM DIR output is not present and even if it was, it would
never change as the PWM value is always positive )
Last edit: 3 years 1 week ago by PCW.

Please Log in or Create an account to join the conversation.

More
3 years 1 week ago #283342 by nighteagle
@PCM
okay - understand now...
so my solution is not safe at all?

The default state of the Pin is false or "0" - if i linked the pin-name to the signal:
net spindle-ccw spindle.0.reverse => [HMOT](CARD0).ssr.00.out-01
the signal will set the pin on active or "1" but how do i set the opposite?

I look for something like this:

net spindle-cw spindle.0.forward => [HMOT](CARD0).ssr.00.out-01 false
net spindle-ccw spindle.0.reverse => [HMOT](CARD0).ssr.00.out-01 true

Is there some parameter/argument to give the true or false to the pin?
I will prevent the pin is in a undefined condition. So each signal set in every case the reverse pin of my VFD correct.
If only the reverse signal set the pin - it looks not safe for me!?

Please Log in or Create an account to join the conversation.

More
3 years 1 week ago - 3 years 1 week ago #283355 by PCW
It depends on the function of the FWD/REV pins on your VFD.
If they are standard FWD/REV pins, (if you assert FWD, it runs forward,
if you assert REV, it runs in reverse) you need two outputs, one
for FWD and one for REV.

If you just have a direction pin, you need an additional pin (normally
called enable)
Last edit: 3 years 1 week ago by PCW.

Please Log in or Create an account to join the conversation.

Time to create page: 0.345 seconds
Powered by Kunena Forum