Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 7 von 7

Thema: Einsatz EEProm bzw Datum vergleichen

  1. #1
    Registriert seit
    13.12.2006
    Ort
    Rimsting
    Beiträge
    14
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    arbeite gerade an einem Projekt mit einer S7-200 CPU 224XP
    i.V mit einem TP177micro;

    zwei Sachen plagen mich und wäre dankbar um ein paar Tips:

    1) Wenn ich übers TP einen Anlagenwert ändere, z.B. Solltemp.
    eines Heizkreises, soll dieser nicht nur remanent, sondern
    auch nullspannungsfest im internen EEPROM abgespeichert werden;
    bisher wäre mein Konzept ein Wertänderungsbit zu setzen und den
    gesamten V-Speicher zu sichern; dies erscheint mir aber etwas
    ungeschickt; lieber wär mir die selektive Sicherung eben dieses
    einen veränderten Wertes nur;
    da ich kein Batteriemodul einsetzen will, würde die CPU sonst
    nach ein paar Tagen meine "Werkseinstellung" wieder laden und
    der veränderte Sollwert wär wieder verloren;

    2) Es soll ein Verfallsdatum überwacht werden;
    dazu soll am TP eben dieses Verfallsdatum eingegeben werden
    und mit der Systemuhr verglichen werden;
    ich find leider nur keine komfortable Möglichkeit am TP dieses
    Datum im fertigen Date-Format einzugeben und im V-Speicher
    zu hinterlegen;
    ich probiers jetzt nochmal mit einem String ...

    Wenn jemand eine Idee hat, wär ich um entsprechende, kurze Tipps
    sehr dankbar.

    Heads up and so long
    Leonhard
    Zitieren Zitieren Einsatz EEProm bzw Datum vergleichen  

  2. #2
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.526 Danke für 1.286 Beiträge

    Standard

    Zu deiner ersten Frage:
    Schau dir mal SMB31 / SMW32 an,
    das dürfte exakt das sein was du suchst.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  3. #3
    leonhard_II ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.12.2006
    Ort
    Rimsting
    Beiträge
    14
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Manuel,
    so weit hab ich mich auch schon vorgegraben ...,
    bloß wie und wo krieg ich die Adresse des veränderten Wertes im
    V-Speicher, damit ich SMW32 füttern kann ?

    Mfg
    Leonhard
    Zitieren Zitieren Einsatz EEProm bzw Datum vergleichen  

  4. #4
    Registriert seit
    29.07.2005
    Beiträge
    82
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    zu 1) Verstehe nicht ganz warum du die Adressen der Variable nicht kennst um SMB31 / SMW32 zu verwenden. Du adressierst doch deine Variable symbolisch und musst dafür im Symbolbaustein doch eben eine Zuordnung zwischen Symbolen und Speicheradressen treffen, ergo letztere dir auch bekannt sein.
    Übrigends: Sowohl internes als auch externes EEPROM haben nur eine beschränke Anzahl Schreibzugrffe (ca. 100000). Den V Speicher komplett zu sichern ist da keine gute Idee, da du sicherlich sehr schnell an diese Größe stoßen würdest.

    zu 2) Da ich mit exakt den gleichen Geräten arbeite hatte ich ebenfalls dieses Problem. Ich hab das so gelöst, dass ich drei einzelne Integerwerte für Jahr, Monat und Tag am TP abfrage, sie in der SPS in BCD umwandle und dann vergleiche bzw. das Datum setzen lasse. Nicht schön, bisher aber die einzig mir bekannte Möglichkeit. Die S7-200 hat eben keinen gesonderten Datentypen Date. Wenn du eine geschicktere Lösung kennst wäre ich sicherlich auch interessiert.

  5. #5
    leonhard_II ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.12.2006
    Ort
    Rimsting
    Beiträge
    14
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Caret,
    Hallo Manuel,

    sorry, mich hat letzte Woche nochmal ein anderes Projekt beschäftigt ...

    zu 1) das Prob ist doch folgendes:
    in meinem V-Speicher hab ich so ca. 900 unterschiedlichste Werte stehen,
    wohl auch mit Symbolik und auch bunt gemischt VB, VW und VDs;
    die gleichen Symbole verwende ich bei den zu verändernden Werten auch im WinCC flex;
    wenn aber der Bediener im TP einen E/A-Wert innerhalb seiner zulässigen Grenzen verändert,
    kriegt das ja nur das Display mit und verändert den Wert im V-Speicher,
    aber die CPU selber kriegt doch nix mit davon, außer daß die dann mit dem neuen
    Wert weiterarbeitet;
    hab im Moment immer noch nicht die richtige Lösung ...

    zu 2) wohl aber hier:
    das mit den 3 INT-Feldern ist gut, danke auch an „Caret“ für die Vorlage;
    hab dann die Idee noch etwas weitergebastelt, weil ich meine Pappnasen von
    Bedienern kenne, die sich dann sicherlich wegen 3xWert umtippen aufregen;
    hab einfach nur ein einziges E/A-Feld mit DINT definiert und lasse das
    Datum ohne Punkt eingeben, also z.B. 211206; in der CPU wandle ich dann
    auch in BCD-Werte und kehre dann das Format um in 061221; jetzt brauch ich nur
    noch einen ganz normalen DINT Vergleich auf größer (oder kleiner...) machen und
    weiß, ob das am Display eingegebene „Datum“ jünger oder älter ist;
    zum Schluß hab ich noch einen einfachen Schutz gegen Fehleingabe gemacht:
    will der Bediener eine z.B. nur 5-stellige Zahl als Datum eingeben (Tippfehler
    am Display, Zeichen nicht angenommen o.ä.) macht das Display doch eine $00
    draus, dies ist bei der Wandlung in den BCD-Code nicht erlaubt und setzt SM1.7,
    wenn SM1.7 gesetzt, also Falscheingabe, wird der Monat und das Jahr mit Nullen
    vorbesetzt und dies führt beim Vergleich immer zu „Datum abgelaufen, bitte prüfen“

    Naja, bischen holprig, aber es funzt !

    Wenn da nur nicht das Problem 1) nicht wär ...

    Vielen Dank erstmal für Eure Ratschläge
    Leonhard

  6. #6
    Registriert seit
    29.07.2005
    Beiträge
    82
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von leonhard_II Beitrag anzeigen
    Wenn da nur nicht das Problem 1) nicht wär ...
    Wenn ich das richtig verstehe suchst du eine Funktion die die Wertänderung einer Variable in der SPS detektiert. Da kenne ich bisher auch nur zwei Möglichkeiten:

    - DirtyBit vom TP setzen lassen
    - einzlne Bits der Variable durch die SPS auf Flanken testen

    Die zweite Lösung ist so natürlich nicht universell einsetzbar, da man z.B. um einen Integerwert vollständig zu überwachen 16 Bits auf Flanken testen müsste. Die Methode ist eher dafür gedacht wenn z.B. sichergestellt ist dass der Integerwert immer nur um 1 erhöht oder erniedrigt wird (z.B. Zähler). Dabei würde dann immer nur das erste Bit kippen.

  7. #7
    leonhard_II ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.12.2006
    Ort
    Rimsting
    Beiträge
    14
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von caret Beitrag anzeigen
    Wenn ich das richtig verstehe suchst du eine Funktion die die Wertänderung einer Variable in der SPS detektiert.
    Genauso ist's;
    aber mittlerweile rück ich grad ein anderes Konzept zurecht:
    selbst wenn ich obiges Verfahren lösen könnte, bleiben immer noch
    die Variablen, die die SPS selbst ändert (Gesamt-Mengenzähler, etc.),
    ungespeichert übrig;
    ich werd jetzt beim betriebsmäßigen Ausschalten der Anlage
    (bei "Steuerung Aus" läuft die SPS immer noch weiter, mit dieser
    "Betriebsart" halt , erst der Hauptschalter macht die SPS auch
    spannungslos) alle relevanten Daten mit Grundprinzip SMB31/SMW32
    ins int. EEProm sichern; das Ausschalten mit Hauptschalter passiert
    nicht so oft, läßt sich leicht detektieren und trifft eigentlich
    den Nagel auf den Kopf;
    einzige Forderung an den Bediener: erst Steuerung Aus und dann
    erst den Hauptschalter Aus;
    beim Autofahren bleibst ja auch erst "geregelt" stehen und schaltest
    dann erst denn Motor ab ... (es sei denn, man/frau fährt Toyota Prius)

    Jedenfalls bin dank Eurem Mitdenken doch ein Gutes Stück weiter-
    gekommen, wofür ich mich recht herzlich bedanke.
    Werd mich bei passender Gelegenheit auch mit meinen Ideen an
    Themenantworten beteiligen.

    So long , und ein
    Frohes Weihnachtsfest
    Leonhard

Ähnliche Themen

  1. S5 EEPROM testen
    Von mnuesser im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 18.03.2011, 15:36
  2. Datum vergleichen ?
    Von Pusher im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 02.07.2009, 13:01
  3. Datenformat eeprom
    Von mariob im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 24.03.2006, 22:31
  4. Datum und Uhrzeit vergleichen mit einer CPU 318
    Von uwemiess im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 22.04.2005, 09:35

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •