Controllare 1 asse cnc

Sezione dedicata a lavorazioni su materiali diversi. Problematiche, accorgimenti, consigli, trucchi ed astuzie.
Subforum:
Materiali
Rispondi
cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Controllare 1 asse cnc

Messaggio da cris65 » domenica 29 maggio 2016, 13:33

Buongiorno
avrei necessità di tagliare del profilato in 4 misure diverse

dovrei quindi creare una coppia di rulli trascinatori comandati da un nema 34 (o 23 forse basta)

Es
1 pz Lungh 500 mm
taglio
foratura di tranciatura
1 pz Lungh 400 mm
taglio
foratura di tranciatura
1 pz Lungh 250 mm
taglio
foratura di tranciatura
1 pz Lungh 200 mm
foratura di tranciatura

finita la serie
ricominicia da capo

Vorrei un consiglio o un'idea su che controller usare
Finora ho utilizzato solo Colibri per un pantografo
ma forse esiste qualcosa di molto piu' semplice e piu' adatto
anche a livello di software.

Grazie mille

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

Re: Controllare 1 asse cnc

Messaggio da Junior73 » sabato 4 giugno 2016, 9:03

Ciao Cris,
potresti anche farlo con arduino togliendo completamente l'uso del pc. Azioneresti la sequenza con un unico pulsante dando dei tempi ceh ti permettano la lavorazione oppure pulsanti diversi ognuno con il proprio spostamento.
Non so' se può essere un idea valida ma potresti avere un azionatore programmabile da pc con quote variabili. Questo concetto lo sto usando usandolo per comandare pmpe peristaltiche da motori passo passo. Alla fien è sempre far muovere a comando il motore i x steps voluti e precedentemente programmi in arduino

Saluti

torn24
God
God
Messaggi: 5075
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Controllare 1 asse cnc

Messaggio da torn24 » sabato 4 giugno 2016, 9:40

Quoto Junior73, arduino mi sembra una buona soluzione per gestire un solo asse-motore, però prevederei un programma su PC, per impostare le lunghezze e il numero di pezzi.

Sono progetti "carini" e penso "non molto complessi", se vuoi ti posso dare una mano con programma PC e programma arduino, sempre che la precisione di un motore passo passo che aziona un rullo trasportatore possa bastare, secondo me è difficile stare nei decimi di mm, sia per la lunghezza del taglio sia per la foratura :?:
CIAO A TUTTI !

cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Re: Controllare 1 asse cnc

Messaggio da cris65 » sabato 4 giugno 2016, 15:48

Grazie per le risposte,
in effetti arduino potrebbe essere una buona soluzione almeno inizialmente,
anche se non avrei problemi di budget è una produzione che quando serve deve
funzionare 8 ore al giorno.

Il materiale piu' o meno dovrei averlo già a disposizione, e un po' di C lo conosco.

Leggendo le risposte mi è venuto in mente che per il trascinamento potrei usare
2 motori contrapposti (2 assi con gli stessi comandi ma a fili invertiti)

Come precisione + o - 3/10 sarebbe accettabile

Accetto volentieri qualche consiglio per la programmazione perchè sono
piuttosto arrugginito.

torn24
God
God
Messaggi: 5075
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Controllare 1 asse cnc

Messaggio da torn24 » sabato 4 giugno 2016, 16:53

Ciao, bisogna che esista prima la macchina prima di fare programmi, perché devono essere fatti per gestire qualcosa, e questo qualcosa bisogna sapere bene come è fatto.

Il programma per PC, sarebbe una semplice maschera "niente di che", sarebbe impostare I TAGLI un numero diverso di pezzi, in una stringa di testo, esempio stringa di testo "400 3" significa tre pezzi di lunghezza 400, abbiamo un numero di pezzi da fare le stringhe sarebbero più di una, e poi un valore che dice quanti cicli fare.

ESEMPIO

Numero ripetizione ciclo N 2 "FA DUE VOLTE IL CICLO"

PEZZI
400 2
500 1
600 3


Fa due pezzi da 400, un pezzo da 500, tre pezzi da 600, RIPETI LA SEQUENZA PER 2 VOLTE I CICLI

il programma su PC, in pratica permette di inserire i pezzi lunghezza e numero dipezzi, numero ripetizione cicli, e invia ad arduino per seriale due numeri, invia ad esempio 400 e 2, poi aspetta una risposta esempio "eseguito" e invia poi gli altri pezzi esempio 500 1.

Niente di complicato pensavo di poterlo fare in C Sherp.


mente il programma di arduino, legge la lunghezza, e traduce 400 millimetri in numero passi motore, poi fa la lavorazione, se ha numero pezzi superiore a 1, ripete, in pratica la cosa più complicata è il programma arduino , il computer trasmette solo la lunghezza pezzo e numero pezzi ad arduino, e lo fa per NUMERO CICLI, CHE POSSONO ESSERE 1 O 1000.


ma per fare il programma, bisogna sapere, BISOGNA COSTRUIRE, la macchina, perchè visto che deve tagliare e forare, arduino deve fare molte cose, e bisogna sapere come è fatta e come le fa la macchina.


IO SONO DISPOSTO AD AIUTARE, ma solo dopo che si è pensato come fare la macchina e come azionare i vari lavorazioni dispositivi. PERCHE' MI è GIA CAPITATO DI IMPEGNARMI PER NIENTE, visto che poi per tanti motivi la macchina non è stata realizzata.


P.S. che funzioni funziona, ma ci sono anche norme di sicurezza da rispettare se non si vuole prendere multe da migliaia di euro, quindi a tuo rischio... :mrgreen:
CIAO A TUTTI !

cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Re: Controllare 1 asse cnc

Messaggio da cris65 » domenica 5 giugno 2016, 14:18

Non sarebbe una macchina da costruire, piuttosto uno stampo di tranciatura a tunnel cnczzato,
e verrebbe installato su una pressa eccentrica marchiata CE con tutte le sicurezze necessarie.

Per come lo vedo io non vorrei l'uso del pc nel senso che
si inserisce una barra di 3 metri si pigia un pulsante e si ottengono 6 pezzi finiti che formano una serie

e la macchina si ferma

manualmente si assembla la serie.


si inserisce una barra
si rischiacchia uno start
ripetere 3000 volte

Come aiuto non vorrei tanto, basterebbe un consiglio di come gestire il loop di arduino se non ci arrivo da solo.

Intanto comincio a mettere insieme qualcosa.

Grazie per l'interesse

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

Re: Controllare 1 asse cnc

Messaggio da Junior73 » domenica 5 giugno 2016, 14:55

Ciao o.k. penso di aver capito anche se non mi è chiarissimo ai fini del piccolo programma la procedura di lavoro. Mi pare di capire che sono 4-5 movimenti diversi dei motori a seguire separati da un eventuale pausa per permettere la lavorazione dei pezzi stessi . Oppure ci deve essere un imput (tasto etc) per dar via ad ogni singola lavorazione dei 4-5 pezzi?

Prova a buttar giù lo script ....intanto ti posto qualcosa che fa girare un motore di 400 steps (un giro completo)....in questo caso 4 motori in sequenza.....c'è l'uso classico di una variabile

Codice: Seleziona tutto

/*
 Stepper Controllo 4 Motori in sequenza
 */
int M1 = 0;
int M2 = 0;
int M3 = 0;
int M4 = 0;

void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}

void loop(){
  
  while(M1 < 400) {
  digitalWrite(8, HIGH);
  delayMicroseconds (250);              
  digitalWrite(8, LOW); 
  delayMicroseconds (250);
  M1= M1 + 1;  
}
  while(M2 < 400) {
  digitalWrite(9, HIGH);
  delayMicroseconds (250);               
  digitalWrite(9, LOW); 
  delayMicroseconds (250);
  M2= M2 + 1;  
}
  while(M3 < 400) {
  digitalWrite(10, HIGH);
  delayMicroseconds (250);               
  digitalWrite(10, LOW); 
  delayMicroseconds (250);
  M3= M3 + 1;  
}
  while(M4 < 400) {
  digitalWrite(11, HIGH);
  delayMicroseconds (250);             
  digitalWrite(11, LOW); 
  delayMicroseconds (250);
  M4= M4 + 1;  
}
}
Saluti

cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Re: Controllare 1 asse cnc

Messaggio da cris65 » domenica 5 giugno 2016, 16:02

Grazie Junior, ma il tuo codice non mi funziona ma forse solo per un discorso di pin collegati

Attualmente ho 3 motori collegati (pin 8 9 10 11 12 13 )anche se a me servono solo 2 che fanno la stessa cosa
nel senso che vorrei utilizzare 2 assi contrapposti per creare trascinamento.


Ti posto un codice che mi funziona e che mi crea un giro completo di 2 assi contrapposti (contrapposti per collegamento fasi).


Vorrei avere diciamo una ventina di questi passi e tra uno e la l'altro si esegue una operazione.

Solo che aggiungendo passi non funziona più.
spero di essere stato chiaro

/*************************************************************************
* File Name          : Me_AccelStepper.ino
* Author             : Ander
* Updated            : Ander
* Version            : V0.0.3
* Date               : 12/11/2013
* Description        : 2 Step Motors
* License            : CC-BY-SA 3.0
* Copyright (C) 2011-2013 Hulu Robot Technology Co., Ltd. All right reserved.
http://www.makeblock.cc/
**************************************************************************/
#include <Makeblock.h>
#include <Arduino.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#include <AccelStepper.h>

// Define a stepper and the pins it will use
AccelStepper stepper(AccelStepper::DRIVER, 13, 12); // 13-PUL,12-DIR
AccelStepper stepper1(AccelStepper::DRIVER, 11, 10); // 11-PUL,10-DIR
void setup()
{  
  stepper.setAcceleration(8000);
  stepper.setCurrentPosition(0);
  stepper.setMaxSpeed(4000);
  
  stepper1.setAcceleration(8000);
  stepper1.setCurrentPosition(0);
  stepper1.setMaxSpeed(4000);
  
  
}
long current_position;
long current_position1;
void loop()
{
  
  if(current_position<=0){
    stepper.moveTo(400);
  }
  stepper.run();
  
  
  
  
  current_position1 = stepper1.currentPosition();
  
  if(current_position1<=0){
    stepper1.moveTo(400);
  }
  stepper1.run();
  
  
 
  
}

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

Re: Controllare 1 asse cnc

Messaggio da Junior73 » lunedì 6 giugno 2016, 8:59

Dunque il codice che ti ho postato era generico e pensavo che sapessi adattarlo allo scopo (avevi detto di conoscere qualocosa di C). Dopo la tua ultima spiegazione ho capito meglio alcune cose. Dammi un attimo che stasera provo con un paio di motori e driver una eventuale script.

IL codice da te postato usa librerie esterne (da vedere come sono impostate) ...molto meglio per te e per il forum (alfine della comprensione e aituo per tutti) costruirsi da zero lo script senza far uso di codice esterno .

Intanto qualche domanda/conferma:

-i Motori devono girare(con senso di rotazione invertito dalle fasi) solo in un senso?
-userai solo un driver o 2 driver (uno per motore)?
-L'intero programma deve essere avviato da un unico tasto di start?
-E' possibile dare dei tempi di pausa tra un movimento ed un altro per permettere la lavorazione?. Voglio dire se è possibile usare movimenti automatici senza l'imput dell'operatore tra una fase e l'altra dei 4-5 movimenti all'interno del programma.

Saluti

cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Re: Controllare 1 asse cnc

Messaggio da cris65 » lunedì 6 giugno 2016, 20:54

-i Motori devono girare(con senso di rotazione invertito dalle fasi) solo in un senso?
Si solo in un senso


-userai solo un driver o 2 driver (uno per motore)?
2 driver uno per motore


-L'intero programma deve essere avviato da un unico tasto di start?
Si

-E' possibile dare dei tempi di pausa tra un movimento ed un altro per permettere la lavorazione?.
Praticamente lo stampo è fatto da 2 unità di punzonatura con molla di ritorno.
Una taglia una fora.
Essendo un unica pressa ho pensato di mettere un piattello
comandato da un cilindro pneumatico in modo da spostare lo spessore
sull'unità che serve in quell'operazione
in modo di poter gestire entrambe con la stessa discesa della mazza.
Giusto far capire non vorrei confondere le idee.


SI vorrei gli input automatici,
Si tratta comunque di un operazione semi automatica con la presenza costante
dell'operatore e non sono necessari grossi controlli perchè anche se ci dovesse essere un'intoppo non
si possono fare danni ne a cose ne a persone.


Anni fa programmavo in C ma solo im x86 e VB6
sono molto arrugginito, ma la difficoltà piu' che altro è con l'ambiente Arduino.
e il loop.
Ma forse proprio perchè ho utilizzato quella libreria.
Provo a utilizzare quelle degli esempi.

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

Re: Controllare 1 asse cnc

Messaggio da Junior73 » lunedì 6 giugno 2016, 21:22

Allora quindi sintetizzo ciò che può fare il programma partendo da cose semplici:

- L'operatore "piazza" il profilato e preme il tasto start
- IL profilato si muove di X centimetri programmati e la pressa lo taglia/fora.....in pratica scompare una parte di questo profilato.
- Il tempo della prima lavorazione si può calcolare nei tempi per cui si può dare un delay prestabilito al programma (in sicurezza) prima che i motori ripartano e si muovino di altri y centimetri per dare via alla seconda lavorazione.

-.......così via fino alla fine del programma(che si ferma e riparte solo alla pressione del tasto start dell'operatore )/lavorazioni sul profilato

Necessario penso un tasto di emergenza che fermi tutto ....

Scusami ma è difficile capire immaginando !!!! :D Che ne pensi cosa bisogna aggiungere?

Saluti

cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Re: Controllare 1 asse cnc

Messaggio da cris65 » lunedì 6 giugno 2016, 21:31

Domani faccio qualche foto del profilo e delle unita trancianti simili a quelle che userò.

Grazie tante

Saluti

cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Re: Controllare 1 asse cnc

Messaggio da cris65 » lunedì 6 giugno 2016, 21:34

Comunque si piu' o meno funziona così è tutto corretto

torn24
God
God
Messaggi: 5075
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Controllare 1 asse cnc

Messaggio da torn24 » martedì 7 giugno 2016, 7:27

Penso sarebbe meglio usare un solo motore, e tramite un ingranaggio azionare anche il secondo cilindro, in rotazione inversa.

Il programma arduino, esegue un istruzione alla volta, e quindi se dici di azionare due motori, in realtà muove prima uno e poi l'altro, almeno di usare librerie pensate appositamente.

Esempio:

MuoviMotore1(10 passi);
MuoviMotore2(10 passi);

Farebbe prima 10 passi sul motore uno, finito il tutto, farebbe 10 passi sul motore dure.

Magari la libreria del tuo esempio, era studiata in modo da evitare questo "che è il funzionamento normale" di arduino...

RIGUARDO ALLA PRECISIONE:

Con un motore passo passo, sei costretto a eseguire uno spostamento minimo di uno step-passo, e a questo corrisponde uno spostamento del profilato in base alla trasmissione.
Esempio, hai un cilindro diametro 100 collegato direttamente a uno stepper da 200 passi, circonferenza cilindro =314, diviso 200 passi =1,57 mm, quindi la lunghezza del pezzo verrebbe + o - 1,57 mm, devi ridurre i giri da motore a cilindro, in modo che a ogni passo ottieni uno spostamento accettabile, quello che ti serve...
CIAO A TUTTI !

cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Re: Controllare 1 asse cnc

Messaggio da cris65 » martedì 7 giugno 2016, 8:10

Ok grazie ho capito.
Allora va bene un singolo motore.

Rispondi

Torna a “Lavorazioni Varie”