Promotic
WikipediaLinkedInYoutubeTwitterFacebook

ArrayOper - metoda obiektu Pm

Opis:
Metoda wykonuje różne typy obliczeń ponad określoną tablicą.
Składnia:
ArrayOper(aArray As Array, sType As String) As Variant
Wołanie:
val = Pm.ArrayOper(aArray, sType)
Parametry:
aArray(Array) Tablica, nad którą zostanie wykonana operacja
sType(String) Nazwa typu wykonywanej operacji:
"Min" - Minimalna wartość wszystkich pozycji w tablicy. Pozycje muszą być liczbowe, typu String lub Date. W przypadku typu String są usgregowane według kolejności alfabetycznej.
"Max" - Maksymalna wartość wszystkich pozycji w tablicy. Pozycje muszą być liczbowe, typu String lub Date. W przypadku typu String są usgregowane według kolejności alfabetycznej.
"Sum" - Suma pozycji w 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 danych 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 danych 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 danych 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 danych Byte (tzn. suma modulo 256).
"CSumB2" - Takie same jak CSumB1 tylko rezultat zostanie przetransformowany do wartości typu danych Integer (tzn. czyli suma modulo 65536).
Notatka:
Obliczenia statystyczne (średnia, suma, ..) potrafi wykonać również system trendów na przykład przy pomocí metody PmTrend.GetData.
 
Metoda ta nie działa w panelach w języku JavaScript (dlatego nie działa również w Web panelach).
Przykład1:
Przykład określi sumę wartości i minimalną wartość pozycji z obiektu PmData. Wynik zostanie wyprowadzony do INFO systemu.
VBScriptWybierz oraz skopiuj do schowka

Dim arr
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).
VBScriptWybierz oraz skopiuj do schowka

Dim arr
arr = Array("abc", "xyz", "fgr")
Pm.Debug "Min=" & Pm.ArrayOper(arr, "Min")
Pm.Debug "Max=" & Pm.ArrayOper(arr, "Max")
Na pozycji Debug_info INFO systemu wtedy będzie:
  Min = abc
  Max = xyz
Navigacja:
 
- 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