#6 closed улучшение (fixed)
Инвалидировать динамограмму, если направление движения менялось не в крайней точке
Сообщил: | alx | Владелец: | alx |
---|---|---|---|
Приоритет: | средний | Этап разработки: | 2-я очередь |
Ключевые слова: | Копия: | san |
Описание
Сейчас при формировании динамограммы никак не проверяется, изменилось направление движения в крайней (верхней или нижней) точке, или нет. Однако согласно ТЗ, в динамограмма должна содержать движение от нижней точки к верхней точке и обратно.
Надо добавить в текущую динамограмму флаг "невалидности", который устанавливать всякий раз, если направление движения изменилось, не достигнув крайней точки. Динамограммы с установленным флагом должны игнорироваться - не сохраняться в истории динамограмм и в архиве динамограмм.
История изменений (7)
comment:3 by , 6 лет ago
Судя по комментарию в таблице формата динамограммы, записи в динамограмму подлежат только нагрузки во время движения (вверх и/или вниз). Критерии движения следующие:
- если хотя бы один из ЭК разрешен и исправен:
- если ЭК включен(ы) - это движение вниз;
- если ЭК выключены, и хотя бы один двигатель вращается - это движение вверх.
- если и ЭК выключены, и двигатели не вращаются - это останов, и данные в динамограмму не заносятся.
- если все ЭК запрещены или неисправны, то направление движения определяется состоянием двигателей:
- если хотя бы один двигатель вращается - это движение вверх;
- если ни один из двигателей не вращается - это движение вниз.
comment:5 by , 6 лет ago
Копия: | added |
---|
Саша, я что-то никак не могу формализовать критерии, по которым можно было бы принять решение о том, что изменение направления произошло не в крайней точке. Если можешь, помоги, пожалуйста.
С определением факта изменения направления вроде бы проблем нет - мы можем хранить последнее зафиксированное направление движения, которое определяем по критериям, описанным выше, и, сравнивая текущее определенное направление движения с предыдущим, определить факт изменения направления. Непонятно, как определить, в крайней ли точке это произошло или нет...
comment:6 by , 6 лет ago
Попробую сформулировать критерии сам. :)
Пусть у нас есть флаг F. Как я уже писал выше, с определением факта изменения направления движения проблемы нет. В таком случае, мы будем сбрасывать этот флаг каждый раз, когда направление движения меняется с "вниз" на "вверх". А устанавливать этот флаг мы будем при достижении верхней точки (при срабатывании ДВ или условии разворота вниз). В таком случае, если на момент изменения направления движения с "вверх" на "вниз" флаг F установлен, значит во время движения вверх верхняя точка была достигнута. Если не установлен - значит не была.
Аналогично можно определять факт достижения нижней точки. Вроде бы никаких "дыр" и противоречий в этом алгоритму я не вижу...
In 418/smartHDC: