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

Ergebnis 1 bis 7 von 7

Thema: LibNoDave Bitzugriff...

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Will von VB.Net mit LibnoDave Bit's lesen und schrieben. Würde dazu gerne die Bit Funktionen von LibNoDave verwenden. Es funktioniert aber irgendwie nicht, kann mir jemand sagen ob Ich die Funktion richtig verwende:

    retv = myDaveConnection.readBits(libnodave.daveBlockType_DB, dbNummer, readByte * 8 + readBit, 1, Nothing)

    bit = myDaveConnection.getU8()


    Das Problem ist, die Funktion readBits liefert -128 bei einer verbindung über die Siemens DLL's als rückgabewert, und bei verbindung via TCP 33280 als rückgabewert. Die Connect funktionen von LibNoDave laufen alle sauber durch.
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren LibNoDave Bitzugriff...  

  2. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Sorry hatte falsche Rack ausgewählt. nun bekomme ich die 5 -> AdressOutOfRange... aber der DB existiert!! Und ist auch groß genug!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Sorry...  

  3. #3
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    schau mal diesen beitrag: Anleitung libnodave verbindung zum S7 SPS

    besonders den beitrag von zottel
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #4
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Ok, müsste aber trotzdem funktionieren, da readByte=1 ist und er dann das achte bytes lesen würde. gut ich kann das auch auf davereadbytes umstellen! Aber die Funktion DaveWrtiteBits brauche ich, da ich nur ein bit und nicht ein ganzes byte zurückschreiben möchte!!!

    Aber auch dave ReadBytes liefert mir als reval 5!!! Wieso???
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Ok...  

  5. #5
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Ich habe readBytes mit blocktype_db aufgerufen, welches eine konstante mit dem wert 10 ist, anstats davedb, welches 132 ist benutzt... nun gehts...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Wha... Problem gefunden....  

  6. #6
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.758
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Kann mir jemand sagen wie Ich davewritebits benutze um nur ein bestimmtes bit in einem byte zu setzen, und die restlichen unberührt zu lassen???
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Nun die Frage...  

  7. #7
    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 Jochen Kühner Beitrag anzeigen
    Kann mir jemand sagen wie Ich davewritebits benutze um nur ein bestimmtes bit in einem byte zu setzen, und die restlichen unberührt zu lassen???
    Eigentlich genau gleich wie daveWriteBytes. Die einzigen beiden Unterschiede liegen erstens in der Berechnung der Bitadresse, aber das ist ja im ersten Post bei daveReadBits schon korrekt gelöst, und zweitens in der (momentanen) Einschränkung von daveRead/WriteBits, immer nur ein einzelnes Bit bearbeiten zu können.

    Die Beschränkung wird übrigens von den CPUs und nicht vom Protokoll verursacht, und da sich das in Zukunft ändern könnte, hat Zottel den Parameter für die Anzahl trotzdem implementiert.


    Gruß Axel
    Man muß sparn wo mn knn!

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 09.09.2010, 00:27
  2. Speicher indirekter Bitzugriff?
    Von rerdma3s im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 17.03.2010, 09:18
  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. indezierter Bitzugriff
    Von tinosps im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 04.07.2008, 15:12
  5. Bitzugriff in WinCC VBS
    Von Anfängerproggi im Forum HMI
    Antworten: 9
    Letzter Beitrag: 30.07.2007, 10:51

Lesezeichen

Berechtigungen

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