PDA

Просмотр полной версии : ошибка при компиляции



albertyak
13.01.2022, 10:19
Здравствуйте. Для реализации проекта на СПК107 с прошивкой 3.948 установил CODESYS 3.5 патч5 установил таргет 3.5.4.26 и репозиторий .Создал пустой проект при его компиляции выходит 79 ошибок и похоже ругается на отсутствие библиотеки CmpSysExec.не подскажете где ее скачать или как по другому решить.

Евгений Кислов
13.01.2022, 11:22
Добрый день.
Ccылка на библиотеку:
https://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/07_CmpSysExec/1.0.0.2/CmpSysExec_1.0.0.2.compiled-library

albertyak
13.01.2022, 14:48
[QUOTE=Евгений Кислов;372574]Добрый день.
Ccылка на библиотеку:
https://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/07_CmpSysExec/1.0.0.2/CmpSysExec_1.0.0.2.compiled-library[/QUOT

Спасибо. Все работает.На сайте в архив-репозиторий сразу внесите

Евгений Кислов
13.01.2022, 17:49
Добрый день.
Ccылка на библиотеку:
https://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/07_CmpSysExec/1.0.0.2/CmpSysExec_1.0.0.2.compiled-library

Спасибо. Все работает.На сайте в архив-репозиторий сразу внесите

В архив репозитория входят только библиотеки от разработчиков CODESYS, а CmpSysExec - наша библиотека.
Кроме того, СПК1хх уже несколько лет сняты с продажи. Но все ПО и документация доступны на нашем ftp.

AlexBut
08.04.2022, 12:06
У меня CodeSYS V3.5 SP16 Patch3+(32 bit) и СПК110М01 -взял для доработки рабочую программу и сначала всё шло норм,
но после внесения очередных изменений появилась ошибка компиляции-несоответствие типа переменной и типа канала
и не в моих POU а в системе-в OwenRTC,Info и Watchdog(см. прикреплённый файл). что изменил- добавил в ModbusTCP_Slave_Device
регистры временного хранения(увеличил с 10 до 12 и 4 мелких POU(на них не ругается). Причём ошибка проявляется ни когда подаёшь
команду компиляции (компилирует без ошибок) а когда подаёшь команду "создать загрузочное приложение" или "Логин"?
Если их исключить из компиляции то загружается без ошибок но на что они влияют? Ещё не тестировал-хотя уже вижу часы не идут на СПК-
кто-нибудь может подсказать?

AlexBut
08.04.2022, 12:08
Забыл добавить- если их(эти 3 устройства обновить) то подчёркивание красное в дереве на них исчезает, но при логин те же ошибки снова

Евгений Кислов
08.04.2022, 12:27
Забыл добавить- если их(эти 3 устройства обновить) то подчёркивание красное в дереве на них исчезает, но при логин те же ошибки снова

Добрый день.
Обеспечьте удаленный доступ, пожалуйста.

AlexBut
11.04.2022, 03:50
У меня установлен AnyDesk -напишите когда вам удобно

Евгений Кислов
11.04.2022, 06:14
У меня установлен AnyDesk -напишите когда вам удобно

Удобно сейчас и в течение ближайших часов.

AlexBut
12.04.2022, 10:40
Извините- уезжал, но проблема исчезла сама собой в понедельник(я писал в пятницу 8 апреля 22г)-что было непонятно я и компьютер перезагружал и панель- ошибки про которые я писал не исчезали, приходилось брать начальный проект и начинать всё сначала но при усложнении проекта ошибки появлялись снова, а в понедельник хотел коллегам показать сломанный проект- а всё работает, хотя я ничего не менял.
Правда встретилась другая проблема- не записывались значения в тэг word привязанный к модбас holding(хотя запись явная -на выходе FB BITS_AS_WORD в POU, но обошёл привязав эти word к каналу input registers(мне из СКАДА управлять не надо), хотя этот FB BITS_AS_WORD в POU до этого
точно работал.

AlexBut
21.04.2022, 07:46
Возник вопрос- какой смысл привязывать в Modbus TCP Slave Device Соотнесение входов/выходов(здесь у меня %QW68)
если в Modbus TCP Slave Device Страница конфигурации фактические адреса Modbus задаются в разделе "Модель данных".
Убил кучу времени чтобы понять что %QW68 это не адрес Модбас. После Unity кажется всё таким запутанным- там если тэгу задашь
%QW68 то он и будет в модбас им.

Евгений Кислов
21.04.2022, 08:03
Возник вопрос- какой смысл привязывать в Modbus TCP Slave Device Соотнесение входов/выходов(здесь у меня %QW68)
если в Modbus TCP Slave Device Страница конфигурации фактические адреса Modbus задаются в разделе "Модель данных".
Убил кучу времени чтобы понять что %QW68 это не адрес Модбас. После Unity кажется всё таким запутанным- там если тэгу задашь
%QW68 то он и будет в модбас им.

Я не могу ответить на вопрос в подобной формулировке, но могу сказать следующее:
если не использовать "модель данных", то адресация регистров совершенно прозрачна - их номера будут соответствовать индексам в квадратных скобках в столбце Канал (см. второй скриншот).

AlexBut
21.04.2022, 12:44
Я не могу ответить на вопрос в подобной формулировке, но могу сказать следующее:
если не использовать "модель данных", то адресация регистров совершенно прозрачна - их номера будут соответствовать индексам в квадратных скобках в столбце Канал (см. второй скриншот).

А зачем %QW68-этот прямой адрес можно использовать ,как я понял, в качестве переменной не привязывая к нему тэг и к адресации в модбас он не имеет отношение?

Евгений Кислов
21.04.2022, 12:57
А зачем %QW68-этот прямой адрес можно использовать ,как я понял, в качестве переменной не привязывая к нему тэг и к адресации в модбас он не имеет отношение?

Физическая адресация (%QW68 и т.п.) не имеет отношения к адресации регистров Modbus.

Использовать вы ее можете.

При этом:
- при изменении таргета (например, при переносе проекта на другой ПЛК или в более свежую версию CODESYS) распределение физических адресов может измениться.
- наглядность физических адресов - нулевая. Вы сходу вспомните через год, что такое %QW68?
Если вместо этого привязать к каналу переменную с понятным названием (в стиле awOutdoorTemp) - то разобраться в коде будет гораздо легче.

Собственно, практика использования символьных имен вместо магических цифр существует уже более полувека, если я не ошибаюсь.

AlexBut
22.04.2022, 03:52
Спасибо,понятно