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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Probleme mit Libnodave und Visual Basic

  1. #1
    Registriert seit
    02.03.2006
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Liebe Leute!
    Ich probiere gerade die LibNoDave 0.81 mit Visual Basic 6 aus. Nutze Field PG mit CP5611 an einer S7-315. Zugangspunkt ist S7ONLINE. Alles funktioniert wunderbar bis ich die SPS ausschalte oder Kabel trenne. Dann kommt beim Lesen natürlich eine Fehlermeldung. Daraufhin trenne ich die Verbindung softwareseitig (cleanup), schalte SPS wieder ein, initialisiere Verbindung softwareseitig wieder (funktioniert auch) doch dann bekomme ich beim Lesen (daveReadBytes) Fehler "-128".
    Frage:
    Was bedeutet dies, bzw. was kann ich tun damit mein VB-Programm nach aus- und einschalten der SPS wieder von selber läuft?

    Habe eine universelle Betriebsdatenerfassung programmiert, kann dieses aber nicht an Kunden weitergeben, wenn ich dieses Problem nicht in den Griff bekomme.

    Wenn mir Jemand helfen könnte, wäre das echt toll.

    Danke im voraus
    Donnerkeil
    Zitieren Zitieren Probleme mit Libnodave und Visual Basic  

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

    Standard

    Probier mal, im Sub cleanup an Stelle von

    closePort(ph)

    closeS7online(ph)

    aufzurufen.

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Hier noch etwas zu den Fehlern aus dem Code:

    .h-Datei:

    Code:
     
    /*
        Result codes. Genarally, 0 means ok, 
        >0 are results (also errors) reported by the PLC
        <0 means error reported by library code.
    */
    #define daveResOK 0    /* means all ok */
    #define daveResNoPeripheralAtAddress 1  /* CPU tells there is no peripheral at address */
    #define daveResMultipleBitsNotSupported 6  /* CPU tells it does not support to read a bit block with a */
          /* length other than 1 bit. */
    #define daveResItemNotAvailable200 3  /* means a a piece of data is not available in the CPU, e.g. */
          /* when trying to read a non existing DB or bit bloc of length<>1 */
          /* This code seems to be specific to 200 family. */
     
    #define daveResItemNotAvailable 10  /* means a a piece of data is not available in the CPU, e.g. */
          /* when trying to read a non existing DB */
    #define daveAddressOutOfRange 5   /* means the data address is beyond the CPUs address range */
    #define daveWriteDataSizeMismatch 7  /* means the write data size doesn't fit item size */
    #define daveResCannotEvaluatePDU -123     /* PDU is not understood by libnodave */
    #define daveResCPUNoData -124 
    #define daveUnknownError -125 
    #define daveEmptyResultError -126 
    #define daveEmptyResultSetError -127 
    #define daveResUnexpectedFunc -128 
    #define daveResUnknownDataUnitSize -129
    #define daveResNoBuffer -130
    #define daveNotAvailableInS5 -131
    #define daveResShortPacket -1024 
    #define daveResTimeout -1025
    .c-Datei
    Code:
     
    /*
        error code to message string conversion:
    */
    char * DECL2 daveStrerror(int code) {
        switch (code) {
     case daveResOK: return "ok";
     case daveResMultipleBitsNotSupported:return "the CPU does not support reading a bit block of length<>1";
     case daveResItemNotAvailable: return "the desired item is not available in the PLC";
     case daveResItemNotAvailable200: return "the desired item is not available in the PLC (200 family)";
     case daveAddressOutOfRange: return "the desired address is beyond limit for this PLC";
     case daveResCPUNoData : return "the PLC returned a packet with no result data";
     case daveUnknownError : return "the PLC returned an error code not understood by this library";
     case daveEmptyResultError : return "this result contains no data";
     case daveEmptyResultSetError: return "cannot work with an undefined result set";
     case daveResCannotEvaluatePDU: return "cannot evaluate the received PDU";
     case daveWriteDataSizeMismatch: return "Write data size error";
     case daveResNoPeripheralAtAddress: return "No data from I/O module";
     case daveResUnexpectedFunc: return "Unexpected function code in answer";
     case daveResUnknownDataUnitSize: return "PLC responds with an unknown data type";
     
     case daveResShortPacket: return "Short packet from PLC";
     case daveResTimeout: return "Timeout when waiting for PLC response";
     case daveResNoBuffer: return "No buffer provided";
     case daveNotAvailableInS5: return "Function not supported for S5";
     
     case 0x8000: return "function already occupied.";
     case 0x8001: return "not allowed in current operating status.";
     case 0x8101: return "hardware fault.";
     case 0x8103: return "object access not allowed.";
     case 0x8104: return "context is not supported. Step7 says:Function not implemented or error in telgram.";
     case 0x8105: return "invalid address.";
     case 0x8106: return "data type not supported.";
     case 0x8107: return "data type not consistent.";
     case 0x810A: return "object does not exist.";
     case 0x8301: return "insufficient CPU memory ?";
     case 0x8402: return "CPU already in RUN or already in STOP ?";
     case 0x8404: return "severe error ?";
     case 0x8500: return "incorrect PDU size.";
     case 0x8702: return "address invalid."; ;
     case 0xd002: return "Step7:variant of command is illegal.";
     case 0xd004: return "Step7:status for this command is illegal.";
     case 0xd0A1: return "Step7:function is not allowed in the current protection level.";
     case 0xd201: return "block name syntax error.";
     case 0xd202: return "syntax error function parameter.";
     case 0xd203: return "syntax error block type.";
     case 0xd204: return "no linked block in storage medium.";
     case 0xd205: return "object already exists.";
     case 0xd206: return "object already exists.";
     case 0xd207: return "block exists in EPROM.";
     case 0xd209: return "block does not exist/could not be found.";
     case 0xd20e: return "no block present.";
     case 0xd210: return "block number too big.";
    // case 0xd240: return "unfinished block transfer in progress?";  // my guess
     case 0xd240: return "Coordination rules were violated.";
    /*  Multiple functions tried to manipulate the same object.
        Example: a block could not be copied,because it is already present in the target system
        and
    */    
     case 0xd241: return "Operation not permitted in current protection level.";
    /**/ case 0xd242: return "protection violation while processing F-blocks. F-blocks can only be processed after password input.";
     case 0xd401: return "invalid SZL ID.";
     case 0xd402: return "invalid SZL index.";
     case 0xd406: return "diagnosis: info not available.";
     case 0xd409: return "diagnosis: DP error.";
     case 0xdc01: return "invalid BCD code or Invalid time format?";
     default: return "no message defined!";
        }
    }
    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
    Donnerkeil ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.03.2006
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Zottel!

    Ich habe schon closeS7online(ph) ausprobiert, hat aber nichts geholfen.

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

    Standard

    S7-online ist die jüngste und daher am wenigsten ausgereifte Möglichkeit, die Libnodave bietet

    Eine Notlösung könnte sein, daß du dein VB-Programm ganz beendest und aus einer Batch-Datei neu startest.

  6. #6
    Donnerkeil ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.03.2006
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Zottel!

    Genau das habe ich schon probiert und es funktioniert auch. Ist aber natürlich nur eine Notlösung. S7Online wollte ich nur benutzen, da ein möglicher Kunde schon einen PC mit Siemens PB-PCI-Karte hat (für Visu) und wenn ich diese nutzen will, muss ich doch S7-Online nehmen, oder?

    Aber trotzdem Danke
    Donnerkeil

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Wenn gleichzeitig die Visu läuft könnte es Probleme geben, wie Zottel schon sagte, s7Online hat noch einige Probleme. Eine weitere Möglichkeit wäre Prodave-Mini von Siemens (man kann nur Datenbausteine lesen und beschreiben, dafür aber recht preiswert).
    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
    Donnerkeil ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.03.2006
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Ralle!

    Wenn ich nicht S7-Online verwende soll, aber trotzdem MPI oder Profibus nutzen möchte , was brauche ich dann PC-seitig für die Libnodave?

    Gruß
    Donnerkeil

  9. #9
    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 Donnerkeil
    Hallo Ralle!

    Wenn ich nicht S7-Online verwende soll, aber trotzdem MPI oder Profibus nutzen möchte , was brauche ich dann PC-seitig für die Libnodave?

    Gruß
    Donnerkeil
    Für MPI einen RS232<->MPI Adapter! Ob PROFIBUS ohne S7online geht, ist fraglich. Sollte man mal testen!

  10. #10
    Donnerkeil ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.03.2006
    Beiträge
    19
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo seeba!

    Funktionieren alle RS232-MPI Adapter oder sind bestimmte Hersteller zu empfehlen?

    Gruß Donnerkeil

Ähnliche Themen

  1. Libnodave und Visual Basic 2008
    Von Hocheck im Forum Hochsprachen - OPC
    Antworten: 27
    Letzter Beitrag: 22.12.2010, 21:39
  2. Visual Basic .NET und OPC XML
    Von wiesel187 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 12.10.2010, 15:34
  3. Visual Basic always on top
    Von demmy86 im Forum Hochsprachen - OPC
    Antworten: 10
    Letzter Beitrag: 21.09.2008, 20:36
  4. Probleme mit Libnodave und Visual Basic
    Von Donnerkeil im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 09.03.2006, 15:19
  5. Visual Basic.Net
    Von Hamster im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 11.10.2004, 09:48

Lesezeichen

Berechtigungen

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