Search Results (Searched for: )
- amanker
- amanker
07 Jun 2024 07:59
Help me setting up My LinuxCNC was created by amanker
Help me setting up My LinuxCNC
Category: Basic Configuration
I am using MKS Octopus Pro Board STM32F429 with Remora SPI and Raspberry PI4.
I wanted to use RPI5 but SPI is not working in LinuxCNC for rpi5. I am also using MPG Pendant (commonly available on eBay with MPG encoder with axis and scale selector and eStop.)
I am able to move steppers but I want to properly setup LinuxCNC with Kinamatics.
Whats Working.
1. Steppers moves
2. Limit/Home switches
3. PWM spindle
4. eStop
5. Touch Probe
I have made my machine to have two configurations. XYZAB(A Rotary on Table & B Rotating Spindle) and XYZAC (Its a common trinunion table)
My Problems.
1. I want to enable or disable my machine with Pendant (eStop Switch) not with GUI.
2. Stepper moves but on higher feed its slows down in middle of movement. Up 1000mm/sec its working. 1000-2200 not moving as expected slows down in middle. above 2200 joint follow error.
3. I want to implement both Kinamatics. XYZAC is available on linuxcnc forum but My type XYZAB config is not available(I googled a lot)
Here are my configuration files
ini file
Hal FIle
mpg.hal
qt_dragon_hd_postgui hal
I wanted to use RPI5 but SPI is not working in LinuxCNC for rpi5. I am also using MPG Pendant (commonly available on eBay with MPG encoder with axis and scale selector and eStop.)
I am able to move steppers but I want to properly setup LinuxCNC with Kinamatics.
Whats Working.
1. Steppers moves
2. Limit/Home switches
3. PWM spindle
4. eStop
5. Touch Probe
I have made my machine to have two configurations. XYZAB(A Rotary on Table & B Rotating Spindle) and XYZAC (Its a common trinunion table)
My Problems.
1. I want to enable or disable my machine with Pendant (eStop Switch) not with GUI.
2. Stepper moves but on higher feed its slows down in middle of movement. Up 1000mm/sec its working. 1000-2200 not moving as expected slows down in middle. above 2200 joint follow error.
3. I want to implement both Kinamatics. XYZAC is available on linuxcnc forum but My type XYZAB config is not available(I googled a lot)
Here are my configuration files
ini file
# Basic LinuxCNC config for testing of Remora firmware
[EMC]
MACHINE = Remora-XY
DEBUG = 5
VERSION = 1.1
[DISPLAY]
DISPLAY = qtvcp qtdragon_hd
#USER_COMMAND_FILE = usercommand_regularmac_800.py
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_0_OVERRIDE = 0.5
MAX_SPINDLE_0_OVERRIDE = 1.5
DEFAULT_SPINDLE_0_SPEED = 1200
SPINDLE_INCREMENT = 200
MIN_SPINDLE_0_SPEED = 200
MAX_SPINDLE_0_SPEED = 1200
MAX_SPINDLE_POWER = 500
DEFAULT_LINEAR_VELOCITY = 15.00
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 40.00
DEFAULT_ANGULAR_VELOCITY = 25.00
MIN_ANGULAR_VELOCITY = 0
MAX_ANGULAR_VELOCITY = 50.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = ~/linuxcnc/nc_files
INCREMENTS = Continuous, 50mm, 10mm, 5mm, 1mm, .5mm, .1mm, .05mm, .01mm
#ANGULAR_INCREMENTS = 1,5,10,30,45,90
NGCGUI_SUBFILE_PATH = ~/linuxcnc/nc_files/examples/ngcgui_lib
# pre selected programs tabs
# specify filenames only, files must be in the NGCGUI_SUBFILE_PATH
NGCGUI_SUBFILE = slot.ngc
NGCGUI_SUBFILE = qpocket.ngc
#EMBED_TAB_NAME = Vismach 5 Axis
#EMBED_TAB_COMMAND = qtvcp vismach_5axis_gantry
#EMBED_TAB_LOCATION = tabWidget_utilities
[KINS]
JOINTS = 5
#KINEMATICS =trivkins coordinates=XYZ kinstype=BOTH
KINEMATICS =trivkins coordinates=XYZAC
[FILTER]
PROGRAM_EXTENSION = .py Python Script
py = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
SUBROUTINE_PATH = :~/linuxcnc/nc_files/examples/ngcgui_lib:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs; \
~/linuxcnc/nc_files/examples/probe/basic_probe/macros:~/linuxcnc/nc_files/examples/remap-subroutines: \
~/linuxcnc/nc_files/examples/ngcgui_lib/remap_lib
ON_ABORT_COMMAND=O <on_abort> call
RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.0005 G80 G90 G94 G97 M5 M9
[MDI_COMMAND_LIST]
# for macro buttons
MDI_COMMAND = G0 Z25;X0 Y0;Z0, Goto\nUser\nZero
MDI_COMMAND = G53 G0 Z0;G53 G0 X0 Y0,Goto\nMachn\nZero
[PROBE]
#USE_PROBE = versaprobe
USE_PROBE = basicprobe
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
[HAL]
HALFILE = remora-xyz.hal
HALFILE = mpg.hal
POSTGUI_HALFILE = qtdragon_hd_postgui.hal
#POSTGUI_HALFILE = postgui_call_list.hal
HALUI = halui
[HALUI]
[TRAJ]
COORDINATES = X Y Z A C
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_LINEAR_VELOCITY = 15.00
MAX_LINEAR_VELOCITY = 40.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
[AXIS_X]
MAX_VELOCITY = 40.00
MAX_ACCELERATION = 500.0
MIN_LIMIT = 0.0
MAX_LIMIT = 300.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = 0.0
MAX_LIMIT = 300.0
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 500.0
STEPGEN_MAXACCEL = 500.0
SCALE = 1600
FERROR = 2
MIN_FERROR = 2.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0
HOME_LATCH_VEL = 0
HOME_SEQUENCE = 0
[AXIS_Y]
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 20.0
MIN_LIMIT = 0.0
MAX_LIMIT = 200.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = 0.0
MAX_LIMIT = 200.0
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 20.0
STEPGEN_MAXACCEL = 2000.0
SCALE = 1600.00
FERROR = 9.0
MIN_FERROR = 5.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0
HOME_LATCH_VEL = 0
HOME_SEQUENCE = 0
[AXIS_Z]
OFFSET_AV_RATIO = 0.2
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 20.0
MIN_LIMIT = 0
MAX_LIMIT = 200
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = 0
MAX_LIMIT = 200
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 20.0
STEPGEN_MAXACCEL = 300.0
SCALE = 1200.00
FERROR = 5
MIN_FERROR = 1.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0
HOME_LATCH_VEL = 0
HOME_SEQUENCE = 0
[AXIS_A]
OFFSET_AV_RATIO = 0.2
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 20.0
MIN_LIMIT = 0
MAX_LIMIT = 360
[JOINT_3]
TYPE = ANGULAR
HOME = 0.0
MIN_LIMIT = 0
MAX_LIMIT = 360
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 20.0
STEPGEN_MAXACCEL = 300.0
SCALE = 71.111
FERROR = 5
MIN_FERROR = 1.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0
HOME_LATCH_VEL = 0
HOME_SEQUENCE = 0
[AXIS_C]
OFFSET_AV_RATIO = 0.2
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 20.0
MIN_LIMIT = 0
MAX_LIMIT = 180
[JOINT_4]
TYPE = ANGULAR
HOME = 0.0
MIN_LIMIT = 0
MAX_LIMIT = 180
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 20.0
STEPGEN_MAXACCEL = 300.0
SCALE = 71.111
FERROR = 5
MIN_FERROR = 1.0
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 0
HOME_LATCH_VEL = 0
HOME_SEQUENCE = 0
Hal FIle
# load the realtime components
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
#loadrt remora
loadrt remora chip_type=STM SPI_clk_div=32 PRU_base_freq=120000
#loadrt remora chip_type=LPC SPI_clk_div=64
# estop loopback, SPI comms enable and feedback
net user-enable-out <= iocontrol.0.user-enable-out => remora.SPI-enable
net user-request-enable <= iocontrol.0.user-request-enable => remora.SPI-reset
net remora-status remora.SPI-status => iocontrol.0.emc-enable-in
# add the remora and motion functions to threads
addf remora.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf remora.update-freq servo-thread
addf remora.write servo-thread
# Joint 0 setup
setp remora.joint.0.scale [JOINT_0]SCALE
setp remora.joint.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
net xpos-cmd <= joint.0.motor-pos-cmd => remora.joint.0.pos-cmd
net j0pos-fb <= remora.joint.0.pos-fb => joint.0.motor-pos-fb
net j0enable <= joint.0.amp-enable-out => remora.joint.0.enable
# Joint 1 setup
setp remora.joint.1.scale [JOINT_1]SCALE
setp remora.joint.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
net j1pos-cmd <= joint.1.motor-pos-cmd => remora.joint.1.pos-cmd
net j1pos-fb <= remora.joint.1.pos-fb => joint.1.motor-pos-fb
net j1enable <= joint.1.amp-enable-out => remora.joint.1.enable
# Joint 2 setup
setp remora.joint.2.scale [JOINT_2]SCALE
setp remora.joint.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
net j2pos-cmd <= joint.2.motor-pos-cmd => remora.joint.2.pos-cmd
net j2pos-fb <= remora.joint.2.pos-fb => joint.2.motor-pos-fb
net j2enable <= joint.2.amp-enable-out => remora.joint.2.enable
# Joint 3 setup
setp remora.joint.3.scale [JOINT_3]SCALE
setp remora.joint.3.maxaccel [JOINT_3]STEPGEN_MAXACCEL
net j3pos-cmd <= joint.3.motor-pos-cmd => remora.joint.3.pos-cmd
net j3pos-fb <= remora.joint.3.pos-fb => joint.3.motor-pos-fb
net j3enable <= joint.3.amp-enable-out => remora.joint.3.enable
# Joint 4 setup
setp remora.joint.4.scale [JOINT_4]SCALE
setp remora.joint.4.maxaccel [JOINT_4]STEPGEN_MAXACCEL
net j4pos-cmd <= joint.4.motor-pos-cmd => remora.joint.4.pos-cmd
net j4pos-fb <= remora.joint.4.pos-fb => joint.4.motor-pos-fb
net j4enable <= joint.4.amp-enable-out => remora.joint.4.enable
# end-stops
net X-min remora.input.0 => joint.0.neg-lim-sw-in
# net X-max remora.input.1 => joint.0.home-sw-in joint.0.pos-lim-sw-in
net Y-min remora.input.2 => joint.1.neg-lim-sw-in
# net Y-max remora.input.3 => joint.1.home-sw-in joint.1.pos-lim-sw-in
net Z-min remora.input.4 => joint.2.neg-lim-sw-in
# net Z-max remora.input.5 => joint.2.home-sw-in joint.2.pos-lim-sw-in
# Probe
net probe-input motion.probe-input <= remora.input.6
# net probe-input => qtdragon.led-probe
# Spindle
loadrt pwmgen output_type=0
addf pwmgen.update servo-thread
addf pwmgen.make-pulses servo-thread
net spindle-speed-cmd spindle.0.speed-out => pwmgen.0.value
net spindle-on spindle.0.on => pwmgen.0.enable
net spindle-pwm pwmgen.0.pwm => remora.output.0
# Set the spindle's top speed in RPM
setp pwmgen.0.scale 12000
# net spindle-speed-feedback spindle.0.speed-out-rps => spindle.0.speed-in
mpg.hal
# Jog Pendant
loadrt PRUencoder names=encoder.0
addf PRUencoder.capture-position servo-thread
setp encoder.0.position-scale 400.0
# connect the hal encoder to linuxcnc
net encoder-count <= remora.PV.0 => encoder.0.raw_count
loadrt conv_float_s32 count=1
addf conv-float-s32.0 servo-thread
loadrt mux4 count=1
addf mux4.0 servo-thread
# If your MPG outputs a quadrature signal per click set x4 to 1
# If your MPG puts out 1 pulse per click set x4 to 0
#setp encoder.0.x4-mode 0
# For velocity mode, set to 1
# In velocity mode the axis stops when the dial is stopped
# even if that means the commanded motion is not completed,
# For position mode (the default), set to 0
# In position mode the axis will move exactly jog-scale
# units for each count, regardless of how long that might take,
setp joint.0.jog-vel-mode 1
setp joint.1.jog-vel-mode 1
setp joint.2.jog-vel-mode 1
setp joint.3.jog-vel-mode 1
setp joint.4.jog-vel-mode 1
# This sets the scale that will be used based on the input to the mux4
setp mux4.0.in0 0.1
setp mux4.0.in1 0.01
setp mux4.0.in2 0.001
# The inputs to the mux4 component
net scale1 mux4.0.sel0 <= remora.input.10
net scale2 mux4.0.sel1 <= remora.input.9
# The output from the mux4 is sent to each axis jog scale
net mpg-scale <= mux4.0.out
net mpg-scale => joint.0.jog-scale axis.x.jog-scale
net mpg-scale => joint.1.jog-scale axis.y.jog-scale
net mpg-scale => joint.2.jog-scale axis.z.jog-scale
net mpg-scale => joint.3.jog-scale axis.a.jog-scale
net mpg-scale => joint.4.jog-scale axis.c.jog-scale
# The MPG inputs
#net mpg-a encoder.0.phase-A <= remora.input.7
#net mpg-b encoder.0.phase-B <= remora.input.8
# The Axis select inputs
net mpg-x joint.0.jog-enable axis.x.jog-enable <= remora.input.11
net mpg-y joint.1.jog-enable axis.y.jog-enable <= remora.input.12
net mpg-z joint.2.jog-enable axis.z.jog-enable <= remora.input.13
net mpg-a joint.3.jog-enable axis.a.jog-enable <= remora.input.14
net mpg-c joint.4.jog-enable axis.c.jog-enable <= remora.input.15
# The encoder output counts to the axis. Only the selected axis will move.
net encoder-count conv-float-s32.0.in
net encoder-counts conv-float-s32.0.out
#net encoder-counts <= encoder.0.counts
net encoder-counts => joint.0.jog-counts axis.x.jog-counts
net encoder-counts => joint.1.jog-counts axis.y.jog-counts
net encoder-counts => joint.2.jog-counts axis.z.jog-counts
net encoder-counts => joint.3.jog-counts axis.a.jog-counts
net encoder-counts => joint.4.jog-counts axis.c.jog-counts
qt_dragon_hd_postgui hal
# load components
########################################################################
loadrt logic names=logic-and personality=0x102
addf logic-and servo-thread
# load a summing component for adding spindle lift and Z compensation
loadrt scaled_s32_sums
addf scaled-s32-sums.0 servo-thread
loadusr -Wn z_level_compensation z_level_compensation
# method parameter must be one of nearest(2), linear(1), cubic (0)
setp z_level_compensation.fade-height 0.0
setp z_level_compensation.method 1
# connect signals
########################################################################
net spindle-speed-limited => spindle.0.speed-out-rps => spindle.0.speed-in
# the unlink pin commands are only used, because they are connected
# in core_sim.hal and we use this file to simulate
unlinkp iocontrol.0.tool-change
unlinkp iocontrol.0.tool-changed
unlinkp iocontrol.0.tool-prep-number
net tool-change hal_manualtoolchange.change <= iocontrol.0.tool-change
net tool-changed hal_manualtoolchange.changed <= iocontrol.0.tool-changed
net tool-prep-number hal_manualtoolchange.number <= iocontrol.0.tool-prep-number
net eoffset-clear axis.z.eoffset-clear
net eoffset-counts axis.z.eoffset-counts
setp axis.z.eoffset-scale .001
net eoffset-total axis.z.eoffset
net eoffset-total qtdragon.eoffset-value
setp axis.z.eoffset-enable True
## external offsets for spindle pause function
##################################################
net eoffset-clear qtdragon.eoffset-clear
net eoffset-spindle-count <= qtdragon.eoffset-spindle-count
net spindle-pause qtdragon.spindle-inhibit spindle.0.inhibit
net probe-input qtdragon.led-probe
## Z level compensation
####################################################
net eoffset-clr2 z_level_compensation.clear => logic-and.in-01
net xpos-cmd z_level_compensation.x-pos <= joint.0.motor-pos-cmd
net ypos-cmd z_level_compensation.y-pos <= joint.1.pos-cmd
net zpos-cmd z_level_compensation.z-pos <= joint.2.pos-cmd
net z_compensation_on z_level_compensation.enable-in <= qtdragon.comp-on
net eoffset-zlevel-count z_level_compensation.counts => qtdragon.eoffset-zlevel-count
net eoffset-spindle-count scaled-s32-sums.0.in0
net eoffset-zlevel-count scaled-s32-sums.0.in1
setp scaled-s32-sums.0.scale0 1000
net eoffset-counts scaled-s32-sums.0.out-s
- rajsekhar
- rajsekhar
07 Jun 2024 07:57
7i92 configuration with two daughter card was created by rajsekhar
7i92 configuration with two daughter card
Category: Basic Configuration
I am trying to configure 7i92 +7i76(+7i84) on P2 of 7i92 + 7i78 on P1 of 7i92.
HAL and INI attached.
I have 5 stepgen (on 7i76)+ 4stepgen (on 7i78)= total 9 stepgen and total 2 encoder (one on each daughter card). But while starting LCNC, error occurs (only 5 stepgen and one encoder shows), report attached.
I used "7i92-internal data" and "7i76x2" configuration in PNCconfig.
It seems 7i78 is not included in actual configuration. How to rectify??
HAL and INI attached.
I have 5 stepgen (on 7i76)+ 4stepgen (on 7i78)= total 9 stepgen and total 2 encoder (one on each daughter card). But while starting LCNC, error occurs (only 5 stepgen and one encoder shows), report attached.
I used "7i92-internal data" and "7i76x2" configuration in PNCconfig.
It seems 7i78 is not included in actual configuration. How to rectify??
- Aciera
07 Jun 2024 07:52
Replied by Aciera on topic kleine 5 Achsfräse
kleine 5 Achsfräse
Category: Deutsch
Die Kinematik wird über den Eintrag 'KINEMATICS' in der Rubrik [KINS] in der .ini Datei definiert. Die verweist auf eine compilierte C-Komponente, die das mathematische Model der Vorwärts- und Rückwärtskinematik enthält. Zwischen 'head' und 'table' Rotationen wird auch hier unterschieden aber nicht immer konsequent in der Benennung angegeben. In deinem Fall ist es eine table/table Kinematik. Wie du schon bemerkt hast gibt es für deine Maschine bereits fertige Kinematiklösungen in LinuxCNC.
Ob du nun deine Maschine als XYZAB, XYZAC oder XYZBC definierst wird wahrscheinlich vorwiegend von der Anwendung abhängen. Grundsätzlich ist es auch problemlos möglich zwischen verschiedenen Kinematiken zu wechseln. Ob die Linearachsen XYZ nun die Spindel oder den Tisch verfahren spielt in LinuxCNC für die Kinematik keine Rolle da die positive Richtung immer in Bezug auf die Werkzeugbewegung definiert ist.
Schau doch mal die Simulationskonfigurationen an:
'sim/axis/vismach/5axis/table-dual-rotary' für XYZAB
'sim/axis/vismach/5axis/table-rotary-tilting' für XYZAC und XYZBC
Graphische Simulation geht über 'VISMACH' siehe die Simulationskonfigs von oben. Ist mit einer etwas steilen Lernkurve verbunden. Da könnte ich dir aber helfen.
Zum PostProcessor kann ich keine Angaben machen.
Für eine Mesakarte ist die Latency nicht wahnsinnig wichtig hier gibt es eher Probleme mit dem Netzwerkchip (Am besten wäre ein PC mit Intel Network Chip)
Bei den GUI's wäre noch 'QTDragon' zu erwähnen, Ich selbst nutze Gmoccapy.
Ob du nun deine Maschine als XYZAB, XYZAC oder XYZBC definierst wird wahrscheinlich vorwiegend von der Anwendung abhängen. Grundsätzlich ist es auch problemlos möglich zwischen verschiedenen Kinematiken zu wechseln. Ob die Linearachsen XYZ nun die Spindel oder den Tisch verfahren spielt in LinuxCNC für die Kinematik keine Rolle da die positive Richtung immer in Bezug auf die Werkzeugbewegung definiert ist.
Schau doch mal die Simulationskonfigurationen an:
'sim/axis/vismach/5axis/table-dual-rotary' für XYZAB
'sim/axis/vismach/5axis/table-rotary-tilting' für XYZAC und XYZBC
Graphische Simulation geht über 'VISMACH' siehe die Simulationskonfigs von oben. Ist mit einer etwas steilen Lernkurve verbunden. Da könnte ich dir aber helfen.
Zum PostProcessor kann ich keine Angaben machen.
Für eine Mesakarte ist die Latency nicht wahnsinnig wichtig hier gibt es eher Probleme mit dem Netzwerkchip (Am besten wäre ein PC mit Intel Network Chip)
Bei den GUI's wäre noch 'QTDragon' zu erwähnen, Ich selbst nutze Gmoccapy.
- amanker
- amanker
07 Jun 2024 07:36
Replied by amanker on topic Need help in choosing controller board from small honby cnc.
Need help in choosing controller board from small honby cnc.
Category: Driver Boards
How I monitor status os Estop so that I can On/Off machine with hardware buttons.
- Cant do this anymore bye all
07 Jun 2024 06:26
Replied by Cant do this anymore bye all on topic Real Time Kernel
Real Time Kernel
Category: General LinuxCNC Questions
Rad this
linuxcnc.org/downloads/
linuxcnc.org/downloads/
- ms_5axis
- ms_5axis
07 Jun 2024 06:12
kleine 5 Achsfräse was created by ms_5axis
kleine 5 Achsfräse
Category: Deutsch
Hallo zusammen,
wir haben eine kleine 5 Achs Fräse im Labor bei der leider die Steuerung nicht mehr richtig funktioniert. Um die Fräse weiterhin verwenden zu können habe ich überlegt die Steuerung durch Linux CNC zu ersetzen.
Die Fräse ist im Prinzip ein größere Version der PocketNC. Die Ansteuerung erfolgt wie bei den meisten Fräsen hier über kleine ClosedLoop Schrittmotoren ähnlich den JMC. Beide Drehachsen scheiden sich in einem gemeinsamen Punkt. Die Spindel hat eine Leistung von 800W und wird über einen Frequenzumrichter angesteuert. Mechanisch ist soweit alles in Ordnung es geht rein um die Steuerung. Der Leistungsteil inkl. Not-Aus etc. wird von einem Elektriker sauber im Schaltschrank eingebaut.
Als Steuerkarte steht eine 7i96s zur Verfügung. Die ersten Tests mit der Karte waren soweit auch erfolgreich (Standard Maschine mit einem JMC CLS zum testen).
Das ist die Maschine
build-its-inprogress.blogspot.com/2020/1...top-5-axis-mill.html
hier noch ein Video dazu
Später soll die Maschine um ein Handrad (WHB04B-6 oder ähnlich) ergänzt werden.
Nun zu den Fragen:
Wie wird die Kinematik in Linux CNC definiert?
linuxcnc.org/docs/master/html/motion/5-axis-kinematics.html
Unter 5.1 wird ein Beispiel für die XYZAC Maschine gezeigt
Nach meinem Verständnis passt dies auch für unsere Maschine
Z ist die Werkzeugachse
X bewegt die Werkzeugachse vor und zurück
Y bewegt die beiden Drehachsen + Werkstück hoch und runter
A dreht um die X Achse
C dreht um die Z-Achse - wobei es über die Definition des Nullpunktes auch eine B Achse sein ... wo sind hier die Vor / Nachteile?
In Fusion360 wird die Maschinendefinition aufgeteilt in head und table. In LinuxCNC scheint es diese Unterscheidung nicht zu geben.
Dort habe ich XZ-Head YAC table...
Pocket NC definiert die Maschine als XYZAB
github.com/PocketNC/Settings/blob/master.../v2revR/PocketNC.ini
Welche GUI?
Nach meinem Gefühl ist Axis solide und gut gepflegt hat jedoch ein altes und aus meiner Sicht nicht so intuitives Design
ProbeBasic gefällt mir optisch gut hat jedoch keine so große Community und ich bin auch nicht sicher wie es zukünftig mit Updates aussieht
Gmoccapy sehe ich moderner als Axis aber immer noch solide und weit im Projekt Linux CNC verankert
Wünschenswert wäre auch eine grafische Simulation der Maschine
Wie ist eure Meinung? Welche GUI soll ich verwenden?
Postprozessor
Geplant ist der Einsatz von Fusion360 beziehungsweise Inventor CAM. Sind für den Postprozessor spezielle Anpassungen erforderlich? Gibt es hierzu Tutorials / Beispiele im Bereich 5 Achs?
Welche Latency Werte sollte mein PC haben um alle 5 Achsen zuverlässig ansteuern zu können?
Vielen Dank für eure Hilfe
Grüße
Manuel
wir haben eine kleine 5 Achs Fräse im Labor bei der leider die Steuerung nicht mehr richtig funktioniert. Um die Fräse weiterhin verwenden zu können habe ich überlegt die Steuerung durch Linux CNC zu ersetzen.
Die Fräse ist im Prinzip ein größere Version der PocketNC. Die Ansteuerung erfolgt wie bei den meisten Fräsen hier über kleine ClosedLoop Schrittmotoren ähnlich den JMC. Beide Drehachsen scheiden sich in einem gemeinsamen Punkt. Die Spindel hat eine Leistung von 800W und wird über einen Frequenzumrichter angesteuert. Mechanisch ist soweit alles in Ordnung es geht rein um die Steuerung. Der Leistungsteil inkl. Not-Aus etc. wird von einem Elektriker sauber im Schaltschrank eingebaut.
Als Steuerkarte steht eine 7i96s zur Verfügung. Die ersten Tests mit der Karte waren soweit auch erfolgreich (Standard Maschine mit einem JMC CLS zum testen).
Das ist die Maschine
build-its-inprogress.blogspot.com/2020/1...top-5-axis-mill.html
hier noch ein Video dazu
Später soll die Maschine um ein Handrad (WHB04B-6 oder ähnlich) ergänzt werden.
Nun zu den Fragen:
Wie wird die Kinematik in Linux CNC definiert?
linuxcnc.org/docs/master/html/motion/5-axis-kinematics.html
Unter 5.1 wird ein Beispiel für die XYZAC Maschine gezeigt
Nach meinem Verständnis passt dies auch für unsere Maschine
Z ist die Werkzeugachse
X bewegt die Werkzeugachse vor und zurück
Y bewegt die beiden Drehachsen + Werkstück hoch und runter
A dreht um die X Achse
C dreht um die Z-Achse - wobei es über die Definition des Nullpunktes auch eine B Achse sein ... wo sind hier die Vor / Nachteile?
In Fusion360 wird die Maschinendefinition aufgeteilt in head und table. In LinuxCNC scheint es diese Unterscheidung nicht zu geben.
Dort habe ich XZ-Head YAC table...
Pocket NC definiert die Maschine als XYZAB
github.com/PocketNC/Settings/blob/master.../v2revR/PocketNC.ini
Welche GUI?
Nach meinem Gefühl ist Axis solide und gut gepflegt hat jedoch ein altes und aus meiner Sicht nicht so intuitives Design
ProbeBasic gefällt mir optisch gut hat jedoch keine so große Community und ich bin auch nicht sicher wie es zukünftig mit Updates aussieht
Gmoccapy sehe ich moderner als Axis aber immer noch solide und weit im Projekt Linux CNC verankert
Wünschenswert wäre auch eine grafische Simulation der Maschine
Wie ist eure Meinung? Welche GUI soll ich verwenden?
Postprozessor
Geplant ist der Einsatz von Fusion360 beziehungsweise Inventor CAM. Sind für den Postprozessor spezielle Anpassungen erforderlich? Gibt es hierzu Tutorials / Beispiele im Bereich 5 Achs?
Welche Latency Werte sollte mein PC haben um alle 5 Achsen zuverlässig ansteuern zu können?
Vielen Dank für eure Hilfe
Grüße
Manuel
- Unlogic
- Unlogic
07 Jun 2024 05:00 - 07 Jun 2024 05:04
I had no idea about how that, how could I have missed the mode setting.
Replied by Unlogic on topic PWM/frequency signal as input to Mesa card
PWM/frequency signal as input to Mesa card
Category: Driver Boards
PCW to the rescue!There are 4 analog inputs on the 7I84
I had no idea about how that, how could I have missed the mode setting.
- dynodust
- dynodust
07 Jun 2024 04:03
Replied by dynodust on topic Real Time Kernel
Real Time Kernel
Category: General LinuxCNC Questions
I got the image on the pi. I tried to login with the default username-pi and password-raspberry
Does it take a different username and password?
Does it take a different username and password?
- caretech
07 Jun 2024 03:51 - 07 Jun 2024 04:05
After some searching, I found a thread I remembered discussing the MAX_POINTS param -- forum.linuxcnc.org/qtvcp/41566-seems-lik...ighlighting?start=20
From the above conversation, it sounds like you should have ten-fold more points saved in your backplot if you're running master (2.10). Anyone with more knowledge on this is welcome to correct me.
Another relevant thread -- forum.linuxcnc.org/21-axis/33219-backplo...olour-during-millimg
Replied by caretech on topic Random Questions on setup
Random Questions on setup
Category: Plasmac
Which version of LinuxCNC and QtPlasmaC are you running? The plot only saves so many historic moves in the buffer, and rolls off older ones as it goes. This makes parts done some time ago, go back to white as if they have not yet been cut.I noticed one of the plates showing in red that it had been cut already and then it went back to white like it hadn't been cut yet.
After some searching, I found a thread I remembered discussing the MAX_POINTS param -- forum.linuxcnc.org/qtvcp/41566-seems-lik...ighlighting?start=20
From the above conversation, it sounds like you should have ten-fold more points saved in your backplot if you're running master (2.10). Anyone with more knowledge on this is welcome to correct me.
Another relevant thread -- forum.linuxcnc.org/21-axis/33219-backplo...olour-during-millimg
- PCW
07 Jun 2024 03:50
Replied by PCW on topic PWM/frequency signal as input to Mesa card
PWM/frequency signal as input to Mesa card
Category: Driver Boards
There are 4 analog inputs on the 7I84
- tommylight
07 Jun 2024 03:25
Replied by tommylight on topic PWM/frequency signal as input to Mesa card
PWM/frequency signal as input to Mesa card
Category: Driver Boards
1. get a Mesa THCAD, it can do pretty good analog to digital, should be more than enough for spindle load, but that would also require an encoder input to Mesa 7i96S, in case the spindle is already using it.
That might still be usable if the spindle does not require the index pin as THCAD requires only a single pin.
Or wire the THCAD to the IDC26 connector, might need firmware flashing.
2. Get a LM331 chip, some resistors and capacitors, and build a voltage to frequency converter, 8 pin chip, 1-3$ a piece, info here:
www.ti.com/lit/ds/symlink/lm231.pdf?ts=1...Fwww.google.com%252F
3. same as 2 but get a ready made module, under 10$ usually.
That might still be usable if the spindle does not require the index pin as THCAD requires only a single pin.
Or wire the THCAD to the IDC26 connector, might need firmware flashing.
2. Get a LM331 chip, some resistors and capacitors, and build a voltage to frequency converter, 8 pin chip, 1-3$ a piece, info here:
www.ti.com/lit/ds/symlink/lm231.pdf?ts=1...Fwww.google.com%252F
3. same as 2 but get a ready made module, under 10$ usually.
- tommylight
07 Jun 2024 03:11
Replied by tommylight on topic Gantry
Gantry
Category: Advanced Configuration
No.
Use PncConf, create a new config, set the Y axis for stepgen 1, then set stepgen 4 as Axis>Tandem Axis>Y2 Tandem Stepgen
Use PncConf, create a new config, set the Y axis for stepgen 1, then set stepgen 4 as Axis>Tandem Axis>Y2 Tandem Stepgen
- rajsekhar
- rajsekhar
07 Jun 2024 02:49
Gantry was created by rajsekhar
Gantry
Category: Advanced Configuration
I am in middle of a XYYZABC machine. It may require another C after trial run is made. Board=7i92+7i76+7i78+7i84
I have physically connected Y (joint 1) to stepgen1 of 7i76 and Y(joint 4) to stepgen4 of 7i76.
With PNC config, XYZA configuration is made. HAL and INI attached.
As per my understanding of GANTRY component, Y motion command to be attached to stepgen1 and stepgen4 and both joint will perform similarly except when homing and there will be no joint mode (only world mode) in Gmoccapy. Am I right?
And in actual, I got confused. Which pin to be connected to whom, motion and limit and home?
I have physically connected Y (joint 1) to stepgen1 of 7i76 and Y(joint 4) to stepgen4 of 7i76.
With PNC config, XYZA configuration is made. HAL and INI attached.
As per my understanding of GANTRY component, Y motion command to be attached to stepgen1 and stepgen4 and both joint will perform similarly except when homing and there will be no joint mode (only world mode) in Gmoccapy. Am I right?
And in actual, I got confused. Which pin to be connected to whom, motion and limit and home?
- Unlogic
- Unlogic
07 Jun 2024 02:32
Replied by Unlogic on topic PWM/frequency signal as input to Mesa card
PWM/frequency signal as input to Mesa card
Category: Driver Boards
After running some prolonged milling sessions with my mill I've decided to go a different route here.
I'm going completely replace the VFD, the gigantic 2kw AC spindle motor and the noisy 6 speed transmission.
I'll be replacing the whole setup with a Delta B3 2kw 400v AC servo rated for max 6000 RPM and use a belt drive with 1:1 ratio pulleys to drive the spindle directly.
This should give me plenty of low end torque, a built in encoder and double the max RPM of what I had before at much lower noise level.
But I just realized that the question of how to read the spindle load from the servo drive still remains. The load is available from the Delta servo drive either as an analog signal or via Modbus.
As I'm using a Mesa 7i96S + 7i84 combo I have no analog inputs available and the Modbus capable RS422/485 port is already used for the 7i84.
What's the best way around this?
Do I try to source a Mesa 7i76EU which has a few analog inputs and replace the Mesa 7i96S board?
Can I use the FPGA expansion port in some clever way without adding too many expansion cards?
I'm going completely replace the VFD, the gigantic 2kw AC spindle motor and the noisy 6 speed transmission.
I'll be replacing the whole setup with a Delta B3 2kw 400v AC servo rated for max 6000 RPM and use a belt drive with 1:1 ratio pulleys to drive the spindle directly.
This should give me plenty of low end torque, a built in encoder and double the max RPM of what I had before at much lower noise level.
But I just realized that the question of how to read the spindle load from the servo drive still remains. The load is available from the Delta servo drive either as an analog signal or via Modbus.
As I'm using a Mesa 7i96S + 7i84 combo I have no analog inputs available and the Modbus capable RS422/485 port is already used for the 7i84.
What's the best way around this?
Do I try to source a Mesa 7i76EU which has a few analog inputs and replace the Mesa 7i96S board?
Can I use the FPGA expansion port in some clever way without adding too many expansion cards?
- andrew2085
- andrew2085
07 Jun 2024 01:37
Replied by andrew2085 on topic Trajectory Planner using Ruckig Lib
Trajectory Planner using Ruckig Lib
Category: General LinuxCNC Questions
When I was trying out ruckig the problem that I came across was when you give it a set of constraints and a start and end position, it would create the trajectory and satisfy the constraints, but it would overshoot the end point and then move backwards to it. I'm not sure if I was just overlooking something and there are ways to have more control. It seems like its made to get from point A to point B as fast as possible with no restriction that it has to stay on a line segment connecting A and B. There is a paid version with waypoints, but I don't think that really solves the problem. It sounds like you want to generate an exact path and then move along that path while satisfying jerk, acceleration, and velocity constraints.Well, it turned out that even the most advanced MoveIT can't handle circular interpolation on its own. Need to write the math yourself. Tomorrow, I will try to write the math myself + Ruckig, with the only difference being that I will use complex numbers.
P.S. There was a scientist named Steinmetz who studied alternating current and used complex numbers instead of trigonometry in his manuscripts, which earned him the title of academician.
Time to create page: 0.475 seconds