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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: S7 200 libnodave

  1. #1
    Registriert seit
    04.06.2011
    Beiträge
    3
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe eine S7 200 mit 12 Analogeingängen, woran 12 Sensoren angeschlossen sind.
    Ich möchte von den 12 Sensoren 8 mal ein Screenshot machen und dann mit libnodave in den PC einlesen.
    Ich bräuchte mal einen Denkanstoß wie ich die 12 Sensorenwerte zwischenspeichere, damit ich sie dann auslesen kann.
    Mit MerkerWörtern wäre es ja ein ziemlich grosser Aufwand. Ich denke das man irgendwie einen Zähler benutzen sollte, aber wie speichere ich die Werte zählergesteuert zwischen z.B. in einer Datenseite?
    Hat jemand eine Idee wie ich das effektiv löse?
    Das einzige was ich beherrsche ist FUP.

    Danke Lutz
    Zitieren Zitieren S7 200 libnodave  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.293
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard

    Wann soll denn die SPS die Werte speichern?
    Du brauchst einen Trigger, der das Speichern auslöst, wahrscheinlich mußt Du den Trigger per Flankenauswertung auf 1 Zyklus verkürzen.
    Zwischenspeichern kannst Du die Werte im Variablenspeicher V...

    Am schnellsten und besten lesbar programmierst Du, wenn Du alle 8x die 12 Werte speichern komplett ausprogrammierst:
    Code:
    //Network
    LD     V1.0              //Trigger 1
    MOVW   AEW0, VW100
    MOVW   AEW2, VW102
    //...
    MOVW   AEW22, VW122
    
    //Network
    LD     V1.1              //Trigger 2
    MOVW   AEW0, VW124
    MOVW   AEW2, VW126
    //...
    MOVW   AEW22, VW146
    
    //...
    
    //Network
    LD     V1.7              //Trigger 8
    MOVW   AEW0, VW268
    MOVW   AEW2, VW270
    //...
    MOVW   AEW22, VW290
    Etwas kürzer aber komplizierter geht es per indirekter Adressierung.
    In der S7-200 geht indirekte Adressierung auch in FUP:
    Code:
    LD     V2.0                        //Trigger
    MOVW   VW10, AC1                   //VW10: Zähler 1..8
    DECW   AC1                         //0..7
    *I     +2, AC1                     //*2 wegen Word-Abstand
    MOVD   &VB100, AC0                 //Anfangsadresse VB100
    +D     AC0, AC1                    //dazuaddieren
    MOVW   AEW0, *AC1
    +D     2, AC1                      //nächste Speicheradresse
    MOVW   AEW2, *AC1
    //...
    +D     2, AC1
    MOVW   AEW22, *AC1
    Für FUP schalte in MicroWin die Ansicht auf AWL, kopiere den AWL-Code von hier in MicroWin und schalte danach die Ansicht auf FUP.

    Das Auslesen mit Libnodave mußt Du manuell anstoßen oder Deine PC-Applikation muß zyklisch eine Variable lesen, welche vom Programm gesetzt wird, wenn neue Werte gespeichert wurden.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    Lutz99999 (13.05.2014)

  4. #3
    Lutz99999 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    04.06.2011
    Beiträge
    3
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Harald,

    vielen Dank für deine Antwort . Ich werde wohl die längere Variante bevorzugen, weil es irgendwann leichter lesbar ist.
    Ist es ein Unterschied ob ich ein MW nehme oder ein VW?

    Gruß Lutz

  5. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Bemüht man sich, einen vernünftigen Kommentar zur "kurzen" Variante zu verfassen, so ist dieser Weg noch in vielen Jahren les- und vorallem nachvollziehbar!

    Der wesentliche Unterschied zwischen Variablenspeicher(V) und Merkerbereich(M) ist die Menge verfügbarer Speicherzellen.
    Der remanente Merkerbreich ist nur 32Byte lang.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. #5
    Registriert seit
    23.03.2006
    Ort
    Thüringen
    Beiträge
    2.005
    Danke
    162
    Erhielt 278 Danke für 199 Beiträge

    Standard

    Hensch,
    hi vierlagig, Du lebst. Schön Dich zu lesen!

    Grüße
    Mario

  7. #6
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    Der remanente Merkerbreich ist nur 32Byte lang.
    Du wolltest doch sicher bemerken, dass der gesamte Merkerbereich nur so groß ist, oder?
    Egal ob remanent oder nicht.



    Und ich geb' meinem Namensvetter Recht: Schön wieder von Dir hier zu lesen.

  8. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.293
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    Bemüht man sich, einen vernünftigen Kommentar zur "kurzen" Variante zu verfassen, so ist dieser Weg noch in vielen Jahren les- und vorallem nachvollziehbar!
    Das ist korrekt, aber:
    Zitat Zitat von Lutz99999 Beitrag anzeigen
    Das einzige was ich beherrsche ist FUP.
    Deshalb habe ich zuerst die direkt ausprogrammierte Variante gezeigt. Wenn man nur FUP kann, dann ist indirekte Adressierung eher eine Stufe zu hoch. Womöglich auch noch in einer Schleife...

    Zitat Zitat von Lutz99999 Beitrag anzeigen
    Ich werde wohl die längere Variante bevorzugen, weil es irgendwann leichter lesbar ist.
    Das bestätigt meine Vermutung.

    Mit BLKMOV_W geht es sogar noch kürzer. Bei nur 8x 12 Werten kopieren übersteigt der Aufwand für die Pointerberechnung die direkte Geradeaus-Programmierung, welche nur 16 Operationen erfordert:
    Code:
    //Network
    LD     V1.0              //Trigger 1
    BMW    AEW0, VW100, 12
    
    //Network
    LD     V1.1              //Trigger 2
    BMW    AEW0, VW124, 12
    
    //...
    
    //Network
    LD     V1.7              //Trigger 8
    BMW    AEW0, VW268, 12
    Libnodave muß dann VW100 bis VW290 auslesen, der VW-Speicher wird als DB1 adressiert: DB1, DBB100, 192 Byte
    Code:
    daveReadBytes(dc, daveDB, 1, 100, 192, 0)
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #8
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von hucki Beitrag anzeigen
    Du wolltest doch sicher bemerken, dass der gesamte Merkerbereich nur so groß ist, oder?
    Egal ob remanent oder nicht.
    ich wollte bemerken, dass der gesamte Merkerbereich remanent ist ... geschriebenes Wort - Teufelszeug!

    @PN/DP: ich möchte keine Grundsatzdiskussion zu Darstellungsformen der Programmierung und deren Verständnis vom Zaun brechen, halte es aber für angezeigt, dem Fragensteller nahezulegen sich in näherer Zukunft neben FUP auch mit einer reinen Textdarstellung, z.B. AWL auseinanderzusetzen.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    ich wollte bemerken, dass der gesamte Merkerbereich remanent ist ... geschriebenes Wort - Teufelszeug!
    Auch nicht.


    Man kann den gesamten Merkerbereich remanent einstellen, wenn man möchte. Standardmäßig sind die ersten 14 Byte nicht remanent, um deren (im Gegensatz zu den restlichen 18 Byte) nullspannungsfestes Speichern bei Spannungsunterbrechung nur bei bewusster Remanenzeinstellung herbeizuführen.
    [/Klugscheißermodus]


  11. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    vierlagig (14.05.2014)

  12. #10
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ...für die Präzisierung
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

Ähnliche Themen

  1. Probleme mit libnodave + Lubuntu +S7-200
    Von neumann63 im Forum Stammtisch
    Antworten: 2
    Letzter Beitrag: 01.11.2013, 09:45
  2. libnodave, S7-200 -> Kommunikationsprobleme?
    Von hik im Forum Hochsprachen - OPC
    Antworten: 6
    Letzter Beitrag: 22.07.2011, 17:10
  3. libnodave - PC - S7 200
    Von Senator42 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 23.02.2010, 09:13
  4. Merker/Datenbaustein/libnodave S7-200
    Von rampage im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 23.09.2008, 00:18
  5. [ S7-200 ] libnodave mit CP 243-1
    Von caret im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 25.08.2007, 07:48

Lesezeichen

Berechtigungen

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