PDA

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



УВИ
17.12.2016, 14:11
Здравствуйте!
Я новичок, как на этом форуме, так и в программировании ПЛК.
Освоил месяц назад основы программирования в CoDeSys на языке CFC, написал первую программу- работает!
Использовал ПЛК 110. Сегодня стоит задача написания программы с использованием аналоговых выходов.
Остановился на ПЛК 160. Саму программу написал, а вот с аналоговым выходом- проблема!
Мне нужен оператор формирования напряжения 0...10 В на аналоговом выходе. Надеюсь таковой существует!
В какой библиотеке его найти?
Задачка простая: в различных положениях ползуна обеспечить различную скорость его перемещения
выдачей необходимого напряжения на вход частотного преобразователя.
Заранее благодарю!

melky
17.12.2016, 16:09
Что по этому поводу говорит руководство по эксплуатации ПЛК 160 ?
Там должно быть как управлять аналоговыми выходами.

УВИ
17.12.2016, 16:19
К сожалению этого нет ни в руководстве по эксплуатации ни в руководстве пользователя.
Я скачал все библиотеки Овен и ничего не нашел. В видео курсах для "чайников" есть урок по преобразованию входного аналогового сигнала в выходной,
но это не то. Мне нужно сформировать на аналоговом выходе нужный мне сигнал, имея на входе в оператор сигнал BOOL.

melky
17.12.2016, 17:47
Извиняюсь, в Руководстве по программированию 110,160 указано что вывод в формате real от 0 до 20.0 для токового выхода и от 0 до 10.0 для выхода напряжения.
Если значение превысит то оно будет ограничено.
страница 80.

УВИ
18.12.2016, 11:58
Спасибо за проявленное внимание к моей проблеме!
Я это читал! Посмотрите, как я написал этот фрагмент.
На картинках все должно быть понятно.
При подключении на аналоговый выход 7 сигнал поступает (появляется "1"),
но на аналоговый выход w1 он не приходит, хотя для v_xx задано начальное значение =10.
Что здесь неправильно?
28153
28154
28155
Как то непонятно загрузились картинки!?
Не знаю сможете ли Вы их увидеть?
Для меня это первая попытка. Заранее прошу простить.

capzap
18.12.2016, 12:20
Спасибо за проявленное внимание к моей проблеме!
Я это читал! Посмотрите, как я написал этот фрагмент.
На картинках все должно быть понятно.
При подключении на аналоговый выход 7 сигнал поступает (появляется "1"),
но на аналоговый выход w1 он не приходит, хотя для v_xx задано начальное значение =10.
Что здесь неправильно?
28153
28154
28155
Как то непонятно загрузились картинки!?
Не знаю сможете ли Вы их увидеть?
Для меня это первая попытка. Заранее прошу простить.

потому что элементы 8 и 14 записывают разные значения в одну и ту же переменную и она всегда равна последней записи в неё

УВИ
18.12.2016, 13:03
Сказать, что я- "чайник" - не сказать ничего! Я скорее "самовар".
Пожалуйста, поясните, как я могу получить для условий "4","5" на аналоговом выходе w1("8") напряжение v_xx=10v.
а для условий "9", "11"- напряжение на этом же выходе w1("14")- v_bak=4v?

capzap
18.12.2016, 13:07
видимо убрать с 9 по 14 элементы, хотя не понятно куда 10 делся, лучше перед всем этим нажать ПКМ и выбрать порядок следования байт

УВИ
18.12.2016, 13:20
видимо убрать с 9 по 14 элементы, хотя не понятно куда 10 делся, лучше перед всем этим нажать ПКМ и выбрать порядок следования байт

А как мне изменять напряжение на w1? Ведь для разных исходных состояний мне нужны различные значения напряжений на этом выходе.
И, что такое "порядок следования байт"?

capzap
18.12.2016, 13:44
смотрите картинку, мне кажется должна помочь

УВИ
18.12.2016, 17:00
смотрите картинку, мне кажется должна помочь

Думаю поможет, но бьюсь уже 3 часа, а результат неутешительный. Завтра продолжу и напишу.

capzap
18.12.2016, 17:05
что там бится то, создайте новый проект, переведите блоки со скрина себе в проект, запустите хоть в эмуляции, хоть в реальном плк, измените состояние любой из булевых переменных и посмотрите что будет на выходе, потом вместо этих булей вставте свою соответствующую конструкцию условий

УВИ
21.12.2016, 14:05
смотрите картинку, мне кажется должна помочь
Нет, все гораздо проще!
Необходимо использовать MOVE (EN/ENO)/
1-на вход EN- булевский сигнал
2-на вход Var1- сигнал, который хотим получить на аналоговом выходе w1
3-на выход Var2- аналоговый выход w1
ENO можно не обозначать, а можно использовать как индикацию состояния аналогового выхода (out_w1, bool)
Для наглядности прилагаю картинку того, что получилось у меня.
28272
Спасибо за участие!