Seite 2 von 3

Verfasst: 04.05.2006 02:06
von PureLust
Hallo stbi, ...

in Bezug auf RTOS und QNX gebe ich Dir natürlich vollkommen recht.


Ich versuchte damit ja auch nur ein wenig zu erklären warum der Hersteller der Kartentreiber in Bezug auf Windows von einem 'nicht sinnvollen' Einsatz gesprochen hatte, wenn es um eine 'Ansteuerung in Echtzeit' geht.

Also nicht's für Ungut und biddä nisch gleich bös' sein. :(
PL.

Verfasst: 04.05.2006 06:23
von Falko
Naja, für den Sinnvollen Einsatz unter Windows bieten die ja noch ein
zusätzliches Modul für knapp 200€ an.
Dieses ist ein Microprozessor, welches einfache die Befehle von
Windows in einen 64Kb Buffer entgegen nimmt und selbst die Signalansteuerung in kürzsester Zeit ohne zusätzliche Treiber ausführt.

Von der Beschreibung des Handbuches bei Conrad müssen die einzelnen Funktionen der Taktsignale etc. wohl gleichzeitig ausgeführt werden, welche dann mit einem Strobe-Signal (Low-active) gestartet werden.

Also ich hab mir lieber das zusätzliche Modul dazu bestellt. Dann brauche
ich mir als Ottonormalverbraucher keine Sorgen machen, da man alles über die Serielle Schnittstelle mit wenigen Steurbefehlen in jeder
Anwendung, sowie PB ansprechen kann. :lol:


Gruß Falko

Verfasst: 06.05.2006 11:35
von Falko
Then hat geschrieben:tja, hilft mir nicht wirklich weiter. habe das Blatt auch hier, aber dat scheint garnicht so einfach zu sein.
Da steht nicht, wieviele Signale ich schicken kann Muß ich erst die Achse wählen , dann den Strom einschalten und dann das Taktsignal senden ?? Oder alles auf einmal ?? Das ist genau das Problem. Die Motoren laufen wie sie wollen ?! Kann nur die Achsen auswählen ! :?

Die Karte treibt mich in den Wahnsinn ! :freak:
@Then
Ich habe jetzt die SMC-800-Steuerkarte, ISMIF (Intelligentes Schrittmotorinterface) sowie
die 3 Schrittmotoren (TMCM-Motor: 1.8° , 1.0A, 0.38Nm) von Conrad erhalten.
Im Moment lese ich mir erst einmal alles sorgfälltig durch
und muss mir noch Gedanken machen, wie ich das mit meiner
Proxonmicrofräse verbinden werde. Die Überlegung ist über eine Direkteverbindung mittels Kupplung.

Natürlich sind jetzt auch bei mir Fragen offen, da ich leider keine Software
zu der SMC-800 erhalten habe. Gleich eine Mail an den Hersteller. Mal sehen
was die Antworten. Zusätzlich habe ich denen auch eine Anfrage zu den
Steuersignalen und den Phasenstömen der Schrittmotoren gestellt.
Da bin ich mir noch nicht so sicher wie die das laut Beschreibung meinen.
Man kann über die Potis die Phasenströme beim angeschlossenen
Schrittmotor mit einem Voltmeter messen und mittels Faktor dann korrekt für den jeweiligen Motor einstellen.
Könnte das vielleicht bei dir der Grund sein, wenn die Schrittmortoren nicht das tun, was sie sollen.


MfG Falko

Verfasst: 09.05.2006 13:41
von Then
sorry, habe mich mit anderen sachen beschäftigt.

@Falco. haste mit der InpOut32.Dll mal getestet ? Ich poste gleich mal ein programm (Wenn ichs finde) um die Achsen zu bewegen !

Verfasst: 09.05.2006 17:07
von Falko
@Then

Leider konnte ich noch nichts testen, da ich für das Controllerboard zur Schrittmotorkarte SMC-800 noch eine Centronic-SUB-D-Verbindung machen muss. Die Teile kommen morgen von Conrad.

Ebenso muss ich noch die Schrittmotoren an die Proxxon Microfräse verbinden. Die Überlegung, aus Platzmangel, tendiert zu einer
Direktverbindung über eine Klauenkupplung, die ich mir noch herstellen muss, hin.

Achja, mit meinem Sohn habe ich die IO.dll ausprobiert. Die ist super und läuft prima unter WinXP. Ich brauche damit keine & etc. machen um irgendwelche
Verknüpfungen zu erstellen. Bits können direkt gelöscht, gesetzt als auch invertiert werden. Damit haben wir gestern sein Digitalpoti angesteuert, welches er heute in sein Schulprojekt vorstellen mußte.

Die IO.DLL kann ich wärmstens weiterempfehlen.
Achja, das mit dem damaligen Delayus. Die Port.DLL V.1.0.0.3 klappt auch prima. Hab das mal mit Threads ausprobiert und die wird wengistens
nicht unterbrochen, wie meine ersten PB-Gehversuche.

Gruß Falko

Verfasst: 12.05.2006 09:57
von Then
Habe mal nen Code bekommen, vielleicht kannste damit was anfangen. Wäre schön wenn Du ne Steuerung austüfftelst, mit der sich alle 3 Motoren in die jeweilige Richtung bewegen. Bei mir läufts etwas unsauber. Ich arbeite zwar noch dran, aber irgendwie hängts...

Code: Alles auswählen

If OpenLibrary(0, "InpOut32.DLL") 
 *out = IsFunction (0,"Out32") 
Else
 CloseLibrary(0)
 End
EndIf

CallFunctionFast(*out,888,0)
CallFunctionFast(*out,890,2)

For t=1 To 300
 CallFunctionFast(*out,888,80)
 Delay(1)
 CallFunctionFast(*out,888,96)
 Delay(1)
 CallFunctionFast(*out,888,160)
 Delay(1)
 CallFunctionFast(*out,888,144)
 Delay(1)
Next

CallFunctionFast(*out,888,0)
CallFunctionFast(*out,890,2)
  
XA=5
XB=6
XC=10
XD=9
XE=0
For t=1 To 300
 CallFunctionFast(*out,888,XA)
 Delay(1)
 XE=XA
 XA=XB
 XB=XC
 XC=XD
 XD=XE
Next

CallFunctionFast(*out,888,0)
CallFunctionFast(*out,890,2)

Verfasst: 12.05.2006 12:04
von Deeem2031
Hm, die Schleife sieht etwas komisch aus. Wäre es nich so entwas übersichtlicher?

Code: Alles auswählen

Dim XA(4)

XA(0) = 5
XA(1) = 6
XA(2) = 10
XA(3) = 9
XA(4) = 0
For t=0 To 300-1
 CallFunctionFast(*out,888,XA(t%5)) 
 Delay(1) 
Next
Wobei mir auch Das Delay(1) auffällt. Is das nicht bisl viel? Hier im Forum gibts 'nen alten Thread mit 'nem genaueren Delay, solltest du dir vielleicht mal angucken.

Verfasst: 12.05.2006 12:10
von Then
klar, ne optimierung ist nicht schlecht, aber ich habe den Code nur benutzt um, zu sehen, ob was passiert, und wenn ja, was dann passiert. Daher auch das Delay(1). Das stand sogar mal auf 5. Denn wenns zu schnell ist, siehste ja nicht mehr die Richtung !

Eine optimierung und beschleunigung kommt definitiv in den Hauptcode, Hier gehts nur ums verständniss und ums erkennen der Richtungen. Wenn ich damit etwas bewegen will, wächst mit bei Delay(1) ja ein Bart ! :wink:

Verfasst: 12.05.2006 15:51
von Falko
@Then

Dann muss ich mir noch ein anderes Kabel herstellen um es ohne Controller mit der Inpout32.dll zu testen. Mal schauen, ob ich es bis morgen schaffe ;).
Ist dann aber nur ein Test für die Schrittmotoren, wie du sagst.

Zum Delay, hast du schon mal die Port.dll ausprobiert? Dieses Delay
funktioniert sehr gut. Habe ein Oszi drann gehabt und mittels Thread eine Verzögerung bis ca. 0.6ms erreicht. Wäre vielleicht auch gut zu gebrauchen.
Mein anderer Versuch mit dem Delayus, machte irgendwann dann nix mehr und die Schleife hatte sich verabschiedet. Daher damals auch der Fehler bei dir.

[Edit]
Was mir noch nur beim lesen auffällt, du hast da zwei For/Next - Schleifen die dann (nicht getestet) die Schritte ausführen sollen?
In der Beschreibung steht, das nach jedem Paket der einzelnen Signale
dann ein Strobe gemacht werden soll um die Schritte dann auszuführen.
Ich hoffe, ich liege jetzt richtig. Das Strobe-Signal wird mit
FallFunctionFast(*out,890,2) ausgeführt.

Müßte nicht Folgendes in der jeweiligen Schleife am Ende mit eingefügt werden?
CallFunctionFast(*out,890,0) ; Stobe low aktiv

Ich werd mir mal ein Centronics-Kabel für die LPT anfertigen, um es selbst sehen zu können, was die Motoren machen. Dann kann ich mich besser hineindenken ;)

[/Edit]


Gruß Falko

Verfasst: 12.05.2006 18:17
von Falko
@Then,
Bei meiner Karte war keine Software dabei. Laut Conrad sollten da Programmbeispiele dabei sein.
Kurz nach Erhalt und Feststellung habe ich der Herstellerfirma geschrieben und die haben mir C und Pascallsourcen geschickt. Wenn ich mir das dort so anschaue,
ist es ein bisschen komplizierter, die Karten zu steuern. Falls du ebenfalls die
Sources nicht haben solltest, kann ich sie dir die gern zuschicken. Denn vieles wird über Timer geregelt, damit die Karte richtig steuert.

Gruß Falko