Hallo zusammen, ich erhalte Daten von einer Windkraftanlage über RS232 (Controller ist ein Mita WP3000). Der Server sendet ein Paket und erhält darauf vom Controller eine Antwort mit den gewünschten Werten (z.B. Windgesch., Leistung, Rpm, Fehlercode). Die Daten die der Server sendet sind kein Problem zu erzeugen, allerdings habe ich echte Probleme Daten aus der Antwort zu bekommen. Ich habe jetzt experimentel ein Lookup-Array mit 255 Werten erstellt das ich nutzen kann um Wind und Leistung zu "berechnen". Im Anhang ist einmal mein Code für die Berechnung und ein Sheet das die Daten etwas aufschlüsselt. Vielleicht erkennt ja jemand den Algorithmus der nötig ist um die empfangenen Daten zu verarbeiten. Weil insbesondere beim Fehlercode komme ich kein Stück weiter und habe keine Lust 65000 Möglichkeiten auszuprobieren bis ich alle Codes habe.
Hi, das PDF habe ich auch schon gefunden, allerdings bringt es mich nicht wirklich weiter. Der Quelltext der dabei ist beinhaltet keine Berechnungen. Ich bin mir nicht mal sicher ob Mita für Nordex Anlagen nicht ein anderes Protokoll verwendet, da laut PDF Daten vom Controller in verschiedenen Frequenzen automatisch kommen sollen. Ich erhalte aber erst Daten und auch nur einmalig wenn der Server welche anfordert.
Zeig doch lieber mal ein Paket, welches ankommt. Was soll mit diese ODS Tabelle sagen?
Sorry, die Pakete sind auf der Seite "Data" im ODS. Ich probier mein Problem nochmal etwas verständlicher zu erklären. Hier erstmal das Paket aus dem ODS:
1 | 01 Start |
2 | 0c Answer? |
3 | 2b Answer? |
4 | f9 ? |
5 | a2 ? |
6 | bc ? |
7 | 42 ? |
8 | 2a ? |
9 | 70 ? |
10 | f2 Wind |
11 | 29 Wind |
12 | 96 Wind |
13 | 82 Wind |
14 | 28 Daten |
15 | 8a Daten |
16 | 3f Daten? |
17 | ea Daten? |
18 | 39 ? |
19 | 85 ? |
20 | 25 ? |
21 | 6e ? |
22 | f2 Leistung |
23 | 2a Leistung |
24 | 99 Leistung |
25 | a8 Leistung |
26 | fe Daten |
27 | b4 Daten |
28 | 31 Daten? |
29 | 99 Daten? |
30 | b8 ? |
31 | 3e ? |
32 | 2a ? |
33 | 70 ? |
34 | f4 Turbine Rpm |
35 | 27 Turbine Rpm |
36 | 95 Turbine Rpm |
37 | 87 Turbine Rpm |
38 | 28 Daten |
39 | 74 Daten |
40 | f5 Daten? |
41 | 2e Daten? |
42 | 89 ? |
43 | 8f ? |
44 | 24 ? |
45 | 6d ? |
46 | f2 Fehler |
47 | 2a Fehler |
48 | 97 Fehler |
49 | 83 Daten |
50 | 3f Daten |
51 | cb CRC16 |
52 | 88 CRC16 |
53 | 04 EOT |
Wenn ich die Daten z.B. vom Wind haben möchte (also 0x28 und 0x8a) kann ich momentan die 0x8a über das Array dem Wert 42 zuordnen. Die 0x28 ist ein Multiplikator vom maximalen Wert (hier 255) wobei 0x28 aber Null entspricht. Beides addiert durch 10 ergibt die Geschwindigkeit in m/s (hier also 4,2m/s). Das gleiche gilt für die Leistung, nur das der Teiler hier 4 ist. Die Multiplikatoren verlaufen leider nicht aufsteigend sondern "springen". Durch ausprobieren habe ich jetzt alle bis *16 gefunden was für die Leistung von 1MW reicht und für den Wind sowieso. Ich habe eine XML Datei die die Fehlercodes beinhaltet, startend bei 0 bis 5100. Aber ich komme mit meinem jetzigen Wissen nicht von den empfangenen Daten auf den Fehlercode.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.