Вход

Просмотр полной версии : Ошибки компиляции при открытии проекта и при открытии элемента проекта СПК110



Unreality
30.11.2024, 11:48
Добрый день,
Заголовок звучит странно, но не менее странно это выглядит в программе CODESYS 3.5.17.3
Суть проблемы
При разработке проекта и формировании его структуры, я попробовал это все скомпилировать в попытке понять, что нужно исправить сейчас - чтобы дальше было меньше проблем
Первым в строке компиляции вылезло предупреждение:

C0373: Диалог <VisuDialogs.TextinputWithLimits> отсутствует в вашем приложении. Отсутствует ли он в Менеджере визуализации?

Подумал ошибка библиотеки - проверил, и правда внутри библиотеки проекта не было библиотеки "VisuDialogs" - я её добавил, повторно скомпилировал предупреждение на месте.
Начал читать форум, по поводу этой ошибки
Например вот:
https://owen.ru/forum/showthread.php?t=38098
https://owen.ru/forum/showthread.php?t=28981
Вроде понятно, что написано - но у меня не овен библиотека - а CODESYS.
Я бегло проверил все еще раз, результата не дало.
Закрыл проект, закрыл программу CODESYS.
Когда вернулся к работе, открыл ПО и далее проект, сразу нажимаю кнопку скомпилировать - чтобы проверить "мало ли", итого предупреждения нет.
Зато появилось куча других сообщений - в разы больше.
Например:

SE_Paint_v1: A5_MV210_101_Slave [A1_SPK110_CC01: Ethernet: A1_Master]: A5_MV210_101_Slave: Адрес %IX1564.0 уже используется.

Я пошел в указанный модуль - бегло ничего не нашел (сразу скажу не шибко спец. в CODESYS), снова нажимаю кнопку скомпилировать, и снова вижу предупреждение:
C0373: Диалог <VisuDialogs.TextinputWithLimits> отсутствует в вашем приложении. Отсутствует ли он в Менеджере визуализации?
И ровно тот же перечень ошибок до закрытия проекта.

Вопросы:
Почему при открытии проекта, после выполнения компиляции одни сообщения, а после открытия любого элемента программы и повторной компиляции другие?
C0373: Диалог <VisuDialogs.TextinputWithLimits> - если эта библиотека есть, то на что тогда ругается компилятор?

Во вложении примеры сообщений.

Евгений Кислов
30.11.2024, 12:26
Добрый день.


SE_Paint_v1: A5_MV210_101_Slave [A1_SPK110_CC01: Ethernet: A1_Master]: A5_MV210_101_Slave: Адрес %IX1564.0 уже используется.

https://www.owen.ru/forum/showthread.php?t=28167&p=305691&viewfull=1#post305691


C0373: Диалог <VisuDialogs.TextinputWithLimits> отсутствует в вашем приложении. Отсутствует ли он в Менеджере визуализации?

Выложите ссылку на проект, в котором можно будет увидеть данное предупреждение.

Unreality
30.11.2024, 12:31
Добрый день,
Евгений - проблема сообщений типа:

SE_Paint_v1: A5_MV210_101_Slave [A1_SPK110_CC01: Ethernet: A1_Master]: A5_MV210_101_Slave: Адрес %IX1564.0 уже используется.

Мне не понятна.
В одном месте есть "случайно" назначенный адрес вручную, ниже:
80465

То есть больше вручную назначенных нет. Через перекрестные ссылки это можно проверить?
***
Ссылка на проект
https://disk.yandex.ru/d/Nrk5FEIbcw6Gxw

Unreality
30.11.2024, 12:33
Добрый день,
Евгений - проблема сообщений типа:

SE_Paint_v1: A5_MV210_101_Slave [A1_SPK110_CC01: Ethernet: A1_Master]: A5_MV210_101_Slave: Адрес %IX1564.0 уже используется.

Мне не понятна.
В одном месте есть "случайно" назначенный адрес вручную, ниже:
80465

То есть больше вручную назначенных нет. Через перекрестные ссылки это можно проверить?
***
Ссылка на проект
https://disk.yandex.ru/d/Nrk5FEIbcw6Gxw

Наверное правильным будет задать вопрос - а как сбросить "ручное" назначение?
То есть я тыкнул в переменную, ничего не изменил, CODESYS уже считает, что она назначена вручную - изменений ведь нет)

***
Для этого следует нажать на ячейку, в которой расположена синяя буква М и удалить в ней все символы, после чего нажать Enter. В результате адрес канала будет рассчитан автоматически.


Сделал как сказано - адрес поменялся на другой, но почему;) То есть других адресов таких нет, пересечений нет (я их не вижу по крайней мере...)

Евгений Кислов
30.11.2024, 12:53
Сделал как сказано - адрес поменялся на другой, но почему

Потому что так устроен CODESYS.


C0373: Диалог <VisuDialogs.TextinputWithLimits> отсутствует в вашем приложении. Отсутствует ли он в Менеджере визуализации?

Установите эту галочку.
Выполните команды Компиляция - Очистить все и Компиляция - Генерировать код.

80466

Unreality
30.11.2024, 12:57
Потому что так устроен CODESYS.



Установите эту галочку.
Выполните команды Компиляция - Очистить все и Компиляция - Генерировать код.

80466

Помогло, большое спасибо
Теперь есть другая проблема - пока ждал ответа, добавил на экран Tempale - фрейм, для подстановки других экранов.
После компиляции экран "Template" пропал из списка Визуализации, как на картинке у вас

Честно, ничего не понимаю - на что он ругается...

80467

Евгений Кислов
30.11.2024, 13:05
Выложите новую версию проекта (в формате .project).

Unreality
30.11.2024, 13:07
Выложите новую версию проекта (в формате .project).

Ссылка на проект
https://disk.yandex.ru/d/Nrk5FEIbcw6Gxw

***
Вопросы может и простые, но я реально не могу понять, что нужно.
Это может быть и проф.деформация от Siemens (мы с ним в основном работаем)

Евгений Кислов
30.11.2024, 13:19
Вы у экрана Template создали интерфейсную переменную.
Он стал "шаблонным" - теперь его можно привязать только к элементу визуализации Фрейм.
И он не может быть указан стартовым (как это сделано у вас).
То, что он пропал со вкладки Визуализации менеджера визуализации - это нормально.

80468

Unreality
30.11.2024, 13:34
Вы у экрана Template создали интерфейсную переменную.
Он стал "шаблонным" - теперь его можно привязать только к элементу визуализации Фрейм.
И он не может быть указан стартовым (как это сделано у вас).
То, что он пропал со вкладки Визуализации менеджера визуализации - это нормально.

80468
Ага, вот оно что)
Понял
спасибо большое за разъяснения



Если я правильно понял, то если у экрана есть переменные то это уже экраны которые внутри визуализации обрабатываются.
***
У меня большой опыт работы с Siemens и WinCC (во всех её проявлениях), я предположил, что тут как и там, логика подложек для экранов может быть одинаковая - то есть, создаем подложку (типа Template), и далее в ней отображаем остальные экраны. Только у Siemens экраны подложки не зависимые, а тут нужно указать конкретно стартовый экран, который будет и подложкой в том числе.

Тут как я понял, это делается через Фрейм, только с одним нюансом, что на стартовом экране не должно быть переменных


***
Тогда на стартовой экране вообще убрать объявление переменных?
VAR_IN_OUT

END_VAR

Евгений Кислов
30.11.2024, 14:48
Тогда на стартовой экране вообще убрать объявление переменных?

Да, нужно убрать.
Можете посмотреть этот пример (в архиве есть и краткое описание):
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/10_Demo/Example_VisuHmiTemplate_3517v1.zip

Unreality
30.11.2024, 15:19
Да, нужно убрать.
Можете посмотреть этот пример (в архиве есть и краткое описание):
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/10_Demo/Example_VisuHmiTemplate_3517v1.zip
Спасибо большое
Хорошего вечера!
Тему можно закрыть