Grubba
Level-1
- Beiträge
- 425
- Reaktionspunkte
- 88
-> 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.
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...
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;
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...