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

Ergebnis 1 bis 9 von 9

Thema: libnodave MAXPDU

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    die MAXPDU ist auf 200 eingestellt! Was spricht dagegen diese zu erhöhen? Ich muss 525 REAL-werte einlesen, dazu brauche ich eine MAXPDU von 2100.

    jangbu
    Zitieren Zitieren libnodave MAXPDU  

  2. #2
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Da hat die S7 was dagegen. Die kann halt nur bestimmte PDU-Größen.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

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

    Standard

    Die Realwerte werden doch trotzdem eingelesen, nur nicht in einem Rutsch. Mein Programm liest auch 1k Daten ein.
    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
    Registriert seit
    25.07.2005
    Ort
    Vogelsbergkreis
    Beiträge
    1.717
    Danke
    48
    Erhielt 68 Danke für 60 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Die Realwerte werden doch trotzdem eingelesen, nur nicht in einem Rutsch. Mein Programm liest auch 1k Daten ein.
    Wenn man ReadManyBytes verwendet schon.

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

    Standard

    readManyBytes() ruft readBytes() sooft wie nötig mit der maximalen PDU-Größe und einmal für den Rest auf. Es "versteckt" also nur die mehrfachen Aufrufe vor dem Anwender und nimmt ihm die "Verwaltung" der Anfangsadressen ab.
    Die PDU-Größe wird von der CPU begrenzt. Kann man auch in Step7 unter Eigenschaften der CPU/Kommunikation abfragen.

  6. #6
    jangbu ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.11.2006
    Beiträge
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Kann leider ReadManyBytes nicht finden?! Verwende Delphi 6 als Entwicklungsumgebung.

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

    Standard

    Je nachdem was du nutzt heißt die Delphi-Funktion:

    procedure DoReadBytes(Buffer: Pointer; SPS: Integer);

    Die nimmt immer 200 als Länge für den Aufruf von daveReadBytes und macht das so oft, bis alles übertragen ist.

    Für Delphi gibts eine schöne Komponente, die ist bei libnodave dabei.
    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

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

    Standard

    Wenn du die Komponente nicht nutzt sieh dir auf jeden Fall die NoDAVE.pas an, da existiert auch daveReadManyBytes.
    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

  9. #9
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle Beitrag anzeigen
    Je nachdem was du nutzt heißt die Delphi-Funktion:

    procedure DoReadBytes(Buffer: Pointer; SPS: Integer);

    Die nimmt immer 200 als Länge für den Aufruf von daveReadBytes und macht das so oft, bis alles übertragen ist.

    Für Delphi gibts eine schöne Komponente, die ist bei libnodave dabei.
    DoReadBytes ist eine Methode der Delphi-Komponente, die in den bisherigen Versionen immer mit 200 Byte großen Übertragungsblöcken gearbeitet hat. In meiner aktuellen Version (noch nicht released !) übernehme ich die Blocklänge, die libnodave beim Verbindungsaufbau mit der CPU aushandelt. Ich habe jedoch auch schon Probleme dabei festgestellt:
    • Wenn per IBHLink / NetLink eine Verbindung zu einer 400er-CPU aufgebaut wird, dann meldet die CPU an libnodave, daß sie eine Blocklänge von ~460Bytes kann, der IBH/NetLink beherrscht diese Blocklänge aber offensichtlich nicht, und dementsprechend ist die Kommunikation fehlerhaft. Demzufolge habe ich die Blocklänge beim Protokoll IBHLink auf 220 Bytes beschränkt.
    • Beim Lesevorgang habe ich versucht, MaxPDU - 18 Bytes zu übertragen, bei PN-CPUs hat es aber nicht ausgereicht, 18 Bytes abzuziehen, darum habe ich diese Konstante vergrößert. Jetzt funktioniert es zwar, aber ich weiß nicht genau warum, und das gefällt mir nicht.

    Ich gehe aber davon aus, daß mit dem nächsten Release von libnodave diese Funktion in der Delphi-Komponente enthalten sein wird, ich bleib auf jeden Fall am Ball, auch wenn Zeit bei mir gerade ein sehr knappes Gut ist ...


    Gruß Axel
    Man muß sparn wo mn knn!

Ä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 readbyte > MAXPDU
    Von jangbu im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 14.02.2010, 13:20
  5. libnodave: Woher kommt die "libnodave.net.dll"?
    Von Thomas_v2.1 im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 10.11.2008, 12:07

Lesezeichen

Berechtigungen

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