schrittmotorsteuerung smci33-2 von nanotec mit mikrocontroller steuern

Gast #2912551
Lesenswert?

Hi!

Ich möchte die Schrittmotorsteuerung von nanotec (smci33-2) mithilfe 
eines mikrocontrollers (nxp lpc1768) steuern.

Ich verwende die UART Ausgänge und führe diese zu einem Full - Duplex 
RS485 Treiber. Full Duplex deswegen, da der Anschluss am Controller über 
4 Anschlüsse verfügt.

Von diesem Treiber führe ich die 4 Datenleitungen (A, B , Y, Z) zu 2 
D-Sub 9 Anschlüssen da ich 2 Schrittmotorsteuerungen ansteuern möchte.

Ich weiß jetzt nicht was für ein Kabel ich am besten verwenden soll um 
all die Eigenschaften die der Hersteller angibt zu erfüllen.

"Alle Kabel müssen geschirmt und paarweise verdrillt sein, mit einem 
Querschnitt von min. 6x0.2mm²"

Nach mühsamen suchen finde ich nur solche Kabel:
http://uk.rs-online.com/web/p/serial-cable-assemblies/7587541/

Jedoch sagt das Datenblatt relativ wenig über die geforderten 
Eigenschaften aus.

Kann mir da jmd. schnell auf die Sprünge helfen?

Danke

LG Peter
Angehängte Dateien:
Gast #2913116
Lesenswert?

Sorry vllt. sind meine Angaben sehr unpraezise.

Ja es ist ein Kabel zwischen Controller und Treiber.

Nanotec bietet nur Konverter-Kabel fuer eine PC Verbindung (USB oder 
RS232 an einem Ende und RS485 am anderen) an.
Gast #2957182
Lesenswert?

Hi, ich bins nochmal!

Braeuchte bitte hilfe ... oder nen Tipp!

Fuer mein Projekt verwende ich 2 Schrittmotoren (NEMA 23
ST5918L3008) und zwei Schrittmotorsteuerungen (SMCI-33). Ich habe
alles ordnungsgemaess verkabelt und konnte auch schon unter Verwendung
Ihrer eigenen Software (NanoPro 1.70) alle Parameter einrichten.
Dafuer Verwende ich auch RS485/USB Kabel Ihres Unternehmens. Mit
NanoPro kann ist es mir auch moeglich die Schrittmotoren zu testen,
und es funktioniert auch wie gewuenscht.

Mein Problem ist nun, dass die ganze Steuerung ueber einen
mikrocontoller (NXP LPC1768) durchgefuert werden soll. Das sollte
prinzipiell kein Problem sein, da ich ueber RS485 Transceiver verfuege
und es mir dadurch moeglich sein sollte die Schrittmotoren mit ASCII
Zeichen ueber die serielle Schnittstelle meines microcontroller zu
steuern.
Das funktioniert leider nicht wie gewuenscht.

Um sicherzugehen, dass meine Idee stimmt, kann ich in Ihrer Software
(NanoPro 1.7) unter "Expert" - "Serial Interfac" ASCII Befehle senden.
Auch hier funktioniert alles wie gewuenscht.

Im naechsten Schritt verwende ich ein herkoemmliches Terminal Programm
(Hterm) um ASCII Code ueber meie COM Schnittstelle zu senden. Ich
waehle die selbe COM Schnittstelle wie im NanoPro aus, setze die
selben Parameter (Baudrate, Stopbits, CRC) und verbinde mich zum
gewuenschten COM Port.
Hier ist es leider so, dass meine Befehle nicht funktionieren. Der
Motor zeigt keine Bewegung und eine Antowort erhalte sehe ich auch
nicht im Hterm.

Die Motoradresse ist 1.

Ich sende zB.:

#1A\r   (ich haette mir gewuenscht, dass der motor die im nanopro
eingestellten schritte abfaehrt)

auch wenn ich beispielsweise

#*M\r   sende, um die Motoradresse des mit meiner COM Schnittstelle
verbundenen Motors zu erfahren, erhalte ich keine Antwort.

Wie gesagt, alle fuer die Kommunikation notwendigen Parameter sind
genau gleich Eingestellt wie im NanoPro. (Selbstverstaendlich ist
NanoPro geschlossen, waehrend ich ueber hterm mit der COM
Schnittstelle kommuniziere)

Uebersehe ich etwas essenatielles...es macht naemlich keinen sinn den 
mikrocontroller zu programmieren, wenn ich nicht mal ueber hterm und 
einem usb/rs485 kabel senden kann.

Danke!
#2959963
Lesenswert?

Hi danke für deine Antwort.


Also ja - denke schon.

Ich schicke im hterm einfach #1A\r als ASCII Code


Meine Idee ist halt, das vorher so auszutesten....und solange das nicht 
funktioniert, brauche ich gar nicht daran denken, die befehle von meinem 
mikrocontroller aus zu senden.
#2959971
Lesenswert?

Davor St schrieb:
> Ich denke, ich weiß nun was du meinst.
>
> Könnte es evtl. sein,

Alles könnte sein.

Besorg dir einen Port-Sniffer für den PC und sieh mal dem NanoXXX (wie 
heißt das Zeug) mal bei der Arbeit zu. Der Port Sniffer zeigt dir alle 
Bytes auf tiefster Ebene. Da müsstest du den Unterschied problemlos 
sehen können.

Zb
http://www.heise.de/download/free-serial-port-monitor.html
(das stellt jetzt keine Empfehlung dar. War nur der erste den ich bei 
Google gefunden habe)

> Meine Idee ist halt, das vorher so auszutesten....
Sehr, sehr vernünftig!
Weiter so!
#2961242
Lesenswert?

ich habe gerade mal mit der SMCI33-2 und HTERM gespielt. bei #1A\r im 
ASCII- Modus werden tatsächlich die Zeichen einzeln gesendet, also kein 
CR. Am besten bei "send on enter" CR einstellen und dann im ASCI-Modus 
die Nachricht ohne \r schicken. Oder halt im HEX- Modus "23 31 41 0D" 
senden. Funktioniert problemlos.
Gast #2988618
Lesenswert?

Ok. Habe es nun getestet und es funktioniert :-)

Also wenn ich nun über hterm wie gesagt, #1A sende und auf CR beim 
senden einstelle, dreht sich der Motor wir gewünscht.

Nun habe ich aber das nächste Problem  :-/

Ich wollte das nun meinen Mikrocontroller machen lassen. Also ich habe 
ihn einfach programmiert, dass er über den RS485 transceiver das selbe 
sendet.
Um das gleiche Problem zu vermeiden schicke ich es folgendermaßen:
1
            rs485.printf("#1A");
2
            rs485.printf("%c", 13);

Der Motor tut nichts.


wenn ich aber anstatt zur Schrittmotorsteuerung zu senden, ein RS485/USB 
Kabel nehme und dieses mit meinem PC Verbinde um im Terminal zu sehen, 
was da überhaupt geschickt wird, erhalte ich genau das was gesendet 
werden soll nämlich #1A  mit CR am ende.

Die Baudrate habe ich überprüft, ich sende mit der gleichen wie mit 
jener die in der Schrittmotorsteuerung eingestellt ist (welche ich auch 
verwendet habe, als ich von hterm aus gesendet habe).


Ich hoffe ihr habt wieder mal den ein oder anderen Tipp für mich :-))

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren