funkey
Level-2
- Beiträge
- 355
- Reaktionspunkte
- 105
-> Hier kostenlos registrieren
Hallo Leute.
Hab mir eine eigene Bibliothek zum Auslesen von Daten aus einer S7-300/S7-400 über das Netzwerk geschrieben.
Nun will ich sie euch mal kurz vorstellen. Es ist allerding noch eine Beta-Version, da ich noch einige Dinge verbessern will, und auch das Schreiben von Werten will ich noch implementieren.
Die DLL hat nur 3 exportierte Funktionen, diese sollten selbserklärend sein.
Der Funktion S7Read wird ein String-Array übergeben, das z.B. so aussehen kann:
Man kann die Werte also genauso eintragen wie sie z.B. in die Variabeltabelle eingetragen werden.
Alle Werte, egal ob Bit, Real, Timer oder Zähler, werden als 'float' zurückgegeben, da dies der einfachste Weg ist, und in 99% der Anwendungen reichen wird.
Angehängt ist ein kleines Code:Blocks-Projekt in C, das die Verwendung der DLL verdeutlicht.
Anhang anzeigen S7TCP Beispiel.rar
Schöne Grüße,
funkey
Hab mir eine eigene Bibliothek zum Auslesen von Daten aus einer S7-300/S7-400 über das Netzwerk geschrieben.
Nun will ich sie euch mal kurz vorstellen. Es ist allerding noch eine Beta-Version, da ich noch einige Dinge verbessern will, und auch das Schreiben von Werten will ich noch implementieren.
Die DLL hat nur 3 exportierte Funktionen, diese sollten selbserklärend sein.
Code:
int S7Connect(LPCSTR IP, int SlotNo, S7Conn *conn);
void S7Disconnect(S7Conn *conn);
int S7Read(S7Conn *conn, LPCSTR syms[], int iCount, float result[]);
Der Funktion S7Read wird ein String-Array übergeben, das z.B. so aussehen kann:
Code:
LPCSTR sym[] = {"M0.1", "DB65.DBD0", "T21", "db65.dbx2.0", "z100", "MW20"};
Alle Werte, egal ob Bit, Real, Timer oder Zähler, werden als 'float' zurückgegeben, da dies der einfachste Weg ist, und in 99% der Anwendungen reichen wird.
Angehängt ist ein kleines Code:Blocks-Projekt in C, das die Verwendung der DLL verdeutlicht.
Anhang anzeigen S7TCP Beispiel.rar
Schöne Grüße,
funkey