Promotic

ArrayOper - metoda objektu Pm

Popis:
Metoda provádí různé typy výpočtů nad zadaným polem.
Syntaxe:
Variant ArrayOper(Array aArray, String sType)
Parametry:
aArray(Array) Pole, nad kterým se bude operace provádět (objekt PmArray pro JavaScript nebo datový typ Array pro VBScript).
sType(String) Název typu prováděné operace:
"Min" - Minimální hodnota všech položek v poli. Položky musí být číselné, typu String nebo Date. Pro typ String se třídí podle abecedního pořadí.
"Max" - Maximální hodnota všech položek v poli. Položky musí být číselné, typu String nebo Date. Pro typ 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, tzn. 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, tzn. 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, tzn. 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 uloží 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 typu Byte (tzn. součet modulo 256).
"CSumB2" - stejně jako CSumB1 ale výsledný součet se převede do hodnoty typu Integer (tzn. součet modulo 65536).
Poznámka:
- Statistické výpočty (průměr, součet, ...) umí také systém trendů, viz metoda PmaTrendGroup.GetData.
- Pro výpočet kontrolních sum je lepší použít objekt PmBuffer a jeho metodu CalcCheckSum.


Tato metoda není funkční ve Web obrazech.
Příklad1:
Příklad zjistí součet hodnot a minimální hodnotu položek z objektu PmaData. Výsledek se zapíše do INFO systému.
JavaScriptVBScriptVyber a zkopíruj do schránky

var 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í).
JavaScriptVBScriptVyber a zkopíruj do schránky

var arr = Pm.Array1("abc", "xyz", "fgr");
Pm.Debug("Min=" + Pm.ArrayOper(arr, "Min"));
Pm.Debug("Max=" + Pm.ArrayOper(arr, "Max"));
v položce "Debug" INFO systému pak bude:
  Min = abc
  Max = xyz

Historie:
Pm8.01.02: přidán parametr CRC1.
Navigace:
 
- Pm
 
- Abs
- ArrayOper
 
 
- Cos
- E
- Exp
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r.o.