|
Simultane ProzesseProblemstellung Betrieb eines "Funkturmes, der im oberen Teil drehbar (M4, E1, E2) ist und an der Spitze "BlinkFeuer" (M1 - M3) und "Sensoren" (EX, EY, Photowiderstände) trägt. Verwendet wurde das parallele fischertechnik Interface 30 520. mit LLWin 2.1 (fischerwerke) und FiPro Win 1.0 (Cornelsen).
Die LLWin Lösung nutzt drei Prozesse (Kennzeichung durch Start), die endlos laufen. Der Prozeß Turm enthält (im Gegensatz zur LLWin-Lösung) auch die Initialisierung. Durch die Darstellung mit Verzweigungen und einem aufwendigen "Position" Befehl wirkt dieser Zweig recht "technisch". Die weiteren Prozesse sind recht ähnlich. Start und Ende des Programms durch die Entwicklungsumgebung. FiPro zeigt hier vier verblüffend einfache Prozesse, die die gleiche Aufgabe wie LLWin erledigen. Hier gibt es einen separaten Init-Prozeß, der als erstes die anderen Prozesse sperrt und den Turm auf Nullstellung fährt, die anderen Prozesse wieder freigibt und sich selbst beendet. Die weitereren Prozeß laufen endlos. Start und Ende des Programmes erfolgt über die Entwicklungsumgebung. Der Prozeß "TurmDreh" läuft hier wie bei LLWin 120 Impulse vom Endtaster 1 weg und dann wieder zurück zum Endtaster. Der automatisch vom System erstellte "Programmtext" liest sich so (Auszug) : Prozess : Init Prozess : TurmDreh Prozess: Sensoren Prozess : BlinkFeuer Der Funktionsumfang beider Systeme erlaubt sowohl einen Ausbau in Richtung Komfort, wie auch den Einsatz interaktiver Funktionen. FiPro kennt ebenfalls Verzweigungen. Beide Systeme kennen Variable (freidefinierbare und Systemvariable). Vergleich mit einer Visual Basic Lösung : Source-Ausschnitt (ft. : Methoden von FishN632.DLL wurde genutzt): ' --- Fahren auf Grundstellung --- ' --- TurmDreh --- ' --- BlinkFeuer, abwechselnd An/Aus bei jedem TimerAufruf
---- Da ein Visual Basic Programm auch außerhalb der Entwicklungsumgebung laufen kann, sollte hier außerdem für eine gute Bedienbarkeit gesorgt werden (FunkDreh.VBP).Hier wurde z.B. auch eine Synchronisation der Timer-Prozesse vorgenommen, wie sie in der FiPro-Lösung ebenfalls vorhanden sind. LLWin erlaubt ebenfalls eine Synchronisation (über die Abfrage von Variablen), sie wurde aber der Übersichtlichkeit wegen nicht aufgenommen. Der Vergleich zeigt, daß eine Visual Basic-Lösung deutlich aufwendiger ist, als eine LLWin bzw. FiPro Win-Lösung. Die Erstellung mit LLWin/FiPro (nach einer Eingewöhnungszeit) ist einfacher und übersichtlicher aber auch auf die Möglichkeiten für dieser spezialisierten Systeme beschränkt. Nachtrag : WinLogo 2.0 So ganz habe ich es mir denn doch nicht verkneifen können auch eine WinLogo-Lösung vorzustellen. Hier die wichtigsten Ausschnitte : pr AnzeigeSensoren Da WinLogo kein parallelen Prozesse (MultiThreading) unterstützt auch hier eine Ein-Prozeßlösung unter Verzicht auf Timer (es wurde der mit WinLogo gelieferte Treiber Fischer.DLL eingesetzt). Die Funktionen AnzeigeSensoren und BlinkFeuer mußten deshalb kunstvoll in den Funktionen WarteAufImpulse und WarteAufTaster eingebaut werden. Anmerkung : Das vorgestellte Programm erreichte unter WinNT auf einem Pentium 400 die Grenzen des Einsatzes mit WinLogo. Die Plazierung der Funktionen AnzeigeSensoren und BlinkFeuer waren ausschlaggebend für die Erkennung des Ende-Tasters (deswegen auch die Pause 1 in WarteAufTaster). Nachtrag 2 : WinLogo 2.0 und der Turm von HanoiIm fischertechnik Kasten "Computing" von 1984 findet sich eine Bauanleitung für einen Roboter "Turm von Hanoi" bei dem ein Arm mit einem gefedert aufgehängten Magneten vier Stahlscheiben stapelt. Das Programm ist in viele kleine - logogerechte - procedures aufgeteilt :
Die vollständige Source dazu ist in Schule.ZIP zu finden. Wer keinen Robot von 1984 mehr auftreiben kann, kanns auch mit dem Industry Robot 3 machen : Beispiel in Visual Basic. Und wers etwas exotisch liebt : das gleiche Beispiel für einen Lynxmotion 5 Axis Robot. Die Sources zu allen vorgestellten Programmen (auch Ampel) sind in Schule.ZIP zu finden. |