Сегодня утром после обновления перестал компилироваться
рабочий проект. Как это устранить?
Где-то поставили рекурсивную связь
Проект в студию !!!
Не, не надо проект ))
Ошибка в сборке ZWB, однозначно. У меня та же беда.
mike
вообще ничего не делал с проектом.
работал с копией и не скомпилилось.
загрузил исходник- аналогично.
но исходник не изменялся и загружен в м120, лежащий на столе.
Проблема в обновленной утром сборке ЗВБ.
Все таки проект нужно глянуть, так как не все проекты сбоят. Чем больше таких у нас будет, тем проще найти причину
Во вложении.
Обновился. Теперь работает.
Исходник, после обновления, компилируется.
Макрос написанный утром нет.
(проект тот же)
Переписывать?
Киньте сюда макрос.
Макрос отдельно компилируется.
программа контроллера нет.
У вас явно циклическая связь блоков в макросе.
Если добавить переменную, то тогда нормально скомпилируется.
Но это не последняя ошибка в проекте ))
Цитата: VoronovMaksim88 от 13 ноября 2016, 11:12:57
Но это не последняя ошибка в проекте ))
если вы про входные переменные этого макроса, то он не дописан из-за невозможности компиляции. они в будущем должны будут писаться по сети. остальное работает.
циклическая связь должна проверяться при компиляции объекта.
Успешная компиляция объекта и ошибки при компиляции программы в целом не должна появляться при условии правильных внешних связях макросов программы.
Такие особенности (как запрет рукурсивной связи) не являются правилом для всех сред программирования использующие ФБД и должны выделяться при проверке объекта обязательно.
Согласен с Вами.
Ну так они и выделяются. Вот я создал программу с одним единственным макросом. В этом макросе циклическая связь. При проверке вылетела ошибка. Всё правильно вроде бы.
Максим, в приведенной вами схеме прямая рекурсивная связь.
Если используется несколько блоков, с возвратом в стеке, то такое без промежуточных переменных возможно. И абсолютно допустимо в большинстве сред программирования. В частности пример- отсутствие ошибок при компиляции моего макроса как объекта в ЗВБ.
Это как в скрине из программы, на котором вы стрелок наставили.
Первое тоже в звб иногда допускается. К примеру в блоке записи модбас.
(см пример в ИЭ)