#190 closed баг (fixed)
Не отключается реверс ЭД.
Сообщил: | andrei | Владелец: | alx |
---|---|---|---|
Приоритет: | Полный атас | Этап разработки: | 1-я очередь |
Ключевые слова: | реверс | Копия: | san, Art_M |
Описание
Артем провел эксперименты над станцией с данфосами.
- Включен разовый реверсный пуск.
В РУЧ запускаем НУ2. Останавливаем НУ2.
Оба ЧРП переходят в аверс (информация с дисплея ЧРП).
- Включен разовый реверсный пуск.
В РУЧ запускаем НУ1. Останавливаем НУ1.
ЧРП2 переходят в аверс, ЧРП1 остается в реверсе (информация с дисплея ЧРП).
Во втором эксперименте Артем ожидал возврата в аверс обоих ЧРП.
Лог прилагаю. Правда я в нем не смог понять направление движения ЭД.
Вложения (1)
История изменений (23)
comment:2 by , 6 лет ago
Например, Для эксперимента 1:
May 29 15:21:14 smarthdcd[670]: config.cpp:223: Настройка 'Разовый реверсный пуск' изменена: 'Откл.' --> 'Вкл.'
Для эксперимента 1:
May 29 15:34:13 smarthdcd[670]: config.cpp:223: Настройка 'Разовый реверсный пуск' изменена: 'Откл.' --> 'Вкл.'
Это если я правильно понял значение строк ниже:
controller.cpp:1550: НУ1: запуск двигателя (10.0 Гц)
comment:3 by , 6 лет ago
Артема:
Можешь добавить, если следом за вторым экспериментом провести 1 то оба возвращаются в аверс
comment:5 by , 6 лет ago
Replying to alx:
Андрей, я вижу в приложенном логе 11 (одиннадцать) записей о переводе настройки "Разовый реверсный пуск" в значение "вкл". Уточни, пожалуйста, какая из них соответствует пункту 1, а какая - пункту 2 в описании тикета.
Андрей, в comment:1 я просил уточнить, какое место (какая запись) в логе соответствует эксперименту 1, а какая - эксперименту 2. Ты пока уточнил, какие места касаются эксперимента 1, в котором станция работает правильно (ожидаемо). Это, конечно, полезно, но гораздо более полезно было бы изучить записи лога, касающиеся эксперимента 2, в котром станция вела себя не так, как ожидалось. Поэтому для ускорения решения описанной проблемы гораздо полезнее будет уточнить место в логе, касающееся эксперимента 2, чем повышение приоритета тикета до "Подный атас"...
следующий: 8 comment:6 by , 6 лет ago
Опечатка, второй случай и есть эксперимент 2.
Для эксперимента 2:
May 29 15:34:13 smarthdcd[670]: config.cpp:223: Настройка 'Разовый реверсный пуск' изменена: 'Откл.' --> 'Вкл.'
comment:7 by , 6 лет ago
Я вчера проанализировал код, и не нашел ничего, что могло бы навести на мысль о причинах незаписи аверса в ЧРП...
comment:8 by , 6 лет ago
Replying to andrei:
Опечатка, второй случай и есть эксперимент 2.
А, блин, вот оно что! :) Спасибо. Пошел изучать...
comment:9 by , 6 лет ago
При изменении настройки "Разовый реверсный пуск" контроллер записывает в оба ЧРП параметр 1-06. Судя по записям в логе, после выключения двигателя в 15:34:27 настройка "Разовый реверсный пуск" вернулась в значение "Откл" (см. строку 1128). Следовательно, контроллер должен был выполнить запись в параметр 1-06 значения 0 (аверс). Однако далее в строке 1132 есть такая запись:
May 29 15:34:27 smarthdcd[670]: smbus.cpp:507: SMBus::rtu_rx_timeout(): operation 10: error 4
Она означает, что в ответ на команду 10 (запись одного или нескольких регистров), переданную в шину modbus ("SMBUS" - это опечатка, сделанная в самом начале разработки, следует читать "MODBUS"), но в ответ на эту команду получатель вернул ошибку с кодом 4. Согласно документации ЧРП Danfoss, ошибка 4 означает:
- Ошибка подчиненного устройства
- Возникла неисправимая ошибка во время попытки сервера (или подчиненного устройства) выполнить запрашиваемое действие.
Из сказанного выше я делаю вывод о том, что проблема на стороне ЧРП. Предлагаю обратиться к специалисту по ЧРП за разъяснением, по какой причине в ЧРП возникает эта ошибка.
comment:10 by , 6 лет ago
На всякий случай, вот полное сообщение, отправляемое в ЧРП для установки параметра 1-06 в значение 0:
<address> 0x10 0x04 0x23 0x00 0x01 0x02 0x00 0x00
следующий: 12 comment:11 by , 6 лет ago
Странно, ведь при первом эксперименте в ЧРП передаются такие же данные в такой же последовательности и ошибку это не вызывает.
Или я ошибаюсь?
comment:12 by , 6 лет ago
Replying to andrei:
Странно, ведь при первом эксперименте в ЧРП передаются такие же данные в такой же последовательности и ошибку это не вызывает.
Или я ошибаюсь?
Не ошибаешься. В первом эксперименте ошибки нет.
следующий: 14 comment:13 by , 6 лет ago
Тогда не понимаю почему ты так категорично обвиняешь ЧРП.
Межет есть мысль какие еще провести над ним опыты чтобы лучше понять проблему?
следующий: 15 comment:14 by , 6 лет ago
Replying to andrei:
Тогда не понимаю почему ты так категорично обвиняешь ЧРП.
Я же в comment:9 привел цитату из документации: код ошибки 4 означает, что в ЧРП возникла неисправимая ошибка.
Межет есть мысль какие еще провести над ним опыты чтобы лучше понять проблему?
Нет, к сожалению, никаких мыслей нет.
comment:15 by , 6 лет ago
Replying to alx:
Нет, к сожалению, никаких мыслей нет.
А теперь у меня внезапно появилась мысль. В документации сказано, что параметр 1-06 не может быть изменен во время движения. Предполагаю, что ошибка ЧРП возникает из-за того, что в момент записи НУ движется.
следующий: 18 comment:16 by , 6 лет ago
А ты параметр записываешь в ЧРП, при отпускании кнопки ВВЕРХ или ждешь когда скорость станет нулевой?
следующий: 19 comment:17 by , 6 лет ago
По логу запись настройки происходит после останова двигателя, но может быть он ещё не остановлен или думает что не остановлен...
Может быть в качестве обходного пути будем записывать не сразу после останова а чуть позже? Конечно нельзя гарантировать что пользователь не нажмёт вверх снова...
comment:18 by , 6 лет ago
Replying to andrei:
А ты параметр записываешь в ЧРП, при отпускании кнопки ВВЕРХ или ждешь когда скорость станет нулевой?
Ни то, ни другое. Запись параметра производится при изменении значения настройки "Разовый реверсный пуск".
comment:19 by , 6 лет ago
Replying to san:
По логу запись настройки происходит после останова двигателя,
Двигатель имеет ненулевую массу, поэтому даже при быстром останове он не может прекратить движение мгновенно. Предполагаю, что на момент передачи команды он еще двигался.
comment:20 by , 6 лет ago
Педлагаю в случае неуспешной записи просто повторять попытку несколько раз. Возможно, не сразу, а с каким-то таймаутом.
comment:21 by , 6 лет ago
в случае неуспешной записи просто повторять попытку несколько раз.
Согласен. А вот насчёт таймаута скорее нет: двигатель останавливается довольно быстро, подозреваю что следующая запись "подряд" будет уже успешной, а нам и нужно попытаться успеть записать правильное направление движения до следующего хода вверх.
Андрей, я вижу в приложенном логе 11 (одиннадцать) записей о переводе настройки "Разовый реверсный пуск" в значение "вкл". Уточни, пожалуйста, какая из них соответствует пункту 1, а какая - пункту 2 в описании тикета.