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, доступ к которому осуществляется через контекстное меню входа функционального блока, имеющего тип «Константа».
Для перевода канала контроллера в режим дискретного выхода, необходимо в соответствующий каналу «Регистр конфигурации канала №ХХ» поместить значение константы, соответствующей выбранному режиму работы.
Примечание: Для канала работающего в конфигурации дискретного выхода так же возможно получить значение, соответствующее фактическому текущему электрическому потенциалу на контакте данного канала, что позволяет использовать канал в режиме обратной связи.
Режим широтно-импульсного выхода
Канал сконфигурированный для работы в режиме широтно-импульсного выхода, генерирует на соответствующем контакте контроллера широтно-импульсный сигнал заданной полярности, частоты и заполнения импульсов. В данном режиме канал работает асинхронно функциональной диаграмме, что позволяет добиться большей стабильности временных параметров генерируемого сигнала, чем при организации широтно-импульсного генератора средствами функциональной диаграммы.
Конфигурация канала для работы в данном режиме, определяется константой, представляющей комбинацию параметров, определяющих электрический потенциал и силу тока на контакте, в активной «ВКЛ» и пассивной «ВЫКЛ» фазе генерации соответствующего канала контроллера, и парой числовых значений, определяющих частоту и заполнение генерируемых импульсов в миллисекундах.
Параметр | Перечень допустимых значений |
---|---|
Тип канала | Широтно-импульсный выход. |
Состояние «ВКЛ» | подтянут к плюсу (1мА); ПЛЮС (100мА); подтянут к минусу (1мА); МИНУС (100мА); нейтральное (воздух). |
Состояние «ВЫКЛ» | подтянут к плюсу (1мА); ПЛЮС (100мА); подтянут к минусу (1мА); МИНУС (100мА); нейтральное (воздух). |
Именованные константы, представляющие доступные пользователю комбинации параметров конфигурации каналов, содержатся в разделе «Конфигурация каналов ввода-вывода» справочника констант CannyLab, доступ к которому осуществляется через контекстное меню входа функционального блока, имеющего тип «Константа».
Для перевода канала контроллера в режим широтно-импульсного выхода, необходимо:
- в соответствующий каналу «Регистр конфигурации канала №ХХ» поместить значение константы, соответствующей выбранному режиму работы;
- в соответствующий каналу «Регистр периода канала №ХХ» поместить числовое значение от 0 до 65535, устанавливающее период генерируемых импульсов в мс;
- в соответствующий каналу «Регистр выходного значения канала №ХХ» поместить числовое значение от 0 до 65535, устанавливающее заполнение генерируемых импульсов в мс.
Режим дискретного входа
Канал, сконфигурированный для работы в режиме дискретного входа, возвращает значение «1» в регистре своего входного значения, если на соответствующем контакте контроллера установился электрический потенциал соответствующий состоянию «Полярность входа» и возвращает значение «0» в регистре входного значения, когда на соответствующем контакте контроллера установился электрический потенциал не соответствующий состоянию «Полярность входа».
Конфигурация канала для работы в данном режиме, определяется константой, представляющей комбинацию параметров, определяющих электрический потенциал на контакте принимаемый за состояние «1» соответствующего канала контроллера, наличие и потенциал внутренней «подтяжки» контакта контроллера, чувствительность и активность канала в режиме пониженного энергопотребления контроллера.
Параметр | Перечень допустимых значений |
---|---|
Тип канала | Дискретный вход. |
Полярность входа | ПЛЮС; МИНУС. |
Подтяжка | плюс; минус; воздух. |
Режим ожидания | активный; пассивный. |
Чувствительность | максимум (0 мс); высокая (20 мс); норма (200 мс); низкая (700 мс). |
Изменение потенциала на контакте канала, находящегося в режиме активного ожидания, приведет к немедленному автоматическому выходу контроллера из режима пониженного энергопотребления. Изменение потенциала на контакте канала, находящегося в режиме пассивного ожидания, не повлияет на режим энергопотребления контроллера.
Чувствительность канала определяет его «защиту от дребезга», т.е. задает временной интервал, в течение которого электрический потенциал на соответствующем каналу контакте контроллера должен оставаться неизменным, для того чтобы считаться установившимся и изменить состояние регистра входного значения канала.
Именованные константы, представляющие доступные пользователю комбинации параметров конфигурации каналов, содержатся в разделе «Конфигурация каналов ввода-вывода» справочника констант CannyLab, доступ к которому осуществляется через контекстное меню входа функционального блока, имеющего тип «Константа».
Для перевода канала контроллера в режим дискретного входа, необходимо в соответствующий каналу «Регистр конфигурации канала №ХХ» поместить значение константы, соответствующей выбранному режиму работы.
Режим счетчика
Канал сконфигурированный для работы в режиме счетчика, возвращает в регистре своего выходного значения число, соответствующее количеству переключений электрического потенциала на соответствующем контакте контроллера из состояния противоположного параметру «Полярность входа» в состояние соответствующее параметру «Полярность входа» за прошедший период времени заданной продолжительности. Таким образом, канал в данном режиме исполняет функцию счетчика передних фронтов сигнала или частотомера.
В данном режиме канал работает асинхронно функциональной диаграмме, что позволяет добиться большей точности определения временных параметров исследуемого сигнала и измерять сигнал большей частоты, чем при организации счетчика импульсов средствами функциональной диаграммы.
Конфигурация канала для работы в данном режиме, определяется константой, представляющей комбинацию параметров, определяющих электрический потенциал, при появлении которого на контакте соответствующего канала контроллера регистрируется передний фронт сигнала, наличие и потенциал внутренней «подтяжки» контакта контроллера.
Конфигурация канала для работы в данном режиме задается комбинацией следующих параметров:
Параметр | Перечень допустимых значений |
---|---|
Тип канала | Вход-счетчик. |
Полярность входа | ПЛЮС; МИНУС. |
Подтяжка | плюс; минус; воздух. |
В режиме счетчика, канал всегда находится в активном ожидании с максимальной чувствительностью. Подсчет драйвером числа изменений состояния такого канала ведется асинхронно.
Именованные константы, представляющие доступные пользователю комбинации параметров конфигурации каналов, содержатся в разделе «Конфигурация каналов ввода-вывода» справочника констант CannyLab, доступ к которому осуществляется через контекстное меню входа функционального блока, имеющего тип «Константа».
Для перевода канала контроллера в режим входа-счетчика, необходимо:
- в соответствующий каналу «Регистр конфигурации канала №ХХ» передать значение константы, соответствующей выбранному режиму работы;
- в соответствующий каналу «Регистр периода канала №ХХ» передать числовое значение от 0 до 65535, устанавливающее период подсчета импульсов в мс;
При ненулевом значении в регистре периода, значение в регистре входного значения канала обновляется один раз в период и содержит число импульсов зарегистрированное счетчиком за прошедший период.
Подсчет счетчиком импульсов ведется с переполнением. Это означает, что при достижении значения 65535 и последующем увеличении на единицу, значение счетчика устанавливается равным нулю, но каждый последующий импульс вновь увеличивает значение счетчика на единицу.
Примечание: Если период установлен равным нулю, то счетчик непрерывно ведет подсчет импульсов с накоплением результата в регистре выходного значения канала. В данном режиме значение, этого регистра сбрасывается лишь в результате переполнения регистра.
Эквивалентные принципиальные электрические схемы
Эквивалентные электрические принципиальные схемы для каждого возможного состояния канала ввода-вывода контроллера приведены в таблице:
Регистр | Ожидаемые значения |
---|---|
«воздух» |
|
«плюс (1мА)» |
|
«ПЛЮС (100мА)» |
|
«минус (1мА)» |
|
«МИНУС (100мА)» |
|
«подтяжка воздух» |
|
«подтяжка плюс» |
|
«подтяжка минус» |
Электрическая защита
Для каналов работающих в конфигурациях дискретного выхода и широтно-импульсного выхода, чей ток в состоянии «ВКЛ» или «ВЫКЛ» существенно превысит значение 100мА, системное программное обеспечение контроллера реализует автоматическую защиту от короткого замыкания. Защита реализована в виде переключения замкнутого канала в нейтральный режим, последующего периодического импульсного тестового включения и автоматического возврата к заданной пользователем конфигурации при обнаружении устранения замыкания. Данная защита работает в полностью автоматическом режиме и не требует конфигурации пользователем.