PC-styrning av Bergvärmepump

Planering och tankar kring eventuella framtida projekt.
bjolin
Inlägg: 123
Blev medlem: 22 september 2006, 11:21:20
Ort: Linköping

Inlägg av bjolin »

Lyckas du med att läsa och disassemblera styrprogrammet borde det ge mest information, men det kan vara knepigt, speciellt om programmet är skrivet i C från början. Med en bra återskapad källkod borde det även vara möjligt att tillföra en del för dig passande förändringar.
Det borde ju gå att läsa ett flashminne med en relativt enkel konstruktion på parallellporten. För egen del känns dock sådana tilltag lite osäkra. Det känns som det var tryggare på gamla hederliga E-prom som är lite svårare att radera.

Hur som helst är jag väldigt nyfiken på resultatet.
Jag har själv en värmepump från Nibe installerad 2002 vilken förmodligen har samma typ av styrkort som det som visades i tråden.
Till detta finns en dröm om installation av solfångare samt komfortkyla.
Efter att ha läst tråden och fått lite inspiration funderar jag nu på en lösning med tre enheter förbundna med CAN.
En modifierad VP-styrning (eller om det går att patcha det som finns i flash-kretsen). En centralenhet varifrån alla parametrar i systemet kan sättas, läsas och loggas. Samt en enhet för styrning av shuntventiler och pumpar samt inmätning av olika temperaturer placerad på ett strategiskt ställe på vinden.

Nu ska jag bara bli klar med allt annat som ska göras först, ventilation ,tilläggsisolering, lister, bastu.......
FredRovers
Inlägg: 19
Blev medlem: 9 januari 2007, 21:24:41

Inlägg av FredRovers »

Är det någon som kopplat ett oscilloskop till RJ45-porten för att se vilken hastighet, stoppbitar o.s.v. de kör.

Jag har en Nibe 360p (frånluftsvärmepump) och där ser det ut att vara tvåtrådat, det lilla jag har tittat. Jag tror att de kör över matning på kabeln också troligen +5V, +12V och GND?
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Antagligen körs matningen över. Tyvärr har jag inte kört något oscilloskop för att kolla hastigheten ännu. Har skaffat delar för att bygga en RS485 <-> RS232 konverter men längre har jag inte kommit. Har kommit andra projekt ivägen.
FredRovers
Inlägg: 19
Blev medlem: 9 januari 2007, 21:24:41

Inlägg av FredRovers »

:D
Nu har jag loggat lite trafik. Jag har provat mig fram med baudrate och tror att 19200 är det som körs (8N1). Det känns som det är den hastighet som datat flyter på bäst. Det sitter en lysdiod (Röd) på kortet som verkar vara tänd då det finns trafik på bussen.

Jag kör med ett litet utvecklingskort med en ATmega128 som har lagt in en liten kodsnutt i som kör RS485->RS232 konvertering.

Detta är vad jag får in in min PC:

0x6E 0xCA 0x7E 0x7E 0x7E 0x7E 0x2A 0x3A 0x4E 0x2A 0x3E 0xC9 0xF3 0xE7 0xE7 0xA6

0xCD 0x6E 0xF2 0xFE 0x5E 0xF9

0x6E 0xF6 0xDE 0x12

0xEE 0xF2 0xEA 0xDA 0xDE


0x6E 0xCA 0x7E 0x7E 0x7E 0x7E 0x2A 0x3A 0x4E 0x2A 0x3E 0xC9 0xF3 0xE7 0xE7 0xA6

0xCD 0x6E 0xF2 0xFE 0x5E 0xF9

0x6E 0xF6 0xDE 0x12

0x6E 0xF2 0xEA 0xD6 0xD2


0x6E 0xCA 0x7E 0x7E 0x7E 0x7E 0x2A 0x3A 0x4E 0x2A 0x3E 0xC9 0xF3 0xE7 0xE7 0xA6

0xCD 0x6E 0xF2 0xFE 0x5E 0xF9

0xF4 0xF4 0x31 0xE4 0x80 0x6E 0xF6 0xDE 0x12

0x6E 0xF2 0xEA 0xD2 0xD6

Så fortsätter det. Med lite annan data när det händer saker i pannan. Det ser ut som om det sker trafik en gång per sekund. I datat ovan har jag gjort två blankrader då det är tyst på bussen under en längre tid och en blankrad då det är tyst en lite kortare stund. Datat ovan kommer från 3s loggning.

Vid en första anblick ser det inte så vidare värst lättlöst/lättläst ut :? .

Är det någon som har någon idé? :?:

BTW, Om jag kör på 9600 får jag följande:

0xF7 0xDC 0xD7 0xD7 0xD7 0xD7
0xF7 0x5F 0xDE 0x9F
0x17 0x5F 0xDF
0x17 0x5F 0x1E

0x37 0x5F 0xDC 0xD7 0xD7 0xD7 0xD7
0x37 0x5F 0xDE 0x9F
0xF7 0x5F 0xDF
0x17 0x5F 0x1E

0x27 0x5F 0xDC 0xD7 0xD7 0xD7 0xD7
0x37 0x5F 0xDE 0x9F
0xF7 0x5F 0xDF
0x74 0x1F
0x17 0x5F 0x1E
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Ett tips bara. Skriv ut utan inledande "0x" istället. Det blir mycket lättare att läsa raderna då. Vi vet ju ändå att det är hex, annars räcker det att du talar om det en gång i början. :)
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Bra jobbat FredRovers. Nu börjar vi ta oss någon stans.

Det jag tänkte kolla var att se vad som händer när man ändrar eller gör saker på panelen till att börja med för att se vad den skickar och vad den får tillbaka.

vfr's, tips e bra att skippa "0x" så blir det lättare och läsa och att ev översätta till ASCII.

Kör lite längre och tryck lite på knapparna för att se om du får någon ren text i ASCII. Känns som att den kanske hämtar menyer mm från EEPROMen som ligger på en annan node. Dvs texten måste transporteras.

Panelen är kanske bara en dummy som hämtar info och ändrar info i EEPROMen som sedan styrsystemen läser av sedan.
FredRovers
Inlägg: 19
Blev medlem: 9 januari 2007, 21:24:41

Inlägg av FredRovers »

Jag noterade också att det blir lättare att läsa utan '0x' så det tog jag bort i en senare version. Tidigare provade jag att konvertera tecken >=20 (Hex) till ASCII men det var ju rena rappakaljan så det tog jag bort. Jag har provat att trycka på knappar på panelen och det händer ju saker men inget som man kan läsa ut i klartext. Jag provade att koppla ur RS485 kabeln mellan panelkortet och processorkortet men då startade panelkortet om, eller om det var processorkortet. Det stod iaf likadant på displayen som när man startar pannan (då jag stoppade tillbaka RS485).

Jag ska väl logga lite mer för att se vad jag kan få fram. Det vore ändå trevligt om någon mer kunde få igång loggning så att vi kan jämföra lite resultat.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Skulle kanske kunna börja logga om jag bara får ihop delarna.

Har du kopplat Pump <--> Utvecklingskort <---> PC eller hur har du gjort. Förstog inte riktigt din koppling.

Har skaffat mig RS485 <---> RS232 krets och sedan en MAX232 för att kunna koppla till datorn direkt. Har dock ännu inte satt ihop det hela. Har precis fått hem en motorstyrd garageport som jag tänkte börja leka med.
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg av oJsan »

FredRovers
Inlägg: 19
Blev medlem: 9 januari 2007, 21:24:41

Inlägg av FredRovers »

Jag har jackat in en nätverkskabel på kortet som du lade ut en bild på tidigare i tråden... http://www.pici.se/pictures/WuI5Ic.jpg ...och kopplat nätverkskabeln till mitt utvecklingskort som har en RS485-port. I utvecklingskortet läser jag av RS485-porten och skickar ut det på en RS232-port och in i min PC. Dvs utvecklingskortet omvandlar enbart från RS485 till RS232 och lägger till lite tidsinformation på mottaget data.

De två RJ45 portarna sitter parallellt det har jag kollat på undersidan av PCBn. RJ45 porten ser ut enligt nedan:
1 - D-
2 - D+
3 - +12V
4 - +12V
5 - +5V
6 - +5V
7 - GND
8 - GND

Jag ser ju inte vilken riktning som datat har (till eller från panelkortet). Man kan ju alltid koppla in ett skåp på Rx och Tx direkt på processorkortet för att få reda på det.

Det tråkiga är ju att det verkar vara svårt att tyda datat, men skam den som ger sig...[/url]
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Ska kanske tillägga att jag inte heller såg något uppenbart mönster i det hela. Inte mer än att vissa sekvenser återkom flera ggr.

Det är lite lättare om man får med tidsaspekten på det hela för att kunna "paketera" ihop dom byte som ingår i ett meddelande.
FredRovers
Inlägg: 19
Blev medlem: 9 januari 2007, 21:24:41

Inlägg av FredRovers »

En känsla som jag får är att NIBE använder sig av "Modbus over serial line"...

http://www.modbus.org

Är det någon på forumet som känner till något om Modbus? Annars får man läsa på lite, det ser ju ut att funnas en hel del på deras hemsida.
FredRovers
Inlägg: 19
Blev medlem: 9 januari 2007, 21:24:41

Inlägg av FredRovers »

Nej, det är inte modbus...

Exempel på logg:

6E C6 7E 7E 7E 2A 3A 46 3A 3E C9 F3 E7 E7 E7 E7 32

Inverterat och >> 2 ger följande (om man omvandlar till ASCII om data >= 0x20):

'$'x0E' '' '' ''5''1''.''1''0'x0Dx03x06x06x06x06'3'

51.1 är det som hamnar på displayen.

Är det någon som känner till något system som inverterar och skiftar två steg. Kanske är detta helt egetutvecklat av NIBE???

Förslag på vad de två bitarna som man skiftar bort ska användas till?
bjolin
Inlägg: 123
Blev medlem: 22 september 2006, 11:21:20
Ort: Linköping

Inlägg av bjolin »

FredRovers skrev:Nej, det är inte modbus...

Exempel på logg:

6E C6 7E 7E 7E 2A 3A 46 3A 3E C9 F3 E7 E7 E7 E7 32

Inverterat och >> 2 ger följande (om man omvandlar till ASCII om data >= 0x20):

'$'x0E' '' '' ''5''1''.''1''0'x0Dx03x06x06x06x06'3'

51.1 är det som hamnar på displayen.

Är det någon som känner till något system som inverterar och skiftar två steg. Kanske är detta helt egetutvecklat av NIBE???

Förslag på vad de två bitarna som man skiftar bort ska användas till?
Lite mer dataanalys:

Om vi anveänder oss av en vanlig ascii-tabell för att tolka styrkoderna får vi:
x0E - Shift out <SO>
x0D - Carriage return <CR>
x03 - End of text <ETX>
x06 - Acknowledgement <ACK>
x20 - space <SP> (Jag vet, det är ett gränsfall)

Med andra ord skulle texten bli $ <SO SP SP SP> 51.10 <CR ETX ACK ACK ACK ACK> 3
Läggs de utskiftade bitarna till fås följande:
slutbitar "01" : $ <SO SP SP SP> 51.10
slutbitar "10" : <CR>
slutbitar "00" : <ETX ACK ACK ACK ACK>
slutbitar "01" : 3

Slutbitarna skulle kunna vara avsändare eller avsedd mottagare, men då skulle jag gärna haft <CR> och <ETX> med slutbitarna 01.

Fast mitt antagande bygger ju på att ASCII-standard används. Det kan ju vara så att styrkoderna är helt egna.

Hopppas att det bidrar till något
Hälsningar
/Björn L.
FredRovers
Inlägg: 19
Blev medlem: 9 januari 2007, 21:24:41

Inlägg av FredRovers »

Alla idéer är välkomna.

Jag håller med, det stämmer bara nästan att de två LSB-erna skuller vara avsändare/mottagare.

Frågan som jag inte riktigt klurat ut är hur de skickar klockuppdateringar på displayen följande data skickas precis då klocakn uppdateras på displayen. Klocak står inte på samma rad som temperaturen i exemplet tidigare.

21:33 <- Visas på displayen
C4 E6 F6 C4 7C 24 FC F2 3C 98 E4 (Data som skickas)
x0Ex06x02x0Ex20x36x00x03x30x19x06 (!Data>>2)

21:34
C4 E4 FC E2 74 2C FE E4 04 98 E4
x0Ex06x00x07x22x34x00x06x3Ex19x06 (!Data>>2)

21:35
C4 E6 F4 C4 74 2A FC F2 0C 98 E4
x0Ex06x02x0Ex22x35x00x03x3Cx19x06 (!Data>>2)


21:38
C4 E6 F6 C4 7C 1C FC 90 24 98 E4
x0Ex06x02x0Ex20x38x00x1Bx36x19x06 (!Data>>2)

21:39
C4 E4 F6 10 74 1A FC F4 2C 98 E4
x0Ex06x02x3Bx22x39x00x02x34x19x06 (!Data>>2)

Här ser det inte ut att vara rätt att invertera och skifta två steg åt höger.

:roll:
Det jag efterlyser nu är någon som har en RCU-10 och som kan ställa upp att logga trafiken då RCU:n är aktiverad. Det är ju egentligen endast den trafiken som är av intresse. Jag skulle kunna låna ut RS-485<->RS-232 konverterare om det är det som saknas. Hör då av er genom ett PM!
Skriv svar