S5-U95 Vergleich

Romanl1979

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

da ich neu bin möchte ich mich kurz vorstellen. Mein Name ist Roman bin 41 und habe eine HTL Elektronik Nachrichtentechnik gemacht.
Ich habe mir im Haus 2 SPS Steuerungen verbaut S5-U100 für Raffstore und eine S5-U95 als Heizungssteuerung.(Ist schon lange her;))

Die SPS U95 steuert einen Öl Ofen und kann auf Holz umstellt werden und mehrere Stockwerke / Pumpen sowie Warmwasserboiler ansteuern.

Aktuell haben wir diese um einen Puffer und Mischer erweitert, und ich muss die Werte der Analogfühhler genauer errechnen wie zuvor damit die Mischung sowie Steuerung besser funktioniert.
Leider bekomme ich das nicht zum Laufen da ich schon lange nichts mehr gemacht habe bzw mir hier die Erfahrung fehlt.

Grundgedanke ist das ich die Fühler einen Fixwert abziehe und dann den Wert über einen in einem Datenbaustein gespeicherten Tabelle umrechne und mir so die Abweichung des Fühlers bzw der Schaltung ausgleiche. Problem ist wenn das abgefragte DW außerhalb des Datenbausteinbereichs geht, wodurch ich dann einen Stop auf der SPS bekomme.
Nun wollte ich das Problem so abfangen das wenn der gemessene Fühlerwert und zb 30 oder zb 98 Grad geht immer diese Werte fix in das zu weiterverarbeitende DW geschrieben wird, und hier liegt mein Problem, ich bekomme das nicht zum Laufen, sobald ich diese paar Zeilen eingefügt habe nimmt er immer einen dieser Werte obwohl die Temperatur dazwischen liegt.


Anbei mein FB

M19.4 und M19.5 wären dafür gedacht das der min bzw Max Wert geladen werden soll, jedoch wird immer einer dieser Werte geladen auch wenn die Temperatur dazwischen liegt.
( DB3 speichern der Temperatur werte, DB04 Temperaturtabelle, im MW 130 = Wert direkt vom Analogfühler, im DW 27 ist Wert des Fühlers, DW 29 ->ist DW für Temperaturwert im DB04 welcher herangezogen wird, DW 24 korrigierter Temperaturwert)

000F :A DB 3
0010 :L MW 130
0011 :L KH 0142
0013 :-F
0014 :T DW 27
0015 :NOP 0
0016 :L DW 27
0017 :L KF +20
0019 :-F
001A :T DW 29
001B :NOP 0
001C :NOP 0
001D :L KF +20
001F :L DW 27
0020 :<=F
0021 :S M 19.4
0022 :NOP 0
0023 :NOP 0
0024 :L KF +98
0026 :L DW 27
0027 :>=F
0028 :S M 19.5
0029 :NOP 0
002A :U M 19.4
002B :L KF +1
002D :T DW 29
002E :NOP 0
002F :U M 19.5
0030 :L KF +78
0032 :T DW 29
0033 :NOP 0
0034 :L DW 29
0035 :T MW 200
0036 :A DB 4
0037 :B MW 200
0038 :L DW 0
0039 :T MW 200
003A :NOP 0
003B :L MW 200
003C :A DB 3
003D :T DW 24
003E :NOP 0
003F :U M 19.4
0040 :U E 33.1
0041 :R M 19.4
0042 :U M 19.5
0043 :U E 33.1
0044 :R M 19.5

Leider bin ich kein Profi und muss mich immer wieder rantasten, und der Ablauf ist sicher nicht optimal.

Ich wäre froh wenn mir jemand einen Denkansto oder ein paar Beispiele wie man bei positivem Vergleichergebnis einen anderen Wert in ein DW (in meinem Fall 29) schreibt und wo ev das
Problem liegt das die SPS ständig zB +78 im DW 29 stehen hat.

Danke im Voraus

BG

Roman
 
Code:
      L    DW 1
      L    DW 2
      >=F          // Akku2 >= Akku1 bzw. DW1 >= DW2 ?
      SPB  =M001   // Ja, Sprung nach M001
      TAK          // Nein, Akku1 und Akku2 tauschen
M001  T    DW 3    // Akku1 nach DW 3 speichern d.h.: DW3 = MIN(DW1, DW2)
 
Etwas ausführlicher, um einen Wert auf Unter- und Obergrenze zu limitieren (ungetestet, hoffentlich ohne Gedankenknoten ;)):
Code:
      L    Untergrenze
      L    DW 1
      <=F          // Akku2 <= Akku1 bzw. Untergrenze <= DW1  ?
      SPB  =M001   // Ja, Sprung nach M001
      TAK          // Akku1 und Akku2 tauschen >>>===> Akku1 = MAX(DW1, Untergrenze)
M001  L    Obergrenze
      TAK          // Akku1 und Akku2 tauschen
      >=F          // Akku2 >= Akku1 bzw. Obergrenze >= MAX(DW1, Untergrenze) ?
      SPB  =M002   // Ja, Sprung nach M002
      TAK          // Akku1 und Akku2 tauschen
M002  T    DW 2    // Akku1 nach DW 2 speichern d.h.: DW2 = MIN(MAX(DW1, Untergrenze), Obergrenze)
 
Hallo Heinileini,

danke nochmal für deine Ausführung ich habs so implementiert und hat auf Anhieb funktioniert.
Bin echt froh hab schon x Stunden investiert und es nicht hinbekommen. (fehlt halt noch an Erfahrung)

Danke

BG
Roman
 
Zurück
Oben