Переставлены байты в 16 и 17 версиях Codesys. 0 бит попадает в 8 бит, а 8 бит в 0 бит.
Вложение 79377
Можно в регистре переставить байты наоборот, тогда биты будут соответствовать номерам.
Например написать функцию и вставить её между принятым регистром и новой переменной типа Маск и биты извлекать уже из маски. Биты будут уже на своих местах.
Код:
FUNCTION SW_BYTE : WORD // Перестановка байт
VAR_INPUT
In:WORD;
END_VAR
_____________________________
SW_BYTE := ROL(In, 8);
Только имейте ввиду, 194 регистр начинается с 3104 бита (194*16=3104 - 0 бит в 194 рег.), 3110 бит - в 194 регистре 6 по счёту,
переставите байты, будет он не 14 а 6, вам легче от этого?
Со 125 регистром проще, (125*16=2000 - 0 бит в 125 регистре), 2001 бит должен быть 1 битом в 125 регистре,
после перестановки байт, вместо 9 он станет 1.