This is topic Float IEEE 754 in forum Мониторы Реального Времени / Real Time Monitors at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/35/t/000445.html

Posted by PMA (Участник № / Member № 1387) on :
 
Добрый день !
Trace Mode 6.10.2, модуль ОВЕН МВ110-224.1ТД -
модуль ввода сигнала тензодатчика, при чтении значения FLOAT32, из регистра с адресом 0x46
командой Rout_Float(3), не получается получить правильное значение. Из ТО "Значение хранится в двух последовательных регистрах. Старшие разряды хранятся в регистре, имеющем меньший адрес". Попытка использовать команды перестановки байтов средствами системы результатов не даёт. Файл Modbus.set не работает, команды форматирования в файле *.cnf тоже. В документации написано что используются тип Float IEEE 754. Как бы выйти из положения?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Файл Modbus.set в релизе 6.10.2 не работает, начиная с релиза 6.09.2.
Команды форматирования в файле *.cnf работают.
MDB_FRMT_FLOAT=<номер COM-порта>,<dec>. Dec может принимать значения 0,…3
При этом поддерживаемый порядок байтов в зависимости от числа DEC
0 – 3-2-1-0 (ModSim32-Float(Swapped))
1 – 1-0-3-2 (данный порядок следования байтов соответствует стандарту и ModSim32-FloatingPoint и устанавливается по умолчанию)
2 – 0 – 1 – 2 – 3 (данный порядок следования байтов соответствует INTEL)
3 – 2 – 3 – 0 – 1

Например, чтобы выбрать формат "3-2-1-0" для COM1, надо задать
MDB_FRMT_FLOAT=0,0
 
Posted by PMA (Участник № / Member № 1387) on :
 
Здравствуйте !
Создаю новый проект 1 канал float, подключен к источнику modbus, через COM2, читаю значение командой Rout_Float(3)#1.
В каталоге RTM создаю файл float.cnf.
Записываю в него поочерёдно строки вида:
MDB_FRMT_FLOAT=1,0
запускаю профайлер результата нет, байты не переставляются.
MDB_FRMT_FLOAT=1,1 то же самое
MDB_FRMT_FLOAT=1,2 ..
MDB_FRMT_FLOAT=1,3 ...
констатирую что то пошло не так, может нужно секретное слово знать.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Наименование и формат файла конфигурирования запуска МРВ смотрите в разделе "Приложения/Задание параметров работы мониторов".
 
Posted by PMA (Участник № / Member № 1387) on :
 
Добрый день !
Посмотрел !
Создал файл следующего вида:

имя файла - TMcom_0.cnf

текст -

MDB_FRMT_FLOAT=1,2
END_OF_CNF
... (пустая строка)

результат тот же ...
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Попробуйте другие варианты настройки.
В частности, Вам было предложено попробовать
MDB_FRMT_FLOAT=1,0
 
Posted by PMA (Участник № / Member № 1387) on :
 
Дело в том, что испробовал все варианты, Trace Mode не видит файл конфигурации, такое ощущение.
В каком директории должен находится файл TMcom_0.cnf ??
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Файл TMcom_0.cnf должен лежать в папке запускаемого узла проекта с номером 0.

Чтобы проверить, читает ли RTM файл *.cnf, задайте в этом файле еще 1 ключ
DEBUGON=F0000200

В профайлерном протоколе в папке узла должны быть записи об инициализации COM-порта и обмене по COM-портам.
 
Posted by PMA (Участник № / Member № 1387) on :
 
Всё очень странно !!
Добавил команду для отладки и заработало правильно.
Вопрос.. может быть в файле должно быть больше одной команды?
Ну тем не менее огромная вам благодарность.
 
Posted by PMA (Участник № / Member № 1387) on :
 
Сожалею, но не понял в чём было дело, сейчас стало нормально работать с одним ключом.
Проблема решилась спасибо.
 
Posted by PMA (Участник № / Member № 1387) on :
 
Добрый день !
Создаю новый проект два канала HEX32, один на ввод другой на вывод. требуется перестановка байтов.
Пишу команду в файл *.CNF
MDB_FRMT_WORD=3,0 , ничего не происходит, меняю на
MDB_FRMT_LONG=3,0 , работает но перестановка происходит только для HEX32, работающего на чтение,
для канала работающего на выход перестановка не производится, так задумано или я ошибаюсь??
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Пришлите, пожалуйста, Ваш проект на адрес техподдержки hotline@adastra.ru
 
Posted by PMA (Участник № / Member № 1387) on :
 
Добрый день !
Прошу прощения задержался, был в отпуске.
Выслал проект на hotline@adastra.ru
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Ответ дан почтой.
 
Posted by PMA (Участник № / Member № 1387) on :
 
Здравствуйте !

Ответ, что-то никак не идёт, есть проблемы?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Написали письмо в ответ 14.08.2017 в 15:29.
MDB_FRMT_LONG на запись работать не будет.
Можно перестановку делать программно.
Или попробуйте модбас источник W_Float(16) залинковать на канал HEX32 и использовать перестановку для Float.
 
Posted by PMA (Участник № / Member № 1387) on :
 
Добрый день !
К сожалению письма я не получил ..

Связал канал HEX32 с источником W_Float(16) и вставил в файл TMcom_0.cnf команды
MDB_FRMT_LONG 1,0
MDB_FRMT_FLOAT 1,0

Всё заработало правильно.
То есть идёт перестановка Input HEX32,
и перестановка Output Hex32.
Спасибо !
В качестве предложения для дальнейшего развития,
может в панели настройки источника MODBUS дать возможность выбрать перестановку байт.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Хорошо! Спасибо за предложение! Передадим разработчикам.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2