PDA

Просмотр полной версии : Юстировка аналоговых входов?



Georg III
21.04.2016, 01:51
Я не в теме ПР, и сейчас решаю, что мне осваивать, ПР или Ардушу. Посему нубский вопрос, не освещенный в инструкциях к ПР Овен. Что такое юстировка входов в понимании Овен? Скажем, у меня есть датчик с выходом по напряжению 0-3В. У Овна ПР имеют входы 0-10В. Могу ли я задать в Овен Logic или каким-то иным способом границы напряжения (0-3В вместо 0-10В) и, соотвественно, границы измеряемых значений (например, в Паскалях)?

Yegor
21.04.2016, 04:39
нужное_значение = (ВХОД - вход_мин) / (вход_макс - вход_мин) * (выход_макс - выход_мин) + выход_мин

То есть если ваш датчик измеряет давление от 100 до 10000 Па, и его выход укладывается во вход ПР, то в программе можно добавить это:

давление = (ВХОД_вольты - 0) / (3 - 0) * (10000 - 100) + 100

Этой простейшей формулой любой диапазон приводится к любому другому диапазону. Хоть в ПР, хоть в ардуинах, хоть в ПЛК, хоть где. По готовым блокам конкретно для ПР пускай подскажут другие форумчане.

maximov2009
21.04.2016, 06:00
Добрый день. Насчёт вопроса, что осваивать скажу так. Ардуинка это детский тренажёр для отработки простейших навыков работы с системами, похожими на промышленные. Для производства это не годится. И цены то маленькие на все эти датчики и контроллеры - потому как тренажёр (игрушка). В комнатных условиях работает и хорошо. Потому и датчики используют не стандартные, насколько сталкивался, там по моему все на напряжение до 5В.
ПР это уже для практического применения на производстве. Если есть возможность, пробуйте параллельно и ардуинку и ПР. Конечно маленько разный принцип программирования. Язык на котором пишут для ПР более удобен для тех, кто в своё время работал с логическими микросхемами, и также весьма похож на язык функциональных блоков в ПЛК.
Теперь по входам: опять же, поскольку ПР для производства, используют обычно датчики со стандартными выходами 0-10В или 4-20ма. Тот который у Вас 0-3В для ардуинки. Но приспособить для тренировки его можно, поскольку не выходит за диапазон 0-10В, воспринимаемый ПР.
Кстати какое ПР Вы хотите использовать. Годятся ПР114 и ПР200.
Для Вашего датчика самый простой вариант: В свойствах входа Вы указываете, что он работает на диапазон 0-10В (у ПР вход универсальный, для напряжения и тока), затем, нижнюю границу измеряемого параметра ставите 0, а верхнюю во столько раз больше, во сколько максимальное значение на входе ПР больше максимального значения, выдаваемого Вашим датчиком. В Вашем конкретном случае в 3,33333... раза.
Например если это у Вас датчик давления на 1бар, то в свойствах входа указываете верхнюю границу 3,33. В результате со входа уже в программу Вы получаете вещественное число (с плавающей запятой), соответствующее показаниям датчика в нужных величинах. Дальше уже в программе обрабатываете Ваше число, как Вам нужно.
Если нужен конкретный пример для ПР 114, укажите что именно за датчик используете, каков его диапазон. Для ПР200 ОЛ пока не устанавливал могу пример только для ПР114.
С уважением.

Georg III
21.04.2016, 13:57
Большое спасибо за ответы!

Датчика у меня пока нет. Рано как и ПР.

Датчик будет скорее всего такой - Sharp GP2Y0A51SK0F - http://www.sharp-world.com/products/device/lineup/data/pdf/datasheet/gp2y0a51sk_e.pdf Мне нужен миниатюрный датчик расстояния 0-50 мм (можно и 20-ххх мм).

Вернее, будут четыре таких датчика и ПР, которое должно включать исполнительное устройство в зависимости от расстояния до объекта. Так что думаю брать ПР114. Разве что с ПР200 работать удобнее?

Теперь, какой еще момент непонятен. Если в Ардуше аналогичные датчики имеют либо 8-битный выход, отображающий расстояние в реальных миллиметрах до объекта, либо имеют т.н. эхо-выход (подают на выход логическую единицу в течение времени, прямо пропорциональном расстоянию до объекта), то данный датчик Sharp имеет специфическую кривую, а отнюдь не линеен, т.е. получаемое на вход ПР значение напряжения не прямо пропорционально, и расчет по формуле выше в данной теме некорректен.

24035

В связи с этим вопрос. Эта проблема решаема, или ПР заточены на прямо пропорциональную зависимость между входным сигналом и реально измеренной величиной?

Вольд
21.04.2016, 14:12
Большое спасибо за ответы!

Датчика у меня пока нет. Рано как и ПР.

Датчик будет скорее всего такой - Sharp GP2Y0A51SK0F - http://www.sharp-world.com/products/device/lineup/data/pdf/datasheet/gp2y0a51sk_e.pdf Мне нужен миниатюрный датчик расстояния 0-50 мм (можно и 20-ххх мм).

Вернее, будут четыре таких датчика и ПР, которое должно включать исполнительное устройство в зависимости от расстояния до объекта. Так что думаю брать ПР114. Разве что с ПР200 работать удобнее?

Теперь, какой еще момент непонятен. Если в Ардуше аналогичные датчики имеют либо 8-битный выход, отображающий расстояние в реальных миллиметрах до объекта, либо имеют т.н. эхо-выход (подают на выход логическую единицу в течение времени, прямо пропорциональном расстоянию до объекта), то данный датчик Sharp имеет специфическую кривую, а отнюдь не линеен, т.е. получаемое на вход ПР значение напряжения не прямо пропорционально, и расчет по формуле выше в данной теме некорректен.

24035

В связи с этим вопрос. Эта проблема решаема, или ПР заточены на прямо пропорциональную зависимость между входным сигналом и реально измеренной величиной?

Тут тебе без Ардуши не обойтись. ПР на такое не способно, оно решает более приземленные задачи.

maximov2009
21.04.2016, 14:48
И снова здравствуйте. Не хотелось бы никого обижать. Но на мой взгляд утверждение, что ПР не справится и не для того предназначено неверно.
Я уже выше писал, как приспособить такой датчик к ПР. Имея такую таблицу, как даташит к датчику, подобрать точки срабатывания не так сложно.
И уж если задача должна быть решена на производстве, то я думаю можно подыскать и другие датчики расстояния. Во первых со стандартным сигналом (0-10В или 4-20ма). На такие маленькие расстояния не искал (должны быть), а вот ультразвуковой датчик расстояния работает у нас уже 2 год. Правда там расстояние порядка 3м. Датчик настраиваемый в диапазоне (если не изменяет склероз) от 0,4 до 8м. Работает на уровне плавленного сыра на фасовочном станке. Другие способы определения уровня оказались мало эффективны. Датчик даёт стандартный сигнал 4-20ма. Сразу скажу, что цена приличная, но для производства вполне окупаемая.
Если хотите практического решения, озвучьте свою задачу полностью. Может Вам бесконтактный датчик и не нужен.
Ещё раз напомню: Ардуинка (включая датчики для неё) - это детский тренажёр, применять его в производственных условиях не стоит.
С уважением.

Georg III
21.04.2016, 15:13
Мне как раз для дома, для семьи... :) Если бы для коммерческого использования, не я бы задавал вопросы, и не с нуля...

Думаю, что ПР справится неплохо, т.к. в диапазоне 1,5 - 5см график практически линеен, а мне нужна точность порядка 3-5мм.

Есть ли какая-то принципиальная разница между ПР114 и ПР200 в плане освоения с нуля?

petera
21.04.2016, 15:20
Большое спасибо за ответы!

Датчика у меня пока нет. Рано как и ПР.

Датчик будет скорее всего такой - Sharp GP2Y0A51SK0F - http://www.sharp-world.com/products/device/lineup/data/pdf/datasheet/gp2y0a51sk_e.pdf Мне нужен миниатюрный датчик расстояния 0-50 мм (можно и 20-ххх мм).

Вернее, будут четыре таких датчика и ПР, которое должно включать исполнительное устройство в зависимости от расстояния до объекта. Так что думаю брать ПР114. Разве что с ПР200 работать удобнее?

Теперь, какой еще момент непонятен. Если в Ардуше аналогичные датчики имеют либо 8-битный выход, отображающий расстояние в реальных миллиметрах до объекта, либо имеют т.н. эхо-выход (подают на выход логическую единицу в течение времени, прямо пропорциональном расстоянию до объекта), то данный датчик Sharp имеет специфическую кривую, а отнюдь не линеен, т.е. получаемое на вход ПР значение напряжения не прямо пропорционально, и расчет по формуле выше в данной теме некорректен.

24035

В связи с этим вопрос. Эта проблема решаема, или ПР заточены на прямо пропорциональную зависимость между входным сигналом и реально измеренной величиной?
Нужно воспользоваться аппроксимацией этой кривой или полиномом или самый простейший вариант линейная аппроксимация
24038
Здесь аппроксимация шестью отрезками прямой линии
С аппроксимацией ПР справится без вопросов.
Однако, сама кривая не есть гуд из-за того, что есть точка перегиба. Тут придется ограничится таким диапазоном расстояний
24039
Иначе будут не однозначные показания измеренного расстояния
24040
Например напряжение 1,8 V это 0,5см или ~2,8см?

Georg III
21.04.2016, 15:25
Гм, что-то я не понимаю. У процесса юстировки ПР Овен можно задать лишь два пороговых значения. Соответственно, между этими двумя значениями можно провести лишь одну прямую. Т.о. ни о какой линейной аппроксимации несколькими отрезками между пороговыми значениями речи быть не может, применительно к ПР Овен. Разве не так?

petera
21.04.2016, 15:39
Гм, что-то я не понимаю. У процесса юстировки ПР Овен можно задать лишь два пороговых значения. Соответственно, между этими двумя значениями можно провести лишь одну прямую. Т.о. ни о какой линейной аппроксимации несколькими отрезками между пороговыми значениями речи быть не может, применительно к ПР Овен. Разве не так?
Это уже в программе, по формуле.

maximov2009
21.04.2016, 15:51
Есть ли какая-то принципиальная разница между ПР114 и ПР200 в плане освоения с нуля?
В принципе особой нет. Язык ОЛ последней версии 117 должен подходить для всех. Хотя я пока работаю на старой версии для ПР110-114. Новая судя по отзывам слегка сыровата. а старая не поддерживает ПР200.
Ещё раз - основные принципы одинаковы. Пр 200-продолжение Пр114. Что то есть новое, но база та же.
выбор за Вами.

petera
21.04.2016, 15:55
Гм, что-то я не понимаю. У процесса юстировки ПР Овен можно задать лишь два пороговых значения. Соответственно, между этими двумя значениями можно провести лишь одну прямую. Т.о. ни о какой линейной аппроксимации несколькими отрезками между пороговыми значениями речи быть не может, применительно к ПР Овен. Разве не так?


Это уже в программе, по формуле.
24041
https://ru.wikipedia.org/wiki/%D0%9A%D1%83%D1%81%D0%BE%D1%87%D0%BD%D0%BE-%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_% D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F

Georg III
21.04.2016, 16:42
Спасибо за ответы!

Осталось понять, каков алгоритм преобразования входного напряжения (тока) в числовое значение, заносимое в ячейки памяти ПР.

Скажем, сперва мы задали юстировку входов ПР 0-10В. Имеем в некоторый момент времени напряжение на входе ПР, равное 4В. ПР его преобразует в число, скажем число_1.

Теперь мы задали юстировку входов ПР 1-6В. Имеем в некоторый момент времени напряжение на входе ПР, равное 4В. ПР его преобразует в число, скажем число_2.

Вопрос, числа 1 и 2 одинаковы? Если не одинаковы, то по какому закону идет преобразование напряжения в число в памяти, по линейному? Если одинаковы, то зачем нужна юстировка?

rovki
21.04.2016, 17:17
Не замарачивайтесь с числом в памяти .Вход от 0до 10вольт .В свойствах входа задаете желаемый диапазон ,который соответствует минимальному и максимальному значению напряжения на входе .Например 0в-0мм ,10в-50мм ,далее ПР вам будет давать значения вещественные пропорциональные (5в-25мм) ,,ваша задача преобразовать их в другое значение по гривой ,формулами или таблицами (ППЗУ) ....используя вещественные элементы .

maximov2009
21.04.2016, 17:18
Постараюсь объяснить ещё раз. Мы НЕ МОЖЕМ изменит свойства входа в разрезе напряжения или тока!!! То есть, если мы указали в свойствах входа - работать с сигналом 0-10в., То АЦП на это и настраивается. Мы можем изменить присваиваемую величину крайним границам. То есть какому числу соответствует напряжение в 10в на входе. Как я писал выше - напрмер 10в. соответствует давлению 1бар(атмосфера). Тогда напряжение в 4 вольта будет соответствовать давлению в 0,4бар. Соответственно в программу Вы получите ВЕЩЕСТВЕННОЕ число 0,4. дальше с ним и работаете.
То есть никакой речи о задании напряжения в 1-6В в свойствах входа в принципе речи быть НЕ МОЖЕТ.
И не заморачивайтесь Вы с ячейками памяти. Это не АССЕМБЛЕР. Получили число со входа и дальше крутите в программе как хотите.
А если действительно интересует принцип преобразование напряжения в число, то изучите принцип работы АЦП (аналого-цифровой преобразователь).
Удачи в освоении.
Лучше конечно это всё сразу пробовать практически, а то можете запутаться.

maximov2009
21.04.2016, 17:19
Пока писал, и коллега то же самое подсказал.

Georg III
21.04.2016, 18:49
Спасибо! Наконец дошло.

Юстировка - это как подстройка потенциометром. А ПР работает с любым датчиком, если его пороговые значения в пределах 0-10В или 0-20А.

Для моего применения, ПР114 и ПР200 различаются только экраном. Есть ли от него какой-то толк, чтобы предпочесть более дорогую модель?

rovki
21.04.2016, 21:03
так это от задачи зависит ...

Georg III
21.04.2016, 22:16
Задача простая. В астрономическом детском кружке имеется устройство - разделитель полировочных порошков для полировки зеркал. Представляет собой на выходе четыре открытые плоские кюветы, в которые медленно поступает взвесь порошка в воде (фракции корунда и т.п.). в Каждую кювету поступает своя фракция порошка. При наполнении кюветы, начинается процесс откачки поверхностного слоя воды. После откачки на дне остается "жижа", которая и есть полировочный порошок. Насос на четыре кюветы один, соединен с каждой кювете своим шлангом, в разрыве которого стоит соленоидный клапан. Производительность насоса слишком мала, чтобы он мог мгновенно откачать нужный объем воды из кюветы и перейти к откачке воды из следующей кюветы. Поэтому переключатели по достижению порогового уровня воды неприменимы. Нужен алгоритм, позволяющий ПР оценивать уровень воды в каждой из кювет, чтобы вовремя начать откачку из одной кюветы, чтобы успеть до того момента, как наполнится следующая. Процесс не циклический, т.е. кюветы наполняются в разные моменты времени с разной скоростью. Поэтому таймер не подходит. Пока что, вместо ПР, за процессом следит "мальчик" :) Хотелось бы, чтобы он выполнял более полезную и интересную для себя работу - клеил бы трубу, шлифовал зеркало, собирал монтировку, юстировал бы телескоп и т.д...

rovki
21.04.2016, 22:33
дети это святое ,поможем с проектом ,раз это для вас не основное занятие .Тогда нужно подробное ТЗ .но в начале -как вода наливается ...Я например не представил как все происходит ,может видео есть ...может что другое (способ) посоветуем ...
Вам нужно контролировать верхний уровень жидкости или нижний?

Georg III
21.04.2016, 23:17
Контролировать нужно верхний уровень жидкости. ТЗ нет, поскольку сам алгоритм работы я еще не продумал. Мне сейчас нужно выбрать ПР, а уж потом перейти к практике в соответствующем разделе. Видео пока снять сложно, т.к. нужен хороший свет и камера (часть мастерской, увы в темном и неотапливаемом подвале, пока что...), а я сейчас в Москве, а кружок в Сибири... Может на майские вырвусь домой.

Даже не знаю, как объяснить подробнее. Четыре кюветы стоят в ряд на столе. Над каждой кюветой расположена трубка, из которой потихоньку выливается вода со взвешенным абразивом. При выливании воды, абразив оседает на дне. После того, как кювета заполнилась (пусть не до конца), нужно откачать верхний слой воды насосом, чтобы потом вычерпать "жижу" - абразив и пустить ее на регенерацию (абразивы стоят дорого). Откачка воды происходит насосом. Для этой цели от каждой кюветы идет отводная трубка. Трубка идет к гребенке на четыре выхода. На каждом выходе стоит соленоид. Гребенка установлена на насосе, который откачивает воду и сбрасывает ее в канализацию. Для откачки воды из определенной кюветы, закрываем три соленоида на гребенке, оставляем один соленоид открытым и включаем насос. Если бы насос был очень производительным, можно было бы по заполнении кюветы мигом откачать из нее воду. Но насос не такой производительный. Поэтому, ПР должно анализировать сигнал уровня воды от датчиков в кюветах. Например, если в трех кюветах уровень нулевой, то ПР ждет заполнения четвертой кюветы почти до конца и только потом начинает откачку. Если же в двух кюветах есть вода, то ПР анализирует, когда (при каком уровне воды в первой кювете) ему начать откачку из первой кюветы, чтобы успеть откачать воду из первой кюветы до того, как до критического уровня заполнится вторая кювета (критический уровень - это такой, при котором насос не успевает откачать воду из кюветы до ее переполнения).

rovki
21.04.2016, 23:31
А воду кто, как добавляет

Georg III
21.04.2016, 23:43
Добавление воды со взвешенным абразивом происходит тогда, когда запущен полировальный станок и с его поддона откачивается шлам. Станок запускается человеком в произвольное непрогнозируемое время :) Также непрогнозируемо поступление воды со взвешенным абразивом в кюветы. Во-первых, известен только максимальный расход воды, но текущий предсказать невозможно - опять же человеческий фактор. Во-вторых, номер абразива выбирается человеком, поэтому спрогнозировать, в какую или какие кюветы идет слив невозможно. ПР должен работать лишь по показаниям уровнемеров и исходя из того "предположения", что вода поступает с максимальным расходом.

rovki
21.04.2016, 23:58
так у вас еще и налив в кюветы переключается в зависимости от номера абразива и причем произвольно -от работы станка ?или как ?Запутали .Вот и опишите последовательно тогда процесс ,а не ТЗ.А то как пост ,так новости ,особенности ....
Или упростите описание ,нарисуйте 4 емкости ,как поступает вода ,как сливается ...Понял только ,что нельзя что бы был перелив .А что нельзя отверстие в кювете с сеткой )фильтром) вверху и пусть самотеком в канализацию вода течет ...
Или герметичная емкость с трубкой вверх ,осадок оседает ,а вода вверх по трубке ,а потом вниз канализацию

Georg III
22.04.2016, 00:40
Так максимально простой процесс описан в самом начале. Четыре кюветы. В них - датчики уровня. Вводные для ПР - это: а) уровни в каждой из четырех кювет и б) уставка значения потока (скажем, 1л в час) воды, который поступает в кювету(ы). Исполнительное устройство - насос. От ПР требуется а) в нужный момент времени закрыть три из четырех соленоидов и б) запустить в этот же момент времени насос.

Собственно, алгоритм я разработаю сам. На сейчас мне нужно подобрать ПР. Датчик я "выкашивал" несколько дней и нашел, кмк, оптимальный и недорогой. Вот я и спрашиваю совет по ПР...

PS: Поступление воды в кюветы зависит от человека. А именно, от него зависит: а) величина потока (этот фактор мы исключили - считаем, что вода подается с максимальным потоком в 1л/час на кювету (если подается)) и б) в какую кювету(ы) производится направление потока.

PPS: что касается самотека. Помимо специфических, чисто флотационных факторов, самотеку мешает еще и то, что кюветы установлены ниже вывода канализационного отвода. Насос все равно должен подавать воду из подвала наверх. Также нельзя осуществить самотечный перелив из кювет в один бачок, а уже оттуда перекачивать насосом.

rovki
22.04.2016, 00:50
Я просто опасаюсь ,что общее поступление воды в 1 кювету ,будет больше чем производительность насоса ,который качает из 2 ,например .Кто распределяет входящие потоки по куветам или поток входной общий ,а выходы для насоса переключаются ПР.Ясно что производительность насоса должна быть больше чем общий приход ...

Georg III
22.04.2016, 01:57
Ну, пока что мощности насоса хватало, при использовании в "ручном режиме". Алгоритм "ручного режима" чисто интуитивный, пока что не запротоколирован :) Несколько раз ошибались со временем переключения между кюветами, и насос, действительно, не успевал попеременно откачивать из трех кювет. Приходилось останавливать станок и стаскивать зеркало с полировальника (что чревато царапинами), т.к. без воды зеркало намертво присасывается к полировальнику. Но потом ребята приноровились, и сейчас таких оплошностей нет. Понятно, что производительность насоса больше, чем общий приход. Проблема в том, что в каждый момент времени насос может откачивать только из одной кюветы. Я, когда у меня будет оборудование на руках, или побольше времени, распишу алгоритм в деталях, если кому будет интересно. Либо блок-схемами, либо на си++. По-другому я пока не умею.

Выходы из кювет должен перключать ПР, а вот входы в кюветы переключаются и будут переключаться человеком - в зависимости от того, каким абразивом (или несколькими) он в данный момент работает.

maximov2009
22.04.2016, 06:49
Добрый день. Насколько я понял Вы присмотрели датчики давления с аналоговым выходом для определения уровня жидкости или ультразвуковой датчик уровня (есть у ардуинки такая игрушка).
Может быть сделать гораздо проще. Если у Вас уровень сработки фиксированный, то можно использовать кондуктометрический датчик. Он представляет из себя простой металлический стержень (хоть гвоздь), но конечно желательно из нержавейки. Если такой щуп приспособить сверху, то поднимая или опуская можно установить контроллируемый уровень жидкости. То есть чисто механически меняем уровень сработки.
Принцип работы таких датчиков заключается в замыкании через токопроводящую жидкость, в данном случае вода вполне подходит (надеюсь не дисциллированная).
Для согласования датчиков можно использовать ОВЕНовски БКК1. У него как раз 4 канала на 4 кюветы. Общий электрод сделать общим на все.
На выходе БКК получаем дискретный сигнал в виде замыкания контактов реле.
При таком раскладе получается можно использовать ПР110 с дискретными входами.
Это при условии если нам нужно контролировать только верхний уровень. Если ещё и нижний уровень, то взять 2шт БКК1 и использовать по 2 электрода на кювету (не считая общего). Гистерезис и прочую автоматику заложить в программу ПР110. На мой взгляд самый бюджетный из профессиональных вариантов.
Можно конечно и по САУ на каждую кювету, но дороговато выйдет, а как я понял, бюджет критичен.
С уважением.

rovki
22.04.2016, 09:24
не пойдет ..У него ИК датчик и ему нужно не только верхний уровень искать ,но и максимальный из 4 ,то есть нужны промежуточные значения уровней ...
аЛГОРИТМ - поиск максимума из 4 ,тот и откачиваем ,потом второй максимум итд.
Нужно только определится откачиваем до второго максимума или до минимума из 4 ...

rovki
22.04.2016, 11:13
Вот один из макросов минмакс - находит максимальное и минимальное значение из 4 ,с указанием номера канала

rovki
22.04.2016, 11:53
Если сравнивать показания 4 датчиков ,то необязательно вообще делать линеаризацию ...

Yegor
22.04.2016, 13:11
Для постоянной уставки где-нибудь в центре диапазона можно и не линеаризовывать.

rovki
22.04.2016, 13:16
В любой точке от 18 до 50мм не нужна линеаризация ,если только для сравнения между собой 4 значений ,а не визуализации или еще чего, по алгоритму описанному выше (макрос)