Netzspannungsüberwachung mit Fehlerbehandlung

rs-plc-aa

Level-1
Beiträge
727
Reaktionspunkte
57
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und Hilfe,

Ich versuche mal es so kurz wie möglich zu erklären.

1.) Ich muß in ein Programm einen Zusatz hinzufügen der für eine komplette "Stromausfallabwicklung" taugt.

Der Normalfall des jetzigen Programms ist natürlich der daß Netzspannung verfügbar ist.

Entsprechende DI´s von der Niederspannungshauptverteilung (z.B. "Trafokuppelschalter ausgelöst" ) sind vorhanden.

Momentan wird also lediglich erkannt daß alle relevanten Eingänge entweder so stehen daß a) Netzspannung vorhanden und alle Schalter i.O. sind - oder b) ein Glied in der Kette ausgelöst hat - um einen Notaus auszulösen.

2.) Vielleicht zwischendurch noch eine Übersicht der Hardware.

- Trafostation mit 2 Trafos (20kV--> 400V)
- Trafokuppelschalter 1 u 2 (Rückmeldung als DI / Einschalten mit DA)
- Netzüberwachungsgerät(e) für T1 u T2 = wichtig ! diese schalten unmittelbar bei a) Kurzunterbrechung (Netzwischer) oder eben b) Stromausfall ihren zugeordneten TKS auf 0 (wäre nun nur an einem der beiden Schienen keine Spannung dann würde auch nur einer abgeschaltet =Trafoausfall - das kommt aber nachher noch da dies auch noch behandelt werden muß um den übrig gebliebenen nicht zu überlasten...)
Das Ü-Gerät ist deshalb doppelt wichtig weil es Auskunft über den Zustand "vor dem Schalter" gibt egal ob dieser gerade offen oder geschlossen ist.

Die "Minimallösung" (bei irgendeiner Ausfallerscheinung den "sicheren Zustand" herstellen) sieht ungefähr so aus:

Code:
Der Normalfall sieht so aus:
 
      U     "TR1_Netz_iO"
      U     "TR1_NKS_ZU"
      U     "Bypass_AKTIV"
      U     "TR2_Netz_iO"
      U     "TR2_NKS_ZU"
      UN    "Notstrom_AKTIV"
      =     "Netzparallel_iO"
      R     "Stoerung_NPB"
      R     "NOT_STOP_M2"
      R     "NOT_STOP_M3"
      R     "NOT_STOP_M4"
      R     "NOT_STOP_M5"
      R     "NOT_STOP_M6"
      R     "NOT_STOP_M7"
      R     "NOT_STOP_M8"
 
Beispiel der Erkennung daß beide TKS ausgelöst haben:
 
      UN    "TR1_NKS_ZU"
      UN    "TR2_NKS_ZU"
      =     "Alarm_SQ_Bits".Spannungsausfall_gesamt
      SPBN  m001
      U     "M2_Laeuft"
      =     "NOT_STOP_M2"
      U     "M3_Laeuft"
      =     "NOT_STOP_M3"
      U     "M4_Laeuft"
      =     "NOT_STOP_M4"
      U     "M5_Laeuft"
      =     "NOT_STOP_M5"
      U     "M6_Laeuft"
      =     "NOT_STOP_M6"
      U     "M7_Laeuft"
      =     "NOT_STOP_M7"
      U     "M8_Laeuft"
      =     "NOT_STOP_M8"
m001: NOP   0
...
und anschließend dann noch die Fälle wo je einer der beiden ausfällt-
jedoch momentan mit gleicher Reaktion...

Ganz kurz noch hinzugefügt werden sollte daß es sich bei M2 - M8 um Stromerzeuger handelt welche aus diesem Grund eben bei einem Ausfall von einem oder beiden Trafos/Netz SOFORT per NotAus von ihrer Sammelschiene getrennt werden müssen (sicherer Zustand) um Beschädigungen anderer Anlagenteile durch Überspannung/Frequenz zu vermeiden...

Die Erweiterung dessen sieht nun folgende Zusatzaufgaben vor:

- zuerst muß zwischen KU (Netzwischer) und komplettem Ausfall unterschieden werden.
Hierzu stelle ich mir 2 Timer vor.
Der erste bekommt als Startbit die DI´s der Ü-Geräte (Netz_niO) verpasst.
Der zweite bekommt als Startbit den ersten Timer und soll prüfen ob der erste auch nicht nachgetriggert wurde (bsp. Netz ist kurz weg - kommt + geht aber dann mehrmals nacheinander)
Hier schon mein erstes Problem:
Ich würde hierfür gerne einen komplett neuen Baustein erstellen und das ganze nicht in die prinzipiell getestete Struktur reinwürgen. Nur ab wo fange ich bei dem neuen Baustein an ?
Eine Idee war die Ausfallerkennunung noch in die vorhandene Struktur einbauen, und erst wenn die Art des Fehlers lokalisiert ist den neuen Baustein zur Fehlerbehandlung nutzen (diesen sogar eventuell gar nicht aufrufen so lange alles i.O. ist?)
Da habe sonst ich ein wenig Muffe daß wenn ich die Zeiten in die Fehlerbehandlung reinmache diese nicht anlaufen könnten weil dann der Flankenwechsel schon passe ist.

Um den Eingangsthread nicht schon außer Kontrolle geraten zu lassen würde ich vorschlagen es Schritt für Schritt anzugehen (ich bin mir sicher ab einem gewissen Knoten der wieder mal nicht platzen will flutscht das ohnehin wieder wie von selbst)

Deshalb jetzt mal konkret gefragt:

Wie sollten die zwei Timer (oder braucht man dafür überhaupt 2 ?) verschaltet werden damit ich zunächst mal weiß ob es sich um eine KU oder einen Ausfall handelt (inklusive Erkennung ob nachgetriggert wird)?

Definition Netzwischer (KU) = Netzausfall im Millisekundenbereich - Ü-Geräte schmeißen TKS 1+2 raus, Netzspannung ist aber vor den TKS sofort wieder da --> Reaktion: wenn dieser erkannt 1 min warten (während dieser Minute muß ununterbrochen Netzspannung_iO sein) TKS 1+2 wieder einschalten, Normalbetrieb freigeben.

Definition Ausfall = Netzausfall - Ü-Geräte schmeißen TKS raus, Netzspannung ist während einer einmaligen Wartezeit von >1min entweder dauernd weg oder es wurde im Fall KU ein Nachtriggern erkannt (Netz instabil)

Definition Trafoausfall = Ausfall vor nur einem der beiden TKS - dessen Ü-Gerät schmeißt entsprechenden TKS raus --> Reaktion: entweder a) sofort sicheren Zustand herstellen oder b) sofort Einspeiseleistung so verringern daß der übriggebliebene nicht überlastet wird (wird noch entschieden)

Das sollte meiner momentanen Ansicht nach am besten in dieses Stück Code von weiter oben eingefügt werden (läuft zyklisch mit).

Am Ende wird entweder der Merker "Netzwischer" oder "Ausfall" geschaltet.
Diese Info würde ich dann an den "neuen" FB übergeben und entsprechend weiterverfahren.
Gleichzeitig kann damit dann der "Normalbetrieb" gesperrt, und erst wieder freigegeben werden wenn die Fehlerbehandlung vollständig beendet ist.

Any ideas ?
 
Hallo,

ich sehe schon ich habe mal wieder zu viel Text reingepackt...

Ich verfolge gerade einen Gedanken den ich nur nicht richtig logisch zusammenfügen kann.

Ich werde die Frage nun auf dies beschränken:

Zur Erkennung ob es nun ein Netzwischer oder ein Ausfall ist würde ich 3 Timer verwenden...

1.) Der erste prüft auf Ausfall

Code:
      UN    "TR1_Netz_iO"
      UN    "TR2_Netz_iO"
      L     S5T#1M
      SE    T      5
      U     T      5
      S     "Netzausfall"

2.) Der zweite wird mit gestartet und prüft ob während einer vorgegeben Zeit die Entscheidung fiel (um zu erkennen daß das Ereignis nicht nachgetriggert wurde)

Code hab ich jetzt dafür nicht aber ich dachte hier wäre eine SS (speichernde Einschaltverzögerung) das Rezept.

3.) Im Falle daß es ein Netzwischer war muß ein dritter Timer ins Spiel kommen der die "Rückkehr" des Netzes auf eine zusammenhängende Mindestzeit prüft.

In dem Fall würde nämlich ja der erste Timer nachgetriggert da die Startbedingung wieder von 1 nach 0 wechselt.

==================================================

Mein einziges Problem ist eben in diesem Moment daß ich es nicht hinbekomme die 3 Dinge sinnvoll miteinander zu verschalten.

Hierfür wäre ich für eine Hilfestellung von Euch mehr als dankbar !
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Nachtriggern könnte man auch mit einem Zähler, oder einem hochzuzählenden Datenwort detektieren (Netzeinimpulse zählen). Solange die Spannung da ist und der rem. Merker auf NULL ist --> wird der Zähler auf NULL gehalten. Bei einem Spannungsausfallt --> rem.Merker setzen, Zeit starten, Zähler nicht mehr auf Null halten. Ist die Zeit um und der Zähler auf Null (oder Eins, je nachdem ob der 1.Ausfall mitgezählt wurde) dann ist es ein dauerhafter Ausfall, hat der Zähler etwas gezählt, waren es Wischer.
 
Hallo,

das ging mir auch schon im Kopf rum - mein Problem ist wahrscheinlich sowieso daß ich mir hierfür über mögliche Lösungswege zu sehr den Kopf zerbreche und den Wald vor lauter Bäumen nicht sehe...

Egal ob so oder mit einem Timer der die maximale Zeit der Erkennung vorgibt - verschaltet muß es trotzdem werden.

Und es ist dabei eben zu berücksichtigen daß WÄHREND der Minute die ich lasse um einen Ausfall zu erkennen ein Wischer ERKANNT werden muß.

Das Ereignis ist zunächst das selbe --> nur einmal bleibt der Saft eben weg und einmal kommt er sofort wieder und muß aber die restliche Zeit lückenlos anliegen (ganz wichtig!).

Diese beiden Merkmale sind getrennt voneinander ABER gleichzeitig zu überwachen.

Den dritten Timer wollte ich eben so mitlaufen lassen daß er den selben Flankenwechsel beim start bekommt aber unabhängig davon weiterläuft und dann durchschaltet --> in dem Moment müssen die anderen beiden sich einig sein und entweder einen Wischer oder einen Ausfall erkannt haben.

Aber wie ?? (Blackout - bei der Temperatur hier eigentlich auch kein Wunder :( )
 
Hallo noch mal,

könnte das hier funktionieren ?

Code:
// In beiden Ausfallarten eine Gesamtzeit starten
      UN    "TR1_Netz_iO"
      UN    "TR2_Netz_iO"
      L     S5T#1M10S
      SS    T      5
      U     T      5
      SPBN  m001                        // noch nicht abgelaufen
// abgelaufen -> eine Entscheidung muß stehen
      UN    "Netzwischer"
      UN    "Netzausfall"
// wenn keine Entscheidung fiel ist es als "Ausfall" zu behandeln
// da eine Nachtriggerung stattfand (Netz instabil)
      S     "Netzausfall"
      SPA   ende
m001: NOP   0
// Zeit startet bei Ausfall und Wischer zunächst auf jeden Fall
// wenn die Zeit vollständig abgelaufen ist und die Spannung immer
// nocht nicht zurückkam = Ausfall
      UN    "TR1_Netz_iO"
      UN    "TR2_Netz_iO"
      L     S5T#1M5S
      SE    T      6
      U     T      6
      S     "Netzausfall"
// Zeit startet bei Wiederkehr und prüft ob während dieser die Spannung
// dauernd anliegt -> wenn abgelaufen und Spannung war immer da = Wischer
      U     "TR1_Netz_iO"
      U     "TR2_Netz_iO"
      L     S5T#1M
      SE    T      7
      U     T      7
      S     "Netzwischer"
ende: NOP   0

bitte um Kommentare...

der T7 müßte doch anlaufen da er die (wenn überhaupt dann) steigenden Flanken sieht - bleibt alles auf 0 erkenne ich oben den Ausfall.
 
Zurück
Oben