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

Ergebnis 1 bis 7 von 7

Thema: LibNoDave DB Länge

  1. #1
    Registriert seit
    26.05.2009
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    gibt es eine Möglichkeit die DB länge auszulesen?
    Zitieren Zitieren LibNoDave DB Länge  

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

    Mit der Suchfunktion und genau deinen Begriffen hättest du folgendes gefunden:
    http://www.sps-forum.de/showthread.p...ave+DB+L%E4nge
    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

  3. #3
    The-Cook ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.05.2009
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    vielen dank für die antwort.

    ich muss allerdings das ganze unter C# entwickeln. und hab kein plan von java

  4. #4
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard

    Außer zu Backup-Zwecken bei Systemen, die ich nicht kenne, sehe ich
    keine Veranlassung dazu, daher die vielleicht
    blöde Frage: warum willst Du überhaupt eine DB-Länge ermitteln?
    Würde mich mal interessieren.

    Ansonsten funktioniert fast immer die Methode mit dem Ausprobieren:
    Kann ich n Worte lesen ? Ja: probiere n+1, Nein: war eins zuviel.

  5. #5
    The-Cook ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.05.2009
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe mal so angefangen:

    publicstructDaveBlockInfo
    {
    publicchar[] type;
    publicchar[] x1;
    publicchar[] w1;
    publicchar[] pp; /* allways 'pp' */
    publicshort[] x2; /* 00 4A */
    publicshort number; /* the block's number */
    publicshort[] x3 ; /* ? */
    publicshort length; /* the block's length */
    publicchar[] x4;
    publicchar[] name;
    publicchar[] x5;
    }

    [DllImport("libnodave.dll"/*, PreserveSig=false */ )]
    protectedstaticexternint daveGetBlockInfo(IntPtr daveCon, refDaveBlockInfo daveBlockInfo, int type, int db);
    publicint GetDBLength(int db)
    {
    DaveBlockInfo dbi = newDaveBlockInfo();
    dbi.type =
    newchar[2];
    dbi.x1 =
    newchar[2];
    dbi.w1 =
    newchar[2];
    dbi.pp =
    newchar[2];
    dbi.x2 =
    newshort[4];
    dbi.x3 =
    newshort[26];
    dbi.x4 =
    newchar[16];
    dbi.name =
    newchar[8];
    dbi.x5 =
    newchar[12];
    int ret = daveGetBlockInfo(this.daveConnection.pointer, ref dbi, libnodave.daveDB, db);

    return ret;
    }


    vielleicht kann mir hier jemand weiterhelfen.

    Bekomme folgende Fehlermeldung:

    "Das angegebene Array hat nicht den erwarteten Typ."

  6. #6
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Beitrag

    Soweit ich sehe, ist der struct Member length nicht initialisiert, somit auch nach meinem C# Verständnis nicht allociert (auch int sind Objekte).

    Vielleicht hilft es?
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Nur eine Auffälligkeit  

  7. #7
    The-Cook ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.05.2009
    Beiträge
    9
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für die Antwort.

    Habe einen Weg gefunden:

    Code:
    privateint GetLenght(int nr, int blockType)
    {
    int ret = int.MinValue;
    int len = 0;
    byte[] blockBuffer = newbyte[65536];
    this.daveConnection.getProgramBlock(blockType, nr, blockBuffer, ref(len));
    ret = libnodave.getU16from(blockBuffer, 34);
     
    return ret;
    }
    

Ähnliche Themen

  1. Libnodave PDU länge mit Delphi
    Von MenthalMan im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 14.10.2010, 10:55
  2. Länge von DB s und andere Libnodave Fragen
    Von RobiHerb im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 05.11.2009, 17:57
  3. Länge des Prozessabbildes
    Von Schnick und Schnack im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 30.06.2009, 10:25
  4. DB-Länge mit libnodave
    Von Rosti im Forum Hochsprachen - OPC
    Antworten: 7
    Letzter Beitrag: 29.06.2009, 12:15
  5. Länge von Datenbausteinen mit libnodave
    Von bike im Forum Hochsprachen - OPC
    Antworten: 4
    Letzter Beitrag: 18.11.2008, 12:25

Lesezeichen

Berechtigungen

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