TIA PWM Verständnisproblem

Hulk

Level-1
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
S7 1200 mit Signalboard 2DI/2DQ

Ich möchte ein PWM Signal erzeugen.
Folgendes habe ich versucht:

1) Einen der 4 Kanäle als PWM deklariert und aktiviert
2) Änderung der Zykluszeit während der Laufzeit aktiviert
3)Zykluszeit 1000ms, anfängliche Impulszeit 100, Zykluszeit 1000ms
4) Eine Hardwareausgang zugewiesen (vom Signalboard)
5) Im OB1 habe ich ein PWM_CTRL platziert: PWM Eingang = 265 (Hardware_ID); ENABLE=True

Keine Fehler über die Beobachtungstabelle des PWM_DB.

Müßte ich nicht ein Flackern am Ausgang sehen? Da tut sich nichts.
 
Ich weiß nicht, ob die Ausgangs-LED auch den Status bei den technologischen Funktionen anzeigt, doch Du könntest den von der PWM verwendeten Ausgang auf einen normalen DI verdrahten und dann die LED des DI beobachten.

Harald
 
Hab da mal ne Nachfrage:

1.) Allgemein/Aktivieren angehagt ?
2.) Parametrierung/Impulsoptionen:
- Signalart: PWM
- Zeitbasis: Milisekunden
- Impulsdauerformat: Tausendstel / S7-Anzeigeformat ...
- Zykluszeit: 1000 µs !!!
- Anfängliche Impulsdauer: (besser auf 0 setzen)
- Änderung der Zyskluszeit zur Laufzeit erlauben: angehagt
3.) Hardwareausgänge:
- Impulsausgabe: (Ausgang Signalboard)
4.) E/A-Adressen:
- Anfangsadresse: xx
- Organisationsbaustein: OB1/MC-Servo oder änliches, es geht auch Automatische aktualisierung
5.) Einen Wert auf Ausgangswort xx ( Bei Impulsformat Tausendstel: 0-999 !!!; S7-Anzeigeformat: 0-27647 !!!
6.) Aufruf CTRL_PWM mit richtiger HW-Adresse und Enable

Dann sollte es gehen.
Den Ausgang kann man sehen... (Verwende die mit 20kHz)

Sorry war noch nicht fertig mit schreiben
 
Zuletzt bearbeitet:
Wenn deine Ausgangsadresse im Punkt 4 1008 ist dann eine Variable anlegen "AW1008 Typ: Int"

In diesem Ausgangswort steht dann der Sollwert für die Pulsbreite. 0 = 0% und 999 bzw. 27647 = 100%
 
Hi,

ich lerne nur nebenbei. Deshalb dauert es etwas.
Also das übertrage des Wertes per move in AW1008 funktioniert. Aber ich messe nur Mist:)
Prinzipiell stellt sich mir aber vorab die Frage der Hardwaresetting:
Der maximale Wert der Impulsbreite ist 100 Mikrosekunden bei mir.
Ich hätte aber für Demonstrationszwecke zum Beispiel 1000Millisekunden Zykluszeit. Warum kann ich dann nicht auch direkt größere Impulsbreiten angeben?

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also dein Ausgangsbereich ist 6Byte groß.
In den ersten 2 Byte steht das Tastverhältnis in Form der PWM High "Zeit"
in den restlichen 4Byte steht die Zykluszeit: (Ausgangsvariable deklarieren als DInt)

in dem DInt steht die Zykluszeit in µs (1s = 1000000)
Änderung der Zykluszeit zur Laufzeit hast du ja angehagt sollte also gehen.

Edit:

Ist warscheinlich das bei dir nur Müll rauskommt wenn das Ausgangsdoppel auf 0 steht...
Sorry habe da nicht dran gedacht.
 
Zuletzt bearbeitet:
Hi.
Sorry für die späte Rückmeldung.
Ich habe es zum Laufen bekommen. Werde mir demnächst noch ein besseres Oszilloskop bestellen, dann wird das Messen einfacher.
 
Zurück
Oben