Hoppa till huvudinnehåll

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.

TranslatorVad den beräknarFält som skapas
calculate-energy-consumption-per-time-periodEnergi 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 tidigtenergyConsumptionDay, energyConsumptionWeek, energyConsumptionMonth, energyConsumptionQuarter, energyConsumptionYear
calculate-counter-delta-per-time-periodHur mycket en monotont växande räknare har vuxit hittills under innevarande period. kWh, liter, cykler, allt som bara går uppåtamounts
calculate-amount-by-time-periodHur mycket en växande räknare ackumulerade under senaste dygnet, veckan, månaden, kvartalet och åretamounts
calculate-amount-sum-per-time-periodSummerar 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äknareamounts

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​

TranslatorVad den beräknarFält som skapas
calculate-people-count-totalEn 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äxerpeopleCountTotalIn, peopleCountTotalOut
calculate-people-count-dailyEn räkning "hittills idag" som nollställs vid lokal midnattpeopleCountDailyIn, peopleCountDailyOut
calculate-people-count-per-time-periodRullande summor för dag, vecka, månad, kvartal och år plus en livstidssumma, räknat kontinuerligtpeople
calculate-people-count-during-time-window-per-time-periodSamma perioder, men räknat bara inuti ett dagligt tidsfönster, med möjlighet att hoppa över helger. För öppettider snarare än dygnet runtpeople
calculate-traffic-counter-totalLivstidssummor för en PMX-trafikräknarradar, per hastighetsklass och per riktning. Trafikens motsvarighet till calculate-people-count-totalcountClass0TotalLTR … countClass4TotalRTL

Enhetsomvandling, skalning och kalibrering​

TranslatorVad den beräknarFält som skapas
calculate-temperature-fahrenheitCelsius till Fahrenheit, en decimaltemperatureF
calculate-average-temperature-fahrenheitSamma för en medelvärdesbildad temperaturavläsningaverageTemperatureF
calculate-scale-by-factorMultiplicerar en avläsning med en fast faktorscaledValue
calculate-linear-calibrationTillämpar en linjär kalibrering, k och m, på en avläsning. För att korrigera en sensor med känd offset och lutningarithmeticResult
calculate-4-20-ma-scalingSkalar 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 rapporterararithmeticResult
calculate-strips-drip-calibrationKalibreringshjälp för Sensative Strips DripcapMin, capMax, calibrationStatus

Miljö​

TranslatorVad den beräknarFält som skapas
calculate-dew-point-from-temperature-rhDaggpunkt 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 troligdewPointTemperature
calculate-frost-precipitationOm 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 frostfrostPrecipitation, state

Tankinnehåll och diagnostik​

TranslatorVad den beräknarFält som skapas
calculate-cylinder-fillInnehå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 golvetvolume, fillLevel
calculate-satellite-snrPackar upp ett 32-bitars bestSatellites-ord till fyra enskilda signal-brusvärden för satelliter, för att diagnostisera GNSS-mottagningsatelliteSNR1 … 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:

TranslatorVad den gör
dragino-lht65-dewpoint-calculationAvkodar en upplänk från Dragino LHT65 och beräknar daggpunkt ur dess interna temperatur och fuktighet
vegapuls-air41-cylinder-calculationAvkodar 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.

ParameterSyfte
[storhet]FieldLä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
timeZoneLokal 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.