PC-styrning av Bergvärmepump
-
- Inlägg: 1
- Blev medlem: 5 juli 2011, 13:18:25
Re: PC-styrning av Bergvärmepump
Hej,
Någon som har lite kod som man kan utgå ifråm? Känns lite dumt att uppfinna hjulet igen.
/Fredrik
Någon som har lite kod som man kan utgå ifråm? Känns lite dumt att uppfinna hjulet igen.
/Fredrik
-
- Inlägg: 2
- Blev medlem: 18 november 2012, 12:12:20
Re: PC-styrning av Bergvärmepump
Hej Fredrik,
if you're wondering why I'm doing this - Nibe changed the communication interface in the current product line. That's why the RMU-40 only is compatible with the F1245, F370, F750 etc.
Rgds!
if you're wondering why I'm doing this - Nibe changed the communication interface in the current product line. That's why the RMU-40 only is compatible with the F1245, F370, F750 etc.
Rgds!
Re: PC-styrning av Bergvärmepump
Hej alla.
Jag har kommit lite sent in i denna dialogen men ändå.
Jag har precis blivit med en Nibe F1145a.
Nu har jag lite frågor at ställa till alla Er som verkar ha koll på detta.
Jag tänker koppla min pump till en programvara som heter UniView för att få fullständig kontroll över pumpen.
Nu kommer mina frågor.
Fungerar pumpen som en master eller slav?
När svarar den på en fråga?
Jag har upptäckt att om jag säger till pumpen att det finns en Modbus-40 så skickar den data hela tiden samt att jag får ett fel i pumpen som säger att enheten saknas.
Måste den få ett svar tillbaka och i så fall vad?
Kan jag få den att bli en slav så att den enbart bara svarar på mina frågor?
Jag kommer att koppla ett Westermo-modem mellan pumpen och min dator.
Det får räcka för nu. Fler frågor kan komma senare.
Tack på förhand.
//Bosse
Jag har kommit lite sent in i denna dialogen men ändå.
Jag har precis blivit med en Nibe F1145a.
Nu har jag lite frågor at ställa till alla Er som verkar ha koll på detta.
Jag tänker koppla min pump till en programvara som heter UniView för att få fullständig kontroll över pumpen.
Nu kommer mina frågor.
Fungerar pumpen som en master eller slav?
När svarar den på en fråga?
Jag har upptäckt att om jag säger till pumpen att det finns en Modbus-40 så skickar den data hela tiden samt att jag får ett fel i pumpen som säger att enheten saknas.
Måste den få ett svar tillbaka och i så fall vad?
Kan jag få den att bli en slav så att den enbart bara svarar på mina frågor?
Jag kommer att koppla ett Westermo-modem mellan pumpen och min dator.
Det får räcka för nu. Fler frågor kan komma senare.
Tack på förhand.
//Bosse
Re: PC-styrning av Bergvärmepump
Jag har för mig att jag fick två programvaror från Nibe för 4-5 år sedan när jag installerade bergvärme förra gången. Jag installerade aldrig min Modbus 40 den gången. Nu har jag installerat igen och installerade Modbus40 på en gång. Hittar dock inte igen den andra mjukvaran hos Nibe.
Någon som har koll på den eller om det finns någon annan bra mjukvara för avläsning och styrning av pannan?
Någon som har koll på den eller om det finns någon annan bra mjukvara för avläsning och styrning av pannan?
Re: PC-styrning av Bergvärmepump
Äntligen! Fick igång snacket med pannan. Över Modbus40 då och inte direkt på pannan som den här tråden verkar handla mest om. Men med tanke på att förra posten är över ett år gammalt så kan jag väl kapa in lite.
Kör med RealTerm. http://realterm.sourceforge.net/
Knappar in Hex[space] på Display-tabben. Half duplex.
9600 BAUD, 8 bits data, 1 bits stop och RS485-rts på Hard Ware Flow Control under Port-tabben.
Under Send-tabben väljer man +crc under EOL och sedan MOdbus16 från dropdown-menyn.
Sedan matar jag in 0x01 0x03 0x9C 0x44 0x00 0x01 i send-rutan.
[0x01] till master, [0x03] Read holding register dvs läs, [0x9C][0x44] är 40004 som betyder läs utomhustemperaturen och så [0x00][0x01] vilket jag antar är hur långt svar jag vill ha(???), hur många register jag vill läsa vilket alltid är 16-bitars register(???). Eller så beror det på vilket typ av register det är.
Svaret blir:
01 03 02 00 21 78 5C
[0x01] från master, [0x03] du ville läsa, [0x02] du får här två bytes med svar, [0x00][0x21] utomhustemperaturen är 3.3 grader, [0x78][0x5C] är CRC för felberäkning på meddelandet.
Nu behöver man slänga ihop nått C#-hack som läser av det här åt mig och skriver till fil. Fast först behöver jag lista ut hur CRC beräknas på Modbus16 när jag inte har RealTerm som gör det åt mig. Borde google kunna svara på.
Förslag på register att läsa finns här: http://www.nibe.se/Pages/42625/Exempel- ... dbus40.pdf
Kör med RealTerm. http://realterm.sourceforge.net/
Knappar in Hex[space] på Display-tabben. Half duplex.
9600 BAUD, 8 bits data, 1 bits stop och RS485-rts på Hard Ware Flow Control under Port-tabben.
Under Send-tabben väljer man +crc under EOL och sedan MOdbus16 från dropdown-menyn.
Sedan matar jag in 0x01 0x03 0x9C 0x44 0x00 0x01 i send-rutan.
[0x01] till master, [0x03] Read holding register dvs läs, [0x9C][0x44] är 40004 som betyder läs utomhustemperaturen och så [0x00][0x01] vilket jag antar är hur långt svar jag vill ha(???), hur många register jag vill läsa vilket alltid är 16-bitars register(???). Eller så beror det på vilket typ av register det är.
Svaret blir:
01 03 02 00 21 78 5C
[0x01] från master, [0x03] du ville läsa, [0x02] du får här två bytes med svar, [0x00][0x21] utomhustemperaturen är 3.3 grader, [0x78][0x5C] är CRC för felberäkning på meddelandet.
Nu behöver man slänga ihop nått C#-hack som läser av det här åt mig och skriver till fil. Fast först behöver jag lista ut hur CRC beräknas på Modbus16 när jag inte har RealTerm som gör det åt mig. Borde google kunna svara på.
Förslag på register att läsa finns här: http://www.nibe.se/Pages/42625/Exempel- ... dbus40.pdf
Re: PC-styrning av Bergvärmepump
CRC kan vara knepigt att få till då det finns olika varianter på samma metod.
Re: PC-styrning av Bergvärmepump
Kod: Markera allt
// Compute the MODBUS RTU CRC
UInt16 ModRTU_CRC(byte[] buf, int len)
{
UInt16 crc = 0xFFFF;
for (int pos = 0; pos < len; pos++) {
crc ^= (UInt16)buf[pos]; // XOR byte into least sig. byte of crc
for (int i = 8; i != 0; i--) { // Loop over each bit
if ((crc & 0x0001) != 0) { // If the LSB is set
crc >>= 1; // Shift right and XOR 0xA001
crc ^= 0xA001;
}
else // Else LSB is not set
crc >>= 1; // Just shift right
}
}
// Note, this number has low and high bytes swapped, so use it accordingly (or swap bytes)
return crc;
}
Re: PC-styrning av Bergvärmepump
Bara att mata på med register så att jag får in all data jag vill ha. Och sedan jobba lite på interfacet. Tanken är sedan att länka det till något passande hemautomationsprogram så att jag kan övervaka och styra den från tabben mm. Behöver få in lite grafer också. Skalan på tempmätaren skall vara sådär, jag förväntar mig varm sommar nästa år.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: PC-styrning av Bergvärmepump
CRC-rutinen jag postade ovan fungerar precis som den är rakt in i C#. Bara man tänker på sista kommentaren som står i den koden.
Re: PC-styrning av Bergvärmepump
Modbus Manager från Nibe var perfekta verktyget att skörda register ifrån. Där får man en beskrivning av vad de flesta register betyder också.
Nästa steg är att skriva till pannan för att göra inställningar. Sedan behövs nog ett steg tillbaka och generalisera koden så att den blir mer överblickbar och får lättare att lägga till kommandon att läsa/skriva.
Pannan är inte färdiginstallerad än, därför ser några värden lite märkliga ut.
Nästa steg är att skriva till pannan för att göra inställningar. Sedan behövs nog ett steg tillbaka och generalisera koden så att den blir mer överblickbar och får lättare att lägga till kommandon att läsa/skriva.
Pannan är inte färdiginstallerad än, därför ser några värden lite märkliga ut.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: PC-styrning av Bergvärmepump
Vad är "Modbus Manager" från Nibe för något? trodde all åtkomst direkt till styrenheten utan det där Ethernet-tillbehöret vart helt utan dokumentation eller program.
Re: PC-styrning av Bergvärmepump
http://www.nibe.se/Pages/97939/NIBE_Mod ... _1.0.8.exe
Används för att tala om för pannan vilka register som skall ha prioriterad läsning med Modbus40-tillbehöret. I programmet ser man vilka register som är vad, och om jag inte misstar mig helt, så är det ingen skillnad på registerpositionerna om man använder Modbus40 eller går direkt på pannans interna Modbus. Jag går på Modbus40 eftersom det är så Nibe tänkt sig att man skall koppla in sig.
Används för att tala om för pannan vilka register som skall ha prioriterad läsning med Modbus40-tillbehöret. I programmet ser man vilka register som är vad, och om jag inte misstar mig helt, så är det ingen skillnad på registerpositionerna om man använder Modbus40 eller går direkt på pannans interna Modbus. Jag går på Modbus40 eftersom det är så Nibe tänkt sig att man skall koppla in sig.
Re: PC-styrning av Bergvärmepump
Nibes tillbehör för att prata modbus mellan pumpen och dator. En liten elektronikdosa. Samma elektronik som SMS40 som jag förstått det. Fast utan telemodulen.
Re: PC-styrning av Bergvärmepump
Vilket gränssnitt har denna elektronikdosa gentemot PC datorn?
(btw, En virtuell COM-port skulle kunna användas för att systematiskt och effektivt plocka ur dessa register)
(btw, En virtuell COM-port skulle kunna användas för att systematiskt och effektivt plocka ur dessa register)