Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Языки программирования в TRACE MODE 6 / Algorithm Programming Languages » Определение некорректного значения FLOAT

   
Автор / Author Тема / Topic: Определение некорректного значения FLOAT
Сергей К.
Junior Member / Новичок
Участник № / Member № 3297


Icon 1 отправлено / posted      Профиль для / Profile for Сергей К.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
При опросе вычислителя ИРГА-2 появляются значения вида 1.#QNAN.
Подобное значение возникает тогда когда появляются проблемы с датчиком у прибора (обрыв или еще что).

Как определить этот момент в программе? И можно ли это сделать?

Сообщения / Posts 24 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
По какому протоколу Вы получаете данные от вычислителя?
Правильно - исключить передачу некорректных значений по интерфейсу.

Программно в проекте можно поймать этот факт недостоверности путем сравнения полученного значения с числом, заведомо превышающим допустимую верхнюю границу значений по этому параметру.

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Сергей К.
Junior Member / Новичок
Участник № / Member № 3297


Icon 1 отправлено / posted      Профиль для / Profile for Сергей К.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Протокол ModBus-RTU.
Исключить не получиться в силу того, что при ошибке датчика ИРГА выставляет определенное значение в hex-формате 0xFFFFFFFF.

Верхняя граница возможна.
Т.е. если для температуры верхнюю границу поставить в 1000°С то сравнение (предел < параметр) при некорректном значении выдаст TRUE? Правильно понял?

Сообщения / Posts 24 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Описанная в предыдущем посте возможность программной фиксации была реализована на модели, в которой значение -1.#QNAN формировалось внутри программы за счет некорректной арифметической функции (корень квадратный из отрицательного числа).
В стандарте МЭК, на основе которого построены программы, значения "не число" (-1.#QNAN и им подобные) параметра FLOAT не определены. Поэтому реалаьно программа, на вход которой подано такое значение, на него не реагирует и его не обрабатывает (эквивалент - ВХОД_программы_равен 0). Если значение "0" реальному процессу не свойственно, можно в программе принять это в качестве сигнала о недостоверности.

Если Вы используете для считывания Modbus-переменных функции Rin_Float или Rout_Float,
то появление -1.#QNAN в этой ситуации объяснимо.
Мы промоделировали ситуацию, когда от источника передается 0xFFFFFFFF.
При получении такого кода от источника в канале FLOAT устанавливается признак аппаратной недостоверности. Это уже достаточная информация для индикации и принятия соответствующего решения.

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Сергей К.
Junior Member / Новичок
Участник № / Member № 3297


Icon 1 отправлено / posted      Профиль для / Profile for Сергей К.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Для опроса используется R_FIFO_QUEUE.
Потребуется-ли переделка на опрос с помощью Rin_Float или Rout_Float?
Или будет достаточно сделать обработку в канале (трансляцию) FLOAT которая при аппаратной недостоверности выполнит определённые действия?

Сообщения / Posts 24 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Пршлите, пожалуйста, Ваш проект на hotline@adastra.ru.
Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


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

Rambler's Top100 Rambler's Top100



Powered by Infopop Corporation
UBB.classic™ 6.7.2