Интернет-магазин

Просмотр корзины
В корзине:

товаров - 0 шт.



§ 10. Модуль Ke-Box :: Входные дискретные линии

Дмитрий Иванов, 23 декабря 2010

Модуль Ke-Box содержит в своем составе 5 дискретных оптоизолированных дискретных линий. Эти линии предназначены для определения наличия или отсутствия внешнего логического сигнала (напряжения). Если на линии есть внешний сигнал величиной 2 - 30 В (постоянное напряжение), то соответствующая команда чтения состояния линии вернет значение "1" (логическая еденица). Если же сигнала нет (< 2 В), результатом чтения будет "0" (логический ноль).


Давайте проверим на практике как это работает. Начнем с самого простого варианта - будет просто подавать напряжение на входную дискретную линию. В модуле их 5 штук. Клеммы этих линий имеют имена IN1 - IN5. Рассмотрим в качестве примера работу с линий IN1 (можно и с любой другой из этих пяти линий). Что нам потребуется? Источник постоянного напряжения величиной не более 30 В. "+" нужно подават на входную линию, "-" на клемму ISOGND. Не перепутайте с просто GND - это две разные линии. Обычная GND электрически связана с "землей" всей схемы (контроллер, USB, компьютер) в то время как ISOGND является оптоизолированной и электрически со схемой не связана. В этом и есть суть опторазвязки - основная схема (включая самое главное - компьютер) не подвергаются внешнему напряжению на прямую а через защитный буфер в виде опторазвязки.

Входная дискретная линия

Рисунок 1. Напряжение на входную линию не подается. На линии логический ноль.

Оптоизолированный информационный вход

Рисунок 2. Напряжение на входную линию подано. На линии логическая еденица.


В схему можно вставить какой-либо механический контакт, который бы разрывал цепь при внешнем воздействии, например, кнопку, тумблер, контактные пластинки и т.д. Теперь если что-то происходит "снаружи" в цепи, мы сможем оперативно об этом узнать в нашей программе. Давайте посмотрим на практике как это происходит. В качестве софта будем использовать штатную программу Boxer. Тем более в ней есть удобный механизм визаульного контроля состояния входных линий. Как обычно, с модулем можно общаться текстовыми командами через терминал или даже из своей собственной программы.

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

Тактовая кнопка

Рисунок 3. Тактовая кнопка


Вставим кнопку в цепь, в качестве источника питания я здесь использую лабораторный регулируемый источник питания, хотя можно с таким же успехом воспользоваться батарейкой, аккамулятором и т.д., главное чтобы напряжение было не более 30 В. На рисунке ниже черный провод от "-" источника питания подключен к клемме ISOGND. Желтый провод с включенной в его цепь кнопкой к клемме IN4.

Схема подключения к входной линии

Рисунок 4. Схема подключения к входной линии

Ниже показана таже самая картинка с увеличенным участком места подключения проводников к клеммам модуля.

Оптоизолированная дискретная входная информационная линия

Рисунок 5. Схема подключения к входной линии (увеличено)

Итак, запускаем программу Boxer. Подключаемся к модулю, указав ассоциированный с ним номер COM порта. По умолчанию, при ненажатой кнопке, цепь разомкнута, на линию IN4 сигнал не подается. В результате соответствующий информационный "квадратик" имеет серый цвет (на линии логический ноль).

Рисунок 6. На линии IN4 логический ноль ("квадратик" серый)

А теперь нажимаем на кнопку - и "квадратик" становится зеленым, показывая что на линии присутствует высокий уровень напряжения. Стоит только убрать палец с кнопки и "квадратик" снова станет серым.

Рисунок 7. На линии IN4 логическая еденица ("квадратик" зеленый)


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

Кнопочный переключатель

Рисунок 8. Кнопочный переключатель

Схема подключения при этом меняется не сильно. Нажимая кнопку переключателя мы либо замыкаем либо размыкаем цепь и на входной линии IN4 то появляется внешнее напряжение, то пропадает. Все эти манипуляции можно наблюдать в программе Boxer.

Чтение информации снаружи LPT

Рисунок 9. Схема подключения к входной линии IN4 с использованием кнопочного переключателя


Теперь посмотрим чуть поближе что-же там происходит при этом с программной точки зрения. Программа Boxer функционирует следующим образом - при подключении к модулю она отправляет ему команду $KE,DAT. В результате модуль начинает с частотой 1 Гц посылать в COM порт сводную информацию по всем аппаратным ресурсам, включая входные дискретные линии. Получив необходимые данные программа переодически (1 Гц) обновляет информацию на главном окне. Однако часто бывает нужно "отлавливать" кратковременные изменения логического сигнала, которые могут быть просто незамечены при частотах более 1 Гц. Специально для таких приложений в модуле Ke-Box Есть специальный режим отслеживания изменений на входных линиях. Достаточного его включить и просто ждать. Как только входной сигнал на какой-либо входной дискретной линии измениться - модуль сразуже отправит соответствующее сообщение в порт. Таким образом нет необходимости в постоянном опросе состояния линии. Можно просто поставить на нее "отслеживатель" и обрабатывать сообщения по факту их возникновения. Режим включается с помощью Ke-команды $KE,EVT (см. описание команд для модуля Ke-Box).


С помощью входных дискретных линий модуля Ke-Box можно легко научить вашу программу реагировать на различные внешние воздействия. В цепь входной линии можно включить различные замыкающиеся / размыкающиеся датчики, напрмер датчик открытия двери автомобиля, дома, и др., датчик проникновения, перемещения и многое другое.



© Дмитрий Иванов
23 декабря 2010 года
http://www.kernelchip.ru



© KERNELCHIP 2006 - 2017