Advanced Search

Search Results (Searched for: )

  • Tinine
  • Tinine
21 Aug 2024 14:16
Replied by Tinine on topic PID Servo Loop rates

PID Servo Loop rates

Category: General LinuxCNC Questions

Hi Todd, 

Yes I can see that which is why I don't use the PC platform. 
I use microcontrollers for motion control and I can achieve ridiculously fast rates but I'm starting with a clean sheet and for fun, I have been playing with this 250Hz rate and pretty impressed. 
Granted, my applications typically involve bigger servos and associated transmission systems and so response time is not super critical but hey, I have never experienced such easy PID tuning. 

Craig 
  • Todd Zuercher
  • Todd Zuercher's Avatar
21 Aug 2024 14:10 - 21 Aug 2024 14:23

What's the Oddest Machine You Have Powered with LinuxCNC

Category: Off Topic and Test Posts

What do you mean by "oldest machine"? Do you mean what machine have we had running Linuxcnc for the longest or the actual physical machines? I know there are people out there who have CNCed ancient manual mills and lathes with Linuxcnc, so nothing I have would be any contest for them. But I do have machines that have been running Linuxcnc for more than 10 years.

Oops, I misread the question it is Odd not Old.  (maybe it is time to have my eyeglass prescription redone.)
The oddest machine I have under Linuxcnc control is an 8 spindle gang router with 8 separate Z-axis and spindles mounted on a 12ft long gantry (11 joints of movement).
  • PCW
  • PCW's Avatar
21 Aug 2024 14:07
Replied by PCW on topic Driver NUM GEC MK2S

Driver NUM GEC MK2S

Category: Driver Boards

Looks like the PWM enables are missing also:

net joint-1-enable <= joint.1.amp-enable-out
net joint-1-enable => pid.z.enable
net joint-1-enable => hm2_[MESA](BOARD).0.pwmgen.01.enable
  • Todd Zuercher
  • Todd Zuercher's Avatar
21 Aug 2024 13:57
Replied by Todd Zuercher on topic PID Servo Loop rates

PID Servo Loop rates

Category: General LinuxCNC Questions

If your PC has poor latency, a faster loop could be detrimental to your pid servo loop tuning. I can see how slowing your loop down so that the resolution of latency noise is a smaller relative to the thread speed could give better tuning results.
  • Tinine
  • Tinine
21 Aug 2024 13:39
PID Servo Loop rates was created by Tinine

PID Servo Loop rates

Category: General LinuxCNC Questions

Hi all,

I see that Linux CNC defaults to 1KHz PID rate. 
What do you lose when something like 250Hz is used. 

For the first time in decades, I have been experimenting with this 250Hz on one of my own developments and I found that tuning the loop was a breeze and I don't seem to lose anything. Historically I've been in the 1KHz to 4KHz range. I'm kinda liking this. 

​​​​​​Craig 
  • mooser
  • mooser
21 Aug 2024 13:37
Replied by mooser on topic Fuse for toroid transformer... sanity check

Fuse for toroid transformer... sanity check

Category: CNC Machines

Closing this off.
Completed and installed the new power supply. Ended up using a combination of what rodw suggested and some other info I eventually found online.

One main Fuse from the 120v line on the hot side (it also splits off into a 120v > 3.3v/5v/12v power supply for the other various circuits before hitting the toroid)
A thermister and a slo-blow fuse on each of the input coils which are in series to each other.
One fuse on each pair of the output to the stepper coils
Seems like overkill somehow but that's what's there.
M
  • my1987toyota
  • my1987toyota's Avatar
21 Aug 2024 13:23

What's the Oddest Machine You Have Powered with LinuxCNC

Category: Off Topic and Test Posts

 The title say it all. I am genuinely wondering. What is the oddest machine you have either seen or powered yourself
with LinuxCNC? So far mine has been
a Pick and Place machine
a CNC 4 axis foam cutter soon to be 5 axis

Not that odd I know. But still. I know there's got to be some really interesting ones out there.
I figured this topic could help new people who will probably wonder just how capable LInuxCNC is.
So come on, what do you got?
  • slowpoke
  • slowpoke
21 Aug 2024 13:07
Replied by slowpoke on topic Delay or debounce

Delay or debounce

Category: HAL

Maybe try this:
linuxcnc.org/docs/html/man/man9/debounce.9.html
 


I de-bounced only the input to the resume gate, so quick stops, slow starts. Works perfectly.

Thank you Aciere,
  • pawel77
  • pawel77
21 Aug 2024 13:07
Replied by pawel77 on topic İnstall glade

İnstall glade

Category: Gmoccapy

OK thanks if this is the solution. However it changes the layout of elements during opening, I will have to arrange them again. 
I thought the gladevcp of 2.8.4 is better and is available in 2.9.
 
  • Pickle
  • Pickle
21 Aug 2024 12:02

[ Vfdmod ] An easy VFD control over MODBUS RTU

Category: HAL

So is it possible to get hold of VFDMOD? I installed this on a previous setup and it was ideal for me. Now I just get 404 error wherever I look!
  • Aciera
  • Aciera's Avatar
21 Aug 2024 11:00

Post GUI HAL not loading and "Bad character '[' used" error on E-Stop

Category: QtPyVCP

Another thing that comes to mind is that only one POSTGUI_HALFILE entry is allowed (unless that has changed):
POSTGUI_HALFILE = custom_postgui.hal
POSTGUI_HALFILE = vc-postgui.hal
POSTGUI_HALFILE = probe_basic_postgui.hal

So if you wanted to load more than one postgui_hal file you would have to create a single (eg 'postgui_call_list.hal') file like this:
# These files are loaded post GUI, in the order they appear
source custom_postgui.hal
source vc-postgui.hal
source  probe_basic_postgui.hal

Then you would replace the three POSTGUI_HALFILE entries with this single line:
POSTGUI_HALFILE = postgui_call_list.hal

Maybe that helps
  • TheRoslyak
  • TheRoslyak's Avatar
21 Aug 2024 10:34 - 21 Aug 2024 10:35
Replied by TheRoslyak on topic Monitoring SDO value

Monitoring SDO value

Category: EtherCAT

So, I updated the branch. Now you can overwrite SDO data.
A so-called forwardScale has been added to the float. It was necessary to calculate and recalculate data when a variable had to be used as a denominator. The complex can be decomposed into bits separately.
Of course, there are still errors and optimization opportunities in the code. For now, this utility can be used for monitoring SDO data. It's an alternative to sdoConfig, allowing you to change parameters on the fly and save them in a proper format instead of raw data (which often causes confusion).

github.com/TheRoslyak/LcecSdo
  • zmrdko
  • zmrdko's Avatar
21 Aug 2024 09:44 - 21 Aug 2024 09:44
Replied by zmrdko on topic New LinuxCNC-Ethercat git tree

New LinuxCNC-Ethercat git tree

Category: EtherCAT

I would like to make some minor upgrades to lcec_dems300. But I am getting errors when compiling original source code from github:
  • greg23_78
  • greg23_78
21 Aug 2024 09:34 - 21 Aug 2024 10:06
Replied by greg23_78 on topic Driver NUM GEC MK2S

Driver NUM GEC MK2S

Category: Driver Boards

indeed it was missing

net joint.0.output => hm2_[MESA](BOARD).0.pwmgen.00.value

and I made the change, but my drivers still don't jog.

I tried my drivers by applying a DC power supply to my analog input (driver) and the driver works correctly.

HAL
# Axis: Z Joint: 1 Output: 1
# PID Setup
setp pid.z.Pgain [JOINT_1](P)
setp pid.z.Igain [JOINT_1](I)
setp pid.z.Dgain [JOINT_1](D)
setp pid.z.bias [JOINT_1](BIAS)
setp pid.z.FF0 [JOINT_1](FF0)
setp pid.z.FF1 [JOINT_1](FF1)
setp pid.z.FF2 [JOINT_1](FF2)
setp pid.z.deadband [JOINT_1](DEADBAND)
setp pid.z.maxoutput [JOINT_1](MAX_OUTPUT)
setp pid.z.error-previous-target True

# joint-1 enable chain
net joint-1-index-enable <=> pid.z.index-enable
net joint-1-index-enable <=> joint.1.index-enable
net joint-1-index-enable <=> hm2_[MESA](BOARD).0.encoder.01.index-enable

net joint-1-enable <= joint.1.amp-enable-out
net joint-1-enable => pid.z.enable

# PWM Generator setup
setp hm2_[MESA](BOARD).0.pwmgen.01.dither true
setp hm2_[MESA](BOARD).0.pwmgen.01.output-type 1 #PWM pin0
setp hm2_[MESA](BOARD).0.pwmgen.01.offset-mode 1 # offset mode so 50% = 0
setp hm2_[MESA](BOARD).0.pwmgen.01.scale [JOINT_1]SCALE

# ---Encoder feedback signals/setup---
setp hm2_[MESA](BOARD).0.encoder.01.counter-mode 0
setp hm2_[MESA](BOARD).0.encoder.01.filter 1
setp hm2_[MESA](BOARD).0.encoder.01.index-invert 0
setp hm2_[MESA](BOARD).0.encoder.01.index-mask 0
setp hm2_[MESA](BOARD).0.encoder.01.index-mask-invert 0
setp hm2_[MESA](BOARD).0.encoder.01.scale  [JOINT_1]ENCODER_SCALE

# position command and feedback
net joint-1-pos-cmd <= joint.1.motor-pos-cmd
net joint-1-pos-cmd => pid.z.command

net joint-1-pos-fb <= hm2_[MESA](BOARD).0.encoder.01.position
net joint-1-pos-fb => joint.1.motor-pos-fb
net joint-1-pos-fb => pid.z.feedback

net joint.1.output <= pid.z.output
net joint.1.output => hm2_[MESA](BOARD).0.pwmgen.01.value

# Encoder Setup
setp hm2_[MESA](BOARD).0.encoder.01.scale  [JOINT_1](ENCODER_SCALE)
setp hm2_[MESA](BOARD).0.encoder.01.counter-mode 0
setp hm2_[MESA](BOARD).0.encoder.01.filter 1
setp hm2_[MESA](BOARD).0.encoder.01.index-invert 0
setp hm2_[MESA](BOARD).0.encoder.01.index-mask 0
setp hm2_[MESA](BOARD).0.encoder.01.index-mask-invert 0


INI

[AXIS_Z]
MIN_LIMIT = 0
MAX_LIMIT = 1000
MAX_VELOCITY = 333.333
MAX_ACCELERATION = 400

[JOINT_1]
CARD = 0
TAB = 1
AXIS = Z
MIN_LIMIT = 0
MAX_LIMIT = 1000
MAX_VELOCITY = 333.333
MAX_ACCELERATION = 400
TYPE = LINEAR
SCALE = 1
ANALOG_SCALE_MAX = 10
ANALOG_MIN_LIMIT = -10
ANALOG_MAX_LIMIT = 10
ENCODER_SCALE = 1000
FERROR =  10000
MIN_FERROR =  1000
DEADBAND = 0
P = 1
I = 0
D = 0
FF0 = 0
FF1 = 0
FF2 = 0
BIAS = 0
MAX_OUTPUT = 10
MAX_ERROR = 0.0127
HOME = 10
HOME_OFFSET = 0
HOME_SEARCH_VEL = 5
HOME_LATCH_VEL = 0.5
HOME_FINAL_VEL = 20
HOME_SEQUENCE = 1
HOME_USE_INDEX = True
I have another question: what does [JOINT_1]SCALE correspond to, since we can see that the signal is scaled in relation to this variable?

SCALE = 1

setp hm2_[MESA](BOARD).0.pwmgen.00.scale [JOINT_0]SCALE

but what's the point of the

ANALOG_SCALE_MAX = 10
ANALOG_MIN_LIMIT = -10
ANALOG_MAX_LIMIT = 10

MAX_OUTPUT = 10

 
  • avive
  • avive
21 Aug 2024 09:15

Message: "Ignoring task mode change while jogging"

Category: GladeVCP

It's all about this line:
self.emc.jogging(1)

I commented it out and the errors stopped appearing
    def do_key_jog(self,axis,direction,action):
        if self.data._JOG in self.check_mode(): # jog mode active:
                    if not action: cmd = 0
                    elif direction: cmd = 1
                    else: cmd = -1


                    self.emc.jogging(1) <-- HERE


                    #print(self.data.jog_increments[self.data.current_jogincr_index])
                    if self.data.jog_increments[self.data.current_jogincr_index] == ("continuous"): # continuous jog
                        #print("active axis jog:",axis)
                        self.emc.continuous_jog(axis,cmd)
                    else:
                        #print("jog incremental")
                        if cmd == 0: return # don't want release of button to stop jog
                        self.mdi_control.mdi.emcstat.poll()
                        if self.mdi_control.mdi.emcstat.state != 1: return
                        jogincr = self.data.jog_increments[self.data.current_jogincr_index]
                        distance = self.parse_increment(jogincr)
                        self.emc.incremental_jog(axis,cmd,distance)

Is it necessary if we are already in JOG mode?
Displaying 23551 - 23565 out of 24336 results.
Time to create page: 0.496 seconds
Powered by Kunena Forum