Red-Sh4nks
Level-1
- Beiträge
- 42
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo wieder mal.
Ich versuche schon seit geraumer Zeit einen eigenen
OPC-Server zu programmieren, welcher MW, Datenblöcke, Eingänge und Ausgänge lesen und schreiben kann.
Die SPS (S7-300 CPU 315) kann ich mit Hilfe des eingebetteten
S7online codes tadellos in Run und Stop befördern.
Beim lesen der MW und DB bin ich aber auf ein Hinderniss gestoßen!
Laut der beigelegten Doku von Libnodave unter "area" werden MW
wie folgt definiert: z.B. MW4:
daveReadBytes(dc,daveFlags,0,4,2,null)
In meinem Programm ist der Befehl "daveReadBytes" aber nicht vorhanden.
Habe die libnodave.net.dll aber eingebunden.
Es gibt aber eine ähnliche Funktion mit anderen Parametern:
dc.readBytes(int area, int DBnumber, int Start, int len, byte[]buffer)
(dc = libnodave.daveconnection)
1. Wurde die Funktion daveReadBytes durch Readbytes ersetzt und ist die in der Doku beschriebene Funktion lediglich veraltet? (Version 0.8.1)
2. Oder muss ich die andere Libnodave.dll auch einbinden um an diese funktion zu gelangen? Wenn ja. Wie?
Ich hab mal mit dem dc.readbytes gearbeitet und folgendes programmiert:
Angenommen ich will den MW10 lesen
int MWnr = 10;
dc.readBytes(libnodave.daveFlags, 0, MWnr, 2, null); //gibt 0 zurück
int erg = dc.getU32();
txt_ausgabe.text = erg.tostring();
Bekomme abnormale Ergebnisse raus:
bei MWnr = 50, erg = 6553610
bei MWnr = 10, erg = 84541450
bei MWnr = 100, erg = 10
werde daraus nicht wirklich schlau...
3. Könnt ihr mir bitte helfen meinen Fehler zu finden?
Ich hoffe ihr könnt mir helfen!
lg Marco*
Ich versuche schon seit geraumer Zeit einen eigenen
OPC-Server zu programmieren, welcher MW, Datenblöcke, Eingänge und Ausgänge lesen und schreiben kann.
Die SPS (S7-300 CPU 315) kann ich mit Hilfe des eingebetteten
S7online codes tadellos in Run und Stop befördern.
Beim lesen der MW und DB bin ich aber auf ein Hinderniss gestoßen!
Laut der beigelegten Doku von Libnodave unter "area" werden MW
wie folgt definiert: z.B. MW4:
daveReadBytes(dc,daveFlags,0,4,2,null)
In meinem Programm ist der Befehl "daveReadBytes" aber nicht vorhanden.
Habe die libnodave.net.dll aber eingebunden.
Es gibt aber eine ähnliche Funktion mit anderen Parametern:
dc.readBytes(int area, int DBnumber, int Start, int len, byte[]buffer)
(dc = libnodave.daveconnection)
1. Wurde die Funktion daveReadBytes durch Readbytes ersetzt und ist die in der Doku beschriebene Funktion lediglich veraltet? (Version 0.8.1)
2. Oder muss ich die andere Libnodave.dll auch einbinden um an diese funktion zu gelangen? Wenn ja. Wie?
Ich hab mal mit dem dc.readbytes gearbeitet und folgendes programmiert:
Angenommen ich will den MW10 lesen
int MWnr = 10;
dc.readBytes(libnodave.daveFlags, 0, MWnr, 2, null); //gibt 0 zurück
int erg = dc.getU32();
txt_ausgabe.text = erg.tostring();
Bekomme abnormale Ergebnisse raus:
bei MWnr = 50, erg = 6553610
bei MWnr = 10, erg = 84541450
bei MWnr = 100, erg = 10
werde daraus nicht wirklich schlau...
3. Könnt ihr mir bitte helfen meinen Fehler zu finden?
Ich hoffe ihr könnt mir helfen!

lg Marco*