PDA

Просмотр полной версии : CODESYS V3.5. Вопросы и ответы



Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 [36]

LogikASUTP
30.03.2026, 14:34
Исключение и место, где оно произошло. В журнале можно текст посмотреть еще

а как понять из-за чего возникло это исключение?

LogikASUTP
30.03.2026, 14:35
Исключение, у вас деление на 0 в строке.
delta должна быть хоть 0,0001, но не 0.

спасибо вам большое. Предыдущее моё сообщение не актуально

Назаров Александр
03.04.2026, 15:30
Здравствуйте коллеги!. С чем может быть связано такое непоследовательное размещение рецептов в памяти ПЛК?
PPD_3
PPD_2
PPD_1
PPD_6
PPD_4
PPD_5
88732

RV9WFJ
03.04.2026, 15:53
Там много чего непоследовательно может быть и вообще в разных местах. Я столкнулся с этим когда написал процедуру которая по указателю на первую и последнюю переменные сохраняет настройки в файл и потом их восстанавливает когда необходимо. На небольших кусках памяти она отлично работает. А когда переменных и массивов становится много то оказывается они хранятся в памяти далеко не последовательно и вообще по разным секторам. И функция SysMemCopy становится бесполезной.

Евгений Кислов
03.04.2026, 16:10
Здравствуйте коллеги!. С чем может быть связано такое непоследовательное размещение рецептов в памяти ПЛК?
PPD_3
PPD_2
PPD_1
PPD_6
PPD_4
PPD_5
88732

Добрый день.
Если коротко - с тем, что так устроена реальная жизнь.

Все операции с чтением содержимого директорий сводятся к вызову на нижнем уровне чего-то вроде readdir, для которой:

The order in which filenames are read by successive calls to
readdir() depends on the filesystem implementation; it is unlikely
that the names will be sorted in any fashion.


https://man7.org/linux/man-pages/man3/readdir.3.html

Назаров Александр
03.04.2026, 16:55
Добрый день.
Если коротко - с тем, что так устроена реальная жизнь.

Все операции с чтением содержимого директорий сводятся к вызову на нижнем уровне чего-то вроде readdir, для которой:

The order in which filenames are read by successive calls to
readdir() depends on the filesystem implementation; it is unlikely
that the names will be sorted in any fashion.


https://man7.org/linux/man-pages/man3/readdir.3.html


Там много чего непоследовательно может быть и вообще в разных местах. Я столкнулся с этим когда написал процедуру которая по указателю на первую и последнюю переменные сохраняет настройки в файл и потом их восстанавливает когда необходимо. На небольших кусках памяти она отлично работает. А когда переменных и массивов становится много то оказывается они хранятся в памяти далеко не последовательно и вообще по разным секторам. И функция SysMemCopy становится бесполезной.

Спасибо, будем вживаться в реалии.

kondor3000
03.04.2026, 17:22
Спасибо, будем вживаться в реалии.

Не надо вживаться, достаточно в слейве выделить группу регистров (достаточного для всех рецептов) и положить туда массив структур рецептов.
Всё будет по порядку и передаваться будет по порядку.
Длину String надо тоже ограничить, местом достаточным для записи,
вы например добавляете 5 символ в String(4), вот и съезжают структуры.
Надо поставить String(5), если меньше 10 или String(6), если до 99 рецептов

Назаров Александр
14.04.2026, 11:51
Нужно отслеживать момент изменения значения в ячейке таблицы. Нашел событие OnValueChanged. Попробовал его использовать. Событие не генерируется. Баг Codesysa? Вопрос, можно ли с этим бороться? Или как еще, в принципе, можно в коде отследить это событие?

Евгений Кислов
14.04.2026, 12:36
Нужно отслеживать момент изменения значения в ячейке таблицы. Нашел событие OnValueChanged. Попробовал его использовать. Событие не генерируется. Баг Codesysa? Вопрос, можно ли с этим бороться? Или как еще, в принципе, можно в коде отследить это событие?

Добрый день.
Это действительно похоже на баг CODESYS.

Если есть возможность организовать ввод через диалог NumpadOwen/KeypadOwen из библиотеки OwenVisuDialogs - то можно отследить закрытие диалога с помощью анализа полей структуры OVD.DialogsSettings.g_stClosedDialogInfo
Поле wsDialogTitle позволит понять, что был закрыт именно диалог, открытый из таблицы (соответственно, в настройках открытия диалога ввода в таблице нужно указать ему уникальный заголовок).

Но это не позволит отличить ввод нового значения от ввода того же значения, что и было.

В принципе, можно в коде циклически проверять значение каждой ячейки - совпадает ли оно с тем, которое было при прошлой проверке.

Назаров Александр
14.04.2026, 15:55
Добрый день.
Это действительно похоже на баг CODESYS.

Если есть возможность организовать ввод через диалог NumpadOwen/KeypadOwen из библиотеки OwenVisuDialogs - то можно отследить закрытие диалога с помощью анализа полей структуры OVD.DialogsSettings.g_stClosedDialogInfo
Поле wsDialogTitle позволит понять, что был закрыт именно диалог, открытый из таблицы (соответственно, в настройках открытия диалога ввода в таблице нужно указать ему уникальный заголовок).

Но это не позволит отличить ввод нового значения от ввода того же значения, что и было.

В принципе, можно в коде циклически проверять значение каждой ячейки - совпадает ли оно с тем, которое было при прошлой проверке.

Спасибо, буду пробовать.
Еще вопрос про библиотеки.
1. Если библиотека установлена в разделе POU, то нужно ли ее устанавливать в разделе "Устройства", если Устройство не использует код из раздела "POU" ?
2. Почему папки одной версии библиотеки OSCAT BASIC выглядят по разному в Менеджерах библиотек POU и Устройств?
3. Что значит плейсхолдер POU не будет разрешен на устройстве и с чем связана ошибка ...Невозможно разрешить библиотеку плейсхолдера?
... небольшая каша в голове по этому вопросу, хотелось бы прояснить...
Где Можно ли поподробнее поизучать этот момент, лучше на русском языке.88830888318883288833

Евгений Кислов
14.04.2026, 16:14
1. Нет.
2. Сложно сказать, не зная деталей предыстории. Это, например, мог организовать автор проекта по каким-то личным причинам.
3. Судя по вашему скрину - с некорректной настройкой плейсхолдеров в проекте. Можете завтра утром связаться со мной по телеграм (см. в подписи), чтобы более предметно обсудить этот вопрос.


Где Можно ли поподробнее поизучать этот момент, лучше на русском языке

https://oscat.ru/wp-content/Video/CodesysOneLove/MainPlaylist/111_LibraryPlaceholders.mp4

Назаров Александр
14.04.2026, 16:31
1. Нет.
2. Сложно сказать, не зная деталей предыстории. Это, например, мог организовать автор проекта по каким-то личным причинам.
3. Судя по вашему скрину - с некорректной настройкой плейсхолдеров в проекте. Можете завтра утром связаться со мной по телеграм (см. в подписи), чтобы более предметно обсудить этот вопрос.



https://oscat.ru/wp-content/Video/CodesysOneLove/MainPlaylist/111_LibraryPlaceholders.mp4

Евгений, спасибо большое, завтра напишу в телеграм. Кино смотрел, эти вопросы не затронуты.

Назаров Александр
15.04.2026, 14:52
1. Нет.
2. Сложно сказать, не зная деталей предыстории. Это, например, мог организовать автор проекта по каким-то личным причинам.
3. Судя по вашему скрину - с некорректной настройкой плейсхолдеров в проекте. Можете завтра утром связаться со мной по телеграм (см. в подписи), чтобы более предметно обсудить этот вопрос.



https://oscat.ru/wp-content/Video/CodesysOneLove/MainPlaylist/111_LibraryPlaceholders.mp4

Евгений, спасибо за помощь - быстро, лаконично и профессионально!!!!

Назаров Александр
16.04.2026, 12:12
Добрый день.
Это действительно похоже на баг CODESYS.

Если есть возможность организовать ввод через диалог NumpadOwen/KeypadOwen из библиотеки OwenVisuDialogs - то можно отследить закрытие диалога с помощью анализа полей структуры OVD.DialogsSettings.g_stClosedDialogInfo
Поле wsDialogTitle позволит понять, что был закрыт именно диалог, открытый из таблицы (соответственно, в настройках открытия диалога ввода в таблице нужно указать ему уникальный заголовок).

Но это не позволит отличить ввод нового значения от ввода того же значения, что и было.

В принципе, можно в коде циклически проверять значение каждой ячейки - совпадает ли оно с тем, которое было при прошлой проверке.

Диалог NumpadOwen подтянул в менеджере визуализации, назначил имя диалога. Изменение полей диалога не происходит при вызове и закрытии диалога. Что не так?
88852
88853
88854

Евгений Кислов
16.04.2026, 12:16
Диалог NumpadOwen подтянул в менеджере визуализации, назначил имя диалога. Изменение полей диалога не происходит при вызове и закрытии диалога. Что не так?
88852
88853
88854

На втором скрине видно, что вы выбрали VisuDialogs.Numpad, переопределив тем самым настройку из менеджера визуализации.
Выберите По умолчанию или OVD.NumpadOwen.

Назаров Александр
16.04.2026, 12:27
На втором скрине видно, что вы выбрали VisuDialogs.Numpad, переопределив тем самым настройку из менеджера визуализации.
Выберите По умолчанию или OVD.NumpadOwen.

Дья́вол в дета́лях. Спасибо, просмотрел.

aaaSashaMGGU
22.04.2026, 08:18
Добрый
Как вызвать метод/действие из CFC?
Да, есть вот этот FAQ: https://owen.ru/forum/showthread.php?t=28167&page=14&p=389349&viewfull=1#post389349
Но тут речь идёт про какие-то рецепты, про какую-то библиотеку рецептов
Спасибо

Евгений Кислов
22.04.2026, 08:26
Добрый
Как вызвать метод/действие из CFC?
Да, есть вот этот FAQ: https://owen.ru/forum/showthread.php?t=28167&page=14&p=389349&viewfull=1#post389349
Но тут речь идёт про какие-то рецепты, про какую-то библиотеку рецептов
Спасибо

Добрый день. Метод - по аналогии с тем, что показано по ссылке.
Действие - просто в прямоугольнике (объект "Элемент" или "Box with EN/ENO") напишите имя действия.


Если из скрина по ссылке неочевидно, как применить это к вашему проекту - то, пожалуйста, выложите проект с одним методом и действием, которые вы хотите вызвать в CFC.
Я покажу, как это сделать.

aaaSashaMGGU
22.04.2026, 08:33
Добрый день. Метод - по аналогии с тем, что показано по ссылке.
Действие - просто в прямоугольнике (объект "Элемент" или "Box with EN/ENO") напишите имя действия.


Если из скрина по ссылке неочевидно, как применить это к вашему проекту - то, пожалуйста, выложите проект с одним методом и действием, которые вы хотите вызвать в CFC.
Я покажу, как это сделать.

Всё, разобрался, спасибо!
Объект "Элемент" в данном случае не имеет входов - и его нельзя использовать (у действия ведь нет входов). А вот "Box with EN/ENO" имеет вход EN.
В общем, вот так работает:
88909
Код действия ACT:

qqq := qqq + 1;

aaaSashaMGGU
22.04.2026, 09:02
Следующий вопрос
Вызвать действие внутри PRG получилось
Также получилось вызвать действие во втором PRG из первого
Но не выходит вызвать действие из FB, объявленного внутри PRG
И уж тем более не выходит вызвать действие из FB, объявленного внутри другого PRG
Прикладываю проект...
Спасибо заранее

aaaSashaMGGU
22.04.2026, 09:14
Следующий вопрос
Вызвать действие внутри PRG получилось
Также получилось вызвать действие во втором PRG из первого
Но не выходит вызвать действие из FB, объявленного внутри PRG
И уж тем более не выходит вызвать действие из FB, объявленного внутри другого PRG
Прикладываю проект...
Спасибо заранее

Методом научного тыка определил, как нужно делать:
88914
Так работает.
Евгений, простите, что не дождался ответа

Назаров Александр
23.04.2026, 10:21
Добрый день коллеги!
При перезаливке программы, отредактированные файлы рецептов в предыдущей загрузке, затираются данными занесенными в экземпляры группы рецептов. Что нужно сделать, чтобы избежать данного сценария?

Евгений Кислов
23.04.2026, 10:32
Добрый день коллеги!
При перезаливке программы, отредактированные файлы рецептов в предыдущей загрузке, затираются данными занесенными в экземпляры группы рецептов. Что нужно сделать, чтобы избежать данного сценария?

Добрый день.
Нужно снять эту галочку:

88936

MarcusTroy
23.05.2026, 13:14
меня интересует именно на практике. и если да то как лучше сделать второй ПИД-регулятор (Slave) для приточных клапанов или простую функцию VentSpeed * Коэффициент для приточных заслонок?

MarcusTroy
23.05.2026, 13:21
первое сообщения не послал))) есть помещение вытяжная шахта с вентилятором и приточная шахта с вентилятором и заслонкой. необходимо поддерживать температуру по уставке в соответствии с показаниями с датчика темп. и отрицательное давление по уставке и показаниям с датчика
давления

MarcusTroy
23.05.2026, 13:24
Евгений Кислов - подскажите какой в моем случае лучше использовать пид регулятор а именно с какой библиотеки. везде сигнал на управление исполнительными 0 -10 вольт.

Евгений Кислов
23.05.2026, 13:33
Евгений Кислов - подскажите какой в моем случае лучше использовать пид регулятор а именно с какой библиотеки. везде сигнал на управление исполнительными 0 -10 вольт.

Добрый день.
Если вам нужно использовать ПИД-регулятор в CODESYS V3.5 - то начните со стандартного PID_FIXCYСLE из библиотеки Util.

MarcusTroy
23.05.2026, 16:00
Подскажите а пид регуляторы с автонастройкой коэффициентов - какие посоветуете?

Iliaaer
25.05.2026, 11:14
Я добавил в проект ПЧВ3 в codesys, но у меня появились две ошибки, исправить которые у меня не получается. Что делать?

[ERROR] Менеджер библиотек [Device: Plc Logic: Application]: Невозможно открыть библиотеку 'IoDrvModbus, 3.5.4.0 (3S - Smart Software Solutions GmbH)'. (Причина: Библиотека 'IoDrvModbus, 3.5.4.0 (3S - Smart Software Solutions GmbH)' не установлена в системе.)
[ERROR] Менеджер библиотек [Device: Plc Logic: Application]: Невозможно открыть библиотеку 'IECStringUtils, 3.5.5.0 (System)'. (Причина: Библиотека 'IECStringUtils, 3.5.5.0 (System)' не установлена в системе.)

893268932789328

Евгений Кислов
25.05.2026, 12:01
Я добавил в проект ПЧВ3 в codesys, но у меня появились две ошибки, исправить которые у меня не получается. Что делать?

[ERROR] Менеджер библиотек [Device: Plc Logic: Application]: Невозможно открыть библиотеку 'IoDrvModbus, 3.5.4.0 (3S - Smart Software Solutions GmbH)'. (Причина: Библиотека 'IoDrvModbus, 3.5.4.0 (3S - Smart Software Solutions GmbH)' не установлена в системе.)
[ERROR] Менеджер библиотек [Device: Plc Logic: Application]: Невозможно открыть библиотеку 'IECStringUtils, 3.5.5.0 (System)'. (Причина: Библиотека 'IECStringUtils, 3.5.5.0 (System)' не установлена в системе.)

893268932789328

Добрый день.
Какой контроллер вы используете?

Iliaaer
25.05.2026, 12:51
Добрый день.
Какой контроллер вы используете?
ПЛК210-03CS

Евгений Кислов
25.05.2026, 13:07
ПЛК210-03CS

Тогда вы используете не ту версию шаблонов.
1. Удалите ваши шаблоны из дерева проекта
2. Установите актуальную версию шаблонов: https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/01_Components/Mx110Drivers_v3.5.11.13.package
3. Добавьте в дерево проекта шаблоны версии 3.5.11.13

Iliaaer
25.05.2026, 15:29
Тогда вы используете не ту версию шаблонов.
1. Удалите ваши шаблоны из дерева проекта
2. Установите актуальную версию шаблонов: https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/01_Components/Mx110Drivers_v3.5.11.13.package
3. Добавьте в дерево проекта шаблоны версии 3.5.11.13

Все заработало, спасибо!

TaPX
26.05.2026, 09:53
Доброе утро.
Такая штука: ввёл пароль неправильно для повышения прав (переключение на пользователя "Сервис") несколько раз, теперь "пользователь не активен". Как это можно сбросить? Или оно само через какое-то время сбросится? Установлена библиотека "OwenVisuDialogs"
89335

Евгений Кислов
26.05.2026, 11:51
Доброе утро.
Такая штука: ввёл пароль неправильно для повышения прав (переключение на пользователя "Сервис") несколько раз, теперь "пользователь не активен". Как это можно сбросить? Или оно само через какое-то время сбросится? Установлена библиотека "OwenVisuDialogs"
89335

Добрый день.
Проверьте эти настройки:

89339


Как это можно сбросить?

Полная прогрузка проекта должна решить проблему.

TaPX
26.05.2026, 14:04
Добрый день.
Проверьте эти настройки:

89339



Полная прогрузка проекта должна решить проблему.

Понял, благодарю

TaPX
26.05.2026, 15:41
Добрый день.
Проверьте эти настройки:

89339



Полная прогрузка проекта должна решить проблему.

а что значит "полная прогрузка проекта"? )

Евгений Кислов
26.05.2026, 16:41
а что значит "полная прогрузка проекта"? )

Компиляция - Очистить все
Онлайн - Подключение

TaPX
27.05.2026, 09:02
Компиляция - Очистить все
Онлайн - Подключение

Понял, благодарю
Пы.Сы.: Сработало )

Юра54
27.05.2026, 11:29
Евгений, здравствуйте!
"Неожиданно" обнаружил, что в проекте Кодесис имеются 2 менеджера библиотек - на вкладке "устройства" и на вкладке "POU", и наборы библиотек в них разные.
1) Зачем их 2 и в чем разница? Что куда складывать? Я запутался с "OSCAT BASIC".
2) Какого рода проблемы могут возникать из-за установки этой и других библиотек не в тот менеджер?
3) Есть ли какое-то общее описание менеджеров библиотек и их работы или статья на эту тему?

Евгений Кислов
27.05.2026, 11:39
Евгений, здравствуйте!
"Неожиданно" обнаружил, что в проекте Кодесис имеются 2 менеджера библиотек - на вкладке "устройства" и на вкладке "POU", и наборы библиотек в них разные.
1) Зачем их 2 и в чем разница? Что куда складывать? Я запутался с "OSCAT BASIC".
2) Какого рода проблемы могут возникать из-за установки этой и других библиотек не в тот менеджер?
3) Есть ли какое-то общее описание менеджеров библиотек и их работы или статья на эту тему?

Добрый день.
В проекте на вкладке Устройства может быть несколько контроллеров. У каждого из них будет свой отдельный менеджер библиотек.
На вкладке POU находится "общий" менеджер библиотек, библиотеки которого доступны всем контроллерам.
Основное правило: не добавлять одну и ту же библиотеку и на вкладке Устройства, и на вкладке POU (кроме тех, что появляются там автоматически - но с ними вы ничего не сделаете).

Юра54
27.05.2026, 11:44
Добрый день.
В проекте на вкладке Устройства может быть несколько контроллеров. У каждого из них будет свой отдельный менеджер библиотек.
На вкладке POU находится "общий" менеджер библиотек, библиотеки которого доступны всем контроллерам.
Основное правило: не добавлять одну и ту же библиотеку и на вкладке Устройства, и на вкладке POU (кроме тех, что появляются там автоматически - но с ними вы ничего не сделаете).

Спасибо! Вот это основное правило я и нарушал. Сейчас буду пытаться разгребать.

mf_
29.05.2026, 09:21
Добрый день. Подскажите, пожалуйста, можно ли как-то в AlarmGroup вставить в сообщение текст из массива строк asVFD_ALARM_TEXT[wERROR_VFD]?

Евгений Кислов
29.05.2026, 09:45
Добрый день. Подскажите, пожалуйста, можно ли как-то в AlarmGroup вставить в сообщение текст из массива строк asVFD_ALARM_TEXT[wERROR_VFD]?

Добрый день.
Да, с помощью LATCH-переменных.
Посмотрите видео: https://oscat.ru/wp-content/Video/CodesysOneLove/MainPlaylist/084_AlarmRaiseEvent.mp4
Оно несколько на иную тему, но там показано, как использовать LATCH-переменные.
Если текст из массива содержит кириллицу, то должен использоваться тип WSTRING.

Sulfur
29.05.2026, 12:31
Будет ли работать такое прямое объявление переменной?


sStringVar AT %MW100: STRING;

Евгений Кислов
29.05.2026, 12:34
Будет ли работать такое прямое объявление переменной?


sStringVar AT %MW100: STRING;

Это синтаксически корректное объявление.
Другой вопрос - какую пользу вы рассчитываете от него получить (если только речь не о ПЛК другого производителя, в котором на прямые адреса автоматически проецируется буфер Modbus Slave или что-то подобное).

mf_
29.05.2026, 12:37
Евгений, спасибо за ответ. Пробую реализовать, но почему-то сообщение не выводится. Можете предположить (погадать по фото) где я мог накосячить?

Sulfur
29.05.2026, 12:38
Речь о ПЛК другого производителя. Этот производитель не удосужился сделать в TCP_Slave настраиваемый пул переменных, а просто расшарил всю область %MWхх.

Евгений Кислов
29.05.2026, 12:52
Евгений, спасибо за ответ. Пробую реализовать, но почему-то сообщение не выводится. Можете предположить (погадать по фото) где я мог накосячить?

По скринам сложно что-то сказать.
Я бы вам рекомендовал начать не с RaiseEvent, а с чего-то более простого - сделайте тревогу с типом наблюдения "Дискретный" и изменяйте ее булевскую переменную в процессе отладки.

Cs-Cs
29.05.2026, 13:14
Евгений, спасибо за ответ. Пробую реализовать, но почему-то сообщение не выводится. Можете предположить (погадать по фото) где я мог накосячить?
Формат забыл указать как %s (как для вывода на экран).

89368

PS. Работа с такими штуками ОЧЕНЬ тормозит ПЛК. Потому что при записи новой тревоги он сначала во всей базе ищет уникальное значение строки для LATCH.
Если находит - переиспользует. Если не находит - добавляет новую. И это занимает время.
Вот например я сдуру сделал вывод времени работы ПЛК:

89369

mf_
29.05.2026, 13:31
По скринам сложно что-то сказать.
Я бы вам рекомендовал начать не с RaiseEvent, а с чего-то более простого - сделайте тревогу с типом наблюдения "Дискретный" и изменяйте ее булевскую переменную в процессе отладки.

Да, работает. Спасибо ещё раз. Я сначала подумал, что LATCH-переменные работают только с событиями, это не так.


Формат забыл указать как %s (как для вывода на экран).

Не, не влияет никак. Видимо, что то с обработкой событий не так, с дискретной ошибкой всё работает как нужно. Спасибо.

Валенок
29.05.2026, 13:50
Речь о ПЛК другого производителя. Этот производитель не удосужился сделать в TCP_Slave настраиваемый пул переменных, а просто расшарил всю область %MWхх.
Структуру положите по %MW0. Поля структуры и будут "настраиваемый пул переменных"

Sulfur
29.05.2026, 14:14
Валенок
Спасибо за подсказку. Придется курить мануалы по структурам, ибо с ними я еще не работал. Я же не настоящий программист, я просто баркас со дна достаю.

kondor3000
29.05.2026, 14:37
Валенок
Спасибо за подсказку. Придется курить мануалы по структурам, ибо с ними я еще не работал. Я же не настоящий программист, я просто баркас со дна достаю.

Чего там курить, структура это набор переменных, которые вам нужны, создали структуру, если несколько подобных, то массив структур
и положили всё по 1 прямому адресу.

Пример в среде 2.3, чтение 7 модулей 8АС структурами и отправка в слейв массива структур компрессоров https://owen.ru/forum/showthread.php?t=10555&page=987

Cs-Cs
29.05.2026, 16:11
Придется курить мануалы по структурам, ибо с ними я еще не работал.
На! https://cs-cs.net/codesys-modbus-karta-registrov-struktury
У меня там под 2.3 написано, а тебе надо:
1. Понять идею про структуру - как составить, как добавить.
2. Объявить её, как Валенок сказал - по началу адреса Slave (а НЕ как у меня в посте показано).

Sulfur
29.05.2026, 19:24
В моем проекте мне надо предоставить для HMI-мастера всего две строковые переменные. Если конкретно, то ПЛК читает статус из двух сервоприводов, транслирует его в стринг, и эти два статуса читает панелька. Сервы серьезные, состояний вагон и тележка. Что бы все не прописывать ручками, хотел из диагностического ФБ отображать статы на панельке. Структуры - это хорошо, особенно для миллионов регистров. Но не думаю, что ради двух переменных стоит ими пользоваться.
Я правильно понимаю, что при явном объявлении стринга КДС выделит необходимое количество регистров сам, начиная с указанного в объявлении? То есть не проблема указать %MW1000 для первой, и %MW2000 для второй переменной, к этим же адресам и обращаться с панельки.

kondor3000
29.05.2026, 19:58
В моем проекте мне надо предоставить для HMI-мастера всего две строковые переменные. Если конкретно, то ПЛК читает статус из двух сервоприводов, транслирует его в стринг, и эти два статуса читает панелька. Сервы серьезные, состояний вагон и тележка. Что бы все не прописывать ручками, хотел из диагностического ФБ отображать статы на панельке. Структуры - это хорошо, особенно для миллионов регистров. Но не думаю, что ради двух переменных стоит ими пользоваться.
Я правильно понимаю, что при явном объявлении стринга КДС выделит необходимое количество регистров сам, начиная с указанного в объявлении? То есть не проблема указать %MW1000 для первой, и %MW2000 для второй переменной, к этим же адресам и обращаться с панельки.

Напишите Str1:String(79); выделит 40 регистров, проверить размер в байтах можно x:=SIZEOF(Str1); это 80 байт
только по поводу адресов %MW1000 я сомневаюсь, например в СП3хх мастере, таких адресов нет, там адреса с 0. Лучше начать с 0 адреса типа %MW00

Sulfur
29.05.2026, 21:46
Спасибо, буду пробовать.

MarcusTroy
30.05.2026, 13:26
Подскажите Пожалуйста во всех примерах при использовании пид регулятора он используется для нагрева. А в моей задаче наоборот нужно охлаждать помещение т.е. при 100 идет охлаждение. Какие действия мне нужно сделать чтобы пид регулятор работал таким образом

SlavikP
30.05.2026, 13:40
Надо на ваш выбор или Kp подавать в ПИД со знаком минус или поменять на входах уставку и обратную связь местами.

MarcusTroy
30.05.2026, 18:59
Спасибо SlavikP. Все закрутилось.

IVM
02.06.2026, 13:57
Добрый день

Что не так ?

kondor3000
02.06.2026, 13:59
Добрый день

Что не так ?

Последняя строка - это присвоение в программе, а находится в окне объявлений.

IVM
02.06.2026, 14:32
Последняя строка - это присвоение в программе, а находится в окне объявлений.

Ваша правда.

Юра54
04.06.2026, 08:40
Здравствуйте!
Загрузил программу в виртуальный контроллер Control_Winv3. На двух компьютерах все работает, на третьем что-то пошло не так.
89435
Подскажите пожалуйста, что не так, что нужно сделать?

Евгений Кислов
04.06.2026, 08:59
Здравствуйте!
Загрузил программу в виртуальный контроллер Control_Winv3. На двух компьютерах все работает, на третьем что-то пошло не так.
89435
Подскажите пожалуйста, что не так, что нужно сделать?

Добрый день.
https://owen.ru/forum/showthread.php?t=22038&p=483736&viewfull=1#post483736

IVM
05.06.2026, 18:04
Добрый день

Не получается привязать к элементу переменную для вывода ее значения.

kondor3000
05.06.2026, 18:06
Добрый день

Не получается привязать к элементу переменную для вывода ее значения.

Что значит не получается? Какой тип переменной и где текстовый вывод %d например для целой?

IVM
05.06.2026, 18:23
Что значит не получается? Какой тип переменной и где текстовый вывод %d например для целой?

Переменная ai[1] типа real. В каком свойстве прямоугольника надо что-то задать ?

IVM
05.06.2026, 18:32
Разобрался

IVM
05.06.2026, 18:37
Что значит не получается? Какой тип переменной и где текстовый вывод %d например для целой?

А как и где можно задать формат числа ?

kondor3000
05.06.2026, 18:41
А как и где можно задать формат числа ?

Для REAL например %3.1f в тексте 89463

IVM
05.06.2026, 19:13
Для REAL например %3.1f в тексте 89463

А ввод с экрана можно в прямоугольник сделать ?

kondor3000
05.06.2026, 19:42
А ввод с экрана можно в прямоугольник сделать ?

Можно, в Конфигурации ввода, выбрать OnMouseClick , записать переменную и NamPad 89464

IVM
06.06.2026, 12:30
Можно, в Конфигурации ввода, выбрать OnMouseClick , записать переменную и NamPad 89464

Как открыть окно OnMouseClick ?

Евгений Кислов
06.06.2026, 12:37
Как открыть окно OnMouseClick ?

Вверху справа надо установить галочку Дополнительно.

IVM
06.06.2026, 12:53
Вверху справа надо установить галочку Дополнительно.

Спасибо, Евгений. Что бы мы без вас и Кондора делали.

Vesebr
09.06.2026, 15:03
Добрый день.
Можно ли из кода программы квитировать и сбрасывать аварии на основании их ID? Я привязываю вызов ФБ к группе аварий, чтобы сгруппировать аварии в одну INT переменную. Номер активного бита этого кода аварии соответствует ID аварии в группе аварий. Можно ли сделать так, чтобы при активации бита в другой переменной (код квитирования), квитировалась авария с соответствующим ID?

Евгений Кислов
09.06.2026, 15:06
Добрый день.
Можно ли из кода программы квитировать и сбрасывать аварии на основании их ID? Я привязываю вызов ФБ к группе аварий, чтобы сгруппировать аварии в одну INT переменную. Номер активного бита этого кода аварии соответствует ID аварии в группе аварий. Можно ли сделать так, чтобы при активации бита в другой переменной (код квитирования), квитировалась авария с соответствующим ID?

Добрый день.
https://owen.ru/forum/showthread.php?t=28167&p=484730&viewfull=1#post484730

Vlad9
30.06.2026, 13:36
Здравствуйте. Можно ли в режиме эмулятора читать данные с ком порта? Сейчас когда запускаю отладку в эмуляторы значок модбас подсвечивается красным треугольником, в свойствах надпись, драйвер не найден. 89687
Если можно дайте направление куда двигаться.

ritor85
30.06.2026, 13:38
Здравствуйте. Можно ли в режиме эмулятора читать данные с ком порта? Сейчас когда запускаю отладку в эмуляторы значок модбас подсвечивается красным треугольником, в свойствах надпись, драйвер не найден. 89687

В режиме эмулятора обмен не работает. Используйте виртуальный плк

Aleksandr_Sorokin
13.07.2026, 18:06
Добрый день!
У класса имеется два статических поля/переменных. При изменении одного, необходимо менять другое. Ниже код на C# для примера. Каким образом получить такое же поведение в Codesys, то есть обновлять оба статических поля в сеттере одного свойтва? Спасибо.


public class CodesysFB
{
public static double RealVariable
{
get => field;
set
{
field = value;
StringVariable = field.ToString(); // в Codesys в этом сеттере свойство StringVariable не вызывается
}
} = 123.456;

public static string StringVariable { get; private set; } = RealVariable.ToString();
}

Vlad9
17.07.2026, 11:29
Здравствуйте. Почему переменная Real занимает один адрес регистра Модбас? Что не так?
89794

Евгений Кислов
17.07.2026, 11:32
Здравствуйте. Почему переменная Real занимает один адрес регистра Модбас? Что не так?
89794

Добрый день.
Стандартные компоненты Modbus не имеют нормальной поддержки типизации.
Нужно привязать к каналам две переменные типа WORD (или, что удобнее, массив из двух вордов) и преобразовать в REAL.
См. примеры в п. 2.1:
https://ftp.owen.ru/CoDeSys3/98_Books/CodesysMemoryManipulation.pdf

Vlad9
17.07.2026, 15:19
Спасибо за подсказку. Создал объединение массив из двух вордов с реалом. Решение так себе, но куда деваться. Начинаю добрым словом вспоминать Шнайдер.)

evg3798
23.07.2026, 10:52
Добрый день.
Возможна ли адаптация проекта для работы с БД MS SQL, MySQL адаптировать под виртуальный контроллер Codesys. Если можно, то подскажите как.
Спасибо.

Евгений Кислов
23.07.2026, 11:00
Добрый день.
Возможна ли адаптация проекта для работы с БД MS SQL, MySQL адаптировать под виртуальный контроллер Codesys. Если можно, то подскажите как.
Спасибо.

Добрый день.
Выложенный на нашем сайте пример с SQL адаптировать под виртуальный контроллер не получится - он использует компоненты, доступные только в прошивках наших контроллеров.

viktor1974
27.07.2026, 07:33
Добрый день!
Создал архив проекта, передал на другой компьютер, там другой профиль визуализации 4.1.1.0, у меня 4.4.0.0, и при распаковке архива новый профиль в ситеме не видно, хотя голочку ставим. подскажите в чем проблема?

Евгений Кислов
27.07.2026, 07:39
Добрый день!
Создал архив проекта, передал на другой компьютер, там другой профиль визуализации 4.1.1.0, у меня 4.4.0.0, и при распаковке архива новый профиль в ситеме не видно, хотя голочку ставим. подскажите в чем проблема?

Добрый день.
Начиная с V3.5 SP17 в CODESYS возникла путаница между понятиями "профиль визуализации" и "плагин визуализации".
4.1.1.0 и 4.4.0.0 - это версии плагинов.
Они действительно не входят в состав архивов проектов, их необходимо устанавливать на ПК отдельно.

viktor1974
27.07.2026, 09:12
Теперь понятно. Спасибо

Roman33
06.08.2026, 08:02
Здравствуйте, у меня на визуализации есть кнопки при нажатии на которые выполняется код: PLC_PRG.isPump[1] := TRUE; И таких кнопок много ([2], [3] и т.д.) ещё в них цвет меняется по этому же алгоритму. Как можно автоматизировать их создание, чтобы в каждой кнопке не редактировать одну цифру?

kondor3000
06.08.2026, 08:12
Здравствуйте, у меня на визуализации есть кнопки при нажатии на которые выполняется код: PLC_PRG.isPump[1] := TRUE; И таких кнопок много ([2], [3] и т.д.) ещё в них цвет меняется по этому же алгоритму. Как можно автоматизировать их создание, чтобы в каждой кнопке не редактировать одну цифру?

Поменять руками число в 2-3 десятках скопированных кнопок, займёт меньше времени создания сообщения на форуме.
А больше на визу и не поместится.

Евгений Кислов
06.08.2026, 08:19
Здравствуйте, у меня на визуализации есть кнопки при нажатии на которые выполняется код: PLC_PRG.isPump[1] := TRUE; И таких кнопок много ([2], [3] и т.д.) ещё в них цвет меняется по этому же алгоритму. Как можно автоматизировать их создание, чтобы в каждой кнопке не редактировать одну цифру?

Добрый день.

В CODESYS у элементов есть команда контекстного меню Размножить элемент визуализации.
Она описана здесь в п. 10.3.6:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Visu_v3.0.pdf

Но она не может повлиять на содержимое действия Выполнить ST-код.
Поэтому можно сделать следующее: привязать к кнопкам элементы отдельного булевского массива (это позволит их "тиражировать"), а в коде программы в цикле FOR проверять изменение их состояния и в случае необходимости выполнять нужные операции.

Roman33
06.08.2026, 08:40
Спасибо, работает. У меня просто есть, задача, чтобы у каждого элемента системы (насосы, смесители и т.д.) была возможность выбора входа к которому они привязаны, для унификации приложения. Отсюда куча кнопок с почти одинаковым кодом: привязать выход, инверсия, ручной режим.

Party3AH
17.08.2026, 11:15
Добрый день!

Можно ли вывести значения счётчика "Request Counter" из состояния устройства Modbus TCP Slave и привязать его к переменной в коде?
Есть задача, сделать статистику связи. Идея такая - считать кол-во запросов, кол-во ошибок xInitDone, из этих данных считать процент успешных запросов.

90051

Евгений Кислов
17.08.2026, 11:30
Добрый день!

Можно ли вывести значения счётчика "Request Counter" из состояния устройства Modbus TCP Slave и привязать его к переменной в коде?
Есть задача, сделать статистику связи. Идея такая - считать кол-во запросов, кол-во ошибок xInitDone, из этих данных считать процент успешных запросов.

90051

Добрый день.
См. пример:
https://owen.ru/forum/showthread.php?t=28167&p=403643&viewfull=1#post403643

LogikASUTP
19.08.2026, 11:55
Добрый день коллеги!
Перенёс проект из sodesys 3,5_v17 в codesys 3,5_v19, прогрузил все необходимые библиотеки, обновил конфигурации устройств. Но при компиляции среда разработки находит ошибки, которые не знаю как исправить.
90076
подскажите как победить этот недуг.

Кликаю на строчку с ошибкой, но codesys не переносит меня к месту ошибки, соответственно не могу понять что и где исправлять.

Спасибо.

Евгений Кислов
19.08.2026, 12:02
Добрый день коллеги!
Перенёс проект из sodesys 3,5_v17 в codesys 3,5_v19, прогрузил все необходимые библиотеки, обновил конфигурации устройств. Но при компиляции среда разработки находит ошибки, которые не знаю как исправить.
90076
подскажите как победить этот недуг.

Кликаю на строчку с ошибкой, но codesys не переносит меня к месту ошибки, соответственно не могу понять что и где исправлять.

Спасибо.

Добрый день.
Для контроллеров ОВЕН мы не заявляем поддержки программирования в V3.5 SP19.
В любом случае - выложите простейший проект (.projectarchive), в котором можно будет воспроизвести эту ошибку.

Party3AH
19.08.2026, 13:48
Добрый день.
См. пример:
https://owen.ru/forum/showthread.php?t=28167&p=403643&viewfull=1#post403643

Благодарю, Евгений! Всё получилось. Статистика заработала.

Есть ещё вопрос по диагностике связи - можно ли привязать кнопку подтверждения последнего сообщения диагностики к переменной в коде?
И можно ли как-то обнулять счётчики Request Counter и Error Counter?

LogikASUTP
19.08.2026, 16:13
Евгений спасибо проект простенький состряпаю скину. Пока некогда пришлось 6 проектов вручную переделывать.

LogikASUTP
19.08.2026, 16:14
Добрый день.
Для контроллеров ОВЕН мы не заявляем поддержки программирования в V3.5 SP19.
В любом случае - выложите простейший проект (.projectarchive), в котором можно будет воспроизвести эту ошибку.

Евгений спасибо проект простенький состряпаю скину. Пока некогда пришлось 6 проектов вручную переделывать.

Евгений Кислов
20.08.2026, 07:01
Благодарю, Евгений! Всё получилось. Статистика заработала.

Есть ещё вопрос по диагностике связи - можно ли привязать кнопку подтверждения последнего сообщения диагностики к переменной в коде?
И можно ли как-то обнулять счётчики Request Counter и Error Counter?

Добрый день.


Есть ещё вопрос по диагностике связи - можно ли привязать кнопку подтверждения последнего сообщения диагностики к переменной в коде?



VAR
dwResult: DWORD;
xTrue: BOOL := TRUE;
END_VAR

IF xConfirmDiag THEN

dwResult := IoStandard.IoMgrWriteParameter(89, Modbus_TCP_Slave.m_dwInstance, 9201, ADR(xTrue), 8, 0);

xConfirmDiag := FALSE;

END_IF


Modbus_TCP_Slave - имя устройства из дерева проекта
89 - moduleType коннектора компонента Modbus TCP Slave, 9201 - ID параметра Confirm Diagnosis
Эти значения берутся из файла описания компонента (см. комментарии в том примере, который вы уже рассмотрели)


И можно ли как-то обнулять счётчики Request Counter и Error Counter?

Насколько я понимаю - такой возможности нет.

LogikASUTP
20.08.2026, 09:18
Коллеги добрый день.
При переноса проекта в более раннюю версию codesys, среда запрашивает библиотеки версии которых не могу найти на сайте. Причём стоят более поздние версии библиотек, но codesys их игнорирует.
90082
при попытке загрузить библиотеки автоматически, ничего не получается.
90083
Подскажите как действовать.
Нужно оживить много проектов.
Проекты переносятся из 3.5 SP19 в 3.5 SP17

Спасибо.

Sergey361
20.08.2026, 09:38
Овеновские не грузятся автоматически. Вообще нужно старые удалить из менеджера и с новыми скомпилировать

Евгений Кислов
20.08.2026, 09:40
Коллеги добрый день.
При переноса проекта в более раннюю версию codesys, среда запрашивает библиотеки версии которых не могу найти на сайте. Причём стоят более поздние версии библиотек, но codesys их игнорирует.
90082
при попытке загрузить библиотеки автоматически, ничего не получается.
90083
Подскажите как действовать.
Нужно оживить много проектов.
Проекты переносятся из 3.5 SP19 в 3.5 SP17

Спасибо.

Добрый день.

https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OwenStringUtils_v3.5.4.7.compiled-library
https://ftp.owen.ru/TechSupportShare/OwenDebug_v3.5.4.8.compiled-library

LogikASUTP
20.08.2026, 09:44
Овеновские не грузятся автоматически. Вообще нужно старые удалить из менеджера и с новыми скомпилировать

загрузил и установил библиотеку вручную, но она более поздней версии, и кодесис её игнорит. Нужную версию не могу найти.

Sergey361
20.08.2026, 09:52
загрузил и установил библиотеку вручную, но она более поздней версии, и кодесис её игнорит. Нужную версию не могу найти.

Ну выше скинули уже нужные. Просто, мне кажется, можно старые удалить вообще из менеджера библиотек, тогда будет работать с новыми

LogikASUTP
20.08.2026, 10:14
Добрый день.

https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OwenStringUtils_v3.5.4.7.compiled-library
https://ftp.owen.ru/TechSupportShare/OwenDebug_v3.5.4.8.compiled-library

Евгений спасибо библиотеки встали

LogikASUTP
20.08.2026, 10:16
Ну выше скинули уже нужные. Просто, мне кажется, можно старые удалить вообще из менеджера библиотек, тогда будет работать с новыми

Да конечно, старые удалил. Новые заработали. Скрин сделан ещё со старыми, без установленных новых.

Спасибо.

LogikASUTP
20.08.2026, 12:13
При компиляции проекта, продолжают вылазить ошибки но без ссылок на место ошибок, по описанию не могу понять где их искать
90086
подскажите как их исправить?

в дереве проектов ошибки не отображаются

Спасибо.

Евгений Кислов
20.08.2026, 12:27
При компиляции проекта, продолжают вылазить ошибки но без ссылок на место ошибок, по описанию не могу понять где их искать
90086
подскажите как их исправить?

Спасибо.

Начните с этого:
https://owen.ru/forum/showthread.php?t=28167&p=373718&viewfull=1#post373718

LogikASUTP
20.08.2026, 16:53
Добрый вечер коллеги.
Подскажите где скачать библиотеку screen 3.5.17.31?
При создании нового проекта codesys сразу выдаёт ошибки
90090

Спасибо.

LogikASUTP
20.08.2026, 16:56
Начните с этого:
https://owen.ru/forum/showthread.php?t=28167&p=373718&viewfull=1#post373718

спасибо Евгений. Только увидел ваше сообщение. Пошёл пробовать.

LogikASUTP
21.08.2026, 14:17
Добрый день коллеги.
Пытаюсь подключиться к виртуальному ПЛК, кодесис просит имя пользователя и пароль.
90097
Подскажите что вводить?
p.s. CODESYS V3.5 SP17 Patch 3

Спасибо

LogikASUTP
21.08.2026, 14:28
сам подобрал. вот это я хаккер
имя пользователя:1
пароль:1

LogikASUTP
21.08.2026, 14:42
Ещё раз приветствую.
Теперь коде сис ругается на версию виртуального плк
90098
хочет версию 17.30, но при попытке обновить устройство, все виртуальные контроллеры версии 19.30
90099
подскажите как поменять виртуальный плк на версию 17.30?

спасибо

kondor3000
21.08.2026, 14:45
Ещё раз приветствую.
Теперь коде сис ругается на версию виртуального плк
хочет версию 17.30, но при попытке обновить устройство, все виртуальные контроллеры версии 19.30
подскажите как поменять виртуальный плк на версию 17.30?

спасибо

Внизу галочка, отображать все версии, включите и выберите Codesys Control WIN V3 версии 17.30
На вашем месте я бы удалил 19.3 , зачем её вообще было ставить, сами себе проблем нажили.

Пароль и пользователя виртуального контроллера можно удалить, ищите в FAQ https://owen.ru/forum/showthread.php?t=28167&p=401060&viewfull=1#post401060

LogikASUTP
21.08.2026, 15:12
Внизу галочка, отображать все версии, включите и выберите Codesys Control WIN V3 версии 17.30
На вашем месте я бы удалил 19.3 , зачем её вообще было ставить, сами себе проблем нажили.

Пароль и пользователя виртуального контроллера можно удалить, ищите в FAQ https://owen.ru/forum/showthread.php?t=28167&p=401060&viewfull=1#post401060

спасибо
виртуальный плк заработал

LogikASUTP
21.08.2026, 15:14
Внизу галочка, отображать все версии, включите и выберите Codesys Control WIN V3 версии 17.30
На вашем месте я бы удалил 19.3 , зачем её вообще было ставить, сами себе проблем нажили.

Пароль и пользователя виртуального контроллера можно удалить, ищите в FAQ https://owen.ru/forum/showthread.php?t=28167&p=401060&viewfull=1#post401060

подскажите а на виртуальном плк работает таблица тревог?

LogikASUTP
21.08.2026, 16:26
Имитирую аварию в логике, но в таблице тревог она не отображается.
Несколько раз проверил все настройки.
Скажите может быть такое что таблица тревог не работает на виртуальном плк ?

Спасибо.

Евгений Кислов
21.08.2026, 16:29
Имитирую аварию в логике, но в таблице тревог она не отображается.
Несколько раз проверил все настройки.
Скажите может быть такое что таблица тревог не работает на виртуальном плк ?

Спасибо.

Таблица тревог работает на виртуальном ПЛК.
Выложите ваш проект - посмотрим, почему она не работает конкретно в нем.

LogikASUTP
21.08.2026, 16:37
Таблица тревог работает на виртуальном ПЛК.
Выложите ваш проект - посмотрим, почему она не работает конкретно в нем.

файл с архивом проекта весит 78 Мб, он сюда не загрузится. Могу закинуть на яндекс диск

https://disk.yandex.ru/d/Q-Fa9ePOvVr85w

Евгений Кислов
21.08.2026, 17:05
файл с архивом проекта весит 78 Мб, он сюда не загрузится. Могу закинуть на яндекс диск

https://disk.yandex.ru/d/Q-Fa9ePOvVr85w

У вас в проекте кто-то удалил задачу менеджера тревог (AlarmManagerTask).
Удалите из проекта компонент Alarm Configuration и добавьте его заново - в этот момент нужная задача будет создана автоматически.

LogikASUTP
21.08.2026, 18:06
У вас в проекте кто-то удалил задачу менеджера тревог (AlarmManagerTask).
Удалите из проекта компонент Alarm Configuration и добавьте его заново - в этот момент нужная задача будет создана автоматически.

Спасибо Евгений.

LogikASUTP
21.08.2026, 18:47
У вас в проекте кто-то удалил задачу менеджера тревог (AlarmManagerTask).
Удалите из проекта компонент Alarm Configuration и добавьте его заново - в этот момент нужная задача будет создана автоматически.

Евгений всё отлично, таблица аварий заработала. Спасибо.
Но пока не работает история аварий. Где то ошибка или дело в виртуальном плк?
https://disk.yandex.ru/d/Q-Fa9ePOvVr85w

Спасибо.

Евгений Кислов
21.08.2026, 18:55
Евгений всё отлично, таблица аварий заработала. Спасибо.
Но пока не работает история аварий. Где то ошибка или дело в виртуальном плк?

В проекте ошибка. Выложите ссылку на новую версию.

LogikASUTP
21.08.2026, 18:57
В проекте ошибка. Выложите ссылку на новую версию.

https://disk.yandex.ru/d/Q-Fa9ePOvVr85w

Евгений Кислов
21.08.2026, 19:08
https://disk.yandex.ru/d/Q-Fa9ePOvVr85w

У меня в выложенном проекте история тревог работает:

90101

LogikASUTP
21.08.2026, 19:20
У меня в выложенном проекте история тревог работает:

90101

вот засада, значит дело либо в ноуте либо в виртуальном плк. Не то ни другое не знаю как исправить блин. Интересно как поведёт себя проект на реальной железке.
Спасибо Вам Евгений. Вы очень помогли.

kondor3000
21.08.2026, 19:20
У меня она и в первом проекте работает, после добавления AlarmManagerTask

LogikASUTP
21.08.2026, 19:38
Интересная история. Жаль СПК под рукой нет проверить.

LogikASUTP
22.08.2026, 14:53
Добрый день коллеги помогите запустить виртуальный плк.
Проблема в следующем:
Выбираю виртуальный плк
90103
открывается окно
90104
два раза нажимаю enter, окно пропадает
пытаюсь запустить плк
90105
нажимаю start PLC но ничего не происходит.

Windows11 x64
подскажите что не так делаю

Спасибо.

МихаилГл
22.08.2026, 15:36
Вроде служба отвалилась... Было что то подобное, после того как закрыл все через диспетчер задач, а потом всё перестало нормально работать. Попробуйте перезапустить саму службу...

LogikASUTP
22.08.2026, 16:02
Вроде служба отвалилась... Было что то подобное, после того как закрыл все через диспетчер задач, а потом всё перестало нормально работать. Попробуйте перезапустить саму службу...

перезапустить "службу" вы имеете ввиду перезапустить виртуальный плк (codesys Control Win V3)?

LogikASUTP
22.08.2026, 16:12
Вроде служба отвалилась... Было что то подобное, после того как закрыл все через диспетчер задач, а потом всё перестало нормально работать. Попробуйте перезапустить саму службу...

перезагрузил компьютер не помогло

Евгений Кислов
22.08.2026, 16:35
два раза нажимаю enter, окно пропадает

Что будет, если не нажимать в этот момент Enter (чтобы окно с логом осталось), а в CODESYS перейти в узел Device и выполнить сканирование сети?
При этом в проекте CODESYS нужно выбрать таргет-файл CODESYS Control Win V3, естественно.

LogikASUTP
22.08.2026, 17:15
Что будет, если не нажимать в этот момент Enter (чтобы окно с логом осталось), а в CODESYS перейти в узел Device и выполнить сканирование сети?
При этом в проекте CODESYS нужно выбрать таргет-файл CODESYS Control Win V3, естественно.

пошёл пробовать

LogikASUTP
22.08.2026, 17:29
Что будет, если не нажимать в этот момент Enter (чтобы окно с логом осталось), а в CODESYS перейти в узел Device и выполнить сканирование сети?
При этом в проекте CODESYS нужно выбрать таргет-файл CODESYS Control Win V3, естественно.

при попытке сканировать сеть, не видит gateway
90107
а при попытке запустить, gateway не запускается так же как виртуальный плк
90108
постоянно в стопе
90109

Евгений Кислов
22.08.2026, 17:55
Ок, давайте попробуем починить Gateway.
Переустановите его вручную:
https://ftp.owen.ru/CoDeSys3/01_CODESYS/CODESYS%20Gateway%20V3.5SP5Patch5%20Setup.zip

LogikASUTP
22.08.2026, 18:08
Ок, давайте попробуем починить Gateway.
Переустановите его вручную:
https://ftp.owen.ru/CoDeSys3/01_CODESYS/CODESYS%20Gateway%20V3.5SP5Patch5%20Setup.zip

спасибо пошёл пробовать

LogikASUTP
22.08.2026, 19:04
Ок, давайте попробуем починить Gateway.
Переустановите его вручную:
https://ftp.owen.ru/CoDeSys3/01_CODESYS/CODESYS%20Gateway%20V3.5SP5Patch5%20Setup.zip

Евгений спасибо. Gateway запустился, Виртуальной плк тоже, при сканировании сети он находится, но при подключении просит пароль
90110

вобщем опять везде ввёл 1 и 1 и всё заработало.
Спасибо

Khabibullaev
25.08.2026, 16:47
Ребят, посоветуйте пожалуйста открытые источники информации, где можно было бы прочитать про то для чего окно "открыть проект на ПЛК"? Спасибо добрым людям) 90134

melky
25.08.2026, 17:25
Предположу, это если исходники были загружены в ПЛК.

Cs-Cs
25.08.2026, 17:44
Ребят, посоветуйте пожалуйста открытые источники информации, где можно было бы прочитать про то для чего окно "открыть проект на ПЛК"? Спасибо добрым людям) 90134
Лови: https://cs-cs.net/codesys-archiv-projekta-ishodniye-kody
Там про 2.3 и 3.5 - ты читай про 3.5.

lnikita
01.09.2026, 09:52
Подскажите, может было у кого? Уже голову сломал. Не работает поиск по документу в Codesys 3.5. Не открывается, ничего не происходит при нажатии на иконки и при использовании клавиатуры. 90195

МихаилГл
01.09.2026, 10:15
Подскажите, может было у кого? Уже голову сломал. Не работает поиск по документу в Codesys 3.5. Не открывается, ничего не происходит при нажатии на иконки и при использовании клавиатуры. 90195

Точно внизу в "аля трэй" ничего не свернулось? У кодесиса есть болячка, если слева файловый менеджер в режиме всплывающего окна, то из него по правой кнопки мыши открывается не то что ты хотел открыть... Может и с поиском такое...

lnikita
01.09.2026, 10:29
Неа, нет((
А в режиме онлайн только открывается(

Party3AH
01.09.2026, 14:25
Подскажите, может было у кого? Уже голову сломал. Не работает поиск по документу в Codesys 3.5. Не открывается, ничего не происходит при нажатии на иконки и при использовании клавиатуры. 90195

Было такое, как-то получилось решить через сброс каких-то настроек.
Попробуйте вкладку "Окно" -> "Сбросить параметры окна".
Ещё можно попробовать взять архив проекта с другого компа, на котором поиск работает. При создании архива нажать галочку "Опции". При открытии архива применить все настройки для среды разработки.

lnikita
02.09.2026, 04:19
Большое спасибо, желаю успехов!

Mr_Camel
03.09.2026, 16:59
Добрый день! Во вкладке Slave устройств, модулей МВ110, пропала вкладка настройки "Общее". Использовались шаблоны для добавления модулей. Это какой то прикол Codesys 3.5 или где сам скрыл? А то даже адрес не поменять)))

kondor3000
03.09.2026, 18:11
Добрый день! Во вкладке Slave устройств, модулей МВ110, пропала вкладка настройки "Общее". Использовались шаблоны для добавления модулей. Это какой то прикол Codesys 3.5 или где сам скрыл? А то даже адрес не поменять)))

Удалить модуль и вставить снова пробовали?
Пакет модулей добавляли или переустанавливали?
Скрин выложите.

Mr_Camel
04.09.2026, 07:55
Удалить модуль и вставить снова пробовали?
Пакет модулей добавляли или переустанавливали?
Скрин выложите.

Модули удалял, добавлял. В том числе на другие Com, пакет удалял, устанавливал заново. Все так и остается, вкладка общая отсутствует.9023190232

Евгений Кислов
04.09.2026, 08:12
Модули удалял, добавлял. В том числе на другие Com, пакет удалял, устанавливал заново. Все так и остается, вкладка общая отсутствует.9023190232

Добрый день.
У вас CODESYS установился без плагинов. Проще всего будет удалить его и установить заново по инструкции:
https://oscat.ru/wp-content/Video/CodesysOneLove/MainPlaylist/082_SP17_HowToInstall.mp4

Mr_Camel
04.09.2026, 08:16
Добрый день.
У вас CODESYS установился без плагинов. Проще всего будет удалить его и установить заново по инструкции:
https://oscat.ru/wp-content/Video/CodesysOneLove/MainPlaylist/082_SP17_HowToInstall.mp4

Хорошо, я так и сделаю. Спасибо.Просто я работал в нем. Проект был создан и адреса были в модулях заданы, ни каких проблем не было.

Mr_Camel
13.09.2026, 12:58
И снова добрый день всем! Пните, где почитать как убрать кракозябры с визуализации. Проверил настройки кодировки вроде все верно. может где упустил. Причем вылезают они только в название диалога. не важно какой выбран

Евгений Кислов
13.09.2026, 15:15
И снова добрый день всем! Пните, где почитать как убрать кракозябры с визуализации. Проверил настройки кодировки вроде все верно. может где упустил. Причем вылезают они только в название диалога. не важно какой выбран

Хотелось бы увидеть скрин настройки названия диалога, но навскидку - название должно быть указано в двойных кавычках (пример: "Диалог ввода уставки"), а не одинарных.

Mr_Camel
13.09.2026, 22:59
Да не знаю, что сказать Евгений :cool: Вы прям видете все насквозь. Так и есть были одинарные. Тогда уж спрошу еще:)В графических редакторах систем Honeywell, Supcon и т.д. Можно для смены цвета, изображения ... В общем свойств объекта, задавать, целую логическую цепочку из переменных, есть ли подобное в Codesys?:confused:

Евгений Кислов
14.09.2026, 06:25
Да не знаю, что сказать Евгений :cool: Вы прям видете все насквозь. Так и есть были одинарные. Тогда уж спрошу еще:)В графических редакторах систем Honeywell, Supcon и т.д. Можно для смены цвета, изображения ... В общем свойств объекта, задавать, целую логическую цепочку из переменных, есть ли подобное в Codesys?:confused:

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

90336

Mr_Camel
15.09.2026, 09:06
И снова добрый день! Хотел попробовать в режиме эмуляции проверить визуализацию тренда. Использовал библиотеку OVT и получил вот такое сообщение
90346
я опять что то не то сделал?)))

Евгений Кислов
15.09.2026, 09:18
И снова добрый день! Хотел попробовать в режиме эмуляции проверить визуализацию тренда. Использовал библиотеку OVT и получил вот такое сообщение
90346
я опять что то не то сделал?)))

В эмуляции проверить работу библиотеки не получится.
Используйте виртуальный контроллер:
https://oscat.ru/wp-content/Video/CodesysOneLove/MainPlaylist/062_SimulationAndCodesysControlWin.mp4

Mr_Camel
15.09.2026, 09:58
Не помогло. Запустил V3. При загрузке проекта ругался на OwenCloudTask/OwenStorage. Удалил, загрузка прошла без ошибок, но при пуске визуализации выдал ту же ошибку, что указывал ранее.

Евгений Кислов
15.09.2026, 10:33
Не помогло. Запустил V3. При загрузке проекта ругался на OwenCloudTask/OwenStorage. Удалил, загрузка прошла без ошибок, но при пуске визуализации выдал ту же ошибку, что указывал ранее.

Выложите, пожалуйста, видео с экрана - хочется увидеть, что происходит (начиная с этапа загрузки проекта в виртуальный контроллер).

Mr_Camel
15.09.2026, 10:56
Пожалуйста...это уже при подключении к реальному СПК

Евгений Кислов
15.09.2026, 15:56
Пожалуйста...это уже при подключении к реальному СПК

Попробуйте установить эту библиотеку и перезагрузить проект в контролер:
https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OwenStringUtils_v3.5.4.9_LREAL_fix.compiled-library

Mr_Camel
16.09.2026, 09:21
Попробуйте установить эту библиотеку и перезагрузить проект в контролер:
https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/02_Libraries/OwenStringUtils_v3.5.4.9_LREAL_fix.compiled-library

Евгений, добрейший день! Все получилось, загрузилось и тренды работают. Если не секрет, чтобы было не так?Я просто первый раз делаю проект на Codesys 3.5, мне для общего развития. Тут еще целый мешок функции осталось реализовать в проекте и все они практически есть в Ваших примерах, но вот получается не всегда все гладко. След реализация выгрузка данных с СПК)))90362

Mr_Camel
16.09.2026, 09:29
Да, кстати. Теперь появился не приятный момент. При добавление нового ФБ трендов, Codesys виснет на некоторое время. И затем выдает сообщение - 90364-что блок уже был объявлен, хотя такого не было. При чем он это делает при каждом новом блоке. Но правда если нажать продолжить, он потом не ругается

Евгений Кислов
16.09.2026, 09:29
Если не секрет, чтобы было не так? Я просто первый раз делаю проект на Codesys 3.5, мне для общего развития.

Библиотека OwenVisuTools использует библиотеку OwenStringUtils, в которой в свою очередь используется оператор LREAL_TO_STRING.

У этого оператора есть специфическая особенность - на интервале от -1.0 до 1.0 он возвращает значение в экспоненциальном формате.
Это достаточно неожиданное поведение, так как схожий оператор REAL_TO_STRING возвращает значение в "обычном" формате:

90363

Выложенная мной выше версия библиотеки OwenStringUtils содержит фикс, который предусматривает различие в работе операторов.
Собственно, это различие, о котором не было известно в процессе разработки библиотеки OwenVisuTools, и является причиной наблюдаемого вами исключения.

В будущем мы планируем выпустить обновленную версию OwenVisuTools, в которой эта ошибка изначально будет устранена.

Евгений Кислов
16.09.2026, 09:30
Да, кстати. Теперь появился не приятный момент. При добавление нового ФБ трендов, Codesys виснет на некоторое время. И затем выдает сообщение - 90364-что блок уже был объявлен, хотя такого не было. При чем он это делает при каждом новом блоке. Но правда если нажать продолжить, он потом не ругается

Это уже какая-то история на стороне среды разработки.
Попробуйте, например, перезапустить ее.

Mr_Camel
17.09.2026, 19:48
И снова добрейший вечер! Ну вот и добрался до архивации.Была установлена библиотека OwenArchiver 3.5.4.9, она ссылается на OwenStringUtils 3.5.4.7, но у меня уже стоит 3.5.4.9 Я понял, что для CODESYS V3.5 SP17 Patch 3 необходимо OwenArchiver 3.5.4.10, я так понял там как раз такая же версия OwenStringUtils. Я решил установить OwenArchiver 3.5.4.10, предварительно удалив 3.5.4.9, но при установке Codesys installer говорит, что
"The packages which should be installed are already installed in the target installation".Проверил папку C:\ProgramData\CODESYS\Managed Libraries там нет следа, не пойму что опять не так....:mad:Не хочется снова сносить весь Codesys

Евгений Кислов
17.09.2026, 20:08
Не хочется снова сносить весь Codesys

Этого точно делать не стоит.


Проверил папку C:\ProgramData\CODESYS\Managed Libraries

В которой размещаются установленные библиотеки...


при установке Codesys installer говорит, что "The packages which should be installed are already installed in the target installation".

...но пакеты - это другая сущность.

Проверьте в CODESYS Installer на вкладке Installed - может, там уже есть "Архиватор переменных ОВЕН"?

Mr_Camel
17.09.2026, 20:19
Вы как всегда правы Евгений....я извиняюсь, что уже замучал вопросами, но делаю первый раз...спотыкаюсь. Переустановил пакет, появилась нужная библиотека. ошибок нет, продолжаю изучение.Огромное спасибо!

Alex_Z
28.09.2026, 10:56
Посоветуйте Пид регулятор для закрытой системы отопления и ГВС. управление трех ходовым клапаном . Без авто настройки . Смотрю пока в сторону ФБ APID_POS_VALV . Можно ли его применить без авто настройки? Что то не могу сообразить :(

pivanych
06.10.2026, 07:06
Здравствуйте. Записал программу в ПЛК210. В конфигурации задач ,мониторинг,смотрю макс.время цикла 6700мс. Перезагружаю ПЛК,время изменилось на 37000мс. Во вкладки делаю стоп,старт время восстанавливается. Но после перезагрузки всё повторяется. Соответственно там все параметры меняются. Это нормально или что то не так?

kondor3000
06.10.2026, 08:12
Здравствуйте. Записал программу в ПЛК210. В конфигурации задач ,мониторинг,смотрю макс.время цикла 6700мс. Перезагружаю ПЛК,время изменилось на 37000мс. Во вкладки делаю стоп,старт время восстанавливается. Но после перезагрузки всё повторяется. Соответственно там все параметры меняются. Это нормально или что то не так?

Что то не так сделали, удалите лишние задачи и вызывайте всё блоки из основной PLC_PRG (задача 10-20 мс). Примеров на сайте полно.

pivanych
06.10.2026, 09:00
В MainTask одна задача приоритет 1 ,цикличное,интерва 10мс. Ещё OwenCloudTask приоритет 31,циклчное,интервал 50мс.но я не знаю к чему он . Всё больше в исполнении нет ни чего. Фото не могу скинуть, чёт размеры не подходят.

kondor3000
06.10.2026, 10:16
В MainTask одна задача приоритет 1 ,цикличное,интерва 10мс. Ещё OwenCloudTask приоритет 31,циклчное,интервал 50мс.но я не знаю к чему он . Всё больше в исполнении нет ни чего. Фото не могу скинуть, чёт размеры не подходят.

Фото не надо, делайте скрины с экрана в работе или лучше проект выложите.

pivanych
06.10.2026, 10:23
Фото не надо, делайте скрины с экрана в работе или лучше проект выложите.

Файлы прям в чат скинуть или в личку ,ну типо не засорять?А как файлы тут отправлять то?

melky
06.10.2026, 11:09
Расширенный режим при редактировании ответа включите, там можно добавить файлы.

pivanych
06.10.2026, 11:32
Просто папка с файлами не загружается. В зип сделал.

pivanych
06.10.2026, 11:55
Я правильно сделал или скринов всего проекта для понимания проблемы надо?

kondor3000
06.10.2026, 12:11
Я правильно сделал или скринов всего проекта для понимания проблемы надо?
Правильно.
Просто проект смогу, только после 17 посмотреть. По скринам тоже можно иногда определить, в чём проблема.

pivanych
06.10.2026, 13:29
Вот если это прояснит.

kondor3000
06.10.2026, 13:34
Вот если это прояснит.
Мастер нужен только один, в него добавить все модули. А не как у вас куча мастеров на каждый модуль, отсюда и тормоза.
Второй мастер можно добавить только по другому интерфейсу.

Чтобы меньше возится, копируйте модули и вставляйте в один мастер. Лишние мастера потом удалите.
После всего, полная очистка и компиляция.

Nikoly@
06.10.2026, 14:02
Здравствуйте. Codesys V3.5 SP1790598
Можно, ли сделать так, чтобы входные биты при потере связи сбрасывались в ноль, а не последнее значение перед потерей связи?

kondor3000
06.10.2026, 14:05
Здравствуйте. Codesys V3.5 SP1790597
Можно, ли сделать так, чтобы входные биты при потере связи сбрасывались в ноль, а не последнее значение перед потерей связи?

Скрин не отображается.
В настройках чтения, записи переменных, есть выбор, сохранять при отсутствии связи или обнулять.

Nikoly@
06.10.2026, 14:14
PLC в режиме мастера, скрин обновил.
Это делается в настройках каналов, верно?

Евгений Кислов
06.10.2026, 16:44
PLC в режиме мастера, скрин обновил.
Это делается в настройках каналов, верно?

Уточните, пожалуйста - какой протокол обмена вы используете?

pivanych
07.10.2026, 07:30
Мастер нужен только один, в него добавить все модули. А не как у вас куча мастеров на каждый модуль, отсюда и тормоза.
Второй мастер можно добавить только по другому интерфейсу.

Чтобы меньше возится, копируйте модули и вставляйте в один мастер. Лишние мастера потом удалите.
После всего, полная очистка и компиляция.

Здравствуйте. Вот результат по рекомендации.

kondor3000
07.10.2026, 09:46
Здравствуйте. Вот результат по рекомендации.

Среднее время цикла 4480 микросекунд или 4,48 миллисекунд при установленных 10 мс. Это нормально.

Nikoly@
07.10.2026, 19:16
Уточните, пожалуйста - какой протокол обмена вы используете?

Здравствуйте, разобрался. Сам выбрал не тот протокол (не Modbus) и хотел по аналогии
Канал Modbus=> Обработка ошибок=> Установить в ноль.

Party3AH
08.10.2026, 10:02
Добрый день!

На СПК210 не удаётся настроить Modbus TCP Slave, в журнале имеются такие ошибки.
Ошибка "setting ip address and subnet mask returned with error code 39" похоже указывает на то, что в программе где-то должен меняться IP ПЛК.
Пытаюсь запустить чужой проект, но в коде не вижу изменения IP, нет функций вроде UpdateConfiguredIPSettings.
Может ли чем-то ещё вызываться ошибка?

90626

Евгений Кислов
08.10.2026, 12:16
Добрый день!

На СПК210 не удаётся настроить Modbus TCP Slave, в журнале имеются такие ошибки.
Ошибка "setting ip address and subnet mask returned with error code 39" похоже указывает на то, что в программе где-то должен меняться IP ПЛК.
Пытаюсь запустить чужой проект, но в коде не вижу изменения IP, нет функций вроде UpdateConfiguredIPSettings.
Может ли чем-то ещё вызываться ошибка?

90626

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