Дискретный вход

Дискретный вход модуля построен на базе оптопары с токоограничительными резисторами и предназначен для приема сигнала напряжением 10..30 В или 220 В (в зависимости от конфигурации).

Дискретный вход может работать в режиме счетчика и/или частотомера.

Канал имеет индикаторный светодиод зеленого цвета для визуального контроля.

Подключение и внутреннее устройство канала DI

Основное назначение дискретного входа - контроль коммутируемого напряжения 10..30 В постоянного тока или 220 В переменного тока. Однако данный канал можно так же использовать для чтения логического состояния дискретного сигнала, подсчета количества импульсов или измерения частоты.

_images/di_10_30_VDC.png

Контроль напряжения 10..30 В постоянного тока (конфигурация 3 = 0)

_images/di_220_VAC.png

Контроль напряжения 220 В переменного тока (конфигурация 3 = 1)

Работа в режиме счетчика и частотомера

Дискретный вход DI может работать в режиме счетчика и/или частотомера. Максимальная частота следования импульсов 10 кГц, минимальная длительность импульса 10 мкс.

Настройка и управление каналами DI

К каналу DI относятся следующие регистры:

Параметр

Значение по умолчанию

Диапазон

Описание

di_noise_filter_us

10

10 – 65 000

Минимальная длительность импульса дискретных входов (х10 мкс)

di_pulseless_time

10000

1 000 – 1 000 000 000

Время обнуления измеренной частоты дискретных входов, мс

di_mode

3

1, 2, 3

Режим работы канала: 1 - подсчет импульсов, 2 - измерение частоты, 3 - подсчет импульсов и измерение частоты

di_state

-

0…1

Логическое состояние канала

di_cnt

-

0…264

Счетчик входных импульсов

di_freq

-

0.0…10000.0

Измерение частоты

Описание алгоритма работы DI

  • Режим отображения логического состояния

В режиме отображения логического состояния канал DI опрашивается с фиксированной частотой, и результат записывается в соответствующий регистр.

  • Режим подсчета импульсов

В режиме подсчета импульсов канал DI работает в режиме прерываний. По переднему фронту импульса запускается миллисекундный таймер, измеряющий длительность импульса. Далее если значение таймера больше параметра «di_noise_filter_us», значение счетчика канала инкрементируется.

  • Режим частотомера

В режиме частотомера канал DI так же работает в режиме прерываний. По переднему фронту импульса запускается миллисекундный таймер, измеряющий длительность импульса. Далее если значение таймера больше параметра «di_noise_filter_us», значение счетчика канала инкрементируется. Одновременно с таймером длительности импульса запускается второй таймер, измеряющий период следования импульсов (время между передними фронтами соседних импульсов). Далее вычисляется период измерения частоты, в течение которого наберется 100 импульсов. Если период измерения частоты получился больше 1 секунды (частота менее 100 Гц), то период измерения устанавливается равным 1 секунде. По окончании периода измерения пара значений – длительность периода и количество импульсов за этот период помещаются в буфер выборки. Значение частоты для сигналов с частотой более 100 Гц рассчитывается по методу скользящего среднего с использованием 5 выборок. Значение частоты для сигналов с частотой от 1 до 100 Гц рассчитывается по 1 выборке, причем для вычисления используется время между первым и последним импульсом. Значение частоты для сигналов с частотой менее 1 Гц рассчитывается по 1 выборке, содержащей 1 импульс и время между соседними импульсами.

Алгоритм расчета частоты для разных частот а) f > 100 Гц, б) f < 100 Гц, в) f < 1 Гц:

_images/di_description.png

Так как период измерения рассчитывается с каждым новым импульсом, происходит автоматическая подстройка периода измерения и обновления значения частоты. Если в течение времени «di_pulseless_time» не было ни одного импульса, значение измеренной частоты обнуляется.

При контроле напряжения 10..30 В следует ориентироваться на значения регистра «di_state».

При контроле напряжения 220 В переменное напряжние преобразуется в последовательность импульсов с частотой 50 Гц, поэтому в данном случае следует ориентироваться на занчение регистра «di_freq».