rw6cm писал(а):Понимаю это особенность FLProg, которую теперь надо учитывать.
Не только FLProg.
Честно говоря я долго не мог придумать нормальный (читай правильный) алгоритм анализа схемы. До версии 3.0.2 использовался придуманный мной ещё четыре года назад алгоритм основанный на гомерическом положении блоков на плате. Ну и Вы сами помните к чему это приводило))) Передвинул блок на схеме - программа работает совсем по другому.
Я перелопатил достаточно много инфы по промышленным средам программирования, ну и постепенно в голове сложилась общая картина работы их компиляторов, основанных именно на анализе схемы. На основе этого я и написал новый компилятор.
Например у Овена такая ситуация то же отслеживается, и при создании такой связи предлагается создать так называемую "линия задержки на цикл" - ту же переменную. Я не знаю стоит ли вводить такое понятие в FLProg? Если так будет понятнее, я могу это сделать (конечно потребуется время, и я не знаю стоит ли оно того, или правильнее оставить необходимость ручного создания переменной. Ведь по большому счету, переменная и так создается).
У сименса вообще все расчеты ведутся с обязательной записью окончания цепочки в ячейку памяти, и непосредственную обратную связь так же создать не позволяется.
В общем практически во всех профессиональных средах так или иначе эта проблема решена через ручное или автоматическое создание переменной (тэга, ячейки памяти.....)
Единственно отличается шнайдер (ZelioSoft), там такую связь создать можно, но как это у них реализовано, я пока не разобрался
Добавлено (09.12.2017, 10:05)
---------------------------------------------
Ну а поскольку я все таки создаю свой проект для подготовки молодых к специалистов к работе на "настоящих" промышленных средах программирования, то считаю что привить им понимание того что "
непосредственные обратные связи создавать нельзя" - это правильный путь.
Автор программы FLProg.