Баг прошивки AS228T-A

Ответить
wayneenterprise
Сообщения: 54
Зарегистрирован: 12 ноя 2018, 12:23

Баг прошивки AS228T-A

Сообщение wayneenterprise »

Добрый день!

В проекте используется инструкция DDRVA для абсолютного позиционирования. При этом требуется незначительно корректировать конечную позицию в реальном времени на основе поступающих данных путём активации флага SM478. Также используется линейное повышение/понижение частоты для плавного разгона и торможения (SM469). По завершении выдачи импульсов (флаг SM461) инструкция отключается. Всё это выглядит примерно так:
scr_01.png
scr_01.png (6.29 КБ) 1397 просмотров
Суть проблемы: при первом включении инструкции (активация M0) всё работает нормально, но если при втором включении попытаться сделать позиционирование в противоположном направлении, то при первом скане (до активации флага SM478) направление будет верным, а сразу после этого (следующий скан) оно изменится на то, которое было при первом запуске инструкции. Выйти из этого положения можно только остановив/запустив ПЛК или предварительно использовав другую инструкцию управления выходами (например, выдать один "холостой" импульс), чтобы сбросить такое состояние, и чтобы всё сработало правильно ещё один раз:
scr_02.png
scr_02.png (2.43 КБ) 1397 просмотров
Версия прошивки - последняя на данный момент (1.06.20). С чем может быть связано такое поведение ПЛК? В документации лишь указано, что нельзя изменять направление только во время вывода, но в данном случае складывается впечатление, что и после этого тоже его нельзя менять. В расчётах ошибок нет, сброс выходов Y0.0/Y0.1 не помогает. Наблюдается на трёх ПЛК AS228T-A.
Последний раз редактировалось wayneenterprise 10 июл 2019, 08:48, всего редактировалось 1 раз.

Олег
Сообщения: 795
Зарегистрирован: 18 янв 2011, 23:06

Re: Возможный баг прошивки AS228T-A?

Сообщение Олег »

SM478
изменение заданной позиции во время вывода:
10.1 Эта функция доступна только для версии прошивки 1.02.30 и выше. Вы не можете изменить
направление вывода даже после изменения заданной позиции. Например, если исходная заданная
позиция находится в прямом направлении, после того, как заданная позиция будет изменена,
направление останется прямым.
10.2 После установки флага изменения, изменение происходит при сканировании инструкции. После
изменения флаг будет сброшен
. Но если заданное положение установлено неверно, флаг
изменения остается включенным.
Вы флаг SM478 постоянно держите, после выполнения он сбрасывается, и тут же опять взводится в проге. Возможно проблема в этом.

С этим контроллером я не работал.

wayneenterprise
Сообщения: 54
Зарегистрирован: 12 ноя 2018, 12:23

Re: Возможный баг прошивки AS228T-A?

Сообщение wayneenterprise »

Этот флаг необходимо поднимать при каждом новом скане, пока работает позиционирование, чтобы конечная позиция мгновенно сдвигалась в случае необходимости и в конечном счёте оказывалась именно там, где нужно. Я пробовал сделать так, чтобы флаг поднимался только в том случае, если он опущен - результат тот же.

Олег
Сообщения: 795
Зарегистрирован: 18 янв 2011, 23:06

Re: Возможный баг прошивки AS228T-A?

Сообщение Олег »

wayneenterprise писал(а): Я пробовал сделать так, чтобы флаг поднимался только в том случае, если он опущен - результат тот же.
Так ведь это тоже самое что держать его постоянно включенным. А если корректировать дистанцию не в каждом цикле, а с интервалом в 5-10 мс?

Судя по мануалу, на выполнение команды по флагу SM478 требуется больше времени чем один цикл проги. Иначе не рисовали бы график, где за время пока флаг включен, привод успевает что то проехать, и не предлагали бы его отслеживать.

У DVP и Омрона скоростные инструкции живут как то вне времени цикла, у этого тоже самое, раз есть прерывания по окончанию вывода импульсов.

wayneenterprise
Сообщения: 54
Зарегистрирован: 12 ноя 2018, 12:23

Re: Возможный баг прошивки AS228T-A?

Сообщение wayneenterprise »

Получилось только с интервалом 1000 мс: если поставить меньше (например, 500 мс), то спустя эти 500 мс направление снова станет неправильным. Но если задать время разгона/торможения в качестве 0 (именно обнулить его, сам флаг SM469 на это не влияет, даже если его отключить), то никаких искусственных задержек не требуется: всё работает отлично :D Единственная загвоздка в том, что этого делать нельзя. И странно, что достаточно 1000 мс, ведь время разгона/торможения составляет 3000 мс.

Получается, единственный выход - организовать повышение/понижение частоты вручную? Ну, или ещё один вариант - не поднимать флаг SM478 до тех пор, пока не истечёт время разгона/торможения. Хотя, переход к нужной позиции может закончиться раньше этого времени, поэтому такой вариант тоже не подходит. Решение с "холостым" импульсом всё ещё остаётся лучшим :lol:

wayneenterprise
Сообщения: 54
Зарегистрирован: 12 ноя 2018, 12:23

Re: Баг прошивки AS228T-A

Сообщение wayneenterprise »

Официальный ответ производителя: реле SM478 "не подходит" для данного случая. Для изменения позиции на ходу в качестве костыля предложили использовать две инструкции, одна из которых будет отключаться, а другая - сразу же включаться в том же скане :roll: Оставляю своё решение как лучшее и надеюсь, что производитель хотя бы попытается устранить эту недоработку или по крайней мере внесёт соответствующую правку в документацию по программированию ПЛК.

Ответить