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

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

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

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

Примечание: Избегайте прямого подключения каналов контроллера к электрическим цепям, в которые включены мощные нагрузки. При подключении к цепям, чья мощность превышает максимально допустимую для канала контроллера (полный ток более 100 мА), необходимо последовательно устанавливать резистор сопротивлением более 2000 Ом.

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

Ряд драйверов контроллера CANNY 7, а именно CANNY 7, Драйвер высокочастотного широтно-импульсного модулятора (ВЧ ШИМ), CANNY 7, Драйвер UART - RS232 - Modbus, CANNY 7, Драйвер LIN, CANNY 7, Драйвер I2C, CANNY 7, Драйвер Dallas 1-Wire и CANNY 7, Драйвер пульта ИК ДУ, в своей работе используют ресурсы драйвера каналов ввода-вывода и, при этом, имеют более высокий приоритет. Таким образом, при использовании указанными драйверами тех или иных каналов контроллера, доступ драйвера ввода-вывода к этим каналам невозможен.

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

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

Допустимые значения регистров управления работой каналов ввода-вывода в основных режимах.
Регистр Ожидаемые значения
Регистр установки конфигурации конфигурации канала №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.

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

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

График режима ШИМ.

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

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

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

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

  • в соответствующий каналу «Регистр конфигурации канала №ХХ» поместить значение константы, соответствующей выбранному режиму работы;
  • в соответствующий каналу «Регистр периода канала №ХХ» поместить числовое значение от 0 до 65535, устанавливающее период генерируемых импульсов в мс;
  • в соответствующий каналу «Регистр выходного значения канала №ХХ» поместить числовое значение от 0 до 65535, устанавливающее заполнение генерируемых импульсов в мс.
Функциональная диаграмма выполняющая ежесекундное переключение электрического потенциала с +12В(100 мА) на GND(1 мА) на контакте контроллера соответствующем каналу №0.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эквивалентные электрические принципиальные схемы для состояний канала ввода-вывода контроллера
Регистр Ожидаемые значения
«воздух»
Схема канала в режиме «воздух»
«плюс (1мА)»
Схема канала в режиме «плюс (1мА)»
«ПЛЮС (100мА)»
Схема канала в режиме «ПЛЮС (100мА)»
«минус (1мА)»
Схема канала в режиме «минус (1мА)»
«МИНУС (100мА)»
Схема канала в режиме «МИНУС (100мА)»
«подтяжка воздух»
Схема канала в режиме «подтяжка воздух»
«подтяжка плюс»
Схема канала в режиме «подтяжка плюс»
«подтяжка минус»
Схема канала в режиме «подтяжка минус»

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

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

СМОТРИ ТАКЖЕ