Archived

Этот пост заблокирован, редактирование отключено

Программное обеспечениеВопросы по zWorkbenchПроблемы, возникающие после обновлений

Вопросы по системе сквозного проектирования и менеджмента проектов
Исходное сообщение:
serge197a, 12.11.2016, 09:25
serge197a
Проблемы, возникающие после обновлений
Сегодня утром после обновления перестал компилироваться
рабочий проект. Как это устранить?
Ответы:
VoronovMaksim88, 13.11.2016, 11:11
VoronovMaksim88
Проблемы, возникающие после обновлений
У вас явно циклическая связь блоков в макросе.
VoronovMaksim88, 13.11.2016, 11:11
VoronovMaksim88
Проблемы, возникающие после обновлений
Если добавить переменную, то тогда нормально скомпилируется.
VoronovMaksim88, 13.11.2016, 11:12
VoronovMaksim88
Проблемы, возникающие после обновлений
Но это не последняя ошибка в проекте ))
serge197a, 13.11.2016, 13:11
serge197a
Проблемы, возникающие после обновлений
[quote author=VoronovMaksim88 link=topic=105.msg2355#msg2355 date=1479024777]
Но это не последняя ошибка в проекте ))
[/quote]
если вы про входные переменные этого макроса, то он не дописан из-за невозможности компиляции. они в будущем должны будут писаться по сети. остальное работает.
циклическая связь должна проверяться при компиляции объекта.
Успешная компиляция объекта и ошибки при компиляции программы в целом не должна появляться при условии правильных внешних связях макросов программы.
Такие особенности (как запрет рукурсивной связи) не являются правилом для всех сред программирования использующие ФБД и должны выделяться при проверке объекта обязательно.
VoronovMaksim88, 14.11.2016, 04:18
VoronovMaksim88
Проблемы, возникающие после обновлений
Согласен с Вами.
Ну так они и выделяются. Вот я создал программу с одним единственным макросом. В этом макросе циклическая связь. При проверке вылетела ошибка. Всё правильно вроде бы.
serge197a, 14.11.2016, 13:00
serge197a
Проблемы, возникающие после обновлений
Максим, в приведенной вами схеме прямая рекурсивная связь.
Если используется несколько блоков, с возвратом в стеке, то такое без промежуточных переменных возможно. И абсолютно допустимо в большинстве сред программирования. В частности пример- отсутствие ошибок при компиляции моего макроса как объекта в ЗВБ.
Это как в скрине из программы, на котором вы стрелок наставили.
Первое тоже в звб иногда допускается. К примеру в блоке записи модбас.
(см пример в ИЭ)