Forum: Mikrocontroller und Digitale Elektronik schnelle Schrittsynchrone Datenerfassung mittels AD-Wandlerkarte und USB-Schrittmotorsteuerung Wie?


von taxus (Gast)


Lesenswert?

Hallo,
ich hoffe Ihr könnt mir Tipps geben könnt, wie ich eine schnelle, 
schrittsynchrone Datenerfassung mittels AD-Wandlerkarte und 
USB-Schrittmotorsteuerung erreichen kann.

Mit steht im Augenblick eine "USI-2" Schrittmotorsteuerung von ELV und 
eine A/D-Wandler PCI-Karte (KPCI3107 von Keithley) zur Verfügung.

Die USI-2 und die KPCI3107 werden von einem Vb.net Programm 
angesprochen.

Das Problem ist, daß es einen erheblichen zeitlichen Unterschied macht, 
ob man z.B. der USI-2 einen Befehl sendet 800 Schritte in einem Stück 
auszuführen oder 100 Mal einen Befehl (in einer For..Next Schleife) 
sendet 8 Schritte auszuführen.
Bisher muß ich letztere Möglichkeit wählen, weil ich nach jeweils 8 
Schritten einen Messwert über die AD-Wandlerkarte erfasse.
Dazu muß das VB-Programm nach jedem Befehl auf die Rückmeldung der USI-2 
warten, bevor das es weiterlaufen kann, damit die Messung 
schrittsynchron erfolgt.

Mir schwebt als Lösung vor, daß die Schrittmotorsteuerung einen externen 
Takt an die AD-Wandlerkarte gibt und das VB Programm an Schluß den 
Datenpuffer ausliest.

In der USI-2 ist ein ATMEL ATMEGA8-16AU Microcontroller und L6219 
Schrittmotortreiber-Bausteine verbaut. Über die Atmega-Ports PD6 und PD7 
kann man Schaltausgänge steuern.
Am einfachsten wäre, wenn pro Schrittmotor-Step ein Impuls auf Pins PD6 
ausgegeben würde.
ELV führt aber keine individuelle Modifikationen der 
Microcontrollerfirmware durch.


Das bedeutet doch, daß man die Firmware nur löschen kann und dann selbst 
die Schrittmotorsteurung von Grund auf neu programmiert?
Wie hoch ist der Aufwand?
Wer kann mir das Teil umzuprogrammieren?

Oder wäre es besser gleich eine andere Schrittmotorsteuerung zu 
besorgen?

Viele Grüsse aus Duisburg

von Michael K. (michaelkorb)


Lesenswert?

Ich hab mir mal die ANleitung von dem ELV-Ding durchgesehen - 
offensichtlich macht das Ding nur Vollschritte oder? Der L6219 könnte 
zwar mehr, aber per Steuerbefehl kann man die Schrittauflösung nicht 
einstellen.

Am besten, Du hängst Dich mal mit nem Oszi an die Eingänge des L6219 ran 
und versuchst mal herauszubekommen, was da so abgeht. Im Datenblatt des 
L6219 kann man ersehen, wie die Steuersignale bei Voll oder Halbschritt 
laufen. Mit ein wenig nachgeschalteter Logik kannst Du da evtl. die 
Schritte mitzählen.

Besser wäre allerdings eine Steuerung mit Positionskontrolle. Ich denke 
da an die Chips von Trinamic.

Wenns ein Fertigmodul sein soll, schau Dir male die Teile von Nanotec 
an, z.B.: SMCI-21-1, da kannst Du die Istposition direkt abfragen. Das 
Teil hab ich bei mir getestet, konnte es leider nicht einsetzen, weil 
die Geschwindigkeitseinstellung zu grob ist.
Schau mal hier 
http://de.nanotec.com/page_product_archive__schrittmotor_positioniersteuerung_smci21__de.html
Ist zwar vergriffen, aber vielleicht geht da noch was.

von taxus (Gast)


Lesenswert?

Die USI-2 kann anscheinend nur Vollschritte (laut Doku). Der Tipp mit 
den Logikbausteinen hat mich mit minimalen Aufwand schon weitergebracht, 
vielen Dank.
Ich habe die Phase 1 und Phase 2-Signale, die zum L6219 führen, auf ein 
XOR Gatter (74hC86) gelegt.
Damit erhalte ich eine Anzahl Impulse, die gleich der Hälfte der 
Schrittanzahl sind.
Gibt es einen Schaltungstrick, wie man die Impulsanzahl verdoppeln kann?
z.B. mit ansteigenden/abfallenden Flanken ein MonoFlop antriggern oder 
ähnliches?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.