Relais/ReverserDecoder

    Diese Software ist für hw2, speziell für die Ausführung mit Relais. Die Software ermöglicht zum einen die direkten Ansteuerung von zwei Relais (z.B. für motorische Weichenantriebe), zum anderen auch eine Ansteuerung über eine kombinatorische Auswertung von logischen Zuständen von bis zu vier Zubehördecodern und daraus abgeleitet das Ansteuern der bistabilen Relais. Ein Anwendung hierfür ist die Umpolung eines eines bestimmten Gleissegments in Abhängigkeit von der Stellung von Weichen.
    Ein Kombinatorik wurde deswegen eingebaut, weil im 'verzwickten' Fällen weder eine klassische Kehrschleifenschaltung möglich ist, noch die Polarität des fraglichen Abschnittes sich direkt aus der Stellung nur einer Weiche ergibt. Erst aus der Kombination der Stellung mehrerer Weichen ergibt sich die jeweils notwendige Polarität. Siehe hierzu das u.g. Beispiel.

Funktion

    In der Voreinstellung funktioniert dieser Dekoder wie ein einfacher Zubehördekoder, nur wird anstelle der Weichenspule halt das (bistabile) Relais umgeschaltet. Der Zustand des Relais wird mittels LED angezeigt.
    Man kann aber auch wahlweise das Relais nicht direkt schalten, sondern die Kombination mehrerer Schaltbefehle zur Relaisansteuerung heranziehen. Üblicherweise sind Zubehördecoder 4-fach angelegt, d.h. ein Zubehördekoder reagiert auf 4 sequentielle Zubehöradressen. Jede dieser Adressen kann 2 logische Zustände haben, nennen wir diese im folgenden 'rot' und 'grün'. Der ReverserDecoder wertet nun diese 4 logischen Zustände aus, jeweils getrennt für das Aktivieren bzw. Deaktivieren des Umpolrelais. Bei der Auswertung kann ein logischer Zustand auf 'rot', 'grün' oder auf beides (was damit eigentlich 'ignorieren' bedeutet) abgeprüft werden.
    Nur wenn alle 4 Prüfungen eines Auswerters wahr geworden sind, erfolgt die entsprechende Ansteuerung des Relais ('UND'). Je Ansteuerseite gibt es zwei Auswerter, es reicht, wenn einer der beiden Auswerter ausgelöst hat ('ODER'-Verknüfung).

    Der ReverserDecoder wird hierzu auf die gleichen Adressen wie die beteiligten Weichendekoder programmiert.

Beispiel

    Gegeben sei folgendes Gleisbild:
    Kehrschleifenproblem
    Hier sind bei A, B, C, D jeweils Gleisrichtungen vorgegeben (Polarität, nicht Fahrtrichtung), dazwischen liegt ein in allen Richtungen befahrbarer Gleiswechsel, dessen Polarität automatisch mit den Weichenstellungen umschalten soll.
    In Richtung der Zufahrten A und B sind die Segmente lang genug für eine echte Kehrschleifenschaltung, bei C und D schließen sich Weichenfelder an, dort ist eine Umpolung unmöglich. Der ReverserDecoder schaltet nun die Polarität der Abschnitte innerhalb des Gleiswechsels. Im Gleiswechsel sind zwei Abschnitte: WS Sued bzw. WS Nord, diese müssen abhängig von der Weichenstellung umgepolt werden. Im Folgenden wird die Polarität als 'normal' bezeichnet, wenn das Gleis wie Abschnitt B bzw. D gepolt ist, als 'invers', wenn die Polung wie A oder C ist.
    WS Sued
    Stellung Aktivierung durch:
    normal W3 auf 'unten'
    invers W3 auf 'oben'
    Bei der WS Sued stellt sich die Logik noch sehr einfach dar, hier hängt es einfach von der Stellung der Weiche 3 ab, die Stellung der anderen Weichen ist egal. Also bestimmt in diesem Fall Weiche W3 allein, wie WS Sued gepolt werden muß.

    Komplizierter wird es bei der WS Nord, hier sind die Abhängigkeiten komplexer.
    WS Nord
    Stellung Aktivierung durch:
    normal W1 auf 'unten' und W3 auf 'unten' und W4 auf 'oben'. (Stellung von W2 ist hier egal)
    invers W1 auf 'oben' und W2 auf 'oben'
       oder
    W1 auf 'unten' und W2 auf 'unten' und W3 auf 'oben' und W4 auf 'oben'
    Die entsprechenden Weichenstellungen werden nun in die Auswerter eingetragen, beginnen wir mit der WS Sued:
    WS Sued, Auswerter 1 für 'normal'
    W1 1
      1
    W2 1
      1
    W3 0
      1
    W4 1
      1
    WS Sued, Auswerter 1 für 'invers'
    W1 1
      1
    W2 1
      1
    W3 1
      0
    W4 1
      1
    Bei den Weichen W1, W2 und W4 wird jede Stellung als aktiv eingetragen, damit werden die Stellung dieser Weichen ingoriert. Nur bei Weiche W3 wird 01 bzw. 10 eingetragen, damit wird der Auswerter je nach Weichenstellungen aktiviert.

    Bei der WS Nord sind die Auswerter etwas komplizierter:
    WS Nord, Auswerter 1 für 'normal'
    W1 0
      1
    W2 1
      1
    W3 0
      1
    W4 1
      0
    WS Nord, Auswerter 1 für 'invers'
    W1 1
      0
    W2 1
      0
    W3 1
      1
    W4 1
      1
    WS Nord, Auswerter 2 für 'invers'
    W1 0
      1
    W2 0
      1
    W3 1
      0
    W4 1
      0

Konfiguration mit CV-Variablen

    Die gewünschte Kombinatorik des Relaisdekoder kann mit CVs eingestellt werden. Die Voreinstellung ist so gewählt, dass Relais K1 auf Weichenadresse 1 und Relais auf Weichenadresse 2 schaltet.

    Die allgemeinen CVs (wie z.B. Adresse) sind gemäß der NMRA-Definition vergeben und z.B. beim normalen Schaltdekoder beschrieben. Das Setzen der Basisadresse kann auch vereinfacht mit der dort beschriebenen Tastermethode erfolgen.
  • CV 545 (33): DECODER MODE
    Diese CV legt die Betriebsart des Decoders fest. Hier ist fest 5 (= ReverserDecoder) einstellt.
    Im folgenden sind nur die CV's für den MODE 5 beschrieben!
  • CV 551 (39): RELAIS K1 TRG1 NORMAL
    Diese CV legt fest, bei welchem logischen Zustand der 4 beobachteten Weichen das Relais K1 auf 'normal' schaltet.
      CV 551: RELAIS K1 TRG1 NORMAL
      Bits Bedeutung
      1,0
      00 Egal welchen logischen Zustand die Weiche 1 hat, dieser Auslöser wird nie wahr; damit kann auch der gesamte Auslöser nicht wahr werden.
      01 Wenn die Weiche 1 zuletzt mit dem Befehl für die Spule 0 angesteuert wurde, dann wird dieser Auslöser wahr. Dies entspricht der Ansteuerung mit der 'roten' Taste.
      10 Wenn die Weiche 1 zuletzt mit dem Befehl für die Spule 1 angesteuert wurde, dann wird dieser Auslöser wahr. Dies entspricht der Ansteuerung mit der 'grünen' Taste.
      11 Egal welche Position die Weiche 1 hat, dieser Auslöser ist immer wahr. Die Stellung der Weiche 1 wird dadurch ignoriert.
      3,2 Wie oben, jedoch für Weiche 2.
      5,4 Wie oben, jedoch für Weiche 3.
      7,6 Wie oben, jedoch für Weiche 4.
    Nur wenn die Auswertung aller 4 Bitpaare einen wahren Zustand liefert, dann triggert der Dekoder und das Relais K1 wird in die Normalstellung geschaltet.
    Voreinstellung: 0xFD = 11111101: (= das Relais K1 schaltet mit Weiche 1 mit.)
  • CV 552 (40): RELAIS K1 TRG2 NORMAL
    Diese CV legt fest, bei welchem logischen Zustand der 4 beobachteten Weichen das Relais K1 auf 'normal' schaltet. Diese CV wirkt parallel zur CV551, damit kann eine zweite Triggerbedingung für den Normalzustand des Relais K1 festgelegt werden.
    Bitzuordnung: wie CV551
    Voreinstellung: 0x00 = 00000000: (=löst nie aus)
  • CV 553 (41): RELAIS K1 TRG1 INVERS
    Diese CV legt fest, bei welchem logischen Zustand der 4 beobachteten Weichen das Relais K1 auf 'invers' schaltet. Bitzuordnung: wie CV551
    Voreinstellung: 0xFE = 11111110: (= das Relais K1 schaltet mit Weiche 1 mit.)
  • CV 554 (42): RELAIS K1 TRG2 INVERS
    Diese CV legt fest, bei welchem logischen Zustand der 4 beobachteten Weichen das Relais K1 auf 'invers' schaltet. Diese CV wirkt parallel zur CV553, damit kann eine zweite Triggerbedingung für den Inverszustand des Relais K1 festgelegt werden.
    Bitzuordnung: wie CV551
    Voreinstellung: 0x00 = 00000000: (=löst nie aus)
  • CV 555 (43): RELAIS K2 TRG1 NORMAL
    Diese CV legt fest, bei welchem logischen Zustand der 4 beobachteten Weichen das Relais K2 auf 'normal' schaltet. Bitzuordnung: wie CV551
    Voreinstellung: 0xF7 = 11110111: (= das Relais K2 schaltet mit Weiche 2 mit.)
  • CV 556 (44): RELAIS K2 TRG2 NORMAL
    Diese CV legt fest, bei welchem logischen Zustand der 4 beobachteten Weichen das Relais K2 auf 'normal' schaltet. Diese CV wirkt parallel zur CV555, damit kann eine zweite Triggerbedingung für den Normalzustand des Relais K2 festgelegt werden.
    Bitzuordnung: wie CV551
    Voreinstellung: 0x00 = 00000000: (=löst nie aus)
  • CV 557 (45): RELAIS K2 TRG1 INVERS
    Diese CV legt fest, bei welchem logischen Zustand der 4 beobachteten Weichen das Relais K2 auf 'invers' schaltet. Bitzuordnung: wie CV551
    Voreinstellung: 0xFB = 11111011: (= das Relais K2 schaltet mit Weiche 2 mit.)
  • CV 558 (46): RELAIS K2 TRG2 INVERS
    Diese CV legt fest, bei welchem logischen Zustand der 4 beobachteten Weichen das Relais K2 auf 'invers' schaltet. Diese CV wirkt parallel zur CV557, damit kann eine zweite Triggerbedingung für den Inverszustand des Relais K2 festgelegt werden.
    Bitzuordnung: wie CV551
    Voreinstellung: 0x00 = 00000000: (=löst nie aus)
  • Hinweise:
     - Wenn für ein Relais sowohl eine 'normal' als auch eine 'invers' Triggerbedingung wahr wird, so gewinnt die 'normal'-Bedingung.

Zuordnung der Relais und Ausgänge

  • K1:
    normal: Ausgang OUT7 wird mit einem Puls aktiviert, damit wird das Relais angesteuert.
    Ausgang OUT3 wird permanent angesteuert, hier kann eine LED angeschlossen werden, welche den Zustand von K1 anzeigt (z.B. grün).
    invers: Ausgang OUT6 wird mit einem Puls aktiviert, damit wird das Relais angesteuert.
    Ausgang OUT2 wird permanent angesteuert, hier kann eine LED angeschlossen werden, welche den Zustand von K1 anzeigt (z.B. rot).
  • K2:
    normal:Ausgang OUT5 wird mit einem Puls aktiviert, damit wird das Relais angesteuert.
    Ausgang OUT0 wird permanent angesteuert, hier kann eine LED angeschlossen werden, welche den Zustand von K2 anzeigt (z.B. grün). invers:Ausgang OUT4 wird mit einem Puls aktiviert, damit wird das Relais angesteuert.
    Ausgang OUT1 wird permanent angesteuert, hier kann eine LED angeschlossen werden, welche den Zustand von K2 anzeigt (z.B. rot).