PWM -Periodendauer und Tastverhältnis ändern zum DC‑Startzeitpunkt T1
Die PWM-Periodendauer und das Tastverhältnis können zur Laufzeit, bei Erreichen eines DC‑Zeitstempels, auf vorgegebene Werte gesetzt und damit zur Synchronisation mit anderen Prozessen genutzt werden.
Die vorgegebenen Werte können, wie im Folgenden beschrieben, aktiviert werden (n = 0 für Kanal 1, n = 1 für Kanal 2).
Vorgabe Tastverhältnis, Periodendauer und Startzeit
- 0x70n0:11 „PWM output“:
zur Veränderung des Puls-Pausen-Verhältnisses wird in „PWM output“ die prozentuale Einschaltdauer (Duty cycle: TON / T) vorgegeben [0 … 100 %]. Die Puls‑Pause TOFF ergibt sich als Differenz zur 100 % Pulsdauer automatisch.
Gewünschtes Puls-Pausen-Verhältnis (Duty Cycle) | Wertebereich in hex | Wertebereich in dez |
---|---|---|
100 % | 7FFF | 32767 |
50 % | 3FFF | 16383 |
0 % | 0 | 0 |
- 0x70n0:12 „PWM period“:
Vorgabe der PWM Periode in µs (entspricht einer Frequenzvorgabe).
Die Auflösung des Ausgangssignals ist abhängig von der Frequenz- bzw. Periodendauervorgabe.
Der gültige Wertebereich entspricht in diesem Modus:
Ausgabefrequenz: min. ca. 20 Hz, max. 300 kHz - In Abhängigkeit der eingestellten Frequenz ändert sich die Anzahl der Schritte. Mit kürzerer Periodendauer bzw. steigender PWM-Frequenz sinkt die Auflösung.
Die Auflösung bzw. Schrittweite kann im CoE Objekt 0x80nE:01 „Timer resolution“ ausgelesen werden.
![]() | Gemeinsame Vorgabe der Parameter „PWM output“ und „PWM period“ Um einen zeitsynchronen Übergang der PWM‑Parameter zu gewährleisten, ist die Übergabe bzw. Änderung der Parameter (0x70n0:11 „PWM output“, 0x70n0:12 „PWM period“) immer als Paar vorzunehmen. |
- 0x70n0:13 „DC start time“ (T1)
Entspricht der T1 Zeit, es ist eine 64‑Bit DC Startzeit in ns.
Die Zeit in 0x6001:11 „Sys Time“, entspricht dabei der System‑Zeit des µControllers und kann als Anhaltspunkt genutzt werden. Diese Zeit ist jedoch Jitter‑behaftet. - 0x7000:05 „DCSyncOutCh2“:
Erfolgt keine PWM-Ausgabe an Kanal 2 (PDOs für den zweiten Kanal sind nicht zugeordnet), kann dieser für eine DC‑Synchrone Ausgabe genutzt werden. Nach Aktivierung über 0x7000:05 „DCSyncOutCh2“ = TRUE, wird mit jeder neuen gültigen Startzeit der Ausgang von Kanal 2 mit dem DC‑Event und dem Umschalten der PWM‑Einheit getoggelt.
Übernahme der Werte sofort oder nach Ende der laufenden Periode
Wann die vorgegebenen Werte übernommen werden sollen, wird festgelegt über
- 0x70n0:03 „DC Immediately“ = TRUE (s. Beispiel 1)
Bei Erreichen eines DC-Zeitstempels erfolgt die vorgegebene PWM‑Ausgabe sofort.
Die laufende Periode wird abgebrochen. Dadurch treten Glitches bei der Ausgabe auf. - 0x70n0:03 „DC Immediately“ = FALSE (s. Beispiel 2)
Bei Erreichen eines DC-Zeitstempels erfolgt die PWM Ausgabe erst nach Fertigstellung der laufenden Periode. Somit erfolgt eine glitch‑freie Umstellung der PWM-Ausgabe.
Aktivierung der Übergabe, PWM-Ausgabe an- bzw. ausschalten
- Übergabe der Werte, PWM-Ausgabe anschalten
Die Übergabe der Werte ist abschließend über „Activate DC Start time“ zu bestätigen.
0x70n0:02 „Activate DC start time“ = TRUE
Bei gesetztem Bit wird mit jeder neuen DC‑Start-Zeit eine PWM‑Ausgabe mit den übergebenen Parametern (0x70n0:11 „PWM output“, 0x70n0:12 „PWM period“) initiiert. - PWM-Ausgabe abschalten
0x70n0:02 „Activate DC start time“ = FALSE
Die PWM‑Ausgabe wird bei laufender Periode gestoppt.
Bestätigung der übergebenen Werte
- 0x60n0:05 „Feedback PWM“ = TRUE, bei korrektem DC‑Event
Wird die gewünschte „DC start time“ (T1) erreicht, so wird dies über das Bit 0x60n0:05 „Feedback PWM“ bestätigt. Dieses Bit toggelt mit jedem korrekten DC‑Event und das nächste Event kann aktiviert werden. - 0x60n0:06 „Err. Start Time“, 0x80nE:04 „DC error counter“, bei Start-Zeit in der Vergangenheit
Liegt die eigenstellte „DC start time“ bereits in der Vergangenheit, so erfolgt die PWM‑Ausgabe sofort, unter Berücksichtigung der unter in 0x70n0:13 „DC Immediately“ eingestellten Bedingungen. - Die Übernahme wird über 0x60n0:06 „Err. Start time“ = TRUE gemeldet und
- der Fehlerzähler wird unter 0x80nE:04 „DC error counter“ inkrementiert.
- Das Rücksetzen des Fehlerzählers und quittieren der Fehlermeldung erfolgt über das Setzen von
0x70n0:04 „ErrAck“ = TRUE.