| | Beispiel : Listensteuerung eines Industry Robots
Ein einfaches Beispiel zur Steuerung eines Säulenrobots über eine Liste.
Die Source
Public
Class
iRobListe
Dim
XMLName As String
= New
IO.DirectoryInfo(".\").FullName
& "iRobDaten.XML"
Dim ir As
iRobDaten
Dim
MotList(,) As Integer
= {{1, 180}, {2, 100}, {3, 110}}
Dim
WithEvents ft As
New
FishRobot(MotList)
Private Sub
Action()
Dim
rp As
RobPosition
Do
ft.MoveHome()
For Each
rp In
ir.RobListe
ft.MoveTo(rp.Saule, rp.ArmV,
rp.ArmH)
Next
Loop Until
ft.Finish()
End
Sub
# Region
"---
ProgramControl ---"
Private
Sub
ft_PositionChange(ByVal
sender As Object,
ByVal
ActPositions() As
Integer)
_ Handles
ft.PositionChange
lblPosition.Text = ActPositions(0) & "
- " & ActPositions(1) & "
- " &
ActPositions(2)
End
Sub
End Class |
Anmerkungen
- Die Positionsdaten werden in einer generischen RobListe
As New List(Of RobPosition) gehalten
- Die Liste wird in einer XML-Datei gehalten und kann dort auch editiert
werden (dieses einfache Programm hat kein TeachIn). Name iRobDaten.XML.
- Die Liste und andere Programmdaten wird über die
Serialisierungs-Funktionen von .NET gespeichert bzw. geladen. Für das
"erste" Mal gibt es in der Klasse iRobDaten einen entsprechenden
Konstruktor
- Die RobotDaten für MotorNummer und max. Fahrweg werden in der Tabelle
MotList gehalten und bei der Instanzierung an FishRobot übergeben.
- Die Sub Action arbeitet RobListe in einer For Each Schleife ab, die
wiederum steckt in einer endlosen Do Loop Until
ft.Finish() Schleife, die durch den HALT-Button bzw. die ESC-Taste
beendet werden kann. Um das Programm nicht zu komplizieren, wurde auf eine
Steuerung des Greifers verzichtet.
- Die aktuelle Position wird ständig im Statusfeld über eine
Ereignis-Routine angezeigt.
- Details zur Programmsteuerung und zur Serialisierung wurden in der Region
ProgramControl versteckt. Deswegen hier kein Kommentar.
Download
iRobListe.ZIP : Projekt mit dem
Steuerungsprogramm. Ein installiertes VB2005Fish40Setup.EXE
wird vorausgesetzt.
Stand : 06.11.2008
|