Die SPS-Programmierer kommen nur äußerst selten mit der Problematik des Prellens in Berührung. Die digitalen Eingänge
einer SPS sind bereits im Vorfeld vom Hersteller so konzipiert, dass die unerwünschten Auswirkungen eines prellenden Kontaktes,
ob Schalter, Taster, Relais oder Schützes, nahezu ausgeschlossen werden. Dank dessen verhalten sich die mit einer SPS ausgestatteten
Steuerungen äußerst stabil und das Thema ist in der SPS-Welt praktisch nicht existent.
Die prellenden Kontakte sind aber allgegenwärtig und es ist vom Vorteil, auch für einen SPS-Programmierer, das Phänomen nicht
aus den Augen zu verlieren.
Das folgende Beispiel soll zeigen, was sich an einem SPS-Eingang, der ein Signal von einem Taster oder Relais empfängt, hinter
den Kulissen abspielt.
Es ist nämlich möglich, die kurzen Signale eines prellenden Kontaktes mit einer SPS festzustellen. Hierzu, durch eine entsprechende
Konfiguration der SPS, verwandelt man einen oder mehrere digitalen Standard-Eingänge der SPS in schnell zählende Eingänge. Diese
könnten z.B. für Auswertung eines Inkrementalgebers verwendet werden. Zusammen mit einem dazu vorgefertigtem Systembaustein
(hier CTRL_HSC) bilden sie sogenannten schnellen Zähler HSC (HIGH SPEED COUNTER).
Systembaustein CTRL_HSC
In dem Beispiel wird der Eingang E0.0 in einen schnellen Eingang (zeitliche Auflösung 100kHz) umparametriert (TIA-Portal
Siemens). Mit diesem Eingang werden anschließend Impulse, die von einem geschalteten Relais stammen, gezählt.
Ein Schema der Verschaltung der SPS und des Relais stellt das folgende Bild dar:
Verschaltung der Komponenten (Skizze)
Über einen Ausgang (A0.4) der SPS wird regelmäßig das Relais K1 ein- und ausgeschaltet. Über seinen Schließer-Kontakt
wird ein Signal zu dem Eingang E0.0 geführt. In dem SPS-Programm werden die Schaltvorgänge des Relais gezählt, ebenso die Impulse am
Eingang E0.0. Mit dem Schalter S2 wird das Programm gestartet, mit dem Schalter S1 können die Zähler genullt werden.
Die aktuellen Zählerstände werden an einem Anzeigegerät (hier KP 300) angezeigt.
Um den Unterschied zwischen einem entprellten und nicht entprelltem Kontakt zu verdeutlichen wird zusätzlich eine einfache
Entprellung mit RC-Glied zugeschaltet. Sie kann mit dem Schalter S3 aktiviert bzw. deaktiviert werden. Im Normallfall würde man
hier den Kondensator bei geöffnetem Kontakt mit der Masse verbinden, doch bei diesem Test ist das nicht notwendig.
Die komplett aufgebaute Schaltung:
Testschaltung
Nach der Nullung der Zähler und Start des Programms mit aktivierter Entprellung sieht man auf der Anzeige, dass beide
Zähler stets den gleichen Wert aufweisen. Das ist so verständlich. Bei jedem Relais-EIN (Ausgangszähler = Ausgangszähler + 1) kommt
über seinen Schließer-Kontakt auch ein Signal am Eingang E0.0 an (Eingangszähler = Eingangszähler + 1).
Schaltet man die Entprellung aus (S3 aus), so ist zu beobachten, dass die Anzahl der Impulse am Eingang deutlich höher liegt als
die Anzahl der Schaltvorgänge. Der Kontakt prellt, und das mehrmalige Schließen und Öffnen des prellenden Kontaktes wird am E0.0
erfasst und angezeigt.
Das Programm (SCL):
// Relais Ein und Aus je 100ms
"IEC_Timer_0_DB".TP(IN:=NOT "Relais_AUS", PT:=t#100ms, Q=>"Relais_EIN", ET=>#Zeit_IST);
"IEC_Timer_0_DB_2".TP(IN:=NOT "Relais_EIN", PT:=t#100ms, Q=>"Relais_AUS", ET=>#Zeit_IST);
// Relais Ein/Aus
"Relais_Ausgang" := FALSE;
IF "Start" THEN "Relais_Ausgang" := "Relais_EIN"; END_IF;
// Zähler für Relais EIN
"IEC_Counter_0_DB".CTU(CU:="Relais_Ausgang",
R:="Zähler_Reset",
PV:=10000,
Q=>"Ausgang",
CV=>#Zählerstand_Ausgang);
Auf dem kurzen Video sehen wir zuerst die Zählerstände bei entprelltem Kontakt (Zählerstände gleich) und bei
nicht entprelltem Kontakt (Zählerstand Eingang deutlich höher als Zählerstand Ausgang).