Oversampling-Ausgänge

Allgemeine Informationen zu Oversampling-Ausgängen

Die Oversampling-Ausgangsfunktion am Modul kann über die Register mit I/O-Mapping des Serco III-Moduls verwendet werden.

Um die Auswertung der Ausgangsvariablen am Modul zu ermöglichen, muss der Parameter OutputsActiveSet (Busschnittstelle TM5NS31) auf on / 1 gesetzt werden.

Der Parameter OutputsActive schaltet dann auf on / 1, nachdem die Ausgänge am Modul aktiv sind.

Initialisierung der Handhabung der Oversampling-Ausgänge

Die Handhabung eines Oversampling-Ausgangs sollte wie folgt initialisiert werden:

Schritt

Aktion

1

Erstellen Sie eine neue Programm-POU, die in jedem Sercos-Zyklus aufgerufen wird.

2

Aktivieren Sie OversampleEnable (in OversampleControl).

Ergebnis: OversampleInputCycle zeigt die aktuelle Position im Oversampling-Puffer.

3

Setzen Sie OversampleOutputCycle := OversampleInputCycle + OFFSET zyklisch und schreiben Sie ein 8-Bit-Mister in OversampleOutput0xSample1_8.

Ergebnis: Nachdem die Daten vom TM5SDM8DTS-Modul empfangen wurden, kopiert das Modul dieses 8-Bit-Muster an die Adresse OversampleOutputCycle im Puffer.

4

HINWEIS: Sie müssen die Anzahl an Zyklen berechnen, die abzuwarten sind, bevor Sie das OversampleControlCopyActive-Bit im OversampleControl-Byte setzen.

Wie Sie in der Beispielgrafik sehen, ist die Formel wie folgt:

Anzahl an Zyklen, die vor Setzen des OversampleCopyActive-Bits auf 1 abzuwarten sind = (OFFSET - (fünf Zyklen x acht Einträge je Zyklus)) / acht Einträge je Zyklus

Nachdem ausreichend Daten in den Puffer geschrieben wurden, stellen Sie sicher, dass die derzeitige Leseposition an einem Punkt steht, an dem Daten geschrieben wurden, und aktivieren Sie das OversampleControlCopyActive-Bit in OversampleControl. Dies muss nur einmal durchgeführt werden; ein späterer Versuch, diese Flag zu ändern, erzeugt einen Fehler.

Ergebnis: Das Modul beginnt, die Pufferwerte auf die physischen Ausgangskanäle einzustellen.

Handhabung des Oversampling-Ausgangspuffers am Modul

Das TM5SDM8DTS-Modul hat einen Kreispuffer mit 256 Einträgen für jeden Oversampling-Ausgangskanal.

In jedem 1/8 Zyklus wechselt die Oversampling-Einheit zum nächsten Eintrag im Puffer und kopiert die Pufferposition in die E/A mit Abbild OversampleInputCycle, wenn OversampleEnable in der OversampleControl) gesetzt wird.

Um neue Werte in den Puffer zu schreiben, muss der OversampleOutputCycle-Wert eingestellt werden.

Der Wert ist die Pufferadresse, die dazu bestimmt ist, die Ausgangsdaten aufzunehmen.

Zusätzlich muss OversampleOutput0xSample1_8 mit den Ausgangswerten gefüllt werden, um an diese Pufferadresse zu schreiben.

Die Zieladressen, die dem OversampleOutputCycle bereitgestellt werden, dürfen die aktuelle Adresse +128 nicht überschreiten.

Dies wird Oversampling-Ausgangsfenster genannt.

Wenn der OversampleOutputCycle größer ist als die derzeitige Pufferadresse +128, signalisiert das Modul einen OutputCopyError.

Wird OversampleControlCopyActive gesetzt, dann schreibt die Einheit den Wert des derzeitigen Eintrags in den physischen Ausgangskanal und kennzeichnet den Eintrag als Verwendet'

Wenn die Ausgangseinheit zu einem Eintrag gelangt, der als Verwendet' gekennzeichnet ist, und OversampleControlCopyActive (in der OversampleControl) gesetzt wurde, setzt die Ausgangseinheit den physischen Ausgangskanal auf 0 und signalisiert ein OutputControlError.

HINWEIS: Das Fehler-Flag wird ebenfalls ausgegeben, wenn es gesetzt wurde und Sie das Setzen des Flags während der Programmausführung wieder aufheben.

Beispiel

Die folgende Grafik zeigt ein Beispiel für die Handhabung von OversampleInputCycle / OversampleOutputCycle und OversampleOutput0xSample1_8.

  • Nach dem Setzen von OversampleEnable auf 1 beginnt das Modul, die derzeitige Pufferposition in die Echtzeitdaten (in Zyklus n–1) zu kopieren.

  • Die Echtzeitdaten werden vom Sercos III-Master in Zyklus n gelesen.

  • Dann sind die Daten im nächsten Task-Zyklus verfügbar.

  • Die Task berechnet dann die Pufferposition für die Sample-Daten mittels OversampleOutputCycle = OversampleInputCycle + 80.

  • Zusätzlich werden die Sample-Daten OversampleOutput0xSample1_8 für den jeweiligen Ausgangskanal mit einem Muster eingestellt.

  • Diese Daten werden in die nächsten Sercos III-Echtzeitdaten kopiert.

  • Die Daten sind einen Zyklus später im Buskoppler und im Modul verfügbar.

  • Dann kopiert das Modul acht Bits OversampleOutput0xSample1_8 an die Position OversampleOutputCycle im Puffer.

HINWEIS: Sie müssen die Anzahl an Zyklen berechnen, die abzuwarten sind, bevor Sie das OversampleControlCopyActive-Bit im OversampleControl-Byte setzen. Wie der Beispielgrafik zu entnehmen ist, lautet die Formel folgendermaßen: Anzahl der Zyklen, die vor Setzen des Bits OversampleCopyActive auf 1 abzuwarten ist = (OFFSET - (5 Zyklen x 8 Einträge pro Zyklus)) / 8 Einträge pro Zyklus

Verwendung von OversampleInput/OutputCycle

Datenfluss der Pufferadresse + Sample-Daten

Task für die Handhabung der Oversampling-Ausgänge

RTP

(Real-Time Process) Echtzeitprozess

MDT

(Master Data Telegram) Master-Daten-Telegramm

AT

(Acknowledged Telegram) Quittiertes Telegramm

sIII RT data

Sercos III-Echtzeitdaten

BC RT data

Buskoppler-Echtzeitdaten (Sercos III-Buskoppler TM5NS31)

Slice RT data

Echzeitdaten der TM5SDM8DTS-Geräte

Überprüfen Sie Folgendes:

  • OversampleControlCopyActive ist nicht aktiviert, bevor die Ausgangseinheit eine Pufferadresse 83 erreicht, da sonst ein OutputControlError erkannt wird.

  • OversampleOutputCycle ist nicht geringer als OversampleInputCycle + 56.

    Diese Zeit wird für das Lesen im OversampleInputCycle aus der Einheit in das Modul -> Slice RT data -> BC RT data -> sIII RT data -> von Task-Prozessdaten und für das Zurückschreiben im OversampleOutputCycle in die Oversampling-Einheit der Module benötigt.

  • Der OversampleOutputCycle ist nicht größer als die aktive Eintragsposition der Pufferadresse +128, ansonsten wird ein OutputCopyError erkannt.

TM5-Buseingangsverzögerung

Für die Handhabung der Oversampling-Ausgänge muss die Verzögerung zwischen der Statusspeicherung der Eingänge von der Hardware und dem Beginn des nächsten Sercos-Zyklus bekannt sein.

Diese Verzögerung in µs wird im TM5-Buskoppler-Parameter TM5BusInputDelay nach dem Sercos-Phasenhochlauf angezeigt.

Der Parameter TM5BusInputDelay im Objekt des TM5-Buskopplers (TM5NS31) in der Gerätebaumstruktur zeigt die Verzögerung zwischen der Speicherungszeit des Eingangsstatus und dem Beginn des nächsten RTP-Prozess-Zyklus.

Die Länge eines TM5-Zyklus muss dem Ergebnis des Parameters hinzugefügt werden, wenn die Eingangsverzögerung am Modul berechnet werden muss, da das TM5SDM8DTS-Modul einen extra TM5-Zyklus braucht, damit der Status der Eingangsdaten gespeichert werden kann.

Dies hängt von der Hardware dieses Moduls ab. Um die Zeit zu erhalten, in der der von Ihrem Programm gelesene OversampledInputCycle aktiv war, kann man die Formel verwenden Sie folgende Formel:

TM5BusInputDelay + [TM5-Zykluszeit in µs]

Steuerung der Oversampling-Ausgänge

Die Oversampling-Ausgänge unterstützen die Ausgabe eines 8-Bit-Musters pro Zyklus.

Jedes Bit stellt 1/8 eines Zyklus dar und wird für die Zykluszeit in µs / 8 auf aktiv gesetzt.

Für die Handhabung der Oversampling-Ausgänge sind die folgenden E/A-Variablen von Bedeutung:

OversampleControl

OversampleControl

  • OversampleEnable

  • OversampleControlCopyActive

Mit den OversampleControl-Bits wird der Oversampling-Mechanismus des Moduls aktiviert.

Für die Aktivierung der Funktionalität muss Bit 0 (OversampleEnable) gesetzt werden.

Nach dem Setzen von Bit 0 auf 1 beginnt das Modul von seinem Kreispuffer zu lesen.

Das Modul kopiert seine Position im Puffer in die OversampleInputCycle-Variable.

Setzen Sie dann OversampleOutputCycle in jedem Zyklus auf OversampleInputCycle + OFFSET.

Das Modul liest in jedem Zyklus acht Bits auf dem Puffer. Dies führt zu einer Erhöhung um 8 im OversampleInputCycle pro Zyklus.

Mit dem zyklischen Betrieb wird die Pufferadresse ebenso um acht erhöht (siehe das Beispiel).

ErrorState / ErrorQuit

ErrorState

  • OutputControlError

  • OutputCopyError

Das OutputControlError-Bit wird gesetzt, wenn das Modul nicht rechtzeitig neue Daten empfängt, was bedeutet, dass ein Bit, das bereits ausgegeben wurde, erneut ausgegeben würde. Das OutputCopyError-Bit wird gesetzt, wenn die Oversampling-Ausgangsdaten nicht in den Ausgangs-Steuerungspuffer kopiert werden konnten. Detaillierte Informationen finden Sie unter Handhabung des Oversampling-Ausgangspuffers am Modul.

ErrorQuit

  • QuitOutputControlError

  • QuitOutputCopyError

Die Bits QuitOutputControlError und QuitOutputCopyError können verwendet werden, um die jeweiligen Fehler am Modul zurückzusetzen.

OversampleInputCycle / OversampleOutputCycle

Der OversampleInputCycle ist die Adresse im Puffer, an der die Oversampling-Einheit im Modul den letzten Bitwert liest.

Der OversampleOutputCycle ist die Adresse im Puffer, an die der OversampleOutput0xSample1_8 geschrieben werden.

OversampleOutput0xSample1_8

Die Parameter weisen folgendes physisches Kanalabbild am Modul auf (siehe Allgemeine Informationen zu TM5SDM8DTS):

Parameter

Kanal

OversampleOutput01Sample1_8

3

OversampleOutput02Sample1_8

4

OversampleOutput03Sample1_8

7

OversampleOutput04Sample1_8

8