# ADbasic

ADbasic ist eine kommerzielle Programmiersprache der Firma Jäger Computergesteuerte Messtechnik GmbH. Die Sprache ist an BASIC angelehnt und dient zur Programmierung der ADwin-Geräte derselben Firma.
Die erste Version der Entwicklungsumgebung erschien 1994 für Microsoft Windows. Heute gibt es außerdem einen Compiler für Linux.
Die Anwendungsgebiete von ADbasic sind die Regelungs-, Mess- und Automatisierungstechnik. Die Programmierung folgt dem Prozessmodell des allgemeinen Regelkreises, wodurch sich die Sprache zur einfachen Programmierung von Regelungen anbietet. Ein ADbasic-Programm wird zyklisch in festgelegten Zeitabständen ausgeführt; zusätzlich kann die Initialisierung und Endbearbeitung von Daten programmiert werden.
ADbasic ist eine textorientierte Sprache. Die grundlegenden Befehle sind an BASIC angelehnt und ermöglichen auch strukturiertes Programmieren. ADbasic enthält eine Vielzahl spezifischer Befehle, die auf die Hardware der ADwin-Geräte zugreifen und dort analoge und digitale Signale verschiedenster Art verarbeiten.
Der ADbasic-Compiler ist ein Cross-Compiler, der direkt ausführbaren Binärcode für ADwin-Geräte erzeugt. Die Performance der ausgeführten Prozesse ist abhängig von der Leistungsfähigkeit des eingesetzten ADwin-Geräts; es können Regelfrequenzen im Bereich bis zu einigen Megahertz unter Einhaltung harter Echtzeit erreicht werden.
In ADbasic geschriebene Prozesse können Daten mit dem PC austauschen. Es stehen Schnittstellen für viele Programmiersprachen (z. B. C++, Visual Basic, C#, Object Pascal, Java) und Programmpakete (z. B. Matlab, LabVIEW, Diadem) zur Verfügung. Damit kann der Anwender die Daten auf dem PC verwenden, z. B. in selbst erstellten Bedienoberflächen.

## In ADbasic enthaltene Zusatzpakete

Im Lieferumfang von ADbasic sind zusätzliche Werkzeuge verfügbar, so unter anderem:
* Texteditor und Entwicklungsumgebung. Ein speziell für ADbasic entwickelter Texteditor, der das Entwickeln von ADbasic-Prozessen vereinfacht. Er unterstützt unter anderem:
** Hervorheben der ADbasic-Syntax
** Automatische Identifizierung von Funktionen
** Zeilennummerierung
** Hilfefunktion
** Quellcode kompilieren und auf der Hardware starten
** Daten aus der Hardware lesen und darstellen
** Optimierung von Prozessen
* ADtools. Ein Paket von Hilfsprogrammen, mit denen Variablenwerte und Systemeigenschaften laufender Prozesse grafisch dargestellt werden können. Daneben können Prozesse auch gestartet und gestoppt werden. ADtools ermöglichen damit das Zusammenstellen einer einfachen Bedienoberfläche für ADbasic-Prozesse.

## Beispiele
### Signalgenerator

Der folgende Quelltext ist das ADbasic-Programm eines Signalgenerators, der an einem analogen Ausgang eine Sägezahnspannung ausgibt:
Der Programmabschnitt EVENT: definiert den Prozess, der regelmäßig in kurzen Zeitabständen durchlaufen wird, bis der Prozess stoppt:
* Ausgabe von PAR_2 auf den Analogausgang 1.
    Der Befehl DAC (digital-analog converter) erzeugt am Analogausgang 1 die zum Digitalwert PAR_2 gehörende Spannung.
* Erhöhen des Variablenwerts um 1.
* Sobald PAR_2 größer als 65.535 wird, wird der Variablenwert wieder auf 0 gesetzt.

### P-Regler

Der folgende Quelltext ist das ADbasic-Programm für einen Proportional-Regler:
Zunächst definiert das Programm die Konstanten und Variablen:
* Konstante offset: Digitalwert, der der Spannung 0 Volt am Analogausgang entspricht.
* Variable cd: Regeldifferenz.
* Variable av: Stellgröße.
* Variable PAR_1: Sollwert der Regelgröße.
* Variable PAR_2: Verstärkung = Kennwert P des Reglers.
Der Programmabschnitt INIT: weist den Variablen die Startwerte des P-Reglers zu.
Der Programmabschnitt EVENT: definiert den Regelprozess, der regelmäßig in definierten Zeitabständen durchlaufen wird, bis der Prozess gestoppt wird:
* Berechnung der Regeldifferenz cd; dabei ist ADC(1) die Regelgröße.
    Der Befehl ADC (analog-digital converter) wandelt das Analogsignal am Eingangskanal 1 und gibt den entsprechenden Digitalwert zurück.
* Berechnung der Stellgröße av aus Regeldifferenz und Verstärkung PAR_2.
* Ausgabe der Stellgröße av auf den Analogausgang 1.
    Der Befehl DAC (digital-analog converter) erzeugt am Analogausgang 1 die zum Digitalwert av gehörende Spannung.