-IT- Esecuzione del latency test

Sezione dedicata a Linuxcnc
Rispondi
billielliot
Senior
Senior
Messaggi: 1747
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

-IT- Esecuzione del latency test

Messaggio da billielliot » domenica 5 maggio 2019, 21:03

Ciao a tutti,

sperando di fare cosa gradita e utile, nei messaggi che seguono condivido come ho fatto il Latency Test sul mio PC.

Quanto segue non e' una guida ufficiale. E' un piu' semplice: io ho fatto cosi'.

Non mi assumo responsabilita'!

Integrazioni, correzioni e/o smentite sono gradite.

Questo messaggio e' un po’ la prosecuzione di -IT- Installazione di LinuxCNC su scheda madre ASUS A7N8X-X e da' per scontato che il sistema operativo Linux sia funzionante e l'applicazione LinuxCNC sia correttamente installata.

Per gestire una CNC professionale si usano PC dedicati, sviluppati appositamente per questo compito.

Gli sviluppatori di LinuxCNC hanno messo a punto un test che permette di verificare se un computer NON sviluppato per lo specifico scopo di gestire una CNC (ma abbastanza potente da riuscirci), puo' comunque essere adeguato a eseguire un simile compito.

Il test consiste nel mettere il piu' possibile sotto sforzo il processore; una volta che il processore e' impegnato "a fondo" si inviano delle richieste e si annota il tempo che trascorre per ottenere la risposta.

I computer piu' adeguati rispondono velocemente alle richieste. Il tempo trascorso tra una richiesta e la relativa risposta e' detto "di latenza". Il processore "latita" perche' e' impegnato a fare altro. Nel nostro test lo stracarichiamo volutamente di compiti inutili, che non servono in nessun modo all'uso di una CNC.

La Latenza e' quindi la misura del tempo che impiega il processore per fermarsi da quanto sta facendo e rispondere a una richiesta esterna.

Nel nostro test il tempo di latenza si misura in nanosecondi. Sistemi con risposte fino a 50000 nanosecondi sono (generalmente) considerati ancora buoni. Tempi di latenza minori sono auspicabili (15000 / 20000 nanosecondi o meno). Tempi di latenza maggiori di 50000 nanosecondi portano a considerare il computer come NON adeguato.

Se ci si ostina a usare computer con tempi di latenza molto alti bisogna essere pronti ad affrontare "strani comportamenti", messaggi di errore inspiegabili, lavorazioni non corrette, etc, etc...

Sul wiki di LinuxCNC esiste un elenco di schede madri che gli utenti hanno testato e di cui hanno condiviso i risultati. Se avete fretta potete fare riferimento ai modelli li menzionati. Se siete intraprendenti potete testare il/i pc in vostro possesso e magari contribuire, condividendo a vostra volta i risultati ottenuti.

Per testare un PC non si e' obbligati a fare un'installazione completa. Si puo' sfruttare la versione live di LinuxCNC senza perdere i dati contenuti nel PC in esame. Finito il test si potra' riavviare il PC e tornare a usarlo per lo scopo a cui era dedicato.

Alcune informazioni raccolte curiosando sulla rete internet che mi hanno aiutato a dare maggiore senso a questo test. Queste informazioni non hanno nessuna pretesa di completezza!

Per gestire una machina utensile, a un computer viene chiesto di elaborare e generare un flusso continuo e costante di informazioni/comandi (importante: non veloce. Continuo e costante!). Questo e’ particolarmente sentito se la macchina utensile e’ mossa da motori stepper.

Una generica macchina utensile lavora a ritmi lentissimi rispetto alle velocita' di elaborazione dei moderni PC.

Un vecchio Z80 o un recente Arduino (entrambi controllori a 8bit) sono in grado di gestire una macchine utensile.

Cosa potrebbe impedire a un generico PC di ultima generazione, dotato di processore multicore a 32 o 64 bit di portare a termine un compito cosi' "leggero"?

L’idea che mi sono fatto e’ che il problema sia il “contorno” al processore.

I moderni computer in vendita nei supermercati sono progettati per assolvere bene tanti compiti, invece di un solo compito in modo eccellente. A un generico PC viene chiesto di essere molto versatile/compatibile/configurabile in base alle richieste/necessita' dell'acquirente. Deve consentire di disegnare, giocare, ascoltare musica, guardare un film, navigare in internet, creare documenti, essere il piu' possibile interfacciabile. Tutto questo porta i progettisti a degli inevitabili compromessi e impedisce di raggiungere l'eccellenza per un solo scopo.

All'opposto esistono schede/computer nati per assolvere un preciso compito (come gestire macchine utensili o simili) che svolgono in modo egregio il loro scopo ma non vi permetttono di fresare mentre guardate film in 4K, ascoltate musica e navigate in internet. Un esempio e' Colibri o la piu' recente RosettaCNC (per rimanere in Italia). Importante: magari possono farlo ma I progettisti non lo considerano prioritario.

Di seguito riporto anche una mia (personalissima) traduzione della storia di LinuxCNC. Qui trovate il testo originale in inglese

Qui invece la stessa storia dal punto di vista del N.I.S.T.

EMC (Enhanced Machine Controller, ovvero: Controllore Macchine Avanzato) è stato creato dal NIST, (National Institute of Standards and Technology, Istituto Nazionale per gli Standard e le Tecnologie), che è un'agenzia del Dipartimento del Commercio del governo degli Stati Uniti.

NIST, prima si dedico' alla scrittura di un pacchetto di controllo del movimento, come piattaforma di test per studiare i concetti e gli standard. Successivamente, grazie alla sponsorizzazione di General Motors, la versione nascente di EMC fu adattata per usare PMAC (Schede di controllo intelligente) e per funzionare su una versione in tempo reale di Windows NT per controllare una grande fresatrice.

Come richiesto da tutti i prodotti realizzati per conto del governo federale degli Stati Uniti, il software risultante e la relazione su di esso, erano tenuti a essere di dominio pubblico. Una relazione su di esso fu regolarmente pubblicata anche su Internet.

Fu lì che Matt Shaver scopri' EMC. Contattato' il NIST ed inizio' una discussione con Fred Proctor per adattare il codice per poterlo utilizzare in un controllo hardware meno costoso, da utilizzare per gli aggiornamenti e le sostituzioni di controlli CNC che erano obsoleti o semplicemente non piu' supportati.

Il NIST fu incuriosito dalla proposta perché anche loro volevano qualcosa di meno costoso. Al fine di avviare uno sforzo cooperativo, fu creato un accordo formale che garantisse che il codice risultante e il design sarebbero rimasti di dominio pubblico.

Le prime considerazioni riguardarono la sostituzione del sistema operativo Windows NT con Linux e una relativamente nuova estensione "Real-Time" del suo kernel. L'idea ebbe successo. Il passo successivo fu rappresentato dalla sostituzione delle costose schede di gestione e controllo del movimento. Le potenze di elaborazione raggiunte dai computer dell'epoca furono considerate piu' che sufficienti per gestire questa funzione e dopo una veloce ricerca di mercato si procedette a usare una scheda di interfaccia Servo-to-Go come prima esperienza per consentire a un PC il controllo diretto dei motori. All'interfaccia furono aggiunti un software per il calcolo della traiettoria e per la gestione del Controllo PID (Closed-Loop), oltre a un interprete RS274 (Gcode). Matt Shaver riusci a usare questa versione per aggiornare due macchine con controlli CNC non piu' supportati e questo fu il primo lavoro che attiro' l'attenzione del mondo esterno su questo sistema. La citazione dell'uso di EMC sul gruppo di discussione "Rec.Crafts.Metalworking USENET" fece si che altri utenti iniziassero ad usare la piattaforma. Io mi fermo qui ma la storia continua...

E dopo questa tediosissima introduzione, ecco la descrizione di quello che ho fatto :

ho avviato l'applicazione "Latency Test":

runit.png

E’ apparsa la seguente finestra:

latencywindow.png

Scopo della prova e' ottenere il valore piu' basso possibile di “Max Jitter (ns)” nella riga “Base thread (25.0us)” (nell’immagine sopra e’ arrivato a 14267 nanosecondi)

Ho configurato la finesta affinche' galleggi sempre sopra le altre applicazioni (cosi' non la si perde dietro le altre finestre) e affinche' ci “segua” se cambiamo desktop virtuale.

Ho fatto un click con il tasto sinistro del mouse sull'iconcina bianca (evidenziata dal quadro rosso). Si e' aperto un menu da cui ho selezionato la voce: “Always on Top”

Ho ripetuto l'operazione per selezionare la voce: “Always on Visible Workspace”:

pippo3.png

Ho proseguito aprendo un terminale e digitando il comando "top" per vedere il carico del sistema:

pippo4.png
pippo5.png
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
Amat victoria curam

billielliot
Senior
Senior
Messaggi: 1747
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

Re: -IT- Esecuzione del latency test

Messaggio da billielliot » domenica 5 maggio 2019, 21:08

pippo6.png

Per caricare di lavoro il PC ho aperto un terminale e ho digitato il comando:

Codice: Seleziona tutto

gzip -c /dev/urandom > /dev/null
il programma “gzip” è istruito per prendere come input “/dev/urandom” e come output, lo standard output (opzione -c ) anziché un file. Lo standard output è rediretto verso /dev/null (il cestino). Quindi chiedo a gzip di comprimere numeri generati casualmente e di buttare il file compresso nel cestino.

Ciò che costa fatica in termini di CPU è:
- generare numeri pseudocasuali (il lavoro di /dev/urandom)
- comprimere (il lavoro di gzip)

La CPU si impegna a fare un compito stupido ma in maniera incredibilmente intensa. Il carico non è determinato dal compito, ma da quanto spesso lo si esegue.

pippo9.png

Ho proseguito aprendo un altro terminale e digitando il comando:

Codice: Seleziona tutto

glxgears & glxgears & glxgears & glxgears & glxgears
pippo7.png
Il risultato di questo comando saranno 5 finestre con degli ingranaggi che ruotano. Piu' caricate la CPU e piu' lentamente ruoteranno gli ingranaggi:

pippo8.png

Nei processi elencati nel terminale (comando top) si vede che il comando gzip e' al primo posto e occupa il 45,9% della potenza della CPU

I 5 processi che seguono sono gli ingranaggi (glxgears) che occupano ognuno il 9% circa della potenza della CPU.

Quando avviate piu' istanze del programma glxgears, le finestre verranno aperte sovrapposte in un angolo in alto del desktop. Per vedere se sono davvero 5 finestre, dovrete spostarle manualmente e distribuirle nell'area del desktop.

Dopo aver aperto altri 5 glxgears, nel mio PC il valore MAX JITTER della riga BASE THREAD, si e' assestato a 17304 nanosecondi. Piu' che accettabile visto che stavo anche scrivendo questo testo in Libreoffice Writer e creavo le immagini con Gimp (aperto e chiuso per ogni immagine creata per caricare un altro po' il sistema)

Nel mio caso il latency test ha raggiunto valori non accettabili quando ho esaurito la memoria RAM e il sistema ha cominciato a usare lo spazio di swap in modo assiduo, spostando grosse quantita' di dati dalla RAM all'hard disk e viceversa.

Altra causa di valori esagerati di latenza e' stato il tentativo di guardare un film con VLC (mentre tutti gli altri test erano in esecuzione).

Voi potete sbizzarirvi avviando la riproduzione di piu’ film, spostand grossi file dall’Hard Disk a chiavette USB o unita’ esterne, chiedendo al computer l’avvio contemporaneo di molti programmi (Libreoffice writer + Libreoffice Calc + Gimp + Freecad + browser internet etc…), aprendo e chiudendo il cassetto del Cdrom (quest’ultima azione potrebbe riservare grosse sorprese...)

E mentre tutto questo avviene, il latency test fara’ le sue richieste al computer e verifichera’ in quanto tempo il processore riesce a rispondere a queste richieste.

Lo scopo e’ capire se la il PC e’ adeguato a gestire la vostra CNC e evidenziare punti deboli che potrebbero creare problemi durante una lavorazione.

Se nel lanciare tutti questi software doveste sentirvi “stretti” in un solo desktop, potrete spostarvi su uno dei desktop virtuali disponibili. Un click in una delle aree indicate dalla freccia verde e vi troverete in nuovo desktop senza perdere le applicazioni gia’ aperte:

virtualdesktops.png

Ciao :-)

Mauro
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
Amat victoria curam

Avatar utente
shineworld
Senior
Senior
Messaggi: 673
Iscritto il: venerdì 18 marzo 2016, 9:44
Località: Vicenza
Contatta:

Re: -IT- Esecuzione del latency test

Messaggio da shineworld » lunedì 6 maggio 2019, 15:36

Bellissima iniziativa billielliot !!!
Seguo con interesse :)
All'opposto esistono schede/computer nati per assolvere un preciso compito (come gestire macchine utensili o simili) che svolgono in modo egregio il loro scopo ma non vi permetttono di fresare mentre guardate film in 4K, ascoltate musica e navigate in internet. Un esempio e' Colibri o la piu' recente RosettaCNC (per rimanere in Italia). Importante: magari possono farlo ma I progettisti non lo considerano prioritario.
La differenza tra prodotti come RosettaCNC, CentroidCNC, etc e prodotti come LinuxCNC, Path Pilot (fork di LinuxCNC della Tormach), Mach3, etc è che in RosettaCNC il 99% del lavoro CNC viene fatto nativamente in scheda CNC, la quale possiede un proprio sistema operativo Hard Real Time, per gestire l'intero processo di movimentazione, interpolazione, controllo I/O, etc, mentre il PC serve solo da interfaccia utente grafica, compilazione, simulazione, parametrizzazione.

Quindi si può usare qualsiasi PC, anche povero in performances, e far lavorare più CNC in contemporanea finchè, come riportavi, uno si guarda un video o naviga in rete, oppure più facilmente come ci capita, lavora con il simulatore per vedere i percorsi da eseguire nella prossima lavorazione o sta sul CAD/CAM a progettare il nuovo pezzo da fare.

billielliot
Senior
Senior
Messaggi: 1747
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

Re: -IT- Esecuzione del latency test

Messaggio da billielliot » lunedì 6 maggio 2019, 16:32

Ciao shineworld e grazie.

in questi messaggio c'e' poco di mio, da un punto di vista dei contenuti. E' tutto materiale tratto da inetrnet. Al massimo posso dire di aver tradotto e messo insieme il tutto in italiano.

E' anche vero che la maggior quantita di lamentele e' proprio per la carenza di informazioni in italiano. Speriamo che sia di aiuto per chi vuole introdursi nell'affascinante e vastissimo mondo delle CNC.

Ciao :-)

Mauro
Amat victoria curam

gino
Senior
Senior
Messaggi: 1774
Iscritto il: domenica 11 ottobre 2009, 18:12

Re: -IT- Esecuzione del latency test

Messaggio da gino » lunedì 6 maggio 2019, 16:49

col Colibri non mi ci ero neanche azzardato a girovagare in Internet
mentre la macchina mi faceva lavori complessi in 5 assi..ho sempre temuto il peggio !
---
la settimana scorsa con RosettaCnc ..ho rischiato , mentre la macchina
lavorava i 5 assi un file ( impeller) da 200000 righe circa un ora e 15, son girato per internet
in lungo e largo senza nessun problema ;..vuol dire che Shineworld e suo Team han lavorato BENE !!
--
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

billielliot
Senior
Senior
Messaggi: 1747
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

Re: -IT- Esecuzione del latency test

Messaggio da billielliot » lunedì 6 maggio 2019, 17:35

Ciao gino,

io mi identifico tra gli appassionati. Non possiedo una CNC. Meno che mai Rosetta. Nonostante cio' ritengo anche io che abbiano lavorato bene. Cosi' come Ribaudo a suo tempo.

Per quanto riguarda le CNC sono un po' rigido. Rimango dell'opinione che valga la pena dedicare un PC in toto per la macchina (che e' poi quello che fa chi acquista Rosetta).

Se voglio navigare mentre la macchina lavora, lo faccio con un secondo PC. Su questo secondo PC posso permettermi di prendere virus et similia o forzare la mano con simulatori piu' o meno potenti.

E' il mio personalissimo pensiero ma lo ritengo anche il miglior consiglio, in un mondo pieno di variabili come quello delle CNC.

I PC piu' economici su cui si puo' installare LinuxCNC (che sono in grado di far lavorare una CNC) costano un'inezia perche' appartengono al mondo dei 32bit che stiamo abbandonando. E' piu' facile trovarli in discarica che nei negozi. Vale la pena spaccare utensili o sprecare materiale per cosi' poco?

Come sempre i miei due centesimi, senza pretesa di aver ragione.

Ciao :-)

Mauro

P.S. la lavorazione dell'impeller con LinuxCNC rimane uno dei miei sogni nel cassetto. Magari un giorno...
Amat victoria curam

Junior73
God
God
Messaggi: 3614
Iscritto il: lunedì 14 aprile 2014, 10:36
Località: Perugia

Re: -IT- Esecuzione del latency test

Messaggio da Junior73 » lunedì 6 maggio 2019, 19:24

Ciao Billieliot,
bel contributo. Quando ho iniziato questo hobby avevo preparato un vecchio notebook in pessime condizioni (stavo per buttarlo) istallando un paio di Xp e Linuxcnc confidando che prima o poi sarei stato in grado di usarlo (è ancora li!!!). Premetto che il notebook è dedicato solo alla cnc. Oltre ai programmi di movimentazione ho solo Cambam per effettuare a volte cambiamenti nei percorsi che creo con altro Pc . Niente navigazione internet antivirus etc...

Di solito non lancio altri programmi mentre la cnc lavora. Ultimamente ho fatto diversi test con due macchine in contemporanea via Usb collegate allo stesso hub (mi è rimasta una porta usb funzionante) e non ho avuto problemi sia con il software della RDLab (prima cnc) sia con Arduino con grbl + UGS Platform 2018 o Laser grbl in accoppiata con il sofware della Planetcnc (vecchia versione ) con scheda cinese. In particolare mi aspettavo problemi con arduino + usbcnc invece sembra filare tutto liscio. Ho sentito solo in un caso un leggero rallentamento di una cnc quando ho avviato CAmBam mentre le due macchine stavano lavorando.

Tecnicamente non saprei quante cnc possa mandare un pc in buono stato. Forse con applicazioni diverse già in esecuzione (da avviare solo il gcode) un moderno pc può gestire diverse cnc.

Esistono schede cinesi ethernet per Linux cnc ? Come si comporta su Raspberry o similari?

Saluti

billielliot
Senior
Senior
Messaggi: 1747
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

Re: -IT- Esecuzione del latency test

Messaggio da billielliot » lunedì 6 maggio 2019, 21:27

Ciao Junior73,

rispondo volentieri ma ci terrei a rimanere sull'oggetto della discussione: latency test.

In generale, i notebook sono un disastro per i sistemi realtime come LinuxCNC. Sono computer nati con lo scopo di risparmiare energia per assicurare la durata della batteria. A un certo punto un integratino dice alla CPU: "rallenta! stai consumando troppo!" e le tempistiche vanno a farsi benedire (leggasi ACPI: Advanced Configuration and Power Interface). Ci sono situazioni in cui il processore viene fatto raffreddare grazie al rallentamento dei cicli CPU. Sicuramente efficace ma non auspicabile in caso di sistemi realtime.

Io non penso in termini di produzione ma ho letto diverse discussioni in cui si accenna alla gestione di piu' macchine con un PC. Non penso sarei in grado di gestire piu' di una macchina alla volta. Ammiro chi tenta anche solo con due. Con LinuxCNC non riuscirete ad avviare piu' di una macchina per PC. Se provate ad avviare il latency test e poi cercate di avviare una macchina sullo stesso PC, verrete bloccati. A me la soluzione sembra semplice: un PC dedicato ad ogni macchina e un PC HUB (anche portatile) da cui gestire un numero infinito di CNC. Che poi e' la soluzione adottata anche in campo professionale (sempre per quanto ne so).

Non ho informazioni sull'uso di Raspberry per fare girare LinuxCNC. Forse ci sono esperimenti ma non ho informazioni in merito. Per certo si puo' usare la Beaglebone in accoppiata con il software MachineKit (clone di LinuxCNC). in questo caso si disporra' di due core in realtime hardware (sapendo metterci mano). E il gioco diventa molto interessante perche' ci portiamo verso la tecnologia usata in Rosetta (ma rimangono enormi lacune in altre parti).

Schede Cinesi ethernet per Linux? Proprio non saprei. Conosco le Mesa Electronics per bus PCI ma sono Americane. Spero che la nazionalita'/origine non sia un problema :-)

Ciao :-)

Mauro.

black.jpg
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
Amat victoria curam

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

Re: -IT- Esecuzione del latency test

Messaggio da ross » lunedì 6 maggio 2019, 22:45

Ciao Mauro,
quest'inverno ho completato una macchina a cn a 4 assi indipendenti per il taglio del polistirene, usando la famosa Beaglebone Black.
E' un pc a tutti gli effetti ma sta sul palmo di una mano ed è molto versatile, ho sviluppato ad hoc una scheda per tirare fuori i segnali per gli azionamenti, pwm e finecorsa. Ha molti pin disponibili, in pratica può gestire 6 assi e in contemporanea puoi avere 6 canali pwm, oltre agli standard di I/O.
Ha un processore arm con un core a 32bit e due unità PRU da usare per i segnali veloci, il latency test in questo caso è valido solo se il generatore di step viene fatto via software come avviene nei pc ma usando le due PRU non ha più tempi di latenza eccessivi, lavorano a 200MHz.
Ho usato Machinekit che è molto molto simile a Linuxcnc e la configurazione è stata semplice, non ho incontrato particolari difficoltà.
Machinekit e Linuxcnc sono software di cn che hanno una capacità di configurazione enorme, sono molto flessibili e ne sono pienamente soddisfatto, per me sono di livello professionale.

Inserisco anche alcune foto della mia macchina a 4 assi.
DSC_3655r2.jpg
DSC_3657r2.jpg
DSC_3866r2.jpg
DSC_3867r2.jpg
Ross
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

billielliot
Senior
Senior
Messaggi: 1747
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

Re: -IT- Esecuzione del latency test

Messaggio da billielliot » martedì 7 maggio 2019, 12:25

Ciao Ross,

grazie anche a te per l'intervento.

Della Beaglebone ho accennato proprio perche' avevo letto di qualche tua esperienza in merito e da li sono partito per documentarmi.

Se ti va, ci spieghi in questa discussione come hai eseguito il latency test sulla Beaglebone? Mi aspetto che qualcosa cambiera' se devi testare le PRU (Programmable RealTime Unit).

Se poi volessi aprire una tua discussione sul come hai installato e configurato la scheda, lo apprezzerei moltissimo. Anche qualche dettaglio in piu' in merito alla scheda di espansione che ti sei autocostruito sarebbe molto gradito.

So che costa fatica documentare ma e' l'unico modo per aiutare altri che vogliono provare LinuxCNC ma hanno problemi con l'inglese o con le materie tecniche.

Ciao e grazie :-)

Mauro
Amat victoria curam

Junior73
God
God
Messaggi: 3614
Iscritto il: lunedì 14 aprile 2014, 10:36
Località: Perugia

Re: -IT- Esecuzione del latency test

Messaggio da Junior73 » martedì 7 maggio 2019, 14:49

Gestire due cnc all'inizio non è facile , poi con il tempo si inizia fin dalla progettazione dei pezzi a separare le lavorazioni. Per noi hobbisti non è una questione di "produzione" ma proprio di tempo materiale da dedicare in relazione ai tanti progetti che si hanno in mente.
Il pc diventa solo un "lanciatore" programmi Gcode . Non ho riscontrato problemi anche ad usare una cnc in lavorazione automatica ed un altra con movimentazioni manuali. Non so cosa possa succedere aggiungendo una terza cnc con Mach3 che usa interamente il pc. Dovrei provarci con un Pc recente solo con Win 10 senza tanti fronzoli. Ho la sensazione che non ci siano troppi problemi lanciando successivamente i gcode senza chiaramente fare niente altro al pc.
Forse Linuxcnc non vuole mettere a rischio lavorazioni (anche multiasse) gestendo più schede da un unica postazione , riservando ogni possibile risorsa ad una sola scheda . Da li anche questo test di latenza e il dover rientrare entro certi valori. Se lo fa windows Xp con hardware tipo arduino , schede cinesi cloni etc Linux dovrebbe farlo meglio se pensato per gestire una cosa del genere.

@Ross

Mi associo anch'io alla richiesta di Mauro per una eventuale spiegazione dei collegamenti e settaggi vari.....il concetto di semplice è molto relativo :D
Non manca di certo la volontà di usare Linux per smanettare ma senza avere un idea precisa di come fare si lascia "vigliaccamente" perdere.
Un sistema a livello professionale e open source è cosa abbastanza rara . Non sono molti ad utilizzare Linuxcnc e questo spiega forse anche la mancanza di schede "orientali" . Oltre che per hobbisti se è un sistema affidabile potrebbe essere adottato da molte piccole aziende artigianali.

Saluti

billielliot
Senior
Senior
Messaggi: 1747
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

Re: -IT- Esecuzione del latency test

Messaggio da billielliot » martedì 7 maggio 2019, 16:27

Ciao junior73,

"questo test di latenza" e' proprio quello che ti dice il limite del computer in esame. Conoscendo il limite, sarebbe folle spingersi oltre con la certezza di perdere step (rovinare la lavorazione, sprecare materiale, rompere utensili etc...). Anche in Mach3 esiste lo stesso problema. Il parametro core speed (o qualcosa di simile) e' proprio la velocita' con cui puo' operare il software. Anche in Windows vengono richieste ottimizazioni per ottenere risultati affidabili e riproducibili.

Noto la tendenza a banalizzare il concetto "sistema operativo (quello che preferite) + Arduino".

E' ovvio che l'accoppiata funziona bene. Il PC in questo caso fa da interfaccia grafica per Arduino. E' arduino che genera gli step e fa il lavoro pesante. E' vero che Arduino e' piccino, ma la questione non adrebbe posta in termini di dimensioni fisiche. Sempre per capirci: con processori a 8bit e memorie a nuclei magnetici abbiamo mandato uomini sulla luna. Arduino e' a 8 bit e ha potenza superiore ai computer usati nei primi razzi spaziali.

Prendiamo un qualsiasi computer, togliamogli la scheda grafica, togliamogli tutti gli ingressi per periferiche esterne (USB, parallela, ethernet, telecamere, microfoni), togliamogli la parte audio... rimarra' il solo processore e la memoria. un grosso Arduino. Un computer da formula 1 per le nostre CNC. Quasi un clone di Rosetta etc...

Non va poi dimenticato che il test di latenza puo' servire a scegliere il computer che potrebbe muovere un exapode. Il motore alla base di LinuxCNC e' generico. Non nasce esclusivamente per le CNC.

Ciao :-)

Mauro

P.S. io considero 'meglio' la saggia scelta, da parte degli sviluppatori di LinuxCNC, di cercare di impedire al neofita di rompere tutto, limitando le possibilita' alle sole realisticamente fruibili. Ma questa e' una mia opinione.
Amat victoria curam

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

Re: -IT- Esecuzione del latency test

Messaggio da ross » martedì 7 maggio 2019, 23:40

Il latency test funziona solo per i pc e per i sistemi in cui il generatore di step è al livello software, nella BBB non funziona così perché se lo si esegue si hanno dei valori strani e non ricordo di quanto ma quando il generatore di step, pwm ed altri controlli vengono gestiti dalle due PRU non c'è un programma che calcola il tempo di latenza, sono due unità che lavorano senza interrupt (così mi sembra di aver capito) ad altissima velocità.

Creare tutta la documentazione necessaria è un pò lunga da fare e purtroppo non ho tempo ma posso sintetizzare qui sotto.
Per mettere in moto la BBB ho seguito le istruzioni indicate nel blog dedicato a Machinekit. Ho una BBB rev. C quindi ho scaricato l'immagine precompilata "bone-debian-7.8-machinekit-armhf-2015-03-15-4gb" (se non ricordo male) e l'ho messa in una microsd da 8Gb classe 10, ho quindi avviato la BBB dando alimentazione ma non ho flashato la mmc, l'ho sempre avviata dalla microsd.
Per la visualizzazione su un monitor vga ho acquistato un adattatore HDMI-VGA, il primo di colore bianco ma nonostante le modifiche che ho provato a fare non ha mai funzionato poi ne ho preso uno nero su RS ed ha funzionato all'istante, se si ha un monitor hdmi non serve altro.
E' possibile fare il boot della BBB anche senza alimentatore e senza monitor, con un cavo usb/mini-usb e collegandola al pc con Ubuntu e con il client terminal server
BBB-RDP.png
si può entrare nella scheda in SSH per editare il file di impostazione del boot tipo la risoluzione video ed altre cosette, la scheda ha un indirizzo specifico.
Per quanto riguarda la scheda che ho sviluppato è abbastanza semplice, ho studiato la cape "cramps" per capire in che modo sono stati usati i segnali ed ho tirato fuori tutti i segnali che mi interessavano, togliendo ciò che non mi serviva. Chi vuole può comunque contattarmi in privato per avere lo schema elettrico.
Per la configurazione ho studiato e modificato quella dedicata alla cape "cramps", usando hal configuration di Machinekit sono andato a verificare i segnali e i collegamenti del cn proprio come si fa in Linuxcnc, la struttura è identica.

Ross
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

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

Re: -IT- Esecuzione del latency test

Messaggio da ross » martedì 7 maggio 2019, 23:47

Junior73 ha scritto:
martedì 7 maggio 2019, 14:49
... Oltre che per hobbisti se è un sistema affidabile potrebbe essere adottato da molte piccole aziende artigianali.
In azenda ho sviluppato una macchina per il deposito di poliuretano sui prodotti partendo da un dxf (le guarnizioni dei quadri elettrici) e tra i tanti sistemi più o meno funzionali che ho trovato in rete (planetcnc, mach3 ecc..) non a caso ho scelto Linuxcnc, ha più di una marcia in più rispetto agli altri ed è per questo che lo ritengo professionale.
Ho visto in rete delle macchine industriali complesse retrofittate con Linuxcnc, tanto e un ottimo lavoro fatto.

Ross

billielliot
Senior
Senior
Messaggi: 1747
Iscritto il: martedì 16 ottobre 2007, 23:23
Località: Trezzo sull'Adda

Re: -IT- Esecuzione del latency test

Messaggio da billielliot » mercoledì 8 maggio 2019, 12:07

Grazie ross!!

Ciao :-)

Mauro
Amat victoria curam

Rispondi

Torna a “Linuxcnc”