Step 7 Rechnen in fehlersicherer SPS

knarf

Level-2
Beiträge
217
Reaktionspunkte
43
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich habe eine fehlersichere CPU 315F in welcher ich mehrere Analogwerte durch Berechnungen fehlersicher in ein Verhältnis setzen muß.
Im Distributed Safety kann man ja nur mit INT -Zahlen rechen. Bei den Formeln wird aber immer der Rest hinter dem Komma abgeschnitten. Das Ergebnis ist dann eigentlich am Thema vorbei.
Auch eine Multiplikation der INT-Zahlen mit 100 und Vergrößerung des Abschaltwertes ebenfalls um 100 funktioniert nicht so richtig, da eine Formel wie folgt aussieht:

A / (A + B + C)

Dieses Ergebnis geht wieder in eine Formel ähnlicher Machart ein.
Kann man in so einem Fall im nicht fehlersicheren Teil mit REAL-Zahlen rechnen und damit im fehlersicheren Teil abschalten.
Oder hat jemand eine andere Idee.

Vielen Dank im Voraus.

Mit freundlichen Grüßen
Frank
 
Hallo,

Deine Idee mit dem Standardprogramm ist nicht ganz sauber müsste aber gut funktionieren. Frag doch den TÜV ob er es akzeptiert.
Ansonsten wenn A eine kleine Zahl ist versuchs doch mit (100 oder 1000*A) / (A+B+C)

Gruß
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.
Wir haben bei Einführung der Sicherheitssps auch versucht möglichst alles auszureizen was an sicherer Logik geht!
Die Erfahrung hat gezeigt dass die Überprüfung der Sicherheit jedoch sehr schwierig wird.
Im Moment ist meine Devise: So viel wie nötig, so wenig wie möglich (Safety Programmcode).
Evtl. Sicherheitskonzept, bzw. Sensor Auswahl nochmal überdenken.
 
Oder hat jemand eine andere Idee.

Inwieweit sind denn die Analogwerte fehlersicher. Damit geht es doch schon mal los.
Ausserdem sollte man, wenn es Grenzwerte sind, direkt binäre Grenzwertschalter einsetzen.
Das scheint mir sicherer. Aber insgesamt lässt sich aus dem Eingangstext die Notwendigkeit
nicht herleiten. Dazu sind das zu wenig Infos.
 
Inwieweit sind denn die Analogwerte fehlersicher. Damit geht es doch schon mal los.
Ausserdem sollte man, wenn es Grenzwerte sind, direkt binäre Grenzwertschalter einsetzen.
Das scheint mir sicherer. Aber insgesamt lässt sich aus dem Eingangstext die Notwendigkeit
nicht herleiten. Dazu sind das zu wenig Infos.

Ein Blick ins Sicherheitshandbuch der SPS ist sehr hilfreich.
Danach ist die Analogsignalverarbeitung SIL 3 wenn der Geber ebenfalls SIL3 unterstützt.
Ein Binärsignal kommt nur auf SIL 2. Um SIL 3 zu erreichen muss man das Signal mit 2 Eingängen einlesen und alles unter der Voraussetzung dass der Geber das auch unterstützt.
Die Binärsignale sind billiger und einfacher aber keinesfalls sicherer.
Z.B. ein Druckschalter hat typischerweise eine Hysterese von gut 10% und muss für eine genaue Abschaltung mit Hilfe eines Eichmanometers eingestellt werden. Dann unterscheidet man auch noch ob er von unten oder von oben eingestellt wurde.
Bei Transmittern hingegen kann man von einer Genauigkeit von 1-2%, SIL2 und Eichprotokoll ab Werk ausgehen. Demnach kann man ohne weitere Eingriffe jeden beliebigen Grenzwert bzw. Schaltpunkt in der Software bilden und bei Bedarf verändern.
Was der TE jedoch meint ist die Überwachung eines Verhältnisses wie z.B. Luft/Brennstoff und das geht über einen einfachen Schaltpunkt hinaus.

Gruß
Johannes
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
vielen Dank für Eure Kommentare, leider kann ich erst heute antworten, da ich unterwegs war.
Die AI-Karten und die Transmitter sind fehlersicher. Durch die Berechnung soll ein Methanolverhältnis überprüft werden. Bei Überschreitung muß eine fehlersichere Abschaltung erfolgen. Da zwei Reaktoren vorhanden sind erfolgt diese Berechnung in der oben angegebenen Formel. Dieses Ergebnis geht wieder ein eine ähnliche Formel ein.

Da A / (A + B + C) kleiner 1 wird und die SPS mit INT dann immer 0 ausgibt entsteht das Problem. Auch eine Multiplikation des Zählers mit 10 bringt so richtig nicht das gewünschte. Ich möchte nun im nicht fehlersicheren Teil die Formeln zweimal auf verschiedenen Wegen rechnen und mit dem Ergebnis im fehlersicheren Teil abschalten. Ich bin mir blos nicht ganz sicher ob das so korrekt ist.

Gruß Frank
 
Da A / (A + B + C) kleiner 1 wird und die SPS mit INT dann immer 0 ausgibt entsteht das Problem. Auch eine Multiplikation des Zählers mit 10 bringt so richtig nicht das gewünschte. Ich möchte nun im nicht fehlersicheren Teil die Formeln zweimal auf verschiedenen Wegen rechnen und mit dem Ergebnis im fehlersicheren Teil abschalten. Ich bin mir blos nicht ganz sicher ob das so korrekt ist.

Gleich vorgemerkt ich kenn mich mit F-CPUs nicht aus. Aber Wenns nur ein Integer Problem ist. Wieso nicht so?

A * 100 / (A + B + C) Damit wäre das Resultat wieder nachvollziehbar und trotzdem Integer.

mfG René

UPS: Wurde ja schon erwähnt. Sorry
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Anstatt 100 könnte man möglicherweise besser eine Zweierpotenz wählen.
Man kann aber auch erst die Formeln umstellen: anstatt x=A/(A+B+C) zu errechnen und dann zu prüfen ob x<Grenzwert kann man
auf A< Grenzwert*(A+B+C) prüfen. Wenn nur Multiplikationen vorkommen, verliert man dabei keine gültigen Stellen.
Wenn das Ergebnis (INT*INT) als DINT vorliegt, kann man es nachher solange nach rechts verschieben, bis es wieder in ein INT paßt (oder bis es sowenige Stellen sind, daß der nächste Rechenschritt keinen Überlauf erzeugen kann). Schiebt man auch die andere Seite der Ungleichung, so bleibt sie gültig.

Wenn es um Sicherheit geht, sollte man möglicherweise die Fehler der Sensoren und A/D-Wandler berücksichtigen und wie sich diese durch die Rechnung fortpflanzen:
Die Werte A,B,C seien mit Fehlern behaftet, so daß gilt: Amin < A < Amax, Bmin < B < Bmax, Cmin < C < Cmax.
Die Formel A/(A+B+C) ergibt einen kleinstmöglichen Wert bei Amin/(Amin+Bmax+Cmax) und einen größtmöglichen Amax/(Amax+Bmin+Cmin).
Siehe auch:
http://de.wikipedia.org/wiki/Intervallarithmetik
 
Zurück
Oben