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 

Trinamic TMCM-610 über Wrapper-dll ansteuern



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!

05.11.2007, 14:09
Beitrag #1

matzesl Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jul 2007

8.20
2007
kA


Deutschland
Trinamic TMCM-610 über Wrapper-dll ansteuern
Hallo

Ich habe eine Schrittmotoren Karte von Trinamic TMCM-610 die 5 Schrittmotoren ansteuern soll. Das Funktioniert normalerweise über eine mitgelieferte Software mit eigener Programmiersprache (TMCL-IDE). Ich habe die Karte über USB angeschlossen, vorher einen Treiber installiert und konnte die Software normal nutzen.

Nun möchte ich die Ansteuerung in ein LabVIEW-Programm einbinden. Bin in LabVIEW noch nicht sehr weit, im Prinzip ist das mein erstes Projekt bei dem es um eine externe Ansteuerung geht. Trinamic hat für den Zweck eine Wrapper-DLL mitgeliefert, die einige Befehle enthält. Diese habe ich in LabVIEW eingebunden und damit drei VI´s erhalten: ListUSBDevices, OpenUSB und CloseUSB. eine Beschreibung der DLL gibts hier:

http://www.trinamic.com/tmc/media/Download...LWrapperUSB.pdf

Das Manual der Original Trinamic-Programmiersprache gibts hier:

http://www.trinamic.com/tmc/media/Download...L_reference.pdf

Nun bin ich soweit diese drei VI´s aufzurufen, nur wie binde ich diese jetzt richtig ein. Ich verstehe noch nicht ganz wie ich jetzt Befehle an das Modul senden kann, irgendetwas fehlt mir da im Moment.

Kann mir da jemand einen Tip geben der mir etwas auf die Sprünge hilft?

Vielen Dank schonmal für die Hilfe, bevor ich es vergesse, ich nutze die LabVIEW Version 8.2.

Gruß

matze
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.11.2007, 17:12
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Trinamic TMCM-610 über Wrapper-dll ansteuern
' schrieb:Kann mir da jemand einen Tip geben der mir etwas auf die Sprünge hilft?
Also eigenlich kann man aus den beiden Dokumenten herauslesen, wie die Schnittstelle zur DLL aussieht. Das ist aber mühselig.

Hast du auch eine .H-Datei zur DLL bekommen? Damit kann man mehr anfangen als mit den Dokumenten.

Hast du die drei VIs belbst gemacht? Kannst du mal die drei VIs hier einstellen?

Zitat:Ich verstehe noch nicht ganz wie ich jetzt Befehle an das Modul senden kann, irgendetwas fehlt mir da im Moment.
Da muss es mindestens eine vierte Funktion geben - das man aus den mitgelieferten VIs herauslesen könnte.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.11.2007, 07:59
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Trinamic TMCM-610 über Wrapper-dll ansteuern
' schrieb:Nun bin ich soweit diese drei VI´s aufzurufen, nur wie binde ich diese jetzt richtig ein. Ich verstehe noch nicht ganz wie ich jetzt Befehle an das Modul senden kann, irgendetwas fehlt mir da im Moment.

Kann mir da jemand einen Tip geben der mir etwas auf die Sprünge hilft?

Vielen Dank schonmal für die Hilfe, bevor ich es vergesse, ich nutze die LabVIEW Version 8.2.

Du musst auch noch 2.4 GetResult und mehrere der 3.1 bis 3.18 Funktionen implementieren.
Wie, das ist aus der Dokumentation leider nicht ersichtlich. Da ist noch nicht mal ein Funktionsprototyp angegeben. Dies als DLL Beschreibung zu "verkaufen" ist ein bisserl frech.

Also etwas mehr Info wirst Du schon benötigen. Das von IchSelbst angesprochene Header (*.h) File wäre zumindest ein Anfang.

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.11.2007, 10:24
Beitrag #4

matzesl Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jul 2007

8.20
2007
kA


Deutschland
Trinamic TMCM-610 über Wrapper-dll ansteuern
Vielen Dank schonmal für die schnelle Hilfe. Bin immer nur alle zwei Tage an dem Projekt zugange, desshalb sind meine Antworten immer etwas versetzt.

Hier kann man die Wrapper-DLL mit headerdatei runterladen. ich hab jetzt mal die aktuelle genommen, die auf meiner mitgelieferten cd war etwas älter:

http://www.trinamic.com/tmc/media/Download...LWrapperUSB.zip

ich hab diese dll jetzt nochmal versucht bei LabVIEW zu implementieren. dabei ist schedinbar dasselbe problem aufgetaucht: es werden nur drei vi´s erzeugt - also nur drei der insgesamt 32 (glaub ich) funktionen die in der dll sind erkannt. laut dem labvietext der dazu erscheint könnte das an der headerdatei liegen - aber das wäre doch mist wenn mir trinamik ne headerdatei mitliefert die nicht die nötigen funktionen implementiert die in der dll vorhanden sind. was mach ich denn da falsch?

wahrscheinlich würde sich damit meine letzte frage nach der anwendung erübrigen, wenn ich dann letztendlich einfache vi´s habe für die unterschiedlichen befehle die ja scheinbar in der dll hinterlegt sind.

also: wie implementiere ich die oben verlinkte dll mit der headerdatei in LabVIEW richtig, sodass ich am ende für jede funktion ein vi hab (so scheint das ja vorgesehen zu sein)?

vielen dank schonmal wieder für die hilfe

matze
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.11.2007, 18:38 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2007 14:24 von jg.)
Beitrag #5

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Trinamic TMCM-610 über Wrapper-dll ansteuern
' schrieb:ich hab diese dll jetzt nochmal versucht bei LabVIEW zu implementieren. dabei ist schedinbar dasselbe problem aufgetaucht: es werden nur drei vi´s erzeugt - also nur drei der insgesamt 32 (glaub ich) funktionen die in der dll sind erkannt. laut dem labvietext der dazu erscheint könnte das an der headerdatei liegen
Sag ich mal so: bei mir geht das (wohl).
Ich hab auch nicht die Headerdatei eingelesen, sondern den DLL-Knoten manuell bearbeitet. Zumindest die drei, die ich in mein Beispiel aufgenommen habe, funktionieren schon mal. Und da im DLL-Knoten alle laut Headerfile verfügbaren Funktionen sichtbar sind, gehe ich davon aus, dass man auch für jede dieser Funktionen einen DLL-Knoten (respektive ein VI) erstellen kann. Mit der Funktion SendCmd scheint es möglich zu sein, alle TMCL-Funktionen (siehe im Headerfile ganz unten und die Konstanten hierzu fast oben) über eine einzige Funktion aufzurufen. Natürlich kann man auch für jede Funkltion die spezielle Funktion aufrufen.

Zitat:aber das wäre doch mist wenn mir trinamik ne headerdatei mitliefert die nicht die nötigen funktionen implementiert die in der dll vorhanden sind. was mach ich denn da falsch?
Du machst nichts falsch. trinamik auch nicht - LV auch nicht. [*dummguck*] Das Problem ist wohl eher, dass LV das Headerfile nicht so ganz versteht. Ist UCHAR* (beachte die Grossschreibung) ein Pointer auf einen Speicherbereich im Sinne eines PChars oder ist das ein Pointer auf einen ordinären U8. char* (bechate die Grossschreibung) ist hinlänglich ein Pointer auf einen Speicherbereich im Sinne eines PChars.

Zitat:also: wie implementiere ich die oben verlinkte dll mit der headerdatei in LabVIEW richtig, sodass ich am ende für jede funktion ein vi hab (so scheint das ja vorgesehen zu sein)?
Machs wie ich von Hand. Guckst du Beispiel.

(VI LV 8.2)


Angehängte Datei(en)
Sonstige .vi  Test.vi (Größe: 15,65 KB / Downloads: 564)

Sonstige .dll  TMCLWrapperUSB.dll (Größe: 48 KB / Downloads: 468)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.11.2007, 23:24 (Dieser Beitrag wurde zuletzt bearbeitet: 07.11.2007 23:24 von rolfk.)
Beitrag #6

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Trinamic TMCM-610 über Wrapper-dll ansteuern
' schrieb:Vielen Dank schonmal für die schnelle Hilfe. Bin immer nur alle zwei Tage an dem Projekt zugange, desshalb sind meine Antworten immer etwas versetzt.

Hier kann man die Wrapper-DLL mit headerdatei runterladen. ich hab jetzt mal die aktuelle genommen, die auf meiner mitgelieferten cd war etwas älter:

http://www.trinamic.com/tmc/media/Download...LWrapperUSB.zip

ich hab diese dll jetzt nochmal versucht bei LabVIEW zu implementieren. dabei ist schedinbar dasselbe problem aufgetaucht: es werden nur drei vi´s erzeugt - also nur drei der insgesamt 32 (glaub ich) funktionen die in der dll sind erkannt. laut dem labvietext der dazu erscheint könnte das an der headerdatei liegen - aber das wäre doch mist wenn mir trinamik ne headerdatei mitliefert die nicht die nötigen funktionen implementiert die in der dll vorhanden sind. was mach ich denn da falsch?

wahrscheinlich würde sich damit meine letzte frage nach der anwendung erübrigen, wenn ich dann letztendlich einfache vi´s habe für die unterschiedlichen befehle die ja scheinbar in der dll hinterlegt sind.

also: wie implementiere ich die oben verlinkte dll mit der headerdatei in LabVIEW richtig, sodass ich am ende für jede funktion ein vi hab (so scheint das ja vorgesehen zu sein)?

vielen dank schonmal wieder für die hilfe

matze

IchSelbst hat Dir schon eine ausführliche Antwort gegeben. Der Grund warum der Library-Wizard für die anderen Funktionen keine VIs automatisch generieren kann, ist dass HANDLE, UCHAR, und INT keine standard C Datentypen sind. Die werden auch nicht in diesem Headerfile deklariert und es wird auch kein anderes Headerfile included. Damit ist die Funktion nicht vollumfänglich definiert und kann der Import-Wizard nichts dafür tun.

Wenn Du etwas in der Art am Anfang des Headerfiles manuel einfügst, sollte es gehen.

typedef long HANDLE;
typedef unsigned char UCHAR;
typedef int INT;

Rolf Kalbermatter

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.11.2007, 12:53
Beitrag #7

matzesl Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jul 2007

8.20
2007
kA


Deutschland
Trinamic TMCM-610 über Wrapper-dll ansteuern
Vielen Dank! jetzt hat er immerhin schon 23 Funktionen implementiert. folgende konnten immernoch nicht richtig implementiert werden:

- TMCLGetScanProgress ()
- TMCLGetScanResult ()
- TMCLGetScanResultBlock ()
- TMCLPrepareScan ()
- TMCLReadExtADC ()
- TMCLSetExtDAC ()
- TMCLSetHeaterPWM ()
- TMCLSetInputPolarity ()

jetzt muss ich natürlich nochmal sehen wie die vi´s funktionieren, damit am ende auch signale über usb gesant werden. kann mir da jemand nen tip geben? reicht es wenn ich als einziges vi sendcmd öffne und den code da manuel eingebe oder muss irch vorher einen port öffnen, danach wieder schließen usw - bin in sachen usb kommunikation ziemlich grün

danke auf jeden fall ihr habt mir schonmal sehr weiter geholfen

gruß

matze
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.11.2007, 13:36 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2007 14:24 von jg.)
Beitrag #8

matzesl Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jul 2007

8.20
2007
kA


Deutschland
Trinamic TMCM-610 über Wrapper-dll ansteuern
So, Ich habe mal ein vi hochgeladen. hier hab ich jetzt einfach openUSB und rotateleft zusammengeschlossen. wenn ich jetzt aber werte eingebe und starte passiert nichts. das programm scheint zu funktionieren, wenn ich es langsam ablaufen lasse sieht man auch, dass die daten gesendet werden, nur kommt halt nichts an. woran könnte es liegen? muss man den usb-port in measurement & automation erst einrichten? eigendich dachte ich, dass über den trinamic-treiber der usb-port quasi auf com3 als serieller port vorliegt und somit keine einrichtung notwendig währe.

jemand ne idee?

gruß

matze

(VI LV 8.2)


Angehängte Datei(en)
Sonstige .vi  Rotate_Left_example.vi (Größe: 9,82 KB / Downloads: 668)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.11.2007, 20:03
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Trinamic TMCM-610 über Wrapper-dll ansteuern
Und wie soll man da jetzt (selbst theoretisch) was analysieren, wenn du die SubVI's nicht auch hochlädst?

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.11.2007, 20:47
Beitrag #10

matzesl Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jul 2007

8.20
2007
kA


Deutschland
Trinamic TMCM-610 über Wrapper-dll ansteuern
ach du schreck, das war jetzt natürlich besonders intelligent. werd die morgen hochladen, bin grad am falschen rechner

gruß

matze
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
  LabView Wrapper - PostUserEvent aus externer DLL Stephan235 3 10.424 22.07.2015 13:28
Letzter Beitrag: rolfk
  DLL einbinden mittels Wrapper OXO 11 14.321 08.05.2013 10:27
Letzter Beitrag: OXO
  Wrapper DLL zum dynamischen Laden b.p 3 6.677 17.04.2012 13:18
Letzter Beitrag: rolfk
  C# MAPI .NET WRAPPER DLL und Lotus Notes Totte 3 7.817 16.12.2011 09:15
Letzter Beitrag: Totte
  DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL Dimitri 24 27.211 02.07.2010 15:16
Letzter Beitrag: Dimitri
  Trinamic TMCM 610 über Wrapper.dll passimatze 2 5.641 17.06.2010 06:23
Letzter Beitrag: passimatze

Gehe zu: