Opened 6 лет ago

Last modified 5 лет ago

#144 assigned улучшение

Существенные недостатки алгоритма в ТЗ и баги связанные с выходом за верхний датчик — at Первоначальная версия

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

Описание

Обнаружены существенные недостатки алгоритма в ТЗ и баги связанные с выходом за верхний датчик...

  1. При включении при сработавшем нижнем датчике сразу осуществляется ход вверх. Это плохо , т.к. в случае залипания нижнего датчика и сбросе питания в ВМТ , которая по инерции находится выше верхнего датчика, мы получим продолжение хода вверх за верхний датчик.
  2. При продолжительном срабатывании верхнего датчика и отсутствии привод выполняет разворот и ход наверх несмотря на сработавший верхний датчик и далее за верхний датчик.
  3. При сработавшем верхнем датчике и срабатывании нижнего датчика привод начинает и продолжает ход за верхний датчик.
  4. Уставка продолжительности сработанного состояния датчиков нас не спасает ни от чего,
    1. если установить значение слишком большим, то раньше наступит одновременное срабатывание, либо упор при забеге еще выше.
    2. если установить значение слишком маленьким, то при отсутствии разрешение на работу в аварийном режиме нижнего датчика мы получим остановку по продолжительному срабатыванию нижнего датчика, привод не успеет перебрать насосные установки если вдруг он стартует с неисправной! и можем быть введены в заблуждение, т.к. вместо перебора и подключения исправной НУ мы получим стоп по долгому срабатыванию нижнего датчика...

Поэтому требуются капитальные изменения в алгоритме!

Предлагается алгоритм работы сделать следующим образом:

  1. Задать программное ограничивающее условие: запретить движение вверх при сработавшем верхнем датчике при любых условиях.

2.При одновременном срабатываний датчиков при ошибке 11.1 отображать в сообщении
"11.1 Одновременное срабатывание датчиков. ДН>ДВ" если при сработавшем нижнем при ходе вверх сработал и верхний (для различия можно задать 11.3)
"11.1 Одновременное срабатывание датчиков. ДВ>ДН" если при сработавшем верхнем при ходе вниз сработал и нижний (для различия можно задать 11.4)

  1. А далее

если ДВ>ДН - то ждем ДВ=0 с отображением "11.1(4) Одновременное срабатывание датчиков. ДВ>ДН"
если ДН>ДВ в зависимости от уставки времени хода вниз при неисправности нижнего датчика, ждем

либо ДН=0 с отображением "11.1(3) Одновременное срабатывание датчиков. ДН>ДВ"
либо "10.2 Игнорирование превышения времени сработанного ДН" и работаем в аварийном режиме с условием разворота по времени хода вниз.

  1. Стартовый ход выполнять в соответствии со следующим состоянием датчиком после включения контроллера

1)ДВ=0 и ДН=0

двигаемся вниз до изменения состояния датчика ДН=0 => ДН=1.
или в течение максимального времени хода вниз (если состояние не меняется), затем разворот и ход вверх (только если ДВ=0, см.п.1)

2)ДВ=0 и ДН=1

двигаемся вниз до изменения состояния датчика ДН=1 => ДН=0
или в течение максимального времени хода вниз (если состояние не меняется) , затем разворот и ход вверх (только если ДВ=0, см.п.1)

3) ДВ=1 и ДН=0

двигаемся вниз

до изменения состояния датчика ДН=0 => ДН=1 и

получаем либо аварию одновременного срабатывания при ДВ>ДН, либо если в течение хода вниз ДВ=1 => ДВ=0, то штатную работу

или в течение максимального времени хода вниз (если состояние не меняется, т.е. сохраняется ДВ=1),

после чего выполнить процедуру расклинивания клапанов
повторно выполнить ход вниз на том же клапане
процедуру расклинивания клапанов
выполнить ход вниз на противоположном клапане,
процедуру расклинивания клапанов
выполнить ход вниз на обоих клапанах
если состояние не изменяется в течение всего времени с момента запуска находилось в состоянии ДВ=1 и ДН=0, то привод остановить и отобразить "7. Превышение времени сработавшего верхнего датчика", ожидать ДВ=0

4) ДВ=1 и ДН=1

в зависимости от уставки времени хода при неисправности нижнего датчика:

если уставка = 0, то отображаем "11.1 Одновременное срабатывание датчиков." привод стоит и ожидает переход любого из датчиков в несработавшее состояние, после чего действует согласно 2) или 3) (ну или 1), что маловероятно, но дырку надо закрыть)

если уставка >0, то двигаемся вниз до

в течение максимального времени хода вниз
если состояние не меняется, т.е. сохраняется ДВ=1, то

выполнить процедуру расклинивания клапанов
повторно выполнить ход вниз на том же клапане, ожидая ДВ=0
процедуру расклинивания клапанов
выполнить ход вниз на противоположном клапане, ожидая ДВ=0
процедуру расклинивания клапанов
выполнить ход вниз на обоих клапанах, ожидая ДВ=0
если состояние не изменяется (ДВ=1 и ДН=1), то привод остановить и отобразить две ошибки "7. Превышение времени сработавшего верхнего датчика" и
10.2 Игнорирование превышения времени сработанного ДН", ожидать ДВ=0, после чего продолжить работу в аварийном режиме с отображением "10.2 Игнорирование превышения времени сработанного ДН", до перехода ДН=0

У нас удаляются (а лучше чтобы вспоминать пусть пока закомментируются,) в ТЗ авария 10.1 "Превышение времени сработанного ДН" (авария 10.2 можно перевести в 10.1 или просто в 10), авария 11.2 Игнорирование одновременного срабатывания датчиков, уставка "максимального времени срабатывания датчиков"
Условие функции "Время хода вниз при неисправном нижнем датчике" время отсчитывается от перехода ДВ в несработавшее состояние! Если при ходе вниз датчик не переходит в несработавшее состояние, при условии неисправности нижнего или отсутствия срабатывания нижнего датчика, в течение максимального времени хода вниз, то провести процедуру расклинивания клапанов с увеличением производительности при спуске (по аналогии со случаем когда ДВ=1 и ДН=1 в при включении). При отсутствии изменений после указанной процедуры привод останавливается по ошибке 7.

Авария 7. Превышение времени сработавшего состояния верхнего датчика
Условие: (в максимального времени хода вниз ДВ=1) и (ДН=0 не изменился на ДН=1 или ДН игнорируется).
Сообщение: "7. Превышение времени сработавшего верхнего датчика".
Индикация: №3.
Действия в авт. режиме: выполнить процедуру расклинивания клапанов с поэтапным повышением производительности, при отсутствии изменений привод остановить с отображением сообщения.
Условие снятия: ДВ в несработанном состоянии
Действия при снятии в авт. режиме: аналогично 5.

Авария 10 Игнорирование превышения времени сработанного ДН
Условие: (контроллер обнаруживает сработавшее состояние датчиков в процессе хода вверх) и (при сработавшем нижнем датчике срабатывает верхний) и (уставка времени хода вниз при несправном нижнем датчике > 0) .
Сообщение: "10 Игнорирование превышения времени сработавшего нижнего датчика".
Индикация: №2.
Действия: работа в аварийном режиме при котором время спуска от верхнего датчика определяется уставкой времени хода вниз при несправном нижнем датчике
Условие снятия: ДН в несработавшем состоянии
Действия при снятии: автоматический режим, поиск других аварий?

Авария 11.1 Одновременное срабатывание датчиков
Условие: контроллер обнаруживает сработавшее состояние датчиков при включении до стартового хода и уставка времени хода вниз при несправном нижнем датчике = 0.
Сообщение: "11.1 Одновременное срабатывание датчиков".
Индикация №3.
Действия в авт. режиме: аналогично 5.
Условие снятия: любой из датчиков переходит в несработавшее состояние
Действия при снятии в авт. режиме: перезапуск "smarthdc" или ресет или как там еще это можно назвать это состояние, когда контроллер только что включился и проверяет все ошибки заново на возможность запуститься / (чтобы я не слышал, что у Макарова в ТЗ же написано "запустить привод", вот контроллер и запустил, а то что масла не было, так извиняйте)

Авария 11.3 Одновременное срабатывание датчиков на ходе вверх
Условие: (контроллер обнаруживает сработавшее состояние датчиков в процессе хода вверх) и (при сработавшем нижнем датчике срабатывает верхний) и (уставка времени хода вниз при несправном нижнем датчике = 0).
Сообщение: "11.3 Одновременное срабатывание датчиков. ДН>ДВ".
Индикация №3.
Действия в авт. режиме: аналогично 5.
Условие снятия: нижний датчик переходит в несработавшее состояние
Действия при снятии в авт. режиме: ресет ил перезапуск "smarthdc"

Авария 11.4 Одновременное срабатывание датчиков на ходе вниз
Условие: (контроллер обнаруживает сработавшее состояние датчиков в процессе хода вверх) и (при сработавшем верхнем датчике срабатывает нижний).
Сообщение: "11.4 Одновременное срабатывание датчиков. ДВ>ДН".
Индикация №3.
Действия в авт. режиме: аналогично 5.
Условие снятия: верхний датчик переходит в несработавшее состояние
Действия при снятии в авт. режиме: ресет или перезапуск "smarthdc"

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

Note: See TracTickets for help on using tickets.