Реклама / ООО «ИЗОЛПРОЕКТ» / ИНН: 7725566484 | ERID: 2Vtzqx6kV7S
IPB IPB
Проектирование, монтаж, наладка, сервис


Здравствуйте, гость ( Вход | Регистрация )

- Стандарт НП «АВОК» 7.11-2024
«Рекомендации по проектированию инженерных систем
дошкольных образовательных организаций»

АВОК в соц. сетях
ИНН: 7714824045 | erid: 2VtzqwzKQiU
 
Добавить ответ в эту темуОткрыть тему
> Вопрос по Unity Pro. Считать float и поменять порядок байт.
zasu
сообщение 27.10.2021, 13:18
Сообщение #1





Группа: New
Сообщений: 12
Регистрация: 22.10.2021
Пользователь №: 397462



Приветствую всех, кто решил помочь разобраться в вопросе. Имеется устройство, во втором регистре готового хранится значение с типом данных Float 32 и порядком байт DCBA, подскажите, как на языке FBD
пересчитать это всё к нормальному виду.
Прикрепленный файл  float32.jpg ( 29,47 килобайт ) Кол-во скачиваний: 2
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
manjey73
сообщение 27.10.2021, 13:22
Сообщение #2





Группа: Участники форума
Сообщений: 2133
Регистрация: 1.8.2014
Пользователь №: 240922



AND работающий в режиме целочисленных есть?
Или деление с остатком как вариант?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
zasu
сообщение 27.10.2021, 15:33
Сообщение #3





Группа: New
Сообщений: 12
Регистрация: 22.10.2021
Пользователь №: 397462



Цитата(manjey73 @ 27.10.2021, 13:22) *
AND работающий в режиме целочисленных есть?
Или деление с остатком как вариант?


Ничего не понял, можно чуть подробнее?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
zasu
сообщение 27.10.2021, 16:19
Сообщение #4





Группа: New
Сообщений: 12
Регистрация: 22.10.2021
Пользователь №: 397462



Вот, что у меня есть, как из этого сотворить удобночитаемое число? Контроллер M340
Прикрепленный файл  readvar.jpg ( 33,44 килобайт ) Кол-во скачиваний: 20

Прикрепленный файл  table.jpg ( 50,47 килобайт ) Кол-во скачиваний: 14
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
manjey73
сообщение 27.10.2021, 16:36
Сообщение #5





Группа: Участники форума
Сообщений: 2133
Регистрация: 1.8.2014
Пользователь №: 240922



К сожалению я не использовал Unity так широко, решал на нем очень простую задачу давно и не знаю возможности языка FBD в реализашии Schneider.

Понимает ли AND, OR кроме битовой логики числовую ? например если на один и второй вход подать числа? Тогда при AND можно сделать отсечку всех битов сразу младшего и старшего байтов регистра, потом применяя SHL, SHR смещать числа и потом применить OR для склейки переставленных чисел.

Можете просто применить SHL, SHR которые заполняют при смещении нулями вытесняемые биты и просто потом сложить. (главное не ROL, ROR эти при вытеснении переносят биты)

Если есть поддержка ST или чего-то иного вы можете выдернуть старший и младший путем /256 и %256 то есть деление на 256 и остаток от деления на 256

Вообще в справке должны быть примеры на операции с битами
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
yante
сообщение 7.11.2021, 15:37
Сообщение #6





Группа: New
Сообщений: 2
Регистрация: 7.11.2021
Пользователь №: 397973



Цитата(zasu @ 27.10.2021, 13:18) *
Приветствую всех, кто решил помочь разобраться в вопросе. Имеется устройство, во втором регистре готового хранится значение с типом данных Float 32 и порядком байт DCBA, подскажите, как на языке FBD
пересчитать это всё к нормальному виду.
Прикрепленный файл  float32.jpg ( 29,47 килобайт ) Кол-во скачиваний: 2

А если без языков программирования, то как вы видите ответ на свой вопрос?
Я думаю, что т.к.
30352 = 0x7690
20292 = 0x4F44
25948 = 0x655C
-19128 = 0xFFB548
Теперь выводите их в обратном порядке...
Извините, что вмешался...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
zasu
сообщение 18.11.2021, 14:27
Сообщение #7





Группа: New
Сообщений: 12
Регистрация: 22.10.2021
Пользователь №: 397462



Уверен, что когда-нибудь это обязательно кому-нибудь пригодится. Вот решение этой задачи средствами среды разработки.
Прикрепленный файл  float.png ( 23,16 килобайт ) Кол-во скачиваний: 45
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
manjey73
сообщение 18.11.2021, 22:35
Сообщение #8





Группа: Участники форума
Сообщений: 2133
Регистрация: 1.8.2014
Пользователь №: 240922



Ужас какой, неужели нет в Unity SHR, SHL / (деление без остатка) и % (MOD) ? да не поверю....
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
zasu
сообщение 19.11.2021, 8:58
Сообщение #9





Группа: New
Сообщений: 12
Регистрация: 22.10.2021
Пользователь №: 397462



Последовательность байт dcba можно поменять разными методами:

· командой SWAP_ARINT, SWAP_ARWORD
· командами маскирования "AND_***_***: Логическое И между массивами и переменными"
· командой WORD_AS_BYTE --> BYTE_AS_WORD


Деление без остатка есть, и с остатком тоже, а средствами языка FBD делается так, как показано на картике выше и ничего плохого я в этом не вижу.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
manjey73
сообщение 19.11.2021, 12:31
Сообщение #10





Группа: Участники форума
Сообщений: 2133
Регистрация: 1.8.2014
Пользователь №: 240922



Ну я в том смысле, что запись даже в FBD могла оказаться короче и проще, а у вас там простыня с перестановками туда-сюда...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Реклама
ООО «Арктика групп» ИНН: 7713634274




Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqvWgxEU

ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqvybpdW

Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx
Последние сообщения Форума






RSS Текстовая версия Сейчас: 1.8.2025, 16:38
Политика ООО ИИП «АВОК-ПРЕСС» в отношении обработки персональных данных