Добрый день, уважаемые.
Понадобилось нам хранить уставки с повышенной точностью, которую float не обеспечивает.
Выделили блок памяти с Float64, записали туда значение (MBE его видит).
Дальше никак: IFix не может привязать тэг к данному куску памяти (использовали AR). DataBase Manager показывает какой-то мусор (это логично, у него в списке типов данных нет Float64 или double).
Так как все-таки привязать тэг к Float64?
Спасибо.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
IFix 5.5, работа с Float64
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 12
- Зарегистрирован: 22 окт 2014, 10:03
- Имя: Ануфриев Александр Анатольевич
-
- почётный участник форума
- Сообщения: 1746
- Зарегистрирован: 18 янв 2009, 12:25
- Имя: Дмитрий
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 143 раза
Re: IFix 5.5, работа с Float64
Странно, еще с версии iFix 4.5 тип DOUBLE поддерживался. Правда, рекомендуется использовать драйвер IGS. MBE с версии 7.42 тоже поддерживает. Надо использовать опцию "Swap Long Words" в закладке DataBlock/Advanced и для просмотра-архивирования поле E_CV вместо F_CV
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой
-
- здесь недавно
- Сообщения: 12
- Зарегистрирован: 22 окт 2014, 10:03
- Имя: Ануфриев Александр Анатольевич
Re: IFix 5.5, работа с Float64
Спасибо, посмотрел. Не помогло.
В DataManagere iFixа у тэгов нет типа Double (там куча каких-то BFloat, BWFloat и т.п. - ни один не подошел).
Значение записываю с помощью Proficy.iFixToolkit.Adapter2.dll (методом SetOneDouble). Но все равно в PowerToole показывает, что это Float.
К сожалению, не могу вставить картинки (служебный прокси не пускает).
Единственный способ, с помощью которого у меня получилось увидеть число 1.123456789 в PowerTool (в режиме Float64) - это разобрать число с помощью BitConvertera и записать побайтно. Но в DataManagere все равно не показывает (он не понимает, что там double и не умеет его показывать).
iFix - 5.5, MBE - 7.43а
P.S. Еще в догонку: можно как-то в DataBase Managere посмотреть не только F_CV, но и F_0, F_1 и т.д?
Спасибо.
В DataManagere iFixа у тэгов нет типа Double (там куча каких-то BFloat, BWFloat и т.п. - ни один не подошел).
Значение записываю с помощью Proficy.iFixToolkit.Adapter2.dll (методом SetOneDouble). Но все равно в PowerToole показывает, что это Float.
К сожалению, не могу вставить картинки (служебный прокси не пускает).
Единственный способ, с помощью которого у меня получилось увидеть число 1.123456789 в PowerTool (в режиме Float64) - это разобрать число с помощью BitConvertera и записать побайтно. Но в DataManagere все равно не показывает (он не понимает, что там double и не умеет его показывать).
iFix - 5.5, MBE - 7.43а
P.S. Еще в догонку: можно как-то в DataBase Managere посмотреть не только F_CV, но и F_0, F_1 и т.д?
Спасибо.
-
- новенький
- Сообщения: 1
- Зарегистрирован: 23 окт 2014, 12:17
- Имя: Горбунов Андрей
- Страна: Казахстан
Re: IFix 5.5, работа с Float64
используйте встроенный драйвер SM2
SM2 Driver Features (SM2DOC.chm)
Stores analog values in 64-bit floating point registers, numbered 0 to 19999. Incoming values are not scaled.
SM2 Driver Features (SM2DOC.chm)
Stores analog values in 64-bit floating point registers, numbered 0 to 19999. Incoming values are not scaled.
для этого можно создать рисунок в Workspace для контроля значенийP.S. Еще в догонку: можно как-то в DataBase Managere посмотреть не только F_CV, но и F_0, F_1 и т.д
-
- здесь недавно
- Сообщения: 12
- Зарегистрирован: 22 окт 2014, 10:03
- Имя: Ануфриев Александр Анатольевич
Re: IFix 5.5, работа с Float64
Тут проблемма явно не в драйвере, поскольку MBE это значение отображает корректно.
Проблемы начинаются в DataManagere. Когда привязываю тэг к области памяти в списке доступных типов нет double.
В поддержке сказали, что AR не поддерживается 64-битные данные, и надо использовать AI + E_CV.
Но не помогло, у AI тоже нет такого типа данных.
Всю голову уже сломал.
Проблемы начинаются в DataManagere. Когда привязываю тэг к области памяти в списке доступных типов нет double.
В поддержке сказали, что AR не поддерживается 64-битные данные, и надо использовать AI + E_CV.
Но не помогло, у AI тоже нет такого типа данных.
Всю голову уже сломал.
-
- почётный участник форума
- Сообщения: 1746
- Зарегистрирован: 18 янв 2009, 12:25
- Имя: Дмитрий
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 6 раз
- Поблагодарили: 143 раза
Re: IFix 5.5, работа с Float64
В AI нет такого типа, используйте преобразование None. При визуализации вместо F_CV используйте E_CV. DataBase Manager даже не смотрите, внутри он еще 16-битный. Сразу тег *.E_CV выводите не мнемосхему.
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой
-
- здесь недавно
- Сообщения: 12
- Зарегистрирован: 22 окт 2014, 10:03
- Имя: Ануфриев Александр Анатольевич
Re: IFix 5.5, работа с Float64
Проблема была все-таки в драйвере. Поставил 4.76b и сразу появился тип Float64 в DatabaseManagere.
Всем спасибо.
Всем спасибо.