1. Einführung

Die folgenden Abschnitte zeigen die Pins, Parameter und Funktionen, die von "kanonischen Geräten" bereitgestellt werden. Alle HAL-Gerätetreiber sollten die gleichen Pins und Parameter bereitstellen und das gleiche Verhalten implementieren.

Beachten Sie, dass nur die Felder <io-type> und <specific-name> für ein kanonisches Gerät definiert sind. Die Felder <device-name>, <device-num> und <chan-num> werden auf der Grundlage der Eigenschaften des realen Geräts festgelegt.

2. Digital Input

Der kanonische Digitaleingang (E/A-Typfeld: "digin") ist recht einfach.

2.1. Pins

(bit) in

Zustand des Hardware-Eingangs.

(bit) in-not

Invertierter Zustand des Eingangs.

2.2. Parameter

Keine

2.3. Funktionen

(funct) read

Lesen der Hardware und Setzen der HAL-Pins "in" und "in-not".

3. Digital Output

Der kanonische digitale Ausgang (engl. output) (E/A-Typfeld: digout) ist ebenfalls sehr einfach.

3.1. Pins

(bit) out

Wert, der (eventuell invertiert) an den Hardware-Ausgang geschrieben werden soll.

3.2. Parameter

(bit) invert

Wenn TRUE, wird out vor dem Schreiben in die Hardware invertiert.

3.3. Funktionen

(funct) write

Lesen Sie out und invert und stellen Sie die Hardwareausgabe entsprechend ein.

4. Analog Input

Der kanonische Analogeingang (E/A-Typ: adcin). Dieser wird voraussichtlich für Analog-Digital-Wandler verwendet, die z. B. Spannung in einen kontinuierlichen Wertebereich umwandeln.

4.1. Pins

(float) Wert

Der Hardware-Messwert, skaliert gemäß den Parametern Skala und Offset.
Wert = ((Eingangsmesswert, in hardwareabhängigen Einheiten) * Skala) - Offset

4.2. Parameter

(Float) Skala (engl. scale)

Die Eingangsspannung (oder der Strom) wird mit Skala multipliziert, bevor sie als Wert ausgegeben wird.

(float) Offset

Dieser Wert wird nach Anwendung des Skalenmultiplikators von der Hardware-Eingangsspannung (oder dem Strom) subtrahiert.

(float) bit_weight

Der Wert eines niederwertigen Bits (LSB). Dies ist effektiv die Granularität des Eingangswertes.

(float) hw_offset

Der Wert, der am Eingang anliegt, wenn 0 Volt an den Eingangspin(s) angelegt wird.

4.3. Funktionen

(funct) read

Lesen Sie die Werte dieses analogen Eingangskanals. Dies kann zum Lesen einzelner Kanäle verwendet werden, oder es können alle Kanäle gelesen werden.

5. Analog Output

Der kanonische Analogausgang (E/A-Typ: adcout). Dieser ist für jede Art von Hardware gedacht, die einen mehr oder weniger kontinuierlichen Wertebereich ausgeben kann. Beispiele sind Digital-Analog-Wandler oder PWM-Generatoren.

5.1. Pins

(float) Wert

Der zu schreibende Wert. Der tatsächliche Wert, der an die Hardware ausgegeben wird, hängt von den Parametern Skala und Offset ab.

(bit) aktivieren (engl. enable)

Wenn false, dann wird 0 an die Hardware ausgegeben, unabhängig vom value Pin.

5.2. Parameter

(float) Offset

Dies wird zu dem Wert (engl. value) hinzugefügt, bevor die Hardware aktualisiert wird.

(Float) Skala (engl. scale)

Dies sollte so eingestellt werden, dass eine Eingabe von 1 am value-Pin dazu führt, dass der Analogausgangspin 1 Volt anzeigt.

(float) high_limit (optional)

Wenn bei der Berechnung des an die Hardware auszugebenden Wertes value
offset größer ist als high_limit, wird stattdessen high_limit verwendet.

(float) low_limit (optional)

Wenn bei der Berechnung des an die Hardware auszugebenden Wertes value
offset kleiner als low_limit ist, wird stattdessen low_limit verwendet.

(float) bit_weight (optional)

Der Wert des niedrigstwertigen Bits (LSB) in Volt (oder mA bei Stromausgängen).

(float) hw_offset (optional)

Die tatsächliche Spannung (oder Stromstärke), die ausgegeben wird, wenn 0 in die Hardware geschrieben wird.

5.3. Funktionen

(funct) write

Dies bewirkt, dass der berechnete Wert an die Hardware ausgegeben wird. Wenn enable false ist, wird 0 ausgegeben, unabhängig von value, scale und offset. Die Bedeutung von "0" ist von der Hardware abhängig. Bei einem bipolaren 12-Bit-A/D kann es z. B. erforderlich sein, 0x1FF (mittlere Skala) an den D/A zu schreiben, um 0 Volt vom Hardware-Pin zu erhalten. Wenn enable true ist, werden Skala, Offset und Wert gelesen und an den ADC ausgegeben (scale (Skala) * value (Wert)) + offset. Wenn enable false ist, dann wird 0 ausgegeben.