Promotic
WikipediaLinkedInYoutubeTwitterFacebook

ArrayOper - metoda objektu Pm

Popis:
Metoda provádí různé typy výpočtů nad zadaným polem.
Syntaxe:
ArrayOper(aArray As Array, sType As String) As Variant
Volání:
val = Pm.ArrayOper(aArray, sType)
Parametry:
aArray(Array) Pole, nad kterým se bude operace provádět
sType(String) Název typu prováděné operace:
"Min" - Minimální hodnota všech položek pole. Položky musí být číselné, typu String nebo Date. V případě typu String se třídí podle abecedního pořadí.
"Max" - Maximimální hodnota všech položek pole. Položky musí být číselné, typu String nebo Date. V případě typu String se třídí podle abecedního pořadí.
"Sum" - Součet hodnot položek pole. Položky musí být číselné a výsledkem je hodnota typu Double.
"Mean" - Střední hodnota položek pole. Položky musí být číselné a výsledkem je hodnota typu Double.
"StdDeviation" - Směrodatná odchylka (Standard deviation) hodnot položek pole. Položky musí být číselné a výsledkem je hodnota typu Double.
"CRC1" - CRC-16-CCITT, 2 bytes Cyclical Redundancy Check with CCITT polynomial [0x1021 = x16+x12+x5+1]. Kontrolní polynomiální součet bajtů hodnot pole. Položky mohou být libovolného typu a výsledkem je hodnota typu Integer, tj. hodnota na 2 bajty. Kontrola tímto součtem je použita například u komunikace PmSBUS. Lze zadat podvariantu: "CRC1,Be", která provede součet nad hodnotama převedenými do formátu Big-Endian.
"CRC2" - CRC-16-IBM, 2 bytes Cyclical Redundancy Check with CCITT polynomial [0xA001 = x16+x15+x2+1]. Kontrolní polynomiální součet bajtů hodnot pole. Položky mohou být libovolného typu a výsledkem je hodnota typu Integer, tj. hodnota na 2 bajty. Kontrola tímto součtem je použita například u komunikačního protokolu Modbus. Lze zadat podvariantu: "CRC2,Be", která provede součet nad hodnotama převedenými do formátu Big-Endian.
"CRC3" - CRC-16-IBM, 2 bytes Cyclical Redundancy Check with CCITT polynomial [0x8005 = x16+x15+x2+1]. Kontrolní polynomiální součet bajtů hodnot pole. Položky mohou být libovolného typu a výsledkem je hodnota typu Integer, tj. hodnota na 2 bajty. Kontrola tímto součtem je použita například u komunikace PmABradleyDF1. Lze zadat podvariantu: "CRC3,Be", která provede součet nad hodnotama převedenými do formátu Big-Endian.
"CSumB1" - Kontrolní součet typu "bajtový součet hodnot". Hodnoty pole se naskládají lineárně do paměti a pak se provede součet bajtů této paměti. Výsledný součet se převede do hodnoty datového typu Byte (tzn. součet modulo 256).
"CSumB2" - Stejné jako CSumB1 ale výsledný součet se převede do hodnoty datového typu Integer (tzn. součet modulo 65536).
Poznámka:
Statistické výpočty (průměr, součet, ..) umí také systém trendů například pomocí metody PmTrend.GetData.

Tato metoda prozatím není funkční pro Web Obrazy.

Příklad1:
Příklad zjistí součet hodnot a minimální hodnotu položek z objektu PmData. Výsledek zapíše do INFO systému.
Dim arr
arr = pMe.Pm("/Data").GetVarArray()
Pm.Debug "Sum=" & Pm.ArrayOper(arr, "Sum")
Pm.Debug "Min=" & Pm.ArrayOper(arr, "Min")
Příklad2:
Příklad zjistí minimální a maximální hodnotu z pole stringů (podle abecedního pořadí).
Dim arr
arr = Array("abc", "xyz", "fgr")
Pm.Debug "Min=" & Pm.ArrayOper(arr, "Min")
Pm.Debug "Max=" & Pm.ArrayOper(arr, "Max")
V položce Debug_info INFO systému pak bude:
  Min = abc
  Max = xyz
Navigace:
 
- Pm
 
- Abs
- ArrayOper
 
 
- Cos
- E
- Exp
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice