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

Ergebnis 1 bis 6 von 6

Thema: Ist die maxPDUlength immer korrekt ?

  1. #1
    Registriert seit
    28.05.2009
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo erstmal

    Ich wollte mal fragen ob das Ergebniss welches man aus MaxPduLength erhält immer korrekt ist?

    Ich verwende moment eine IM151-8 über TCP.
    Nun erhalte ich die PDU Länge von 240. Wen ich nun experimentel versuche daten auszulesen mit der Länge 240 bis 141 erhalte ich den Fehler:
    the desired address is beyond limit for this PLC

    Lese ich jedoch nur 140 Bytes aus, Stimmt alles wieder.

    Kann es sein das die PDU grösse falsch ausgelesen wird? Bzw was könnte ich tun um den Wert zu ändern?

    Wäre für eure Hilfe dankbar, da ich die Aufsplittung des lesens / Schreibens über die PDU grösse handeln wollte.

    MFG Michael
    Zitieren Zitieren Ist die maxPDUlength immer korrekt ?  

  2. #2
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Ich kann mich jetzt mal nur auf eine Quelle (die NoDaveComponent, die im libnodave-Pakte enthalten ist) und auf meine Vermutungen stützen:

    In der NoDaveComponent gibt es eine Funktion die heißt GetMaxPDUData, in dieser werden 24 von der in libnodave erhaltenen Länge abgezogen, ich denke, dass das die Headerdaten also was die SPS genau mit dem was sie bekommen hat anstellen soll.

  3. #3
    bqstony ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.05.2009
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wen ich daveWriteManyBytes aus nodave.c anschaue. Zieht er hier sogar 28 Bytes ab....
    Code:
    int DECL2 daveWriteManyBytes(daveConnection * dc,int area, int DBnum, int start,int len, void * buffer){
        int res, pos, writeLen;
        uc * pbuf;
        pos=0;
        if (buffer==NULL) return daveResNoBuffer;
        pbuf=(uc*) buffer;
        res=daveResInvalidLength; //the only chance to return this is when len<=0
        while (len>0) {
        if (len>dc->maxPDUlength-28) writeLen=dc->maxPDUlength-28; else writeLen=len;
        res=daveWriteBytes(dc,area, DBnum, start, writeLen, pbuf);
        if (res!=0) return res;
        len-=writeLen;
        start+=writeLen;
        pbuf+=writeLen;
        }    
        return res;
    }
    Bei mir ist eben der Grosse Unterschied von 100 zu dem Rückgabewert aus maxPDUlength. Was halt schon seltsam ist.

  4. #4
    Registriert seit
    01.03.2007
    Beiträge
    262
    Danke
    26
    Erhielt 33 Danke für 28 Beiträge

    Standard

    Oder ist einfach nur dein Datenbaustein zu klein???

  5. #5
    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

    Zitat Zitat von Human Beitrag anzeigen
    Oder ist einfach nur dein Datenbaustein zu klein???
    Dann testweise Merker verwenden. Die sollten auf jeden Fall vorhanden sein.
    Rainer Hönle
    DELTA LOGIC GmbH

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

  6. #6
    bqstony ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.05.2009
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nein, das ist es auf jedenfall auch nich. Den Baustein könnte man sogar als übegross bezeichnen
    Auch bei einem ReadRequest, aus verschiedenen Bausteinen ist das selbe Problem aufgetreten.

    Mit dem Merkern habe ich es trotzdem noch nicht versucht, werde das nach dem wochenende noch versuchen.

Ähnliche Themen

  1. Parameterzuweisung in SCL nicht korrekt
    Von Bensen83 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 04.10.2011, 17:02
  2. Parameter übergabe nicht Korrekt
    Von Björn im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.03.2010, 10:35
  3. Adressierung korrekt!?
    Von the im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 02.07.2009, 15:54
  4. Adressierung korrekt!?
    Von the im Forum CODESYS und IEC61131
    Antworten: 12
    Letzter Beitrag: 03.06.2009, 17:44
  5. SCL: Datentypspezifikation nicht korrekt
    Von lindnerlars im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 03.09.2008, 18:19

Lesezeichen

Berechtigungen

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