TIA Auswertung eines PWM-Signals mit S7-1200 – Machbarkeit und Umsetzung

semiswitch

Level-2
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich möchte gerne ein PWM-Signal mit einer Frequenz von 408 Hz und einem minimalen Duty Cycle von 72 Mikrosekunden auswerten. Ich habe das Dokument zu Anwendungsfällen für High-Speed-Counter (HSC) mehrmals durchgelesen, bin mir aber immer noch unsicher, ob eine Auswertung in diesem Fall überhaupt möglich ist.

Hintergrund des Projekts ist die Überprüfung eines Bauteils, das ein 0-10V-Signal in ein PWM-Signal umwandelt. Die Funktion dieses Bauteils soll also durch die Erfassung des Duty Cycles und die gleichzeitige Messung des analogen Eingangssignals überprüft werden.

Als CPU möchte ich eine S7-1200 verwenden. Die genaue Modellauswahl steht noch nicht fest. Für meinen Machbarkeitstest habe ich aktuell eine CPU 1214C DC/DC/DC (6ES7 214-1AG40-0XB0) im Einsatz.
 

Anhänge

Das wird nichts. Selbst wenn man mit Hilfe eines externen Taktgebers das Duty Cycle per Tormessung zustande bringen würde, müsste man die Werte innerhalb von weniger als 2,5ms auswerten und den Zähler resetten.
Das ist nichts für eine SPS.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Okay, schade. Ich hatte noch zwei weitere Überlegungen, um dies zu realisieren. Die eine ist, das Signal mit einem Optokoppler auszukoppeln und anschliessend auf einen Analogeingang zu legen und den RMS-Wert zu prüfen. Das wäre allerdings nicht sehr sauber. Die andere Idee, die ich hatte, war, mit einem ESP32 die Signalauswertung zu machen und dann einfach ein True-Signal an die SPS zu schicken. Wären diese Überlegungen einen genaueren Blick wert oder wird das auch nichts?
 
@PN/DP Der Aktuelle Prüfablauf sieht so aus das die Spannung in 1V schritten von 0-10V angehoben wird. Diesen Prozess sollte ich mindestens abbilden können.
Was noch anzumerken ist das das signal bei 0V eben 72us Lang ist und bei 10V 1225us also es nutz quasi keine 50% des Signales
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Idee zum "groben" Messen der PWM-Pulslänge (Duty Cycle):
Mit CTRL_PTO eine Frequenz von 100 kHz erzeugen (entspricht Periodendauer 10µs) und den zugehörigen Digitalausgang auf einen schnellen Zähleingang verbinden, und das PWM-Signal als Hardwaretor verwenden. Mal nachrechnen: wäre das hochaufgelöst genug?
Ich kenne die S7-1200 allerdings nicht genau genug, ob/wie man da schnell genug den Zählerstand auslesen kann - Interrupt bei Hardware-Tor schließen? Zähler rücksetzen muss man nicht, man kann ja immer die Differenz zum Zählerstand vorher bilden.

Schaue mal hier, da gab es eine ähnliche Aufgabe
Es wird vermutlich einfacher, wenn Du eine PWM zu 0-10V Konverter Platine für ein paar EUR dazwischen schaltest.
 
Signal im Optokoppler auskoppeln.

Damit dann einen Elko mit parallelgeschaltetem Widerstand und davor noch einen Vorwiderstand.

Wenn das halbwegs vernünftig dimensioniert ist, hast du ein Spannungssignal das du mit einem normalen AI aufnehmen kannst.

Da brauchts nichs schnelles, . . .
 
Einfach das PWM-Signal mit einem RC-Tiefpass integrieren und die resultierende Spannung mit einem CPU-Analogeingang messen. Die Grenzfrequenz des Tiefpass muss wesentlich niedriger als die Frequenz des PWM-Signals sein.

Durch den Eingangswiderstand des Analogeingang (100kOhm) wir der Spannungspegel je nach Größe des Filter-R etwas reduziert, evtl. dann einen Tiefpass mit OPV nutzen.
 
Das Signal hat 60V und der Strom den das Bauteil Liefern kann müsste etwa 3A sein. Für die 60V binn ich noch nicht sicher ob ich einen Optokoppler oder einen Spannungsteiler verwenden werde. Ich habe jetzt allerdings für den ersten Versuch das Signal mit der SPS erzeugt und die Frequenz auf 10Hz reduziert so scheint es mir mit der Fehlersuche leichter.
Noch eine Frage, wenn ich den PWM ausgan sehr schnell einstelle, ist es dann normal das ich kein Leuchten der LED am Ausgang sehe auch bei 50% Dutycycle?
 
Zu der Idee in #6 findet man bei Siemens ein detailiertes Anwendungsbeispiel mit Dokumentation und Programm.

S7-1200: Anwendungsbeispiele für schnelle Zähler (HSC)

Welche elektrischen Werte (Spannung, Strom) liefert denn das PWM-Signal? Man muss es ja irgendwie sauber auf den SPS-Eingang bringen.
Ich hatte dies ja oben auch schon verlinkt und jetzt mal probeweise so umgesetzt, die Auflösung müsste genug genau sein. Allerdings stehe ich jetzt an. Zuerst hatte ich gleich alles so konfiguriert wie ich es final machen will allerding konnte ich kein zählen feststellen. Ich habe die Frequenz des zu messendes signal jetzt auf 0.1Hz gesetz den Puls welcher das zählen unterstütz auf 1Hz so das ich die werte mit dem Multimeter messen kann und Hardware Fehler auschliessen kann. Meine frage ist jetzt, muss dieser HSC auch irgendwie aktiviert werden wie ein Puls ausgang oder so, oder sollte dieser immer zählen bis man ihn rücksetzt? ich habe jetzt den CRTL_HSC block verwendet doch dies änderte nichts daran das der Zähler immer bei 0 bleibt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Top, das auslesn funktioniert nun nach einigen Umwegen, giebt es nun eine möglichkeit den counter wert zu einem Präziesen zeitpunkt auszulensen also das es zb immer genau nach 1000ms ist? Geht das mit einem einfachen Ton oder ist der dazu zu ungenau?
 
Warum willst du nach genau 1000ms auslesen? Müsste es nicht beim HW-Tor schließen oder nach mehreren Tor-Zeiten (also ein Vielfaches der PWM-Periodendauer) sein? Bei einer PWM-Frequenz von 408Hz wären 1000ms nach 408 Tor-Zeiten.

TON mit 1000ms schaltet nach 1000ms + 1 OB1-Zykluszeit (glaube ich), womöglich asynchron zum OB1-Zyklus? (weiß ich jetzt gerade nicht genau, wie sich die S7-1200-TON verhalten, bei Siemens ist jeder Timer überraschend anders ;) )
 
Zurück
Oben