CNC Steuerung Toshiba TB6560

Hallo Zusammen,
habe vor kurzem meine CNC/Käsefräse fertigstellt. (Macht echt stolz) :grin:
Jetzt würde ich noch gerne einige spielereien einbauen. Und zwar folgende:

3x RGB LED die wie folgt angesprochen werden sollen:

Wenn die Fräse steht = grün
Wenn die Fräse läuft = blau blinkend
Wenn die Fräse einen Endschalter betätigt hat = rot

Zur Verfügung hab ich einen UNO und jede menge LEDs + Zubehör.
Grundlegendes Wissen zu Arduino ist auch vorhanden.

Aber wie um alles in der Welt hole ich mir das Signal der Motoren? :blush:

Wie geschrieben ist nur eine Spielerei - die ABER NOTWENDIG ist ]:smiley:
(Its only Light - but i like it)

Viele Grüße aus dem Schwarzwald

EDIT: Ich nutze Linux CNC als Software

Wo ist das Problem? Schau doch mal in deinem Sketch oder poste es. Wir können nicht hellsehen, zumindest einige nicht :wink:

  1. GRÜN = Motor X und Y und Z laufen nicht
  2. BLAU = Motor X od. Y od. Z läuft (Blinklicht kannst du mit millis() lösen)
  3. ROT = Beliebiger Entschalter aktiv

wie um alles in der Welt hole ich mir das Signal der Motoren?

Aus der Käse-Fräse ( bzw. deren Steuerung ) ?

sschultewolter:
Wo ist das Problem? Schau doch mal in deinem Sketch oder poste es. Wir können nicht hellsehen, zumindest einige nicht :wink:

Hallo, das verlangt ja auch niemand - ich zumindest nicht :slight_smile:

sschultewolter:

  1. GRÜN = Motor X und Y und Z laufen nicht
  2. BLAU = Motor X od. Y od. Z läuft (Blinklicht kannst du mit millis() lösen)
  3. ROT = Beliebiger Entschalter aktiv

Eben um das geht es. (das blinken ist kein Thema)

An welchen PIN der Motoren muss ich gehen? reicht einer? müssen es alle vier sein?
Ist der Ansatz - das Signal vom Motor zu holen - gänzlich falsch?

Einen Sketch hab ich noch nicht erstellt - damit beginne ich wenn ich weis woher ich das Signal bekomme.

Gruß

Tchefter:
... Ist der Ansatz - das Signal vom Motor zu holen - gänzlich falsch?

Jein.
Je nach dem was das Linux-CNC so alles an die Motoren schickt (Takt, Enable ?) könntest du zumindest den Status Grün & Blau irgendwie auswerten.
Aber wenn der/die Motoren stehen, woher sollen die wissen, ob das gewollt oder ein (Not-) Endschalter war ?
Es sei denn, du prüfst parallel die Endschalter mit ab.

TERWI:
Es sei denn, du prüfst parallel die Endschalter mit ab.

Hallo Terwi, die rote LED könnte ich sicherlich vom Endschalter direkt holen.
Da der Endschalter schließt oder öffnet kann im jetzigen Zustand, also nicht geschlossen, über den PIN der geschlossen ist fragen:
Was bisch? HIGH oder LOW - aber auch hier kann ich mich total auf dem Holzweg befinden - hilft nur try & error...
Wenn ich nur wüsste wo ich das Signal für "stehen" oder "laufen" abgreifen kann...

Gruß

Wenn der/die Endschalter im unbetätigtem Zustand offen sind, kannst du einen Pin an Masse legen und den anderen an einen Digitaleingang.
Diesen dann bitte mit pinMode(x, INPUT_PULLUP) definieren, damit der Eingang definiert auf H liegt.
Dann wäre das Abfrageergebnis ewben nur umgekehrt: Pin H → NICHT ausgelöst.
… fragt sich nur, wie es sich mit der Anschaltung für das Linux-Programm verhält. Ist da bereits ein Pin des Schalters nach Masse ? Oder wie ist das bisher beschaltet, bzw. muss beschaltet werden ?

Go oder NoGo jedes Motors könntest du am einfachsten von ENABLE-Signal am Eingang der Motorsteuerung abgreifen. Die allermeisten Steuerungen haben sowas.
Etwa gleiche Verfahrenweise und Bedenken wie bei den Schaltern.

TERWI:
Wenn der/die Endschalter im unbetätigtem Zustand offen sind, kannst du einen Pin an Masse legen und den anderen an einen Digitaleingang.
Diesen dann bitte mit pinMode(x, INPUT_PULLUP) definieren, damit der Eingang definiert auf H liegt.
Dann wäre das Abfrageergebnis ewben nur umgekehrt: Pin H -> NICHT ausgelöst.

Bis hierher kann ich dir folgen :slight_smile:

TERWI:
..... fragt sich nur, wie es sich mit der Anschaltung für das Linux-Programm verhält. Ist da bereits ein Pin des Schalters nach Masse ? Oder wie ist das bisher beschaltet, bzw. muss beschaltet werden ?
Go oder NoGo jedes Motors könntest du am einfachsten von ENABLE-Signal am Eingang der Motorsteuerung abgreifen. Die allermeisten Steuerungen haben sowas.
Etwa gleiche Verfahrenweise und Bedenken wie bei den Schaltern.

Ab hier verlier ich mich grade :slight_smile: du meinst ich müsste direkt den LPT Port abfragen? (Ich schnall es grade nicht)

Diese Steuerung hier hab ich
http://www.ebay.de/itm/SainSmart-CNC-4-Axis-TB6560-Stepper-Schrittmotor-Driver-Board-Parallel-Cable-/321003221358?pt=Bauteile&hash=item4abd48716e

Da hab ich rechts von der LPT die Möglichkeit Sensoren und Endschalter anzuschliessen.
Derzeit läuft auf LPT P10 ein Z-Axis-Zero-Touchplate für den Nullpunkt
Auf dem LPT P11 die Endschalter XYZ (jeweils nur da montiert wo ich nicht um die Ecke schauen kann)

Evtl. siehst Du mehr als ich - Es soll aber auch nicht sein das du meine Arbeit erledigen musst... :slight_smile:

Gruß

Das Board kenne ich so nicht - ich habe aber 3 einzelne kleine Boards mit TBA6560.
Zur steuerung des Motors jabe ich da je 3 Eingänge:
EN: Schaltet den Motor ein oder aus (SleepModus)
CW: links oder rechtsherum
CLK: der Taktimpuls
Wird bei dir denke ich mal nicht anders sein, nur das die Signale halt vom LPT-Port kommen. (Welcher PC hat so was noch ???)
Kann man bei dem Board vorne nicht auch separat steuern (über die Klemmleisten) ? Vielleicht kann man da auch ein Signal abnehmen ...
Ansonsten müsstes du mal schauen, wie das mit der Pinbelegung des LPT aussieht. (Manual dabei ?)

Vielleicht kannst du mal messen, ob die Endschalter auf dem Board einseitig an Masse oder an Plus liegen.
Dann könntest du parallel abgreifen.

Aber Obacht: Der Arduino verträgt nur 5V an den Eingängen !
Die Steuerung läuft sicher mit ein paar Volt mehr .... (An den Endstufen - die Elektronik selbst auf 5V ?)
Vielleicht sollte man sicherheitshalber Optokoppler dazwischen schalten - macht dann auch eine saubere galvanische Trennung.

TERWI:
Das Board kenne ich so nicht - ich habe aber 3 einzelne kleine Boards mit TBA6560.
Zur steuerung des Motors jabe ich da je 3 Eingänge:
EN: Schaltet den Motor ein oder aus (SleepModus)
CW: links oder rechtsherum
CLK: der Taktimpuls
Wird bei dir denke ich mal nicht anders sein...

Das ist das gleiche auch bei mir - bis auf das, das es nur ein ENABLE für alle Motoren gibt.

TERWI:
...nur das die Signale halt vom LPT-Port kommen. (Welcher PC hat so was noch ???)

Das ist mit das gute an Linux CNC -> da kann alte Hardware genommen und das System läuft super gut.

TERWI:
Kann man bei dem Board vorne nicht auch separat steuern (über die Klemmleisten) ? Vielleicht kann man da auch ein Signal abnehmen ...
Ansonsten müsstes du mal schauen, wie das mit der Pinbelegung des LPT aussieht. (Manual dabei ?)

Links vom LPT kann eine 5. Achse mit separater Endstufe angeschlossen werden.
Rechts vom LPT werden Sensoren/Endschalter angeschlossen.
Weiter rechts kann eine Spindel angeschlossen werden.
Ganz rechts ist Power 12-36V.
An den gegenüberliegenden Anschlüsse werden die Motoren angeklemmt.

TERWI:
Aber Obacht: Der Arduino verträgt nur 5V an den Eingängen !
Die Steuerung läuft sicher mit ein paar Volt mehr .... (An den Endstufen - die Elektronik selbst auf 5V ?)
Vielleicht sollte man sicherheitshalber Optokoppler dazwischen schalten - macht dann auch eine saubere galvanische Trennung.

Die Karte läuft mit einem 36V Schaltnetzteil (runtergedreht auf 32V)

Ich denke mal alles in allem wird es wohl aufwändiger als gedacht :slight_smile:
Die ganzen Käbelchen die an der Maschine verlegt werden müssen - ich muss das alles nochmal überdenken -
Vielen Danke TERWI für deine Ideen, Ansätze, Lösungsvorschläge...

Gruß

Das ist ja meistens so: 1. kommt es anders un d 2. als man denkt. :smiley:
Wenn es nicht nur ein paar Teile sind, mache ich mir vorher immer eine Zeichnung. Alle Bauteile / Komponenten mit allen Pins und nem Arduino auf den Schirm (oder auch einfach auf ein Platt Papier) und dann zunächst mal nach gut Dünken verbinden.
Später dann nach Optik entflechten und schauen, ob alle Pinzuweisungen auch passen - insbesondere bei mehreren IRQs, Seriellen.
Mit etwas visuellem vor Augen sieht man leichter Fehler und ich finde, einProgramm danach zu erstellen ist einfacher, als wenn man das alles aus dem Kopf macht.
Für mein “HELUINO”-Projekt sieht das z.B. so aus wie in der Anlage.

Schaltung_A6.pdf (149 KB)

Hallo TERWI, na das sieht ja richtig vorbildlich aus! respekt!
Für mich hat das richten noch keinen Sinn gemacht - da ich ja nicht weis wo ich was,
ohne meine UNO oder TB zu zerschiessen, anzapfen kann.
I.d.R. nehm ich mir Jumperkabel, LEDs usw. und stöpsel das auf dem Breadboard zusammen - und dann wird getestet.
Aber mir fehlt eben noch das eine Puzzleteil… :slight_smile: Mag jetzt vieleicht engstirnig oder unflexibel klingen - aber ohne
die eine Sache kann ich nicht anfangen…

Gruß