Просмотр полной версии : Отображение при обрыве датчика
Здравствуйте!
На панели СП270 создал 3 канала вывода температур типа Float,
в настройках вида указал 00,000
При обрыве датчика выдается число 0000000000000000,000 это давольно-таки не удобно.
Можно ли сделать покороче? Чтоб не вылазило за рамку цифрового дисплея?
цифровой дисплей - вид - длина
всего 5, дробная 3
так?
сделайте картинку с этим "0000000000000000,000", интересно поглядеть на такую фичу
Так и есть всего 5 знаков, дробных 3
Вот скриншот
классного жука вы нашли :)
у вас при обрыве датчика какого-то модуля ввода этот модуль по каналу измерения случаем не значение "NaN" посылает?
вот к примеру
На некорректные данные типа Float_32 возвращается значение NaN
Где посмотреть-то что он там посылает?
И что сделать можно?
1. посмотреть можно в руководстве по эксплуатации этого модуля.
2. а это уже зависит от модуля и чего он там вам посылает при обрыве, как пример перейти с флоата на целочисленные
Модуль МВ 110-224.8А опрашивается ПЛК 110-30, а Панель считывает с ПЛК
В описании модуля написано что при обрыве он выдает нулевое значение или диагностирует как неисправность(Значение слишком мало).
Если бы при обрыве показывал "0", это было бы неплохо.
На целые числа перейти вряд ли получится нужно именно Float.
в плк при обрыве датчика какое значение отображается в переменной флоат?
В ПЛК создана ветка Reai input module, там значение в оборваном канале=
-1,123548е+037
вот это значение панель и отображает.
вижу 2 пути:
1. простой - сделать обрезание полученного флоата перед передачей на панель с помощью LIMIT или MAX с нижней границей 0 (или -1, чтоб было понятно что случилось)
2. сложный - докапываться до модуля, почему он присылает такое значение, а не 0 и исправить причину
p.s. позвольте полюбопытствовать, для чего нужна точность измерения температуры до тысячных?
Евгений Сергеевич
21.07.2011, 13:59
для контроля состояния датчика используйте регистр "Статус измерения входа N (код исключительной ситуации)" и согласно нему корректируйте значение передаваемое на панель.
(в руководстве не нашел, что при исключительной ситуации передается ноль в качестве измеренного значения? А если у вас температура 0 это же не значит что датчик отвалился)
РЭ_МВ110-224 8А_984.pdf
Некоторые типы неисправностей первичных преобразователем не могут быть
диагностированы прибором. К ним относятся обрывы датчиков тока и напряжения (измеренный вход выдает нулевое значение или диагностирует как неисправность «Значение слишком
мало»).
Что значит с нижней границей 0? То есть у меня минусовых значений вообще не будет, как тогда зимой работать?
В ПЛК как сделать обрезание float хотя бы до десятых градуса или до сотых?
Можете ли написать пример как это выглядит?
Что значит с нижней границей 0? То есть у меня минусовых значений вообще не будет, как тогда зимой работать?
как зададите, так и будет, можете хоть -300 задать
В ПЛК как сделать обрезание float хотя бы до десятых градуса или до сотых?
обрезать real, если я не ошибаюсь, можно только преобразованием в целочисленное, что вам вроде не очень подходит
p.s. а сотые градуса для каких процессов требуются, если не секрет?
p.p.s если вам хватит точности десятых градуса, то вам вполне подойдет преобразование вашего реала в переменную типа int с помощью trunc. результатом будет измерение с верхней границей в 3276 градусов.
если уж совсем надо чтоб были сотые градуса, то соответственно тем же транком обрезаете до сотых, но в результате будет ограничение сверху в 327 градусов.
Просто хотят, чтобы 2 цифры было после запятой ну по крайней мере одну то точно нужно оставить.
А с помощью команды LIMIT только до целых округляется?
вобщем решайте сколько надо цифр после запятой, ставьте это число в параметр dp при конфигурировании модуля ввода, считывайте значение int и его же можно сквозняком передать на панель, выбрав там тип dec
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot