SPS_Michael
Level-1
- Beiträge
- 11
- Reaktionspunkte
- 2
-> Hier kostenlos registrieren
Hallo
Erst einmal der Hintergrund:
Ich besitze eine Homematic CCU (Hausautomatisierung über Funk).
Die Zustände diverser Sensoren/Aktoren kann ich mittels eines C# Programms über TCPIP auslesen (Das Originalprogramm stammt von A.Krypthul aus dem FHZ-Board -- Vielen Dank dafür) - Dieses Progamm habe ich für meine Zwecke angepasst und funktioniert - Wobei ich erwähnen sollte das ich vorher nie etwas wit C# zu tun hatte, und das Programm mit "learning by doing" angepasst habe.
Nun möchte ich die ausgelesenen Homematic-Daten mittels Libnodave
in einen Datenbaustein meiner S7 übertragen.
Ich habe bereits die libnodave.net.cs in mein Programm importiert und erfolgreich eine Verbindung zu meiner S7 aufgebaut.
(Verbindung über TCPIP mit CP343-1)
Das auslesen von Merker-Bytes und Real-Werten (Floating) habe ich anhand der Libnodave C#-Beispiele nachvollzogen und Funktioniert.
Mein Problem ist nun Folgendes:
1. Blutiger Anfänger mit C# (und allen anderen Hochsprachen)-wie gesagt
2. Ich möchte den Inhalt einer Text-Box (z.B textBox2.Text="19,70")
in den Datenbaustein DB100.DBD0 schreiben (Wobei dieser als Real definiert ist (4Bytes).
Ich habe es bereits mit dem dc.writeBytes befehl probiert:
res = dc.writeBytes(libnodave.daveDB, 100, 0, 4, XXXX);
-erhalte jedoch in meinem Datenbaustein nur unsinnige Werte.
Ich vermute (nach durchlesen der Libnodave-Hilfe) das ich den Realwert, den ich schreiben möchte (hier mit XXXX dargestellt)in 4 Bytes zerlegen muß, und diese dann anschließend noch vertauschen muß (Low-Highbyte), bevor man diese dann an die S7 senden kann.
- und schätzungsweise vorher noch den String von textBox2.Text
in einen Zahlenwert wandeln muss.
-Wobei genau das mein Problem ist, das ich ja von C# keine wirkliche Ahnung habe, ich es aber benutzen muß, da es für meine Homematic CCU nur ein Programm-Modul in c# gibt.
Könnte jemand der C# kann mir ein Codebeispiel posten ???
Gruß
Michael
Erst einmal der Hintergrund:
Ich besitze eine Homematic CCU (Hausautomatisierung über Funk).
Die Zustände diverser Sensoren/Aktoren kann ich mittels eines C# Programms über TCPIP auslesen (Das Originalprogramm stammt von A.Krypthul aus dem FHZ-Board -- Vielen Dank dafür) - Dieses Progamm habe ich für meine Zwecke angepasst und funktioniert - Wobei ich erwähnen sollte das ich vorher nie etwas wit C# zu tun hatte, und das Programm mit "learning by doing" angepasst habe.
Nun möchte ich die ausgelesenen Homematic-Daten mittels Libnodave
in einen Datenbaustein meiner S7 übertragen.
Ich habe bereits die libnodave.net.cs in mein Programm importiert und erfolgreich eine Verbindung zu meiner S7 aufgebaut.
(Verbindung über TCPIP mit CP343-1)
Das auslesen von Merker-Bytes und Real-Werten (Floating) habe ich anhand der Libnodave C#-Beispiele nachvollzogen und Funktioniert.
Mein Problem ist nun Folgendes:
1. Blutiger Anfänger mit C# (und allen anderen Hochsprachen)-wie gesagt
2. Ich möchte den Inhalt einer Text-Box (z.B textBox2.Text="19,70")
in den Datenbaustein DB100.DBD0 schreiben (Wobei dieser als Real definiert ist (4Bytes).
Ich habe es bereits mit dem dc.writeBytes befehl probiert:
res = dc.writeBytes(libnodave.daveDB, 100, 0, 4, XXXX);
-erhalte jedoch in meinem Datenbaustein nur unsinnige Werte.
Ich vermute (nach durchlesen der Libnodave-Hilfe) das ich den Realwert, den ich schreiben möchte (hier mit XXXX dargestellt)in 4 Bytes zerlegen muß, und diese dann anschließend noch vertauschen muß (Low-Highbyte), bevor man diese dann an die S7 senden kann.
- und schätzungsweise vorher noch den String von textBox2.Text
in einen Zahlenwert wandeln muss.
-Wobei genau das mein Problem ist, das ich ja von C# keine wirkliche Ahnung habe, ich es aber benutzen muß, da es für meine Homematic CCU nur ein Programm-Modul in c# gibt.
Könnte jemand der C# kann mir ein Codebeispiel posten ???
Gruß
Michael