Цитата Сообщение от anthrwpos Посмотреть сообщение
Похоже проблема следующая.
Программа в ОЛ есть цикл. У цикла есть начало и конец. Конец цикла находится либо в выходе, либо в начале ЛЗ, начало цикла - во входе, либо в конце ЛЗ.
Макрос вставляется в цикл между элементами так, что сначала входы передаются первым элементам макроса. Затем мы доходим до конца ЛЗ и записываем туда полученное значение. Предыдущее значение считываем из буфера и вычисляем макрос до выходов.
Именно так получается лишняя задержка.
Как сделать так, чтобы она не появлялась и всё работало корректно пока не понятно. Банальное решение вычислять элементы от концов ЛЗ первыми до выходов макроса явно приведет к ошибкам.
Нет здесь особых проблем.
Просто, при анализе схемы, нужно учитывать макрос не как "функцию" (значение на выходе которой зависит только от того, что на входе), а как конкретный набор элементов, и анализировать и считать схему с "развёрнутым" макросом.
Когда макрос - это исключительно созданная этим же инструментом схема, проблем никаких. А написание ФБ другими инструментами, как я понял, никто не собирается реализовывать.
Т.е., неявно вместо графического представления макроса подставляются его "внутренности" столько раз, сколько встречается в схеме макрос, и анализируется и расчитывается полная развёрнутая схема.