Compact 2000 ist
ein Programm von Hans-Joachim Berndt (www.hjberndt.de)
. Es unterstützt mehrere Interfaces der Firma Modul-Bus (www.modul-bus.de),
unter anderem das CompuLAB-USB, das CompuLAB für die RS232 und das
SIOS-Interface. Zum Betrieb mit dem CompuLAB-USB muss der passende Treiber
geladen sein.
USB-Treiber CompuLAB-USB
Kopieren von Compact2000
Direktstart von Compact2000
Die Programmieroberfläche von Compact 2000 erlaubt zwar nur kleine Programme. Aber die Einarbeitung ist extrem einfach. Und manche Probleme lassen sich sehr elegant lösen. Hier ein Beispiel:
PROGRAMM Wiederhole Ausgang Zufallswert = T Bis Tastendruck ENDE
Dieses Programm befindet sich unter dem Dateinamen ZUSE.CPF unter den beiliegenden Beispielen. Es erzeugt ein unregelmäßiges Bitmuster an den Ausgangs-LEDs des Interfaces. Das sieht so aus, wie in alten Filmen Computer dargestellt werden. Daher der Name ZUSE. Wie würde man so etwas wohl mit einer "normalen" Programmiersprache schaffen?
Ausgang Verändert am Interface den Zustand eines der acht Digital-Ausgänge. Parameter 1 : 0 - 7: Nummer des Ausgangs, der verändert werden soll. Zufallswert: Es wird ein zufälliger Ausgang gewählt. Parameter 2: O: Der angegebene Ausgang wird ausgeschaltet. I: Der angegebene Ausgang wird eingeschaltet. T: Schaltet den Zustand dieses Ausgangs um. Beispiel : ... Ausgang 0 = I Ausgang 1 = O Ausgang 2 = T Ausgang Zufallswert = T ... Ausgänge Verändert den Zustand der Digital-Ausgänge. Parameter : Dezimalzahl zwischen 0 und 255 oder ... IIOOTTXX: Verändert die Ausgänge nach dem angegebenen Muster.
O: Der Ausgang wird ausgeschaltet. I: Der Ausgang wird eingeschaltet. T: Schaltet den Zustand dieses Ausgangs um. X: Der Zustand dieses Ausgangs bleibt unverändert. Zahl: Setzt die Ausgänge auf den Wert der Variablen Zahl. Zufallswert: Setzt alle Ausgänge zufällig. Eingänge: Die Ausgänge erhalten den Zustand der Eingänge, A-Eingang: erhalten den Wert des analogen A-Eingangs, B-Eingang: erhalten den Wert des analogen B-Eingangs. Beispiel : ... Ausgänge = IOIIIOIO Ausgänge = 254 Ausgänge = Zahl Ausgänge = A-Eingang ... Zahl Verändert die Variable Zahl. Parameter 1 : = Setzt die Variable gleich dem zweiten Parameter. + , - Addiert / subtrahiert den zweiten Parameter. * , / Multipliziert / dividiert den zweiten Parameter. Parameter 2: Dezimalzahl zwischen 0 und 255 oder... A-Eingang: Der Wert des analogen A-Eingangs. B-Eingang: Der Wert des analogen B-Eingangs. Zufallswert: Ein Zufallswert zwischen 0 und 255. Eingänge: Der binäre Wert der 8 Eingänge. Hinweis: Wenn durch die Operation die Grenzen von 0 bzw. 255 überschritten werden, erfolgt ein Übertrag auf Null. Beispiel : ... Zahl = 255 Zahl - IOIOIOIO Schreibe Zahl Zahl * A-Eingang Zahl / B-Eingang Schreibe Zahl ... Warte Wartet die angegebene Zeit ab. Parameter : Zeitdauer in Sekunden. Beispiel : ... Schreibe "Dies sind 10 Sekunden..." Warte 10 Sekunden Schreibe "... und das nur 0.5 ... " Warte 0.5 Sekunden Schreibe "...Sekunden !" ... Uhr Start Setzt die Variable Zeit auf Null und startet die interne Uhr. Parameter : Keine. Hinweis: Nach und während dem Befehl "Uhr Start" kann der Stand der internen Uhr mit dem Befehl "Schreibe Zeit" ausgegeben werden. Beispiel : ... Uhr Start Wiederhole Schreibe "Interne Uhr ist :" Zeit Bis Tastendruck Uhr Stop Schreibe "Interne Uhr ist stehengeblieben bei" Zeit ... Uhr Stop Stoppt die interne Uhr. Parameter : Keine. Hinweis: Die Zeit kann mit dem Befehl "Schreibe Zeit" ausgegeben werden. Beispiel : ... Uhr Start Wiederhole Schreibe "Interne Uhr ist :" Zeit Bis Tastendruck Uhr Stop Schreibe "Interne Uhr ist stehengeblieben bei" Zeit ... Neues Blatt Löscht das Ausgabefenster, das vom Befehl "Schreibe" benutzt wird. Parameter : Keine. Beispiel : ... Schreibe "Dieser Text ist nur kurz zu sehen..." Warte 2 Sekunden Neues Blatt Schreibe "...fertig." ... Schreibe Gibt die Parameter im Ausgabefenster aus. Parameter : Zeit Stand der Internen Uhr in Sekunden. A-Eingang Wert des A - Einganges. B-Eingang Wert des B - Einganges. Zufallswert Ein Zufallswert zwischen 0 und 255. Eingänge Der binäre Zustand der Eingänge 0 - 7. Zahl Der Wert der Variablen Zahl. " Text " Ein beliebiger Text in Anführungszeichen. Beispiel : ... Uhr Start Schreibe "A-Eingang ist "A-Eingang Schreibe "B-Eingang ist "B-Eingang Schreibe "Eine Zufallszahl "Zufallswert Schreibe "Eingänge sind "Eingänge" bei Zeit = "Zeit Uhr Stop ...
SignalTon Gibt einen kurzen Ton über den PC-Lautsprecher aus. Parameter : Keine. Beispiel : ... SignalTon Schreibe "Achtung!" ... Wiederhole / Bis [Bedingung] Die zwischen "Wiederhole" und "Bis [Bedingung]" stehenden Befehle werden solange wiederholt, bis während deren Bearbeitung der Zustand [Bedingung] eingetreten ist. Dabei kann größer als, kleiner als und gleich als Vergleichsoperand benutzt werden. Die Vergleichsmöglichkeiten hängen vom gewählten Parameter ab. Bedingungen: Tastendruck Die Schleife wird nach einem Tastendruck verlassen, Durchläufe nach einer bestimmten Zahl von Durchläufen, Zeit ... Sekunden vor/bei/nach einer bestimmten Zeit, Zahl bis Zahl gleich, größer, kleiner dem angegebenen Wert, A-Eingang bis A gleich, größer, kleiner dem angegebenen Wert, B-Eingang bis B gleich, größer, kleiner dem angegebenen Wert, Eingänge bis Eingänge gleich, größer, kleiner ... Eingang bis ein bestimmter Eingang I oder O ist. Beispiel : ... Wiederhole Schreibe "drücke eine Taste..." Bis Tastendruck ... Wenn [Bedingung] Dann ... Sonst ... EndeWenn Im Gegensatz zur "Wiederhole ... Bis" - Schleife wird hier eine Bedingung geprüft und je nach Ergebnis eine Folge von Befehlen abgearbeitet. Bedingungen: Tastendruck Die Bedingung ist ein erfolgter Tastendruck, Durchläufe wenn der Durchlaufszähler einen bestimmten Wert hat, Zeit ... Sekunden wenn Zeit gleich, größer, kleiner ... Zahl wenn Zahl gleich, größer, kleiner ... A-Eingang wenn A gleich, größer, kleiner ... B-Eingang wenn B gleich, größer, kleiner ... Eingänge wenn Eingänge gleich, größer, kleiner ... Eingang wenn ein bestimmter Eingang I oder O ist. Beispiel : ... Wenn Eingang 1 = I Dann Schreibe "Ja" Sonst Schreibe "Nein" EndeWenn ...