S7-300 Analogwert auslesen mit LibNoDave

HoschiD

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute!
Ich muss bei meiner Bachelorarbeit jetzt noch mit LibNoDave einen analogen Eingangswert auslesen, um diesen nachher zu vergleichen.
Dieser steht jetzt bei mir im DB2.DBW0 bzw. habe ich diesen auch zum Testen nochmal im FB1 als MW3 stehen.
Wie lese ich den denn jetzt mit LND aus?! In der area.html von LND steht nur folgendes:

Name Konstante Beispiel(DE) Beispiel(EN) Beispiel-Aufruf
Data blocks
daveDB
DB3.DBD4
DB3.DBD4
daveReadBytes(dc,daveDB,3,4,4,NULL)
Flags/Markers daveFlags
MW4
FW4
daveReadBytes(dc,daveFlags,0,4,2,NULL)

Hatte jetzt schonmal folgendes versucht:

ist=daveReadBytes(dc,daveDB,2,0,2,NULL); //für DB2.DBW0 und
ist=daveReadBytes(dc,daveFlags,1,3,2,NULL); //für MW3 in FB1

Aber das Programm spuckt mir immer nur '0' aus. Da werd ich ja wohl irgendwas falsch auslesen, oder?!
Außerdem wäre es gut zu wissen, was genau für ein Wert von der SPS an das Programm geliefert wird. Momentan
ist bei mir die Variable 'ist' als Integer deklariert. Hatte sie zwar zum Testen auch schon mal anders deklariert, hat
aber am Ergebnis nichts geändert, das blieb immer bei '0'.

Vielen Dank für eure Hilfe!
HoschiD
 
Hoschi, du musst auch mal die Doku lesen, z.B. die daveReadBytes.html
Die gelesenen Bytes werden entweder in den Parameter für buffer eingetragen (letzter Parameter bei daveReadBytes), oder wenn dieser Zeiger NULL ist dann in den Puffer in der daveConnection Struktur, bei dir die Variable "dc".
Schau mal in die Testprogramme wie testISO_TCP.c ab Zeile 325. Da wird die Variante mit NULL verwendet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Thomas!
Vielen Dank für den Tipp! Dachte, dass wenn ich das in eine Variable speichere, ich den Wert dann habe. Aber das ist ja dann nur der Check, ob alles läuft. Deshalb kam auch immer '0' raus.
Wie gesagt, ich hab leider nicht so die riesige Ahnung vom Programmieren und kam dann mit der Doku nicht wirklich gut klar... :sb8: Außerdem war ich ein bisschen unter Zeitdruck und wollte deshalb alles schnell über die Bühne bringen. Aber mit deinen Tipps hab ich auch mal was verstanden! :idea:
Auf jeden Fall hat jetzt alles funktioniert. Das Programm läuft, ließt Werte etc. aus der SPS aus, vergleicht diese, führt Aktionen aus und schreibt ein Logfile für alles, was in der SPS passiert. Jetzt kann ich endlich an meiner Bachelorarbeit weiter schreiben.
Vielen, vielen Dank!! :s12:
 
Zurück
Oben