Opened 6 лет ago

Last modified 6 лет ago

#126 closed улучшение

Обнаруживать аварии после сброса — at Version 6

Сообщил: san Владелец: alx
Приоритет: Полный атас Этап разработки: 1-я очередь
Ключевые слова: Копия: andrei, Art_M

Описание (последним изменил san)

r633
Контроллер на столе, к нему подключен ЭК1 и Переключатель авт/руч/стоп, все остальные датчики отсутствуют.
Эксперимент.

  • После включения контроллера сработали аварии датчиков
  • В 15:34 произведено переключение руч->авто

После сброса аварий(в результате переключения режима) контроллер не обнаружил аварии датчиков, хотя датчики по прежнему отсутствовали.

В эксперименте привод начал движение вниз, хотя, с точки зрения Артёма, он должен был определить аварии и при наличии критических аварий быть остановлен.
Предлагается внести правки в тз и ПО: если авария присутствующая в блоке была завершена "сбросом аварий", после "сброса аварий", если условие аварии выполняется, авария должна снова сработать.

История изменений (8)

by san, 6 лет ago

Вложение: messages.log added

by san, 6 лет ago

Вложение: config.xml added

comment:1 by alx, 6 лет ago

Саша, из описания тикета я не могу понять, в чем суть ошибки.

Вот здесь написано, как сделать хороший баг-рипорт. Если кратко - в хорошем баг-рипорте есть три компонента: что делали, что ожидали получить, и что получили вместо этого. В этом тикете, к сожалению, второго из перечисленных компонентов нет. Уточни, пожалуйста, что по-твоему не так в описанном поведении привода.

Рискну предположить (как попытка телепатии), что ты считаешь неправильным, что контроллер, как ты пишешь, не обнаружил аварии датчиков. Это не так (или, как минимум, не совсем так). Аварии датчиков были обнаружены сразу после старта привода, о чем есть записи в журнале:

Nov 13 15:33:40 smarthdcd[377]: controller.cpp:4407: Авария привода: 15. Неисправность датчика давления
Nov 13 15:33:40 smarthdcd[377]: controller.cpp:4407: Авария привода: 6.1 Остановка по обрыву верхнего дат.
Nov 13 15:33:40 smarthdcd[377]: controller.cpp:4407: Авария привода: 9.1 Остановка по обрыву нижнего дат.

С этого момента состояния датчиков (сигналов, поступающих от датчиков в контроллер), насколько я понимаю, не менялись.

В 15:34:07, действительно, переключатель режима работы был переведен в положение "авто", при этом выполнился сброс аварий, о чем также есть записи в журнале:

Nov 13 15:34:07 smarthdcd[377]: controller.cpp:1319: НУ1: переключатель режима работы: авто
Nov 13 15:34:07 smarthdcd[377]: controller.cpp:2302: сброс аварий

Выполнение сброса аварий соответствует требованиям ТЗ, в котором написано:

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

Таким образом, сброс аварий был выполнен правильно.

(Убрать индикацию об авариях, записать в журнал сообщение о сбросе аварий, считать все присутствующие аварии завершенными

Именно это и выполнил контроллер - посчитал текущие аварии завершенными и убрал записи о них из списка аварий. Так как сигналы от датчиков не менялись, никаких новых аварий не возникало. Не вижу в описанном поведении нарушений каких-либо требований ТЗ. Напротив, если бы контроллер вел себя иначе, это противоречило бы требованию об очистке аварий - получилось бы, что оператор переключил переключатель, выполнив, таким образом, сброс аварий, а аварии датчиков как были в списке, так и остались (хотя, технически, это были бы новые аварии, созданные в тот же миг, что убраны старые). Я смутно помню, что ты уже когда-то говорил с Андреем по этому поводу, и Андрей подтвердил, что все правильно, так и должно быть: повернул переключатель, и никаких аварий не стало...

comment:2 by san, 6 лет ago

Телепатия сработала в верном направлении.
У нас с тобой разные интерпретации сброса аварий, поэтому тебе и не очевидно что я тут считаю багом.

Оператор переключил переключатель, выполнив, таким образом, сброс аварий, а аварии датчиков как были в списке, так и остались (хотя, технически, это были бы новые аварии, созданные в тот же миг, что убраны старые)

Вот так и должно работать. Завтра загляну в ТЗ и разберусь....

in reply to:  2 comment:3 by alx, 6 лет ago

Копия: andrei added

Replying to san:

У нас с тобой разные интерпретации сброса аварий,

Тут не нужны никакие интерпретации. Действия, которые должны выполняться при сбросе аварий, перечислены в ТЗ:

  • убрать индикацию об авариях,
  • записать в журнал сообщение о сбросе аварий,
  • считать все присутствующие аварии завершенными,
  • снять пометку с НУ помеченных как неисправные,
  • если переключатель в режиме авт., то начать работу в авт. режиме согласно "Запуск привода в работу".

Эти действия либо выполняются приводом, либо нет. Насколько я вижу, все требуемые действия в рассматриваемом случае были выполнены.

Обрати, пожалуйста, особое внимание на последний пункт. Смотрим, как же выполняется запуск привода в работу:

При запуске привода в автоматическом режиме следует проводить стартовый ход... Стартовый ход начинается с движения вниз.

Ты, получается, жалуешься на то, что привод выполнил прямое требование ТЗ - начал выполнять стартовый ход вниз! :)

Вот так и должно работать. Завтра загляну в ТЗ и разберусь....

Разберись. Потому что ТЗ и Андрей (Андрей, подтверди) с тобой не согласны. :) Совершенно очевидно, тикет подлежит закрытию как invalid.

comment:4 by san, 6 лет ago

А где тут написано, что наличии "условия" аварии она не должна быть заново обнаружена после сброса?

comment:5 by san, 6 лет ago

Обсудили устно: нужны правки в тз.

comment:6 by san, 6 лет ago

Копия: Art_M added
Краткое описание: Не срабатывают аварии после сбросаОбнаруживать аварии после сброса
Описание: изменено (отличие)
Тип: багулучшение
Note: See TracTickets for help on using tickets.