INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Motorsteuerung Nanotec mittels VCP



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.05.2018, 08:57 (Dieser Beitrag wurde zuletzt bearbeitet: 08.05.2018 09:50 von jg.)
Beitrag #1

HansHenning Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: May 2018

LV2017
2009
DE



Motorsteuerung Nanotec mittels VCP
Sehr geehrtes Forum,

ich habe folgende Fragestellung und hoffe hier eine Antwort zu bekommen. Ich arbeite momentan an der Regelung für ein Laborgerät bei dem ich zwei unterschiedliche Motor für die Druckbeaufschlagung in X und Y auf eine Probe konzipiere.

Nachdem nun die Hardware + Sensoren und Motoren vorhanden sind versuche ich die einzelnen Teile erst einmal einzeln in Labview anzusteuern um dann die Regelung für meine Anwendung zu konzipieren. Hierbei habe ich mich für einen Nanotec Schrittmotor NEMA 24 (https://de.nanotec.com/produkte/541-st60...r-nema-24/ ) mit einem Encoder und einer Steuerung CE5-E-1-09 (https://de.nanotec.com/produkte/1765-c5-e-1-09/ ) entschieden.

Ich habe nun auf dem Motor einen Virtuellen Computer Port (VCP) konfiguiert und den Motor mittels VISA in das Beispiel von Nanotec (vi angehängt) als Visa eingebunden. Ich kann Write und Read befehle ausführen bzw. ich sehe mittels Read dass der ich anscheinend den Motor abfragen kann.

Ich habe nun ein paar Fragen zur weiteren Umsetzung:

1. Wie schaffe ich es, dass die Motoren feste COM-Ports zugewiesen haben? Beim Start des Motors, dazu ist es wichtig zu wissen, dass ich beide Motoren auf einem USB-Hub gebündelt habe.
2. Ich verstehe die Logik der Befehle leider nicht auch wenn diese in dem Handbuch zum Motor aufgeschlüsselt sind (https://de.nanotec.com/produkte/manual/C..._USB_DE/-/ ), welchen Befehl muss ich senden um den Motor dazu zubringen sich zu bewegen und wie stelle ich die Geschwindigkeit ein etc. Ich würde dies gerne mit der Standard Vi von Nanotec erstmal tun um die generelle FUnktionsweise zu verstehen, bevor ich dies in meine Regelung einbaue.

Ich hoffe jemand kann mir diesbezüglich weiterhelfen.

Viele Grüße
Hans


Angehängte Datei(en)
16.0 .vi  VCP-Demo.vi (Größe: 14,5 KB / Downloads: 297)

16.0 .vi  Read.vi (Größe: 29,17 KB / Downloads: 272)

16.0 .vi  Write.vi (Größe: 28,29 KB / Downloads: 270)

16.0 .vi  CRC_Calculation.vi (Größe: 16,7 KB / Downloads: 261)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.05.2018, 11:54 (Dieser Beitrag wurde zuletzt bearbeitet: 08.05.2018 11:56 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Motorsteuerung Nanotec mittels VCP
Hallo Hans,

Zitat:1. Wie schaffe ich es, dass die Motoren feste COM-Ports zugewiesen haben? Beim Start des Motors, dazu ist es wichtig zu wissen, dass ich beide Motoren auf einem USB-Hub gebündelt habe.
Das hat nichts mit LabVIEW zu tun, sondern wie Windows (virtuelle) COM-Ports verwaltet.
Es gibt da Tools, die für "immer gleiche" COM-Port-Bezeichnungen sorgen sollen - musst du mal eine Suchmaschine deiner Wahl bemühen…

Zitat:2. Ich verstehe die Logik der Befehle leider nicht auch wenn diese in dem Handbuch zum Motor aufgeschlüsselt sind (https://de.nanotec.com/produkte/manual/C..._USB_DE/-/ ), welchen Befehl muss ich senden um den Motor dazu zubringen sich zu bewegen und wie stelle ich die Geschwindigkeit ein etc.
Die Kommunikation mit dem Motortreiber erfolgt über Register, deren Bedeutung im Manual erläutert wird. Vom Aufbau der Botschaften erinnert mich das an Modbus, diese Registerverwaltung findest du aber auch bei CANopen…

Wenn du also den Motor drehen lassen willst, musst du wahrscheinlich ein Controlword (mit diversen Freigaben etc.) senden als auch eine Solldrehzahl in einem anderen Register vorgeben. Einfach mal das Manual lesen…

Zitat:Ich würde dies gerne mit der Standard Vi von Nanotec erstmal tun um die generelle FUnktionsweise zu verstehen, bevor ich dies in meine Regelung einbaue.
Dann mach das doch einfach!

Zu deinen VIs: Hast du die erstellt - oder Nanotec? Die Cluster gehören auf alle Fälle typedefiniert - und der boolsche Wert darin benötigt dringend ein Label!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.05.2018, 14:26
Beitrag #3

MaxP Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 88
Registriert seit: Oct 2016

LV Prof. SSP
-
DE_EN


Deutschland
RE: Motorsteuerung Nanotec mittels VCP
Hallo Hans,

da dein Regler ein CANopen Regler ist, musst du dich (leider) erst mit CANopen und den dazugehörigen Gerätenprofilen beschäftigen. Ein deinem Fall ist das das DS402 Profil.

Für weitere Infos kannst du einfach mal auf der Seite von https://www.can-cia.org schauen oder aber du schaust mal in ein Festo/Metronix Handbuch für deren Servoregler, dort wird das DS402 Profil recht gut erklärt.

Wichtig ist auch die State Machine des DS402 zu beachten, ansonsten läuft da gar nichts. Big Grin

Gruß Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.05.2018, 20:59
Beitrag #4

HansHenning Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: May 2018

LV2017
2009
DE



RE: Motorsteuerung Nanotec mittels VCP
@GerdW:

Die VI´s sind die von der Nanotec Seite. Leider verstehe ich die Befehlslogik hinter den CANOpen Befehlen bisher noch nicht so ganz, dass muss ich mir erst erschließen.
Hast du noch einenTip bezüglich der Zuweisung der ComPorts?

@MaxP:
Ja, das scheint mir leider auch so, und du hast durchaus recht. Es tut sich gar nichts, da ich auf Grund, irgendetwas missverstehe. Die generelle Abfolge um den Motor müsste wie folgt sein (laut Nanotec Support):

Objekt und Wert
0x6060=1
0x6040=6
0x6040=7
0x6040=15
0x607A=2000
0x6040=31

Aber leider gelingt es mir nicht die Befehle mittels der VI zu senden.

Viele Grüße,
Hans Henning
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.05.2018, 21:54
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Motorsteuerung Nanotec mittels VCP
Hallo Hans,

Mal so aus dem Gedächtnis: 0x6040 ist das ControlWord. Die verschiedenen Werte initialisieren den Motorregler...

Die Bedeutung der Werte wird im Manual erläutert.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.05.2018, 06:26
Beitrag #6

MaxP Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 88
Registriert seit: Oct 2016

LV Prof. SSP
-
DE_EN


Deutschland
RE: Motorsteuerung Nanotec mittels VCP
Hallo Hans,

wenn du im Positions Modus bist, musst du dir auch die "Homing Methode" anschauen. Wenn der falsch steht, möchte der Regler erst mal eine Nullposition erfahren bevor da etwas passiert.

Versuch erstmal den Motor drehen zulassen, ohne Positionierung. Danach würde ich mich an die Positionierung machen.
Die State Machine wird hier ab Seite 156 ganz gut beschrieben -> https://www.festo.com/net/SupportPortal/...6794d1.pdf

Gruß Max
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.05.2018, 06:59
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Motorsteuerung Nanotec mittels VCP
Hallo Hans,

noch ein Nachtrag zum ControlWord:
   
So setze ich das ControlWord bei einem Sevcon-Motorregler - ich habe sogar mal einen Kommentar im Blockdiagramm hinterlassen…
(Das ist Teil eines größeren Treiber-VIs, der Verwaltungskram drumherum kann vernachlässigt werden.)

Ich kann Max nur zustimmen: lese dich in die CANopen-Dokumentation zum Motorregler ein. Positiver Effekt: wenn du einen CANopen-Motorregler bedienen kannst, kannst du (quasi) alle bedienen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.05.2018, 17:00
Beitrag #8

HansHenning Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: May 2018

LV2017
2009
DE



RE: Motorsteuerung Nanotec mittels VCP
Hallo GerdW und MaxP,

vielen Dank für eure Anregungen die mir nun weitergeholfen haben. Ich kann den Motor nun ansteuern, nachdem ich einigermaßen die Befehlslogik begriffen habe und was in den Nanotec Vi´s programmiert ist.

Ich hätte noch eine kurze Frage, wie kann ich am besten es verwirklichen, die Befehle welche gebraucht werden nacheinander abzuarbeiten. Ich dachte an eine Flat sequence welche aber jedoch sehr unübersichtlich wird.

Für Anregungen wäre ich sehr dankbar.

Viele Grüße,
Hans
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.05.2018, 20:31
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Motorsteuerung Nanotec mittels VCP
Hallo Hans,

Zitat:wie kann ich am besten es verwirklichen, die Befehle welche gebraucht werden nacheinander abzuarbeiten.
Das "am besten" musst du genauer definieren! Big Grin
Ich empfehle eine Statemachine, gerne auch mit einem QMH (queue message handler) kombiniert…

Zitat:Ich dachte an eine Flat sequence welche aber jedoch sehr unübersichtlich wird.
Nicht nur unübersichtlich, sondern auch "schlecht" im Sinne von (mangelnder) Skalierbarkeit…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2018, 15:31
Beitrag #10

HansHenning Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: May 2018

LV2017
2009
DE



RE: Motorsteuerung Nanotec mittels VCP
Hallo GerdW,

Ich bin nun so halb erfolgreich gewesen, ich habe eine VI geschrieben welche zwei Motoren auf Knopfdruck bewegen kann mit einer definierten Geschwindigkeit. Leider habe ich die CANopen Sache noch nicht ganz durchdrungen. Für den Befehl den Motor den Motor mit der vorgebenen Distanz und Geschwindigkeit laufen zu lassen benutze ich zum Beispiel: 6040:31 dabei ist mir vollkommen unklar wieso 31 = 1F in Hex für Bit 4?
Wie funktioniert die konvertierung von bit zu hex und dec? Wenn ich das noch verstanden habe, bin ich der Lösung ein Großteil meiner Probleme erstmal nah.

Anbei die vi welche ich momentan benutze. Dabei ist moveMotor_v2 die main vi und Stop_motor und shear_displacement Beispiele für die Kommunikation mit den Motoren.

Viele Grüße,
Hans


Angehängte Datei(en)
17.0 .vi  MoveMotor_v2.vi (Größe: 19,71 KB / Downloads: 439)

17.0 .vi  stop_motor.vi (Größe: 12,42 KB / Downloads: 380)

17.0 .vi  shear_displacement.vi (Größe: 22,33 KB / Downloads: 345)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Motorsteuerung (VCP) Erfassung Geschwindigkeit und Position JanM 2 3.264 15.06.2021 07:48
Letzter Beitrag: GerdW
  SMCI 33 -1 Motorsteuerung Jugien83 4 3.756 26.08.2019 10:53
Letzter Beitrag: Jugien83
  Einfache Motorsteuerung virtuell darstellen Kernfusion 3 7.119 23.10.2013 08:21
Letzter Beitrag: Firedevil87
  Motorsteuerung Sebastiansmyk 3 8.061 13.03.2012 22:28
Letzter Beitrag: Tschirno
  Einfache Motorsteuerung (Hilfe bitte) Sternenwanderer 1 5.828 06.02.2012 17:30
Letzter Beitrag: GerdW
  Realisierung einer Motorsteuerung mit RS485 Bus Pokerface 2 5.795 20.04.2011 10:51
Letzter Beitrag: IchSelbst

Gehe zu: