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

Ergebnis 1 bis 3 von 3

Thema: Libnodave unterschiedliche Datenbereiche parallel auslesen

  1. #1
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe folgendes Problem:

    Ich möchte mit Libnodave zyklisch aus einer S7 Daten auslesen, diese liegen aber in sowohl in DBs, als auch in Merkern etc.

    Verwendet wird Delphi.

    Wenn ich es richtig verstanden haben, wird in der Property Area der Datenbereich angegeben, aus dem ausgelesen werden soll. So müßte ich doch theoretisch immer zwischen Area=DaveDB und Area=DaveFlags wechseln, um die jeweiligen Werte zu erhalten.

    Wenn ich jetzt im Ereignis OnRead zwischen den Bereichen switche, funktioniert das aber nicht.

    Code:
    procedure TForm1.NoDave1Read(Sender: TObject);
     
    // je nach datenbereich auslesen
    IF NoDave1.Area = DaveDB    then NoDave1.GetFloat(MyDbAdress);
    IF NoDave1.Area = DaveFlags then NoDave1.GetFloat(MyFlagAdress);
     
    // Umschalten zwischen DaveDB und DaveFlags
    IF NoDave1.Area = DaveDB then
    NoDave1.Area     := Daveflags
    else
    begin
    NoDave1.Area         := DaveDB;
    NoDave1.DBNumber  := MyDbNumber;
    end;
    
    end;
    Im obigen Beispiel ist die die Größe des Buffers bei DaveDB und DaveFlags gleich.

    Wenn ich den Wechsel von DaveDb auf DaveFlags einfach auf 2 Buttons lege, funktioniert das ganze.

    Ich kann die Komponente auch 2 mal einfügen. Die eine liest den DB Bereich, die andere den Merkerbereich. Funktioniert aber nicht mit der "S7Online"-Geschichte. Per TCP funktioniert das.

    Zum Schnelltesten auf dem Schreibtisch wäre es aber halt schön, wenns über den CP5511 funktionieren würde...
    Zitieren Zitieren Libnodave unterschiedliche Datenbereiche parallel auslesen  

  2. #2
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard

    Zitat Zitat von Grubba Beitrag anzeigen
    Wenn ich es richtig verstanden haben, wird in der Property Area der Datenbereich angegeben, aus dem ausgelesen werden soll. So müßte ich doch theoretisch immer zwischen Area=DaveDB und Area=DaveFlags wechseln, um die jeweiligen Werte zu erhalten.
    Die Properties dienen eigentlich nur um schnell mal per Objektinspector die Kommunikation zum Laufen zu bringen, sozusagen um Anfängern den Einstieg zu erleichtern. Wenn aus mehreren Bereichen gelesen werden soll, dann geht das am Besten durch zyklisches Lesen mit der Methode ReadBytes (die Variante mit den vielen Parametern), der dann der zu lesende Bereich in den Parametern übergeben wird. Nach dem Aufruf von ReadBytes kann man dann wie gewohnt mit den Get...-Methoden die Werte aus den Buffer auslesen, und dann den nächsten Bereich mit ReadBytes in den Buffer einlesen. Das zyklische Lesen kann man ganz einfach mit einem Timer oder einem eigenen Thread implementieren. Das Property Interval von TNoDave muß in beiden Fällen auf 0 gesetzt werden.


    Gruß Axel
    Man muß sparn wo mn knn!

  3. Folgender Benutzer sagt Danke zu afk für den nützlichen Beitrag:

    Grubba (19.06.2008)

  4. #3
    Avatar von Grubba
    Grubba ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.02.2008
    Ort
    Westfalen (Dort wo's Schwarzbrot gibt)
    Beiträge
    417
    Danke
    8
    Erhielt 87 Danke für 72 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Besten Dank für die Info. Spiele erst seit gestern ein wenig mit der Komponente herum. Es wäre halt schön gewesen, wenn man das Ereignis OnRead dafür verwenden könnte, weil das ja schon einen eingebauten Timer besitzt.

    Das mit dem ReadBytes und anschließendem GetTypXYZ habe ich gerade probiert, funktioniert soweit einwandfrei.

Ähnliche Themen

  1. Status der CPU mit Libnodave auslesen.
    Von toki im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 09.06.2010, 22:29
  2. Libnodave, VBA und Auslesen von Bits
    Von Fluffi im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 24.07.2009, 14:09
  3. Libnodave und ganze DB´s auslesen
    Von badgoes im Forum Hochsprachen - OPC
    Antworten: 6
    Letzter Beitrag: 18.03.2009, 22:49
  4. Libnodave - Bausteininfos auslesen
    Von Jenser im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 02.05.2007, 17:42
  5. Mit Libnodave Diagnosepuffer auslesen
    Von Bewareofthis im Forum Hochsprachen - OPC
    Antworten: 6
    Letzter Beitrag: 09.11.2005, 17:22

Lesezeichen

Berechtigungen

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