Fischertechnik-Modell Roboter und Förderband - BFH

Werbung
Berner Fachhochschule
Technik und Informatik
Fachbereich Elektro- und Kommunikationstechnik
Labor für Technische Informatik
Fischertechnik-Modell
Roboter und Förderband
© 2007, BFH-TI, WBR1 und SCE1
Dateiname:
Erstellt am:
Letzte Änderung:
Autoren:
Version:
Fischertechnik_Foerderband.doc
28. April 2005
2. November 2007
Roger Weber, Erwin Stucki
2.0
Fischertechnik-Modell
Inhaltsverzeichnis
1
EINFÜHRUNG ...........................................................................................................................................................3
1.1
1.2
2
EINSATZ DES MODELLS .........................................................................................................................................3
ZIEL DIESES DOKUMENTS ......................................................................................................................................3
AUFBAU DER BEARBEITUNGSSTRASSE ..........................................................................................................4
2.1
ÜBERSICHT ............................................................................................................................................................4
2.2
A-KNOTEN UND IHRE EIGENSCHAFTEN .................................................................................................................5
2.3
B-KNOTEN UND IHRE EIGENSCHAFTEN ..................................................................................................................6
2.3.1
Förderband Zulieferstrasse (B1)...................................................................................................................6
2.3.2
Wendeeinheit 1 (B2)......................................................................................................................................6
2.3.3
Fräseinheit (B3) (Milling).............................................................................................................................6
2.3.4
Bohreinheit (B4)............................................................................................................................................7
2.3.5
Wendeeinheit 2 (B5)......................................................................................................................................7
2.3.6
Finalstage B6 ................................................................................................................................................7
2.4
ANFAHRPOSITIONEN ..............................................................................................................................................8
3
AUFBAU DES CAN-NETZES ..................................................................................................................................9
4
BESCHREIBUNG DES CAN-PROTOKOLLS.......................................................................................................9
4.1
ÜBERSICHT ............................................................................................................................................................9
4.2
AUFGABEN DER EINZELNEN KNOTEN ..................................................................................................................11
4.2.1
Knoten A1 – A4 (3D-Roboter).....................................................................................................................11
4.2.2
Konten B1 (Zulieferstrasse) ........................................................................................................................11
4.2.3
Knoten B2 (Wendeeinheit 1) .......................................................................................................................11
4.2.4
Knoten B3 (Fräseinheit)..............................................................................................................................12
4.2.5
Knoten B4 (Bohreinheit) .............................................................................................................................12
4.2.6
Knoten B5 (Wendeeinheit 2) .......................................................................................................................12
4.2.7
Knoten B6 (Finalstage)...............................................................................................................................12
Seite 2 von 12
Fischertechnik-Modell
1 Einführung
1.1 Einsatz des Modells
Das Fischertechnik-Modell mit einem Roboter und einem Förderband wird im Fachbereich EKT in Burgdorf für
verschiedene Projektarbeiten der Technischen Informatik eingesetzt.
Zur Zeit sind dies folgende Unterrichtsmodule:
•
•
Vertiefungsmodul „Echtzeit Betriebssysteme“
Wahlmodul „8-Bit-Mikrokontroller“
Mit Hilfe des Modells sollen die Studierenden den Modulinhalt in praktischen Arbeiten umsetzen können.
1.2 Ziel dieses Dokuments
In diesem Dokument wird der Aufbau des Modells und der einzelnen Knoten detailliert beschrieben. Weiter wird das
Protokoll, über welches die einzelnen Knoten mit der Steuerung kommunizieren, definiert.
Die Angaben in diesem Dokument dienen als Grundlage für die softwaremässige Implementation eines CAN-Knotens
oder einer übergeordneten Steuerung.
Seite 3 von 12
Fischertechnik-Modell
2 Aufbau der Bearbeitungsstrasse
2.1 Übersicht
Ein 3-Achsen-Roboter beliefert eine Bearbeitungsstrasse mit Werkstücken. In der Bearbeitungsstrasse werden die
Werkstücke gefräst und gebohrt. Nach der Bearbeitung der Werkstücke werden diese vom Roboter geholt und abgelegt.
Der Roboter ist in 4 mechanische Einheiten aufgeteilt.
- (A1) Greifer
- (A2) Vertikalachse
- (A3) Greifarm
- (A4) Drehkranz
A4
A3
Jede dieser Einheiten wird durch einen Mikrokontroller
gesteuert.
A2
A1
Abbildung 1: 3-Achsen-Roboter
B1
B2
B3
Die Bearbeitungsstrasse ist in 6 mechanische Einheiten
aufgeteilt.
- (B1) Zulieferstrasse
- (B2) Wendeeinheit 1
- (B3) Frässtrasse
- (B4) Bohrstrasse
- (B5) Wendeeinheit 2
- (B6) Endstrasse
Jede dieser Einheiten wird durch einen Mikrokontroller
gesteuert.
B4
B6
B5
Abbildung 2: Bearbeitungsstrasse
Seite 4 von 12
Fischertechnik-Modell
2.2 A-Knoten und ihre Eigenschaften
Die A-Knoten sind in der Anzahl und Art ihrer Sensoren und Aktoren gleich. Jeder Knoten muss einen Motor Steuern
und zwei Schalter überwachen. Dabei dient jeweils ein Schalter als Endschalter und einer zur Wegmessung
Greifarm
Endschalter
Motor
Vertikalachse
Endschalter
Schalter
Wegmessung
Schalter
Wegmessung
Motor
Motor
Endschalter
Motor
Endschalter
Schalter
Wegmessung
Greifer
Schalter
Wegmessung
Drehkranz
Abbildung 3: 3D-Roboter
Die folgende Tabelle zeigt die Beschaltung der CAN-A-Knoten auf den Mikrokontroller-Boards:
Tabelle 1:
A-Knoten
CPU-Port
Bezeichnung
Knoten A1 – A4
P1.1
P1.2
PWM Motor A
PWM Motor B
Antrieb
-
P1.4
Input Sensor 3
-
P3.0 / 3.1
RS232 Interface
D-Sub-Buchse
P3.2
P3.3
Input Sensor 2
Input Sensor 1
End Switch
Positioning Switch
P4.0
Taster T1
Taster T1
P4.1
Taster T2
Taster T2
P4.2
Enable Motor A
Enable “Antrieb”
P4.3
Enable Motor B
-
P4.4
Direction Motor A
P4.5
Direction Motor B
Direction “Antrieb”
( P4_5 = 0 // to zerro )
-
P4.6 / 4.7
CAN Interface
CAN Interface
P5
LED 1 – 8
LED 1 – 8
Die Endschalter werden verwendet um die Achsen und den Greifer zu nullen. Ist ein Enschalter betätigt, so befindet sich
eine Achse in der Nullposition respektive der Greifer ist offen.
Für die Wegmessung wird jeweils ein weiterer Schalter verwendet. Durch das Zählen der Betätigungen kann die Position
der Achsen oder des Greifers bestimmt werden. Die anzufahrenden Achspositionen sind in Abbildung 10 angegeben.
Der Greifer ist geschlossen, wenn Position 18 erreicht ist.
Seite 5 von 12
Fischertechnik-Modell
2.3 B-Knoten und ihre Eigenschaften
2.3.1 Förderband Zulieferstrasse (B1)
Die Zulieferstrasse verfügt über einen Motor (M1) und zwei Lichtschranken L1 und L2.
L1
L2
M1
Abbildung 4: Zulieferstrasse B1
CPU-Port
Bezeichnung
Knoten B1
P1.1
P1.2
PWM Motor A
PWM Motor B
Förderband
P1.4
Input Sensor 3
-
P3.0 / 3.1
RS232 Interface
D-Sub-Buchse
P3.2
Input Sensor 2
P3.3
Input Sensor 1
P4.0
Taster T1
Lichtschranke 2
(bei Wendestation)
Lichtschranke 1
(Anfang Förderband)
Taster T1
P4.1
P4.2
Taster T2
Enable Motor A
Taster T2
-
P4.3
Enable Motor B
Enable “Förderband”
P4.4
Direction Motor A
-
P4.5
Direction Motor B
P4.6 / 4.7
P5
CAN Interface
LED 1 – 8
Transportrichtung
( P4_5 = 0 // forward )
CAN Interface
LED 1 – 8
2.3.2 Wendeeinheit 1 (B2)
Die Wendeeinheit verfügt über einen Motor (M1) und zwei Endschalter S1 und S2.
S1
M1
S2
Abbildung 5: Wendeeinheit B2
CPU-Port
Bezeichnung
Knoten B2
P1.1
P1.2
PWM Motor A
PWM Motor B
Motor M1
P1.4
Input Sensor 3
-
P3.0 / 3.1
RS232 Interface
D-Sub-Buchse
P3.2
Input Sensor 2
Schalter S2
P3.3
P4.0
Input Sensor 1
Taster T1
Schalter S1
Taster T1
P4.1
Taster T2
Taster T2
P4.2
Enable Motor 1
-
P4.3
Enable Motor 2
Enable “Motor M1”
P4.4
Direction Motor A
-
P4.5
Direction Motor B
P4.6 / 4.7
CAN Interface
Transportrichtung
( P4_5 = 0 // forward )
CAN Interface
P5
LED 1 – 8
LED 1 – 8
2.3.3 Fräseinheit (B3) (Milling)
Die Fräseinheit verfügt über zwei Motoren (M1 und M2) und eine Lichtschranke L1.
M2
M1
L1
Abbildung 6: Fräseinheit B3
CPU-Port
Bezeichnung
Knoten B3
P1.1
PWM Motor A
Förderband (M2)
P1.2
PWM Motor B
Fräser (M1)
P1.4
Input Sensor 3
-
P3.0 / 3.1
P3.2
RS232 Interface
Input Sensor 2
D-Sub-Buchse
-
P3.3
Input Sensor 1
Lichtschranke 1
P4.0
Taster T1
Taster T1
P4.1
Taster T2
Taster T2
P4.2
Enable Motor A
Enable “Förderband”
P4.3
P4.4
Enable Motor B
Direction Motor A
P4.5
Direction Motor B
P4.6 / 4.7
P5
CAN Interface
LED 1 – 8
Enable “Milling-Machine”
Transportrichtung
( P4_4 = 0 // forward )
Transportrichtung
( P4_5 = 0 // forward )
CAN Interface
LED 1 – 8
Seite 6 von 12
Fischertechnik-Modell
2.3.4 Bohreinheit (B4)
Die Bohreinheit verfügt über zwei Motoren (M1 und M2) und eine Lichtschranke L1.
M2
M1
L1
Abbildung 7: Bohreinheit B4
CPU-Port
Bezeichnung
Knoten B4
P1.1
P1.2
PWM Motor A
PWM Motor B
Förderband (M1)
Bohrer (M2)
P1.4
Input Sensor 3
-
P3.0 / 3.1
RS232 Interface
D-Sub-Buchse
P3.2
P3.3
Input Sensor 2
Input Sensor 1
Lichtschranke 1
P4.0
Taster T1
Taster T1
P4.1
Taster T2
Taster T2
P4.2
Enable Motor A
Enable “Förderband”
P4.3
P4.4
Enable Motor B
Direction Motor A
P4.5
Direction Motor B
P4.6 / 4.7
CAN Interface
Enable “Bohrer”
Transportrichtung
( P4_4 = 0 // forward )
Transportrichtung
( P4_5 = 0 // forward )
CAN Interface
P5
LED 1 – 8
LED 1 – 8
2.3.5 Wendeeinheit 2 (B5)
Die Wendeeinheit verfügt über einen Motor (M1) und zwei Endschalter S1 und S2.
M1
S2
S1
CPU-Port
Bezeichnung
Knoten B5
P1.1
P1.2
PWM Motor A
PWM Motor B
Motor M1
P1.4
Input Sensor 3
-
P3.0 / 3.1
RS232 Interface
D-Sub-Buchse
P3.2
P3.3
Input Sensor 2
Input Sensor 1
Schalter S2
Schalter S1
P4.0
Taster T1
Taster T1
P4.1
Taster T2
Taster T2
P4.2
Enable Motor 1
-
P4.3
P4.4
Enable Motor 2
Direction Motor A
Enable “Motor M1”
-
P4.5
Direction Motor B
P4.6 / 4.7
CAN Interface
Transportrichtung
( P4_5 = 0 // forward )
CAN Interface
P5
LED 1 – 8
LED 1 – 8
Abbildung 8: Wendeeinheit B5
2.3.6 Finalstage B6
Die Finalstage verfügt über einen Motor (M1) und eine Lichtschranke L1.
L1
M1
CPU-Port
Bezeichnung
Knoten B6
P1.1
PWM Motor A
-
P1.2
PWM Motor B
Förderband
P1.4
P3.0 / 3.1
Input Sensor 3
RS232 Interface
D-Sub-Buchse
P3.2
Input Sensor 2
-
P3.3
Input Sensor 1
Lichtschranke 1
P4.0
Taster T1
Taster T1
P4.1
P4.2
Taster T2
Enable Motor A
Taster T2
-
P4.3
Enable Motor B
Enable “Förderband”
P4.4
Direction Motor A
-
P4.5
Direction Motor B
P4.6 / 4.7
P5
CAN Interface
LED 1 – 8
Transportrichtung
( P4_5 = 0 // forward )
CAN Interface
LED 1 – 8
Abbildung 9: Finalstage B6
Seite 7 von 12
Fischertechnik-Modell
2.4 Anfahrpositionen
Die Anfahrpositionen sind absolut zum jeweiligen Nullpunkt des Aktors (Vertikal, Greifarm, Drehkranz) angegeben. Der
Nullpunkt eines Aktors ist sein Endschalter.
Vertikal:
0x19
Greifarm: 0x49
Drehkranz: 0x09
Vertikal:
0x42
Greifarm: 0x2A
Drehkranz: 0x1E
Vertikal:
0x6C
Greifarm: 0x06
Drehkranz: 0x14
Vertikal:
0x42
Greifarm: 0x04
Drehkranz: 0x84
Vertikal:
0x1A
Greifarm: 0x48
Drehkranz: 0x8D
Vertikal:
0x4D
Greifarm: 0x44
Drehkranz: 0x35
Vertikal:
0x4C
Greifarm: 0x3E
Drehkranz: 0x60
Vertikal:
0x69
Greifarm: 0x45
Drehkranz: 0x79
Abbildung 10: Anfahrpositionen
Seite 8 von 12
Fischertechnik-Modell
3 Aufbau des CAN-Netzes
Alle Knoten des Roboters, der Bearbeitungsstrasse sowie die Steuerung (CARME-Kit) sind über CAN miteinander
vernetzt. Der Aufbau sieht schematisch wie folgt aus:
Knoten A1
CAN
Knoten A4
Knoten B1
Knoten B6
CAN
CAN
CAN
CAN
CAN
Steuerung
CARME + µC/OS
CAN-Monitor
Abbildung 11: Aufbau des CAN-Netzes
Mit Hilfe eines CAN-Monitors kann der Datenverkehr auf dem Bus überwacht werden. Dieser Monitor erlaubt es auch,
Meldungen zu Testzwecken zu verschicken.
4 Beschreibung des CAN-Protokolls
4.1 Übersicht
Die Steuerung kann durch senden von definierten Kommunikationsobjekten:
• die Zustände der Knoten abfragen
• die Knoten Aufträge ausführen lassen
Um die Kommunikation möglichst einfach zu gestalten wird ein proprietäres Protokoll eingesetzt: Für jeden Knoten
existieren folgende Kommunikationsobjekte:
Command
Wird ein Commandobjekt empfangen, so wird ein vom Knoten abhängiger Auftrag ausgeführt.
Status Request Der Knoten schickt auf diesen Request ein Status Response.
Status Response Die Status-Rückmeldung des Knotens. Sie hängt vom jeweiligen Knoten ab.
Command Ack Die Bestätigung eines Command.
Command
Command Ack
Steuerung
Knoten A / B
Status Request
Status Response
Abbildung 12: Kommunikationsobjekte
Die ID der Kommunikationsobjekte können aus der folgenden Tabelle entnommen werden:
Seite 9 von 12
Fischertechnik-Modell
Knoten
A1
Commandobjekt
Status Request
Status Response
ID
DB0
DB1
ID
DB0
DB1
ID
DB0
0x100
Speed
0xAA
0xCC
0x101
--
--
0x102
dont_know
opened
closed
opening
closing
0x110
Speed
0x00
0x??
: back to zero
: go to pos.
0x111
--
--
0x112
0x120
Speed
0x00
0x??
: back to zero
: go to pos.
0x121
--
--
0x130
Speed
0x00
0x??
: back to zero
: go to pos.
0x131
--
0x200
Speed
--
0x201
0x210
Speed
--
0x220
Speed
DB1
ID
DB0
DB1
=0
=1
=2
=3
=4
--
0x103
no_err = 0
invalid_speed = 1
invalid_position = 2
timeout = 3
--
dont_know
moving_up
moving_down
not_moving
=0
=1
=2
=3
position
0x113
no_err = 0
invalid_speed = 1
invalid_position = 2
timeout = 3
--
0x122
dont_know
moving_up
moving_down
not_moving
=0
=1
=2
=3
position
0x123
no_err = 0
invalid_speed = 1
invalid_position = 2
timeout = 3
--
--
0x132
dont_know
moving_up
moving_down
not_moving
=0
=1
=2
=3
position
0x133
no_err = 0
invalid_speed = 1
invalid_position = 2
timeout = 3
--
--
--
0x202
not_moving
moving
=0
=1
L1
0
1
0
1
L2 Value
0
0
0
1
1
2
1
3
0x203
no_err = 0
invalid_speed = 1
no_block = 2
--
0x211
--
--
0x212
not_moving
moving
=0
=1
Schalter
keiner
=0
vorne S1 = 1
hinten S2 = 2
0x213
no_err = 0
invalid_speed = 1
--
Aktion
Ein Station vorwärts 1
Fräsen
2
Stop fräsen
3
0x221
--
--
0x222
Not_moving
moving
finished_milling
milling
=0
=1
=2
=3
L1
no_part
part
0x223
=0
=1
no_err = 0
invalid_speed = 1
invalid_action = 2
timeout = 3
Aktion
Ein Station vorwäts 1
Bohren
2
Stop bohren
3
0x231
Not_moving
moving
finished_drilling
drilling
=0
=1
=2
=3
L1
no_part
part
0x233
=0
=1
no_err = 0
invalid_speed = 1
invalid_ action = 2
timeout = 3
: öffnen
: schliessen
(Greifer)
A2
(Vetikalachse)
A3
(Greifarm)
A4
(Drehkranz)
B1
Command Ack
(Conveyor)
B2
(Conveyor)
B3
(Conveyor)
0x230
B4
Speed
(Conveyor)
B5
--
--
0x232
0x240
Speed
--
0x241
--
--
0x242
not_moving
moving
=0
=1
Schalter
keiner
=0
vorne S1 = 1
hinten S2 = 2
0x243
no_err = 0
invalid_speed = 1
--
0x250
Speed
--
0x201
--
--
0x252
not_moving
moving
=0
=1
L1
no_part
part
0x253
no_err = 0
invalid_speed = 1
timeout = 3
--
(Conveyor)
B6
(Conveyor)
Tabelle 2: Übersicht CAN-Messages
Seite 10 von 12
=0
=1
Fischertechnik-Modell
4.2 Aufgaben der einzelnen Knoten
Die Aufgaben der Knoten sind unterschiedlich. Im Folgenden sind die Kommunikations-Objekte der einzelnen Knoten
genauer beschrieben.
4.2.1 Knoten A1 – A4 (3D-Roboter)
Die Command- und Status Response-Objekte der 4 Roboter-Knoten sind im wesentlichen identisch. Im Databyte 0 des
Commandobjektes ist die Geschwindigkeit in Prozent [%] abgelegt. Im Databyte 1 befindet sich die auszuführende
Aktion. Bei Knoten A1 bedeutet „0xAA = öffnen“ und „0xCC = schließen“. Bei den übrigen Knoten steht im Datenbyte
1 die anzufahrende Position. 0x00 bedeutet „gehe zurück zum Nullpunkt“.
Die Command-Acknowledge-Objekte geben an, ob der Command ausgeführt werden kann, oder ob Fehler in den
Übergabeparametern vorliegen. "Timeout" als Rückgabewert bedeutet, dass die Position nach einer definierten Zeit noch
nicht erreicht wurde, beispielsweise weil ein Arm des Roboters blockiert wurde.
In den Status Response Objekten wird der Zustand der Knoten übermittelt. Nach dem Einschalten ist der Zustand immer
"don't know".
4.2.2 Konten B1 (Zulieferstrasse)
Command:
Wird ein Commandobjekt empfangen, so wird ein „Klotz“ um eine Stufe weitertransportiert.
Pos.1 → Pos.2 : Förderband läuft so lange, bis der Klotz bei Pos.2 angelangt ist.
Pos.2 → Pos.3 : Förderband läut so lange bis ein weiterer Klotz von Pos.1 auf Pos.2 transportiert
oder bis ein Timeout erreicht wurde.
300
L1
300
300
L2
M1
Abbildung 13
Position 1
Abbildung 14
Position 2
Abbildung 15
Position 3
Status Request: Die Steuerung will Informationen über den Status des Knotens B1.
Status Response: Es wird der Zustand des Bandes sowie der Zustand von L1 und L2 übermittelt
Command Ack: Bestätigung ob der Command ausgeführt werden kann: Entweder ok, ungültige Geschwindigkeit oder
kein Klotz vor einer Lichtschranke.
4.2.3 Knoten B2 (Wendeeinheit 1)
Command:
Wird ein Commandobjekt empfangen, so wird ein „Klotz“ von Pos.1 nach Pos.2 transportiert. Die
Wendeeinheit geht danach selbstständig wieder in den Ausgangszustand zurück (Pos1.)
M1
Abbildung 16
M1
Position 1
Abbildung 17
Position 2
Status Request: Die Steuerung will Informationen über den Status des Knotens B2.
Status Response: Es wird der Zustand des Bandes sowie der Zustand der Schalter S1 und S2 übermittelt.
Command Ack: Bestätigung ob der Command ausgeführt werden kann: Entweder ok oder ungültige Geschwindigkeit.
Seite 11 von 12
Fischertechnik-Modell
4.2.4 Knoten B3 (Fräseinheit)
Wird ein Commandobjekt empfangen, so steht im Databyte 2 die auszuführende Aktion.
Action 1 → Eine Station vorwärts
Action 2 → Fräsen
Action 3 → Stop Fräsen
Bei Action = 1:
Pos.1 → Pos.2 : Förderband läuft so lange, bis der Klotz bei Pos.2 angelangt ist.
Pos.2 → Pos.3 : Förderband läut so lange bis bis ein Klotz von Pos.1 auf Pos.2 transportiert oder bis
ein Timeout erreicht wurde.
Command:
M2
M1
L1
Abbildung 18
Position 1
L1
Abbildung 19
Position 2
Abbildung 20
Position 3
Status Request: Die Steuerung will Informationen über den Status des Knotens B3.
Status Response: Es wird der Zustand des Bandes, der Zustand der Fräseinheit sowie der Zustand von L1 übermittelt
Command Ack: Bestätigung ob der Command ausgeführt werden kann: Entweder ok, ungültige Geschwindigkeit,
ungültige Aktion oder Timeout.
4.2.5 Knoten B4 (Bohreinheit)
Die Bohreinheit ist analog zur Fräseinheit zu programmieren.
4.2.6 Knoten B5 (Wendeeinheit 2)
Die Wendeeinheit 2 ist analog zur Wendeeinheit 1 zu programmieren.
4.2.7 Knoten B6 (Finalstage)
Wird ein Commandobjekt empfangen, so wird ein „Klotz“ um eine Stufe weitertransportiert.
Pos.1 → Pos.2 : Förderband läuft so lange, bis der Klotz bei Pos.2 angelangt ist.
Pos.2 → Pos.3 : Förderband läut so lange bis ein weiterer Klotz von Pos.1 auf Pos.2 transportiert
oder bis ein Timeout erreicht wurde.
Command:
L1
L1
M1
Abbildung 21
Position 1
Abbildung 22
Position 2
Abbildung 23
Position 3
Status Request: Die Steuerung will Informationen über den Status des Knotens B6.
Status Response: Es wird der Zustand des Bandes sowie der Zustand von L1 übermittelt
Command Ack: Bestätigung ob der Command ausgeführt werden kann: Entweder ok, ungültige Geschwindigkeit,
oder Timeout.
Seite 12 von 12
Herunterladen