CANNY 5 nano, Драйвер каналов ввода-вывода

Материал из CANNY Wiki
Перейти к: навигация, поиск

Общее описание[править]

Пользователям CANNY5 nano доступны восемнадцать дискретных каналов ввода-вывода общего назначения. Каждый канал физически представлен соответствующим контактом платы контроллера. Записывая данные в соответствующие регистры каналов драйвера, функциональная диаграмма может управлять электрическим потенциалом на каждом из этих контактов. Считывая данные регистров каналов ввода-вывода, диаграмма может получать информацию о текущем значении потенциала каждого из них.

Физические характеристики каналов позволяют подключать к ним светодиоды или слаботочные внешние управляющие устройства, например мощные транзисторы или транзисторные сборки, которые позволяют передавать управляющие сигналы на исполнительные устройства — электромагнитные реле, небольшие электродвигатели. В качестве внешних источников дискретных сигналов способных управлять работой контроллера, возможно использовать механические, электромеханические и электронные кнопки и переключатели, генераторы импульсов, источники напряжения 0-5В и транзисторные выходы различной аппаратуры и т.п.

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

Ряд драйверов контроллера CANNY 5 nano в своей работе используют ресурсы драйвера каналов ввода-вывода и, при этом, имеют более высокий приоритет. Таким образом, при использовании ими тех или иных каналов контроллера, доступ драйвера ввода-вывода к этим каналам невозможен.

ВНИМАНИЕ! Каналы CANNY5 nano не имеют защиты от короткого замыкания, перегрузки и перенапряжения. Во избежание выхода каналов из строя, избегайте превышения допустимых показателей напряжения и тока на каналах контроллера!

Особенности работы канала №13[править]

Канал №13 может быть подключен через один из двух внешних контактов контроллера, обозначенных как «С13» и «*». При подключении через контакт «С13» канал №13, как и остальные контакты контроллера, может работать с сигналами напряжением 0-5В. При подключении через контакт «*» канал №13 подключается через резистивный делитель напряжения 22кОм / 11кОм , что дает возможность прямого включения данного контакта в цепи напряжением от 0 до 15В.

Регистры драйвера[править]

Параметры определяющие режим работы и текущее состояние каналов контроллера задаются для каждого канала независимо друг от друга. Ниже приведено описание допустимых значений регистров управления работой каналов ввода-вывода во всех основных режимах.

Регистр Ожидаемые значения
Регистр конфигурации канала №0
Регистр конфигурации канала №1
Регистр конфигурации канала №2
...
Регистр конфигурации канала №17
≥ 1 = установить конфигурацию канала контроллера, определяющую текущий режим и параметры его работы, как «Дискретный положительный выход»;
0 = установить конфигурацию канала контроллера, определяющую текущий режим и параметры его работы, как «Дискретный положительный вход».
Регистр включения подтягивающего резистора канала №7
Регистр включения подтягивающего резистора канала №8
Регистр включения подтягивающего резистора канала №9
Регистр включения подтягивающего резистора канала №13*
Регистр включения подтягивающего резистора канала №16
Регистр включения подтягивающего резистора канала №17
≥ 1 = включить подтяжку канала контроллера к потенциалу +5В;
0 = отключить подтяжку канала контроллера к потенциалу +5В.
Регистр включения активного режима / счетчика передних фронтов канала №7
Регистр включения активного режима / счетчика передних фронтов канала №8
Регистр включения активного режима / счетчика передних фронтов канала №9
Регистр включения активного режима / счетчика передних фронтов канала №13*
Регистр включения активного режима / счетчика передних фронтов канала №16
Регистр включения активного режима / счетчика передних фронтов канала №17
≥ 1 = включить активный режим / счетчик передних фронтов канала контроллера;
0 = отключить активный режим / счетчик передних фронтов канала контроллера.
Регистр включения активного режима / счетчика задних фронтов канала №7
Регистр включения активного режима / счетчика задних фронтов канала №8
Регистр включения активного режима / счетчика задних фронтов канала №9
Регистр включения активного режима / счетчика задних фронтов канала №13*
Регистр включения активного режима / счетчика задних фронтов канала №16
Регистр включения активного режима / счетчика задних фронтов канала №17
≥ 1 = включить активный режим / счетчик задних фронтов канала контроллера;
0 = отключить активный режим / счетчик задних фронтов канала контроллера.
Регистр выходного значения канала №0
Регистр выходного значения канала №1
Регистр выходного значения канала №2
...
Регистр выходного значения канала №17
≥ 1 = установить на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВКЛ» (+5В);
0 = установить на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВЫКЛ» (GND).
Примечание: При включении подтяжки или активного режима / счетчика фронтов канала №13 принимайте во внимание встроенную постоянную подтяжку данного канала к потенциалу GND за счет аппаратного делителя.

Регистры контроля драйвера каналов ввода-вывода разделяются на содержащие информацию о состоянии драйвера ввода-вывода в целом и на содержащие информацию о состоянии каждого канала индивидуально. Ниже приведено описание возвращаемых значений регистров контроля драйвера каналов ввода-вывода во всех основных режимах работы.

Регистр Возвращаемые значения
Регистр активности ввода-вывода
1 = в ходе прошедшего цикла выполнения функциональной диаграммы на каком-либо контакте контроллера, соответствующем каналам №№7, 8, 9 или 13, сконфигурированным как вход с включенным активным режимом, зарегистрировано изменение электрического потенциала;
0 = за прошедший цикл выполнения функциональной диаграммы на каналах контроллера №№7, 8, 9 или 13, сконфигурированных как вход с включенным активным режимом, изменений не обнаружено.
Регистр входного значения канала №0
Регистр входного значения канала №1
...
Регистр входного значения канала №17
1 = на соответствующем контакте контроллера установился электрический потенциал соответствующий полярности данного канала в режиме «ВКЛ» (+5В);
0 = на соответствующем контакте контроллера установился электрический потенциал не соответствующий полярности данного канала в режиме «ВКЛ» (+5В).
Регистр значения счетчика канала №7
Регистр значения счетчика канала №8
Регистр значения счетчика канала №9
Регистр значения счетчика канала №13
Регистр значения счетчика канала №16
Регистр значения счетчика канала №17
0...65535 = значение счетчика канала контроллера.

Состояние канала в момент запуска контроллера[править]

При включении контроллера, все его каналы находятся в режиме входа без внутренней подтяжки.

Режим дискретного выхода[править]

Канал, сконфигурированный для работы в режиме дискретного выхода, устанавливает на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВКЛ» при записи ненулевого значения в регистр выходного значения канала, и устанавливает на соответствующем контакте контроллера электрический потенциал соответствующий состоянию «ВЫКЛ» при записи значения «0» в регистр выходного значения канала.

Конфигурация канала для работы в данном режиме, задается константой, определяющей электрический потенциал на контакте соответствующего канала контроллера, в положениях «ВКЛ» и «ВЫКЛ».

Параметр Перечень допустимых значений
Тип канала Дискретный выход
Состояние «ВКЛ» +5В
Состояние «ВЫКЛ» GND

Именованные константы конфигураций каналов, содержатся в разделе «Конфигурация канала ввода-вывода» справочника констант CannyLab, доступ к которому осуществляется через контекстное меню входа функционального блока, имеющего тип «Константа».

Для перевода канала контроллера в режим дискретного выхода, необходимо в соответствующий каналу «Регистр конфигурации канала №ХХ» передать значение константы, соответствующей данному режиму работы.

Пример функциональной диаграммы выполняющей ежесекундное поочередное переключение электрических потенциалов с +5В на GND на контактах контроллера, соответствующих каналам №0 и №1.

8 6 5 1.png

ВНИМАНИЕ! Каналы CANNY5 nano не имеют защиты от короткого замыкания, перегрузки и перенапряжения. Во избежание выхода каналов из строя, избегайте превышения допустимых показателей напряжения и тока на каналах контроллера!

Режим дискретного входа[править]

Канал, сконфигурированный для работы в режиме дискретного входа, возвращает значение «1» в регистре своего входного значения если на соответствующем контакте контроллера установился электрический потенциал +5В, соответствующий состоянию «ВКЛ», и возвращает значение «0» в регистре входного значения, когда на соответствующем контакте контроллера установился электрический потенциал GND, не соответствующий состоянию «ВКЛ» канала.

Конфигурация канала для работы в данном режиме, определяется константой, задающей полярность электрического потенциала, при появлении которого на соответствующем каналу контакте контроллера в регистр его выходного значения будет записано значение «1».

Изменение потенциала на контактах каналов №№7, 8, 9, 13, 16, 17 если конфигурацией установлен активный режим их работы, приведет к немедленному автоматическому выходу контроллера из режима пониженного энергопотребления при нахождении контроллера в нём. При этом канал работает с максимальной чувствительностью, т.е. «защита от дребезга» не предусмотрена и должна быть реализована, при необходимости, в функциональной диаграмме.

Пример функциональной диаграммы, устанавливающей состояние «ВКЛ» на контакте канала №1 контроллера при поступлении и удержании в течение не менее 200мс на соответствующем каналу №0 контакте контроллера, потенциала +5В:

8 6 6 1.png

Режим счетчика[править]

При включении активного режима любого из каналов №№7, 8, 9, 13, 16, 17 контроллера, сконфигурированного как дискретный вход, CANNY5 nano позволяет асинхронно функциональной диаграмме производить автоматический подсчет импульсов входного сигнала накопительным итогом.

Асинхронный режим подсчета позволяет добиться большей точности подсчета количества поступивших импульсов и регистрировать сигналы большей частоты, чем при организации счетчика импульсов средствами функциональной диаграммы.

Сконфигурированный для работы в активном режиме / режиме счетчика канал возвращает в специальном регистре значений счетчика число импульсов, соответствующее: суммарному количеству переключений электрического потенциала на соответствующем контакте контроллера из состояния GND в состояние >=2.5 вольт ( >= 7.5 для канала №13 при его подключении через контакт «*»), при включенном регистре счетчика передних фронтов; суммарному количеству переключений электрического потенциала на соответствующем контакте контроллера из состояния >=2.5 вольт ( >= 7.5 для канала №13 при его подключении через контакт «*») в состояние GND, при включенном регистре счетчика задних фронтов; суммарному количеству передних и задних фронтов, при одновременно включенных соответствующих регистрах контроллера.

Примечание: При использовании канала №13 в режиме счетчика принимайте во внимание встроенную постоянную подтяжку данного канала к потенциалу GND за счет аппаратного делителя.

Подсчет осуществляется накопительным итогом, при достижении значения 65535 и последующем увеличении на единицу, значение счетчика устанавливается равным нулю, каждый последующий импульс вновь увеличивает значение счетчика на единицу.

Для перевода канала контроллера в режим входа-счетчика, необходимо:

  • в соответствующий каналу «Регистр конфигурации канала №ХХ» передать значение константы, соответствующей дискретному положительному входу;
  • в соответствующий каналу «Регистр включения активного режима / счетчика передних фронтов канала №ХХ» или/и «Регистр включения активного режима / счетчика задних фронтов канала №ХХ» передать числовое значение, отличное от нуля.

Кроме того, при использовании каналов в активном режиме / режиме счетчик сохраняется возможность раздельного управления встроенной подтяжкой каждого из каналов через соответствующие каналам регистры «Регистр включения подтягивающего резистора канала №XX».

Именованные константы, представляющие доступные пользователю комбинации параметров конфигурации каналов, содержатся в разделе «Конфигурация канала ввода-вывода» справочника констант CannyLab, доступ к которому осуществляется через контекстное меню входа функционального блока, имеющего тип «Константа». Пример функциональной диаграммы тахометра с разрешающей способностью 100 оборотов в минуту, подсчитывающем число импульсов на соответствующем каналу №17 контакте контроллера CANNY5 nano:

8 6 7 1.png

Примечание: Работа канала CANNY5 nano в режиме входа-счетчика аналогична работе каналов контроллера CANNY7 в режиме счетчика с периодом равным нулю.

Смотри также[править]

CANNY 5 nano

CANNY 7

CANNY 7, Драйвер каналов ввода-вывода