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

Ergebnis 1 bis 3 von 3

Thema: Libnodave S5

  1. #1
    Registriert seit
    24.03.2006
    Beiträge
    21
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin moin, hat einer schon mal mit Libnodave un dem NodaveComponent unter Delphi daten aus einer S5 ausgelesen ?

    bräuchte da mal vielleicht nen kleines beispiel wie ich z.b. nur nen bit auslese... irgenwie funzt das bei mir net, unter s7 wie gesagt kein problem, aber mit as511 protokoll tu ich mich wie gesagt mit der componente noch schwer...


    praseodym

    edit:
    bekomme übrigens den fehlercode -21
    Geändert von Praseodym (22.02.2007 um 08:27 Uhr)
    Zitieren Zitieren Libnodave S5  

  2. #2
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Möglichwerweise geht das nicht, weil libnodave bei AS511 die Daten (fehlerhafterweise) nicht in den vom Anwenderprogramm übergebenen Puffer kopiert. Es wurde die Tage schon mal gefragt, und ich habe einen Vorschlag gemacht, wie man sich da helfen kann.
    Nutz mal die Suchfunktion.

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Praseodym

    Ja das geht, mit einem kleinen Workaround, den Zottel hier

    http://www.sps-forum.de/showthread.php?t=12187

    erwähnt hatte.

    Code:
    if not (DaveInterface.Remote[SPS].Protocol = daveProtoAS511) then
            begin
              DaveInterface.Remote[SPS].LastError:=daveReadBytes(DaveInterface.Remote[SPS].DaveConn, AreaCode(DaveInterface.Remote[SPS].Area),
                                                   DBNr, Index, Leng, Pointer(Integer(Buffer) + Index));
            end
            else
            begin
              DaveInterface.Remote[SPS].LastError:=daveReadBytes(DaveInterface.Remote[SPS].DaveConn, AreaCode(DaveInterface.Remote[SPS].Area),
                                                   DBNr, Index, Leng, nil);
              CopyMemory(Pointer(Integer(Buffer) + Index), DaveInterface.Remote[SPS].DaveConn.resultPointer, Leng);
            end;
    Du machst Alles so, wie bei Zugriff über MPI, mußt aber dann mit CopyMemory die Daten umkopieren, sonst hast du sie nicht in deinem Array.
    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

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 09.09.2010, 00:27
  2. ÄÖnderungen am libnodave.net.cs File von libnodave
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 12.05.2010, 16:56
  3. LibNoDave unter VB.Net ohne libnodave.net.dll
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 09.03.2010, 18:57
  4. libnodave: Woher kommt die "libnodave.net.dll"?
    Von Thomas_v2.1 im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 10.11.2008, 12:07
  5. VB.Net und Libnodave
    Von oliverlorenz im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.05.2008, 10:54

Lesezeichen

Berechtigungen

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