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

Ergebnis 1 bis 10 von 10

Thema: Störmeldungen, wie geht das?

  1. #1
    Registriert seit
    20.02.2007
    Beiträge
    53
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Unglücklich


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe eine CPU314, an dem ich ein MP270 über MPI angeschlossen habe. Jetzt möchte ich, das Störmeldungen am MP270 angezeigt werden. In ProTool habe ich unter dem Menü "Bereichszeiger" einen Typ "Störmeldungen" angelegt und dem DB70 zugewiesen. So weit, so gut.

    Jetzt kommt es:
    Wie gehe ich in der SPS vor? Habe in der Hilfe gelesen, das man dafür z.B. den SFC17 benutzen kann. Allerdings wird in der Hilfe darauf hingewiesen, das man den SFC107 bei neueren Steuerungen anwenden soll. Aber wie gehe ich dann weiter vor? Wo rufe ich den SFC107 auf? Was weise ich den entsprechenden PArametern am SFC107 zu?

    Ich habe dem DB70 übrigens schon die entsprechenden Kontakte zugewiesen. Meint: Einem DB70.dbx0.0 einen Öffnerkontakt einer Sicherung.

    Ich habe keine Ahnung wie ich das mit dem SFC107 machen soll!

    Gruß

    Carsten
    Zitieren Zitieren Störmeldungen, wie geht das?  

  2. #2
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Den SFC107 brauchst du fürs Meldenummernverfahren. Wenn du einen Bereichszeiger angibst arbeitest du nach dem Bitmeldeverfahren und du brauchst den SFC nicht.
    Jedem Bit ist in deinem DB ist dann eine Meldung in Protool zugeordnet.
    Achtung High Byte und Low Byte sind vertauscht

  3. Folgender Benutzer sagt Danke zu marlob für den nützlichen Beitrag:

    Jerome (04.04.2008)

  4. #3
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Siehe dazu auch Beitrags-ID 5155755 im Siemens Support
    Falls du unbedingt das Meldnummernverfahren benutzen willst, dann gucke mal unter
    der Beitrags-ID: 841294 dort gibt es auch weiterführende Links zu Beispielprojekten.
    Sowohl fürs Meldenummernverfahren als auch fürs Bitmeldeverfahren
    Geändert von marlob (08.11.2007 um 15:51 Uhr) Grund: Link zu Meldnummernverfahren eingefügt

  5. #4
    Registriert seit
    20.02.2007
    Beiträge
    53
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Daumen hoch

    Hallo marlob,

    besten Dank für Deine Antworten. Gerade die letzte Antwort mit den Links hat mir viel geholfen.

    Jetzt funzt das auch.

    Danke.


    Gruß

    Carsten

  6. #5
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Standard

    Zitat Zitat von marlob Beitrag anzeigen
    ....
    Achtung High Byte und Low Byte sind vertauscht
    Immer wieder dieser Quatsch mit den "vertauschten" Bytes!

    Tatsächlich ist da nichts vertauscht, sondern es ist einfach grundsätzlich so, dass bei der S7 das High-Byte immer das "Adressierungsbyte" ist und die nachfolgenden niederwertigeren Bytes "höher" adressiert sind.
    Code:
    DB10.DBW0 //DB10.DBB0 ist das High-Byte und DB10.DBB1 das Low-Byte in diesem Word
    
    DB10.DBW3 //DB10.DBB3 ist das High-Byte und DB10.DBB4 ist das Low-Byte in diesem Word
    Was zu dem immer wieder kehrenden Märchen mit den "vertauschten Bytes" führt, ist wohl die Vermutung, dass die Zahlenwertig höchste Byte-Adresse als das High-Byte innerhalb eines [Doppel]Wortes interpretiert wird.

    Deshalb sollte man sich im Umgang mit der S7 und [Doppel]Wortverarbeitung unbedingt merken:

    Niedrigste Byteadresse: -> Most significantest Byte (MSB) -> Highest-Byte

    Höchste Byteadresse: -> Lowest significantest Byte (LSB) -> Lowest-Byte

    Und jetzt noch an all die Erfahrenen hier im Forum: Bitte nicht böse sein über die allgemeinen "Weisheiten" die ich eben losgelassen habe und die für jeden erfahrenen SPS-Programmierer (zumindest bei Step7) selbstverständlich sind.
    Allerdings liegt mir die Vermutung nahe, dass bei dem "Märchen der vertauschten Bytes" der Eine oder Andere Anfänger leicht verwirrt sein könnte.
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  7. #6
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Zitat Zitat von OHGN Beitrag anzeigen
    Immer wieder dieser Quatsch mit den "vertauschten" Bytes!
    Warum Quatsch? S7-CPUs sind Big Endian Systeme im Gegensatz zu z.B. Intel CPUs die Little Endian Systeme sind. Und bei diesen beiden Systemen ist die Byteanordnung nun mal vertauscht.
    Bei WinCC kann ich diese Reihenfolge sogar einstellen, damit die Werte von einer beliebigen CPU richtig zum PC mit WinCC geschickt werden.
    Viele Anfänger haben erst auf PCs programmiert, was den einen oder anderen schon mal durcheinanderbringen kann.
    Aber eigentlich wollte ich nur darauf hinweisen, das z.B. Bit 0.0 Meldung 9 ist und Bit 1.0 Meldung 1.
    Vielleicht hätte ich das deutlicher schreiben sollen, aber carsten ist mit meinen Hinweisen doch ans Ziel gekommen

    Zitat Zitat von OHGN Beitrag anzeigen
    Code:
    DB10.DBW0 //DB10.DBB0 ist das High-Byte und DB10.DBB1 das Low-Byte in diesem Word
    
    DB10.DBW3 //DB10.DBB3 ist das High-Byte und DB10.DBB4 ist das Low-Byte in diesem Word
    Deshalb sollte man sich im Umgang mit der S7 und [Doppel]Wortverarbeitung unbedingt merken:

    Niedrigste Byteadresse: -> Most significantest Byte (MSB) -> Highest-Byte

    Höchste Byteadresse: -> Lowest significantest Byte (LSB) -> Lowest-Byte
    Hieran gibt es nichts auszusetzen

    Zitat Zitat von OHGN Beitrag anzeigen
    Allerdings liegt mir die Vermutung nahe, dass bei dem "Märchen der vertauschten Bytes" der Eine oder Andere Anfänger leicht verwirrt sein könnte.
    Ich frag mich, wer hier wen nun mehr verwirrt hat
    Geändert von marlob (23.11.2007 um 09:28 Uhr) Grund: falschen Link korrigiert

  8. #7
    Registriert seit
    04.01.2007
    Ort
    Euskirchen
    Beiträge
    136
    Danke
    23
    Erhielt 37 Danke für 31 Beiträge

    Standard

    Zitat Zitat von marlob Beitrag anzeigen
    Aber eigentlich wollte ich nur darauf hinweisen, das z.B. Bit 0.0 Meldung 9 ist und Bit 1.0 Meldung 1.
    In der Praxis ist das sehr richtig. Als Abhilfe - und um eine durchsichtigere Programmierung zu erreichen - verwende ich z.B. folgenden Bausteinschnipsel, der einem Binärsignal #INPUT eine Meldungsnummer #NR (hier in einem festen Datenbaustein) wie folgt zuordnet (#NR (Int)und #INPUT (Bool) sind Eingangswerte, #INDEX ist ein Temp-DWORD)

    Code:
          L     #NR
          L     1
          -I    
          L     8
          XOW   
          T     #INDEX
          OPN   DB    70
          A     #INPUT
          =     DBX [#INDEX]
    Gruss Michael aka Dumbledore

  9. #8
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Standard

    Zitat Zitat von marlob Beitrag anzeigen
    Aber eigentlich wollte ich nur darauf hinweisen, das z.B. Bit 0.0 Meldung 9 ist und Bit 1.0 Meldung 1.
    Genau das aber hat mit "vertauschten Bytes" und mit "Little und Big Endian" nichts zu tun.
    Es ist völlig logisch dass Bit 1.0 der Meldung 1 entspricht und Bit 0.0 der Meldung 9.
    Bezogen auf das Wort 0 ist Bit 1.0 nun mal das "erste" (Bit-Nr.0) und Bit 0.0 das "neunte" (Bit-Nr. 8 ).
    Von vertauscht würde ich wohl eher reden wenn dem nicht so wäre.
    Ein wirkliches vertauschen der Bytes liegt dann vor, wenn in der Steuerung im Wort 0 z.B. der Dezimalwert 128 steht, in der HMI aber statt dessen -32786 erscheint.
    Das aber ist hier definitiv nicht der Fall.
    Zitat Zitat von marlob Beitrag anzeigen
    Vielleicht hätte ich das deutlicher schreiben sollen, aber carsten ist mit meinen Hinweisen doch ans Ziel gekommen
    Es war auch nicht meine Absicht Deinen Beitrag zu kritisieren.
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  10. #9
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Eigentlich wollte ich hierauf ja nicht mehr antworten. Aber aufgrund des Kommentars von
    OHGN in diesem Beitrag, dachte ich das ich doch noch mal dazu etwas schreibe.

    Code:
                                 Siemens    Systeme mit  
                                 Siemens    anderer Byteanordnung
    kleinste Speicheradresse    High Byte     Low Byte
    höchste Speicheradresse     Low Byte      High Byte
    Das heisst bei Siemens ist bei z.B. DB10.DBW0
    DB10.DBX0.7 das MSB -> DB10.DBX0.0 Meldung 9 und DB10.DBX1.0 Meldung 1
    wenn Siemens aber die andere Byteanordnung verwenden würde, dann wäre
    DB10.DBX1.7 das MSB -> DB10.DBX0.0 Meldung 1 und DB10.DBX1.0 Meldung 9
    daraus folgt, das die Byteanordnung vertauscht! ist. Also kein Märchen ist.
    Und unterschiedliche Bytereihenfolgen nennt man Big/Little Endian.

    @OHGN
    falls an dieser Ausführung etwas falsch ist, bitte ich darum mich zu berichtigen. Ich lerne gerne noch dazu,
    vielleicht hast du ja noch ein paar schöne Märchenbücher

  11. #10
    Registriert seit
    08.11.2006
    Ort
    Uckermark
    Beiträge
    903
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von marlob Beitrag anzeigen
    wenn Siemens aber die andere Byteanordnung verwenden würde, dann wäre
    DB10.DBX1.7 das MSB -> DB10.DBX0.0 Meldung 1 und DB10.DBX1.0 Meldung 9
    daraus folgt, das die Byteanordnung vertauscht! ist. Also kein Märchen ist.
    Und unterschiedliche Bytereihenfolgen nennt man Big/Little Endian.
    100% ACK

    Es ging mir ja auch darum, dass bezogen auf das HMI (hier das MP270) von vertauschten Bytes gesprochen wird und das ist definitiv falsch.
    Wenn das MP270 eine andere Bytereihenfolge als die S7 hätte, würdest Du die Bytes ja generell tauschen müssen, also auch wenn Du eine Dezimalzahl auf dem MP darstellen willst.

    Und selbst bei WinCC, welches ja definitiv auf einer Maschine läuft bei der die Bytes gegenüber der S7 vertauscht sind muss man sich in der Regel nicht darum kümmern, weil das bereits der WinCC-interne Kommunikationstreiber erledigt, zumindest dann, wenn man die Siemens Protocol-Suite verwendet.

    So, jetzt ist aber wirklich Schluss!
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  12. Folgender Benutzer sagt Danke zu OHGN für den nützlichen Beitrag:

    marlob (23.11.2007)

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 19.02.2008, 20:04
  2. Störmeldungen
    Von Taddy im Forum HMI
    Antworten: 4
    Letzter Beitrag: 14.11.2007, 13:32
  3. Antworten: 31
    Letzter Beitrag: 04.11.2007, 02:05
  4. Störmeldungen
    Von Praktikus im Forum HMI
    Antworten: 4
    Letzter Beitrag: 12.01.2006, 18:43
  5. FB alleine geht, FB 2x geht nicht?
    Von MSP im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 18.08.2005, 15:00

Lesezeichen

Berechtigungen

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