Forum: Mikrocontroller und Digitale Elektronik Mita WP3000 Serielle Kommunikation "entschlüsseln"


von K. S. (hagbart06)


Angehängte Dateien:

Lesenswert?

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.

von Urinator (Gast)


Lesenswert?


von K. S. (hagbart06)


Lesenswert?

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.

von PittyJ (Gast)


Lesenswert?

Zeig doch lieber mal ein Paket, welches ankommt.
Was soll mit diese ODS Tabelle sagen?

von K. S. (hagbart06)


Lesenswert?

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
Noch kein Account? Hier anmelden.