Быстрые входы и выходы

<< Click to Display Table of Contents >>

Navigation:  Работа с конроллерами в MasterSCADA 4D > Руководство по работе с конроллерами ОВЕН > Подключение устройств по протоколам > Специализированные протоколы и модули ОВЕН >

Быстрые входы и выходы

Узел имеет две группы предопределенных каналов:

•DI_PRU - содержит каналы, необходимые для работы с быстрыми входами контроллеров PLC210 и PLC200;

•DO_PRU - содержит каналы, необходимые для работы с быстрыми входами контроллеров PLC210 и PLC200.

Особенности работы

Цифровой фильтр дискретного входа.

Используется мажоритарный фильтр с настраиваемой длиной выборки от 1 до 15 отсчетов (при значении 1 фильтр отключен). Интервал между соседними отсчетами фильтра настраивается от 1 до 65535 мкс. На каждом такте учитывается новое считанное значение входа, обновляется счетчик единиц в выборке. При этом не происходит фактического анализа всех битов в выборке, а только нового и последнего, что позволяет добиться малых затрат процессорного времени на процедуру фильтрации (13 тактов без учета сохранения результата в отдельную переменную, что вынесено в функции-потребители для оптимизации).

Фильтр работает по принципу: если единиц в выборке больше или равно пороговому значению – выход фильтра 1; если нулей в выборке больше или равно пороговому значению – выход фильтра 0; в остальных случаях выход фильтра не меняется. В функции фильтра, реализованной в программе PRUSS, используются параметры количество единиц для переключения выхода фильтра в 1 и количество единиц для переключения выхода фильтра в 0 для оптимизации. Для правильного задания этих параметров требуется несложная процедура пересчета, реализованная в ARM.

Иллюстрация работы фильтра 80% длиной выборки 10.

Отсчеты:

0

0

0

1

0

0

1

0

1

1

0

1

1

1

1

1

1

1

1

1

1

1

1

Выход фильтра:

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

Счетчик импульсов дискретного входа.

Регистрация импульса осуществляется по изменению состояния входа (берется с выхода фильтра) из 0 в 1 – по нарастающему фронту. Поскольку максимальная частота выборки 1 МГц, максимальная частота импульсов, при которой возможен безошибочный счет при отключенном фильтре, 500 кГц. Счетчик имеет разрядность 32 бита, что обеспечивает при максимальной частоте счета примерно 2 ч 23 мин до переполнения счетчика. При переполнении значение счетчика FFFFFFFFh фиксируется. При каждом чтении счетчика его значение сбрасывается в 0. Для получения числа импульсов пользователь должен в каждом цикле ПЛК суммировать считанное значение счетчика.

* счетчик не сбрасывается при чтении.

Квадратурный декодер и счетчик полных оборотов.

Диаграмма сигналов квадратурного декодера:

fast_di_do_owen

Сигналы QDPH0, QDPH90 и QDINDX должны подключаться к смежным входам последовательно, например, при количестве входов 4 возможные комбинации: 1-2-3, 2-3-4, 3-4-1 и 4-1-2 соответственно. Функция квадратурного декодера использует только сигналы QDPH0 и QDPH90. Для обработки сигнала QDINDX требуется активировать соответствующую функцию входа.

При декодировании квадратурного сигнала используется алгоритм повышения разрешения в 4 раза, как показано на диаграмме. Следовательно, максимальная частота подключаемого квадратурного энкодера должна быть в 4 раза меньше максимальной частоты сигнала, которую может воспринимать программа PRUSS (500 кГц при отключенном фильтре), т. е. 125 кГц.

Емкость реверсивного счетчика 32 бита, переполнение в данном случае не учитывается. Если используется вход QDINDX, значение соответствующего реверсивного счетчика сбрасывается в 0 в момент фронта сигнала QDINDX в состоянии 01, т. е. по спадающему фронту в направлении «вперед» или по нарастающему фронту в направлении «назад». Однако, поскольку фронты сигнала QDINDX совпадают по времени с фронтами сигнала QDPH90 (инкрементом или декрементом реверсивного счетчика), в зависимости от того, какой фронт будет зарегистрирован первым, возможна ошибка сброса счетчика на 1. По тем же фронтам производится инкремент счетчика соответствующего входа, соответствующего количеству полных оборотов, но из тех же соображений существует вероятность ошибок, особенно при колебаниях около нулевой метки. Счетчик полных оборотов сбрасывается при каждом чтении. Значение FFFFFFFFh означает переполнение.

* счетчик не сбрасывается при чтении.

Измеритель длительности и скважности импульсов.

Выходом данного измерителя является длительность нуля и единицы в тактах программы, поэтому задача расчета параметров сигнала и усреднения результата ложится на ARM и программу пользователя. Измерение проводится для каждого импульса. В начальный момент времени счетчики равны 0, что означает, что измерения еще не проводились. Началом отсчета длительности единицы является нарастающий фронт сигнала, длительности нуля – спадающий фронт. В момент прихода фронта соответствующий замер предыдущего импульса сохраняется, а значение счетчика обнуляется. Измерение производится в тактах работы программы, т. е. в данном случае в мкс. Соответственно, расчетная абсолютная погрешность измерения равна 1 мкс. Минимальная регистрируемая длительность импульса или интервала тишины при отключенном фильтре 1 мкс, максимальная FFFFFFFEh мкс, что соответствует примерно 1ч 12 мин. Значение FFFFFFFFh означает переполнение счетчика.

fast_di_do_owen_1

T1 – длительность импульса.

Расчет скважности: если T1 или T2 равны нулю – нет данных; если T1 или T2 равны FFFFFFFFh – данные недостоверны; если 0 < T1 < FFFFFFFFh и 0 < T2 < FFFFFFFFh, скважность G = T1 / (T1 + T2).

Прямое управление выходом.

Задержка изменения состояния выхода определятся количеством тактов (мкс), которое проходит от начала обновления параметров до обновления требуемого значения выхода. В данном случае примерно 30 – 40 мкс.

ШИМ

Период и скважность ШИМ определяется длительностью включенного и выключенного состояния, которая имеет диапазон значений от 0 до FFFFFFFFh (от 0 до примерно 1ч 12 мин). В программе PRUSS никаких ограничений на указанные параметры ШИМ не вводится, поэтому контроль минимального значения периода для достижения требуемой точности задания скважности возлагается на ARM. Также можно задать минимальную длительность ШИМ в диапазоне 0 – 65535 мкс.

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

Кроме того, для возможности построения на базе ШИМ генератора произвольного числа импульсов введен еще один параметр – число импульсов, которое необходимо выдать. Этот параметр имеет размер 16 бит, 0 в старшем бите которого указывает на необходимость записи нового значения счетчика. Остальные 15 бит – это требуемое число импульсов, максимум 32767. Данный параметр для ШИМ не актуален, но требуется поддерживать его положительное значение для непрерывной работы ШИМ.

* для обновления счетчика в старшем разряде необходимо выставить 1.

* в режиме ШИМ счетчик не декрементируется, 1 в старшем разряде не сбрасывается.

Генератор импульсов.

Генератор импульсов выполнен на основе ШИМ, имеет идентичные настройки и алгоритм работы.