Аналоговые входы ================ Аналоговые входы предназначены для подключения потенциометрических датчиков с питанием +5В от встроенного источника Платы комбинированных входов. На плате имеется схема самодиагностики, позволяющая провести тестирование работоспособности аналоговых каналов. Подключение датчиков и внутреннее устройство каналов AI ------------------------------------------------------- Входной каскад на ОУ с единичным коэффициентом усиления обеспечивает большое входное сопротивление измерительного канала. Далее сигнал подается на резистивный делитель для масштабирования сигнала под рабочий диапазон АЦП. Помимо 6 аналоговых каналов на вход АЦП аналогичным образом поступает напряжение питания потенциометрических датчиков +5В. Результатом измерения является не абсолютное, а относительное значение напряжения, вычисленное относительно напряжения питания аналоговых датчиков. Таким образом исключается влияние возможной нестабильности напряжения питания аналоговых датчиков +5В. Схема аналогового канала: .. figure:: images/ai_input.png :width: 400 Настройка и работа с каналами AI -------------------------------- .. csv-table:: :header: "Параметр","Значение по умолчанию","Диапазон","Описание" :widths: 20, 10,20, 40 "ai_unit",`-`,"0 – 4095","Значение АЦП аналоговых входов пересчитанное относительно напряжения питания аналоговых датчиков" "ai_state",`-`,"0 – 63","Состояние аналогового входа. Лог. 1 - в пределах между ai_physical_high и ai_physical_low" "ai_calib_a","720.0",`-`,"Калибровочный коэффициент A" "ai_calib_b","0.0",`-`,"Калибровочный коэффициент В" "ai_physical",`-`,"0.0 - 5.0","Значение в физ. единицах" "ai_physical_high","5.0",`-`,"Верхний предел в физ. единицах" "ai_physical_low","0.0",`-`,"Нижний предел в физ. единицах" "ai_buf_len","100","1 - 100","Количество тзмерений для усреднения" "ai_sample_rate",`-`,"0.0 - 500.0","Частота дискретизации" Описание алгоритма работы AI ---------------------------- Напряжения с потенциометрических датчиков поочередно измеряются встроенным АЦП микроконтроллера и записываются в буферы каналов, размер которых определяется параметром ai_buf_len. С каждым новым измерением самое старое значение буфера исключается и рассчитывается среднее арифметическое всех элементов буфера. Таким образом реализуется алгортим усреднения по методу скользящего среднего, размерность которого задается параметром ai_buf_len. Помимо измерения напряжения аналоговых каналов, аналогичным образом измеряется напряжение питания аналоговых датчиков. Далее по каждому из каналов рассчитывается относительное значение АЦП по формуле: .. math:: AI_{UNIT} = \frac{ADC_{5V}}{ADC_{AI}}*4096 Для каждого канала применяются калибровочные коэффициенты по формуле: .. math:: AI_{PHYSICAL} = \frac{AI_{UNIT}}{AI_{CALIB_A}} + AI_{CALIB_B} Далее сравниваются полученные значения с верхними и нижними пределами ai_physical_high, ai_physical_low и устанавливаются или обнуляются соответствующие биты в ai_state. Так же в регистры ai_sample_rate записываются актуальные значения частоты дискретизации. .. note:: При увеличении размера буфера ai_buf_len длительность обработки аналогового канала увеличивается, из-за чего скорость обработки (частота дискретизации) снижается. Калибровка и поверка каналов AI ------------------------------- Аналоговые каналы имеют индивидуальные калибровочные коэффициенты, использование которых позволяет получить заявленную точность. Первичная калибровка каналов произвоится предприятием-изготовителем при выпуске платы с оформлением протокола калибровки. Повторная калибровка (определение калибровочных коэффициентов) производится метрологической службой предприятия и выполняется следующим образом: 1). На аналоговый вход подаются образцовые значения напряжения. Рекомендуемая величина приращения образцового сигнала 0,5 В. 2). Из регистров AI_unit_x считываются показания в единицах АЦП для каждого входного образцового значения по каждому каналу. 3). Для каждого канала по методу наименьших квадратов рассчитываются коэффициенты A и B 4). Далее необходимо записать новые калибровочные коэффициенты в ПО: AI_calib_a_x = 1 / A, AI_calib_b_x = B. .. note:: Для перезаписи регистров AI_calib_a_x и AI_calib_b_x необходимо установить ключ-перемычку "Boot_key" (подробнее смотри в разделе :ref:`Обновление ПО`) Поверка производится метрологической службой предприятия и выполняется следующим образом: 1). На аналоговый вход подаются образцовые значения напряжения. Рекомендуемая величина приращения образцового сигнала 0,5 В. 2). Из регистров AI_physical_x считываются результаты измерения в физических величинах для каждого входного образцового значения по каждому каналу. 3). В каждой точке рассчитывается приведеная погрешность по формуле: *γ = (AI_physical_x - AI_обр.) / AI_max * 100* , где AI_обр. - образцовое значение входного сигнала, AI_max - диапазон измерений канала. 4). Поверка считается успешной, если в каждой точке приведеная погрешность измерения не превысила допустимого значения. Самодиагностика аналоговых входов --------------------------------- На плате реализована схема проверки работоспособности каналов аналоговых входов, которая позволяет проверить и выявить нерабочие каналы без применения специального оборудования. При проведении самодиагностики входные цепи платы должны быть отключены от датчиков и кнопок для корректной работы. Варианты проведения самодиагностики: #. Запуск самодиагностики с кнопки TEST_START - последовательно выполняется самодиагностика сначала дискретных, а затем аналоговых каналов. #. Через WEB-интерфейс во вкладке "Диагностика" Алгоритм проведения самодиагностики: #. Проверка светодиодных индикаторов. Первые 6 светодиодных индикаторов последовательно загораются сначала зеленым, а потом красным цветом. #. Проверка аналоговых каналов. На входы каналов подается тестовое напряжение и сравниваются результаты измерений с тестовыми значениями. #. Отображение результатов проверки. Светодиодные индикаторы каналов, прошедших самодиагностику загораются зеленым цветом, не прошедших - красным. Через 2 секунды индикация выключается.