Просмотр полной версии : Время реакции ПЛК
tagor4444
18.05.2018, 11:15
Приветствую! Имеется станок для для загибания полосы 4 мм, управляется двумя ПЧВ101 ( поворотная балка и задний упор ), в комплекте ПЛК110-220.60.Р-М ( М02 ), ИП320, энкодеры на обе оси. Возникла проблема в процессе доводки программы: угол нужно выдерживать в пределах 0..+0,2, в реале скачет порядка0..+0,5 градусов, поворотная балка к заданной точке подходит на минимальной скорости 0,1 Гц . Путем разных подходов и манипуляций пришел к выводу, что это зависит от длительности цикла программы и паспортной скорости двигателя, как один из вариантов вижу увеличить отношение входных оборотов к выходным у редуктора, но хотелось бы все сделать без механических переделок. Есть ли возможность как то программно считать время цикла внутри программы, чтоб потом это значение использовать как обратную связь, например чтоб сигнал пуск в командном слове частотника формировался на основном этапе по процессу, а в окончании когда разница в один цикл примерно остается, то управление переходит по времени, формируется импульс зависящий от времени цикла, и то какая разница между фактическим и заданым значением координаты осталась при переходе на управление по времени. Заранее прошу извинить мое косноязычие, сам еще до конца не представляю до конца, как хочу это реализовать.
Время цикла ПЛК 1 мс. Что вы там собираетесь ловить ? С обычным частотником большей точности не добиться. Тут нужен ШД или сервопривод. Частотник у вас через дискретные входы управляется ?
tagor4444
18.05.2018, 12:12
Время цикла ПЛК 1 мс. Что вы там собираетесь ловить ? С обычным частотником большей точности не добиться. Тут нужен ШД или сервопривод.
1. Ожидаемо, что предложили ШД или серво, заказчику желательно из того, что есть сделать ( кстати на импортном подобном станке стоит частотник с АД, видимо из за того что там надо момент хороший в широком диапазоне скоростей, но тут я спорить не буду, ибо не знаю ).
2. Такое ощущение, что время цикла гораздо больше, порядка может 40 мс может.
3. Может я неправильно вопрос задал, можно ли например считать количество циклов за секунду,
Дмитрий Артюховский
18.05.2018, 12:19
у ПЛК этой серии есть неприятная особенность - выходы с номерами DO5 - и старше устанавливаются с неопределенным и довольно значительным временем реакции, используйте "быстрые" (DO1-DO4) и желательно поменять ПЛК на транзисторные выходы, это даже на цикле 1 мс весьма заметно.
1. Ожидаемо, что предложили ШД или серво, заказчику желательно из того, что есть сделать ( кстати на импортном подобном станке стоит частотник с АД, видимо из за того что там надо момент хороший в широком диапазоне скоростей, но тут я спорить не буду, ибо не знаю ).
2. Такое ощущение, что время цикла гораздо больше, порядка может 40 мс может.
3. Может я неправильно вопрос задал, можно ли например считать количество циклов за секунду,
У вас энкодер, который мерит угол сгиба на каком валу сидит. Цена одного импульса этого энкодера (град/имп) какая ?
40 мс - это фантастика. Вы его сами установили ? Вашу программу этот ПЛК легко за 1 мс выполнит.
Время цикла 1 мс означает, что за 1 секунду программы выполнится 1000 раз. ;)
Плохо что ваш ПЛК имеет релейные, а не транзисторные выходы.
Еще раз спрашиваю, каким образом управляется ПЧВ (RS-485, дискретные входы) ?
tagor4444
18.05.2018, 12:57
у ПЛК этой серии есть неприятная особенность - выходы с номерами DO5 - и старше устанавливаются с неопределенным и довольно значительным временем реакции, используйте "быстрые" (DO1-DO4) и желательно поменять ПЛК на транзисторные выходы, это даже на цикле 1 мс весьма заметно.
Я никак не использую физические выходы, управляю частотниками по rs-485, хотя и пробовал через физические выходы управлять, разницы не заметил, но спасибо, на будущее учту.
tagor4444
18.05.2018, 13:06
У вас энкодер, который мерит угол сгиба на каком валу сидит. Цена одного импульса этого энкодера (град/имп) какая ?
40 мс - это фантастика. Вы его сами установили ? Вашу программу этот ПЛК легко за 1 мс выполнит.
Время цикла 1 мс означает, что за 1 секунду программы выполнится 1000 раз. ;)
Плохо что ваш ПЛК имеет релейные, а не транзисторные выходы.
Еще раз спрашиваю, каким образом управляется ПЧВ (RS-485, дискретные входы) ?
Энкодер стоит на оси вращения поворотной балки, 1000 имп/об, выше писал, что управляю ПЧ по rs-485
Энкодер стоит на оси вращения поворотной балки, 1000 имп/об, выше писал, что управляю ПЧ по rs-485
Значит цена одного импульса энкодера 360/4000 = 0,09 град/имп. Так ? У вас энкодер к ПЛК как подключен ? Балка на 90 градусов за какое время поворачивается.
tagor4444
18.05.2018, 13:39
Значит цена одного импульса энкодера 360/4000 = 0,09 град/имп. Так ? У вас энкодер к ПЛК как подключен ? Балка на 90 градусов за какое время поворачивается.
Ось поворотной балки с осью гиба не совпадает, поэтому градусы указывать бесполезно, и я для простоты отградуировал 0,1 условный градус на импульс. В каком смысле как подключен энкодер? Физически DI3, DI4, программно fast discrete inputs - direct control
in := SysPortIn ( 0 );
current1.0 := in.0;
current1.1 := in.1;
CASE current1 OF
0: IF old1 = 1 THEN
count1 := count1 + 1;
ELSIF old1 = 2 THEN
count1 := count1 - 1;
END_IF
1: IF old1 = 3 THEN
count1 := count1 + 1;
ELSIF old1 = 0 THEN
count1 := count1 - 1;
END_IF
2: IF old1 = 0 THEN
count1 := count1 + 1;
ELSIF old1 = 3 THEN
count1 := count1 - 1;
END_IF
3: IF old1 = 2 THEN
count1 := count1 + 1;
ELSIF old1 = 1 THEN
count1 := count1 - 1;
END_IF
END_CASE
old1 := current1;
IF reset1 = TRUE THEN
count1 := count11;
END_IF
current2.0 := in.2;
current2.1 := in.3;
CASE current2 OF
0: IF old2 = 1 THEN
count2 := count2 + 1;
ELSIF old2 = 2 THEN
count2 := count2 - 1;
END_IF
1: IF old2 = 3 THEN
count2 := count2 + 1;
ELSIF old2 = 0 THEN
count2 := count2 - 1;
END_IF
2: IF old2 = 0 THEN
count2 := count2 + 1;
ELSIF old2 = 3 THEN
count2 := count2 - 1;
END_IF
3: IF old2 = 2 THEN
count2 := count2 + 1;
ELSIF old2 = 1 THEN
count2 := count2 - 1;
END_IF
END_CASE
old2 := current2;
IF reset2 = TRUE THEN
count2 := count21;
END_IF
0,1 условный градус на импульс откуда взялся ? И что за условный градус такой ?
tagor4444
18.05.2018, 14:15
0,1 условный градус на импульс откуда взялся ? И что за условный градус такой ?
Выше писал же, что настоящих градусов все равно не добиться из за смещения между осями гиба и поворотной балки, так что я разделил окружность на 400 "градусов", так считать удобнее при имеющемся энкодере
Выше писал же, что настоящих градусов все равно не добиться из за смещения между осями гиба и поворотной балки, так что я разделил окружность на 400 "градусов", так считать удобнее при имеющемся энкодере
В окружности 400 градусов ? Это новое слово в геометрии. ;) Покажите откуда берется 0,1 градус на импульс.
Вольд завязывайте, как будто не видите кавычек. До Вас доносят что например вместо десятичной системы счисления используют свою, так доступнее?
До Вас доносят что например вместо десятичной системы счисления используют свою, так доступнее?
Какую такую свою ?
Восмиричную,шестнадцатеричную, четырехичную да мало ли какую ещё, вопрос решен в этом был, хочет человек время подсчитать, чего Вы мешает, увели тему вообще в другое русло. Надо то было просто предложить использовать отдельную задачу с запуском через определенное время. Говорит человек что увидел зависимость от времени исполнения цикла, Вы то с чего решили что цикл равен 1 мс вроде нет вложенного проекта, а минимальное время цикла совсем не то что показывает модуль статистики
Восмиричную,шестнадцатеричную, четырехичную да мало ли какую ещё, вопрос решен в этом был, хочет человек время подсчитать, чего Вы мешает, увели тему вообще в другое русло. Надо то было просто предложить использовать отдельную задачу с запуском через определенное время. Говорит человек что увидел зависимость от времени исполнения цикла, Вы то с чего решили что цикл равен 1 мс вроде нет вложенного проекта, а минимальное время цикла совсем не то что показывает модуль статистики
Ну-ну, если увидел, то пусть копает в этом направлении.
tagor4444
13.06.2018, 08:08
Всем спасибо за ответы. Проблема решилась уменьшением polling time со 100 мс, стоявших по умолчанию, до минимальных 10 мс, на всякий случай еще поднял скорость обмена с 9600 кбит/с до 38400 кбит/с.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot