Grid Tie Inverter 300W Reverse Engineering

Ladeelektronik, Messgeräte, Steuerungen etc.

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon andreas » Mo 11. Okt 2010, 19:22

Hallo Bernhard,

die PN verschwinden aus Deinem Postausgang, wenn der Empfänger sie gelesen hat. Schau mal nach, jetzt sind sie weg.

Die Veränderungen im Assemblerprogramm selbst sind ohne weiteres möglich, aber das geänderte Programm sollte danach wieder durch den Assembler geschickt werden. Im Hexcode selbst zu ändern, ist eher riskannt, wenn man nicht auch die Befehle binär genau kennt. Leider enthält Herberts Listing keine Hexdaten und -adressen mehr bis auf die Sprungziele. Insofern ist es auch nicht einfach, die richtigen Stellen im Hexcode zu finden, zumal die Adressierung etwas merkwürdig ist.

Die Werte kannst Du natürlich alle nach Belieben ändern, die Formel hatte ich jeweils als Kommentar vermerkt. Die einzigen Stellen in Code, wo die Spannung explizit abgefragt wird, hast Du bekommen. Bei Bedarf schau ich noch mal nach, was der mittlere Spannungswert bewirkt. Nachtrag: Die 21,6 V bewirken genau gar nichts. Das ist eine Abfrage, die vor die 29-V-Abfrage geschaltet ist, wird aber in jedem Fall ohne Auswertung bleiben - alle benutzten Register und Flags werden unmittelbar darauf überschrieben. Also vergiß diese Spannungsabfrage, vermutlich ein Rudiment aus einem früheren Programmstand. Es finden sich so einige Reste ohne Funktion im Programm...

MfG. Andreas
andreas
 
Beiträge: 1268
Registriert: Di 6. Okt 2009, 23:16

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon miniwindi » Mo 11. Okt 2010, 20:15

Hallo Andreas,

"Leider enthält Herberts Listing keine Hexdaten und -adressen mehr bis auf die Sprungziele"

Daran kann ich leider nichts ändern. Da kann man nichts weiter einstellen.

Viele Grüße Herbert
miniwindi
 
Beiträge: 529
Registriert: Fr 19. Jun 2009, 17:50
Wohnort: Niedersachsen

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon bernhard8 » Mo 11. Okt 2010, 20:25

Ich hänge jetzt mal eine funktionierende Version mit meinen eigenen Variablen dem Post an.
Ganz am Anfang findet man jetzt diese Definition:
Code: Alles auswählen
;  untere Spannungsgrenze an der eingeschaltet wird
; default: 0x0B, 0x2D = 2861 -> ULein = 2861 * 1024 / 5 = 13,96V
.equ   ULeinHBYTE   = 0x0B
.equ   ULeinLBYTE   = 0x2D
; untere Spannungsgrenze an der wieder ausgeschaltet wird
; default: 0x0A, 0x66 = 2861 -> ULaus = 2662 * 1024 / 5 = 12,99V
.equ   ULausHBYTE   = 0x09
.equ   ULausLBYTE   = 0x33
;  obere Spannungsgrenze an der ausgeschaltet wird
; default: 0x17, 0x38 = 5944 -> ULein = 5944 * 1024 / 5 = 29,02V
.equ   UHabHBYTE   = 0x17
.equ   UHabLBYTE   = 0x38
; obere Spannungstoleranzgrenze an der wieder ausgeschaltet wird
; default: 0x18, 0x01 = 6145 -> ULein = 6145 * 1024 / 5 = 30,00V
.equ   UHtolHBYTE   = 0x18
.equ   UHtolLBYTE   = 0xCC


Ich hoffe dabei kennt man sich aus. Bei mir hats jetzt funktioniert, die von mir eingegebenen Spannungswerte werden befolgt.

Bezüglich dem RC Glied muss ich mich schlau machen. Falls schon jemand Erfahrung diesbezüglich hat: kann man das mit einem Varistor lösen? Der sollte ja bei Überspannung praktisch kurzschliessen. Ansonsten würde sich ja eine Zenerdiode anbieten, die hält aber die Verlustleistung sicher nicht aus.
Dateianhänge
test.zip
(8.28 KiB) 108-mal heruntergeladen
http://www.bernhard-raab.info/windrad
Benutzeravatar
bernhard8
 
Beiträge: 450
Registriert: So 10. Jan 2010, 18:10
Wohnort: Hofkirchen / Oberösterreich

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon andreas » Mo 11. Okt 2010, 20:31

Hallo Herbert,

kein Problem, allein das Listing hat schon sehr geholfen. Zumal dort (fast) alle Tabellen vor dem eigentlichen Programm stehen und nicht mitten drin. Lustig wird es erst, wenn mitten im Programmcode Sprungtabellen stehe, wo in einzelne Routinen je nach Eingangswert verzweigt wird.

Code: Alles auswählen
; für Z80:
ld hl,:tabelle
add hl,a
add hl,a
jp (hl)
:tabelle
1234
5678
9012
; usw

Da ist man ohne die Hexcodes als Kommentare fast erschlagen. Hier mußte ich "nur" die komische Kurve am Anfang und ein paar Einzelwerte aus dem Hexlisting holen, der Rest war simpel.

MfG Andreas
andreas
 
Beiträge: 1268
Registriert: Di 6. Okt 2009, 23:16

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon miniwindi » Mo 11. Okt 2010, 20:41

Das

; für Z80:
ld hl,:tabelle
add hl,a
add hl,a
jp (hl)

erinnert an die Zeit, wo ich CP/M von einem 8080 auf den Z80 portiert habe und den I/O Bereich dann an die neue Hardware angepaßt habe.
Da hatte ich auch keinen SourceCode.
miniwindi
 
Beiträge: 529
Registriert: Fr 19. Jun 2009, 17:50
Wohnort: Niedersachsen

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon andreas » Mo 11. Okt 2010, 21:18

Hallo Bernhard,

Du machst es Dir noch zu schwer mit der Definition der Konstanten, zumal sie nicht mit dem aktuellen Spannungs-Wert als Resultat kommentiert sind. Schau mal in die Faqs von mikrocontroller.net zum Avr und laß den Assembler solche Werte ausrechnen. Dann ist das Ändern wesentlich leichter und die Daten sind übersichtlicher, weil im Klartext vorliegend.

MfG. Andreas
andreas
 
Beiträge: 1268
Registriert: Di 6. Okt 2009, 23:16

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon andreas » Mo 11. Okt 2010, 22:36

Hallo Jürgen,

@Andreas: Das mit dem Watchdog würde ich nicht als Mißtrauen des Programmierers in sein Programm deuten sondern als Sicherheitsfunktion.

das mag sein, aber eine Sekunde ist am Windrad sehr viel, wenn es denn gut im Wind steht. Ich halte die Zeit für deutlich zu hoch, zumal die internen Abläufe sich wenigstens im Millisekunden-Bereich wiederholen.

Habt ihr eigentlich schon rausgefunden, wofür die sinusähnliche Kurve sein soll? Wenn das wirklich zur Nachbildung des Sinus auf der Netzseite da ist, dann sollte man die Tabelle mal verbessern, so daß der Sinus auch wie ein solcher aussieht.

Was die Tabelle soll, weiß ich nicht. Sie wird direkt am Programmanfang über Umwege geladen (ein Stand kurz hinter dem Maximum in der dargestellten Excel-Tabelle) danach aber scheinbar nicht mehr angefaßt. Im Programm finden sich weder die Endpunkte der Tabelle unten und oben noch weitere Bezüge darauf. Die aus der Kurve geladenen Register werden später anderweitig verwendet. Sorry, genauer habe ich es jetzt nicht und werde es ohne Not auch nicht weiter verfolgen.

MfG. Andreas
andreas
 
Beiträge: 1268
Registriert: Di 6. Okt 2009, 23:16

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon jb79 » Mo 11. Okt 2010, 22:49

Daß an den Mosfets eine etwa doppelt so hohe Spannung wie am Eingang anliegt ist nicht vermeidbar und liegt am Design der Schaltung. Ganz kurz (beim Abschalten) sind dann noch etwas höhere Spannungen da.

Kannst du mal die Drain-Source Spannung eines der Niederspannungs-Mosfets aufnehmen?
lg Jürgen
jb79
 
Beiträge: 1138
Registriert: Di 10. Feb 2009, 22:24
Wohnort: Niederösterreich

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon bernhard8 » Di 12. Okt 2010, 05:20

jb79 hat geschrieben:Kannst du mal die Drain-Source Spannung eines der Niederspannungs-Mosfets aufnehmen?


siehe letzte Seite:
viewtopic.php?f=19&t=797&st=0&sk=t&sd=a&start=20#p10864

Das ist genau die Drain-Source Spannung eines Mosfets.
http://www.bernhard-raab.info/windrad
Benutzeravatar
bernhard8
 
Beiträge: 450
Registriert: So 10. Jan 2010, 18:10
Wohnort: Hofkirchen / Oberösterreich

Re: Grid Tie Inverter 300W Reverse Engineering

Beitragvon jb79 » Di 12. Okt 2010, 13:17

Stimmt, mal wieder total überlesen.
Das Problem das es gibt sieht man in dem Diagramm eh recht schön. Genau im Zeitpunkt des Ausschaltens steigt die Spannung ganz kurz aufs etwa 2 1/2 fache und pendelt sich dann schnell wieder ein. Genau beim Ausschalten beginnt die Leistungsübertragung zur Sekundärseite, die Spannung in der Spule steigt im Ausschaltmoment so lange an, bis sekundärseitig die Dioden zu leiten beginnen. Mit einem RCD Glied könntest du diese Spitze etwas dämpfen. Wie das aussieht kannst du auf diesem Bild oben in der Mitte sehen.
Die zweite Spannungserhöhung (wo man das Abklingen der Schwingung schöner sieht) kommt vom zweiten Transistor wenn der seine Spule einschaltet. In dem Moment ändert sich durch die magnetische Kopplung der Wicklungen auch in der nicht eingeschaltenen Spule der magnetische Fluß und es wird wieder eine Spannung induziert die der Eingangsspannung entspricht und sich auf diese aufsummiert.
lg Jürgen
jb79
 
Beiträge: 1138
Registriert: Di 10. Feb 2009, 22:24
Wohnort: Niederösterreich

VorherigeNächste

Zurück zu Elektronik für Windkraftanlagen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste