-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Isel 4Achs Controller iMC-M per Bascom ansteuern

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    30.10.2012
    Beiträge
    9

    Isel 4Achs Controller iMC-M per Bascom ansteuern

    Anzeige

    Hallo,

    Ich bin Maschinenbaustudent und soll mittels Bascom Einen Isel 4 Achs Controller iMC-M ansteuern und Punkte abfahren. Dazu zusagen ist das ich mich als Maschinenbaustudent nicht alzu tief in der Materie befinde und auch nicht sonderlich viele Kenntnisse in der Programmierung mit Bascom habe. Meine erste Frage ist wie ich die Schnittstelle öffen kann? Der Ausgang ist COM3 und hat 19200 baud. Probiert habe ich es mit dem Befehl: Open Com3:19200,8,n,1 for output as #3

    Ich weiß nun nicht ob das ausreicht oder dort noch irgendwo ein close kommen muss weil dies in der Hilfe nicht ersichtlich ist. jedenfalls fur mich nicht.

    Und zweitens wusste ich gerne wenn ich die Simulator öffne ob die Schnittstelle dann geöffnet wird oder ob mir das Programm dies nur vorgaugelt.

    Ich habe folgendes Programm geschrieben und auf dem simulator ablaufen lassen:

    Cls
    Dim A As String * 1
    Open "com3:19200,8,n,1" For Output #3
    Print "@01"
    A = Waitkey()
    Print A
    End

    Das System benötigt immer einen Handshake aber ich bekomme keine 0 zurück das die Achsen konfiguriert wurden oder auch keine Fehlermeldung deshalb die Frage mit dem simulator ob er die Schnittstelle anspricht.

    Ich hoffe es gibt schlaue leute die mir da helfen können. Würde mich sehr über Hilfe freuen.

    Dank im vorraus.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    47
    Beiträge
    2.556
    Du musst die Print-Anweisung auf die entsprechend eingestellte Software-Uart zeigen lassen :

    Print #3, "@01"
    Danke an Alle, die uns bei der erfolgreichen 1.000€-Aktion der IngDiba unterstützt haben! | https://www.hackerspace-bremen.de | http://www.pixelklecks.de |

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    30.10.2012
    Beiträge
    9
    Ich habe den kanal eingefügt so wie du es geschrieben hast aber nun zeigt er mir fehler in line 7. external routine not found und label not found. Line 7 ist die End Zeile.

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Schau Dir den open Befehl in der Bascom Hilfe an. Da ist ein Beispiel for Soft UART.

    Im Open Befehl müßte es zB "comb.1:19200, ... " heißen. Dann wäre PB1 der TX
    Außerdem muß es ... as #3 heißen.

    Für waitkey braucht es einen Input PIn, also open "...." for input as ...
    Im waitkey muß die Kanalnummer vom input angegeben sein.

    Auf welchem µC soll das laufen?
    Komplettes Programm incl Header posten.

    wusste ich gerne wenn ich die Simulator öffne ob die Schnittstelle dann geöffnet wird
    Der Simulator kann auf dem µC den Port nicht öffnen, wenn er nicht angeschlossen ist.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    30.10.2012
    Beiträge
    9
    Dim A As String * 3
    A = "*"
    Open "com3:19200,8,N,1" For Input As #3
    Print #3 , "@01"
    If Loc(3) < 1 Then Print "hallo"
    A = Inkey(#3)
    Print "A$" ; A
    If A = "0" Then Print "alles ok" ; End If
    Marke:
    A = Inkey(#3)
    If A < 0 Then Goto Marke
    Print "a$" ; A
    Print #3 , "@0a 500,1000"
    A = Waitkey()
    Print "A$" ; A
    End

    Das is ein ein kleiner Anfang den ich mal so probiert habe aber gibt er auch fehler aus. Also ich will über eine RS232 Schnittstelle diesn Isel Roboter ansteuern und damit einzelne Messpunkte anfahren. Das Programm war nur so ein kleiner Versuch zum testen. Angeschlossen habe ich alles. Über andere Programme kann ich auch wunderbar mit dem geraät kommunizieren und alles so bewegen wie ich will aber mein Professor will unbedingt das ich es mit Bascom mache. Er soll einfach 10 voreingegeben Punkte anfahren und dort 30sec verharren dann kann ich den messwert ablesen und weiter gehts. so soll das Programm aussehen aber das ist ganz und gar nicht meine Welt. Vllt könnt ihr mir ja noch mehr nützliche Hinweise geben. Gruß

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Mit Bascom schreibt man Programme, die auf einen Mikrokontroller (µC) übertragen werden und dann dort ablaufen.

    Damit das Programm auf dem µC ablauffähig ist, muß der Sourcecode für den ganz bestimmten µC kompiliert werden.
    Einstellungen für die Kompilierung gibt man der Übersichtlichkeit halber in einem Header im Sourcecode an.

    In Deinem Programm versuchst Du SW-UART zum Senden von Daten über die PC COM Schnittstelle zu nutzen. Damit hab ich es nicht geschafft - denke auch nicht, daß das geht

    Das ganze Timing Verhalten in der Simulation entspricht nicht dem, die es auf dem µC haben würde. Um trotzdem was aus der Simulation raus und rein zu kriegen, versuch Folgendes:

    In Bascom unter "Options", "Communication" den COM Port einstellen, den Du am PC nutzen möchtest und die Parameter wie 19200,8,n,1,handshake=none
    In Bascom unter "Options", "Simulator" auch nochmal den COM Port einstellen.

    Unten stehendes Programm kompilieren und dann Simulator aufrufen. Oben den Haken bei Terminal aktivieren (Werden COM-Port Parameter geändert, muß der Haken deaktiviert und wieder aktiviert werden!).
    Bei Beenden und Neustart von Bascom verschwindet der Haken wieder - drauf achten daß er gesetzt ist, wenn Du wieder den Datenaustausch brauchst.

    Simulation laufen lassen.

    So hat die Verbindung bei mir auf WIN-XP mit Nullmodem Kabel zwischen echten COM-Ports zu einem anderen PC mit Hyperterminal geklappt; hatte also keinen USB-RS232 Wandler und korrekte Einstellungen am anderen PC vorausgesetzt.

    Das Programm nutzt die defaultmäßigen Einstellungen für die HW-Uart = COM1 des µC. Deshalb keine Einstellungen außer $baud ($baud hat aber keinen Einfluß auf die Kommunikation aus der Simulation heraus). Wegen Nutzung der HW-COM1 ist kein "Open" notwendig.

    Bitte gib Bescheid wenns funktioniert hat. und wenn nicht, dann nicht

    Code:
    $regfile = "m88def.dat"   'Für ATMega88 Mikrokontroller
    $framesize = 32
    $swstack = 32
    $hwstack = 34
    $crystal = 8000000        
    $baud = 19200             'Baud Rate ( 8,N,1 ist default - flow control=NONE)
    
    Dim A As String * 1
    Print "@01"
    A = Waitkey()
    Print A
    End
    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    30.10.2012
    Beiträge
    9
    Hallo... Ganz herzlichen dank schonmal das ihr mir helfen wollt. ICh habe alles so wie du beschrieben hast gemacht und habe alles so eingestellt. Ich habe den simulator geöffnet aber er arbeitet das programm nur bis zum waitkey ab und weiter geht er nicht. Ich denke er bekommt keine antwort. Ich habe es mit einem anderen Programm überprüft. Ich habe com3 und 19200 Baud. Mit diesen Einstellungen kann ich mit dem Isel kommunizeiren und er führt die Befehle auch wunderbar aus. Ich habe wikrlich keine Idee wieso er nichts zurück bekommt. Würde mich über weitere Antworten sehr freuen. Gruß

    - - - Aktualisiert - - -

    Sry ich muss mich revidieren. Ich hatte ganz vergessen den Haken bei terminal zu setzen und nun bekomme ich die Null also das er den Befehl erpfangen hat zurück also funktioniert es. Tausend dank dafür schonmal. Und wie geht es nun weiter? Wie setze ich die befhele ab das er Punkte anfährt? Also der befehl für isel ist zum beispiel ür eine Achse dann: @0a 5000,10000 -> Der erste Wert bestimmt die Schrittweite und der zweite die Geschwindigkeit. Würde mich über weitere Hilfe sehr freuen. Gruß

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Na prima!
    Als erstes muß ich sagen, daß mir etwas unwohl dabei ist, den Simulator zur Steuerung von Isel zu nehmen. Der Simulator ist ja eigentlich nur zum Debuggen von µC Programmen gedacht. Mit dem Steuern per Bascom hat Dein Professor wahrscheinlich eher an einen µC gedacht, dessen Programm mit Bascom erstellt wurde

    Und wie geht es nun weiter? Wie setze ich die befhele ab das er Punkte anfährt?
    Ab jetzt führt wohl kein Weg mehr dran vorbei, Bascom zu lernen

    Kurz noch das Beispiel für den Achsbefehl, wie ich denke, daß es funktionieren könnte, kenne aber natürlich nicht das Protokoll zu Isel:
    Code:
    $regfile = "m88def.dat"   'Für ATMega88 Mikrokontroller
    $framesize = 32
    $swstack = 32
    $hwstack = 34
    $crystal = 8000000        
    $baud = 19200             'Baud Rate ( 8,N,1 ist default - flow control=NONE)
    
    Dim A As String * 1
    Print "@01"
    A = Waitkey()
    'Print A               'auskommentiert, da A wieder zum Isel geschickt würde
    Print "@0a 5000,10000" 'Befehl zum Achse positionieren
    A = Waitkey()          'für Quittung? ein Zeichen? vom Isel
    Print A                'Anzeige der Quittung (geht aber auch wieder zum Isel zurück! )
    End
    Für die Kommunikation über RS232 gibt es Monitorprogramme für den PC um den Datenaustauch "abzuhören". Sehr hilfreich um zu sehen, was da wirklich hin und her geht. Früher gab es mal "portmon" von sysinternals. Mit dem Neuen http://www.netzwelt.de/download/6805-portmon.html hab ich noch nicht gearbeitet. Weis auch nicht, ob das mit USB-Port läuft.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    30.10.2012
    Beiträge
    9
    Ok super. Ich hatte alleine schon so probiert und er bewegt sich mit den befehlen und ich kann auch die referenzfahrt absolvieren wie es sein soll. Er soll an den verschiedenen Punkten so ca 30sec verharren damit ich an meiner messaparatur werte abnhemen kann und dann im porgramm weiter gehen und zum nächsten punkt gehen. macht man das am besten mit ner schleife? oder gibts da n befehl wo ich sagen kann wielange er an einem bestimmten befehl verharren soll? Ein lieben dank schonmal an searcher für die unterstützung.

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Er soll an den verschiedenen Punkten so ca 30sec verharren damit ich an meiner messaparatur werte abnhemen kann und dann im porgramm weiter gehen und zum nächsten punkt gehen. macht man das am besten mit ner schleife? oder gibts da n befehl wo ich sagen kann wielange er an einem bestimmten befehl verharren soll?
    Da fängt das Problem mit dem Simulator schon an. Wenn das Programm auf dem µC läuft, könnte man einfach "wait 30" für eine Wartezeit von 30 Sekunden schreiben. Im Simulator wird die Zeit aber sehr anders sein, abhängig vom PC und dessen Geschwindigkeit. Da könnte Ausprobieren helfen. Mit kurzen Zeiten beginnen, da der Ablauf "ewig" dauert. Es gibt noch waitms mit Angabe von Millisekunden und waitus.

    Im µC würde man idealerweise statt wait die Timer zum Abmessen von Zeiten zu nehmen. Timer funktionieren im Simulator jedoch noch problematischer und langsamer - nach meinem Wissensstand im Simulator nicht für Deinen Zweck zu gebrauchen

    Aber vielleicht gibt es ja einen Befehl für Isel, der ihn anweist mal eine Pause einzulegen und wenn die Pause fertig ist eine Quittung gibt. Dann kann man auf die Pauseende Quittung warten.

    waitkey wartet nur auf ein Zeichen, egal was. Zum Testen, ob es die Richtige ist kann man Abfragen in/mit Schleifen verwenden und entsprechen reagieren. Ob waitkey überhaupt das Richtige ist, hängt davon ab, was Isel sendet. Es gibt zB auch Input und anderes. Die sind sogar noch konfigurierbar, ob CR/LF oder nur LF etc an der Message dran hängt -> BASCOM-Hilfe

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. 4 X 27 LCD-Modul mit 2 controller wie ansteuern?
    Von PREDATOR32 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 24.11.2009, 14:02
  2. Playstation Controller mit Bascom ansteuern
    Von ingo pirker im Forum Software, Algorithmen und KI
    Antworten: 1
    Letzter Beitrag: 15.09.2008, 10:18
  3. CNC-Fräse (ISEL C-116)
    Von NemesisoD im Forum Konstruktion/CAD/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 1
    Letzter Beitrag: 09.02.2007, 13:28
  4. LCD Ansteuern ohne controller
    Von PiH im Forum Elektronik
    Antworten: 21
    Letzter Beitrag: 29.03.2006, 20:49
  5. lcd mit pic-controller ansteuern
    Von erik.rostock im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 07.06.2004, 12:22

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •