This is topic Изменить порядок следования элементов? in forum Редактор Базы Каналов (Математика) / Channel Base Editor at Форум TRACE MODE: техническая поддержка.
Можно в FBD-программе изменить порядок следования элементов, вычисления зависят от того, когда выполнится блок EXIT?
Posted by sldk_buf (Участник № / Member № 2898) on :
Алгоритм представлен в виде дерева. Хотелось бы после выполнения ветки прервать дальнейший рассчет. Придумал вариант с EXIT, но что-то не удается поставить его в нужном порядке. опытался прикрутить блок STEP, но выделение только одной ветки во время обхода показалось невыполнимой задачей. Может подскажете, как реализовать алгоритм, представленный в виде конечного автомата? Или хотябы как правильно обойти дерево?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1. Изменить порядок пересчета FB программы нельзя. Только если существует "равноправность" в пересчете каких-либо FB, самым первым из них будет пересчитан самый верхний/левый (см.документацию). 2. С выполнением блока EXIT цикл пересчета FBD завершается. 3. Организовать управление ветвлением в программе с помощью блоков EXIT и STEP действительно затруднительно, т.к. установить точно их место в цикле пересчета готовой программы очень трудно. Единственный реальный вариант управления исполнением отдельных ветвей программы - создавать свою логическую диагностику и с ее помощью самостоятельно управлять входами RUN функциональных блоков (см.документацию). 4. "Алгоритм, представленный в виде конечного автомата" - слишком общее понятие. Общего решения мы предложить не можем. Один из вариантов реализован в функциональном блоке SSTP (раздел "Функции выбора").
Posted by sldk_buf (Участник № / Member № 2898) on :
Что-то у меня блок STEP не работает, как в Хелпе написанно. ТМ 5.10, смотрю в отладчике, проект для Lagoon. Есть какие нибудь баги с ним?
Posted by sldk_buf (Участник № / Member № 2898) on :
Кажется я разобрался, действительно важен номер, под которым идет блок. Мне просто казалось, что его действие распространяется и на следующий проход подсчета блоков, а он действует только до окончания прохода .