Jak převést ascii cód znaku v usint na string ?
Pavel Sovička:
Tak dobrá vůle kompilátoru je mnohdy postačující. V Cčku se to řeší přetypováním, což nevím jestli strukturovaný text umí. Co by ale umět měl je datový typ union:
https://help.codesys.com/webapp/_cds_datatype_union;product=codesys;version=3.5.12.0
https://forge.codesys.com/forge/talk/Engineering/thread/c408834957/
Ve stručnosti, union je zapsaný podobně jako struktura (shodný je i přístup přes tečku), ale je to jeden paměťový prostor reprezentovaný několika různými datovými typy. Podle toho na který datový typ se přistupuje, tak se kompilátor chová. Takže je možné vytvořit union z typů "usint" a "string". Do "usint" části zapsat číslo a ze "string" části přečíst písmeno.
Juraj Rojko:
Citace: Pavel Sovička 15.09.2020, 19:58
...Co by ale umět měl je datový typ union...
UNION je obsažen až v novější verzi jazyka ST, kterou (BOHUŽEL!) Foxtrot nepodporuje.
Luboš Urban:
Pokud by deklarace byla globální, tak lze vytvořit Str jako alias
VAR_GLOBAL
RxData : array[0..5] of usint := [84,101,115,116,0];
Str AT RxData : String[6];
END_VAR
a pak při zobrazení proměnné Str bude vidět 'Test'.
Navigace
[0] Index zpráv
[*] Předchozí strana