Показать сообщение отдельно
Старый 12.06.2019, 15:59   #1
MadKid
Member
 
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Странная работа FBD-блока Fronts? или ClrSrcreen? (нет проблемы)

Здравствуйте, товарищи и коллеги.

Изучаю работу SMLogix, это для меня новая среда. И конкретно сейчас столкнулся с нюансом, который объяснить для себя не могу. В чём суть:
решаю элементарую формальную задачку. поверх текущего экрана (в данном случае это просто картинка на весь экран) нарисовать прямоугольник при касании экрана, потом этот прямоугольник убрать, когда убирают палец.
Поскольку у нас нет возможности при отрисовке чего-либо на экране запоминать старое содержимое экрана, и нет в картинках прозрачности, то нам необходимо при "убирании" динамического объекта чистить весь экран и перерисовывать фон. Вот с этим и возник вопрос.

Как следует из хелпов, блок очистки экрана работает по уровню управляющего сигнала: пока там 1, Трим непрерывно циклически чистит экран. В этом можно убедиться на практике, если в проекте тупо соединить выход "состояние" от экранной кнопки и вход enable у блока очистки. Держим палец на кнопке - экран залит, отпускаем - снова видим текущий экран.

Если же мы хотим производить отрисовку и очистку по фронту (однократно, в момент нажимании-отпускании), то тут начинается непонятное.

Если используем блок Fronts (см. картинку 1), то при отпускании кнопки мы не увидим текущий экран проекта. Мы будем наблюдать очищеный экран устройства.

Если же детектировать спадающий фронт ручками (см. картинку 2), то экран устройства очищается, и задник текущего экрана вслед за этим прорисовывается.

Насколько я понимаю, и связи между блоками, и сами блоки работают в единой временной сетке, задаваемой тиками. Следовательно, две схемы эквивалентны, но реальное поведение разное. Вопросы:

в какие моменты в работающем проекте происходит перерисовка экрана? Можно ли как-то влиять на этот процесс?

В лоджиксе есть UI-выходы, но где их найти СМАрте и как ими пользоваться? Можно просто ссылку.

Какой из двух вариантов поведения проекта является глючным, а какой правильным с точки зрения идеологии сегнетикс? Что из этого мне лучше использовать в своих проектах в дальнейшем?

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

Лоджикс 3.28, Trim5
Миниатюры
Нажмите на картинку для увеличения

Название:  Блоком Fronts.PNG
Просмотров: 90
Размер:  11.9 Кбайт   Нажмите на картинку для увеличения

Название:  Ручками.PNG
Просмотров: 69
Размер:  13.6 Кбайт  
MadKid вне форума   Ответить с цитированием