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

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 47

Thema: Libnodave Version 0.8

  1. #21
    Registriert seit
    25.07.2005
    Ort
    Vogelsbergkreis
    Beiträge
    1.717
    Danke
    48
    Erhielt 68 Danke für 60 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zottel,
    wie les ich denn am gescheidsten Wörter und Doppelwörter bzw. wie kann man die am einfachsten aus zwei/vier Bytes errechnen?

    Danke und Gruß Sebastian

    Edit: Habe es schon... geht ja ganz einfach. So in etwa müsste das sein: (byte1)*2^8 + (byte0)*2^0 = word

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

    Standard

    Zitat Zitat von seeba
    Hallo Zottel,
    wie les ich denn am gescheidsten Wörter und Doppelwörter bzw. wie kann man die am einfachsten aus zwei/vier Bytes errechnen?

    Danke und Gruß Sebastian

    Edit: Habe es schon... geht ja ganz einfach. So in etwa müsste das sein: (byte1)*2^8 + (byte0)*2^0 = word
    Wozu stellst du solche Rechnungen an? Die sind alle schon drin:
    daveGetU16, daveGetS16, daveGetU32, daveGetS32, daveGetFloat.
    Gibt's da irgendwo ein fundamentales Mißverständnis?

  3. #23
    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 Zottel
    Zitat Zitat von seeba
    Hallo Zottel,
    wie les ich denn am gescheidsten Wörter und Doppelwörter bzw. wie kann man die am einfachsten aus zwei/vier Bytes errechnen?

    Danke und Gruß Sebastian

    Edit: Habe es schon... geht ja ganz einfach. So in etwa müsste das sein: (byte1)*2^8 + (byte0)*2^0 = word
    Wozu stellst du solche Rechnungen an? Die sind alle schon drin:
    daveGetU16, daveGetS16, daveGetU32, daveGetS32, daveGetFloat.
    Gibt's da irgendwo ein fundamentales Mißverständnis?
    Ja, denn wo übergeb ich den Funktionen die Bytes bzw. was sie umrechnen sollen?

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

    Standard

    Zitat Zitat von seeba
    Ja, denn wo übergeb ich den Funktionen die Bytes bzw. was sie umrechnen sollen?
    Gar nicht.
    Nehmen wir an du hast einen DB der so aus sieht:
    a WORD ein Wort
    b BYTE ein Byte
    c REAL ein real, fängt extra auf DBB3 an, damits schwerer aussieht
    d WORD ein Wort
    e DWORD ein Doppel-Wort
    f Integer ein Wort mit Vorzeichen
    g WORD ein Wort

    Du liest den ganzen Kram ein:
    daveReadBytes(dc, daveDB, DBnummer, 0, 17, NULL);
    jetzt stehen 17 Bytes im internen Puffer der daveConnection.
    a=daveGetU16(dc);
    b=daveGetU8(dc);
    c=daveGetFloat(dc);
    d=daveGetU16(dc);
    e=daveGetU32(dc);
    f=daveGetS16(dc);
    g=daveGetU16(dc);

    Es gibt die ganzen Dinger auch noch als daveGetFrom... Da kannst du einen eigenen Puffer und eine Position angeben.

  5. #25
    Registriert seit
    03.10.2005
    Beiträge
    160
    Danke
    17
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Tach Zottel!
    Muss ich für die Libnodave.dll Step7 installieren damit es mit s7online funktioniert??
    Oder geht das auch wenn ich nur z.B. den Treiber für den Adapter installiere??(Wird da die s7onlinx.dll mit installiert?)

    Gruß Ronnie
    Zitieren Zitieren RE  

  6. #26
    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 ronnie.b
    Tach Zottel!
    Muss ich für die Libnodave.dll Step7 installieren damit es mit s7online funktioniert??
    Oder geht das auch wenn ich nur z.B. den Treiber für den Adapter installiere??(Wird da die s7onlinx.dll mit installiert?)

    Gruß Ronnie
    Wenn du die S7online Funktion nutzen willst, reicht es wenn du z.B. SIMATIC NET installierst. Das brauchst du dann auch nicht authorisieren!
    Zitieren Zitieren Re: RE  

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

    Standard

    Irgendwas ist faul.

    Kann es sein, daß daveReadBytes irgenwas ruiniert?

    Wenn man mehrmals disconnectet und wieder connectet (ist mit der Delphi-Demo mit großen Blöcken gut nachvollziebar) bleibt das Ganze irgendwann beim Connect oder Disconnect stehen, oder bringt eine Schutzrechtsverletzung (Häufig Zugriffsverletzung bei Adresse 10008AAA in Modul Libnodave.dll, wenn das Problem beim connect auftritt). Wenn man keine Daten mit daveReadBytes liest, dann kann man beliebig oft connect und disconnect ausführen. Ich kann leider nicht sagen, ob das nur bei der s7Onlinx.dll so ist, da ich im Moment keinen anderen Adapter als den CP5511 zur Verfügung hab. Kann es evtl. sein, das daveFree irgenwelche Leichen zurückläßt, die mit dem Buffer zu tun haben?

    Beim Disconnect passiert folgendes:

    Code:
    FLastError := daveDisconnectPLC(DaveConn);
          daveFree(DaveConn);
          FLastError := daveDisconnectAdapter(DaveIntf);
          daveFree(DaveIntf);
    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. #28
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Ralle
    Irgendwas ist faul.

    Kann es sein, daß daveReadBytes irgenwas ruiniert?

    Wenn man mehrmals disconnectet und wieder connectet (ist mit der Delphi-Demo mit großen Blöcken gut nachvollziebar) bleibt das Ganze irgendwann beim Connect oder Disconnect stehen, oder bringt eine Schutzrechtsverletzung (Häufig Zugriffsverletzung bei Adresse 10008AAA in Modul Libnodave.dll, wenn das Problem beim connect auftritt). Wenn man keine Daten mit daveReadBytes liest, dann kann man beliebig oft connect und disconnect ausführen. Ich kann leider nicht sagen, ob das nur bei der s7Onlinx.dll so ist, da ich im Moment keinen anderen Adapter als den CP5511 zur Verfügung hab. Kann es evtl. sein, das daveFree irgenwelche Leichen zurückläßt, die mit dem Buffer zu tun haben?
    Kann ich nicht sagen, aber eher unwahrscheinlich. Ich habe geschrieben, daß s7online als Protkoll ALPHA ist.
    Solange nicht eindeutig überprüft wird, ob ein von der s7onlinx.dll an daveGetResponseS7online zurückgegebener Puffer wirklich Daten von der SPS enthält, kann alles mögliche passieren, dessen Details mich ehrlich gesagt nicht interessieren.

    Meine Anwendungen verbinden sich eigentlich nur einmal mit der CPU. Wenn du das auch so machst, kannst du s7online als Protkoll verwenden, wenn du aber einen Grund hast, warum du disconnect() und connect() mehrfach aufrufen mußt, warte bitte auf die nächste Version.

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

    Standard

    Ja, Daten kommen an. Es ist eine Anwendung, in der man die Kommunikation starten und stoppen kann. Wenn der Nutzer das mehrmals hintereinader tut (warum auch immer), sollte die Applikation nicht einfrieren bzw. abstürzen. Ich habe den Eindruck gewonnen, daß es an der DLL liegt, da ich das Problem sowohl bei der Demo, als auch bei meiner Umsetzung "zu Fuß" habe. Das der Code Alpha ist ist ja klar, irgendwas passiert wohl beim Disconnect, leider habe ich keinen C-Compiler und bin in C auch nicht so ganz sattelfest, da trau ich mir nicht zu in der DLL rumzudebuggen und das Problem zu finden.
    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

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle
    Ja, Daten kommen an. Es ist eine Anwendung, in der man die Kommunikation starten und stoppen kann.
    Wozu? bzw. wenn du nicht kommunizierst, laß doch die Verbindung offen.
    ... irgendwas passiert wohl beim Disconnect, leider habe ich
    disconnectPLC tut gar nichts.
    disconnectAdapter schließt das handle der Verbindung zur s7onlinx.dll.
    Das ist eigentlich was sonst closePort macht.
    Daher kannst du nach disconnectAdapter gar nichts mehr tun, ohne mit openS7online ein neues handle zu holen. Das ist unschön und anders als bei allen anderen Protokollen, aber ich habe noch keine gute Lösung dafür.

    Da disconnectPLC nichts tut, wird connectPLC möglicherweise die CPU-inetenen Verbindungen nacheinander belegen, bis nichts mehr geht. Kannst du dir parallel in Step7 angucken.

Ähnliche Themen

  1. LibNoDave aktuelle Version "hängt"
    Von Lazarus™ im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 24.02.2011, 22:58
  2. Neue Version meines LibNoDave Datenbank Protokollers...
    Von Jochen Kühner im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 16.03.2009, 13:38
  3. Neues libnodave Version (woher?)
    Von BorisDieKlinge80 im Forum Hochsprachen - OPC
    Antworten: 79
    Letzter Beitrag: 02.02.2009, 14:48
  4. PCS7 Version 7.0 und CPU 414-3 Version 4.0/4.1
    Von tobias1036 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.09.2008, 17:55
  5. Libnodave Version 0.8.4.4
    Von Zottel im Forum Werbung und Produktneuheiten
    Antworten: 0
    Letzter Beitrag: 08.02.2008, 16:55

Lesezeichen

Berechtigungen

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