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

Ergebnis 1 bis 3 von 3

Thema: S7-300 Analogwert auslesen mit LibNoDave

  1. #1
    Registriert seit
    28.11.2011
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute!
    Ich muss bei meiner Bachelorarbeit jetzt noch mit LibNoDave einen analogen Eingangswert auslesen, um diesen nachher zu vergleichen.
    Dieser steht jetzt bei mir im DB2.DBW0 bzw. habe ich diesen auch zum Testen nochmal im FB1 als MW3 stehen.
    Wie lese ich den denn jetzt mit LND aus?! In der area.html von LND steht nur folgendes:

    Name Konstante Beispiel(DE) Beispiel(EN) Beispiel-Aufruf
    Data blocks daveDB DB3.DBD4 DB3.DBD4 daveReadBytes(dc,daveDB,3,4,4,NULL)
    Flags/Markers daveFlags MW4 FW4 daveReadBytes(dc,daveFlags,0,4,2,NULL)

    Hatte jetzt schonmal folgendes versucht:

    ist=daveReadBytes(dc,daveDB,2,0,2,NULL); //für DB2.DBW0 und
    ist=daveReadBytes(dc,daveFlags,1,3,2,NULL); //für MW3 in FB1

    Aber das Programm spuckt mir immer nur '0' aus. Da werd ich ja wohl irgendwas falsch auslesen, oder?!
    Außerdem wäre es gut zu wissen, was genau für ein Wert von der SPS an das Programm geliefert wird. Momentan
    ist bei mir die Variable 'ist' als Integer deklariert. Hatte sie zwar zum Testen auch schon mal anders deklariert, hat
    aber am Ergebnis nichts geändert, das blieb immer bei '0'.

    Vielen Dank für eure Hilfe!
    HoschiD
    Zitieren Zitieren S7-300 Analogwert auslesen mit LibNoDave  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.793
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Hoschi, du musst auch mal die Doku lesen, z.B. die daveReadBytes.html
    Die gelesenen Bytes werden entweder in den Parameter für buffer eingetragen (letzter Parameter bei daveReadBytes), oder wenn dieser Zeiger NULL ist dann in den Puffer in der daveConnection Struktur, bei dir die Variable "dc".
    Schau mal in die Testprogramme wie testISO_TCP.c ab Zeile 325. Da wird die Variante mit NULL verwendet.

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

    HoschiD (15.03.2012)

  4. #3
    HoschiD ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.11.2011
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Thomas!
    Vielen Dank für den Tipp! Dachte, dass wenn ich das in eine Variable speichere, ich den Wert dann habe. Aber das ist ja dann nur der Check, ob alles läuft. Deshalb kam auch immer '0' raus.
    Wie gesagt, ich hab leider nicht so die riesige Ahnung vom Programmieren und kam dann mit der Doku nicht wirklich gut klar... Außerdem war ich ein bisschen unter Zeitdruck und wollte deshalb alles schnell über die Bühne bringen. Aber mit deinen Tipps hab ich auch mal was verstanden!
    Auf jeden Fall hat jetzt alles funktioniert. Das Programm läuft, ließt Werte etc. aus der SPS aus, vergleicht diese, führt Aktionen aus und schreibt ein Logfile für alles, was in der SPS passiert. Jetzt kann ich endlich an meiner Bachelorarbeit weiter schreiben.
    Vielen, vielen Dank!!

Ähnliche Themen

  1. Status der CPU mit Libnodave auslesen.
    Von toki im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 09.06.2010, 22:29
  2. Antworten: 10
    Letzter Beitrag: 25.03.2010, 12:37
  3. Libnodave Werte zyklisch auslesen mit VB
    Von Fluffi im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 26.07.2009, 18:33
  4. CPU-Meldung und Diagnosepuffer mit LibNoDave auslesen
    Von GvOdin im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 20.08.2007, 11:00
  5. Mit Libnodave Diagnosepuffer auslesen
    Von Bewareofthis im Forum Hochsprachen - OPC
    Antworten: 6
    Letzter Beitrag: 09.11.2005, 17:22

Lesezeichen

Berechtigungen

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