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. bajt. Chodzi o tzw. transformację wartości 4-bajtowej z Little-endian do Big-endian (lub odwrotnie).
20 - Long -> BCD - Przetransformuje wartość typu Long (zakres 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 pozycje 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 konwersja 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 typu Variant, do tablicy, gdzie wszystkie pozycje są takiego samego elementárního typu danych (tzn. nie są typu Variant). Taka konwersja 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 w SO Windows.
Niniejsza i dwie następujące transformacje są stosowne na przykład do zapisu 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 w SO Windows.
122 - Real -> "99,9" - Wartość skonwertuje na łańcuch, gdzie w przypadku liczb rzeczywistych (Single, Double lub Date) zostanie zastosowany separator miejsc dziesiętnych, znak przecinek (","), bez względu na ustawienie w SO Windows.
200 - Value -> Array of Boolean - 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 danych Byte: 8 wartości w tablicy (odwrotne do transformacji typu 221)
- typ danych Integer: 16 wartości w tablicy (odwrotne do transformacji typu 222)
- typ danych Long: 32 wartości w tablicy (odwrotne do transformacji typu 223)
- typ danych Single: 32 wartości w tablicy (odwrotne do transformacji typu 224)
- typ danych Double: 64 wartości w tablicy (odwrotne do transformacji typu 225) 201 - Value -> Array of Byte - 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 danych Byte: 1 wartość w tablicy (odwrotne do transformacji typu 221)
- typ danych Integer: 2 wartości w tablicy (odwrotne do transformacji typu 222)
- typ danych Long: 4 wartości w tablicy (odwrotne do transformacji typu 223)
- typ danych Single: 4 wartości w tablicy (odwrotne do transformacji typu 224)
- typ danych Double: 8 wartości w tablicy (odwrotne do transformacji typu 225) 202 - Value -> Array of Integer - 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 danych Integer: 1 wartość w tablicy (odwrotne do transformacji typu 222)
- typ danych Long: 2 wartości w tablicy (odwrotne do transformacji typu 223)
- typ danych Single: 2 wartości w tablicy (odwrotne do transformacji typu 224)
- typ danych Double: 4 wartości w tablicy (odwrotne do transformacji typu 225) 203 - Value -> Array of Long - 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 danych Long: 1 wartość w tablicy (odwrotne do transformacji typu 223)
- typ danych Single: 1 wartość w tablicy (odwrotne do transformacji typu 224)
- typ danych Double: 2 wartości w tablicy (odwrotne do transformacji typu 225) 221 - Array -> Byte - Wytworzy wartość typu Byte. Parametr vValue może być:
- Array: 8 wartości typu Boolean (odwrotne do transformacji typu 200)
- Array: 1 wartość typu Byte (odwrotne do transformacji typu 201) 222 - Array -> Integer - 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ść typu Integer (odwrotne do transformacji typu 202) 223 - Array -> Long - Wytworzy wartość typu Long. 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ść typu Long (odwrotne do transformacji typu 203)
- wartość typu Single (odwrotne do transformacji typu 204) 224 - Array -> Single - 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ść typu Long (odwrotne do transformacji typu 203)
- wartość typu Long (odwrotne do transformacji typu 223) 225 - Array -> Double - 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. Dla tego typu transformacji dogodniejszym jest zastosowanie metody PmBuffer.GetHexaString. 241 - HexaString -> Array - Odwrotność poprzedniej transformacji, tzn. z wartości HexaString wytworzy wartość typu Array którego wszystkie pozycje są typu Byte
Dla tego typu transformacji dogodniejszym jest zastosowanie metody PmBuffer.SetHexaString. |
var Val = 3;
var ValNew = Pm.TransformValue(Val, 1);
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);
// Zapis tejże wartości w formie stałej (w układzie szesnastkowym).
}
var Val1 = CInt(-2);
var Arr = Pm.TransformValue(Val1, 200);
var Val2 = Pm.TransformValue(Arr, 222);
Pm.Debug(Arr, 1);
Pm.Debug(Val2, 1);