AlexBi (01.10.2025 23:13, просмотров: 1077)
Вопрос к пользователям простых ПЛК, можно ли имея простой ПЛК (в
моем случае это овен ПР100) и обычный NTC терморезистор 10к,
подключив терморезистор ко входу 4-20мА (с дополнительным
постоянным резистором, что бы получить ток 4мА), получить измерение
температуры в диапазоне +10..+20гр с точность 2гр и разрешающей
способностью 1гр? Или не стабильность питающего напряжения на
выходе 4-20 даст слишком большую ошибку? Терморезистор в этом
диапазоне будет меняться от 12 до 18кОм .
-
- Статья почти в тему: Visitor(1 знак., Вчера, 17:30, ссылка)
- Задействовать 2 входа - на 1вх термистор, на 2вх образцовый
резистор. Обрабатывать отношение 1вх/2вх - argus98(Вчера, 11:43)
- P.S. увидел - ток 4мА формируется отдельным резистором, можно не
читать. Ralex(273 знак., Вчера, 11:40)
- сделай повторитель на транзисторе LordN(120 знак., Вчера, 09:30)
- С такой погрешностью у меня отлично справляется самопальный
контроллер вентиляторов в домашней "файлопомойке": там четыре NTC в
виде делителя с 10к резисторами (0.1%). Подключены к аналоговым
входам STM32F072. Т.к. флоаты он не умеет, я использовал
кусочно-линейную интерполяцию, предварительно откалибровав по
платиновым термисторам. Как раз в районе 1-1.5℃ получается
погрешность в диапазоне 20÷60℃. Eddy_Em(80 знак., 01.10.2025 23:29, ссылка)
- Не понял насчёт флоатов. Кто не умеет, STM32F072? Софтовая
реализация чем плоха? - mr-x(Вчера, 11:24)
- Софтовая реализация медленная. Они ведь даже деление не умеют! Куда
уж тут флоаты? Eddy_Em(544 знак., Вчера, 11:29)
- Не может вычислять температуру 1000000 раз в секунду. Это никуда не
годится! SciFi(15 знак., Вчера, 11:27)
- У меня были мысли насчёт частоты опроса термометра, но я из от себя
гнал. - mr-x(Вчера, 11:29)
- Есть в природе платиновые термопары представляющие из себя волосок
кварцевого стекла с напыленной на кончике термопарой. У них
постоянная времени порядка миллисекунды и если не пиздят то даже до
сотен микросекунд. - Codavr(Вчера, 11:36)
- Частота там небольшая. Уж не помню. DMA загоняет данные в массив, а
когда они тебе нужны, вычисляется медиана по 9 последним
измерениям, а дальше уже температура. Eddy_Em(80 знак., Вчера, 11:34)
- 1 МГц - частота семплов? А как же здравый смысл? И меряя на большой
частоте ты вносишь дополнительную ошибку за счёт большего тока по
входу АЦП, буфера на входе явно нет. mr-x(330 знак., Вчера, 11:41 - 12:18)
- 239.5 сэмплов же, так что, куда меньше частота. Ну и пусть себе
молотит: DMA же этим занимается! А я просто из памяти беру нужные 9
значений, считаю их медиану (алгоритм из numerical receipies), а по
этому значению вычисляю температуру. - Eddy_Em(Вчера, 12:17)
- 48 кГц и 239.5 семплов чота не очень соотносятся. Я понимаю, что у
тебя всё хорошо работает и задача решена, но мы же тут о
представлении о прекрасном трындим. Я бы исходил из условий
необходимого и достаточного. DMA убрал, всё повесил на прерывание
раз в милисекунд эдак 10. Может быть даже усреднять не стал, ибо
зачем? - mr-x(Вчера, 12:30)
- Он имел ввиду время выборки УВХ - 239.5 периодов тактового сигнала
АЦП. А значит, выборки будут идти реже - меньше входной ток. - Nikolay_Po(Вчера, 14:11)
- Нахрена убирать DMA и щелкать программно, когда оно прозрачно в
фоне работает и вообще не мешает? А усреднять обязательно, т.к.
минимум младшие два разряда шумят. А у NTC 10кОм при температурах
под 80℃ уж очень сопротивление падает. Там реально уже вполне можно
на пару градусов ошибиться, если не фильтровать. Хотя, с другой
стороны, эти 80 градусов - тоже "±лапоть"… А гистерезис обычно
такой, что значительно превосходит все эти шумы. - Eddy_Em(Вчера, 14:05)
- DMA может не быть. Или быть занятым. А прерывание от таймера по
любому уже есть везде и поэтому бесплатное. Требования к джиттеру
отсутствуют. Что до затрат, то неплохо бы прикинуть, какой процент
займёт эта задача от всей производительности процессора. Уверен,
процент будет ничтожный. - mr-x(Вчера, 14:55)
- ADC имеет приоритет, поэтому невозможна ситуация, чтобы DMA был
занятым. А чтобы его не было на STM32, ну, это вообще сказка
какая-то! И с какого перепуга прерывание "бесплатное", если при
этом тратится уйма тактов на сохранение контекста, переключение в
другой, а потом возврат предыдущего контекста? Даже если прерывание
тупо инкрементирует счетчик (хотя, да: бывает, что по-другому
никак: тот же SysTick не умеет автоматом что-нибудь
инкрементировать, вот и приходится в Eddy_Em(33 знак., Вчера, 16:01)
- Дык и МК может не быть. Тогда придётся смотреть на градусник и
записывать цифры в тетрадку :-) - SciFi(Вчера, 14:59, +1)