[OT] Nanotec PD4-C - Plug & Drive Schrittmotor USB erfahrung

Hallo miteinander,

ich habe hier einen "PD4-C - Plug & Drive Schrittmotor mit USB" der Firma Nanotec.

Ich habe den auf dem Schreibtisch liegen und an per USB angeschlossen, leider erkennt mein MAC wie auch der WIN Rechner den Motor nicht :-(

Hat von euch schon mal jemand so einen Motor von der Firma Nanotec im Einsatz gehabt und kann mir etwas helfen dabei?

gruß Mücke

ps. das ist der Link zu dem Motor: PD4-C6018L4204 die Software die dort hinterlegt ist habe ich herunter geladen und Installiert macht keinen unterschied :(

ich bin nun ein wenig weiter gekommen.

Der Motor benötigt die Strom Versorgung vom Netzteil, warum auch immer bin ich mir eigentlich sicher gewesen das die wehrend der USB Einstellung getrennt werden muss, jedoch ist im Handbuch dann auf geführt das man die nicht Trennen soll, … hatte deshalb mit dem Support Tel. die haben mir das dann auch noch mal bestätigt, …

Jetzt ist das Netzteil dran und schau an der Motor wird gefunden am PC :slight_smile:

der Motor meldet sich wie ein Wechseldatenträger und ich kann die Konfigurationsdatei bearbeiten,
auch wenn das sehr spannend ist, denn die ist für mich nicht gerade einfach zu lesen :frowning:

Na ja dazu haben wir ja jetzt ein Langes WE :wink:

So langsam bereue ich es den Motor mir zugelegt zu haben.

Ich habe hier rund 100 Seiten mit Objekten beschrieben die man einstellen kann der Kerl am Telefon meinte das geht ganz einfach über die Software, jetzt muss ich feststellen das man die Objekte alle in einer Textdatei aufrufen muss und die Einstellungen dort dann hinterlegen muss, dazu gibt es dann auch noch DIP Schalter (wobei die einfach sind) bei 99% verstehe ich die Objekte nicht, arrrr.....

das ist doch eine Sch*****.

Hat von euch schon mal jemand einen der PD4-C konfiguriert? und kann mir da etwas Helfen, ob ich auch wirklich alle für mich relevanten Objekte gefunden habe und keins vergessen habe, und auch die Richtigen Einstellungen gefunden habe?

Bisher habe ich alle nur auf einem Block notiert, ich muss jetzt alle mal zusammen tragen und Dokumentiren, würde das hier dann veröffentlichen, mit der Hoffnung das jemand so was schon mal gemacht hat bei so einem Motor.

hi,

ich hab' natürlich keinen solchen motor, aber aus der entfernung seh' ich das so:

die abläufe werden in einer STP-datei (step für schritt) hinterlegt, wie man sie als beispiel auf der webseite herunterladen kann. in der step-datei steht ganz oben: "Generated by software with PDElib inside" wenn ich das richtig sehe, nimmt man ein CAD/CAM-programm und und dieses programm verwendet diese lib, um die abläufe dann angepaßt an diesen motor in die text-datei zu schreiben.

bei uns in der firma läuft das genauso. mit einem programm namens CATIA oder TOPs werden die abläufe erstellt und dann mit einem sogenannten post-processor an die jeweils ausführende maschine angepaßt. dieser post-processor ist wahrscheinlich diese lib.

auf der webseite kannst Du NanoJ Easy V2.05 runterladen, das wird halt ein freies CAD/CAM-programm sein. entweder ist da die lib schon integriert oder Du mußt sie noch anbinden.

gruß stefan

hey,

ne da hast du was Falsch verstanden,

die Text Datei ist für die Motor Konfiguration, dort kann allerhand Definiert werden. z.B.

; Das ist ein Kommentar 
; ----- Eingangsspannung festlegen ----- 
3240:06=0

das ist z.B. das Objekt um die Eingangsspannung für die Eingänge (Takt, Richtung und Freigabe) festzulegen wobei 0 für 5V und 1 für 24V steht. Nachzulesen ist das hier: http://de.nanotec.com/produkte/manual/PD4C_USB_DE/object_dictionary%252Fod_motion_0x3240.html/

und ich habe keinen Plan was ich für Objekte alles definieren muss und mit was, ...

das was du beschreibst ist eine Steuerung für eine CNC Maschine. Die Steuerung kann den wie von dir beschriebenen G-Code dann in Takt/Richtung Signale umwandeln oder Schrittmotoren direkt ansprechen.

in meinem Fall müsste ich dann alle Achsen mit solchen Motoren ausstatten und richtig Konfigurieren die werden dann wiederum an eine Steuerung z.B. ein Arduino angeschlossen und auf dem Läuft dann das Takt/Richtung Programm das den G-Code verarbeiten kann.

hmm, warum hast so einen Motor nicht :-(

Gruß Mücke, .. aus dem verregnetem Deutschland

Hallo Mücke,
wir haben den Motor auf Arbeit im Einsatz. Leider bin ich dem Projekt nicht dabei - durfte nur bei der Architektur helfen - ich versuch mal den Kollegen am Montag auszuquetschen.
Grüße, Jürgen

hi,

daß in der stp-datei die motor-parameter festgelegt werden, glaube ich schon, aber der großteil der datei sieht so aus:

247=CARTESIAN_POINT('',(16.883545204954014,27.455423973175108,-53.000000000000007));

248=DIRECTION('',(0.676271292684828,-0.73665265810312,0.0));

249=VECTOR('',#248,3.129594318048858);

250=LINE('',#247,#249);

251=EDGE_CURVE('',#237,#246,#250,.T.);

252=ORIENTED_EDGE('',,,#251,.T.);

253=CARTESIAN_POINT('',(19.0,23.999999999999901,-53.000000000000007));

254=VERTEX_POINT('',#253);

255=CARTESIAN_POINT('',(19.000000000000007,25.149999999999999,-53.000000000000007));

256=DIRECTION('',(0.0,-1.0,0.0));

257=VECTOR('',#256,1.150000000000091);

258=LINE('',#255,#257);

259=EDGE_CURVE('',#246,#254,#258,.T.);

was macht dann das?

gruß stefan

EDIT: was solche befehle allerdings mit einem einzelnen motor machen sollen, versteh' ich auch nicht...

hey Jürgen,

das wäre der Hammer wenn das klappen würde.

Das ist mein Material:

Der Motor ist in USB Ausführung,
Ich möchte den über Takt/Richtung/Freigabe über den Arduino ansteuern.
Vollschritte.
Dann müsste es noch eine Einstellung für die Schritte geben, wenn der Motor Schritte verliert obwohl er eigentlich Stehen sollte, da müsste es etwas geben ab wann der Motor wider selbst nach regelt auf die eigentliche Position.

Ich hoffe das sind alle Infos die man da benötigt um die Einstellungen halbwegs hin zu bekommen.

Hey Stefan,

eine STEP Datei ist was anderes als die Konfiguration Datei auf dem Motor:

STEP ist eine Neutralschnittstelle zum Austausch von 3D CAD Daten zwischen unterschiedlichen CAD Systemen (sollte so gut wie jedes System einlesen können, .... )....

die Muster Datei für den Motor schaut so aus: "PD4CFG.TXT"

;This file allows to adjust object dictionary parameters
;Note: max. filesize is 4k - comments must start with semicolon
;
;USB has to be disconnected and PD4C has to be power cycled after 
;this file has been modified!
;
;----------------------------------------------------------------

;to demonstarte how a dip switch can set values conditionally
2037=500
#1:2037=700

;Multipliers/Divider for clock direction (512 = full step, 256=half step, etc)
2057=128
2058=1

;enable closed loop
;3202=1

;set speed range for analog input (use 1mV input range and scale to 150RPM)
;604C:01=15
;604C:02=6000

;this would scale from 0-5RPM
;604C:01=1
;604C:02=12000

;direction (0x40 = CCW, 0 = CW)
;607E=0x40

;this enables current reduction:
;3202=8
2037=500

;when dd4c is set to 1, DIP switches are ignored, no built in task takes control
;dd4c=0

;max current
2031=3000

zuerst kommt das Objekt dann ein ist gleich und dann der Wert. im Handbuch gibt es dazu ca. 130 Seiten Erklärung mit den unterschiedlichsten Objekten. Die Datei hat noch nichts damit Zutun wie viele Schritte der Motor wann wie laufen soll, und wie schnell. sondern wie der Motor Konfiguriert ist der Motor hat einen Motor Treiber mit on Bord und dieser muss konfiguriert werden, z.B. welcher Eingang mit wievielt Volt gespeichert wird, oder was der Max Strom ist für den Motor, dann kann man auch einstellen welche Rampen der Motor Fahren soll oder wie er abbremsen soll etc. das muss alles erst mal definiert sein, das geht in dem Fall nicht über die STEP Datei

Hi Muecke, ich habe mit Nanotec zu tun gehabt aber wir haben nicht einen "kompletten" Stepper genutze sondern nur mit dem SMCI36 Stepper und BLDC treiber gearbeitet. Von Nanotec ist sogar ein Techniker bei uns gewesen. Kannst du mit dem Motor auch das Programm NanoJeasy nutzten. Wenn ja dann ist das nur ein kleiner Schritt von Arduino auf das "java und C++" ähnliche Programmierprogramm. War gerade noch mal auf der Seite du kannst das Dingen mit NanoJeasy programmieren, also einarbeiten und freuen. ;-) Mit dem Programm NanoPro kannst du dann die Konfig machen.

Das von uns geschriebene Programm kann ich dir leider nicht zur Verfügung stellen das dies ein Teil von unserer eigen Entwickelten Anlage.

Gruß DerDani

Lass dich nicht in die Irre führen das Programm (NanoPro) sollte auch mit dem laufen da es ein Plug&Drive Motor(Stepper) ist. Gruß DerDani

Hey,

das Programm NanoPro kann keine Verbindung mit dem Motor aufbauen :-( laut Nanotec ist das auch nicht vorgesehen.

Denn der Motor bzw. das System PD4-C meldet sich nur als Laufwert (Wechseldatenträger) am PC an. Alle Konfig Daten müssen in der Textdatei vorgenommen werden.

Das NanoJeasy kann man scheinbar für den Motor benutzen, hier bin ich aber noch nicht so ganz schlau geworden was das ist, wenn ich das richtig verstanden habe kann ich mit dem NanoJeasy eine Java Datei erzeugen die dann wider auf dem Motor gespeichert werden muss.

Mit dem Java Programm kann man dann z.B. wenn cih das richtig verstanden habe, angeben was passieren soll wenn der Motor einen Fehler hat, oder was über die Klemme X1 ausgegeben werden soll.

Ich kann dem Motor dann z.B. auch sagen wenn über das Freigabe Signal ein LOW kommt für 10µs und dann ein HIGH für 10µs mache 200 Umdrehungen Rechts Rum und dann 50 Umdrehungen Links Rum. dancah mache 10 min Pause.

nur so was möchte ich gar nicht erstellen, ich wäre schon zufrieden wenn das Teil im Modus Takt/Richtung gehen würde und alle Einstellungen richtig gesetzt sind dafür.

Ich hoffe das ich das Programm NanoJeasy richtig verstanden habe.

so ich habe jetzt mal ein paar Sachen zusammen geschrieben. Und Dokumentort mit Links wo man was nachlesen kann.

Das mit dem "Open Loop Stromreduzierung" und "Stromreduzierung" habe ich bis jetzt noch nicht so richtig raus was ich da möchte bzw. was ich da einstellen muss, das kommt hoffentlich noch.

Habe das alles mal in den Code Tag gemacht da sonst die Leerzeichen verloren gehen :-( Wie gesagt ich habe nur keinen Plan ob ich dann alle Objekte drin habe oder nicht der Motor gibt mir ja keine Fehlermeldung :-(

Sind ja insgesamt nur ca. 160 Objekte mit Unterkategorien die man einstellen kann.

; -------------------------
; Motor Konfiguration
;
; Motor: PD4-C6018L4204-E-01
; Autor: Mücke
; Datum: 01.05.2015
;
; Maximale Datei Größe 4k
; Konfiguration nach Neustart vorhanden
;
; Anschlussbelegung: 
;    http://de.nanotec.com/produkte/manual/PD4C_USB_DE/pd4c%252Fconnectors.html/
;
; Konfiguration für: Takt / Richtung
; -------------------------

; ----- Eingangsspannung festlegen ----- 
3240:06=0

; ----- Maximalstrom -----
2031=3000

; ----- Takt zählweite einstellen -----
2057=128
2058=1

; ----- Open Loop Stromreduzierung -----
;2037=500        -> Original vom Motordatei
;#1:2037=700     -> Original von Motordatei 

; ----- Stromreduzierung -----
;3202=8        -> Original vom Motordatei (war schon aus kommentiert)
;2037=500      -> Original von Motordatei       




; ###### Info #############
; ----- Eingangsspannung festlegen ----- 
;   für Takt / Richtung / Freigabe 
;    Objekt 3240h => Subindex 06h => 0 = 5V; 1 = 24V 
;    http://de.nanotec.com/produkte/manual/PD4C_USB_DE/object_dictionary%252Fod_motion_0x3240.html/

; ----- Maximalstrom -----
;    Objekt 2031h ==> Gibt den Maximalstrom in mA an
;    http://de.nanotec.com/produkte/manual/PD4C_USB_DE/object_dictionary%252Fod_motion_0x2031.html/

; ----- Takt zählweite einstellen -----
;    Objekt 2057h ==> 512 = Vollschritte, 256 = Halbschritte, 128 = Viertelschritt usw.
;    http://de.nanotec.com/produkte/manual/PD4C_USB_DE/object_dictionary%252Fod_motion_0x2057.html/
;
;    Objekt 2058h ==> Ganze Zahl 
;    http://de.nanotec.com/produkte/manual/PD4C_USB_DE/object_dictionary%252Fod_motion_0x2058.html/

; ----- Open Loop Stromreduzierung -----
;    Objekt 2037 ==> noch nicht verstanden
;    http://de.nanotec.com/produkte/manual/PD4C_USB_DE/object_dictionary%252Fod_motion_0x2037.html/

; ----- Stromreduzierung -----
;    Objekt 3202 ==> noch nicht RICHTIG verstanden
;    http://de.nanotec.com/produkte/manual/PD4C_USB_DE/object_dictionary%252Fod_motion_0x3202.html/
;
;    Objekt 2037 ==> noch garniecht verstanden
;    http://de.nanotec.com/produkte/manual/PD4C_USB_DE/object_dictionary%252Fod_motion_0x2037.html/


; ----- Closed Loop? -----
;  Das Verfahren wird auch als Sinuskommutierung über Encoder mit feldorientierter Regelung bezeichnet.
;  Über Signale des Encoders wird die Rotorlage erfasst, und es werden in den Motorwicklungen sinusförmige
;  Phasenströme erzeugt. Durch die Vektorregelung des Magnetfelds ist gewährleistet, dass das Statormagnetfeld
;  immer senkrecht zum Rotormagnetfeld steht und die Feldstärke genau dem gewünschten Drehmoment entspricht.
;  Der in den Wicklungen so gesteuerte Strom sorgt für eine gleichmäßige Motorkraft und führt zu einem besonders
;  ruhig laufenden Motor, der sich genau regeln lässt.
; 
; Die Steuerungen der Serie SMCI sowie die Plug & Drive Motoren besitzen bereits eine integrierte Closed
; Loop-Funktion und können Schrittverluste am Ende der Positionsfahrt automatisch ausgleichen.
; Für den Closed Loop-Betrieb muss an die SMCI-Steuerungen ein 3-Kanal-Encoder bzw. Drehgeber mit min.
; 500 Imp./Umdr. montiert werden. Bei den Plug & Drive Motoren ist der Encoder bereits integriert, Ausnahme: PD2-O.
;
; Unsere Steuerungen integrieren auch einen dynamischen Closed Loop und können nicht nur während der Fahrt Schrittwinkelfehler
; kompensieren, sondern auch Lastwinkelfehler innerhalb eines Vollschrittes korrigieren. Die Schrittmotoren
; erreichen somit ein ähnlich dynamisches Verhalten (bis etwa 2000 U/min) wie hoch dynamische Servomotoren.
; Außerdem erreichen sie höhere Drehzahlen und sind äußerst resonanzarm. Sie arbeiten wesentlich geräuschärmer
; und effizienter, da sie mit weniger Strom die gleiche Leistung erbringen und deutlich kühler bleiben, was
; wiederum zu Energieeinsparungen führt.

ich habe eine Datei bei Nanotec auf der Webseite gefunden, da ist eine Art Musterdatei :-)

Mit der habe ich nun fast alles Definiert.

Wobei ich da bei manchen Dingen immer noch nicht sicher bin was die zu bedeuten haben bzw. ob ich die benötige

Datei als Code unten angehängt ;)

  1. MOTOR-Einstellungen
  2. Antrieb-Mode = ClosedLoop --> Beschreibung Handbuch -- Motor-Strom in mA [u]?? Wird also nicht mehr benötigt ??[/u] --> Beschreibung Handbuch -- Motor-Strom bei Reduktion in% [u]?? Wird also nicht mehr benötigt ??[/u] --> Beschreibung Handbuch

  3. INPUT-Einstellungen

  4. Eingangsspannung = 5V --> Beschreibung Handbuch (Subindex 06)

  5. Input-Signals ?? was ist denn das ?? --> Beschreibung Handbuch (Subindex 07)

  6. EINSTELLUNGEN FÜR Puls-Richtungs

  7. Einstellung für Impulse = 512 --> Beschreibung Handbuch

  8. Multiplikator für Impulse = 1 --> Beschreibung Handbuch

  9. Einstellungen für Analog--SPEED Da ich kein Analog verwenden möchte muss ich da auch nichts Definieren, glaube ich, wobei ich mir mit den Rampen nicht sicher bin: ob die nicht auch für den Takt Richtung Modus gelten.

Beschleunigung --> Beschreibung Handbuch Bremszeit --> Beschreibung Handbuch

;--------------------------------------------------------------------------------------------------------------------------------------
; Basic-Einstellungen für Puls-Richtung und Analog-Modus
;--------------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------------
;   Belehrung: 
; Firmware-Version: siehe info.bin mit Text Editor (Format: FIR-vxxxx-Bxxxxx) 
; ein ";" Zeichen markiert eine Zeile als Kommentar (die Zeile hat keine Wirkung)
; Die Max. Größe dieser Datei ist 4k

;--------------------------------------------------------------------------------------------------------------------------------------
; MOTOR-Einstellungen (für beide Modi)
;
; Antrieb-Mode (8 = OpenLoop mit Stromreduzierung (Voreinstellung), 0 = OpenLoop ohne Stromreduzierung, 1 = ClosedLoop) 
3202=1
;
; Motor-Strom in mA (default = 700mA ~ 0,7A)
;2031=600
;
; Motor-Strom bei Reduktion in% (Standard 50% des Stroms in 2031)
;2037=-50

;--------------------------------------------------------------------------------------------------------------------------------------
; INPUT-Einstellungen (für beide Modi)
;
; Eingangsspannung für Takt-Richtungs Eingänge (Stecker X2), Richtung und Clock (0 = 5 V (Standard), 1 = 24 V)
3240:06=0
;
;Input-Signals for Enable, Direction and Clock as single-ended or differencial (0 = single-ended (default), 1 = differencial)
;3240:07=0

;--------------------------------------------------------------------------------------------------------------------------------------
; EINSTELLUNGEN FÜR Puls-Richtungs (Standard ist 1/4 Schritt, 800step pro Umdrehung)
;
; Einstellung für Impulse pro Umdrehung für Pulse-Direction (512 = 200steps (default))
2057=512
;
; Multiplikator für Impulse pro Umdrehung (1 = 200 steps, 2 = 400 steps, 4 = 800 steps (Standard), ... wenn 2057 = 512)
2058=1

;--------------------------------------------------------------------------------------------------------------------------------------
; Einstellungen für Analog--SPEED (aktivieren Analog-Geschwindigkeit-Modus 1000rpm mit DIP-Schalter)
;
; Beschleunigung in U / s≤
;6083=500
;
; Bremszeit in U / s≤
;6084=500
;
; Höchstgeschwindigkeit für Analog-Geschwindigkeit-Modus 
;             (604C:01 ist eine Anzahl der Umdrehungen multipliziert mit der Zieldrehzahl 6042,
;              die pro Zeit der mit 604C:02 festgelegt in s)
; z.B.: 
;      6042    = 1000
;      604C:01 = 150 
:      604C:02 = 60000 
;
;      würde bedeuten
;      150 * 1000 Umdrehungen
;      in 60.000s = 150000 Umdrehung / 1000 min = 150 Umdrehung / min
;      so dass der Bereich für den Analog-Eingang von 0 Upm bis 150 rpm ist
;
;604C:01=150
;604C:02=60000
;6042=1000

so ich habe nun eine Datei Konfigurationsdatei fertig, bei der ich mir zu 99% sicher bin das sie stimmt.

Einstellungen für den Takt, Richtung, Freigabe Betrieb

Eingang für die Signale sind HIGE = 5V und LOW = 0V Motorstrom wurde auf 4.000mA begrenzt Schritte = Vollschritte das sind 200 Schritte pro Umdrehung

;--------------------------------------------------------------------------------------------------------------------------------------
; Basic-Einstellungen für Puls-Richtung und Analog-Modus
;--------------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------------------------------
;   Belehrung: 
; Firmware-Version: siehe info.bin mit Text Editor (Format: FIR-vxxxx-Bxxxxx) 
; ein ";" Zeichen markiert eine Zeile als Kommentar (die Zeile hat keine Wirkung)
; Die Max. Größe dieser Datei ist 4k

;--------------------------------------------------------------------------------------------------------------------------------------
; MOTOR-Einstellungen (für beide Modi)
;
; Antrieb-Mode (8 = OpenLoop mit Stromreduzierung (Voreinstellung), 0 = OpenLoop ohne Stromreduzierung, 1 = ClosedLoop) 
3202=1
;
; Motor-Strom in mA (default = 700mA ~ 0,7A)   Angabe für den Maximalen Strom der zugelassen wird !!
2031=4000

;--------------------------------------------------------------------------------------------------------------------------------------
; INPUT-Einstellungen (für beide Modi)
;
; Eingangsspannung für Takt-Richtungs Eingänge (Stecker X2), Richtung und Clock (0 = 5 V (Standard), 1 = 24 V)
3240:06=0

;Input-Signals for Enable, Direction and Clock as single-ended or differencial (0 = single-ended (default), 1 = differencial)
3240:07=0

;--------------------------------------------------------------------------------------------------------------------------------------
; EINSTELLUNGEN FÜR Puls-Richtungs (Standard ist 1/4 Schritt, 800step pro Umdrehung)
;
; Einstellung für Impulse pro Umdrehung für Pulse-Direction (512 = 200steps (default))
2057=512
;
; Multiplikator für Impulse pro Umdrehung (1 = 200 steps, 2 = 400 steps, 4 = 800 steps (Standard), ... wenn 2057 = 512)
2058=1

Guten Tag zusammen,

der Beitrag ist nun schon vor einer ganzen Weile erstellt worden, aber ich frag trotzdem mal. Hast du den Stepper mit dem Arduino steuern können? Ich benötige ebenfalls einen solchen Motor und bin am überlegen, ob wir uns diesen bestellen.

Beste Grüße und danke!

Hallo das_benni,

sorry das ich mich erst jetzt melde, bin gerade wider viel unterwegs und komme zu sehr wenig :-(.

Den Notor habe ich zum laufen bekommen, jedoch wird dieser sehr schnell Heiß, leider ist das mit dem Schrittverlust auch so ein Sache er kann immer noch Schrittverluste haben die dann nicht gemeldet wenden:-(.

Ich habe mich für Normale Schrittmotoren entscheidend und habe einen Decoder bei jedem im Einsatz und Überwache alle schritte selbst.

Das ist das was ich dir zu meinem Motor sagen kann. Hier im Thema solltest du auch alles finden was du benötigst um ihn zum laufen zu bekommen.

Gruß Mücke