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

Ergebnis 1 bis 9 von 9

Thema: MW20 lesen mit LibNoDave

  1. #1
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    es will einfach nicht gelingen, den Wert im MW20 zu lesen. Der Wert im MW20 geht im Bereich 0 bis 5000 in Zehnerschritten rauf und runter.
    In der Textbox steht immer nur der Wert "0". Der Timer arbeitet. Es gibt keine Fehlermeldung. Ich teste mit Accontrol.

    Code:
    Private Sub Timer2_Tick(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Timer2.Tick
    Dim MW(1) As Byte
    If fds.rfd > 0 Then
    'MW20 = 20x8 = 160
    res = dc.readBytes(libnodave.daveFlags, 0, 160, 2, MW)
    txtWert.Text = dc.getS16
    End If
    End Sub
    Gruß
    Earny
    Zitieren Zitieren MW20 lesen mit LibNoDave  

  2. #2
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Was sagt der Debugger dazu? Wird die Anweisung ausgeführt? Wo kommt welcher Wert zurück?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  3. #3
    Registriert seit
    31.10.2008
    Beiträge
    7
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Bei readBytes wird die Startadresse in Bytes angegeben, also in diesem Fall 20

  4. #4
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Hallo Rainer,

    "res" erhält den Wert "0". Das steht glaube ich für OK.
    Der "dc.getS16" liefert die "0" in die Textbox. Das müsste so sein, weil die Textbox in der Voreinstellung leer ist.

    Der Debugger meldet in der Ausgabe:
    openSocketw.c: bind Socket error: No error
    openSocketw.c: Connected to host: 192.168.53.53

    Ich habe die Sache jetzt nicht mehr mit Accontrol, sondern mit einer wirklichen CPU getestet. Das MPI/LAN-Kabel hat die IP-Adresse
    192.168.53.53

    Gibt es außer der "libnodave.dll" noch weitere Dateien, die man nach System32 kopieren muss, wenn man mit VB2005 arbeitet?
    Für die Bit-Verarbeitung hat aber die "libnodave.dll" genügt.

    Ich habe bisher keine Erfahrung mit dem Lesen von Digitaladressen der S7 mit LibNoDave.

    Gruß
    Earny

  5. #5
    Registriert seit
    31.10.2008
    Beiträge
    7
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Hallo Earny,

    dc.gets16 liefert eine Null, weil in MW160 nichts steht.
    Die korrekte Anfrage lautet:
    res=dc.readBytes(libnodave.daveFlags,0,20,2,MW)

  6. Folgender Benutzer sagt Danke zu Andreas138 für den nützlichen Beitrag:

    Earny (23.11.2008)

  7. #6
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Hallo Andreas,
    Danke, ich hab das eben auch gerade herausgefunden. Ich habe mich heute mit dem Lesen und Schreiben von Bits beschäftigt. Da wäre die 160 richtig gewesen.

    Jetzt habe ich ein neues Problem:
    Die Aktualisierung des Wertes über LibNoDave aus dem MW20 in meine VB2005-Visualisierung ist aber relativ langsam. Der Timer ist auf 100 ms eingestellt. Es wird allerdings nur alle 1 bis 1,5 s ein Wert aktualisiert.
    Kann man die Kommunikation über LibNoDave schneller hinbekommen?

    Gruß
    Earny

  8. #7
    Registriert seit
    31.10.2008
    Beiträge
    7
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    In meinem Testprogramm hat das Auslesen 500ms gedauert und ich hab 4 Anfragen gesendet. Hast Du mal probiert, mittels MPI2-Protokoll und dem in PLC-VCom eingerichteten virtuellen Com-Port die Verbindung aufzubauen?
    So hatte ich es gemacht.

  9. #8
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Hallo Andreas,
    ich habe mal PLCVCom aktiviert. Damit wird es auch nicht schneller.
    Anschließend habe ich noch mal den Test mit Accontrol gemacht. Das ist genauso langsam. Ich glaube die Wahl des Adapters "MPI/LAN-Kabel" bzw. Siemens-Adapter bzw. Accontrol spielt keine entscheidende Rolle.

    Gruß
    Earny

  10. #9
    Registriert seit
    31.10.2008
    Beiträge
    7
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habs grad noch mal mit ACControl getestet, damit gehts sogar noch schneller. Als Indikator nehme ich einen Timer, den ich auslese. Mein VB-Timer ist auf 100ms eingestellt und der Wert des S7-Timers den ich auslese, wird alle 100-200ms aktualisiert

Ähnliche Themen

  1. SZL lesen mit LibNoDave
    Von GvOdin im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 29.01.2014, 10:57
  2. Daten lesen aus DB mit libnodave
    Von Proxy im Forum Hochsprachen - OPC
    Antworten: 12
    Letzter Beitrag: 18.09.2013, 07:02
  3. libnodave s7-1200 DB lesen
    Von bommel im Forum Hochsprachen - OPC
    Antworten: 19
    Letzter Beitrag: 11.11.2010, 18:21
  4. RLO van timer lesen mit libnodave
    Von Ruud im Forum Hochsprachen - OPC
    Antworten: 15
    Letzter Beitrag: 20.12.2009, 10:26
  5. Mit libnodave subnetztübergreifend lesen?
    Von delphie im Forum Hochsprachen - OPC
    Antworten: 11
    Letzter Beitrag: 03.11.2005, 06:38

Lesezeichen

Berechtigungen

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