Promotic

ArrayOper - metoda obiektu Pm

Opis:
Metoda wykonuje różne typy obliczeń ponad określoną tablicą.
Składnia:
Variant ArrayOper(Array aArray, String sType)
Parametry:
aArray(Array) Tablica, nad którą zostanie wykonana operacja (obiekt PmArray dla JavaScript lub typ danych Array dla VBScript).
sType(String) Nazwa typu wykonywanej operacji:
"Min" - Minimalna wartość wszystkich pozycji w tablicy. Pozycje muszą być liczbowe, typu String lub Date. Dla typu String są usgregowane według kolejności alfabetycznej.
"Max" - Maksymalna wartość wszystkich pozycji w tablicy. Pozycje muszą być liczbowe, typu String lub Date. Dla typu String są usgregowane według kolejności alfabetycznej.
"Sum" - Suma wartości pozycji tablicy. Pozycje muszą być liczbowe a rezultatem jest wartość typu Double.
"Mean" - Wartość średnia pozycji tablicy. Pozycje muszą być liczbowe a rezultatem jest wartość typu Double.
"StdDeviation" - Odchylenie standardowe (Standard deviation) wartości pozycji tablicy. Pozycje muszą być liczbowe a rezultatem jest wartość typu Double.
"CRC1" - CRC-16-CCITT, 2 bytes Cyclical Redundancy Check with CCITT polynomial [0x1021 = x16+x12+x5+1]. Suma kontrolna redundancji cyklicznej bajtów pozycji tablicy. Pozycje mogą być dowolnego typu danych a rezultatem jest wartość typu Integer, tzn. wartość na 2 bajty. Suma kontrolna obliczona tym sposobem jest stosowana na przykład w komunikacji PmSBUS. Można wprowadzić opcję dodatkową: "CRC1,Be", która wykona sumę nad wartościami przetransformowanymi do formatu Big-endian.
"CRC2" - CRC-16-IBM, 2 bytes Cyclical Redundancy Check with CCITT polynomial [0xA001 = x16+x15+x2+1]. Suma kontrolna redundancji cyklicznej bajtów pozycji tablicy. Pozycje mogą być dowolnego typu danych a rezultatem jest wartość typu Integer, tzn. wartość na 2 bajty. Suma kontrolna obliczona tym sposobem jest stosowana na przykład w komunikacji poprzez protokół Modbus. Można wprowadzić opcję dodatkową: "CRC2,Be", która wykona sumę nad wartościami przetransformowanymi do formatu Big-endian.
"CRC3" - CRC-16-IBM, 2 bytes Cyclical Redundancy Check with CCITT polynomial [0x8005 = x16+x15+x2+1]. Suma kontrolna redundancji cyklicznej bajtów pozycji tablicy. Pozycje mogą być dowolnego typu danych a rezultatem jest wartość typu Integer, tzn. wartość na 2 bajty. Suma kontrolna obliczona tym sposobem jest stosowana na przykład w komunikacji PmABradleyDF1. Można wprowadzić opcję dodatkową: "CRC3,Be", która wykona sumę nad wartościami przetransformowanymi do formatu Big-endian.
"CSumB1" - Suma kontrolna typu "bajtowa suma wartości". Wartości tablicy są linearnie ułożone do pamięci i następnie zostanie wykonana suma bajtów tej pamięci. Rezultat zostanie przetransformowany do wartości typu Byte (tzn. suma modulo 256).
"CSumB2" - tak samo jak CSumB1 tylko rezultat zostanie przetransformowany do wartości typu Integer (tzn. suma modulo 65536).
Notatka:
- Obliczenia statystyczne (średnia, suma, ...) potrafi wykonać również system trendów, patrz metoda PmaTrendGroup.GetData.
- W celu obliczania sum kontrolnych dogodniejszym jest zastosowanie obiektu PmBuffer oraz jego metodę CalcCheckSum.


Metoda ta nie działa w Web panelach.
Przykład1:
Przykład określi sumę wartości i minimalną wartość pozycji z obiektu PmaData. Wynik zostanie wyprowadzony do INFO systemu.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var arr = pMe.Pm("/Data").GetVarArray();
Pm.Debug("Sum=" + Pm.ArrayOper(arr, "Sum"));
Pm.Debug("Min=" + Pm.ArrayOper(arr, "Min"));
Przykład2:
Przykład określi minimalną i maksymalną wartość z tablicy łańcuchów (według kolejności alfabetycznej).
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var arr = Pm.Array1("abc", "xyz", "fgr");
Pm.Debug("Min=" + Pm.ArrayOper(arr, "Min"));
Pm.Debug("Max=" + Pm.ArrayOper(arr, "Max"));
w pozycji "Debug" INFO systemu wtedy będzie:
  Min = abc
  Max = xyz

Historia:
Pm8.01.02: dodano parametr CRC1.
Nawigacja:
 
- Pm
 
- Abs
- ArrayOper
 
 
- Cos
- E
- Exp
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r.o.