Wie können wir helfen?
PWM
PWM – Pulsweitenmodulation – 15 Hz bis 10 kHz Periode
PWM ist die Abkürzung für „Pulse Width Modulation“ (Pulsweitenmodulation). Pulsweitenmodulation ist eine sehr leistungsfähige Funktion, die häufig zur Steuerung der Positionierung von Servoventilen verwendet wird. Sie wird auch für die Steuerung von Laserimpulsen, die Bewegungssteuerung, die Steuerung der Lichtintensität und andere Anwendungen verwendet. Das Einzelimpulsmerkmal der Funktion ist für jeden Bedarf an Einzelimpulsausgängen geeignet.
Ein impulsbreitenmoduliertes Ausgangssignal hat eine Periode und eine Einschaltzeit oder ein Tastverhältnis innerhalb dieser Periode. Eine typische Servoventilsteuerung könnte beispielsweise eine Periode von 20 Millisekunden haben. Die Ventilstellung wird durch die „Einschaltzeit“ des Ausgangsimpulses innerhalb dieser Periode gesteuert. Das Ventil kann mit einer Einschaltzeit von 1 Millisekunde vollständig geschlossen und mit einem Impuls von 3 Millisekunden vollständig geöffnet werden (die tatsächlichen Zeiten werden vom Ventilhersteller festgelegt). Die Teilöffnung (5 %, 10 %, 53 % usw.) wird im Allgemeinen durch einen „Einschaltimpuls“ gesteuert, der proportional zwischen den Grenzwerten für die vollständige Öffnung und die vollständige Schließung liegt. Standard-PWM-Signale wiederholen sich bei jedem Periodeninkrement.
| Die Abbildung auf der rechten Seite zeigt ein PWM-Ausgangssignal. Die meisten Velocio PLC-Digitalausgänge sind „sinkende“ Transistorausgänge – wenn der Ausgang eingeschaltet ist, sinkt der Ausgang und zieht das Signal nach unten. | ![]() |
| Die nächste Abbildung zeigt einen Standard-PWM-Ausgang (oben) und einen Einzelimpuls-PWM-Ausgang (unten). Ein Einzelimpuls-PWM-Ausgang ist für seine definierte „Einschaltzeit“ innerhalb der PWM-Periode aktiv. Er wiederholt sich nicht. Wenn Sie einen weiteren Impuls ausgeben möchten, muss Ihr Programm einen weiteren „Start PWM pulse“-Block ausführen. | ![]() |
PWMs Anwendungsgrenzen : PWMs können auf jeden digitalen Ausgang angewendet werden, der physisch auf dem SPS-Modul vorhanden ist, das das Anwendungsprogramm enthält. Das bedeutet, dass jeder Ace- oder Branch-Digitalausgang so programmiert werden kann, dass er ein PWM-Signal über das Anwendungsprogramm ausgibt. Jede Branch-Expansion-SPS, die über ein eigenes Programm (eingebettetes Unterprogramm) verfügt, kann ein PWM-Signal über das eingebettete Unterprogramm ausgeben. Branch-Erweiterungseinheiten, die als Erweiterungs-IO verwendet werden, können keine PWM-Signale ausgeben.
Jede Kombination von digitalen Ausgängen, die in der SPS mit dem Programm enthalten sind, kann PWM-Ausgangssignale haben. Jeder aktive Ausgang hat seine eigene „Einschaltzeit“. Die Periode ist jedoch für alle PWM-Signale auf der SPS-Einheit gleich.
PWM in vBuilder
PWM ist eine Hintergrundaufgabe, die, einmal ausgeführt, weiterhin Signale an den Ausgang sendet. Rufen Sie diese Funktion nicht bei jedem SPS-Zyklus auf, sondern nur einmal, wenn Sie ihre Parameter ändern müssen.
Wenn Sie einen PWM-Block in Ihrem Programm platzieren, wird ein Dialogfeld wie das unten abgebildete angezeigt.
In diesem Dialogfeld können Sie die PWM-Periode einstellen, den PWM-Betrieb starten (fortsetzen/anpassen) oder die PWM anhalten.
PWM-Periode einstellen
| Die Periode ist für alle PWMs in der SPS gleich. Die Periode wird eingestellt, indem man das Optionsfeld „Set Period“ auswählt und dann entweder eine Variable mit ui16-Tagnamen auswählt oder eine Zahl zwischen 100 und 65535 eingibt. Das Timing wird in Mikrosekunden angegeben (1 Million Mikrosekunden = 1 Sekunde). Das bedeutet, dass die PWM-Periode von 100 Mikrosekunden bis etwas über 65 Millisekunden reichen kann.
Wenn die Periode auf einen Wert von weniger als 1 Millisekunde eingestellt ist (eine Einstellung von weniger als 1000), ist nur ein PWM-Ausgang aktiv. Der aktive PWM-Ausgang ist derjenige mit der kürzesten Einschaltdauer. Wenn die Periode auf 1 Millisekunde oder mehr eingestellt ist, haben alle für PWM definierten Ausgänge aktive Signale. Um die Periode einzustellen, wählen Sie Periode einstellen, wählen Sie eine ui16-Zahl (vorzeichenlose 16-Bit-Ganzzahl) aus oder geben Sie sie ein und klicken Sie auf OK. |
|
PWM-Start
| Die Start-Auswahl definiert den Ausgang und die Einschaltzeit für das PWM-Signal. Sie bietet auch die Möglichkeit, zwischen einem kontinuierlichen und einem einmaligen Impuls zu wählen. Wenn die PWM für ein PWM-Signal mit variabler Einschaltzeit verwendet werden soll, wird der Wert der Einschaltzeit bei jeder Ausführung des Blocks mit der nächsten Periode aktualisiert.
In der Auswahl Output Pin müssen Sie einen Namen für einen digitalen Ausgang auf der SPS eingeben. Im Dialogfeld können Sie einen beliebigen Bit-Tagnamen auswählen. Wenn der gewählte Tagname jedoch nicht der eines digitalen SPS-Ausgangs ist, wird die PWM nicht ausgeführt. Wenn Sie eine PWM in einem Unterprogramm starten, muss der Tagname ein Verweis auf einen digitalen Ausgang der SPS sein. Die Einschaltzeit kann ein beliebiger ui16-Wert (0-65535) oder eine Tagname-Variable sein. Wenn Sie Kontinuierlicher Betrieb wählen, werden die PWM-Impulse fortgesetzt, ein Impuls pro Periode, bis Sie einen Stop-PWM-Block für den Ausgang ausführen. Wenn Sie Einzelimpuls wählen, wird in der nächsten Periode ein Impuls ausgegeben. Nach Ablauf der Periode wird der Ausgang entsprechend dem programmierten digitalen Ausgangszustand für diesen Ausgang gesetzt. |
![]() |
PWM Stopp
| Um einen Block zum Anhalten eines PWM-Ausgangs zu platzieren, wählen Sie einfach das Optionsfeld Stop und den Namen des Ausgangs aus. Wenn Sie den Stop-Block in einem Unterprogramm platzieren, platzieren Sie die Referenz auf den Ausgang als Output Pin | ![]() |
PWM-Probleme
PWM verwendet Timer für die Periode und die Einschaltzeit. Da ein Mikrocontroller nur über eine begrenzte Anzahl von Timern verfügt, verwenden wir 2 Timer, um PWMs für bis zu 24 digitale Ausgänge zu erzeugen. Das bedeutet, wenn das Ausschalten bei zwei verschiedenen PWM-Signalen zur gleichen Zeit erfolgen soll, muss das eine auf das andere warten (eine gewisse Anzahl von Mikrosekunden). Wenn beide PWMs kontinuierlich eingestellt sind, sollte es keinen Jitter geben, da die Sequenz zwischen den beiden PWMs die gleiche ist.
Wenn Ihr Programm die beiden PWMs ständig startet, dann kann das Jitter verursachen. Die PWM-Funktion führt eine Tabelle der aktiven PWMs. Die PWMs werden von der kürzesten zur längsten Zeit sortiert. Wenn das Kundenprogramm die PWMs bei jedem Scan startet und die Zeiten für zwei oder mehr PWM-Ausgänge gleich sind, wird die Tabelle ständig neu sortiert. Wenn sie eine PWM nur dann neu starten können, wenn sich die Einschaltzeit ändert, sollten sie weniger Jitter sehen.
PWM mit einer 100%igen Einschaltzeit
Ich erhalte eine doppelte Periode, wenn ich eine 100% OnTime habe!
Wir machen PWM in Mikrosekunden. Es gibt eine Grenze für die Anzahl der CPU-Befehle, die in einer Mikrosekunde auftreten können. Die PWM-Funktion verwendet zwei Timer – einen für die Periode und einen für das nächste Ende des Einschaltzyklus. Am Ende der Periode gibt es einen Wettlauf zwischen diesen beiden Zeitgebern. Wenn die nächste Periode vor der Zyklus-Aus-Zeit beginnt, verpasst die PWM einen Zyklus. Wir empfehlen daher , die Einschaltzeit auf die Periodenlänge minus 2 oder 3 Mikrosekunden zu begrenzen.
Mehrere PWMs wirken sich ebenfalls auf diesen Wert aus. Wenn Sie mehrere PWMs gleichzeitig laufen lassen, sollten Sie die On Time um ein oder zwei Mikrosekunden verringern.
Wir empfehlen, eine minimale Einschaltzeit von etwa 2 Mikrosekunden zu verwenden. Das Problem tritt seltener beim Mindestimpuls auf, kann aber auch dort auftreten.
Es ist kein Fehler. Es liegt an der Physik. Es gibt Grenzen dafür, was in einer wirklich kurzen Zeitspanne passieren kann.
PWM auf dem Oszilloskop
mit einer Periode von 350 Mikrosekunden und einer „Einschaltzeit“ von 175, 115 und 35 Mikrosekunden
Ein 10-KOhm-Pull-up-Widerstand wird zwischen die 5 V (letzter Pin) und den Ausgang (Pins 1 bis 7) geschaltet. Es wird eine Messung zwischen dem Ausgang und GND (erster Pin 0) durchgeführt.
|
„Einschaltzeit“-Wert 175 Mikrosekunden = 50% der Periode
|
|
|
„Einschaltzeit“-Wert 115 Mikrosekunden = 33 % des Zeitraums
|
![]() |
|
„Einschaltzeit“-Wert 35 Mikrosekunden = 10 % des Zeitraums
|
![]() |









