Opened 5 лет ago

Closed 5 лет ago

Last modified 5 лет ago

#169 closed баг (invalid)

Баг перехода контроллера в состояние, когда отсутствует движение и при этом не отображается авария

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

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

smarthdc 1.0-r692

Наблюдается состояние, когда контроллер не осуществляет движений ни в одном из направлений и при этом не сообщает о наличии какой либо ошибки.

Вызывается следующим образом:

  1. в течение хода вверх уставка НУ2 из "выкл" переключается в "вкл", а НУ1 из "вкл" переключается в "выкл"
  2. в течении хода вверх уставка НУ1 из "вкл" переключается в "выкл", при этом НУ2 находилась в "авт"

Т.е. мы наблюдаем, что отключаемая насосная установка НУ1 отключается мгновенно, а при этом НУ2 не включается (что согласно ТЗ ожидаемо). Однако состояние длится сколь угодно долго, движение отсуствует, на экране отображается "Автоматический режим. Нет аварий"

в ТЗ указано следующее
"При введении оператором настроек, которые противоречат текущим ПП (при запрещении работы на включенной НУ или ЭК или понижении приоритета на единственной включенной НУ или ЭК или при задании диапазона частот любой из включенных НУ в который не попадает частота из текущих ПП), контроллер должен произвести сброс ПП(удалить сохраненные в ОЗУ и ПЗУ ПП). "

Т.е. ожидалось выполнение стартового хода, но уже с новыми уставками.

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

comment:1 by Art_M, 5 лет ago

Описание: изменено (отличие)

comment:2 by Art_M, 5 лет ago

Описание: изменено (отличие)

in reply to:  description ; comment:3 by alx, 5 лет ago

Replying to Art_M:

  1. в течение хода вверх уставка НУ2 из "выкл" переключается в "вкл", а НУ1 из "вкл" переключается в "выкл"
  2. в течении хода вверх уставка НУ1 из "вкл" переключается в "выкл", при этом НУ2 находилась в "авт"

Что-то я не понял... Здесь указана последовательность действий, которые надо выполнить для воспроизведения бага? На шаге 1 НУ1 переключается в значение "выкл", а затем на шаге 2 она опять переключается из "вкл" в "выкл". Как так? Это ведь уже было сделано на предыдущем шаге???!!!

Или это два разных способа воспроизведения бага, и достаточно выполнить либо пункт 1, либо пункт 2?

in reply to:  description comment:4 by alx, 5 лет ago

Replying to Art_M:

Т.е. мы наблюдаем, что отключаемая насосная установка НУ1 отключается мгновенно, а при этом НУ2 не включается (что согласно ТЗ ожидаемо).

Уточни, пожалуйста, в каком месте ТЗ требует включения НУ2 в описанной ситуации.

в ТЗ указано следующее
"При введении оператором настроек, которые противоречат текущим ПП ... контроллер должен произвести сброс ПП(удалить сохраненные в ОЗУ и ПЗУ ПП)."

В процитированном фрагменте гвоорится о сбросе ПП, но ничего не говорится о включении двигателя и выполнении стартового хода. Я только что проверил в коде - в описанной ситуации (когда режим НУ1 устанавливается в значение "выкл", и при этом НУ1 выбрана) сброс ПП выполняется. Косвенно об этом свидетельствует запись в логе:

May 21 11:25:53 smarthdcd[376]: config.cpp:223: Настройка 'selectedDrive1' изменена: 'Выбран' --> 'Не выбран'
May 21 11:25:53 smarthdcd[376]: config.cpp:223: Настройка 'selectedValve1' изменена: 'выбран' --> 'не выбран'
May 21 11:25:53 smarthdcd[376]: config.cpp:223: Настройка 'selectedValve2' изменена: 'выбран' --> 'не выбран'
May 21 11:25:53 smarthdcd[376]: config.cpp:174: Настройка 'freqDrive1' изменена: 22.00 --> 36.00
May 21 11:25:53 smarthdcd[376]: config.cpp:174: Настройка 'freqDrive2' изменена: 22.00 --> 36.00
May 21 11:25:53 smarthdcd[376]: config.cpp:223: Настройка 'selectedDrive2' изменена: 'Не выбран' --> 'Выбран'
May 21 11:25:53 smarthdcd[376]: config.cpp:223: Настройка 'selectedValve1' изменена: 'не выбран' --> 'выбран'
May 21 11:25:53 smarthdcd[376]: config.cpp:223: Настройка 'selectedValve2' изменена: 'не выбран' --> 'выбран'

Оборати внимание, что изменились выбранные частоты для обеих НУ (22 Гц --> 36 Гц) - думаю, что были установлены средние значения разрешенного диапазона. Кроме того, был заново выполнен выбор электроклапанов (сначала выбор обоих был снят, затем снова установлен).

Т.е. ожидалось выполнение стартового хода, но уже с новыми уставками.

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

comment:5 by alx, 5 лет ago

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

by Art_M, 5 лет ago

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

in reply to:  3 ; comment:6 by Art_M, 5 лет ago

Replying to alx:

Что-то я не понял... Здесь указана последовательность действий, которые надо выполнить для воспроизведения бага?
Или это два разных способа воспроизведения бага, и достаточно выполнить либо пункт 1, либо пункт 2?

Это два разных способа

Replying to alx:

Replying to Art_M:
Т.е. мы наблюдаем, что отключаемая насосная установка НУ1 отключается мгновенно, а при этом НУ2 не включается (что согласно ТЗ ожидаемо).
Уточни, пожалуйста, в каком месте ТЗ требует включения НУ2 в описанной ситуации.

ТЗ этого не требует, и поэтому я и подтвердил, что НУ2 ожидаемо не включилась...

В процитированном фрагменте гвоорится о сбросе ПП, но ничего не говорится о включении двигателя и выполнении стартового хода. Я только что проверил в коде - в описанной ситуации (когда режим НУ1 устанавливается в значение "выкл", и при этом НУ1 выбрана) сброс ПП выполняется.

Следом за цитированным фрагментом идет вот что:
"После сброса ПП привод должен продолжить работу, установив ПП, как описано в пункте “Запуск привода в работу для случая если отсутствуют сохраненные ПП”.

in reply to:  6 comment:7 by alx, 5 лет ago

Решение: invalid
Состояние: newclosed

Replying to Art_M:

Уточни, пожалуйста, в каком месте ТЗ требует включения НУ2 в описанной ситуации.

ТЗ этого не требует, и поэтому я и подтвердил, что НУ2 ожидаемо не включилась...

А, понятно. Я ошибочно понял так, что ожидалось включения НУ2, но его не произошло.

Значит проблема только в том, что не произошло стартового хода.

Стартового хода в данной ситуации происходить и не должно, и это дополнительно подтверждается приведенной тобой цитатой (я сам ее хотел вчера привести, но поленился):

Следом за цитированным фрагментом идет вот что:
"После сброса ПП привод должен продолжить работу, установив ПП, как описано в пункте “Запуск привода в работу для случая если отсутствуют сохраненные ПП”.

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

comment:8 by Art_M, 5 лет ago

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

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

in reply to:  8 ; comment:9 by alx, 5 лет ago

Replying to Art_M:

Тогда поставим вопрос так, почему он не продолжает работу как описано в ТЗ?

Артем, уточни, пожалуйста, какое конкретно требование ТЗ не выполняется. Ранее ты ожидал, что будет выполнен стартовый ход и жаловался на то, что этого не произошло. Мы (вроде бы) выяснили, что в ТЗ нет требований выполнять стартовый ход в описанной ситуации. Что же еще не так?

он даже не приступает к манипуляциям которые должны происходить при долгих ходах в любом направлении...

Уточни, пожалуйста, какие именно манипуляции имеются в виду? Авария "19. Превышение времени хода вверх"?

comment:10 by san, 5 лет ago

Копия: andrei added

Алексей, выходит что если, при ходе вверх, запретить движение на той НУ, на которой происходит движение, то она отключается(согласно ТЗ) и продолжить движение привод не может, т.к. запуск другой НУ будет произведён только при развороте.
С точки зрения ТЗ, кажется всё правильно, но с точки зрения логики плохо.
Какие будут предложения по выходу из этой ситуации?

in reply to:  9 ; comment:11 by Art_M, 5 лет ago

Replying to alx:

Replying to Art_M:

Тогда поставим вопрос так, почему он не продолжает работу как описано в ТЗ?

Артем, уточни, пожалуйста, какое конкретно требование ТЗ не выполняется. Ранее ты ожидал, что будет выполнен стартовый ход и жаловался на то, что этого не произошло. Мы (вроде бы) выяснили, что в ТЗ нет требований выполнять стартовый ход в описанной ситуации. Что же еще не так?

Алексей, привод должен "продолжать работу"... В стопятисотый раз говорю, он не "продолжает работу"...

вот сейчас опять 3 специалиста будут "тратить золотое время"... То что привод не двигается ни в каком направлении и при этом не сообщает ни о каких ошибках - значит "продолжать работу", все 3-и специалиста с этим согласны?

опять же цитата из ТЗ:
"После сброса ПП привод должен продолжить работу, установив ПП, как описано в пункте “Запуск привода в работу для случая если отсутствуют сохраненные ПП”.
Пример: ЭК1=авто, ЭК2=авто, НУ1=вкл, НУ2=авто. Привод двигается вниз на ЭК1 согласно имеющихся ПП. Затем оператор установил ЭК1=откл., должен произойти сброс ПП, привод должен продолжить движение вниз на ЭК2, а следующий ход вверх совершить на НУ1 на среднем значении частоты из диапазона."

Алексей, ты убедился, что есть какое то движение? А если его по какой то причине нет, то возникла хоть какая нибудь авария? Почему закрыл тикет? 2-а из 3-х специалистов потратили "ценное время" наблюдали этот процесс воочию "в натуре" на приводе, специалистами был снят лог по этому тикету еще в 2018 году! поднимаю вопрос об этой ситуации на каждом совещании! Он записан одним из первых в перечне на устранение, а он теперь оказывается invalid и closed... Блестяще, господа, блестяще!

in reply to:  10 comment:12 by alx, 5 лет ago

Replying to san:

Алексей, выходит что если, при ходе вверх, запретить движение на той НУ, на которой происходит движение, то она отключается(согласно ТЗ) и продолжить движение привод не может, т.к. запуск другой НУ будет произведён только при развороте.
С точки зрения ТЗ, кажется всё правильно, но с точки зрения логики плохо.

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

Саша, я рекомендую создать тикет типа "улучшение", где обсудить (с Андреем и Артемом) конкретные действия контроллера в данной ситуации. При достижении согласия я внему соответствующие изменения в код.

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

comment:13 by san, 5 лет ago

Кстати предвижу ещё одну "дыру" в алгоритме.
Если пользователь например запретил обе НУ, то привод никуда не поедет, но и ошибок не выдаст, что тоже странно с точки зрения наблюдателя

in reply to:  11 comment:14 by san, 5 лет ago

вот сейчас опять 3 специалиста будут "тратить золотое время"

Артём, к чему этот сарказм? Обрати внимание что в #170 Алексею понадобилось всего 5 минут с момента точного описания бага, чтобы устранить его, а до этого несколько часов те самые специалисты занимались бесполезной работой, в попытках понять что же ты написал...

на приводе, специалистами был снят лог по этому тикету еще в 2018 году
поднимаю вопрос об этой ситуации на каждом совещании!

Вопросы по приоритетам задач - к директору. Задания заниматься этим вопросом в первую очередь нам не поступало. На том самом совещании, я попросил тебя повторить эксперимент, т.к. с момента последнего эксперимента в т.з. и алгоритме были изменения касающиеся пп. Эксперимент ты повторил, и теперь понятно где "дырка" в алгоритме(comment:10).
Артём, давай дальше по делу, эмоции предлагаю выражать директору.

comment:15 by san, 5 лет ago

Саша, я рекомендую создать тикет типа "улучшение", где обсудить (с Андреем и Артемом)

Создал #172

in reply to:  11 comment:16 by alx, 5 лет ago

Replying to Art_M:

Алексей, привод должен "продолжать работу"... В стопятисотый раз говорю, он не "продолжает работу"...

Подозреваю, что мы по-разному понимаем выражение "продолжить работу", а если точнее слово, "работу". Формулировка, действительно, недостаточно конкретная - я уже несколько раз в разных местах ТЗ просил Сашу переформулировать такую фразу, иначе получается, что ничего делать не надо ("продолжить" - значит работа уже и так выполняется). Уточни, пожалуйста, по каким конкретно признакам ты определяешь, что он не "продолжает работу". Что-то должно было произойти и не прогизошло? Что? Ты ожидал, что будет включена НУ2, но этого не произошло? Ты ожидал, что возникнет какая-то авария, и она не возникла?

вот сейчас опять 3 специалиста будут "тратить золотое время"... То что привод не двигается ни в каком направлении и при этом не сообщает ни о каких ошибках - значит "продолжать работу", все 3-и специалиста с этим согласны?

Я могу говорить за себя. Я в данной цитате под словом "работа" понимаю выполнение алгоритма, описанноно в разделе "4.2 Автоматический режим" ТЗ:

В автоматическом режиме работы при поступлении сигнала от датчика нижнего положения происходит плавное включение электродвигателя(ей) насоса(ов), при этом происходит подъем. При поступлении сигнала от датчика верхнего положения происходит включение электромагнитного(ых) клапана(ов), происходит спуск, до момента поступления сигнала датчика нижнего положения. Цикл повторяется.

В рассматриваемом случае контроллер продолжает выполнять этот алгоритм, а именно, продолжает ожидать сигнал датчика. Другое дело, что сам этот алгоритм, как выяснилось (см. комментарий Саши), имеет существенные недостатки, и его можно (и, видимо, нужно) улучшить.

опять же цитата из ТЗ:
"После сброса ПП привод должен продолжить работу, установив ПП, как описано в пункте “Запуск привода в работу для случая если отсутствуют сохраненные ПП”.
Пример: ЭК1=авто, ЭК2=авто, НУ1=вкл, НУ2=авто. Привод двигается вниз на ЭК1 согласно имеющихся ПП. Затем оператор установил ЭК1=откл., должен произойти сброс ПП, привод должен продолжить движение вниз на ЭК2, а следующий ход вверх совершить на НУ1 на среднем значении частоты из диапазона."

Почему ты считаешь, что "привод должен продолжить движение"? Что ЭК1 должен быть выключен - с этим согласен, так как в ТЗ есть такое требование:

В автоматическом режиме при любых условиях запрещается включать ЭК если в соответствующей настройке “Работа ЭК”установлено значение “выкл”.

Я не помню, чтобы в ТЗ было требование в описанной в примере ситуации включить ЭК2.

На всякий случай уточню: я не утверждаю, что такого требования в ТЗ нет. Если такое требование есть, и оно не выполняется, создай тикет и опиши в нем:

  • что было сделано (настройка "Режим ЭК1" изменена с "вкл" на "выкл"):
  • что ожидалось (включится ЭК2 в соответствии с таким-то требованием ТЗ);
  • что произошло (ЭК2 не включился).

Алексей, ты убедился, что есть какое то движение?

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

А если его по какой то причине нет, то возникла хоть какая нибудь авария? Почему закрыл тикет?

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

В ТЗ нет требования выполнить стартовый ход в описанной ситуации. Следовательно, невыполнение стартового хода ошибкой не является. Следовательно, ошибкой является открытие тикета. Поэтому тикет был закрыт с резолюцией invalid.

2-а из 3-х специалистов потратили "ценное время" наблюдали этот процесс воочию "в натуре" на приводе, специалистами был снят лог по этому тикету еще в 2018 году! поднимаю вопрос об этой ситуации на каждом совещании! Он записан одним из первых в перечне на устранение, а он теперь оказывается invalid и closed... Блестяще, господа, блестяще!

Артем, я могу говорить только за себя. Тикет был создан 24 часа назад (21 мая 2019 в 12:24). Соответственно, о наличии такого "бага" я узнал лишь 24 часа назад. Почему ты, обнаружив баг еще в 2018 году, не сообщал мне о нем до вчерашнего дня, я не знаю. На тех совещаниях, где я присутствовал, вопрос о невыполнении стартового хода при изменении настройки "Режим НУ1" не поднимался (по крайней мере, я такого не помню). Возможно, он поднимался на совещании, которое происходило без моего участия. В "Перечне доработок ПО контроллера", который я получил 27 марта 2019 г., действительно, в первом пункте упомянут некий баг "остановка привода при переключении насосных установок, при этом привод остается в неработающем состоянии и не отображает никаких ошибок". Из имеющейся формулировки, к сожалению, невозможно понять, в чем конкретно заключается проблема: при каких условиях он возникает (что такое "переключение насосных установлк"?), и в чем конкретно заключается нарушение в работе контроллера. В тот же день, 27 марта, я написал тебе ответ (Message-ID: <c0166f10-1272-d9e1-0b49-f8d04a87cc0e@…>), в котором сообщил, что о таком баге я ничего не знаю, и попросил создать тикет с более подробным описанием бага:

В первом пункте упомянут некий "остановка привода при переключении насосных установок, при этом привод остается в неработающем состоянии и не отображает никаких ошибок". О таком баге нам (ну, по крайней мере, лично мне) ничего неизвестно. Если не трудно, создай, пожалуйста, тикет с подробным описанием бага здесь: https://trac.adc-line.ru/smartHDC/newticket//

Также здесь: https://trac.adc-line.ru/smartHDC/wiki#Каксделатьхорошийбаг-рипорт есть полезная памятка о том, как сделать хороший баг-рипорт.

Я могу лишь выразить сожаление о том, что подробности бага, которые я просил сообщить 27 марта, были мне сообщены лишь 21 мая...

Артем, я призываю тебя успокоиться и постараться действовать более конструктивно. Если ты все-таки считаешь, что в описанной в этом тикете ситуации должен был быть выполнен стартовый ход, и тикет закрыт необоснованно, укажи, пожалуйста, конкретное место в ТЗ, которое требует в данной ситуации выполнить стартовый ход. Если такого требования нет, но ты считаешь, что должно быть - предложи соответствующую правку в тексте ТЗ в Google drive. Если считаешь, что следует изменить логику работы контроллера в рамках существующих требований ТЗ - создай тикет типа "улучшение" с описанием предлагаемых изменений.

Version 0, edited 5 лет ago by alx (следующий)

in reply to:  13 comment:17 by alx, 5 лет ago

Replying to san:

Кстати предвижу ещё одну "дыру" в алгоритме.
Если пользователь например запретил обе НУ, то привод никуда не поедет, но и ошибок не выдаст, что тоже странно с точки зрения наблюдателя

Проанализировал код. Думаю, здесь ты неправ - произойдет разворот по условию разворота. Отключение ЭК в результате изменения настройки "Режим ЭК" не отменяет таймер условия разворота.

comment:18 by san, 5 лет ago

Алексей, приведённая тобой цитата не про ЭК, а о гипотетической ситуации, когда пользователь "сам дурак" запретил обе НУ и привод не едет, предлагаю продолжить обсуждение в #172.

in reply to:  18 comment:19 by alx, 5 лет ago

Replying to san:

Алексей, приведённая тобой цитата не про ЭК,

О, действительно. :) Я перепутал со случаем, о котором мы, видимо, говорили устно. :)
В #172 Артем уже про этот случай ответил.

Note: See TracTickets for help on using tickets.