Tutorial: azzeramento pezzo semi-automatico con probe

Sezione dedicata a Linuxcnc
Rispondi
Avatar utente
ziociccio
Member
Member
Messaggi: 317
Iscritto il: domenica 8 marzo 2020, 10:20
Località: Provincia di AV
Contatta:

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da ziociccio » venerdì 8 maggio 2020, 13:02

riprendo questo post per capire come collegare il sensore alla mia cape montata su BeagbleBone Black per azzerare automaticamente l'asse Z

ho già fatto tutte le modifiche indicate, ma c'è un passaggio che non ho capito
se ho capito bene questo tutorial è riferito ad un ingresso "probe in" da porta parallela?
io invece vorrei utilizzare uno dei pin di input disponibili (il pin P8-26), inserendo nel file hal

Codice: Seleziona tutto

setp        bb_gpio.p8.in-26.invert TRUE
net  Zprobe bb_gpio.p8.in-26 => motion.probe-input
il manuale dice
motion.probe-input IN BIT
G38.x uses the value on this pin to determine when the probe has made contact.
TRUE for probe contact #closed (touching),
FALSE for probe contact open.
ma nella macro corrispondente 'azzeramento_pezzo', il comando G38 non c'è, quindi la domanda è: come si fa a intercettare in questa macro se l'utensile ha toccato o no il pezzo?
Devo modificare la macro? Ho trovato una macro che usa la mia stessa cape, posso utilizzarla per modificare la macro originale del tutorial?

questo blocco di codice in particolare

Codice: Seleziona tutto

G38.2 Z#<max_incremental_delta> F#<probe_feed>             ( touch off slowly, store to 5063 )
#<reference>=#5063
(DEBUG, touched off Z at #<reference>)
G10 L2 P0 Z[#<reference> - #<probe_thickness>]             ( set the origin of the current coordinate system )
G0 Z[#<probe_retract>]  

ross
Member
Member
Messaggi: 351
Iscritto il: mercoledì 3 agosto 2011, 23:16
Località: Macerata (MC)

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da ross » domenica 10 maggio 2020, 23:17

Se la configurazione di questo tutorial è riferita alla porta parallela non ha importanza, è sufficiente inserire i pin giusti che si hanno a disposizione.
Prima di tutto devi verificare che il probe funziona con la connessione al pin della BBB, come hai scritto la configurazione dovrebbe funzionare e per vederlo usi hal configurator oppure hal meter, manualmente fai il contatto elettrico e vedi a video che cosa succede.

La subroutine "azzeramento_pezzo.ngc" non è altro che un file g-code che effettua il movimento e memorizza nelle variabili i parametri, qui trovi il file compresso con tutto il necessario, ho verificato che all'interno della directory nc_files c'è il file "100.ngc", è un'altra subroutine dove viene usato il comando G38.2 ma se prendi i pezzi di g-code qua e là per la rete poi devi cercare di capire cosa fanno e come sono state chiamate le variabili, se hanno nomi diversi poi non funziona nulla.
Non ho ancora sperimentato il tastatore (probe) perché nelle macchine che ho realizzato non ne faccio uso e non ti sono molto di aiuto ma occorre verificare cosa succede passo dopo passo seguendo ciò che è stato fatto in questo tutorial.
Qui c'è il manuale di riferimento che non differisce molto da quello di Linuxcnc.

Ross

Avatar utente
ziociccio
Member
Member
Messaggi: 317
Iscritto il: domenica 8 marzo 2020, 10:20
Località: Provincia di AV
Contatta:

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da ziociccio » lunedì 11 maggio 2020, 7:52

grazie Ross,
con i pin e le modifiche ai file ini e hal tutto ok, sono riuscito a farlo senza problemi quasi subito, compreso il contatto tra i due fili

ho trovato un po' di difficoltà con il codice 'azzeramento_pezzo' del primo post (forse perché specifico per la macchina di kylotron), ma dopo vari tentativi ho provato proprio il file 100.ngc e ha funzionato
ho realizzato anche il tastatore con un pezzo di ottone da 4mm e anche quello va senza problemi

havana77
Junior
Junior
Messaggi: 128
Iscritto il: domenica 25 febbraio 2007, 23:40
Località: Palermo

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da havana77 » martedì 29 settembre 2020, 17:44

Posso usare la stessa configurazione con EMC2 2.3 ?

Grazie

Avatar utente
ziociccio
Member
Member
Messaggi: 317
Iscritto il: domenica 8 marzo 2020, 10:20
Località: Provincia di AV
Contatta:

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da ziociccio » martedì 29 settembre 2020, 18:58

se ti riferisci alla macro / subroutine ngc penso di si
invece per i pin da collegare e alla relativa configurazione del file hal, dipende dalla scheda che stai usando

rcc.roberto
Newbie
Newbie
Messaggi: 13
Iscritto il: venerdì 16 settembre 2011, 22:25
Località: saronno

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da rcc.roberto » lunedì 1 febbraio 2021, 21:21

Ciao,
utilizzo linuxCNC 2.5.0
ho provato la macro

Codice: Seleziona tutto

O<end_position> SUB

	G53 G0 Z#<_ini[AXIS_2]HOME>
	G53 G0 X#<_ini[AXIS_0]HOME> Y[#<_ini[AXIS_1]MAX_LIMIT>-5]

O<probe_position> endsub
M2
Seguendo le istruzioni, ma mi dà errore di PARAMETRO NON DEFINITO.
Forse con 2.5.0 non funziona?
Grazie

rcc.roberto
Newbie
Newbie
Messaggi: 13
Iscritto il: venerdì 16 settembre 2011, 22:25
Località: saronno

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da rcc.roberto » giovedì 4 febbraio 2021, 20:54

Provato ad installare 2.7.0 e funziona, è proprio con 2.5.0 che non va

rcc.roberto
Newbie
Newbie
Messaggi: 13
Iscritto il: venerdì 16 settembre 2011, 22:25
Località: saronno

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da rcc.roberto » venerdì 5 febbraio 2021, 20:50

Mi correggo, aveva funzionato con 2.7.0 live, una volta installato mi dà sempre l'errore di PARAMETRO NON DEFINITO.

C'è qualcuno che mi può dare un consiglio?

Grazie

Avatar utente
ziociccio
Member
Member
Messaggi: 317
Iscritto il: domenica 8 marzo 2020, 10:20
Località: Provincia di AV
Contatta:

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da ziociccio » sabato 6 febbraio 2021, 6:41

hai controllato se nel tuo file ini i parametri richiamati nella SUB sono definiti?

dai un'occhiata anche qui, il primo post
viewtopic.php?t=54438&start=15

rcc.roberto
Newbie
Newbie
Messaggi: 13
Iscritto il: venerdì 16 settembre 2011, 22:25
Località: saronno

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da rcc.roberto » sabato 6 febbraio 2021, 21:58

Si certo, sono i parametri che definiscono i tre assi, ad esempio HOME, è sicuramente definito,
Grazie

Avatar utente
ziociccio
Member
Member
Messaggi: 317
Iscritto il: domenica 8 marzo 2020, 10:20
Località: Provincia di AV
Contatta:

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da ziociccio » domenica 7 febbraio 2021, 8:11

aspetta, c'è un errore nella macro: il tag di apertura non corrisponde a quello di chiusura

devi sostituire probe_position alla fine con end_position

Codice: Seleziona tutto

O<end_position> SUB

	G53 G0 Z#<_ini[AXIS_2]HOME>
	G53 G0 X#<_ini[AXIS_0]HOME> Y[#<_ini[AXIS_1]MAX_LIMIT>-5]

O<probe_position> endsub
M2

rcc.roberto
Newbie
Newbie
Messaggi: 13
Iscritto il: venerdì 16 settembre 2011, 22:25
Località: saronno

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da rcc.roberto » domenica 7 febbraio 2021, 20:43

Si è vero, quello l'ho copiato dal sito, però nel mio lo ho corretto, grazie.

Per ora mi accontento di mettere i valori diretti anzichè le variabili, poi in seguito vedrò se riesco a trovare il problema

frankendrucker
Newbie
Newbie
Messaggi: 2
Iscritto il: giovedì 27 maggio 2021, 16:35

Re: Tutorial: azzeramento pezzo semi-automatico con probe

Messaggio da frankendrucker » giovedì 27 maggio 2021, 16:49

Ciao a tutti,

sono giorni che sto cercando di creare una configurazione per la mia cnc (controller: Mesa 7i96 e probe autocostruita) dopo aver modificato i file come indicati a inizio topic, ma continuo a incappare nel seguente messaggio di errore in apertura:

Codice: Seleziona tutto

rint file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.8.1
Machine configuration directory is '/home/fabio/linuxcnc/configs/Frankenmill'
Machine configuration file is 'Frankenmill.ini'
INIFILE=/home/fabio/linuxcnc/configs/Frankenmill/Frankenmill.ini
VERSION=1.1
PARAMETER_FILE=linuxcnc.var
TASK=milltask
HALUI=halui
DISPLAY=axis
COORDINATES=XYZ
KINEMATICS=trivkins coordinates=XYZ
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting HAL User Interface program: halui
Found file(REL): ./Frankenmill.hal
Found file(REL): ./custom.hal
Starting TASK program: milltask
Starting DISPLAY program: axis
Unexpected realtime delay on task 0 with period 100000
This Message will only display once per session.
Run the Latency Test and resolve before continuing.

hm2/hm2_7i96.0: error finishing read! iter=6

Embeded tab command "halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -t Segue Tema Sistema -H gvcp_call_list.hal -x 41943468 gvcp-panel.ui" exited with error: 1
Shutting down and cleaning up LinuxCNC...
Running HAL shutdown script
task: 158 cycles, min=0.000064, max=0.021289, avg=0.009204, 0 latency excursions (> 10x expected cycle time of 0.010000s)
hm2: loading Mesa HostMot2 driver version 0.15
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
hm2_eth: 192.168.1.121: INFO: Hardware address (MAC): 00:60:1b:16:03:ad
hm2_eth: discovered 7I96
hm2/hm2_7i96.0: Low Level init 0.15
hm2/hm2_7i96.0: Smart Serial Firmware Version 43
hm2/hm2_7i96.0: 51 I/O Pins used:
hm2/hm2_7i96.0:     IO Pin 000 (TB3-01): IOPort
hm2/hm2_7i96.0:     IO Pin 001 (TB3-02): IOPort
hm2/hm2_7i96.0:     IO Pin 002 (TB3-03): IOPort
hm2/hm2_7i96.0:     IO Pin 003 (TB3-04): IOPort
hm2/hm2_7i96.0:     IO Pin 004 (TB3-05): IOPort
hm2/hm2_7i96.0:     IO Pin 005 (TB3-06): IOPort
hm2/hm2_7i96.0:     IO Pin 006 (TB3-07): IOPort
hm2/hm2_7i96.0:     IO Pin 007 (TB3-08): IOPort
hm2/hm2_7i96.0:     IO Pin 008 (TB3-09): IOPort
hm2/hm2_7i96.0:     IO Pin 009 (TB3-10): IOPort
hm2/hm2_7i96.0:     IO Pin 010 (TB3-11): IOPort
hm2/hm2_7i96.0:     IO Pin 011 (TB3-13/TB3-14): SSR #0, pin Out-00 (Output)
hm2/hm2_7i96.0:     IO Pin 012 (TB3-15/TB3-16): SSR #0, pin Out-01 (Output)
hm2/hm2_7i96.0:     IO Pin 013 (TB3-17/TB3-18): SSR #0, pin Out-02 (Output)
hm2/hm2_7i96.0:     IO Pin 014 (TB3-19/TB3-20): SSR #0, pin Out-03 (Output)
hm2/hm2_7i96.0:     IO Pin 015 (TB3-21/TB3-22): SSR #0, pin Out-04 (Output)
hm2/hm2_7i96.0:     IO Pin 016 (TB3-23/TB3-24): SSR #0, pin Out-05 (Output)
hm2/hm2_7i96.0:     IO Pin 017 (TB1-02/TB1-03): StepGen #0, pin Step (Output)
hm2/hm2_7i96.0:     IO Pin 018 (TB1-04/TB1-05): StepGen #0, pin Direction (Output)
hm2/hm2_7i96.0:     IO Pin 019 (TB1-08/TB1-09): StepGen #1, pin Step (Output)
hm2/hm2_7i96.0:     IO Pin 020 (TB1-10/TB1-11): StepGen #1, pin Direction (Output)
hm2/hm2_7i96.0:     IO Pin 021 (TB1-14/TB1-15): StepGen #2, pin Step (Output)
hm2/hm2_7i96.0:     IO Pin 022 (TB1-16/TB1-17): StepGen #2, pin Direction (Output)
hm2/hm2_7i96.0:     IO Pin 023 (TB1-20/TB1-21): StepGen #3, pin Step (Output)
hm2/hm2_7i96.0:     IO Pin 024 (TB1-22-TB1-23): StepGen #3, pin Direction (Output)
hm2/hm2_7i96.0:     IO Pin 025 (TB2-02/TB2-03): StepGen #4, pin Step (Output)
hm2/hm2_7i96.0:     IO Pin 026 (TB2-04/TB2-05): StepGen #4, pin Direction (Output)
hm2/hm2_7i96.0:     IO Pin 027 (TB2-07/TB2-08): Encoder #0, pin A (Input)
hm2/hm2_7i96.0:     IO Pin 028 (TB2-10/TB2-11): Encoder #0, pin B (Input)
hm2/hm2_7i96.0:     IO Pin 029 (TB2-13/TB2-14): Encoder #0, pin Index (Input)
hm2/hm2_7i96.0:     IO Pin 030 (TB2-16/TB2-17): IOPort
hm2/hm2_7i96.0:     IO Pin 031 (TB2-18/TB2-19): IOPort
hm2/hm2_7i96.0:     IO Pin 032 (internal): IOPort
hm2/hm2_7i96.0:     IO Pin 033 (internal): SSR #0, pin AC Ref (internal) (Output)
hm2/hm2_7i96.0:     IO Pin 034 (P1-01): IOPort
hm2/hm2_7i96.0:     IO Pin 035 (P1-02): IOPort
hm2/hm2_7i96.0:     IO Pin 036 (P1-03): IOPort
hm2/hm2_7i96.0:     IO Pin 037 (P1-04): IOPort
hm2/hm2_7i96.0:     IO Pin 038 (P1-05): IOPort
hm2/hm2_7i96.0:     IO Pin 039 (P1-06): IOPort
hm2/hm2_7i96.0:     IO Pin 040 (P1-07): IOPort
hm2/hm2_7i96.0:     IO Pin 041 (P1-08): IOPort
hm2/hm2_7i96.0:     IO Pin 042 (P1-09): IOPort
hm2/hm2_7i96.0:     IO Pin 043 (P1-11): IOPort
hm2/hm2_7i96.0:     IO Pin 044 (P1-13): IOPort
hm2/hm2_7i96.0:     IO Pin 045 (P1-15): IOPort
hm2/hm2_7i96.0:     IO Pin 046 (P1-17): IOPort
hm2/hm2_7i96.0:     IO Pin 047 (P1-19): IOPort
hm2/hm2_7i96.0:     IO Pin 048 (P1-21): IOPort
hm2/hm2_7i96.0:     IO Pin 049 (P1-23): IOPort
hm2/hm2_7i96.0:     IO Pin 050 (P1-25): IOPort
hm2/hm2_7i96.0: registered
hm2_eth: in hm2_eth_reset
hm2_eth: HostMot2 ethernet driver unloaded
hm2: unloading
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments

Debug file information:
Note: Using POSIX realtime
Unexpected realtime delay on task 0 with period 100000
This Message will only display once per session.
Run the Latency Test and resolve before continuing.
hm2/hm2_7i96.0: error finishing read! iter=6
note: MAXV     max: 25.000 units/sec 1500.000 units/min
note: LJOG     max: 25.000 units/sec 1500.000 units/min
note: LJOG default: 6.000 units/sec 360.000 units/min
note: jog_order='XYZ'
note: jog_invert=set([])

(gladevcp:1520): libglade-WARNING **: 16:28:41.991: could not find glade file 'Tema'
**** GLADE VCP ERROR:    With xml file: Tema : could not create GladeXML object
<commandline>:0: gladevcp exited without becoming ready
1427
1480
Stopping realtime threads
Unloading hal components
Note: Using POSIX realtime



-----------------------------------------------------------------------
Info report created by linuxcnc_info:
The file:    /tmp/linuxcnc_info.txt
can be posted to a forum or a web site like:
     http://pastebin.com
in order to provide information about the linuxcnc
system and configuration.

                Date: gio 27 mag 2021, 16.47.28, CEST
            UTC Date: gio 27 mag 2021, 14.47.28, UTC
        this program: /usr/bin/linuxcnc_info
              uptime: 16:47:28 up 28 min, 1 user, load average: 1,38, 0,91, 0,60
     lsb_release -sa: Debian Debian GNU/Linux 10 (buster) 10 buster
      which linuxcnc: /usr/bin/linuxcnc
                 pwd: /home/fabio/linuxcnc/configs/Frankenmill
                USER: fabio
             LOGNAME: fabio
                HOME: /home/fabio
              EDITOR: 
              VISUAL: 
            LANGUAGE: 
                TERM: dumb
           COLORTERM: 
             DISPLAY: :0.0
             DESKTOP: lightdm-xsession
        display size: 1600x900 pixels (423x238 millimeters)
                PATH: /usr/bin:/home/fabio/linuxcnc/configs/Frankenmill/bin:/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

uname items:
         nodename -n: DESKTOP-2ELQML3
      kernel-name -s: Linux
      kernel-vers -v: #1 SMP PREEMPT RT Debian 4.19.181-1 (2021-03-19)
          machine -m: x86_64
        processor -p: unknown
         platform -i: unknown
      oper system -o: GNU/Linux

/proc items:
             cmdline: BOOT_IMAGE=/boot/vmlinuz-4.19.0-16-rt-amd64 root=UUID=86788cb4-0ea0-4a2b-97ee-f86657f47db0 ro initrd=/install/gtk/initrd.gz quiet
          model name: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
               cores: 2
             cpu MHz: 1231.631
             parport: 
              serial: 

Versions:
                 gcc: gcc (Debian 8.3.0-6) 8.3.0
              python: Python 2.7.16
                 git: git version 2.20.1
          git commit: NA
                 tcl: 8.6
                  tk: 8.6
               glade: glade 3.22.1
          glade-gtk2: not_in_PATH

linuxcnc_var all:

     LINUXCNCVERSION: 2.8.1
LINUXCNC_AUX_GLADEVCP: /usr/share/linuxcnc/aux_gladevcp
LINUXCNC_AUX_EXAMPLES: /usr/share/linuxcnc/aux_examples
            REALTIME: /etc/init.d/realtime
                 RTS: uspace
          HALLIB_DIR: /usr/share/linuxcnc/hallib

dpkg -l '*linuxcnc*':
Voluto=U (non noto)/I (installato)/R (rimosso)/P (rimosso totale)/H (in attesa)
| Stato=Non/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(nessuno)/R (reinstallazione richiesta) (Stato,Err: maiuscolo=grave)
||/ Nome                Versione     Architettura Descrizione
+++-===================-============-============-=====================================================================
un  linuxcnc            <nessuna>    <nessuna>    (nessuna descrizione disponibile)
un  linuxcnc-dev        <nessuna>    <nessuna>    (nessuna descrizione disponibile)
un  linuxcnc-doc        <nessuna>    <nessuna>    (nessuna descrizione disponibile)
ii  linuxcnc-doc-cn     1:2.8.1      all          motion controller for CNC machines and robots (Chinese
ii  linuxcnc-doc-en     1:2.8.1      all          motion controller for CNC machines and robots (English documentation)
ii  linuxcnc-doc-es     1:2.8.1      all          controlador de movimiento para máquinas CNC y robots (Español).
ii  linuxcnc-doc-fr     1:2.8.1      all          motion controller for CNC machines and robots (French documentation)
un  linuxcnc-sim        <nessuna>    <nessuna>    (nessuna descrizione disponibile)
un  linuxcnc-sim-dev    <nessuna>    <nessuna>    (nessuna descrizione disponibile)
ii  linuxcnc-uspace     1:2.8.1      amd64        motion controller for CNC machines and robots
ii  linuxcnc-uspace-dev 1:2.8.1      amd64        PC based motion controller for real-time Linux


Rispondi

Torna a “Linuxcnc”