Цитата Сообщение от capzap Посмотреть сообщение
так если нет переменной, она обезличена входом ПОУ, сами же приводите код с использованием циклов, не будете же писать на десять переменных десять индивидуальных функциональны блоков для обработки. Тоже самое касается преобразований из одного типа в другой, компилятор будет ругаться если переменной одного типа, будете присваивать значение другого типа, а с указателями можно всё что угодно. Этой информации полно в инете, ликбез здесь не уместен, Вам уже писали что нет понимания что такое указатели, не стоит с ними и связываться.
Из порта Вы будете получать не строку, а массив байт из них сразу получить число намного легче, чем Ваши потуги в преобразовании строк, которые здесь вообще не нужны. Dword с маской 16#FFFF и два байтовых сравнения сделают "чудеса"
Как пример: такой алгоритм будет верно работать для моего случая? или нужно создавать массив с большим количеством элементов?
Маскирование изучал в университете, но по прошествии 10 лет уже сложно вспомнить...можете на примере показать как преобразовать число из одной системы в другую путем маскирования?
VAR
ARR:ARRAY[1..3] OF WORD;
ARR_VALUE:ARRAY[1..3] OF WORD := 16#FFFF, 16#752A, 16#4B9C;
I:WORD;
STAGE:WORD;
VALUE:WORD;
END_VAR

ARR := ARR_VALUE;
IF I < 3 THEN
I := I +1;
IF ARR[ I ] = 16#FFFF THEN
VALUE := ARR[ I +1];
END_IF
ELSE
I := 0;
END_IF