Promotic
WikipediaLinkedInYoutubeTwitterFacebook

TransformValue - metoda obiektu Pm

Opis:
Transformacja wartości.
Składnia:
Variant TransformValue(Variant vValue, Long nType)
Wołanie:
x = Pm.TransformValue(vValue, nType)
Parametry:
vValue(Variant) Wartość, która zostanie przetransformowana.
nType(Long) Typ transformacji
1 - 12 -> 21 - W wartości typu Integer zamieni 1.<->2. bajt (patrz Przykład1). Chodzi o tzw. transformację wartości 2-bajtowej z Little-endian do Big-endian (lub odwrotnie).
2 - 1234 -> 4321 - W wartości typu Long zamieni 1.<->4. bajt oraz 2.<->3. byte. Chodzi o tzw. transformację wartości 2-bajtowej z Little-endian do Big-endian (lub odwrotnie).
20 - Long -> BCD - Przetransformuje wartość typu Long (w zakresie 0-99999999) do wartości typu Long w formacie BCD (patrz Przykład2).
21 - BCD -> Long - Przetransformuje wartość typu Long w formacie BCD do wartości typu Long.
40 - ElementArray -> Array - Transformacja tablicy (Array), gdzia pozycja są rzeczywistego elementarnego typu danych (tzn. nie są typu Variant) do standardowej (VBScript) postaci, gdzia każda pozycja jest typu Variant z ustawionym podtypem. Taka transformacja może okazać się konieczna na przykład jeżeli tablica została uzyskana z komunikacji lub z funkcji biblioteki DLL.
41 - Array -> ElementArray - Transformacja standardowej tablicy VBScript (Array), gdzie każda pozycja jest pozycją typu Variant, do tablicy, gdzie wszystkie pozycje są takiego samego elementárního typu danych (tzn. nie są typu Variant). Transformacja taka może być konieczna na przykład jeżeli tablica jest przesyłana do komunikacji (dla OPC patrz Transmisja wektora danych) lub do funkcji biblioteki DLL.
50 - Matrix -> TranspMatrix - W wartości typu macierz (tablica 2-wymiarowa Array), przeprowadzi zamianę wierszy na kolumny i kolumn na wiersze (macierz transponowana).
100 - Simatic -> Single - Wartość typu Single przetransformuje z formatu liczby rzeczywistej w PLC SIMATIC S5.
101 - Single -> Simatic - Wartość typu Single przetransformuje do formatu liczby rzeczywistej w PLC SIMATIC S5.
120 - Real -> "99x9" - Wartość skonwertuje na łańcuch, gdzie w przypadku liczb rzeczywistych (Single, Double lub Date) zostanie zastosowany separator dziesiętny według ustawienia SO Windows.

Niniejsza i dwie następujące transformacje są stosowne na przykład do zapisywania wartości do plików tekstowych, patrz Współdzielenie danych poprzez pliki.

121 - Real -> "99.9" - Wartość skonwertuje na łańcuch, gdzie w przypadku liczb rzeczywistych (Single, Double lub Date) zostanie zastosowany separator dziesiętny kropka ("."), bez względu na ustawienie SO Windows.
122 - Real -> "99,9" - Wartość skonwertuje na łańcuch, gdzie w przypadku liczb rzeczywistych (Single, Double lub Date) zostanie zastosowany separator miesjc dziesiętnych, znak przecinek (","), bez względu na ustawienie SO Windows.
200 - Value -> Array of Boolean - Binarnie wytworzy tablicę (Array) wartości typu Boolean (patrz Przykład3). Każda wartość tablicy będzie mieć wartość jednego bitu parametru vValue. Parametr vValue może być:
- typ Byte: tablica będzie zawierać 8 wartości (odwrotne do transformacji typu 221)
- typ Integer: tablica będzie zawierać 16 wartości (odwrotne do transformacji typu 222)
- typ Long: tablica będzie zawierać 32 wartości (odwrotne do transformacji typu 223)
- typ Single: tablica będzie zawierać 32 wartości (odwrotne do transformacji typu 224)
- typ Double: tablica będzie zawierać 64 wartości (odwrotne do transformacji typu 225)
201 - Value -> Array of Byte - Binarnie wytworzy tablicę (Array) wartości typu Byte. Każda wartość tablicy będzie mieć wartość jednego bajtu parametru vValue. Parametr vValue może być:
- typ Byte: tablica będzie zawierać 1 wartość (odwrotne do transformacji typu 221)
- typ Integer: tablica będzie zawierać 2 wartości (odwrotne do transformacji typu 222)
- typ Long: tablica będzie zawierać 4 wartości (odwrotne do transformacji typu 223)
- typ Single: tablica będzie zawierać 4 wartości (odwrotne do transformacji typu 224)
- typ Double: tablica będzie zawierać 8 wartości (odwrotne do transformacji typu 225)
202 - Value -> Array of Integer - Binarnie wytworzy tablicę (Array) wartości typu Integer. Każda wartość tablicy będzie mieć wartość jednego dwubajtu parametru vValue. Parametr vValue może być:
- typ Integer: tablica będzie zawierać 1 wartość (odwrotne do transformacji typu 222)
- typ Long: tablica będzie zawierać 2 wartości (odwrotne do transformacji typu 223)
- typ Single: tablica będzie zawierać 2 wartości (odwrotne do transformacji typu 224)
- typ Double: tablica będzie zawierać 4 wartości (odwrotne do transformacji typu 225)
203 - Value -> Array of Long - Binarnie wytworzy tablicę (Array) wartości typu Long. Każda wartość tablicy będzie mieć wartość jednego dwubajtu parametru vValue. Parametr vValue może być:
- typ Long: tablica będzie zawierać 1 wartość (odwrotne do transformacji typu 223)
- typ Single: tablica będzie zawierać 1 wartość (odwrotne do transformacji typu 224)
- typ Double: tablica będzie zawierać 2 wartości (odwrotne do transformacji typu 225)
221 - Array -> Byte - Binarnie wytworzy wartość typu Byte. Parametr vValue może być:
- Array: 8 wartości typu Boolean (odwrotne do transformacji typu 200)
- Array: 1 wartości typu Byte (odwrotne do transformacji typu 201)
222 - Array -> Integer - Binarnie wytworzy wartość typu Integer (patrz Przykład3). Parametr vValue może być:
- Array: 16 wartości typu Boolean (odwrotne do transformacji typu 200)
- Array: 2 wartości typu Byte (odwrotne do transformacji typu 201)
- Array: 1 wartości typu Integer (odwrotne do transformacji typu 202)
223 - Array -> Long - Binarnie wytworzy wartość typu Long. Parametr vValue może być:
- Array: 32 hodnot typu Boolean (odwrotne do transformacji typu 200)
- Array: 4 hodnot typu Byte (odwrotne do transformacji typu 201)
- Array: 2 hodnot typu Integer (odwrotne do transformacji typu 202)
- Array: 1 wartości typu Long (odwrotne do transformacji typu 203)
- wartość typu Single (odwrotne do transformacji typu 224)
224 - Array -> Single - Binarnie wytworzy wartość typu Single. Parametr vValue może być:
- Array: 32 wartości typu Boolean (odwrotne do transformacji typu 200)
- Array: 4 wartości typu Byte (odwrotne do transformacji typu 201)
- Array: 2 wartości typu Integer (odwrotne do transformacji typu 202)
- Array: 1 wartości typu Long (odwrotne do transformacji typu 203)
- wartość typu Long (odwrotne do transformacji typu 223)
225 - Array -> Double - Binarnie wytworzy wartość typu Double. Parametr vValue może być:
- Array: 64 wartości typu Boolean (odwrotne do transformacji typu 200)
- Array: 8 wartości typu Byte (odwrotne do transformacji typu 201)
- Array: 4 wartości typu Integer (odwrotne do transformacji typu 202)
- Array: 2 wartości typu Long (odwrotne do transformacji typu 203)
240 - Array -> HexaString - Wejściem jest wartość typu Array którego wszystkie pozycje są typu Byte. Wyjściem jest wartość typu String z tzw. zawartością HexaString.

Przykład: Jeżeli w wartości wejściowej typu Array występują trzy wartości typu Byte, na przykład 1A 00 B8 (w układzie szesnastkowym), wtedy wyjściem będzie String o zawartości 6 znaków "1A00B8".

Dogodne w przypadku potrzeby zapisywania danych binarnych w formie tekstowej.

241 - HexaString -> Array - Odwrotność poprzedniej transformacji, tzn. z wartości HexaString wytworzy wartośc typu Array którego wszystkie pozycje są typu Byte
Wartość zwrotna:
Zwraca przetransformowaną wartość odpowiedniego typu. Błąd jest wksazany przez zwrócenie wartości typu Empty (można sprawdzić przy pomocy metody Pm.IsValid).
Notatka:

Metoda wykonuje różnego rodzaju transformacje wartości, których nie można w prosty sposób wykonać przy pomocy funkcji w skrypcie.

Notatka dotycząca wartości w PLC SIMATIC S5: Wartości w tym sterowniku PLC mają odrębny format wewnętrzny w porównaniu z formatem na komputerach PC. Wartości rzeczywiste trzeba transformować przy pomocy transformacji typu 100 (101), Wartości całkowite trzeba transformować przy pomocy transformacji typu 1 (2).

Notatka dotycząca formatu BCD (Binary Coded Decimal): każda cyfra liczby w układzie dziesiątkowym jest zapisana do 4 bitów. To znaczy, że w Long występuje 8 cyfr (interval 0-99999999). Format ten jest często stosowany w różnego rodzaju sprzęcie. Stała w formecie BCD można w prosty sposób zapisać tak, że liczba dziesiątkowa zostanie przedstawiona z prefiksem odpowiadającym zapisowi szesnastkowemu, a więc stała 999 przetransformowana do wartości w formacie BCD jest równa &h999.

 
Metoda ta nie działa w Web panelach.
Przykład1:
Zamiana bajtów w wartości typu Integer (wartość 2-bajtowa)
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var Val = 3;
var ValNew = Pm.TransformValue(Val, 1);
W zmiennej ValNew będzie wartość 768, w układzie szesnastkowym 300. To znaczy, że wartość &h0003 zopstała przetransformowana na wartość &h0300.
Przykład2:
Przetransformuje wartość 99 do formatu BCD (tzn. do wartości 153) ze sprawdzeniem, czy nie doszło do błędu.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var nVal = 99;
var nBcd = Pm.TransformValue(nVal, 20);
if (Pm.IsValid(nBcd))
{
Pm.Debug("Val=" + nVal + "-> BCD=" + nBcd);  //Val=99 -> BCD=153
Pm.Debug(0x99);  //Wyprowadzenie tejże wartości w postaci stałej z wykorzystaniem zapisu szesnastkowego.
}
Przykład3:
Przetransformuje wartość -2 typu Integer w zmiennej Val1 na tablicę bitów (na tablicę wartości typu Boolean) do zmiennej Arr (wartość -2 jest bitowo równa 1111111111111110). Następnie z tej tablicy zostanie z powrotem wytworzona wartość typu Long do zmiennej Val2. Dla kontroli dokładne informacje o zmiennych Arr oraz Val2 zostaną wyprowadzone do INFO systemu przy pomocy metody Pm.Debug.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var Val1 = CInt(-2);
var Arr = Pm.TransformValue(Val1, 200);
var Val2 = Pm.TransformValue(Arr, 222);
Pm.Debug(Arr, 1);
Pm.Debug(Val2, 1);
Navigacja:
 
- Pm
 
- Abs
- Cos
- E
- Exp
- LN2
- PI
- Pow
- Sin
- Tan
- TransformValue
 
 
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice