Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.07.2017, 11:00   #1
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Баг в примере построении иерархии меню(SMH2010)?

Здравствуйте! Я решил в своем проекте добавить сервисное меню и взял за основу "example - построение иерархии меню" отсюда, проект делаю на SMH2010:
http://forum.segnetics.com/showthread.php?t=865

В процессе отладки проекта сделанного по аналогии, я обнаружил что если достаточно быстро двигаться вверх или вниз по пунктам подменю и быстро нажимать Enter, то могут получиться непредвиденные взаимодействия: на экране появится мигающий черный прямоугольник, как при работе с INPUT number, при этом не получится выйти из этого режима ни Esc, ни Enter, ни попыткой ввода чисел. Этот баг повторяется и в "example - построение иерархии меню", при чем срабатывает и для разделителей, и для булевых переменных.

Шаги повторения бага в "example - построение иерархии меню":
- зайти в меню нажав F1
- зайти в подменю "2.Настройки" и ввести пароль
- спустить курсор на Коэф P(авар)
- нажать кнопку вниз и почти сразу же кнопку enter
- появится курсор ввода чисел напротив "Коррекция:". после этого поможет только перезагрузка контроллера.

Возможная причина:
В процессе отладки я заметил что при быстрой смене пунктов подменю параметры в этом блоке AND "не поспевают" за работой контроллера. (выделен в приложении)

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

Название:  Баг.jpg
Просмотров: 63
Размер:  177.3 Кбайт  
Roll4Repairs вне форума   Ответить с цитированием
Старый 18.07.2017, 11:44   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Баг в примере построении иерархии меню(SMH2010)?

Цитата
Сообщение от Roll4Repairs Посмотреть сообщение
Здравствуйте! Я решил в своем проекте добавить сервисное меню и взял за основу "example - построение иерархии меню" отсюда, проект делаю на SMH2010:
http://forum.segnetics.com/showthread.php?t=865

В процессе отладки проекта сделанного по аналогии, я обнаружил что если достаточно быстро двигаться вверх или вниз по пунктам подменю и быстро нажимать Enter, то могут получиться непредвиденные взаимодействия: на экране появится мигающий черный прямоугольник, как при работе с INPUT number, при этом не получится выйти из этого режима ни Esc, ни Enter, ни попыткой ввода чисел. Этот баг повторяется и в "example - построение иерархии меню", при чем срабатывает и для разделителей, и для булевых переменных.

Шаги повторения бага в "example - построение иерархии меню":
- зайти в меню нажав F1
- зайти в подменю "2.Настройки" и ввести пароль
- спустить курсор на Коэф P(авар)
- нажать кнопку вниз и почти сразу же кнопку enter
- появится курсор ввода чисел напротив "Коррекция:". после этого поможет только перезагрузка контроллера.

Возможная причина:
В процессе отладки я заметил что при быстрой смене пунктов подменю параметры в этом блоке AND "не поспевают" за работой контроллера. (выделен в приложении)

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

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

Вы можете полностью исключить ситуацию, поставив на пути данных клавиатуры заслон из D-триггера, как показано на картинке.


PS. Вы, наверное, время тика установили большое, чтобы смотреть отладку было удобнее. В реальной жизни контроллер не будет работать настолько медленно) А нажимать кнопки со скоростью более 10-20 нажатий в секунду обычный оператор вряд ли сможет)
Миниатюры
Нажмите на картинку для увеличения

Название:  Безымянный.png
Просмотров: 44
Размер:  7.8 Кбайт  


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 18.07.2017, 11:57   #3
Roll4Repairs
Member
 
Регистрация: Jun 2017
Сообщения: 56
Благодарил(а): 7 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Баг в примере построении иерархии меню(SMH2010)?

Большое спасибо, помогло!

Ну, сказать по-честному я даже удивлён что с этим никто не сталкивался. Там даже не обязательно нажимать верх/вниз + enter одновременно, разница в 0,5с-0,7с достаточна для ошибки. И баг этот я довольно часто повторял при отладке проекта, когда торопился при переборе пунктов меню
Roll4Repairs вне форума   Ответить с цитированием
Старый 18.07.2017, 12:04   #4
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Баг в примере построении иерархии меню(SMH2010)?

Для воспроизведения бага нужно нажать на кнопку в том же тике, что и отпустить предыдущую. Таким образом, в стандартном варианте, это время ограничено максимально до 100мс. Если у вас очень большой и тяжелый проект, который работает медленнее - тогда конечно, это более реально. Если же тик выставить в, например, 20мс (для не крупных проектов), то вообще очень сложно будет попасть в такую ситуацию.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 19:23.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023