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
Denkt ihr dass dieses Kabel in Ordnung ist? http://uk.farnell.com/pro-power/7000536/cable-def-7-2-6c-6core-100m/dp/1190259?Ntt=1190259 Und dazu D SUB 9 Stecker mit diesem Gehaeuse? http://uk.farnell.com/te-connectivity/1393738-1/backshell-r-a-9way/dp/1855026?ref=lookahead
Ich weiß nicht ob ich zu blöd bin, aber so wirklich habe ich nicht verstanden wo nach du suchst... ist es ein Kabel zwischen Controller und Treiber ? Hast du schon mal beim Zubehör von der SMCI 33 bei Nanotec geschaut ? ? http://de.nanotec.com/schrittmotorsteuerung_smci33.html#
ich habe ebenfalls mit den SMCI33 Treibern zu tun, und habe mir für die Kommunikation über RS485 eine simple Schaltung aus zwei MAX485 und einem FTDI Modul auf einem Steckbrett aufgebaut. Funktioniert einwandfrei.
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.
Matthias Herrmann schrieb: > ich habe ebenfalls mit den SMCI33 Treibern zu tun, und habe mir für die Kommunikation über RS485 eine simple Schaltung aus zwei MAX485 und einem FTDI Modul auf einem Steckbrett aufgebaut. Funktioniert einwandfrei. Wieso 2 MAX485, wenn ich fragen darf? Ich muss zwar mit 2 Steuerungen sprechen aber ich dachte das ist mit einem Treiber auch moeglich.
der MAX485 ist ein Halb-Duplex Treiber, deswegen einer für TX und der andere für RX. Ich glaube der MAX488 wäre dann der Full- Duplex Treiber.
Ah okay. Sorry ich habe gleich einen Full-Duplex Treiber bestellt. Was fuer ein Kabel verwendest du fuer die Verbindung vom Treiber zum Controller?
Hier mein Treiber: http://uk.farnell.com/analog-devices/adm3491earz/transceiver-rs-485-rs-422-soic14/dp/1439033
einfach vier Drähte, die ich grade gefunden hab. Ich benutze die RS485- Schnittstelle nur zum Parametrieren der Controller. Auf kurze Distanz (etwa 50cm) ist das kein Problem. Angesteuert wird der Controller dann nur über die digitalen Eingänge (Takt, Richtung).
Darf ich fragen wieso du den Controller nicht gleich ueber die RS385 Leitung steuerst? Ich dachte, dass das die einfachste Variante waere.
ich muss zwei Motoren taktgenau zueinander positionieren und sie synchronisieren. Da war es für mich einfacher, das meinen Mikrocontroller machen zu lassen. Über die RS485 lässt sich das nicht so ohne weiteres realisieren. Man müsste die dann sowieso irgendwie über die IOs synchronisieren.
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!
normalerweise sollte auch das möglich sein. Mögliche Probleme sind da die Zeichencodierung oder das Nachrichtenende (Carriage Return oder Line feed).
wird denn das \r auch als Carriage Return gesendet?
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.
Ich denke, ich weiß nun was du meinst. Könnte es evtl. sein, dass wenn ich "\r" sende, er das nicht als CR erkennt? sondern als eben 2 character für "\" und "r" ?
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!
Ok super. Leider sind mein Studienkollege und ich über Weihnachten nicht vor Ort und können das auszutesten..... Vielen Dank für den guten Tipp!
du könntest im HTERM mal alle Zeichen Hexadezimal senden.
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.
Oh wow...ich hoffe damit ist auch dieses Problemchen gelöst :) Leider kann ichs erst Anfang Jänner austesten.....ärgerlich! Vielen Dank für die Inputs!
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 :-))
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.