Advanced Search

Search Results (Searched for: )

  • Aciera
  • Aciera's Avatar
05 Jul 2024 16:19
Replied by Aciera on topic Trajectory Planner using Ruckig Lib

Trajectory Planner using Ruckig Lib

Category: General LinuxCNC Questions

nice!
I like the added preview of the tool orientation.
  • Donb9261
  • Donb9261's Avatar
05 Jul 2024 15:20
Replied by Donb9261 on topic Position vs Velocity mode

Position vs Velocity mode

Category: EtherCAT

Hello,

At 60000mm/m the velocity is 1m/s or 39.37 IPS. In the world of linear motion this is quite fast. In the world of CNC, that is astronomical speed. Typically reserved for G00 commands for initial positioning. The limiter here would be the cutting feed. No tool can cut effectively at that speed of 60000mm/m. The scale of limitation is determined by the material being cut as a measure of chip load. Even the softest materials such as MDF have a finite chip load that will limit the overall max velocity of the command. Typically near 8800mm/m or 8.8m/m. Pretty simple.

If I have a 10mm pitch ball screw which will provide 10mm of linear travel per rotation I would need to rotate the ball screw 880 times to move exactly 8.8m over 1 minute. Again, pretty simple. That also means my motor will rotate at exactly 880 RPM. Or 14.6 RPS. If I need to move 1mm at that velocity of 146mm/s I would arrive at my desired position in .146 seconds or 146ms. If I use the same velocity for .5mm then my time of arrival is cut in half. and so forth. Since we are on a 1ms tick cycle and assume 50% of the time on the bus for sending the data to the slave and the slave responds in real time we can assume that the slave can effectively make the 1mm move 6 times +- per second. Not that anyone would ever do this, but for example sake... If I use a 20mm pitch ball screw I can double my speed to desired position of 1mm@8.8m/m at a reduced force arriving in .073ms(assumes a command multiplier in the slave). Now having the ability to move this distance more than 10 times per second. I can further modify this by increasing the command multiplier through EGR or additional pitch on the ball screw to say 50mm. The above only allow for less transmitting of positional data without having to lower the bus speed because the controller need only send half or less the moves to achieve that same ends. *Note - The above assumes you have a 23bit ABS system to allow for maximum PID control at such speeds. Since LCNC is Position Mode only you need the drive to have as much feedback data as possible so that the PID sampling is very tight keeping actual error low.

As you can see, if one is trying to use EtherCat via CoE at 1ms tick cycles, the machine performance with LCNC is more than ample to meet the specifications required to match the maximum effective cutting performance.

The positioning error is also easily managed by a drive that has a 1Khz sampling cycle at the speeds above. Although most drives of substance have a 10Khz sample rate such as Omron, Yaskawa, LS Electric. This is a function of the drive and not of LCNC since it is in Open Loop from LCNC to the drive. The drive closes the loop and uses its' internal algorithms to control the PID.

The accuracy of each move is determined by the drive/mechanical as a function of inertial load and the ability for the drive to control the jerk loads and closely manage settling time. Settling time being a function of the ability for the drive to acknowledge position arrival once settling is complete and is ready to accept the next command given.

At the end of the day, the performance of LCNC is well within tolerance for machine tool applications as long as the hardware choices by the end user are sufficient to drive the given load at desired velocities within a desired overall accuracy.

For nm following error, one would have to have a RT kernel written specifically to only handle the Ecat bus and have a dedicated driver for the PHY(Ethernet Port) to only allow for ECAT bus frames with no interrupts and absolutely zero addressing. This system would be a subsystem of the main kernel. More or less a PC in a PC. Kingstar uses Interval Zero RTX64 in a windows environment. The RTX64 RT is a sub OS that runs along side Windows. Kingstar layered in the ECAT framework inside the RTX64 OS and has achieved a true PC based ECAT with 100 um tick cycles with DC. It works flawlessly. But, it only works in Windows. Mach4 worked with them with me as an advisor to form the integration about 8 years ago. It still works today.

Mach4 has an issue though. They use wxLua for the GUI control and it crashes a lot making it unreliable. Hence, I never pushed forward due to the fact that Mach4 staff would not move away from the terrible wxLua system. The TP designed by the lead programmer is bar none one of the best but I require 99% uptime for my controllers. Mach4 barley breaks 90%. One side note is that I was able to during the same time have Mach4 built with custom Macro B and exactly mimic Fanuc macro variables for a linear compat for my clients who wanted to shift to Mach4 for cost but not sacrifice the overhead of rewriting hundreds/thousands of fixed programs that utilized Macro B. Still works today. But like I said, the wxLua aspect was a deal breaker.

If application desire is to have nm error at speed, you need to use Torque mode over ECAT and use a controller that accommodates that functionality to which, as far as I can see LCNC/Etherlabs has not implemented fully. You would be on your own to write the kernel config and PHY driver for that. Possibly even move it away from the uspace domain. Hard to say. If I were to do what you attempting, I would use a different CNC software specifically deigned for that purpose. But, I do fully understand the cost factor. Unless maybe you can get Biden to subsidize your desires... Lol.

I would find it more than interesting to see if you can achieve your goals in LCNC. Is it possible? Sure. Anything is possible.
  • PCW
  • PCW's Avatar
05 Jul 2024 15:15

how to solve this..i also get sometimes joint 0/1 not following error

Category: PnCConf Wizard

hm2_eth: ERROR: Could not retrieve hardware address (MAC) of 10.10.10.1: Connection refused

Wrong IP address for the Mesa card (unless you changed it)
  • Grotius
  • Grotius's Avatar
05 Jul 2024 15:13
Replied by Grotius on topic Trajectory Planner using Ruckig Lib

Trajectory Planner using Ruckig Lib

Category: General LinuxCNC Questions

@Hi,

I just made a test for 5 axis. xyz abc.
Where a rotates around x, b rotates around y. The c axis is the cone symetric axis, like spindle orientation.

The tool direction line is 15mm of lenght.
  • PCW
  • PCW's Avatar
05 Jul 2024 15:13 - 05 Jul 2024 15:27

Error finishing read! Iter and joint following error in Stepper machine

Category: General LinuxCNC Questions

The ping times are pretty bad.

If you have an intel Ethernet chip have you disabled IRQ coalescing?
This is described in the hm2_eth manual page:

man hm2_eth

gnipsel.com/linuxcnc/debian-12-eth.html

If you get the error right when the torch starts, that suggest a EMI 
or grounding issue . Do you have a flyback diode across the relay coil?
  • jmelson
  • jmelson
05 Jul 2024 14:46

LinuxCNC communicate Via SERIAL Port to existing hardware?

Category: Driver Boards

The L292 is listed as a DC motor driver. However a pair of them can be used to control a stepper motor.

If the motors have encoders on them, they may be DC servo motors. The drawing seems to show two L292's per motor, so they are likely steppers.

Jon
  • PCW
  • PCW's Avatar
05 Jul 2024 14:46

BLDC component with 8i20 - how to get to work?

Category: Driver Boards

A runaway means positive feedback

Does the motor hold position with just the P term?
I would comment these lines out:

net encoder.02.vel -> pid.3.feedback-deriv
net motor.02.vel-cmd -> pid.3.command-deriv

and try again

Also note that raising the servo thread rate (to say 4 KHz)
will improve the PID loop performance, and also that
final tuning needs to be done under load.
  • Cant do this anymore bye all
  • Cant do this anymore bye all's Avatar
05 Jul 2024 14:26
Replied by Cant do this anymore bye all on topic Data transfer LinuxCNC to / from custom board - Solved

Data transfer LinuxCNC to / from custom board - Solved

Category: Advanced Configuration

Alpologies to Andy for jumping in.

3rd channel should read “channel number 3”
It’s actually “input number 10” not 3.

Sorry it’s late Down Under.
  • viesturs.lacis
  • viesturs.lacis
05 Jul 2024 14:25
Replied by viesturs.lacis on topic BLDC component with 8i20 - how to get to work?

BLDC component with 8i20 - how to get to work?

Category: Driver Boards

I got a runaway while following PCWs procedure and was adjusting D parameter.Is there something I should check about the config that could cause it?
  • tjtr33
  • tjtr33's Avatar
05 Jul 2024 14:23

Preparing native Raspberry Pi OS for LinuxCNC

Category: Installing LinuxCNC

Thanks very much.
You tell me severalnew things, esp re: spi.

My trusty pentium4 died recently,
after years of being on lifesupport.

luckily, I have an Rpi4 to try SPI remora MKS masahup.
(and a i686 that I can dictate this to)

(note for oother vision impairted, try nerd-dictation)

again, thanks!
  • Cant do this anymore bye all
  • Cant do this anymore bye all's Avatar
05 Jul 2024 13:56 - 05 Jul 2024 14:12
Replied by Cant do this anymore bye all on topic Data transfer LinuxCNC to / from custom board - Solved

Data transfer LinuxCNC to / from custom board - Solved

Category: Advanced Configuration

The 7i73 connects to the Smart serial port on your Mesa card. Talking about the "kernel" in this instance can be a bit confusing. Basically its easier if you think about "talking" to Linuxcnc as that is basically the source & destination.
I think the 7i93 would require a suitable daughter card with the SSerial interface on it, something like a 7I44 (although there are other options it just depends how far you want to delve into DIY forum.linuxcnc.org/show-your-stuff/48185-m-e-s-s-i-board is an example whilst shown for a 7i92 the Mesa Infrastructure is great).
I see in your first post you mention 7i95T
Having a read of the 7i73 Mesa manual will help in understanding how it all goes together.

hm2_7i92.0.7i73.1.3.input-10-not

Input number 3 not (input 3 inverted)
connected to the 3rd channel on sserial port 1 (each port can have up to 8 channels)
connected via a 7i92 card

The 7i73 will have a bunch of other inputs, outputs, encoder pins exported, plus a few others depending on how you config the board on startup.

Data transfers happen in the hm2 read & write functions of your card in the servo thread, which is setup in your hal file.

The docs give a better explanation.
linuxcnc.org/docs/2.9/html/man/man9/sserial.9.html#7I73

This is what I think wold need doing.
To connect directly to a serial port of your computer it would have to be hardware port (not USB), you would be limited to 115200 baud unless you have an exotic hi speed card (smart serial operates at 2.5M), someone would have to write a realtime driver for the port that handles the comms to the 7i73, not the easiest of jobs, would require reading and understanding the protocol used and implementing it as well.
  • LGeurts
  • LGeurts
05 Jul 2024 13:36

Integrating a BCL-AMP capacitive sensor to LinuxCNC

Category: Plasma & Laser

Hello Masi,
Have you already created a cicruit or device to convert the frequency signal to 0-10V or 4-20mA converter? This would make it a lot easier to control the height.
  • slowpoke
  • slowpoke
05 Jul 2024 13:30

Data transfer LinuxCNC to / from custom board - Solved

Category: Advanced Configuration

Andy,

Thanks for the input, I have a few questions. Keep in mind I'm not a software guy, I can write embedded C type stuff but have no clue about the Linux kernel or anything related to that. I did with some help interface a few pins to the 7i95t by tweaking a HAL file.

I hope you don't mind but I will ask specific questions so I can fill in the knowledge blanks I have at the moment, here goes:

Regarding the 7i73:
1) I guess that you connect the 7i73 RS-422 interface to a serial port of the Linux PC, and then enable some sort of 7i73 driver in LinuxCNC that magically establishes the communication link between the two?
2) With the link established data transfer then happens quickly and automatically, if for example a pin changes status on the 7i73 a register in the kernel is updated?
3) How does one map the various 7i73 inputs to the desired action in the kernel?
4) I guess the values in the kernel registers can also be mapped to drive the outputs of the 7i73?
5) I'm guessing the mapping (3-4) is done in a HAL file?

Regarding the matrix_kb9 approach:
6) If I don't use a 7i93, it's not obvious how I would get the integers into the kernel hardware wise?

Thanks,
Jeff
  • Catch22
  • Catch22's Avatar
05 Jul 2024 12:55
Replied by Catch22 on topic Probe Basic Help

Probe Basic Help

Category: QtPyVCP

Ok I will do that, thank you..
  • B.Reilly01
  • B.Reilly01
05 Jul 2024 12:52
Replied by B.Reilly01 on topic Simple ATC help

Simple ATC help

Category: Basic Configuration

Have you written your new M6 code yet? I think what you're trying to accomplish is taken care of by change_prolog and code you write into M6.

If I understand correctly, you have a rack toolchanger. To do a tool change, you naturally have to

1.) Move over the tool 2.) Lower over the tool 3.)clamp the tool.

There are a few more steps to a robust, successful M6, like checking for tool in spindle, etc.

I suggest reading up  HERE .  It feels like a lot (and it is), but it can be done.  I have an example of a carousel style changer that works (almost entirely), if you want to look at that.  

You will need to include stdglue.py if you want to use the standard prolog and epilog.  The Prolog prepares the tool number info I think.

Let me know if I'm off base.
Displaying 24556 - 24570 out of 26028 results.
Time to create page: 0.576 seconds
Powered by Kunena Forum