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

Ergebnis 1 bis 5 von 5

Thema: Libnodave Daten lesen/schreiben

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    Ich bin blutiger Anfänger in SPS programieren und auch Hochsprachen programieren. Ich möchte gerne ein Lagerprojekt realisieren.

    Ich möchte von meinem Computer Variablen in die SPS schreiben und lesen. Ich bin beim Suchen auf Libnodave gestoßen und denke, dass ich damit am besten die Daten lesen und schreiben kann.
    Ich habe auch schon das Testprogramm von Libnodave ausprobiert. Die Kommunikation funktioniert einwandfrei.

    Den nächsten Schritt den ich nun machen will ist:
    Mit Exel, einen Dateinbaustein von meiner S7 lesen. Dazu habe ich das bei libnodave mitgelieferte Exelbeispiel abgeändert und zunächst mit Step7 einen Datenbaustein erstellt und einen wert hineingeschrieben. Diesen dann auf meine S7 übertragen.
    Wenn ich nun versuche diesen Datenbaustein mit Exel zu lesen, bekomme ich zwar einen Wert aber dieser ist falsch.

    Meine Vermutung ist, dass ich irgendetwas falsch mache beim Auswerten des gelesenen. Ich habe irgendwo gelesen, dass libnodave von der S7 einen bestimmten Byte-strang zurück bekommt und diesen muss ich zuerst auseinander tüfteln. Irgendwo zwischendrin befindet sich dann der Wert meines Datenbausteins. Ist das korrekt?

    Ich bin also auf der Suche nach Informationen über den Datenbaustein an sich und über diese Daten, die die SPS mir schickt, wenn ich mit libnodave eine lese Auftrag ausführe.

    Vielen Dank für die Antworten.
    Geändert von Acidic (03.05.2008 um 18:37 Uhr)
    Zitieren Zitieren Libnodave Daten lesen/schreiben  

  2. #2
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard

    Zitat Zitat von Acidic Beitrag anzeigen
    Wenn ich nun versuche diesen Datenbaustein mit Exel zu lesen, bekomme ich zwar einen Wert aber dieser ist falsch.
    Was heist da falsch ??

    In dem fall wäre es nicht schlecht wenn du deine Excel-Datei mal hier reinstellst

    Wie hollst du den deine Daten aus dem "Libnodave Puffer" raus, macht du das mit den Funktionen wie z.B. daveGetS16(dc) ??

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Wenn du einen Bereich ausliest. ist der byteweise organisiert. Hast du dort Word oder INT oder Float drin liegen, mußt du die zuerst zusammenbauen. Oder du holst die Daten so wie MW es vorschlägt.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

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

    Standard

    hallo,
    Danke für die schnellen Antworten habe jetzt ein Bild vom DB und die Exeldatei hinzugefügt.

    Ich hoffe Ihr könnt mir weiterhelfen.
    Wäre euch dankbar wenn ihr mir sagen könnt wo ich Informationen zur Lösung meines Problemes herbekomme . Ich möchte mich mit der Materie intensiv auseinandersetzen können und nicht wegen jeden bischen hier im Forum Fragen stellen.
    Wo finde ich eine Ausführliche erläuterung des Datenbausteins?
    Was ist der Anfangswert? -Attribut? -Wert?

    In der Exel Datei ist die Prozedur: Read fromPLC2 welche eigentlich mir die Werte der DB liefern soll.

    Hier der Code der Prozedur:

    Sub readFromPLC2()
    Cells(1, 2) = "Test Lesen aus DB"
    Dim ph As Long, di As Long, dc As Long
    res = initialize(ph, di, dc)
    If res = 0 Then
    res2 = daveReadBytes(dc, daveDB, 1, 0, 1, 0)
    Cells(5, 1) = "result from readBytes:"
    Cells(5, 2) = res2
    If res2 = 0 Then
    v1 = daveGetS8(dc)
    Cells(7, 1) = "MD0(DINT):"
    Cells(7, 2) = v1
    v2 = daveGetS16(dc)
    Cells(8, 1) = "MD4(DINT):"
    Cells(8, 2) = v2
    v3 = daveGetS8(dc)
    Cells(9, 1) = "MD8(DINT):"
    Cells(9, 2) = v3
    v4 = daveGetS8(dc)
    Cells(10, 1) = "MD12(REAL):"
    Cells(10, 2) = v4
    v5 = daveGetFloatAt(dc, 12)
    Else
    e$ = daveStrError(res)
    Cells(9, 4) = "error:"
    Cells(9, 5) = e$
    End If
    End If
    Call cleanUp(ph, di, dc)
    End Sub
    Angehängte Grafiken Angehängte Grafiken
    Angehängte Dateien Angehängte Dateien
    Geändert von Acidic (31.05.2008 um 13:15 Uhr)

  5. #5
    Registriert seit
    23.04.2008
    Beiträge
    75
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So liest du das erste Byte in v1, Byte 2und 3 in v2,Byte 4 in v3 usw.
    Kein Wunder,wenn du die Daten nicht wiedererkennst. Versuch es mal so:
    Code:
    ...
    v1 = daveGetS16(dc)
    Cells(7, 1) = "DB_VAR(INT):"
    Cells(7, 2) = v1
    v2 = daveGetS16(dc)
    Cells(8, 1) = "DBVar2(INT):"
    Cells(8, 2) = v2
    ...
    Nieder mit der Schwerkraft. Freien Fall für freie Bürger !

Ähnliche Themen

  1. Daten aus S7 lesen und schreiben
    Von pat125 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 01.11.2011, 19:35
  2. Daten in DB schreiben /aus DB lesen/ kopieren
    Von Heizerfraktion im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 28.03.2010, 23:36
  3. Mit OPC Daten Bidirektional lesen und schreiben
    Von captainchaos666 im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 09.07.2008, 18:54
  4. Daten aus DB lesen / in DB schreiben
    Von Supervisor im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.06.2006, 12:02
  5. Daten lesen/schreiben und verarbeiten
    Von Supervisor im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.05.2006, 08:08

Lesezeichen

Berechtigungen

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