-> Hier kostenlos registrieren
Hallo, ich möchte auf einer S7-313C Impulse mit einer variabler Länge von etwa 100 - 200ms mit einer hoher Genauigkeit von +/- 0,1ms (?), im Abstand von >= 1s, ausgeben. Wichtig ist nicht der genaue Startzeitpunkt, dieser darf ruhig von der Zykluszeit abhängig sein, sondern nur die Länge des Impulses.
Mein Lösungsansatz ist die Pulsweitenmodulation zu benutzen. Also in der Hardwarekonfiguration den Zähler der CPU in Kanal 0 auf Pulsweitenmodulation gestellt, Betriebsparameter auf S7 Analogwert mit der Zeitbasis 0,1ms, Periodendauer 10.000, kein HW-Tor.
Die Periodendauer soll eigentlich keine Rolle spielen, sondern nur verhindern dass ungewollt ein zweiter Impuls kommt, bevor das Softwaretor wieder geschlossen ist.
Im Programm dann die Pulsweitenmodulation mit dem SFB49 ansteuern. Die gewünschte Impulslänge auf den Eingang OUTP_VAL (DBx.DBW6) und dann das Softwaretor SW_EN (DBx.DBX4.0) auf 1 setzen. Nachdem der Impuls abgelaufen ist, STS_DO = 0 (DBx.DB16.2) das Softwaretor wieder schließen.
Ist es richtig, dass dann ein Impuls der Länge OUT_VAL *0,1ms, unabhängig von der Zykluszeit, am Ausgang DO+0.0 der 313C ausgegeben wird, oder muß ich sonst noch was beachten?
Nebenfrage: Wenn Kanal 0 mit Pulsweitenmodulation ohne Hardwaretor konfigiuriert ist, können dann alle Eingänge außer DI+0.1 frei benutzt werden?
Ich hoffe dass ich keinen mit dieser umfangreichen Frage erschlagen habe, vielleicht hätte man das eine oder andere einfacher oder besser strukturiert darstellen können.
Vielen Dank für allle ernstgemeinten Antworten.
Gruß
Michael
Mein Lösungsansatz ist die Pulsweitenmodulation zu benutzen. Also in der Hardwarekonfiguration den Zähler der CPU in Kanal 0 auf Pulsweitenmodulation gestellt, Betriebsparameter auf S7 Analogwert mit der Zeitbasis 0,1ms, Periodendauer 10.000, kein HW-Tor.
Die Periodendauer soll eigentlich keine Rolle spielen, sondern nur verhindern dass ungewollt ein zweiter Impuls kommt, bevor das Softwaretor wieder geschlossen ist.
Im Programm dann die Pulsweitenmodulation mit dem SFB49 ansteuern. Die gewünschte Impulslänge auf den Eingang OUTP_VAL (DBx.DBW6) und dann das Softwaretor SW_EN (DBx.DBX4.0) auf 1 setzen. Nachdem der Impuls abgelaufen ist, STS_DO = 0 (DBx.DB16.2) das Softwaretor wieder schließen.
Ist es richtig, dass dann ein Impuls der Länge OUT_VAL *0,1ms, unabhängig von der Zykluszeit, am Ausgang DO+0.0 der 313C ausgegeben wird, oder muß ich sonst noch was beachten?
Nebenfrage: Wenn Kanal 0 mit Pulsweitenmodulation ohne Hardwaretor konfigiuriert ist, können dann alle Eingänge außer DI+0.1 frei benutzt werden?
Ich hoffe dass ich keinen mit dieser umfangreichen Frage erschlagen habe, vielleicht hätte man das eine oder andere einfacher oder besser strukturiert darstellen können.
Vielen Dank für allle ernstgemeinten Antworten.
Gruß
Michael