% Skapad med Modbus Creator DEVICETYPE Grundfos NAMED "Grundfos" TYPEID 21341 IS PARAMETER Id : "Adress"; V14 : "wControlMode" [""]; V15 : "wOperationMode" [""]; V16 : "wSetpoint" ["%"]DEC2; PUBLIC V1 : "StatusRegister" ["bits"]; V2 : "ProcessFeedback" ["%"]DEC2; V3 : "ControlMode" [""]; V4 : "OperationMode" [""]; V5 : "AlarmStatus" [""]; V6 : "Head" ["bar"]DEC3; V7 : "VolumeFlow" ["m3/h"]DEC1; V8 : "Speed" ["rpm"]DEC1; V9 : "ActualSetpoint" ["%"]DEC2; % according to control mode V10 : "PumpLiquidTemp" ["K"]DEC2; V11 : "AuxSensorInput" ["%"]DEC2; V12 : "UserSetpoint" ["%"]DEC2; V13 : "DiffPressure" ["bar"]DEC3; PRIVATE count3; count6; tmp; BAUDRATE 9600; 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 DATA[2] <- RWORD( IF(count3>12) THEN count3 := 0; ENDIF; IF (count3=0) THEN tmp := 200; ELSIF (count3=1) THEN tmp := 201; ELSIF (count3=2) THEN tmp := 202; ELSIF (count3=3) THEN tmp := 203; ELSIF (count3=4) THEN tmp := 204; ELSIF (count3=5) THEN tmp := 300; ELSIF (count3=6) THEN tmp := 301; ELSIF (count3=7) THEN tmp := 303; ELSIF (count3=8) THEN tmp := 307; ELSIF (count3=9) THEN tmp := 321; ELSIF (count3=10) THEN tmp := 324; ELSIF (count3=11) THEN tmp := 337; ELSIF (count3=12) THEN tmp := 338; ENDIF; DATA:= tmp; ); DATA[4] := RWORD(01); ANSWER SIZE 7 DATA[0] = BYTE(Id); DATA[1] = HEX(03); DATA[3] -> RWORD( IF (count3=0) THEN V1 := DATA; ELSIF (count3=1) THEN V2 := DATA/100; ELSIF (count3=2) THEN V3 := DATA; ELSIF (count3=3) THEN V4 := DATA; ELSIF (count3=4) THEN V5 := DATA; ELSIF (count3=5) THEN V6 := DATA/1000; ELSIF (count3=6) THEN V7 := DATA/10; ELSIF (count3=7) THEN V8 := DATA; ELSIF (count3=8) THEN V9 := DATA/100; ELSIF (count3=9) THEN V10 := DATA/100; ELSIF (count3=10) THEN V11 := DATA/100; ELSIF (count3=11) THEN V12 := DATA/100; ELSIF (count3=12) THEN V13 := DATA/1000; ENDIF; count3 := count3+1; ); TIMEOUT 800 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>2) THEN count6 := 0; ENDIF; IF (count6=0) THEN DATA := 101; ELSIF (count6=1) THEN DATA := 102; ELSIF (count6=2) THEN DATA := 103; ENDIF; ); % Register adress DATA[4] <- RWORD( IF (count6=0) THEN DATA := V14; ELSIF (count6=1) THEN DATA := V15; ELSIF (count6=2) THEN DATA := V16*100; ENDIF; count6 := count6+1; ); ANSWER SIZE 8 DATA[0] = BYTE(Id); DATA[1] = HEX(06); TIMEOUT 800 END; END;