% Skapad med Modbus Creator % - OBS! Användaren ansvarar själv för att samma TYPID inte används flera gånger i samma apparat. % TYPID 10000-19999 är för användardefinierade enheter DEVICETYPE Danfoss_Robust NAMED "WM_HPC_Holding" TYPEID 10773 IS PARAMETER Id : "Adress"; V11 : "Extraheater" ["%"]; V12 : "Block extra heater" [""]; PUBLIC V1 : "Supplytemperatur" ["°C"]; V2 : "Returntemperatur" ["°C"]; V3 : "Outdoor temp" ["°C"]; V4 : "Hotwater start temperatur" ["°C"]; V5 : "Hotgas temp" ["°C"]; V6 : "Brine in Tempersatur" ["°C"]; V7 : "Brine out temperatur" ["°C"]; V8 : "Primary supply temp" ["°C"]; V9 : "Room temperatur" ["°C"]; V10 : "Sum Larm" [""]; PRIVATE count6; BAUDRATE 19200; CHECKSUM MODBUS SWAPPED; TELEGRAM Read3 NAMED "Read 3" IS QUESTION DATA[0] := BYTE(Id); % Enhetens Modbus adress DATA[1] := HEX(03); % Modbus kommando för att läsa register kod 03 DATA[2] := RWORD(2000); % Start address DATA[4] := RWORD(75); % Antal register att läsa ANSWER SIZE 155 % (Antal register * 2) + 5 DATA[0] = BYTE(Id); DATA[1] = BYTE(03); DATA[2] = BYTE(150); % Antal Bytes DATA[3] -> RWORD(V1 := DATA;); DATA[7] -> RWORD(V2 := DATA;); DATA[11] -> RWORD(V3 := DATA;); DATA[15] -> RWORD(V4 := DATA;); DATA[19] -> RWORD(V5 := DATA;); DATA[23] -> RWORD(V6 := DATA;); DATA[27] -> RWORD(V7 := DATA;); DATA[31] -> RWORD(V8 := DATA;); DATA[35] -> RWORD(V9 := DATA;); DATA[151] -> RWORD(V10 := DATA;); TIMEOUT 300 END; TELEGRAM WriteRegister NAMED "Write Register" IS QUESTION DATA[0] := BYTE(Id); % Enhetens Modbus adress DATA[1] := HEX(06); % Modbus kommando för att skriva ett register DATA[2] <- RWORD( IF(count6>1) THEN count6 := 0; ENDIF; IF (count6=0) THEN DATA := 2048; ELSIF (count6=1) THEN DATA := 2072; ENDIF; ); % Register adress DATA[4] <- RWORD( IF (count6=0) THEN DATA := V11; ELSIF (count6=1) THEN DATA := V12; ENDIF; ); ANSWER SIZE 8 DATA[0] = BYTE(Id); DATA[1] = BYTE(06); TIMEOUT 300 END; END;