vValue | (Variant) Hodnota, která bude transformovaná. |
---|---|
nType | (Long) Typ transformace
1 - 12 -> 21 - V hodnotě typu Integer vymění 1.<->2. bajt (viz Příklad1). Jedná se o tzv. transformaci 2-bajtové hodnoty z Little-endian do Big-endian (nebo opačně).
2 - 1234 -> 4321 - V hodnotě typu Long vymění 1.<->4. bajt a 2.<->3. bajt. Jedná se o tzv. transformaci 4-bajtové hodnoty z Little-endian do Big-endian (nebo opačně).
20 - Long -> BCD - Převede hodnotu typu Long (rozsah 0-99999999) do hodnoty typu Long v BCD formátu (viz Příklad2).
21 - BCD -> Long - Převede hodnotu typu Long v BCD formátu do hodnoty typu Long.
40 - ElementArray -> Array - Převedení pole (Array), kde položky pole jsou skutečného elementárního datového typu (tzn. nejsou typu Variant) do standardního (VBScript) tvaru, kde každá položka pole je typu Variant s nastaveným podtypem. Tato konverze může být potřebná například pokud je pole získáno z komunikace nebo z funkce DLL knihovny.
41 - Array -> ElementArray - Převedení standardního VBScript pole (Array), kde každá položka pole je typu Variant, do pole, kde všechny položky jsou stejného elementárního datového typu (tzn. nejsou typu Variant). Tato konverze může být potřebná například pokud je pole zasíláno do komunikace (pro OPC viz Přenos vektoru dat) nebo do funkce DLL knihovny.
50 - Matrix -> TranspMatrix - V hodnotě typu matice (2-rozměrné pole Array) se provede vzájemná výměna řádků a sloupců matice (transponovaná matice).
101 - Single -> Simatic - Hodnotu typu Single transformuje do formátu reálného čísla PLC SIMATIC S5.
120 - Real -> "99x9" - Hodnota se převede na řetězec, kde pro reálné čísla (Single, Double nebo Date) se použije desetinný oddělovač podle nastavení v OS Windows.
Tato a následující dvě transformace jsou vhodné například pro ukládání hodnot do textových souborů, viz Sdílení dat prostřednictvím souborů. 121 - Real -> "99.9" - Hodnota se převede na řetězec, kde pro reálné čísla (Single, Double nebo Date) se použije jako desetinný oddělovač tečka ("."), bez ohledu na nastavení v OS Windows.
122 - Real -> "99,9" - Hodnota se převede na řetězec, kde pro reálné čísla (Single, Double nebo Date) se použije jako oddělovač desetinných míst, znak čárka (","), bez ohledu na nastavení v OS Windows.
200 - Value -> Array of Boolean - Vytvoří pole (Array) hodnot typu Boolean (viz Příklad3). Každá hodnota pole bude mít hodnotu jednoho bitu parametru vValue. Parametr vValue může být:
- datový typ Byte: 8 hodnot v poli (opak transformace typu 221)
- datový typ Integer: 16 hodnot v poli (opak transformace typu 222)
- datový typ Long: 32 hodnot v poli (opak transformace typu 223)
- datový typ Single: 32 hodnot v poli (opak transformace typu 224)
- datový typ Double: 64 hodnot v poli (opak transformace typu 225) 201 - Value -> Array of Byte - Vytvoří pole (Array) hodnot typu Byte. Každá hodnota pole bude mít hodnotu jednoho bajtu parametru vValue. Parametr vValue může být:
- datový typ Byte: 1 hodnota v poli (opak transformace typu 221)
- datový typ Integer: 2 hodnoty v poli (opak transformace typu 222)
- datový typ Long: 4 hodnoty v poli (opak transformace typu 223)
- datový typ Single: 4 hodnoty v poli (opak transformace typu 224)
- datový typ Double: 8 hodnot v poli (opak transformace typu 225) 202 - Value -> Array of Integer - Vytvoří pole (Array) hodnot typu Integer. Každá hodnota pole bude mít hodnotu jednoho dvoubajtu parametru vValue. Parametr vValue může být:
- datový typ Integer: 1 hodnota v poli (opak transformace typu 222)
- datový typ Long: 2 hodnoty v poli (opak transformace typu 223)
- datový typ Single: 2 hodnoty v poli (opak transformace typu 224)
- datový typ Double: 4 hodnoty v poli (opak transformace typu 225) 203 - Value -> Array of Long - Vytvoří pole (Array) hodnot typu Long. Každá hodnota pole bude mít hodnotu jednoho čtyřbajtu parametru vValue. Parametr vValue může být:
- datový typ Long: 1 hodnota v poli (opak transformace typu 223)
- datový typ Single: 1 hodnota v poli (opak transformace typu 224)
- datový typ Double: 2 hodnoty v poli (opak transformace typu 225) 221 - Array -> Byte - Vytvoří hodnotu typu Byte. Parametr vValue může být:
- Array: 8 hodnot typu Boolean (opak transformace typu 200)
- Array: 1 hodnota typu Byte (opak transformace typu 201) 222 - Array -> Integer - Vytvoří hodnotu typu Integer (viz Příklad3). Parametr vValue může být:
- Array: 16 hodnot typu Boolean (opak transformace typu 200)
- Array: 2 hodnoty typu Byte (opak transformace typu 201)
- Array: 1 hodnota typu Integer (opak transformace typu 202) 223 - Array -> Long - Vytvoří hodnotu typu Long. Parametr vValue může být:
- Array: 32 hodnot typu Boolean (opak transformace typu 200)
- Array: 4 hodnoty typu Byte (opak transformace typu 201)
- Array: 2 hodnoty typu Integer (opak transformace typu 202)
- Array: 1 hodnota typu Long (opak transformace typu 203)
- hodnota typu Single (opak transformace typu 204) 224 - Array -> Single - Vytvoří hodnotu typu Single. Parametr vValue může být:
- Array: 32 hodnot typu Boolean (opak transformace typu 200)
- Array: 4 hodnoty typu Byte (opak transformace typu 201)
- Array: 2 hodnoty typu Integer (opak transformace typu 202)
- Array: 1 hodnota typu Long (opak transformace typu 203)
- hodnota typu Long (opak transformace typu 223) 225 - Array -> Double - Vytvoří hodnotu typu Double. Parametr vValue může být:
- Array: 64 hodnot typu Boolean (opak transformace typu 200)
- Array: 8 hodnot typu Byte (opak transformace typu 201)
- Array: 4 hodnoty typu Integer (opak transformace typu 202)
- Array: 2 hodnoty typu Long (opak transformace typu 203) 240 - Array -> HexaString - Vstupem je hodnota typu Array jejichž všechny položky jsou typu Byte. Výstupem je hodnota typu String s tzv. HexaString obsahem.
Příklad: Pokud vstupní hodnota typu Array obsahuje tři hodnoty typu Byte, například 1A 00 B8 (v hexadecimálním tvaru), pak výstupem bude String s obsahem 6 znaků "1A00B8". Vhodné pokud je potřeba binární data uložit do textu. Pro tento typ transformace je lepší použít metodu PmBuffer.GetHexaString. 241 - HexaString -> Array - Opak předchozí transformace, tzn. z hodnoty HexaString udělá hodnotu typu Array jejichž všechny položky jsou typu Byte
Pro tento typ transformace je lepší použít metodu 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);
// Zápis téže hodnoty v podobě konstanty (v hexadecimálním tvaru).
}
var Val1 = CInt(-2);
var Arr = Pm.TransformValue(Val1, 200);
var Val2 = Pm.TransformValue(Arr, 222);
Pm.Debug(Arr, 1);
Pm.Debug(Val2, 1);