Steuerung eines Roboters

Antworten
Rainer4x4
Beiträge: 8
Registriert: Dienstag 7. August 2012, 17:11
Wohnort: bei Osnabrück
Kontaktdaten:

Steuerung eines Roboters

Beitrag von Rainer4x4 » Mittwoch 8. August 2012, 16:45

Hallo alle miteinander,
ich heisse Rainer und bin neu hier im Forum.

Mein Problem:
vor ca. 30 Jahren musste ich unbedingt einen Roboter bauen:
BildBild
Die Steuerung dazu übernahm ein damals moderner Tandy TRS80 Rechner mit einigen Analog- und Digital-Interfaces. Dieser Rechner hat mittlerweile das Zeitliche gesegnet, eine Reparatur lohnte nicht da er längst von Atari ST und IBM-PC verdrängt war.

Nun möchte ich diesen Roboter wieder zum Leben erwecken. Zur Verfügung stehen ein Win XP Laptop und ein Win XP Desktop sowie ein Velleman VM110N Interface.

Der Roboter hat 6 Freiheitsgrade, braucht zu Steuerung ein Analogsignal von 0 - 5V, welches im permanenten Umlauf per BCD codiertem TTL Signal an die 6 Achsen verteilt wird. Während der Umschaltung muss per Inhibit Signal das Analogsignal ungültig gekennzeichent werden. Die Umschaltlogik sitzt im Roboter.

Die Ursprünglichen Programme waren in Basic programmiert. Nun, das klappt wohl heute nicht mehr.

Ich bräuchte für das "Teach In" auf dem Computer Bildschirm 6 numerische Eingabekästchen in denen ich per Cursortasten (rauf/runter) die Werte von 0 - 255 eingeben kann (jeder Tastendruck eins rauf/runter), und dann per Cursortasten (links/rechts) zwischen den Feldern springen kann.
Während der Eingabe müssen permanent die aktuellen Werte an den Roboter gesendet werden.

Geht sowas in Profilab-Expert 4 ?



Später sollen die Werte abgespeichert und wieder aufgerufen werden können, um komplette Abläufe ausgeben zu können.
Und die aktuellen Positionen sollen festgestellt werden, Robbi hat dazu ein analoges Ausgangssignal, ebenfalls umlaufend geschaltet. Aber wie gesagt, später.
Gruß Rainer

Rainer4x4
Beiträge: 8
Registriert: Dienstag 7. August 2012, 17:11
Wohnort: bei Osnabrück
Kontaktdaten:

Re: Steuerung eines Roboters

Beitrag von Rainer4x4 » Sonntag 12. August 2012, 17:00

Die Umschaltlogik ist mit zwei CD4051 realisiert. Einer für das Eingangssignal, einer für das Ausgangssignal (Positionsrückmeldung)
Für die Ansteuerung werden drei BCD Signale benötigt, für die 6 Achsen. Die CD4051 haben einen Inhibut Eingang, der am Baustein alle Ausggänge hochohmig schaltet.

Natürlich werden nicht unbedingt die Cursortasten gebraucht, Maus oder Steuerung mit anderen Tasten ist auch möglich, klar.

Eine mögliche Ausgabesteuerung für 3 Achsen hab ich mal zusammen gefasst:
D0 = 0
D1 = 0
D2 = 0
DA0 = WertKörper
Ausgabe auf Bildschirm: WertKörper
Inhibit = 0
Warte = 0,25 Sek.
Inhibit = 1
D0 = 1
D1 = 0
D2 = 0
DA0 = WertSchulter
Ausgabe auf Bildschirm: WertSchulter
Inhibit = 0
Warte = 0,25 Sek.
Inhibit = 1
Inhibit = 0
D0 = 0
D1 = 1
D2 = 0
DA0 = WertElle
Ausgabe auf Bildschirm: WertElle
Inhibit = 0
Warte = 0,25 Sek.
Inhibit = 1


D0, D1, D2 : Vellemann Ausgänge simulieren die BCD Ausgabe
Inhibit: könnte man auch mit einem Ausgang am Vellemann simulieren
DA0: Analogausgang am Vellemann
Gruß Rainer

Rainer4x4
Beiträge: 8
Registriert: Dienstag 7. August 2012, 17:11
Wohnort: bei Osnabrück
Kontaktdaten:

Re: Steuerung eines Roboters

Beitrag von Rainer4x4 » Dienstag 14. August 2012, 14:33

WoB hat geschrieben:im Anhang ist schon mal was zum Ausprobieren.
Oh, herzlichen Dank! Bald fertige Arbeit, sieht schon mal sehr gut aus! Mit so einem Service hatte ich garnicht gerechnet. Danke noch einmal! :D
WoB hat geschrieben:Es muss natürlich noch die Velleman-Karte eingebunden
werden, Signale sind entsprechend beschriftet.
Hm, ich benutze noch die Demoversion von ProfiLab. Wie kann ich da die Hardware einbinden? Unter "Konfiguration / Hardware" ist "Ändern" ausgeraut.
Wenn ich die Velleman Demo aus dem Programm unter "Beispiele" heraus aufrufe steht dort "Velleman K8055"
WoB hat geschrieben:Ob das dem entspricht, was du dir vorstellst, weiß ich nicht,
dafür ist deine Beschreibung leider zu dürftig.
Ok, sorry, wenn man davor sitzt ist alles ganz einfach. Hatte nicht damit gerechnet das sich jemand so intensiv damit auseinander setzt.

Robbi hat EINEN Analog Eingang für den Empfang von 6 Analogwerten. Die Analogwerte (0 - 5V) werden Roboter intern im Zeitmultiplex an die einzelnen Achsen verteilt. Jeder Wert muss für min. 0,1 Sekunde gültig gesetzt werden. Spätestens im Abstand von 5 Sekunden müssen alle Werte aufgefrischt, also neu gesendet sein. Die Zuordnung der einzelnen Analogwerte zu den Achsen passiert per 3 Bit BCD Signal, TTL kompatibel.
Gruß Rainer

Rainer4x4
Beiträge: 8
Registriert: Dienstag 7. August 2012, 17:11
Wohnort: bei Osnabrück
Kontaktdaten:

Re: Steuerung eines Roboters

Beitrag von Rainer4x4 » Dienstag 14. August 2012, 14:57

Ein Programmablauf könnte etwa so aussehen:

Programmstart
Setzen aller Werte für die 6 Achsen auf 2,5V (Mitte)
Gehe zur AusgabeSubroutine

TeachIn
.
.
.
.
Hier dürfen keine Ablaufstops eintreten
Tastaturabfragen
Sonstige Behandlungen
.
.
.
.
Gehe zur AusgabeSubroutine
Gehe zum TeachIn

AusgabeSubroutine
Achsenwert an DA-Wandler
Achse am BCD Ausgang wählen
Wert gültig setzen
Warte mind. 0,1 Sekunde
Wert ungültig

Rot markierten Ausgabeteil für weitere 5 Achsen wiederholen
Retour


Etwa in dieser Art waren meine ursprünglich auf dem Tandy erstellten Programme aufgebaut.
Gruß Rainer

Rainer4x4
Beiträge: 8
Registriert: Dienstag 7. August 2012, 17:11
Wohnort: bei Osnabrück
Kontaktdaten:

Re: Steuerung eines Roboters

Beitrag von Rainer4x4 » Mittwoch 15. August 2012, 14:44

Sieht gut aus, das könnte funktionieren! Danke!
Habe es bisher nur "trocken" testen können. Für den Anschluss an den Robbi muss ich auf der Velleman Karte noch den ULN2803 gegen einen 74HCT543 austauschen. Oder die digitalen Signale invertieren und Pullups verwenden. Hab im Moment aber knapp Zeit.....
Na ja, und ich hab nicht so richtig verstanden was Du da gemacht hast. Vor allem der Einsatz der 12 AD-Wandler ist bei mir noch nicht angekommen. Wie gesagt, AD-/DA-Wandler bauen und Einsetzten ja, programmieren in Basic oder Z80 Maschinensprache ja, aber ProfiLab ist nicht wirklich meine Welt. :roll:
Gruß Rainer

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

ProfiLua zur Steuerung eines Roboters

Beitrag von tom_g » Donnerstag 16. August 2012, 08:41

Guten Tag Rainer,

schönes Teil, Dein Robi und beeindruckend einfach gelöste Mehrachsen-Werteübergabe.

WoB hat auch super Arbeit gemacht, mit dem RAM basierten Step-Sequencer.
Vielleicht reicht Dir diese Form ja bereits. Bin auch gespannt, was Du dem Forum zurückmeldest !

Für freie, auch entscheidungsbasierte Abarbeitung von Bewegungsabläufen wird die grafische Programmierung aber schnell zur Fussfessel.
Ich will daher wieder einmal auf eine programmatische Schnittstelle für ProfiLab hinweisen.
Diese basiert auf Lua und wurde von Askr als DLL für ProfiLab aufbereitet. Dies auf Version Lua V5.1
Sie heisst ProfiLua.


http://www.askrprojects.net/software/pr ... index.html

Mittels seinen Beispielen wird die Verwendung innerhalb ProfiLab schnell klar.
Aber dann wird die Einarbeitung in diese erstaunliche Scriptsprache ein Muss, bevor weitergemacht werden kann.

http://www.lua.org/manual/5.1/

Eigenschaften von Lua
" coroutines (sort of multi-tasking)
proper tail calls (allow unlimited recursion)
up-values (lexically scoped)
anonymous functions
first-class values (everything can be an argument)
weak tables (references to other objects)
metatables and meta-methods (object orientated; operator overloading; ...)
garbage collector..."
uvam.



Da Du in BASIC zu Hause bist, ist Dir mindestens der Zugang zu formaler Programierung gegeben.

Falls Askr "zuhört": geht es bei ProfiLua weiter ?
Z.B. Einbindung des neusten Interpreters 5.2, der hat in seinen standard libraries zum Beispiel bitweise Operationen drin ?
Siehe in <http://www.lua.org/manual/5.2/>


Viele Grüsse an alle von Thomas
Curiousity makes us progress !

Rainer4x4
Beiträge: 8
Registriert: Dienstag 7. August 2012, 17:11
Wohnort: bei Osnabrück
Kontaktdaten:

Re: Steuerung eines Roboters

Beitrag von Rainer4x4 » Freitag 17. August 2012, 08:47

Moin moin Miteinander!

Herzlichen Dank für Eure Mühen und die reichlichen und ausführlichen Informationen. Mit LUA muss ich mich nochmal befassen.
Grundsätzlich scheint das Programm von WoB zu funktionieren. Leider kann ich es kaum testen - meine ProfiLab Demoversion lässt nur eine Programm-Laufzeit von max 3 Minuten zu. Bis dahin ist gerade mal die Grundeinstellung erreicht. Compilieren ist ebenfalls gesperrt.
Ich werde nochmal die Suche bemühen, oder weiss jemand ob es PL irgendwo günstiger als für 74,95€ gibt? Denn im Moment wäre es nur für die einmalige Anwendung.
Gruß Rainer

Rainer4x4
Beiträge: 8
Registriert: Dienstag 7. August 2012, 17:11
Wohnort: bei Osnabrück
Kontaktdaten:

Re: Steuerung eines Roboters

Beitrag von Rainer4x4 » Dienstag 21. August 2012, 16:58

Um mein Projekt Roboter-Steuerung ist es ja etwas ruhig geworden - zumindest was die Bewegungen hier im Forum angeht. Daher möchte ich eine kurze Rückmeldung geben:
WoB unterstützt mich nach kräften! Er produziert die notwendigen Programme in einer atemberaubenden Geschwindigkeit. Mittlerweile ist die Version 4 im Test. Und wie es scheint, erfolgreich in allen Punkten! Inzwischen sieht alles sehr professionell aus, die Bedienerfreundlichkeit nimmt stetig zu.
Ich habe selten eine solch intensive Unterstützung genossen. Danke WoB!
Gruß Rainer

Rainer4x4
Beiträge: 8
Registriert: Dienstag 7. August 2012, 17:11
Wohnort: bei Osnabrück
Kontaktdaten:

Re: Steuerung eines Roboters

Beitrag von Rainer4x4 » Dienstag 28. August 2012, 07:34

Hallo allerseits,
der Roboter läuft, hurra, das nach etwa 30 Jahren des Stillstandes.
Mein besonderer Dank gilt WoB, der das Programm zur Bedienung kreiert hat.
Leider müssen wir feststellen, das Windows so seine Eigenheiten hat, bei Mausbewegungen oder irgendwelchen Abläufen im Hintergrund werden die zeitkritischen Handshake Signale (Inhibit) durcheinander gebracht. Robbi arbeitet dann etwas eigenmächtig.

Wer sich für die genauere Konstruktion interessiert: http://www.rainer4x4.de/hp3/roboter.htm
Demnächt kommt noch ein kleines Filmchen dazu.
Gruß Rainer

Antworten

Zurück zu „Elektrische Antriebe“