Analoge Ausgänge mit CODESYS konfigurieren

CODESYS hilft Dir bei der Konfiguration Deines RevPi AIO.

  • Doppelklicke im CODESYS -Baum auf das RevPi AIO.
  • Klicke auf die erste Registerkarte “Module Parameters”.

Dein RevPi AIO besitzt zwei analoge Ausgänge. Diese Ausgänge können entweder Spannung oder Strom ausgeben. Du kannst hier Aktoren wie z. B. Frequenzumrichter zur Drehzahlsteuerung anschließen.

Damit Deine Konfiguration auch funktioniert, ist es wichtig, dass Deine Geräte an die richtigen Ausgangspins angeschlossen sind.

Output 1

PIN

Verwendung

1

V+  positiver Ausgang für Spannungsbereiche Kanal 1

3

I+  positiver Ausgang für Strombereiche Kanal 1

5

gemeinsame Masse beider Ausgangskanäle 1 und 2 (Strom und Spannung)

7

gemeinsame Masse beider Ausgangskanäle 1 und 2 (Strom und Spannung)

Output 2

PIN

Verwendung

2

V+  positiver Ausgang für Spannungsbereiche Kanal 2

4

I+  positiver Ausgang für Strombereiche Kanal 2

6

gemeinsame Masse beider Ausgangskanäle 1 und 2 (Strom und Spannung)

8

gemeinsame Masse beider Ausgangskanäle 1 und 2 (Strom und Spannung)

Bitte beachte, dass Du immer nur entweder Strom oder Spannung auf einem Kanal ausgeben kannst, obwohl es zwei getrennte Anschlüsse gibt.
Die detaillierten Einstellwerte findest Du in der folgenden Tabelle. In den CODESYS AIO-Modul-Parametern musst Du auf den jeweiligen Werte-Reiter klicken, um die Dropdown-Liste zu füllen.

PiCtory Einstellung

Wert

Funktion

Output1 Range,
Output2Range

Off (Ausgang inaktiv)
0 – 5 V
0 – 10 V
-5 – 5 V
-10 – 10 V
0 – 5,5 V
0 – 11 V
-5.5 – 5.5 V
-11 – 11 V
4 – 20 mA
0 – 20 mA
0 – 24 mA

Stelle hier die Wertebereiche für Strom oder Spannung ein, die die Ausgänge abgeben sollen.

Output1EnableSlew,
Output2EnableSlew

On = Anstiegsrate verwenden
Off= Anstiegsrate nicht verwenden

Hier kannst Du festlegen, ob Du eine Anstiegsrate für den jeweiligen Ausgang verwenden möchtest.
Die Anstiegsrate (slew rate) kontrolliert die Geschwindigkeit, mit der sich die Ausgangs­spannung oder Ausgangsstromstärke ändert, wenn Du im Prozessabbild einen neuen Wert für einen Ausgang festlegst.

Output1SlewStepSize,
Output1SlewStepSize

1
2
4
8
16
32
64
128

Hier kannst Du die Schrittweite der Anstiegsrate für den jeweiligen Ausgang auswählen. Die Schrittweite 1 entspricht dabei dem kleinsten Bitwert (LSB) des Wandlers. Die Schrittweite bestimmt zusammen mit der Schritt-Taktfrequenz die Steilheit des Übergangs (der Flanke) zwischen zwei Analogwerten.

Output1SlewUpdateFreq,
Output1SlewUpdateFreq

258 kHz
200 kHz
154 kHz
131 kHz
116 kHz
70 kHz
38 kHz
26 kHz
20 kHz
16 kHz
10 kHz
8,3 kHz
6,9 kHz
5,5 kHz
4,2 kHz
3,3 kHz

Hier kannst Du die Schritt-Taktfrequenz für die Anstiegsrate des jeweiligen Ausgangs auswählen. Die Schrittweite bestimmt zusammen mit der Schritt-Taktfrequenz die Steilheit des Übergangs (der Flanke) zwischen zwei Analogwerten.

Scaling output 1:
Output1Multiplier
Output1Divisor
Output1Offset
Scaling output 2:
Output2Multiplier
Output2Divisor
Output2Offset

16 Bit signed Multiplier
16 Bit unsigned Divisor
16 Bit signed Offset

Hier kannst Du eine Skalierung für jeden Ausgangskanal festlegen. Diese wird durch die drei Konfigurationswerte bestimmt und nach folgender Formel aus dem Originalwert (der in mV bzw. µA vorliegt) berechnet:
Y = X*Multiplier/Divisor + OffsetX ist der Wert für den Output,
Y steht für die verwendete Spannungsversorgung in Millivolt

Bitte beachte, dass Du immer nur entweder Strom oder Spannung auf einem Kanal ausgeben kannst, obwohl es zwei getrennte Anschlüsse gibt.

Die Skalierung kann für Umrechnung in andere Einheiten oder zur nachträglichen Kalibrierung eines Aktors verwendet werden. Bei der Berechnung im AIO-Modul wird eine 32-Bit-Integer-Arithmetik verwendet. Die Ergebnisse werden dann aber wieder als 16-Bit-Werte zum DAC gesendet. Sollte das Ergebnis Y die Grenzen eines 16-Bit-signed Wertes überschreiten, so wird der Fehler erkannt und der Wert begrenzt. Die Ausgangswerte müssen für einen Skalierungsfaktor 1 immer in der Einheit mV bzw. µA ins Prozessabbild abgelegt werden.

Beispiel:

Ein Frequenzumrichter steuert einen Elektromotor an. Er hat einen Analogeingang von 0 bis 10 V. Dabei entspricht 0 V einer Motordrehzahl von 200 upm und 10 V einer Drehzahl von 3000 upm. Um im Prozessabbild die Drehzahl in upm zu hinterlegen, musst Du für den Ausgangsbereich 0-10 V die Parameter wie folgt wählen:

Multiplier = 100, Divisor = 28, Offset = -714

Bild

Die Einstellungen rund um die „Slew Rate“ haben folgende Bedeutung:

Nehmen wir an, Du hast einen Ausgangsbereich von 0 bis 10 V gewählt. Im Prozessabbild liegt für den Kanal1 ein Ausgangswert von 3 V. Dieser Wert soll sich nun auf 8 V ändern. Deshalb schreibst Du statt den 3000 mV die Zahl 8000 an den entsprechenden Offset im Prozessabbild. Beim nächsten PiBridge Zyklus wird diese Zahl dann dem DAC (Digital to Analog Converter) übergeben, der daraus die Analogspannung für den Ausgang generiert. Dies passiert also mit einer gewissen Verzögerungszeit von 10-40 ms, je nach Auslastung der PiBridge (die von der Konfiguration abhängt). Nach dieser Verzögerung würde die Ausgangsspannung sehr schnell von 3 V auf 8 V springen. Die Anstiegssteilheit der Spannung (Flankensteilheit, englisch „slew rate“) ist dabei nur von der Gesamtkapazität am Ausgang abhängig (die unter anderem von den angeschlossenen Geräten abhängt). Sie dürfte in der Regel bei einigen µs liegen. Oft ist diese Flankensteilheit unerwünscht, weil sie extrem hohe Frequenzanteile hat, die zur Störausstrahlung und anderen Problemen führen kann. Daher kannst Du die Flankensteilheit künstlich verringern. Dazu schaltest Du „Output?EnableSlew“ auf „On“. Nun wird der DAC, sobald er die neuen Daten (8000) hat, in kleinen Schritten die Ausgangsspannung erhöhen, bis die 8 V erreicht sind. Die Amplitude der Schritte stellst Du mit „Output?SlewStepSize“ ein. Diese Schrittweite wird in der Einheit „LSB“ (also Last Significant Bit) angegeben. Da unser Wandler bei jedem Ausgangsbereich mit 16-Bit-Auflösung arbeitet, beträgt die Schrittweite des niederwertigsten Bits (LSB) im 0-10V -Bereich 10V/2^16 = 0,15 mV (bzw. 0,30 µA im Bereich 4-20 mA). Wieviele dieser winzigen Schritte der DAC benötigt, hängt also nur von dem Spannungssprung ab: Bei unserem Beispiel sind es mit einer Schrittweite von 1 also 5000 mV / 0,15 mV = 33.333 Schritte. In welcher Zeit nun diese Schritte vollzogen werden, wird durch die Taktrate bestimmt, mit der die Schritte in das Signal eingebaut werden. Sie kann von Dir durch den Parameter „Output?SlewClock“ eingestellt werden. Bei einer eingestellten Taktrate von 3,3 kHz braucht die Flanke von 5 V also 33.333* 1/3300 s = 10 s. Bei der Einstellung 258 kHz wären es demnach 130 ms. Die Flankensteilheit beträgt also bei 3,3 kHz Taktrate 0,5 V/s bzw. 38 V/s bei 258 kHz Taktrate. Mit größeren Schrittweiten kannst Du die Flankensteilheit drastisch erhöhen, allerdings mach das Signal dann auch „Sprünge“, d.h. es bekommt deutlich mehr hochfrequente Signalanteile.

  • Klicke auf „File>Save“. Damit speicherst Du Deine Datei.
  • Klicke auf „Tools>Reset Driver“. Damit aktivierst Du die Änderungen für den Adapter.

Tritt ein Fehler auf, erhältst Du in den Eingangswerten des Prozessabbilds mit dem Namen OutputStatus_1 und OutputStatus_2 Fehlermeldungen. Die jeweiligen Bits in den Statusbytes haben folgende Bedeutung:

Bitposition

Statusmeldung

0 (LSB)

Temperaturfehler des Ausgangsbausteins. Der Ausgangsbaustein ist durch eine längere Überlastung (Kurzschluss) überhitzt.

1

Open-Load-Fehler des Stromausgangs. Im Betriebsmodus „Stromausgang“ ist der angeschlossene Stromkreis zu hochohmig, weil zum Beispiel die Leitung unterbrochen ist.

2

Interner CRC Fehler des Ausgangsbausteins. Dieser Fehler deutet auf einen Hardwaredefekt oder gravierende externe Störsignale hin.

3

Bereichsfehler: Der Ausgangswert im Prozessabbild liegt außerhalb des konfigurierten Ausgangsbereichs.

4

Reserviert für interne Zwecke.

5

Die Versorgungsspannung für das Modul ist geringer als 10,2 V.
Die Ausgänge wurden abgeschaltet.

6

Die Versorgungsspannung für das Modul ist größer als 28,8 V.
Die Ausgänge wurden abgeschaltet.

7 (MSB)

Timeout bei der Verbindung zum RevPi Connect (z. B. wegen einer Störung der PiBridge oder wenn das Treiberprogramm PiControl nicht mehr korrekt auf dem RevPi Connect läuft). Die Ausgänge wurden abgeschaltet.