This documentation is out of date.

The new version of the documentation is here: https://cannylogic.com/docs

CANNY 7, Discrete IO Driver

From CANNY Wiki
Revision as of 16:03, 1 December 2015 by Support (Talk | contribs) (Created page with "=== Общее описание === Пользователям CANNY 7 доступны одиннадцать дискретных каналов ввода-вывода о...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Jump to: navigation, search

Общее описание

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

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

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

Ряд драйверов контроллера CANNY 7, а именно High Resolution PWM, UART / RS232 / Modbus, LIN, I2C, Dallas® 1-Wire® и Infrared Remote Control Driver, в своей работе используют ресурсы драйвера каналов ввода-вывода и, при этом, имеют более высокий приоритет. Таким образом, при использовании указанными драйверами тех или иных каналов контроллера, доступ драйвера ввода-вывода к этим каналам невозможен.

Регистры драйвера

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

Адрес Ожидаемые значения
Регистр установки конфигурации канала №0
Регистр установки конфигурации канала №1
Регистр установки конфигурации канала №2
...
Регистр установки конфигурации канала №10
1...65535 = установить конфигурацию канала контроллера, определяющую текущий режим и параметры его работы (задается специальной константой из справочника констант);
0 = перевести в нейтральное положение соответствующий каналу контакт контроллера и исключить возможность изменения его состояния из функциональной диаграммы.
Регистр установки периода канала №0
Регистр установки периода канала №1
Регистр установки периода канала №2
...
Регистр установки периода канала №10
В режиме входа-счетчика:
1...65535 = период в миллисекундах подсчета числа импульсов на соответствующем контакте контроллера и обновления полученного значения регистре контроля выходного значения канала;
0 = включить канал в режиме счетчика с накоплением.
В режиме широтно-импульсного выхода:
1...65535 = период в миллисекундах генерируемых импульсов на соответствующем контакте контроллера;
0 = прекратить генерацию импульсов и установить потенциал на соответствующем контакте контроллера равным потенциалу состояния «ВЫКЛ» текущей конфигурации канала.
В режиме дискретного входа:
0...65535 = значение игнорируется;
В режиме дискретного выхода:
0...65535 = значение игнорируется;
Регистр установки выходного значения канала №0
Регистр установки выходного значения канала №1
Регистр установки выходного значения канала №2
...
Регистр установки выходного значения канала №10
В режиме входа-счетчика:
0...65535 = значение игнорируется.
В режиме широтно-импульсного выхода:
0...65535 = заполнение (скважность) в миллисекундах генерируемых импульсов на соответствующем контакте контроллера.
В режиме дискретного входа:
0...65535 = значение игнорируется;
В режиме дискретного выхода:
1...65535 = установить на соответствующем контакте контроллера электрический потенциал заданный конфигурацией данного канала для состояния «ВКЛ»;
0 = установить на соответствующем контакте контроллера электрический потенциал заданный конфигурацией данного канала для состояния «ВЫКЛ».

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

Адрес Возвращаемые значения
Регистр контроля активности ввода-вывода
1 = в ходе прошедшего цикла выполнения функциональной диаграммы зарегистрировано изменение электрического потенциала на каком-либо контакте контроллера соответствующем каналу, сконфигурированному как активный вход или счетчик импульсов; либо диаграммой было изменено значение регистров выходных каналов или входов-счетчиков;
0 = за прошедший цикл выполнения функциональной диаграммы изменений на активных входах контроллера или изменений значений регистров драйвера не обнаружено.
Регистр контроля перегрузки ввода-вывода
1 = на одном или нескольких каналах контроллера включенных как силовой выход, обнаружено короткое замыкание и канал переведен в режим защиты;
0 = ни на одном из каналов контроллера не обнаружено короткого замыкания.
Регистр контроля входного значения канала №0
Регистр контроля входного значения канала №1
Регистр контроля входного значения канала №2
...
Регистр контроля входного значения канала №10
В режиме дискретного входа:
1 = на соответствующем контакте контроллера установился электрический потенциал соответствующий полярности данного входа;
0 = на соответствующем контакте контроллера установился электрический потенциал не соответствующий полярности данного входа.
В режиме входа-счетчика:
0...65535 = число импульсов зарегистрированных на соответствующем контакте контроллера за прошедший период времени заданной продолжительности.
В режиме дискретного или широтно-импульсного выхода:
1 = на соответствующем контакте контроллера обнаружен электрический потенциал соответствующий полярности данного выхода в режиме «ВКЛ»;
0 = на соответствующем контакте контроллера обнаружен электрический потенциал не соответствующий полярности данного выхода в режиме «ВКЛ».

Нейтральное состояние канала

Каналы автоматически переводятся в нейтральное состояние в следующих случаях:

  • при работе контроллера в режиме загрузки программного обеспечения;
  • при работе контроллера в автономном режиме, если конфигурация канала не задана, задана константой «Нейтральное состояние» или значением «0»;
  • в момент программного сброса или сброса питания контроллера, до перехода в автономный режим и начала исполнения функциональной диаграммы;
  • в случае аварии контроллера или отказа системного программного обеспечения.

Электрически, нейтральное положение канала («воздух») эквивалентно высокоомному входу, внутренне соединенному с контактом GND контроллера резистором номинала ~200 кОм.

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

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

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

Параметр Перечень допустимых значений
Тип канала Дискретный выход.
Состояние «ВКЛ» плюс (1мА); ПЛЮС (100мА); минус (1мА); МИНУС (100мА);воздух.
Состояние «ВЫКЛ» плюс (1мА); ПЛЮС (100мА); минус (1мА); МИНУС (100мА);воздух.

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

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

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

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

6 6 4 1.png

Режим широтно-импульсного выхода

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

6 6 5 1.png

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

Параметр Перечень допустимых значений
Тип канала Широтно-импульсный выход.
Состояние «ВКЛ» плюс (1мА); ПЛЮС (100мА); минус (1мА); МИНУС (100мА);воздух.
Состояние «ВЫКЛ» плюс (1мА); ПЛЮС (100мА); минус (1мА); МИНУС (100мА);воздух.

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

Для перевода канала контроллера в режим широтно-импульсного выхода, необходимо:

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

Функциональная диаграмма выполняющая ежесекундное переключение электрического потенциала с +12В(100 мА) на GND(1 мА) на контакте контроллера соответствующем каналу №0:

6 6 5 2.png

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

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

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

Параметр Перечень допустимых значений
Тип канала Дискретный вход.
Полярность входа ПЛЮС; МИНУС.
Подтяжка плюс; минус; воздух.
Режим ожидания активный; пассивный.
Чувствительность максимум (0 мс); высокая (20 мс); норма (200 мс); низкая (700 мс).

Изменение потенциала на контакте канала, находящегося в режиме активного ожидания, приведет к немедленному автоматическому выходу контроллера из режима пониженного энергопотребления. Изменение потенциала на контакте канала, находящегося в режиме пассивного ожидания, не повлияет на режим энергопотребления контроллера.

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

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

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

6 6 6 1.png

Режим счетчика

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

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

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

Конфигурация канала для работы в данном режиме задается комбинацией следующих параметров:

Параметр Перечень допустимых значений
Тип канала Вход-счетчик.
Полярность входа ПЛЮС; МИНУС.
Подтяжка плюс; минус; воздух.

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

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

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

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

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

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

Пример функциональной диаграммы тахометра с разрешающей способностью 100 оборотов в минуту, подсчитывающем число импульсов на соответствующем каналу №0 контакте контроллера:

6 6 7 1.png
Примечание: Если период установлен равным нулю, то счетчик непрерывно ведет подсчет импульсов с накоплением результата в регистре выходного значения канала. В данном режиме значение, этого регистра сбрасывается лишь в результате переполнения регистра.

Эквивалентные принципиальные электрические схемы

Эквивалентные электрические принципиальные схемы для каждого возможного состояния канала ввода-вывода контроллера приведены в таблице:

Состояние канала Эквивалентная электрическая принципиальная схема
«воздух»
6 6 9 1.png
«плюс (1мА)»
6 6 9 2.png
«ПЛЮС (100мА)»
6 6 9 3.png
«минус (1мА)»
6 6 9 4.png
«МИНУС (100мА)»
6 6 9 5.png
«подтяжка воздух»
6 6 9 6.png
«подтяжка плюс»
6 6 9 7.png
«подтяжка минус»
6 6 9 8.png


Электрическая защита

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

Смотри также

CANNY 7

High Resolution PWM