14.07.2019, 20:42 | #1 |
Member
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Управление экранами из FBD
И снова приветствую форумчан ))
Не уверен, что тема должна быть здесь, а не в разделе SMLogix, однако она SMArt тоже касается. В работе над проектом в Trim5 столкнулся со странностью! В проекте есть главный экран, и несколько других. Два из них вызываются из главного через UI-переменные. Механизм вызова такой: при тычке пальцем на активном элементе экрана вызывается всплывающее меню с двумя пунктами. По выбору одного из них генерируется импульс единичной длительности на соответствующей UI-переменной, и вызывается привязанный к ней экран (см. картинку). Эта конструкция была создана ещё на ранних этапах разработки, и отлично работала. Но сегодня она сломалась. Менюшка работает, обе переменные функционируют, проверено. И вообще, я в этой части ничего не менял. Однако ни тот, ни другой экран не вызываются. Полез на форум, и вспомнил, что вопрос UI-переменных уже поднимал как-то раз (ветка изначально по другой теме, но разговор перешёл на эту): https://forum.segnetics.com/showpost...9&postcount=13. Тогда мы выяснили, что управление активностью экрана осуществляется уровнем, а не фронтом UI-переменной. Но я, напрочь забыв об этом, запилил управление фронтом, и оно работало больше месяца. А сейчас вдруг перестало... Напрашивается вывод, что что всё это время проект работал неправильно, то есть - это баг? |
14.07.2019, 21:33 | #2 | |
Senior Member
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили:
4 раз(а) в 4 сообщениях
|
Ответ: Управление экранами из FBD
Цитата:
Единственное были какие то странности при первой прошивке с этими UI-переменными. По началу ничего не работало (не было переходов в экраны), но потом когда просто зашел еще раз в SMart и заново прошил контроллер тогда вроде все заработало. |
|
14.07.2019, 21:38 | #3 |
Member
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Управление экранами из FBD
Провел эксперимент, ввёл управление уровнем (см. пикчу).
Всё работает. Почему работало до этого? |
14.07.2019, 21:57 | #4 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 171
Благодарил(а): 241 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Управление экранами из FBD
ну все всегда работало по фронту, если вдруг перестало работать то это вопросы к смарту и лоджику. оно периодически глючит, не спроста сгентики плюнули на развитие смарта. там куча косяков начиная с ограничения в разрядности и т.д.
|
15.07.2019, 10:48 | #5 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 159
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Управление экранами из FBD
Импульс требуется длиной более 3 циклов. При этом на малых программах часто достаточно 1-2 циклов. Банальное везение.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
15.07.2019, 12:40 | #6 |
Member
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Управление экранами из FBD
Ааааа, ну теперь понятно ))
Очевидно, проект дорос до размера, когда одного цикла стало не хватать. Что любопытно, перед тем, всё это хозяйство упало, я ничего не добавлял, а только подвинул один блок на противоположном конце поляны. |
16.07.2019, 10:52 | #7 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 791
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Управление экранами из FBD
|
16.07.2019, 11:43 | #8 |
Сотрудник Сегнетикс
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 341
Благодарил(а): 0 раз(а)
Поблагодарили:
255 раз(а) в 251 сообщениях
|
Ответ: Управление экранами из FBD
Тогда добавлю свою лепту к вопросу о перемещении блоков.
https://dl.segnetics.com/WebHelp/SML...ase_needle.htm |
19.07.2019, 04:43 | #9 | |
Member
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Управление экранами из FBD
Не, не пожелтела ))
Да и вообще, эт никак не связаный блок был. Добавлено через 16 минут Цитата:
Что касается последовательности выполнения и синхронизации, то по этим темам у меня вопросов нет )). Здесь мне всё предельно понятно и не ново. Перемещение того блока совершенно точно ничего не изменило функционально (хоть в том куске проекта, сугубо локально порядок выполнения изменился). Добавлено через 33 минуты Я думал, что решил проблему, но она меня по-прежнему уделывает. Краткое содержание предыдущих серий: 0. Управлял входом в экраны фронтами UI-переменных. 1. Управление работало-работало и вдруг на ровном месте сломалось. 2. Выяснили, что фронт UI-переменной может потеряться, если импульс слишком короткий, а проект слишком большой. 3. Ввёл управление уровнями, то есть UI-переменная сбрасывается только по выходу из экрана (картинка в посте #3). 4. Всё заработало, но ненадолго. Внезапно опять перестали вызываться экраны, и снова без видимой причины. UI-переменная устанавливается, но экран не вызывается. Вторая устанавливается - такой же результат. Так и стоят обе бедненькие, и как мне попасть в мои экраны - непонятно. Схему переходов в SMArte проверил - на месте, никуда не делась. Такие дела. Шо делать, товарищи? Неужели отказываться от UI-переменных?? тогда как жить... |
|
19.07.2019, 10:51 | #10 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 159
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Управление экранами из FBD
Цитата:
Отставить нытьё! __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
19.07.2019, 11:22 | #11 |
Member
Регистрация: Jun 2019
Адрес: Новосибирск
Сообщения: 76
Благодарил(а): 1 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Управление экранами из FBD
|
25.07.2019, 13:22 | #12 |
Senior Member
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили:
4 раз(а) в 4 сообщениях
|
Ответ: Управление экранами из FBD
Подскажите как проще (нересурсоемко) всего сделать так чтобы дискретный сигнал жил 3 цикла?
Сигнал на входе есть импульс, его жизнь - один тик. |
25.07.2019, 14:09 | #13 |
Сотрудник Сегнетикс
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 341
Благодарил(а): 0 раз(а)
Поблагодарили:
255 раз(а) в 251 сообщениях
|
Ответ: Управление экранами из FBD
Вырезка из макроса front_extract, я вас правильно понял?
|
25.07.2019, 14:34 | #14 |
Senior Member
Регистрация: Dec 2018
Адрес: Tomsk
Сообщения: 431
Благодарил(а): 10 раз(а)
Поблагодарили:
4 раз(а) в 4 сообщениях
|
Ответ: Управление экранами из FBD
|