Приветствую всех, кто решил помочь разобраться в вопросе. Имеется устройство, во втором регистре готового хранится значение с типом данных Float 32 и порядком байт DCBA, подскажите, как на языке FBD
пересчитать это всё к нормальному виду.
Нажмите для просмотра прикрепленного файла
manjey73
27.10.2021, 13:22
AND работающий в режиме целочисленных есть?
Или деление с остатком как вариант?
Цитата(manjey73 @ 27.10.2021, 13:22)

AND работающий в режиме целочисленных есть?
Или деление с остатком как вариант?
Ничего не понял, можно чуть подробнее?
manjey73
27.10.2021, 16:36
К сожалению я не использовал Unity так широко, решал на нем очень простую задачу давно и не знаю возможности языка FBD в реализашии Schneider.
Понимает ли AND, OR кроме битовой логики числовую ? например если на один и второй вход подать числа? Тогда при AND можно сделать отсечку всех битов сразу младшего и старшего байтов регистра, потом применяя SHL, SHR смещать числа и потом применить OR для склейки переставленных чисел.
Можете просто применить SHL, SHR которые заполняют при смещении нулями вытесняемые биты и просто потом сложить. (главное не ROL, ROR эти при вытеснении переносят биты)
Если есть поддержка ST или чего-то иного вы можете выдернуть старший и младший путем /256 и %256 то есть деление на 256 и остаток от деления на 256
Вообще в справке должны быть примеры на операции с битами
Цитата(zasu @ 27.10.2021, 13:18)

Приветствую всех, кто решил помочь разобраться в вопросе. Имеется устройство, во втором регистре готового хранится значение с типом данных Float 32 и порядком байт DCBA, подскажите, как на языке FBD
пересчитать это всё к нормальному виду.
Нажмите для просмотра прикрепленного файла А если без языков программирования, то как вы видите ответ на свой вопрос?
Я думаю, что т.к.
30352 = 0x7690
20292 = 0x4F44
25948 = 0x655C
-19128 = 0xFFB548
Теперь выводите их в обратном порядке...
Извините, что вмешался...
Уверен, что когда-нибудь это обязательно кому-нибудь пригодится. Вот решение этой задачи средствами среды разработки.
Нажмите для просмотра прикрепленного файла
manjey73
18.11.2021, 22:35
Ужас какой, неужели нет в Unity SHR, SHL / (деление без остатка) и % (MOD) ? да не поверю....
Последовательность байт dcba можно поменять разными методами:
· командой SWAP_ARINT, SWAP_ARWORD
· командами маскирования "AND_***_***: Логическое И между массивами и переменными"
· командой WORD_AS_BYTE --> BYTE_AS_WORD
Деление без остатка есть, и с остатком тоже, а средствами языка FBD делается так, как показано на картике выше и ничего плохого я в этом не вижу.
manjey73
19.11.2021, 12:31
Ну я в том смысле, что запись даже в FBD могла оказаться короче и проще, а у вас там простыня с перестановками туда-сюда...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.