Beräkningstranslatorer
En beräkningstranslator härleder ett nytt värde ur fält en enhet redan har rapporterat, och skriver tillbaka resultatet vid sidan av dem. Att omvandla en temperatur till Fahrenheit, göra om ett avstånd till en tankvolym, eller göra om en ständigt växande mätarställning till "hur mycket den här månaden" är alla beräkningstranslatorer.
Liksom larmtranslatorer är de kedjade: de körs ovanpå enhetens hårdvarutranslator och läser fält den redan har avkodat, inte råa payloads.
Varför använda en beräkningstranslator
Värdet beräknas en gång, på vägen in, och lagras sedan på enheten som vilket annat fält som helst.
Det spelar större roll än det låter. Varje dashboard, vy, rapport, regel och export nedströms läser samma lagrade tal, så ingen räknar om det och ingen är oense om det. En månatlig kWh-siffra väntar på enheten i samma stund den efterfrågas, i stället för att härledas ur historik vid frågetillfället av den som råkar behöva den.
Det betyder också att ett härlett värde är ett förstklassigt fält, så allt som fungerar på enhetsdata fungerar på det. Mest användbart: en larmtranslator kan övervaka ett beräknat fält precis som den övervakar ett uppmätt, och det är så du larmar på något sensorn aldrig rapporterade.
Summor per tidsperiod
Dessa håller rullande hinkar för dag, vecka, månad, kvartal och år på enheten. När en hinks fönster
växlar nollställs den hinken och börjar om. Alla tar en timeZone-parameter, eftersom periodgränser är
lokala: midnatt och måndag betyder olika ögonblick på olika platser.
| Translator | Vad den beräknar | Fält som skapas |
|---|---|---|
calculate-energy-consumption-per-time-period | Energi använd hittills under innevarande dag, vecka, månad, kvartal och år, ur en kumulativ kWh-mätare. Mata resultatet till set-alarm-energy-consumption för att fånga överförbrukning tidigt | energyConsumptionDay, energyConsumptionWeek, energyConsumptionMonth, energyConsumptionQuarter, energyConsumptionYear |
calculate-counter-delta-per-time-period | Hur mycket en monotont växande räknare har vuxit hittills under innevarande period. kWh, liter, cykler, allt som bara går uppåt | amounts |
calculate-amount-by-time-period | Hur mycket en växande räknare ackumulerade under senaste dygnet, veckan, månaden, kvartalet och året | amounts |
calculate-amount-sum-per-time-period | Summerar ett värde från varje upplänk i samma periodhinkar, plus en livstidssumma. Använd den när varje rapport bär en mängd snarare än en löpande räknare | amounts |
Skillnaden som är värd att få rätt: counter-delta och amount-by-time-period läser en räknare som
bara växer och räknar ut differensen. amount-sum läser en mängd som rapporteras varje gång och
adderar dem.
Person- och trafikräkning
| Translator | Vad den beräknar | Fält som skapas |
|---|---|---|
calculate-people-count-total | En livstidssumma in och ut som överlever sensornollställningar. En räknare kan falla till noll av skäl som inte har med människor att göra: en konfigurerad daglig nollställning, en återanslutning till nätet, ett batteribyte. Den här adderar ökningen varje upplänk, och vid ett fall adderar den det nya värdet i stället för en negativ differens, så att summan bara växer | peopleCountTotalIn, peopleCountTotalOut |
calculate-people-count-daily | En räkning "hittills idag" som nollställs vid lokal midnatt | peopleCountDailyIn, peopleCountDailyOut |
calculate-people-count-per-time-period | Rullande summor för dag, vecka, månad, kvartal och år plus en livstidssumma, räknat kontinuerligt | people |
calculate-people-count-during-time-window-per-time-period | Samma perioder, men räknat bara inuti ett dagligt tidsfönster, med möjlighet att hoppa över helger. För öppettider snarare än dygnet runt | people |
calculate-traffic-counter-total | Livstidssummor för en PMX-trafikräknarradar, per hastighetsklass och per riktning. Trafikens motsvarighet till calculate-people-count-total | countClass0TotalLTR … countClass4TotalRTL |
Enhetsomvandling, skalning och kalibrering
| Translator | Vad den beräknar | Fält som skapas |
|---|---|---|
calculate-temperature-fahrenheit | Celsius till Fahrenheit, en decimal | temperatureF |
calculate-average-temperature-fahrenheit | Samma för en medelvärdesbildad temperaturavläsning | averageTemperatureF |
calculate-scale-by-factor | Multiplicerar en avläsning med en fast faktor | scaledValue |
calculate-linear-calibration | Tillämpar en linjär kalibrering, k och m, på en avläsning. För att korrigera en sensor med känd offset och lutning | arithmeticResult |
calculate-4-20-ma-scaling | Skalar om en avläsning från en 4–20 mA strömslinga till sensorns tekniska mätområde. 4 mA är områdets botten, 20 mA dess topp, vilket är så de flesta analoga processensorer för tryck, nivå och flöde rapporterar | arithmeticResult |
calculate-strips-drip-calibration | Kalibreringshjälp för Sensative Strips Drip | capMin, capMax, calibrationStatus |
Miljö
| Translator | Vad den beräknar | Fält som skapas |
|---|---|---|
calculate-dew-point-from-temperature-rh | Daggpunkt ur ett par av temperatur och relativ fuktighet, med SMHI:s approximation. Den temperatur luften skulle behöva kylas till innan dess fukt kondenserar: nära lufttemperaturen betyder att kondens, dimma eller klibbig inomhusluft är trolig | dewPointTemperature |
calculate-frost-precipitation | Om frost bildas på en kall yta, genom att jämföra yttemperaturen med daggpunkten i den omgivande luften. En yta kallare än daggpunkten drar ut fukt ur luften, och under fryspunkten blir den fukten frost | frostPrecipitation, state |
Tankinnehåll och diagnostik
| Translator | Vad den beräknar | Fält som skapas |
|---|---|---|
calculate-cylinder-fill | Innehållets volym och fyllnadsgrad i en cylindrisk tank, ur en avståndsmätares avläsning. Hanterar en tank stående eller liggande, och en sensor som mäter från taket eller från golvet | volume, fillLevel |
calculate-satellite-snr | Packar upp ett 32-bitars bestSatellites-ord till fyra enskilda signal-brusvärden för satelliter, för att diagnostisera GNSS-mottagning | satelliteSNR1 … satelliteSNR4 |
Avkodare med inbyggd beräkning
Två poster avkodar en rå enhetspayload och beräknar på samma meddelande, så de är hårdvarutranslatorer snarare än kedjade. De listas här på grund av vad de beräknar:
| Translator | Vad den gör |
|---|---|
dragino-lht65-dewpoint-calculation | Avkodar en upplänk från Dragino LHT65 och beräknar daggpunkt ur dess interna temperatur och fuktighet |
vegapuls-air41-cylinder-calculation | Avkodar en radarupplänk från Vega Vegapuls Air 41 och omvandlar avståndet till tankvolym och fyllnadsgrad, för övervakning av silo, IBC-behållare och buffertank |
Parametrar
Beräkningstranslatorer följer samma konvention som larmfamiljen: de flesta parametrar är valfria och bär ett standardvärde, och indatafältet löses automatiskt om du inte pekar det någonstans specifikt.
| Parameter | Syfte |
|---|---|
[storhet]Field | Läs källvärdet från en specifik fältsökväg i stället för det automatiska standardvalet. Till exempel energyField, counterField, temperatureField, peopleInField |
timeZone | Lokal tidszon som avgör var gränserna för dag, vecka, månad, kvartal och år faller. Används av varje periodbaserad translator |
Geometri- och skalningstranslatorerna tar i stället talen som beskriver installationen: radius,
length, isStanding och isDistanceFromCeiling för en tank; multiplyerK och additionM för en
linjär kalibrering; min_mA_value och max_measured_range för en strömslinga.
Kedjning
Beräkningstranslatorer är mest användbara framför en annan translator. Tre kedjor värda att känna till:
- Energibudget. Mätare →
calculate-energy-consumption-per-time-period→set-alarm-energy-consumption. Mätaren rapporterar en livstidssiffra, beräknaren gör om den till den här månadens förbrukning, och larmet går när månaden överskrider den avtalade nivån. - Frostvarning. Temperatur- och fuktsensor →
calculate-dew-point-from-temperature-rh→calculate-frost-precipitation→set-alarm-frost-precipitation. Varje steg lägger till ett värde, och larmet på slutet behöver inga tröskelvärden eftersom beräknaren redan har nått ett utslag. - Tillförlitliga personräkningar. Personräknare →
calculate-people-count-total→calculate-people-count-per-time-period. Den första gör att räkningen överlever sensorns nollställningar, den andra delar in den i perioder.
För larmen på slutet av de här kedjorna, se Larmtranslatorer. För det fullständiga A–Ö-registret över alla translatorer, se översikten över translatorer.