Попробуйте так: Вложение 43404
Вложение 43405
После сброса всех аварий активные восстановятся!
Попробуйте так: Вложение 43404
Вложение 43405
После сброса всех аварий активные восстановятся!
Спасибо! Завтра засяду снова за ПО и попробую
Вот ещё к Вам вопрос возник, а не проще переход на экран аварий как-то так сделать?
Зачем у Вас так заморочено? Чтобы с экрана аварии нельзя было никуда перейти?
Вложение 43416
Вложение 43417
И уже не в первый раз замечаю, при смене целевой платформы клеммы проваливаются вовнутрь и назад их достать не получается:
Вложение 43418
Пока не вникал в Ваш вариант, там особенность в том, что сброс происходит по факту перехода, при других вариантах возможны пропуски при значительных временах цикла, например, если переход организован по входу. Возможно Ваш вариант тоже будет работать.
Это на какой версии? Повторяемость 100% или в случайном порядке?
У меня последняя актуальная версия ОЛ, несколько раз на разных проектах менял целевую платформу и всегда с косяками, раньше, на более ранних версиях ОЛ, подобное было намного реже, но тоже у меня встречалось на макросах!
Проверил на железе свой переход на экран аварии, нормально всё фунциклирует, проблем не заметил!
Сергей0308 Огромное Вам спасибо! вы меня снова выручили! теперь у меня обработка аварий работает идеально! я добавил только обработку короткого и долгого нажатия кнопки сброса аварий, чтобы ей или по одной аварии удалять, или удержав - все. и сделал блок обработки звука аварии, чтобы при сбросе хотя бы одной аварии звук снимался, а лампочка F2 осталась горящей. было бы конечно хорошо первым нажатием на сброс снимать "звук" а только со второго нажатия сбрасывать аварии, но что-то неохота мудрить.нет, эта штука все равно меня загрызла и я все-таки сделал полный функционал. теперь у меня первое нажатие физической кнопки сброса снимает звук, все последующие сбрасывают аварии по одной, а долгое удержание - все аварии. а если появляется новая активная авария. то звук включается снова.
Повторяемость 100% если комментарии находятся за рабочим полем "чертежа". и справедливо это абсолютно для всех версий ОЛ, поскольку, эта проблема, я так думаю, аналогична проблеме с "влезанием" входов на рабочую зону при добавлении входа/выхода в макрос, при учете, естественно, что существует комментарий за пределами рабочего поля.
Я так понимаю, что проблема в попытке ОЛ обработать "сомнительные" по ее мнению координаты комментариев, которые ОЛ приравнивает к координатам рабочих элементов и соответственно при запросе изнутри себя об изменении рабочего поля пытается расширить рабочее поле, чтобы оно включало все объекты, включая комментарии. в итоге такой глюк.
а вот вариант перехода на экран в таком виде принципе правильная идея! поскольку переход на экран аварий будет происходить всегда, если появилась новая авария, а если новых аварий нет, то можно переходом по кнопке вернуться на главный экран и продолжать работу не сбрасывая список аварий (из них не все активными могут быть по входу), а вот увеличение их количества должно обратить на себя внимание повторным переходом на экран аварий!
но это все справедливо исключительно в варианте сергея со всем его функционалом (в виде пошагового сброса и поочередным выводом при одновременном появлении.
Вот так звук не будет снова звенеть когда сбрасываются все аварии при наличии активных, остальное, вроде всё как хотели:
Вложение 43428
Вложение 43429
Сергей0308 я посимулировал ваш последний вариант. все хорошо, но если есть несколько неквитированных или активных аварий, то при появлении новой звук не включается повторно, пока не будут все аварии сборшены.
я осмелился немного доработать этот красивы код (у меня значительно все вышло замудренее).
Вложение 43453
Итого я добавил: звук повторно включается если появляется новая активная авария и после сброса всех аварий, если остались активные.
Да, действительно, я не так хотел, маленько поспешил, не подумал, вот поправил, теперь вроде так, как хотел:
Вложение 43455
Вложение 43458
И насколько понял у Вас аварии приходят по сети битовой маской, вот два регистра свёл в одну переменную и добавил включение(задействование) каждой из 32 аварий(AL 0-31), настройка на 1-ом экране:
Вложение 43460
Вложение 43461
Вложение 43462
Можно и так сделать:
Вложение 43480
Только обозначать номера аварий(бит) для каждого регистра лучше в 16-ричной системе счисления, чтобы меньше места занимало(строк)!
Вот практически готовая программа на 32 аварии, аварии приходят по сети(как у Вас) двумя регистрами, битовой маской аварий! Можно любую аварию включить или выключить(задействовать - не задействовать), настройка на первом экране, сделал по второму варианту:
Вложение 43516
По умолчанию все аварии включены(задействованы)! Заодно на практике применил свой метод, что ранее публиковал, для уменьшения количества используемой энергонезависимой памяти в 8 раз когда требуются булевы энергонезависимые переменные, а то Юрий Ревака меня всего за этот метод заругал: https://www.owen.ru/forum/showthread.php?t=26681&page=4
Короче, этот метод имеет смысл если количество булевых энергонезависимых переменных более четырёх, надеюсь понятно объяснил!
Вложение 43513
Вложение 43517
Вложение 43569
И пожалуй Вы правы, спрятал блок комментариев на холсте программы, точнее, чтобы он не выступал из него и о чудо, при смене целевой платформы клеммы не провалились во внутрь, теперь хоть знаю как бороться с провалами!