Ombouw naar LinuxCNC

LinuxCNC kan hier besproken worden

Moderator: Moderators

Gebruikersavatar
hainjedaf
Donateur
Berichten: 2440
Lid geworden op: 01 aug 2011 10:01
Locatie: Amsterdam
Contacteer:

Re: Ombouw naar LinuxCNC

Bericht door hainjedaf »

serum schreef: 30 aug 2020 17:24 Alles met een processor en wat software stelt je vroeg of vaak teleur. Vrouwen draaien ook dikwijls op een onbeduidende processor en buggy beta-software. Ben d'r in 99,9999999999999 procent van de tijd maar wat blij mee. 'half af' is 'meer dan goed genoeg'
Hmmm... mannen zijn niet veel beter... de bugs in vrouwen zijn vaak alleen cosmetisch beter weggewerkt denk ik :lol:
(of ligt dat aan mijn (gebrek aan) kennis van vrouwen!)

Bluetooth, wifi en zigbee scoren bij mij relatief hoog op de 'bijt op ongewenste momenten hard in je kont' ranglijst.
Ik heb dat meer met grotesk overgeprijsde hardware met een stuk fruit op de achterkant of een Intel logo ergens op de kast.
Met vriendelijke groet,
Marout Sluijter-Borms,
Amsterdam

Prusa Mini+ Wifi & X1 Carbon met X1Plus
Sparren en tinkeren met iedereen en over alles wat techniek is.
Gebruikersavatar
serum
Berichten: 5398
Lid geworden op: 08 mar 2008 20:37
Locatie: Zwolle

Re: Ombouw naar LinuxCNC

Bericht door serum »

hainjedaf schreef: 30 aug 2020 18:47
Ik heb dat meer met grotesk overgeprijsde hardware met een stuk fruit op de achterkant of een Intel logo ergens op de kast.

Bij mij is er ook een duidelijk verband tussen de hoeveelheid geld die ik ergens voor betaal en de mate van begrip voor bugs. Ik werk ook het meerendeel op de verboden vrucht uit het hof van Eden, en moet bekennen dat het de laatste jaren met groter wordende regelmaat een frustratie begint te worden van de bugs en de eigenaardigheden. Rond 1998 hadden we de ergernis van een niet werkende pc omdat ie een half uur uittrok voor een update. 22 jaar na datum, voor de komst van Catalina, kon ik in 1 jaar tijd de halve uren die ik heb zitten staren naar een updatescherm niet meer op 1 hand tellen. Dat heeft Windows beter voor elkaar.

Om maar te zwijgen van de rechten die je per applicatie aan moet passen als je iets wilt met applicaties waarbij schrijfrechten praktisch zijn.
Kjelt
Donateur
Berichten: 6306
Lid geworden op: 14 jun 2007 21:51
Locatie: Eindhoven

Re: Ombouw naar LinuxCNC

Bericht door Kjelt »

serum schreef: 30 aug 2020 17:24 Bluetooth, wifi en zigbee scoren bij mij relatief hoog op de 'bijt op ongewenste momenten hard in je kont' ranglijst.
En de gemeenschappelijke noemer van bovenstaande drie items is "draadloos protocol" en dat zijn inderdaad de meest notoire ellendelingen en niet alleen voor gebruik.
Ook tijdens ontwikkeling, ga maar eens debuggen in een Zibee mesh netwerk met veertig transceivers :evil:
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 12030
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Ombouw naar LinuxCNC

Bericht door hugo stoutjesdijk »

Kjelt schreef: 30 aug 2020 22:01 Ook tijdens ontwikkeling, ga maar eens debuggen in een Zibee mesh netwerk met veertig transceivers :evil:
Ik wordt al bijna gek als ik 2 processortjes (spelling correctie vind processchortjes beter :roll: ) met een draadje er tussen met elkaar laat praten. :lol:
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Kjelt
Donateur
Berichten: 6306
Lid geworden op: 14 jun 2007 21:51
Locatie: Eindhoven

Re: Ombouw naar LinuxCNC

Bericht door Kjelt »

hugo stoutjesdijk schreef: 31 aug 2020 09:22 Ik wordt al bijna gek als ik 2 processortjes (spelling correctie vind processchortjes beter :roll: ) met een draadje er tussen met elkaar laat praten. :lol:
Draadjes is peanuts want hij maakt contact of niet.
Wireless en zeker bij een mesh netwerk is een "ketting" van zenders en ontvangers die ontvangen berichten weer doorsturen. Dus iedere ontvanger die een bericht krijgt ook al is die niet voor hem stuurt hem door.
Dat is op zich nog niet zo'n ramp maar nu blijken transceivers zich te gedragen als (simpel voorbeeld) licht op de middelbare school met interferentie patronen, die knopen en die buiken.
Dan heb je een perfect netwerk van 40 modules werken op 8m2 en plaats je er eentje bij dan blijken er opeens een aantal doofstom te zijn geworden. :shock:
Maar goed was ook niet zo mijn ding.
Tolp2
Donateur
Berichten: 476
Lid geworden op: 28 nov 2015 10:06
Locatie: Rotterdam
Contacteer:

Re: Ombouw naar LinuxCNC

Bericht door Tolp2 »

In de schuur is alles bedraad, geen draadloze problemen naar binnen halen. Ondertussen de bedrade pendant aan de computer geknoopt en de knopjes ook aan het werk gekregen:
  • E-Stop
  • Enable knop op de zijkant
  • Start / step knop
  • Pause / resume knop
  • XYZA-as selectie
  • Stapgrootte selectie [1.0, 0.1, 0.01]
  • En natuurlijk de draaiknop
MPG.hal

Code: Selecteer alles

# This file contains all configuration for the MPG:

# Required plugins
loadrt and2 count=8
loadrt conv_float_s32 count=1
loadrt encoder num_chan=1
loadrt ilowpass
loadrt mux4 count=2
loadrt or2 count=1
loadrt select8 names=mpg-axis-selector
loadrt toggle count=1
loadrt toggle2nist count=1

# -----
# BUTTONS
# -----
# Configure the enable button
# - put on thread
addf and2.0 servo-thread
addf and2.1 servo-thread
addf and2.2 servo-thread
addf and2.3 servo-thread

# Connect the pins
# - enable button
net mpg-enable <= parport.1.pin-11-in-not
net mpg-enable => and2.0.in0 
net mpg-enable => and2.1.in0
net mpg-enable => and2.2.in0
net mpg-enable => and2.3.in0
# - start and pauze buttons
net mpg-start and2.2.in1 <= parport.1.pin-08-in-not
net mpg-start-enabled <= and2.2.out
net mpg-pause and2.3.in1 <= parport.1.pin-09-in-not
net mpg-pause-enabled <= and2.3.out


# ROUTINE FOR START / STEP / PAUSE / RESUME PROGRAM
net pause-on <= halui.program.is-paused
net idle-on  <= halui.program.is-idle 
net run-on   <= halui.program.is-running

# Routine for Run/Step
# - put on thread
addf and2.4 servo-thread
addf and2.5 servo-thread
# - run program
net mpg-start-enabled => and2.4.in0
net idle-on           => and2.4.in1
net run-program       <= and2.4.out
net run-program       => halui.program.run
net run-program       => halui.mode.auto 
# - step pogram
net mpg-start-enabled => and2.5.in0
net pause-on          => and2.5.in1
net step-program      <= and2.5.out
net step-program      => halui.program.step  

# Routine for feed-hold / resume the program
# - put on thread
addf and2.6 servo-thread
addf and2.7 servo-thread
addf or2.0 servo-thread
addf toggle.0 servo-thread
addf toggle2nist.0 servo-thread
# - pause logic
net mpg-pause-enabled => and2.6.in0
net pause-on          => and2.6.in1
net pause-program     <= and2.6.out
# - resume logic
net mpg-pause-enabled => and2.7.in0
net run-on            => and2.7.in1
net resume-program    <= and2.7.out
# - toggle between pause and resume
net pause-program     => or2.0.in0
net resume-program    => or2.0.in1 
net toggle-input  toggle.0.in          <= or2.0.out    
net toggle-output toggle2nist.0.in     <= toggle.0.out
net pause-on          => toggle2nist.0.is-on
net toggle-pause  halui.program.pause  <= toggle2nist.0.on
net toggle-resume halui.program.resume <= toggle2nist.0.off


# -----
# ENCODER
# -----

# Configure the encoder
# - put on thread
addf encoder.capture-position servo-thread
addf encoder.update-counters base-thread
addf ilowpass.0 servo-thread
# - number of clicks per detent:
#   * when the MPG outputs a quadrature signal, set x4 to 1
#   * when the MPG outputs a single pulse per detent, set x4 to 0
setp encoder.0.x4-mode 0
# - settings of ilowpass (slow start and stop)
setp ilowpass.0.scale 1000
setp ilowpass.0.gain  0.02

# Connect the pins
# - input from the MPG to the CPU
net mpg-encoder-a encoder.0.phase-A <= parport.1.pin-02-in-not
net mpg-encoder-b encoder.0.phase-B <= parport.1.pin-03-in-not
# - counter to the axis (scaled)
net mpg-encoder-counts ilowpass.0.in <= encoder.0.counts
net mpg-encoder-counts-scaled <= ilowpass.0.out
net mpg-encoder-counts-scaled => axis.x.jog-counts
net mpg-encoder-counts-scaled => axis.y.jog-counts
net mpg-encoder-counts-scaled => axis.z.jog-counts


# ----- 
# SCALE
# Note: The scale is also used to disable the MPG when the 
#       dead-man-switch is not pressed. When this button is
#       not pressed, the scale is set to 0.0, effectively 
#       disabling the MPG from moving
# ----- 

# Configure the multiplexer
# - put on thread
addf mux4.0 servo-thread
# - set the scale that will be used based on the input to mux4
#   NOTE1: the value of mux4.0.in0 is set to 0.0 to disable the
#          MPG when the switch is not pressed.  
#   NOTE2: the values have been divided by 1000 (ilowpass.0.scale).
setp mux4.0.in0 0.0 
setp mux4.0.in1 0.00001
setp mux4.0.in2 0.0001
setp mux4.0.in3 0.001

# Create the and-ports for enabling the MPG
net scale1 and2.0.in1 <= parport.1.pin-05-in-not
net scale2 and2.1.in1 <= parport.1.pin-04-in-not

# Connect the pins
net scale1-enabled mux4.0.sel0 <= and2.0.out
net scale2-enabled mux4.0.sel1 <= and2.1.out

# Send the output from mux4 to each axis jog scale
net mpg-scale <= mux4.0.out
net mpg-scale => axis.x.jog-scale
net mpg-scale => axis.y.jog-scale
net mpg-scale => axis.z.jog-scale


# -----
# AXIS SELECTION
# -----
# Configure the multiplexer, converter and selector
# - put on thread
addf mux4.1 servo-thread
addf conv-float-s32.0 servo-thread
addf mpg-axis-selector servo-thread
# - set the scale that will be used based on the input to mux4
setp mux4.1.in0 0.0
setp mux4.1.in1 1.0
setp mux4.1.in2 2.0
setp mux4.1.in3 3.0

# Connect the pins
# - from the MPG to the mux
net axis-select1 mux4.1.sel0 <= parport.1.pin-06-in-not
net axis-select2 mux4.1.sel1 <= parport.1.pin-07-in-not
# - convert mux output from float to int
net axis_select_float mux4.1.out => conv-float-s32.0.in  
net axis_select_int   conv-float-s32.0.out => mpg-axis-selector.sel 

# Send the ouput from the multiplexers to each axis enable
net mpg-x mpg-axis-selector.out1 => axis.x.jog-enable
net mpg-y mpg-axis-selector.out2 => axis.y.jog-enable
net mpg-z mpg-axis-selector.out3 => axis.z.jog-enable
Ben echter tegen twee vragen aangelopen:
  • wanneer de computer opnieuw wordt opgestart krijgt de LPT-poort op de PCI-kaart een iedere keer een nieuw adres. Weet iemand hoe je deze kan vastleggen (een andere methode is natuurlijk met een combinatie van lspci -v en grep en nog wat slinkse commando's de boel repareren bij het opstarten, maar dat is niet gewenst).
  • de E-stop knop is stuk :oops: . Heeft iemand toevallig nog een klein model liggen (zelfde type als op de oude pendanten van Hardware CNC).
Assumptions are the mother of all $%^& ups.
Twee keer meten is zeker weten, als je weet wat je meet...
Tolp2
Donateur
Berichten: 476
Lid geworden op: 28 nov 2015 10:06
Locatie: Rotterdam
Contacteer:

Re: Ombouw naar LinuxCNC

Bericht door Tolp2 »

Weer even wat verder geknutseld en de E-Stop is in elkaar gedraaid. Er zijn verschillende bronnen van de E-Stop: external, pendant en driver-error. Wilde deze niet allemaal aan één input hangen, dit is opgelost met een estop-latch. Tevens worden met de onderstaande code een bericht weergegeven wanneer de E-Stop wordt getriggered.

e-stop.hal

Code: Selecteer alles

# ============================================================
# LOAD AND CONFIGURE ESTOP CHAIN
# ============================================================
# - load required plugings and put them on thread
loadrt estop_latch count=3
addf estop-latch.0 	servo-thread
addf estop-latch.1  servo-thread
addf estop-latch.2  servo-thread

# - create chain
net latch-ok-in iocontrol.0.user-enable-out  => estop-latch.0.ok-in
net latch0-out  estop-latch.1.ok-in          <= estop-latch.0.ok-out 
net latch1-out  estop-latch.2.ok-in          <= estop-latch.1.ok-out 

# - add resets for the lathches
net latch-reset <= iocontrol.0.user-request-enable 
net latch-reset => estop-latch.0.reset
net latch-reset => estop-latch.1.reset
net latch-reset => estop-latch.2.reset

# - connect the outputs of the chain to the 
net latch-out iocontrol.0.emc-enable-in <= estop-latch.2.ok-out
net estop-out estop-latch.2.fault-out

# ============================================================
# CONNECT INPUTS AND CREATE MESSAGES
# ============================================================
# - load required plugings and put them on thread
loadrt message names=external-estop-msg,pendant-estop-msg,driver-error-msg messages="External E-Stop triggered,Pendant E-Stop triggered,Driver error occurred"
addf external-estop-msg servo-thread
addf pendant-estop-msg  servo-thread
addf driver-error-msg   servo-thread

# - external E-Stop
net external-estop <= parport.0.pin-13-in-not
net external-estop => estop-latch.0.fault-in
net external-estop => external-estop-msg.trigger

# - pendant E-Stop
net pendant-estop  <= parport.1.pin-13-in-not
net pendant-estop  => estop-latch.1.fault-in
net pendant-estop  => pendant-estop-msg.trigger

# - pendant E-Stop
net driver-error   <= parport.0.pin-12-in-not
net driver-error   => estop-latch.2.fault-in
net driver-error   => driver-error-msg.trigger
Assumptions are the mother of all $%^& ups.
Twee keer meten is zeker weten, als je weet wat je meet...
Gebruikersavatar
clements
Berichten: 671
Lid geworden op: 29 jul 2010 23:30
Locatie: Dordrecht
Contacteer:

Re: Ombouw naar LinuxCNC

Bericht door clements »

Held, bedankt voor deze post. Ik heb me suf gezocht
Na 3 jaar mn machine opgestart en 2.8 geïnstalleerd. :shock:
Tolp2 schreef: 25 jul 2020 22:54 Voor het aansluiten van mij HuangYang heb ik de volgende invoer gebruikt.

VFD
De VFD is ingesteld om over RS485 te communiceren:

Code: Selecteer alles

PD001=2 => Accepteer RS485 commando's
PD002=2 => Accepteer frequentie commando's
PD163=1 => Slave address
PD164=1 => Baud-rate 9600
PD165=3 => 8 bit, no parity, 1 stop bit
custom.hal
De cutom.hal is aangepast om overeen te komen met de instellingen van de VFD. Daarnaast zijn hierin de pins gedefinieerd. Omdat hier LinuxCNC 2.8 wordt gebruikt beginnen de pinnen met spindle.0, in versie 2.7 moet dit vervangen worden door motion.spindle-.

Code: Selecteer alles

# Load the HuanYang VFD user component
loadusr -Wn spindle-vfd hy_vfd -n spindle-vfd -d /dev/ttyUSB0 -p none -r 9600

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

# Connect the spindle direction pins to the VFD
net spindle-cw   spindle.0.forward => spindle-vfd.spindle-forward
net spindle-ccw  spindle.0.reverse => spindle-vfd.spindle-reverse

# Connect the spindle on pin to the VFD
net spindle-on spindle.0.on => spindle-vfd.spindle-on
custom_postgui.hal
Omdat gebruik wordt gemaakt van gmoccapy, moet de feedback daaraan gekoppeld worden, zie onderstaande code. Voor de standaard Axis layout werkt dit niet, aangezien die andere pins gebruikt. Dit is het laatste script, dus hierin wordt ook de spindle op enabled gezet.

Code: Selecteer alles

# Connect the pins to the gmoccapy pins
net spindle-cmd-rpm-abs => gmoccapy.spindle_feedback_bar
net spindle-at-speed => gmoccapy.spindle_at_speed_led
net spindle-at-speed => spindle-vfd.spindle-at-speed

# Enable the plugin
setp spindle-vfd.enable 1
Aandachtspunten
In LinuxCNC 2.8 zijn de namen van de pins anders dan die van 2.7. De meeste voorbeelden die ik heb gevonden zijn gebaseerd op 2.7. Duurde even voordat ik hier achter ben gekomen :oops: . Hetzelfde geldt voor het verwisselen van Axis met gmoccapy...
ASS-U-ME
Plaats reactie