PDA

Просмотр полной версии : обработка концевых датчиков с помощью ДПИ 5-8 и ПР200



Svorog
05.08.2019, 11:46
Здравствуйте.
имеется 3 оптических щелевых датчика и 4 индуктивных, все датчики используются в качестве концевых, все датчики через колодку заводятся на микроконтроллер. Такое подключение в результате наводок и помех дает частое ложное срабатывание, создание РС фильтров, подтягивание резисторов и емкостей не помогает, вот решил использовать имеющиеся в наличии ДПИ 5-8 и ПР200-24.2.2 (8дискретных вх, 4 аналоговых вх, 8релейных выходов)
Подключение датчиков одинаковое: два провода питания GND и +5В третий сигнальный провод - 0,5 не сработавший датчик и +5 В для сработавшего датчика.
Хочу часть датчиков подключить к дискретным входам а часть к аналоговым. Датчики подключаемые к дискретным входам хочу через ПДИ-5-8, усилить выходной сигнал до 24В и его передавать на релейный выход, на котором буду замыкать 5В на микроконтроллере. Здесь кажется все понятно.
а вот вопрос как подключить сигнал 0-5В на аналоговый вход преобразовать его в булевое значение например если напряжение больше 4,5В то значение единица подать на релейный выход.
Давно не работал овен логик, не могу разобраться, подскажите пожалуйста

Sulfur
05.08.2019, 11:58
По датчикам ДПИ 5-8 не нашел никакой инфы. Либо модель указана не верно, либо сверхсекретная разработка.
Подозрительно низкое напряжение питания для индуктивных датчиков.
Датчики дискретные, смысла брать ПР с аналогом для этой цели я не вижу. Есть ПР110-24.12Д.8Р.
На счет помехоподавления. Лично у меня на одном станке были помехи. После того, как я в разрыв провода выхода поставил обычный кремниевый диод помехи исчезли.
При работе датчиков через ПР для помехоподавления обычно ставят таймеры TON\TOF.

Svorog
05.08.2019, 12:16
ПР200 уже есть в наличии, (не пригодилось в другом месте), Модули ПДИ5-4 иПДИ5-8 это овеновские платки для преобразования 5В TTL сигнала в 24В. к дискретным входам хочу подключить
43850
то есть один сигнал на 2 провода и через логическое "И" когда первый сигнал более 0,02 сек и второй сигнал истина на выход подается "1"
Аналоговый вход тоже должен хорошо отсекать помехи если будет пропускать только сигналы более 4,5В, вопрос именно в этом как правильно преобразовать в булевое значение и передать на вход.

Sulfur
05.08.2019, 12:25
Вот это годится?

43853

В свойствах AI1 я указал тип Дискретный. По умолчанию стоит Аналоговый. Дискретный уже преобразован в BOOL, аналоговый нет. Дискретный можно сразу подать на выход Q, аналоговый выдает ошибку и требует преобразование в BOOL.

Svorog
05.08.2019, 12:44
да, спасибо, это то что я искал, но что то не пойму, если он минимум для логического нуля дает 2,5В что будет если мой логический ноль будет 0,5В, он просто думать что вход не подключен, а когда появится 4,5 В вход сработает?

Ревака Юрий
05.08.2019, 12:57
да, спасибо, это то что я искал, но что то не пойму, если он минимум для логического нуля дает 2,5В что будет если мой логический ноль будет 0,5В, он просто думать что вход не подключен, а когда появится 4,5 В вход сработает?

Сработает, главное диапазон выставить корректно.

Sulfur
05.08.2019, 13:16
да, спасибо, это то что я искал, но что то не пойму, если он минимум для логического нуля дает 2,5В что будет если мой логический ноль будет 0,5В, он просто думать что вход не подключен, а когда появится 4,5 В вход сработает?

Уровень 0 - напряжение, ниже которого считается за 0
Уровень 1 - напряжение, выше которого считается за 1.
Можно устроить некий гистерезис, который будет дополнительно выполнять помехоподавление.
Если устройство медленное, то фильтр входа можно ставить побольше. У меня один девайс работал на 0.5 сек (по умолчанию там 0.01сек)

Сергей0308
05.08.2019, 14:16
Сработает, главное диапазон выставить корректно.

А это наладили? Раньше(несколько лет назад) был такой баг, что нельзя было изменить пороговые значения, в случае работы аналогового входа в режиме дискретного! Я вот не встречал сообщений на форуме, что это поправили ну и для Овена, если в течении 2 лет это бы поправили, это было бы очень быстро, Вы не обижайтесь, это так по факту, например сколько лет просили чтобы добавили в сервисные переменные, переменные времени-даты(доступные по сети) для доступа из программы, так со сих пор все и не добавили или сколько лет просят добавить в программу переменную с номером активного экрана и маской нажатых кнопок(на ПР200)?!

Ревака Юрий
05.08.2019, 15:55
А это наладили? Раньше(несколько лет назад) был такой баг, что нельзя было изменить пороговые значения, в случае работы аналогового входа в режиме дискретного! Я вот не встречал сообщений на форуме, что это поправили ну и для Овена, если в течении 2 лет это бы поправили, это было бы очень быстро, Вы не обижайтесь, это так по факту, например сколько лет просили чтобы добавили в сервисные переменные, переменные времени-даты(доступные по сети) для доступа из программы, так со сих пор все и не добавили или сколько лет просят добавить в программу переменную с номером активного экрана и маской нажатых кнопок(на ПР200)?!

Именно этот функционал добавили не так давно, (как раз практически везде убрали об этом упоминания :)) сам лично проверял, макс. уровень лог "1" не должен превышать 10 вольт (в OL пока можно задавать до 11.5, будет откорректировано), по остальным "хотелкам" сам страдаю, но загруженность задачами не позволяет все делать быстро, часть пожеланий будет реализовываться уже в новых модификациях приборов.

Svorog
06.08.2019, 20:40
и снова проблемы: т.к. аналоговых входов в моем ПР200 все равно не хватает решил все семь концевиков повесить только на дискретные входа через плату ПДИ5-8. В ПР200 настроил вход напрямую на выход, с защитой от дребезга на 30мс. В итоге у меня все датчики как будто сработавшие, потому что плата ПДИ выдает логический ноль равный +5В, а ПР 200 уже воспринимает это как единицу. Как быть? подскажите пожалуйста может можно на дискретных входах понизить порог логического нуля? или может все-таки как то можно мой 5Вольтовый сигнал напрямую через реле обработать? (7 датчиков)

capzap
06.08.2019, 20:49
через плату ПДИ5-8. В ПР200 настроил вход напрямую на выход, с защитой от дребезга на 30мс. В итоге у меня все датчики как будто сработавшие, потому что плата ПДИ выдает логический ноль равный +5В

а Вы прямо не глядя в документацию плату брали?

Сергей0308
06.08.2019, 21:27
А мне кажется, судя по описанию, должен очень даже подходить для подключения устройств с выходными сигналами уровня ТТЛ к дискретным входам ПР200:

43934

43935

Главное, что коммутация по плюсу!

capzap
06.08.2019, 21:32
если это для меня, то заглянув в документацию черным по белому написано коммутируемое напряжение постоянного тока от 8 до 29В, о каких 5В говорит ТС? Разве это нормальная ситуация когда 24вольтовый БП в итоге на вход дает 5В по схеме сухой контакт и там какая то логическая единица образуется, как по мне так там у чела уже каша в голове от одновременного занятия разбирательствами аналоговыми и дискретными входами

Сергей0308
06.08.2019, 21:36
5 вольт это сигнал ТТЛ на входе ПДИ5, у него такие, ему надо это подать на входа ПР200, мне кажется ПДИ5 должно подойти?!

capzap
06.08.2019, 21:37
5 вольт это сигнал ТТЛ на входе ПДИ5, у него такие, ему надо это подать на входа ПР200, мне кажется ПДИ5 должно подойти!

тогда внимательно вчитайтесь в его текст или в мое цитирование его, он говорит что плата выдает логический ноль равный 5В

Сергей0308
06.08.2019, 21:47
Насколько я понял, из-за тока утечки, даже при отсутствии сигнала на входе ПДИ5(логический "0"), на выходе ПДИ5(входе ПР200) уже имеется напряжение 5 вольт, но эти 5 вольт никак между собой не связаны. Наверно высокое значение логического нуля и транзистор немного приоткрывается!

capzap
06.08.2019, 21:53
ну и как работают входа "сухой контакт" либо есть напряжение, либо разрыв
А во вторых плата на 8, расчитана так чтоб войти во входы плк100, если верить схеме ПР200 то после четвертого входа стоит общий минусовой вход для второй группы, просто интересно как воткнута плата у ТС или она просто соплями протянута к ПРке

Сергей0308
06.08.2019, 22:10
Согласен, наверно с двумя ПДИ5-4 будет аккуратнее?!
Короче, я бы попробовал добавить кремневый диод в прямом включении(или два последовательно) чтобы уменьшить напряжение логического нуля на входе ПДИ5, хотя, судя по документации допускается для логического нуля до одного вольта, как минимум кто-то врёт!

Svorog
07.08.2019, 07:39
ПДИ как и ПР 200 не покупались под эту задачу, а я являются "остатками проектов". ПДИ впринципе неподходит по растоянию между контактами для ПР200, даже будь она 4 вывода. Для подключения подобрал обжимные клеммы со стороны платы и облудил концы с другой стороны, так и подключил, проблем с неконтактом нет.
На вход ПДИ подаю общую землю, сигнальные провода с датчиков и +24В. на выходе ПДИ получаю 5В при НЕ сработавшем датчике и 20 с небольшим при сработавшем.
На выход ПР 200 на общие ножки подаю +5В. В итоге на выходе ПР200 стабильно все выхода замкнуты на +5В, я так понимаю это от того что дискретный вход ПР воспринимает логический ноль ПДИ как единицу.
Не может быть проблема в том что я на выходе ПР пытаюсь коммутировать +5В. По идее ведь для реле нет значения что замыкать, главное не превышать нагрузку?

Svorog
07.08.2019, 07:47
Согласен, наверно с двумя ПДИ5-4 будет аккуратнее?!
Короче, я бы попробовал добавить кремневый диод в прямом включении(или два последовательно) чтобы уменьшить напряжение логического нуля на входе ПДИ5, хотя, судя по документации допускается для логического нуля до одного вольта, как минимум кто-то врёт!

Я правильно понимаю, что с каждым диодом я примерно на 0,7В понижаю значение напряжения?

Ревака Юрий
07.08.2019, 09:55
Насколько я понял, из-за тока утечки, даже при отсутствии сигнала на входе ПДИ5(логический "0"), на выходе ПДИ5(входе ПР200) уже имеется напряжение 5 вольт, но эти 5 вольт никак между собой не связаны. Наверно высокое значение логического нуля и транзистор немного приоткрывается!

Даже если там 5 вольт, это не должно включать вход на ПР, логическая "1" от 15 вольт.

Svorog
07.08.2019, 10:07
Даже если там 5 вольт, это не должно включать вход на ПР, логическая "1" от 15 вольт.

то есть ситуация которая у меня получилась не объясняется устройством приборов, и вызвана либо неверным подключением, либо не правильной настройкой ПР?

petera
07.08.2019, 10:09
....
На вход ПДИ подаю общую землю, сигнальные провода с датчиков и +24В. на выходе ПДИ получаю 5В при НЕ сработавшем датчике и 20 с небольшим при сработавшем.
....

Схему нарисуй, а то каша какая-то
Какая такая "общая земля" и куда ты ее на ПДИ прицепил? Нету там такой клеммы! Есть только +24В, а землю(-24) нужно на входы COM ПРки подключать
5В на выходе ПДИ относительно чего измерил?

Svorog
07.08.2019, 10:49
на ПДИ с одного краю есть две клеммы +24, а с другой стороны 2 клеммы общий TTL, я туда подключил землю от датчиков, относительно которой запитываются все датчики на +5В. схему сейчас нарисую.
43940

bayk
07.08.2019, 12:09
Если паяльник держать умеете, то предлагаю использовать вместо всей кучи (пди, пр и прочее) схему на базе нескольких 6N137 (у нее есть и двухканальный вариант) ну хотя бы попробовать. на выходе у этой микрухи всегда однозначный логический уровень в отличии от обычных транзисторных оптопар. если вам не помогают подтягивающие резисторы - то это очень странно. я думаю изоляция входов вполне может помочь. даже если запилить ПР, то может оказаться, что дребезг реле на выходе будут давать не меньший дерьмовый эффект, чем наводки.

Sulfur
07.08.2019, 12:28
Svorog

Вот классическое малобюджетное преобразование уровней.

43945

Для малого количества можно слепить за час-другой на макетной плате.

UPD: S/S это в ПЛК, здесь это будет COM1,2

Ревака Юрий
07.08.2019, 12:51
то есть ситуация которая у меня получилась не объясняется устройством приборов, и вызвана либо неверным подключением, либо не правильной настройкой ПР?

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

bayk
07.08.2019, 12:57
Sulfur да, в принципе это нормальное решение, только вот очень низкоскоростное... хотя у ПР входы тоже не блещут. Еще вопрос, а не надо ли в этой схеме еще подтягивающий резистор на "-" запихнуть? а то опять будут с помехами проблемы и подвешенным уровнем?

Sulfur
08.08.2019, 06:55
нормальное решение, только вот очень низкоскоростное... хотя у ПР входы тоже не блещут. Еще вопрос, а не надо ли в этой схеме еще подтягивающий резистор на "-" запихнуть? а то опять будут с помехами проблемы и подвешенным уровнем?
На счет низкоскоростности - что вы собираетесь считать на ПР со скоростью выше 80 кГц?
На счет подтяжки минуса - по входу или по выходу? Если по входу, то можно параллельно входу до резистора повесить цепочку резистор-светодиод. Это будет и подтяжка и индикация одновременно. На выход тоже можно такое прикрутить, только смысла не вижу, ибо сам вход это по факту уже цепочка резистор-светодиод. В своих расчетах сопротивления резистора я обычно исхожу из тока в этой цепи 5 мА, и беру ближайший стандартный номинал. Например для 24в это будет 24В/0.005А=4800 Ом, ближайший стандарт - 4,7кОм.

bayk
08.08.2019, 21:15
В реальности я смог на рс817 получить только 12-14 кГц. Я делал схему преобразователя npn в линейный драйвер. Через спец. Ммкруху и на вход ее ттл подавал как раз через оптопары. Потом перешёл на указанные выше 137е и все полетело до 200 кГц

Сергей0308
08.08.2019, 21:32
При времени цикла в 10 мс, это если программа несложная, максимально получается 50 Гц на дискретных входах, у меня бывало от одного макроса время цикла увеличивалось почти до 40 мс, так что в реальности более 50 Гц и не нужно!

43974

bayk
09.08.2019, 10:05
Да я потом уже, после того как написал, вспомнил, что у пр нет таких шустрых входов. И для него и 817 с огромным запасом.

Svorog
07.09.2019, 20:50
Сделал инверсию выходного сигнала с датчиков теперь у меня реле замыкает сигнальный провод на землю и контроллер адекватно считывает датчики. Проблема только с одним концевиком, у него высокий сигнал упал до 2,14 В вместо положенных 5В, не знаю в чем проблема работает стабильно но с пониженным сигналом.Теперь реле не может отличить сработавший датчик, для него он всегда несработан - логический ноль. Кто может подсказать как самым простым способом повысить напряжение хотя бы на 1 вольт? что бы аналоговый вход мог расценить сигнал как единицу есть в наличии пара плат повышения напряжения, но вот я думаю если я настрою повышение с 2,14 до скажем 3,5 В когда у меня будет низкий уровень сигнала, а это у меня 0,6 В плата опять ведь будет пытаться увеличивать выходной сигнал на несколько вольт? как думаете не сгорит она за один день от перегрева? или может есть другие способы заставить реле воспринять 2,14В как логическую единицу?

bayk
07.09.2019, 23:50
Я думаю - заменить датчик это самый правильный вариант. Или проверяйте провода и места соединений.