Подключение датчиков с аналоговым выходом к Wiren Board
Общие сведения
Датчики с аналоговым выходом — это специальные устройства, предназначенные для преобразования измеряемой физической величины в электрический сигнал. Наиболее распространены датчики с выходным сигналом напряжения 0-10 В и с выходным сигналом тока 4-20 мА. Существуют и другие типы аналоговых сигналов: 0-5 мА, 0-20 мА, 0-1 В, 0-100 мВ и т.д.
Аналоговые сигналы напряжения не требовательны к мощности приемника, позволяют подключать несколько приемников к одному источнику и не требуют применения специальных устройств связи. Однако, качество сигнала сильно зависит от сопротивления кабеля и входного сопротивления источника. Линии сигналов напряжения чувствительны к помехам. Поэтому длина линии связи ограничена несколькими метрами.
Токовые сигналы лишены недостатков сигналов напряжения. Так как ток в замкнутой цепи имеет одинаковое значение на любом ее участке, входной ток принимающего устройства всегда будет равен току на выходе датчика. Поэтому с помощью токовых сигналов можно передавать информацию на значительные расстояния.
Устройства приемо-передачи токовых сигналов делятся на пассивные и активные. Активные имеют собственный источник питания. При подключении активного датчика — вход приемника должен быть пассивным, и наоборот, если датчик пассивный следует использовать активный вход принимающего устройства.
Правила подключения
Датчики с аналоговым выходом по напряжению
- Не используйте кабели длиной более 10 м.
- Не располагайте линии связи с сигналами напряжения рядом с силовыми кабелями и другими источниками помех.
- Используйте экранированный кабель.
Датчики с аналоговым токовым выходом
- Можно использовать кабели длиной несколько сотен метров.
- Если вход приемника и выход датчика пассивные, то используется внешний источник питания.
- Не подключайте активный токовый выход к активному токовому входу — не будет работать.
- Если вход и выход пассивные — используйте внешний источник питания.
Подключение к контроллеру Wiren Board
Как подключить?
В контроллере есть универсальные входы-выходы Ax, которые могут работать в режиме аналогового входа. К ним можно подключить датчики с выходом по напряжению или термосопротивления.
Датчик подключается отрицательным проводом к клемме GND или общей земляной шине. Выход датчика подключается к одной из клемм Аx.
Специальных токовых входов в контроллере Wiren Board нет, но можно, используя резистор Rx= 100-300 Ом, ток преобразовать в напряжение и подключить по аналогии с датчиком, имеющим аналоговый выход по напряжению.
Кроме этого, мы выпускаем специализированные модули для подключения различных аналоговых и дискретных датчиков: WBIO-AI-DV-12_I/O_Module, WBIO-AI-DV-12_4-20MA, WB-MAI11. Использование этих модулей позволяет подключить большое количество датчиков к одному контроллеру и получить точные показания.
Инструкция по подключению
- Подключите положительный выход датчика к одному из входов Ax. Универсальные входы-выходы Ax по умолчанию настроены на измерение напряжения на их клеммах, поэтому дополнительная настройка в веб-интерфейсе не требуется.
- Подключите питание контроллера и питание датчика, включите контроллер и войдите в веб-интерфейс. Для питания датчика можно использовать выход Vout контроллера, если напряжение питания контролера и датчика совпадают. При питании контроллера от PoE используйте отдельный блок питания для датчика.
- Найдите виджет соответствующего входа, например, A1 Terminal. В поле Input Voltage будет отображаться значение напряжения с аналогового выхода датчика.
- Для того чтобы показания датчика отображались в единицах измеренной физической величины необходимо создать правило, выполняющее пересчет значений. Например, можно использовать следующее правило:
defineVirtualDevice("valueTrans", {
title: "Аналоговый датчик",
cells: {
Measure: {
type: "value",
value: 0
}
}
});
defineRule({
whenChanged: "wb-adc/A1", // вход к которому подключен датчик
then: function(k, b, minScale, maxScale, min, max) {
minScale = 0 // минимум шкалы прибора в единицах измеряемого параметра
maxScale = 10 // максимум шкалы прибора в единицах измеряемого параметра
min = 0 // минимальное значение входного сигнала в Вольтах
max = 5 // максимальное значение входного сигнала в Вольтах
k = (maxScale-minScale)/(max-min);
b = minScale - k*min
dev["valueTrans"]["Measure"] = dev["wb-adc"]["A1"]*k - b;
}
})
Скрипт создает новый виртуальный датчик, который отображает пересчитанное значение напряжения на аналоговом входе контроллера в единицах измеряемой величины. В коде нужно прописать минимум и максимум шкалы прибора и соответствующие минимальное и максимальное значения напряжения на входе контроллера.
Полезные ссылки
- Документация на контроллер Wiren Board 7
- Ответы на часто задаваемые вопросы (FAQ)
- Статья на Хабре о принципах работы различных датчиков