Installazione EtherCAT in LinuxCNC

Sezione dedicata a Linuxcnc
Rispondi
Avatar utente
jjdege
Member
Member
Messaggi: 341
Iscritto il: sabato 28 dicembre 2019, 12:25
Località: Monza Brianza

Installazione EtherCAT in LinuxCNC

Messaggio da jjdege » mercoledì 5 luglio 2023, 22:04

A quattro mani con Fiveaxis abbiamo messo giù questa pseudo-guida d'installazione del protocollo EtherCAT su Linux, per poterlo utilizzare con LinuxCNC.

Come avevo scritto qui viewtopic.php?f=17&t=91510#p751058
Parto con l'utilizzo della FR1000 (ora FR4000) per una configurazione basilare che consenta all' hobbista medio di utilizzare i suoi driver STEP/DIR ed eventualmente, se ha risorse da spendere, implementare in un secondo tempo dei servo driver.

Come già premesso in altre occasioni, ribadisco che non ho inventato nulla: ho solo documentato quello che ho fatto seguendo le guide in inglese sul forum di LinuxCNC.
Va detto che installare Linux, LinuCNC e il protocollo EtherCAT è relativamente semplice grazie al fatto che, negli ultimi tempi, sono state implementate le procedure di installazione.

La scelta del PC è importante: io ho utilizzato un DELL Optiplex 7010, consigliato sul sito di LinuxCNC nella sezione hardware compatibile, si trova in rete sui € 120,00 e devo dire lavora bene. La scheda di rete consigliata da utilizzare come master ethercat è la Realtek RTL8125 2.5GbE, circa € 25,00

Il sistema operativo Linux è la distribuzione Debian 12 denominata Bookworm, che da test é passata a stabile il 10 giugno scorso, e per la quale, come ho già avuto modo di scrivere in altro post, é stato inserito LinuxCNC come software compreso nei pacchetti: il che facilita alla grande l'installazione.
Per l'installazione del OS Linux -essendo identica a quella di Debian 10- fare riferimento alla procedura di installazione che avevamo già documentato QUI

viewtopic.php?f=17&t=91305al


Note per l'installazione:

1_ Tralasciare l'inserimento della password di ROOT perché, impostandola, successivamente diventa laborioso gestire i permessi delle applicazioni.
2_ Annotarsi il nome della scheda Realtek 8125: servirà in un secondo tempo (nel mio caso enp1s0) (immagine 01a)
3_ (Consiglio) Scegliere interfaccia grafica CINAMON per praticità nei passaggi successivi (immagine 01b)

01a_netcfg_choose_interface_0.png
01b_tasksel_first_0.png

Una volta terminata l'installazione di Bookworm si procede con l'installazione di LinuxCNC
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

Avatar utente
jjdege
Member
Member
Messaggi: 341
Iscritto il: sabato 28 dicembre 2019, 12:25
Località: Monza Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da jjdege » mercoledì 5 luglio 2023, 22:12

-----------------Installazione LinuxCNC 2.9.0------------------------------

Per fare in modo che venga scaricata dalla Rete l'installazione di LinuxCNC aggiornata (o di qualsiasi altro software), è necessario disattivare la ricerca sul cdrom di installazione che resta di default dopo l'installazione dell'OS. Per fare ciò:

1_Dalla Gestione di pacchetti Synaptic selezionare impostazioni/repository (immagine 02)

02_Schermata del 2023-06-22 21-09-50 R.png

2_Nella finestra Software & updates selezionare Other Software e togliere il flag da cdrom Debian. (immagine 03)

03_Schermata del 2023-06-22 21-21-46 R.png

3_Cliccare su chiudi e confermare con "ricarica".

In Debian 12 sono già presenti i pacchetti per l'installazione di LinuxCNC.
Per installarli dalla finestra del Gestore di pacchetti Synaptic (vedi immagine 2) cliccare su Cerca in alto a destra (immagine 04)

04_Schermata del 2023-06-22 21-29-49 R.png

Selezionare le seguenti installazioni:
1_Linuxcnc-uspace (selezionare anche le dipendenze proposte)
2_Linuxcnc-uspace-dev (selezionare anche le dipendenze proposte)
3_mesaflash (consigliato, é comunque possibile in qualsiasi momento)
4_linuxcnc-doc-en (si seleziona di default, è la documentazione in inglese) (immagine 05)

05_Schermata del 2023-06-22 21-32-01.png

A questo punto si può lanciare l'installazione di LinuxCNC con "applica".

Ora, nel menù, in basso a sinistra, tra i programmi ci sarà LinuxCNC. (immagine 06)

06_Schermata del 2023-06-22 21-47-09 R.png

Riavviare il PC

A questo punto si procede a installare il protocollo EtherCAT in Linux
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

Avatar utente
jjdege
Member
Member
Messaggi: 341
Iscritto il: sabato 28 dicembre 2019, 12:25
Località: Monza Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da jjdege » mercoledì 5 luglio 2023, 22:21

------------------------INSTALLAZIONE ETHERCAT ------------------------

Questo è il LINK del forum di LinuCNC da cui abbiamo attinto tutte le informazioni che seguono.

https://forum.linuxcnc.org/ethercat/453 ... ep-by-step

Prima di iniziare l'installazione del protocollo EtherCat, è fondamentale assegnare l'indirizzo IP statico alla scheda di rete Realtek RTL8125 che si sta utilizzando come master ethercat:

1_Cliccare sull'icona delle connessioni di rete nella barra in basso a destra.
2_Selezionare impostazioni di rete
3_Selezionare la scheda Realtek RTL (immagine 07)

07_Schermata del 2023-06-22 22-57-12 R.png
4_Cliccare sull'icona impostazioni (ingranaggio in basso a destra) e impostare i campi come nell'immagine 08

08_Schermata del 2023-06-22 23-00-12 R.png

5_Cliccare applica e chiudere le finestre


Aprire il terminale (Ctrl+Alt+T) , installare Geny (applicazione per editare i file)

Codice: Seleziona tutto

    sudo apt install geany curl git
    
Aprire con geany la source.list

Codice: Seleziona tutto

    sudo geany /etc/apt/sources.list
    


Copiare e Incollare la stringa indicata, salvare e chiudere.

Codice: Seleziona tutto

    deb [allow-insecure=yes] https://download.opensuse.org/repositories/home:/bone11111:/branches:/science:/EtherLab/Debian_Testing/ ./
    


Aggiornare

Codice: Seleziona tutto

    sudo apt-get update
    


Ignorare gli avvisi di non certificazione
Inserire le chiavi di sicurezza

Codice: Seleziona tutto

    KEYRING=/usr/share/keyrings/ethercat.gpg
    

Codice: Seleziona tutto

    curl -fsSL https://download.opensuse.org/repositories/home:/bone11111:/branches:/science:/EtherLab/           
    Debian_Testing/Release.key | gpg --dearmor | sudo tee "$KEYRING" >/dev/null 
    


Installazione del protocollo EtherCAT.

Codice: Seleziona tutto

    sudo apt install -y linux-headers-$(uname -r) 
    sudo apt-get install ethercat-dkms libethercat libethercat-dev ethercat-master
    

Confermare con S, poi verrà chiesta la conferma di installazione di pacchetti non verificati: confermare con S

Per trovare l'indirizzo del master EtherCAT digitare:

Codice: Seleziona tutto

 
    ip a
    


Copiare l'indirizzo MAC della scheda di rete Realtek (master EtherCAT) che corrisponde al nome dato durante l'installazione dal OS Linux e che ci si era annotato all'inizio (nota 1 installazione Linux). (immagine 09)

09_Schermata del 2023-06-22 22-17-28.png

inserire l'indirizzo MAC con Geany nel file ethercat.conf

Codice: Seleziona tutto

 
   sudo geany /etc/ethercat.conf
   

Compilare il file come da immagine, salvare e chiudere. (immagine 10)

10_Schermata del 2023-06-22 22-25-15 R.png

MASTER0_DEVICE="xx:aa:yy:zz:bb:cc" (indirizzo MAC della Vostra scheda Realtek 8125)
DEVICE_MODULES="generic"

Inserire i seguenti comandi per avviare il servizio ethercat (una riga alla volta).

Codice: Seleziona tutto

   sudo systemctl enable ethercat.service
   sudo systemctl start ethercat.service
   

Codice: Seleziona tutto

   sudo systemctl status ethercat.service    
   

Premere Maiuscolo + Q per uscire dal comando.

Codice: Seleziona tutto

   sudo chmod 666 /dev/EtherCAT0
   

Dare le autorizzazioni alla porta ethercat in modo che il servizio EtherCAT si avvii ad ogni riavvio del PC. Inserire i seguenti comandi:

Codice: Seleziona tutto

    echo "KERNEL=="\"EtherCAT[0-9]*\"", MODE="\"777\"", GROUP=""\"ethercat\"" > /etc/udev/rules.d/99-ethercat.rules
    chmod go+rwx /etc/udev/rules.d/99-ethercat.rules
    
La verifica che il servizio ethercat sia operativo, si fa con i seguenti comandi:

Codice: Seleziona tutto

     sudo ethercat master   
     

Verranno visualizzati i parametri del master
Nel caso ci siano già collegati dei dispositivi con il comando seguente verranno visualizzati

Codice: Seleziona tutto

     sudo ethercat slave 
     
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

Avatar utente
jjdege
Member
Member
Messaggi: 341
Iscritto il: sabato 28 dicembre 2019, 12:25
Località: Monza Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da jjdege » mercoledì 5 luglio 2023, 22:24

---------------------- Installazione driver EtherCat in LinuxCNC ------------------------

Da menù avvio in basso a sinistra aprire File System entrare nella cartella opt (*). (immagini 11 e 12)

11_Schermata del 2023-07-02 17-56-18 R.png

12_Schermata del 2023-07-02 17-57-54 R.png


(*) La cartella opt è una cartella che Linux crea vuota di default per le "opzioni". Altrimenti ci si può creare una cartella a piacere in filesystem come root.

In opt tasto destro "apri nel terminale", inserire la password e scaricare i file per la compilazione dei driver per i dispositivi.

Codice: Seleziona tutto

       git clone https://github.com/abausano/linuxcnc-ethercat.git
       

Riguardo la FR4000 quando ho installato a suo tempo i driver ethercat per linuxCNC, è stata una procedura molto più laboriosa, dovendo inserirli manualmente ed editare alcuni file.
Ora è decisamente più semplice perché i driver e le modifiche ai file sono state implementate direttamente nei file clonati. Compilandoli, con i comandi che seguono, la FR4000 risulterà inserita di default.

Clonati i driver EtherCat per LinuxCNC dal sito Github, si procede alla compilazione.

Codice: Seleziona tutto

    
        cd /opt/linuxcnc-ethercat
        make
        make install
        

Da questo momento è necessario crearsi una configurazione LinuxCNC in base alla propria macchina.
Avendo io utilizzato la FR1000 (ora FR4000), i file di configurazione base mi sono stati forniti dal produttore della scheda, che poi naturalmente ho adattato alla mia configurazione macchina

Va specificato che, per i dispositivi EtherCAT, LinuxCNC usa due file di riferimento: uno è lcec_conf che viene creato durante la compilazione dei driver e l'altro è ethercat-conf.xml. In questo file va inserita la descrizione dei dispositivi EtherCAT utilizzati fisicamente nel proprio sistema. Ovviamente, in questo file, la descrizione è in linguaggio XML.
Per alcuni dispotivi EtherCAT, in Rete si trovano i file.xml già compilati per LinuxCNC. (vedi Beckhoff, Delta, Omron...)


Per ora è tutto.... :D
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

Avatar utente
danieleee
God
God
Messaggi: 3684
Iscritto il: lunedì 8 marzo 2010, 22:38
Località: Borgo Vercelli

Re: Installazione EtherCAT in LinuxCNC

Messaggio da danieleee » giovedì 6 luglio 2023, 20:57

Spettacolo!!! =D>

Avatar utente
Fiveaxis
God
God
Messaggi: 5722
Iscritto il: sabato 15 gennaio 2011, 12:08
Località: Monza e Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da Fiveaxis » giovedì 6 luglio 2023, 21:24

@ danieleee

Ora non hai più scuse: non ti resta che installare Linux con l' EtherCAT e collegare i servo della tua "bestiolina"... :D
La macchina conta...ma la differenza la fa il "manico"!

Avatar utente
danieleee
God
God
Messaggi: 3684
Iscritto il: lunedì 8 marzo 2010, 22:38
Località: Borgo Vercelli

Re: Installazione EtherCAT in LinuxCNC

Messaggio da danieleee » giovedì 6 luglio 2023, 22:09

I miei servo non sono Etherchat, non avrei potuto comunque.

Avatar utente
jjdege
Member
Member
Messaggi: 341
Iscritto il: sabato 28 dicembre 2019, 12:25
Località: Monza Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da jjdege » giovedì 6 luglio 2023, 23:51

Grazie Daniele
spero sia venuta una cosa fluida come mi ero prefissato.


Nel tutorial non c'è nessuna configurazione per nessun dispositivo, c'è la pura installazione del sistema operativo Linux Debian 12, di LinuxCNC, del protocollo EtherCAT nel sistema operativo e dei driver per diversi dispositivi EtherCAT in LinuxCNC .
Da qui uno implementa il sistema che ritiene più "sensato"

Avatar utente
jjdege
Member
Member
Messaggi: 341
Iscritto il: sabato 28 dicembre 2019, 12:25
Località: Monza Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da jjdege » venerdì 7 luglio 2023, 10:47

Sarebbe bello e gradito che, se qualcuno provasse a fare l'installazione, desse un feedback per capire se è chiaro il tutto, e nel caso di dubbi o difficoltà, lo facesse presente in modo da "aggiustare il tiro".
grazie a tutti :)

Avatar utente
Fiveaxis
God
God
Messaggi: 5722
Iscritto il: sabato 15 gennaio 2011, 12:08
Località: Monza e Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da Fiveaxis » venerdì 7 luglio 2023, 13:15

Innanzi tutto vorrei ringraziare Jjdege che ha avuto la pazienza di sopportare le mie continue puntualizzazioni :mrgreen: e che ha avuto la sensibilità di mettere a disposizione di tutti quello che lui ha sperimentato con successo. Lo ringrazio anche perchè è stato per me fonte di stimolo per imparare cose nuove... :D


Ad ogni modo, ti faccio notare che Jjdege ha pubblicato 4 thread che parlano di EtherCAT in Linux, per un totale di c.a. 2600 visualizzazioni (ad oggi). Senza contare il tutorial per installare LinuxCNC con la parallela che, sempre ad oggi, ha totalizzato c.a. 1000 visualizzazioni. Evidentemente altri utenti hanno ritenuto interessanti i contenuti messi a disposizione da Jjdege. :D
La macchina conta...ma la differenza la fa il "manico"!

Avatar utente
danieleee
God
God
Messaggi: 3684
Iscritto il: lunedì 8 marzo 2010, 22:38
Località: Borgo Vercelli

Re: Installazione EtherCAT in LinuxCNC

Messaggio da danieleee » domenica 9 luglio 2023, 13:59

Io ho sempre apprezzato tantissimo i post di @jjdege, oltre al fatto che è una persona molto piacevole, purtroppo le distanze impediscono di andarlo a trovare mentre smanetta con i suoi test, avrei sicuramente da imparare moltissimo!
Ora non ne ho tempo, ma se riesco nel periodo di ferie provo su un vecchio portatile.

Avatar utente
jjdege
Member
Member
Messaggi: 341
Iscritto il: sabato 28 dicembre 2019, 12:25
Località: Monza Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da jjdege » domenica 9 luglio 2023, 22:41

... mod

Abbiamo messo giù questa cosa con l'intento di non toccare le corde di nessuno, una cosa pulita e fruibile, in modo che uno interessato alla cosa riuscisse a portarla a termine. Non è stato semplice, e abbiamo chiuso con " per ora è tutto"

Mi sembra chiaro che non è tutto! questo passaggio è obbligatorio.

Ci vorrà del lavoro anche per capire come fare, perché da qui in poi le varianti sono tante,
mi pare l'ABC delle installazioni, non sono tutte uguali. Si fa con qualsiasi sistema, più è complesso e più ha bisogno d'impegno

se ti dovesse pungere vaghezza di provarci io ci sono, ma non pensare che tu non debba metterci del tuo
grazie :)

Avatar utente
jjdege
Member
Member
Messaggi: 341
Iscritto il: sabato 28 dicembre 2019, 12:25
Località: Monza Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da jjdege » domenica 9 luglio 2023, 22:45

Grazie danieleee!
quando vuoi, lo sai che ci sono :)

Avatar utente
jjdege
Member
Member
Messaggi: 341
Iscritto il: sabato 28 dicembre 2019, 12:25
Località: Monza Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da jjdege » giovedì 3 agosto 2023, 22:20

Ciao
Proseguiamo con un ulteriore step.
Lo scopo è quello di impostare una configurazione macchina base, partendo da una configurazione di esempio, costituita da 3 servo Delta e 6 moduli I/O Beckhoff.

!!! ATTENZIONE !!!

Vista la pericolosità intrinseca dei collegamenti a 220V dei dispositivi e il costo degli stessi, le operazioni che seguono richiedono attenzione e competenza.

Chiunque si cimenti nell'installazione, si assume la responsabilità del proprio operato in caso di danni a persone o cose.


Io ho operato così:
sono partito da una configurazione disponibile su Github.
Nella cartella che si scarica c'è tutto il necessario per configurare i servo; nella configurazione è stato implementato il solo asse X come esempio, per cui si rende necessario una volta fatto funzionare l'asse X, fare un pò il copia incolla con le varie stringhe, sostituendo al posto della X, la lettera assegnata ai vari assi del proprio sistema. Vanno poi inseriti i servo nel file ethercat-conf.xml.

Successivamente ho trovato la stessa configurazione nella cartella swm-fm45a, che è tra le cartelle scaricate durante l'installazione dei driver EtherCAT per linuxCNC.
Si trova in File system: /opt/linuxcnc-ethercat/examples/swm-fm45a
Per semplificare l'installazione useremo questa configurazione e attingeremo il file ASDA-A2-E Servo_Ethercat.par (parametri servo) dalla cartella scaricata da Github.

Questa configurazione differisce da quella scaricata da Github, per il fatto che sono stati implementati tre assi: X Y Z e i tre servo nel file ethercat-conf.xml. Tuttavia ci sono alcune incongruenze da correggere in alcune righe di un file: fatto ciò, il tutto funziona.

1_Copiare la cartella swm-fm45a da /opt/linuxcnc-ethercat/examples in /usr/share/doc/linuxcnc/examples/sample-configs
Essendo una cartella di sistema per poterla incollare, bisogna avere i permessi di Root. Quando si è nella cartella di destinazione: tasto destro "Apri come root". e poi incollare.
Così facendo la cartella viene inserita tra le configurazioni base di LinuxCNC ed è possibile lanciarla dal menù principale.

2_Dal menù principale, lanciare la configurazione (immagine 01)


01_Schermata del 2023-06-22 21-47-09 R.png


Scegliere la configurazione swm-fm45a in fondo all'elenco.
Fleggare la casella di creazione del collegamento sul desktop e confermare tutte le richieste. (immagine 02)


02_Schermata del 2023-08-02 21-35-05.png


Quando si aprirà la finestra (immagine 03)


03_Schermata del 2023-08-03 21-29-56.png


Confermare l'aggiornamento. Verrà creata automaticamente una cartella di backup chiamata .old.
Successivamente si aprirà LinuxCNC con un errore dovuto alle incongruenze accennate sopra.

3_Modifica incongruenze: /home/<utente>/linuxcnc/configs/swm-fm45a
Aprire il file swm-fm45a-io.hal e apportare le seguenti modifiche relative ai nomi dei pins
  • Alla riga 51 e 52 è necessario cancellare i caratteri "srv-".
  • Commentare la riga 70 con il #
  • Inserire per ogni asse (adeguando il nome) la seguente riga:

    Codice: Seleziona tutto

     net x-pos-fb <= lcec.0.3A1.enc-pos 
  • Commentare la riga #net z-brake <= lcec.0.4A3.srv-oper-enabled (solo per l'asse Z)
Queste modifiche sono riferite all'asse X e vanno eseguite per ogni asse (YZ...) nelle righe corrispondenti modificando il nome dell'asse e del servo.
NB: 3A1 servo X asse
3A2 servo Y asse
4A3 servo Z asse

Come abbiamo detto prima, in questa configurazione sono previsti 3 servo Delta EtherCAT e 6 moduli I/O Beckhoff; tenere conto che, se uno uno o più moduli I/O, non dovessero essere presenti fisicamente nel sistema, va commentato nel file ethercat-conf.xml altrimenti LinuCNC restituisce un errore. Per i servo questo problema non si pone.


4_Scaricare da Github la cartella LinuxCNC-ASDA-A2-E
https://github.com/liuzq71/LinuxCNC-ASDA-A2-E.
NB: I file.hal, contenuti nella configurazione scaricata da Github, sono ok e utilizzabili come raffronto.

5_Caricare nei servo Delta, i parametri per linuxCNC che sono nella cartella scaricata da Github, il file è ASDA-A2-E Servo_Ethercat.par

Per caricarli negli azionamenti (tramite USB) è necessario utilizare il software proprietario (ASDA-Soft V5.5.0.0) che gira sotto Windows, scaricabile dal sito Delta a questo link
https://downloadcenter.deltaww.com/en-U ... t_dir=DESC

Lanciare il sofware da Windows.

Cliccare sulla P cerchiata in rosso per aprire la sezione parametri (immagine 04)


04_Par Delta 01.PNG


Da File aprire il file ASDA-A2-E Servo_Ethercat.par ed inviare all'azionamento i parametri, cliccando sull'icona cerchiata (immagine 05)


05_Par Delta 02.PNG


Tutta la procedura indicata sopra, è testata e funziona come si vede nel VIDEO , è solo un esempio, nella macchina reale ognuno dovrà poi adattare la configurazione al proprio sistema.

...E non è finita qui: stay tuned! :wink: :D :wink:
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

Avatar utente
jjdege
Member
Member
Messaggi: 341
Iscritto il: sabato 28 dicembre 2019, 12:25
Località: Monza Brianza

Re: Installazione EtherCAT in LinuxCNC

Messaggio da jjdege » sabato 5 agosto 2023, 17:36

jjdege ha scritto:
mercoledì 5 luglio 2023, 22:04
3_Modifica incongruenze: (...)
Come abbiamo detto prima, in questa configurazione sono previsti 3 servo Delta EtherCAT e 6 moduli I/O Beckhoff; tenere conto che, se uno uno o più moduli I/O, non dovessero essere presenti fisicamente nel sistema, va commentato nel file ethercat-conf.xml altrimenti LinuCNC restituisce un errore. Per i servo questo problema non si pone.
Rileggendo mi sono accorto che al punto 3 va precisato che i dispositivi I/O non presenti nel sistema, oltre che commentarli nel file.xml, vanno commentate anche nel file swm-fm45a-io.hal tutte le righe, che fanno riferimento agli I/O mancanti.

Per quanto riguarda gli azionamenti , si dà per scontato che siano presenti nel sistema tutti e tre, altrimenti se si dovessero fare delle prove con un solo servo, anche in questo caso andrebbero commentati gli altri 2: sia nel file .xml che nel file swm-fm45a-io.hal; altrimenti, come per gli I/O LinuxCNC restituisce un errore.

Rispondi

Torna a “Linuxcnc”