Ja habe ich. Die Frequenzmessung nutze ich auch, und die funktioniert auch.
Nur ist eine Frequenzmessung halt keine „Bestimmung des Tastverhältnisses“.
Direkt scheint sich das Tastverhältnis nicht bestimmen zu lassen.
Aber mit einer Trick-Schaltung könnte man das realisieren (Achtung, nicht getestet, aber laut Handbuch sollte es so funktionieren):
Du benötigst dazu nur ein externes Taksignal mit einer höheren Frequenz als dein Signal das du messen willst, beispielsweise 1 kHz. Wenn du eine Steuerung mit PWM Transistorausgängen hast, kannst du dir dieses Signal mit der SPS selber generieren.
Dann konfigurierst du den Zähler als "Einphasenzähler mit externer Richtungsumkehr.
Auf Eingang 1 legst du den Takt vom Ausgang der SPS, mit z.B. 1 kHz.
Auf Eingang 2 legst du dein Messsignal. Dieser Eingang legt die Zählrichtung des Zählers fest.
Daraus ergibt sich die gewünschte Funktion. Wenn dein Messignal high ist zählt der Zähler vorwärts, ist es low so zählt er rückwärts. Bei einem Tastverhältnis von 50% sollte der Zähler somit bei 0 stehen, bei kleiner als 50% im negativen und bei größer 50% im positiven Bereich. Zusammen mit der Frequenz des Taktsignals kannst du aus den Zählerständen die Zeiten für high und low bestimmen.
Du wirst aber über eine Mindestanzahl an Perioden messen müssen, weil du es nicht hinbekommst den Zähler direkt auf den Anfang einer Periode zu triggern. D.h. es würde zwar prinzipiell über den Eingang 3 gehen (welcher den Zähler zurücksetzt), aber du bekommst den Zähler bei 30 Hz wohl nicht schnell genug im Programm ausgelesen.
Wenn es die Aktualisierungsrate zulässt, würde ich entsprechend der gewünschten Genauigkeit lange messen und dann mitteln.