Produal IML-m
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 4
- Uppdaterad
- 2018-11-21
- Skapad
- 2016-09-22
- Kategori
- Modbus, Ventilation
- Visningar
- 2234
Beskrivning
Skript för att läsa mätvärden och sätta börvärdet till IML-M:
IML-M med Modbus, för mätning och styrning av luftmängder i luftbehandlingsaggregat. Transmittern innehåller förkonfigurerade karakteristiker för de mest förekommande fabrikaten av fläktar på marknaden och en allmän formel för flödes volymer. Displayen visar alternerande luftmängd och differenstryck eller önskad enhet kan låsas till visningen. Bra nogranhett av mätningen garanteras av den automatiska nollpunktskalibreringen. Lämpligt mätområde kan väljas vid drifttagningen i fyra olika områden.
Bruksanvisning
Ställ in m3/h som enhet
Kompletterande skript för att läsa och ställa P och I värden
Juridisk information
Alla skript tillhandahålls i befintligt skick och all användning sker på eget ansvar. Felaktig använding kan leda till skadad eller förstörd utrustning.
Skript kod
% - 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 IMLm NAMED "IMLm" TYPEID 18947 IS
PARAMETER
Id : "Adress" [""]INT;
V5 : "Modbus SP" ["%"]DEC1; % can take 10.000 writes!
PUBLIC
V1 : "Pressure" ["Pa"];
V2 : "Flow" ["m3/h"]; % Shows for selected unit
V3 : "External SP" ["V"]DEC1;
V4 : "Internal SP" ["%"];
PRIVATE
count6;
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM Read4 NAMED "Read 4" IS
QUESTION
DATA[0] := BYTE(Id); % Enhetens Modbus adress
DATA[1] := HEX(04); % Modbus kommando för att läsa register kod 04
DATA[2] := RWORD(0); % Start address
DATA[4] := RWORD(4); % Antal register att läsa
ANSWER SIZE 13 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(04);
DATA[2] = BYTE(8); % Antal Bytes
DATA[3] -> RWORD(IF (DATA>=32768) THEN V1:=(DATA-65536); ELSE V1:=DATA; ENDIF;);
DATA[5] -> RWORD(IF (DATA>=32768) THEN V2:=(DATA-65536); ELSE V2:=DATA; ENDIF;);
DATA[7] -> RWORD(IF (DATA>=32768) THEN V3:=(DATA-65536)/10; ELSE V3:=DATA/10; ENDIF;);
DATA[9] -> RWORD(IF (DATA>=32768) THEN V4:=(DATA-65536); ELSE V4:=DATA; ENDIF;);
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>0) THEN count6 := 0; ENDIF;
IF (count6=0) THEN DATA := 11;
ENDIF;
); % Register adress
DATA[4] <- RWORD(
IF (count6=0) THEN IF (V5<0) THEN DATA := ROUND((V5*10)+65536); ELSE DATA := ROUND(V5*10); ENDIF;
ENDIF;
count6 := count6+1;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = BYTE(06);
TIMEOUT 300
END;
END;
Användarnas noteringar
Du måste vara inloggad för att göra en notering. Bli medlem eller logga in. Vi använder en moderator som godkänner noteringarna innan de visas.