Уважаемые знатоки, подскажите пожалуйста кто как реализовал контроль за состоянием (работой) подключенных к ПР датчиков (меня интересует 4-20 ма.).
Вид для печати
Уважаемые знатоки, подскажите пожалуйста кто как реализовал контроль за состоянием (работой) подключенных к ПР датчиков (меня интересует 4-20 ма.).
Хочу следить за "уходом" показаний за границы измеряемой величины ниже нуля и выше порога измерений для датчика). Из своего опыта вижу, что при обрыве одного из проводов датчика показания сваливаются ниже нуля, а при неправильных настройках входа, или масштаба измерений, уползают вверх до неадекватных значений. Програмку хотел собрать таким образом, что бы при выходе за границы измерений (мне кажется сравнение с константой) работа входа блокировалась и появлялся сигнал о наличии некорректной работы (сетевая переменная привязанная к аварийному экрану или сообщению). Разобрался как сравнить, как получить аварийный сигнал, а вот как заблокировать работу входа не понимаю. А может я вообще не правильно подошел к решению ?
Вы лучше задачу в общем виде опишите, что за датчик, какой тип выхода, а потом уже можно будет решить,
как отслеживать его неисправность или обрыв.
Например так
Вложение 31025
Здесь при появлении сигнала Error, на выходе fSEL будет "заморожено" последнее правильное значение полученное от датчика.
Значения для Мин и Макс показаны условно.
Не усложняйте, нет тут никакого кода ошибки, просто программная самописная диагностика. В примере выше наглядно показали как все просто реализовать: если показания внутри допустимого диапазона (констант -10 и 110), то Error = 0, а Val = действительному текущему значению, если показания вышли за допустимый диапазон, то Error = 1, Val = последнему действительному значению до момента когда Error стала = 1. Вход работает немного за пределами диапазона.
Спасибо за ответы. Направление понял, сегодня вечером буду экспериментировать.
Ваш ответ понятен, Вы утверждаете что вход работает вне диапазона 4-20 мА! Если не изменяет память, кажется Алексей Геннадиевич говорил что можно и код считать, для варианта с ошибкой превышение максимального тока, но если, как Вы утверждаете вход работает вне диапазона 4-20 мА, то никаких проблем не должно возникнуть!
Вход работает вне диапазона 0-20 мА даже..
Насчет считывания кода - был бы рад увидеть кто и что о нем говорил, если есть ссылка на страницу форума - делитесь :) Я думаю Вы путаете с возможность чтения кода неисправности, выдаваемого макросами пересчета сопротивления в температуру.
Стандарт диапазона 4..20мА, насколько мне известно, задумывался как раз для расширения возможностей диагностики сигнала, при его уходе за нижнюю границу диапазона - в противовес устаревшему стандарту 0..20мА. АЦП контроллера фактически умеет работать с диапазоном шире чем 4..20мА, но для программы по стандарту действительными являются значения от 4мА до 20мА, соответственно все значения ниже или выше диапазона (не строго ниже/выше, а на определяемый программистом %, я, к примеру, беру 2.5-3% диапазона, в примере выше - 10%) можно считать неисправностью датчика и программно генерировать ошибку, что и сделано в представленном выше примере.
Вы не могли бы поделится макросом FSEL. Не доходит как он внутри устроен.
СПАСИБО, это именно оно. В одном макросе ответ на мой следующий вопрос который как раз про масштабирование.
Интересный макрос, а вы не могли бы пояснить по входам выходам.
Sens -входной сигнал.
Max -максимальный уровень выходного сигнала
min - минимальный уровень выходного сигнала
Выхода:
Q1 - отмасштабированный сигнал
max - авария (превышение входного сигнала) (короткое замыкание датчика, авария датчика)
min - авария (низкий уровень входного сигнала) (обрыв датчика)
В "свойствах макроса"
вход мин - минимальный уровень входного сигнала (4)
вход макс - максимальный уровень входного сигнала (20)
alr min - % от минимального уровня вх. сигнала, менее которого сработает защита (активируется выход min ) =>3,2
alr max -% от максимального уровня вх сигнала, более которого сработает защита (активируется выход max) =<20,4
Вход ПР должен быть настроен соответствующим образом - минимум 4, максимум - 20
Спасибо, очень полезная и простая штука.