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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 23 von 23

Thema: Libnodave 0.8.5

  1. #21
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Gab da irgendein problem mit gesplitteten TCP Paketen... Hab gesehen, das in der neusten libnodave da was gefixt wurde, die fixes hab ich noch nicht übernommen, aber der Thread ersteller hat gepostet das er auch mit der originalen libnodave nicht lesen konnte...

    Werd deine Änderungen demnächst mal einpflegen....
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  2. #22
    Registriert seit
    11.01.2016
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi
    I want to write a program in my PLC, and I used the code you written here. I couldn't debug your code. Could you help me to debug this code?
    regards

  3. #23
    Registriert seit
    11.01.2016
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    the code is this:
    int DECL2 davePutProgramBlock(int blockType, int blknumber, char* buffer, int * length)
    {
    #define maxPBlockLen 0xDe;
    int res = 0;
    int cnt = 0;
    int size = 0;
    int blockNumber, rawLen, netLen, blockCont;
    int number = 0;
    uc pup[] = { 0x1A, 0, 1, 0, 0, 0, 0, 0, 9, 0x5F, 0x30, 0x42, 0x30, 0x30, 0x30, 0x30, 0x34, 0x50, 0x0D, 0x31, 0x30, 0x30, 0x30, 0x32, 0x30, 0x38, 0x30, 0x30, 0x30, 0x31, 0x31, 0x30, 0 };
    PDU p, p2;


    uc pablock[] = {0x1B, 0};


    uc progBlock[maxPBlockLen + 4] = {0, maxPBlockLen, 0, 0xFB};
    pup[11] = blockType;
    paInsert[13] = blockType;
    /*pup[12] = number / (10*10*10*10);
    pup[13] = (number - (pup[12] * 10*10*10*10 )) / (10*10*10);
    pup[14] = (number - (pup[13] * 10*10*10)) / (10*10);
    pup[15] = (number - (pup[14] * 10*10)) / (10);
    pup[16] = (number - (pup[15] * 10));


    pup[12] = pup[12] + 0x30;
    pup[13] = pup[13] + 0x30;
    pup[14] = pup[14] + 0x30;
    pup[15] = pup[15] + 0x30;
    pup[16] = pup[16] + 0x30;*/
    uc buffer[maxPBlockLen + 4] = { 0, maxPBlockLen, 0, 0xFB };


    memcpy(progBlock , buffer, maxPBlockLen+4);


    progBlock[9] = (blockType + 0x0A - 'A'); //Convert 'A' to 0x0A
    if (blockType == '8') progBlock[9] = 0x08;


    progBlock[10] = blknumber / 0x100;
    progBlock[11] = blknumber - (progBlock[10] * 0x100);




    rawLen = daveGetU16from(progBlock + 14);
    netLen = daveGetU16from(progBlock + 3;
    sprintf((char*)pup + 19, "1%06d%06d", rawLen, netLen);


    sprintf((char*)pup + 12, "%05d", blknumber);
    sprintf((char*)paInsert + 14, "%05d", blknumber);


    pup[17] = 'P';
    paInsert[19] = 'P';


    p.header = dc->msgOut + dc->PDUstartO;
    _daveInitPDUheader(&p, 1);
    _daveAddParam(&p, pup, sizeof(pup)-1);


    res = _daveExchange(dc, &p);


    return res;
    };

Ä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. Libnodave S5
    Von Praseodym im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 22.02.2007, 09:57

Lesezeichen

Berechtigungen

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