Compact 2000


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:

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?


Befehlsübersicht

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
...