Помню тот день, как сейчас. Мне дали ответственное задание: надо было написать программу для трубообточного станка на плк SIEMENS S1200. И так как это была моя первая программа, то у меня возникли трудности, о которых я расскажу в данной статье. В данной статье речь пойдёт о таком понятии, как Разрядность АЦП.
Что такое АЦП
Это аналого-цифровой преобразователь.
Контроллеры воспринимают информацию в двоичной системе. Т.е. всю информацию он переводит в комбинации, которые состоят из двух цифр 0 и 1 (цифровой сигнал).
Если с дискретными входами всё понятно. Пришёл сигнал +24 Вольта (как пример) на вход контроллера, и он его пометил как единица; не пришёл, то как 0.
А как же нам преобразовать аналоговый сигнал в цифровой двоичный код? Ведь там значение колеблется от 0 до 10 Вольт. Т.е. этот сигнал имеет очень много значений. И поэтому нам надо разбить измеряемый диапазон на определённое количество значений.
Разрядность АЦП
Разрядность АЦП – это количество битов в числе на выходе аналого-цифрового преобразователя. (Разрядность выходного значения).
Чем больше разрядность, тем точнее измеряемое значение.
Настало время моих любимых примеров:
К аналоговому входу (0-10 В) подключен датчик давления. Предел измеряемых значений датчика от 0 до 10 Бар.
Разрядность АЦП= 1111111111111111. (16-разрядный). Если мы воспользуемся калькулятором и переведём двоичное значение 1111111111111111 в десятичное, то получим следующее число:
Что это за число? Это количество значений, которое может выдать наш АЦП.
Т.е если у нас датчик давления, у которого предел измерения от 0 до 10 бар, будет выдавать 10 бар (10 вольт) – это максимальное значение выдаваемое датчиком, то уже в программе мы получим значение равное 65535. А если будет приходить 0 вольт, то и получим 0 в программе.
Если на аналоговый вход приходит 5 бар (5 вольт), то в программе будет 32767.Мы поделили максимальное значение пополам.
В результате у нас получается следующее:
Диапазон измеряемых значений от 0 до 10 бар (0-10 вольт) переносится на диапазон от 0 до 65535 (в программе).
Из этих данных мы можем определить шаг измерения показаний. Т.е полный диапазон датчика надо разделить на разрядность. Получим минимальный шаг измеряемой величины.
0-10 бар-это 11 значений. 11/65535=0,000167 Вольт – это точность измерений.
Сейчас приведу пример расчёта по вычислению значения на выходе АЦП.
У нашего датчика предел измерений от 0 до 10. Из максимального значения вычитаем минимальное и получаем число 10. Разрядность нашего АЦП равна 65535. Делим это число на 10 и получаем 6553,5. И теперь это число умножаем на показание нашего датчика. Т.е.в данный момент датчик у нас показывает 3 бара. 3 умножаем на 6553,5 и получаем число на выходе ацп 19660,5. Всё легко и просто. Поехали дальше…
Увидели, допустим, мы следующее число, которое пришло к нам в контроллер 23565. Нам надо перевести это число на понятный нам диапазон 0-10 бар. Что надо сделать?
Воспользуемся формулой линейной интерполяции:
f(X) = f(X1)+( f(X2) – f(X1) )*(X – X1)/(X2 – X1)
Х1 – это минимальное число из диапазона от 0 до 65535 (0)
Х – это число в данный момент (23565)
Х2 – это максимальноечисло из диапазона от 0 до 65535 (65535)
f(X1) – это минимальное число из нашего диапазона давлений 0-10 бар (0 бар)
f(X2) – это максимальное число из нашего диапазона давлений 0-10 бар (10 бар)
f(X)- это число которое мы ищем.
Подставляем всё в формулу и получаем следующее:
f(X) = f(X1)+( f(X2) – f(X1) )*(X – X1)/(X2 – X1) = 0 + (10 – 0)*(23565 – 0)/(65535 – 0) = 3.5958
Т.е. значение в контроллере 23565 при пересчёте на наш диапазон 0-10 бар будет равно 3.5958 Бар.
Характеристика АЦП
Основная характеристика АЦП – это разрядность. Также не малое значение имеет вид аналогового сигнала, подаваемого на АЦП. Токовый сигнал на АЦП не подают. Сначала он преобразовывается в напряжение, а потом идёт на АЦП. Обычно это просто резистор 500 Ом, который преобразовывает 4-20 ма в 2-10 вольт.
Часто последний бит разрядности занимает знак, и тогда разрядность надо делить пополам. Т.е у нас получается разрядность не 2 в степени 8, а два в степени 7. Плюс иногда ограничивают диапазон значений под диагностику, т.е. на программном уровне уменьшают разрядность АЦП.
Не забываем ещё про наименьшее входное напряжение (LSB-Least significant bit), которое видит АЦП. Для того, чтобы его найти надо опорное напряжение поделить на разрядность нашего АЦП (опорное напряжение указывается в документации).Также у АЦП имеется погрешность измерения, которая измеряется в LSB.