Signalgenerator TC3 Nachkommastellen Mikrosekunden Bereich

Automan5000

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Ich bin neu in TwinCAT 3 und würde gerne den FB_CTRL_SIGNAL_GERNATOR nutzen um ein 150Hz Sinus Signal zu erzeugen.
Die Zykluszeit ([FONT=&quot]tCylceDuration : TIME)[/FONT] bei 150Hz ist 6.666...ms. Blöderweise kann ich diese nicht in eine TIME variable einsetzten, da es sich um eine Dezimalzahl handelt?
Ich habe gesehen das LTIME1 Zahlen im Nanosekunden und Mikrosekunden Bereich zulässt. Diese kann ich dann aber nicht auf [FONT=&quot]tCylceDuration casten.

[/FONT]
Bedeutet das, dass ich mit diesen Signalgenerator keine Frequenzen erstellen kann, dessen Periodendauer in den Mikrosekunden Bereich geht?

Gibt es einen anderen Generator dafür oder alternative Lösungen?
Da ich ein Sinusoid erzeugen möchte könne ich ihn vermutlich abhängig der Zykluszeit einfach mit SIN berechnen?


Vielen Dank im voraus und Beste Grüße

AUTOMAN5000
 
Wie lang ist denn Deine Task-CycleTime?
Aus wie vielen Stufen soll Dein Sinus-Signal mindestens bestehen?

Wenn Du keine besondere Signalgenerator-Hardware hast, die das Signal erzeugt ohne daß das SPS-Programm dauernd eingreift, dann wird die gewünschte CylceDuration die obigen 2 Bedingungen beachten müssen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bedeutet das, dass ich mit diesen Signalgenerator keine Frequenzen erstellen kann, dessen Periodendauer in den Mikrosekunden Bereich geht?

Gibt es einen anderen Generator dafür oder alternative Lösungen?
Da ich ein Sinusoid erzeugen möchte könne ich ihn vermutlich abhängig der Zykluszeit einfach mit SIN berechnen?
Genau das bedeutet es, der Baustein verwendet TIME als Datentyp und da ist die kleinste Einheit 1ms. Beckhoff müsste hier einen neuen FB erzeugen der LTIME verwendet.
Interessant wäre aber auch, wie Harald schon gefragt hat, wie groß Deine Zykluszeit ist, weil das, selbst wenn Du selber einen FB schreiben würdest, die Genauigkeit beeinflussen würde.
 
Die Zykluszeit (tTaskCycleTime) steht aktuell bei 1ms für den FB_CTRL_SIGNAL_GERNATOR. Stimmt daran habe ich noch gar nicht gedacht, also bin ich bereits dort Beschränkt.
An der Stelle kommt mit eine weitere Frage:

Sobald ich unter PlcTask die cycle ticks so verändere, dass ich unter 10ms komme erhalte ich die Meldung: " Cycle time of at least one PLC task differs. Unabte to login/download. "
Es gibt aber nur diese eine Task. Wo muss ich den Wert sonst noch ändern?

Und:

Wie kann es sein, dass die tTaskCycleTime in B_CTRL_SIGNAL_GERNATOR eine 1ms akzeptiert obwohl die PlcTask 10 ms ist?



 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sobald ich unter PlcTask die cycle ticks so verändere, dass ich unter 10ms komme erhalte ich die Meldung: " Cycle time of at least one PLC task differs. Unabte to login/download. "
Es gibt aber nur diese eine Task. Wo muss ich den Wert sonst noch ändern?
Kleine Ursache, große Wirkung. Durch Änderung der Cycle Ticks oder auch der Base Time hast Du die Konfiguration geändert und die muss erst aktiviert werden.
 
Für einen Signalgenerator, wie Du den hier planst, kommt nur noch die XFC-Technologie in Frage, wenn Du brauchbare Ergebnisse brauchst. Zum Beispiel kannst Du mehrere Signalpegel pro SPS-Zyklus in eine EL4732 übertragen. Diese Klemme fährt dann die Stützpunkte ab, bis Sie im nächsten SPS-Zyklus den nächsten Satz Signalpegel bekommt.

Die Verwendung steuerbarer Signalgeneratoren kann eine preiswerte Alternative sein.
 
Zurück
Oben