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

Евгений Кислов
06.04.2023, 10:06
Добрый день. Могут ли ваши контроллеры быть OPC UA клиентами? Поддерживается ли библиотека CmpOPCUAClient, если да, то может быть у вас есть пример ее использования?

Добрый день. Нет, наши контроллеры не поддерживают работу по OPC UA в режиме клиента.

Дмитрий Хороменков
06.04.2023, 12:24
Добрый день. Решил удалить 14 версию и поставить 17. 14 удалилась, а 17 не поставилась, точнее как то криво, решил удалить и теперь 17 не удаляется.67053 и так уже целый день. Вопрос , а программы записанные в 14, как будут работать в 17? Но для начала помогите удалить и установить.

Евгений Кислов
06.04.2023, 12:26
Добрый день. Решил удалить 14 версию и поставить 17. 14 удалилась, а 17 не поставилась, точнее как то криво, решил удалить и теперь 17 не удаляется.67053 и так уже целый день. Вопрос , а программы записанные в 14, как будут работать в 17? Но для начала помогите удалить и установить.

Добрый день.
С удалением сложно вам как-то помочь.
Попробуйта подождать - может, этой процедуре в вашем случае требуется длительное время.


а программы записанные в 14, как будут работать в 17?

Если вы планируете загружать их в ПЛК с рантаймом 3.5.14.30 - то могут возникнуть проблемы.
Желательно использовать для работы с такими ПЛК именно V3.5 SP14 Patch 3.

Дмитрий Хороменков
06.04.2023, 12:30
Добрый день.
С удалением сложно вам как-то помочь.
Попробуйта подождать - может, этой процедуре в вашем случае требуется длительное время.



Если вы планируете загружать их в ПЛК с рантаймом 3.5.14.30 - то могут возникнуть проблемы.
Желательно использовать для работы с такими ПЛК именно V3.5 SP14 Patch 3.

НЕт я не планирую их сейчас загружать, это все тренировка. Поэтому то у решил установить более новую версию и навести там порядок. А теперь она и сама не удаляется и другим не дает установиться и удалится

Дмитрий Хороменков
06.04.2023, 12:31
14 прямо быстро удалилась.

tPorte
06.04.2023, 17:02
Евгений, здравствуйте! Подскажите пожалуйста. Открываю Codesys 3.5 SP17 Patch3 и не могу открыть его на языке реализации CFC. Мне выдает только ST. Пробовал открывать как стандартный проект, итог выдает только ST (другие не выбрать!)! Пробовал выбрать проект под СПК 1XX и выдает ошибку67068 Пакет таргет установил 3.5.17.31 установил.

Евгений Кислов
06.04.2023, 17:15
Евгений, здравствуйте! Подскажите пожалуйста. Открываю Codesys 3.5 SP17 Patch3 и не могу открыть его на языке реализации CFC. Мне выдает только ST. Пробовал открывать как стандартный проект, итог выдает только ST (другие не выбрать!)! Пробовал выбрать проект под СПК 1XX и выдает ошибку67068 Пакет таргет установил 3.5.17.31 установил.

Добрый день. У вас CODESYS установился без плагинов.
Удалите и установите заново в точности по инструкции:
https://youtu.be/3KcJWZEVXCg

edvard_munch
06.04.2023, 19:50
Добрый вечер! Подскажите, как сымитировать один клик мышью с помощью значения переменной? Значение переменной передается по Modbus co slave устройства. Плюс по нажатию кнопки должен запускаться ST-скрипт.
Есть у кнопки настройка Button state variable - по ней можно менять состояние кнопки, при единичке кнопка всегда отжата. Но собственно нажатие мышью в данном случае вроде как не имитируется. Плюс смотрел настройки Tap и Toggle. Но это все не то.
Сравниваю с TraceMode где это делается простой привязкой переменной к кнопке и по ее изменению - кнопка отжимается один раз, хотя она отжимается как при 1, так и при 0.

Возможно ли сделать такое в CodeSys?

67082

Евгений Кислов
06.04.2023, 19:56
Добрый день.
Не очень понятно - зачем именно имитировать клик на элемент визуализации?
Может, проще обработать изменение значения Modbus-переменной в коде программы и там выполнить нужные действия?

edvard_munch
07.04.2023, 13:07
Добрый день.
Не очень понятно - зачем именно имитировать клик на элемент визуализации?
Может, проще обработать изменение значения Modbus-переменной в коде программы и там выполнить нужные действия?
Спасибо. Второй вариант тоже уже вчера начал пробовать.
Дело в том что в проекте будет мнемосхема с кнопками на экране. Но напрямую их нажать нельзя будет. Они будут продублированы физическими кнопками на устройстве. И возможно понадобиться чтобы при нажатии на эту кнопку был виден клик кнопки на мнемосхеме.
Но, насколько я понимаю, просто и быстро такой вариант не реализуем?

Евгений Кислов
07.04.2023, 13:09
Спасибо. Второй вариант тоже уже вчера начал пробовать.
Дело в том что в проекте будет мнемосхема с кнопками на экране. Но напрямую их нажать нельзя будет. Они будут продублированы физическими кнопками на устройстве. И возможно понадобиться чтобы при нажатии на эту кнопку был виден клик кнопки на мнемосхеме.
Но, насколько я понимаю, просто и быстро такой вариант не реализуем?

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

Дмитрий Хороменков
07.04.2023, 13:32
Перенастроил 14ую версию, но не стал работать значок ПЛК в системном трее, для визализации , а потом вообще я его случайно удалил. Где теперь его искать , как востановить?

Евгений Кислов
07.04.2023, 13:33
Перенастроил 14ую версию, но не стал работать значок ПЛК в системном трее, для визализации , а потом вообще я его случайно удалил. Где теперь его искать , как востановить?

Добрый день.
Что именно вы называете "значком ПЛК в системном трее, для визализации"?

Дмитрий Хороменков
07.04.2023, 13:50
Добрый день.
Что именно вы называете "значком ПЛК в системном трее, для визализации"?

Вот этот который включается и отключается. 67091 Пропал не могу найти.

kondor3000
07.04.2023, 13:58
Вот этот который включается и отключается. 67091 Пропал не могу найти.

Если вы про ярлык виртуального ПЛК Codesys Control WIN 3, то найдите его в программах, там, где установлена ваша 14 версия и создайте новый ярлык.

Карбофос
07.04.2023, 16:01
Добрый день!

Обнаружилась такая неприятность: имеется проект в Codesis 3.5.17.3, в нем библиотека OwenPidRegs 3.5.14.33. Из нее используется ФБ STD_PID.
При запуске контроллера бывает такая неприятность: уставка и измеренное значение сильно расходятся, но регулятор не реагирует (или в нуле, или просто неадекватные значения), но если вход "Y_MAN_SET" перевести в TRUE, а потом в FALSE, то регулятор начинает работать полностью корректно.
Пробовал нагородить костыль, который при старте ПЛК производит эту манипуляцию автоматически, почему-то не помогает...

Дмитрий Хороменков
07.04.2023, 16:14
6710267103 Виртуальный контроллер установил. Но не работает. Устанавливаю 3.5.14.30 но такое ощущение , что слетает на 3.5.17.30 . В программе ошибок нет , то есть там остается 14 версия, а вот в контроллере слетает.Как выкинуть 17ые версии? Два раза таргеты на 14 переустанавливал.

Дмитрий Хороменков
07.04.2023, 16:16
67105 вот на верху поставил 14ую , а внизу слетела на 17ую, хотя когда ставлю 17ую все остается как установлено.

kondor3000
07.04.2023, 16:22
67105 вот на верху поставил 14ую , а внизу слетела на 17ую, хотя когда ставлю 17ую все остается как установлено.

14 и 17 могут стоять обе, у меня 5,11,14,16 и 17 стоят. Просто в разных папках и 5 разных ярлыков.
Вам надо вызвать 14 (или 11) вирт. контроллер и в программе поставить 14.30 (11.30), тогда будет работать. Если они разные будет ошибка.
Программу Codesys 3.5 тоже надо вызывать из ярлыка, иначе может быть включаете проект на 14, а вызывается по умолчанию 17, смотрите в справке какая версия открыта.
И проект уже открываете из программы.

Дмитрий Хороменков
07.04.2023, 17:17
14 и 17 могут стоять обе, у меня 5,11,14,16 и 17 стоят. Просто в разных папках и 5 разных ярлыков.
Вам надо вызвать 14 (или 11) вирт. контроллер и в программе поставить 14.30 (11.30), тогда будет работать. Если они разные будет ошибка.
Программу Codesys 3.5 тоже надо вызывать из ярлыка, иначе может быть включаете проект на 14, а вызывается по умолчанию 17, смотрите в справке какая версия открыта.
И проект уже открываете из программы.

Я когда устанавливаю новый проект то он уже выдает его с ошибкой, приходится менять 17 на 14. Ставлю через ярлык. Проблемы начались после того как начал устанавливать 17, она не установилась. Удалил и вернулся к 14.

kondor3000
07.04.2023, 17:21
Я когда устанавливаю новый проект то он уже выдает его с ошибкой, приходится менять 17 на 14. Ставлю через ярлык. Проблемы начались после того как начал устанавливать 17, она не установилась. Удалил и вернулся к 14.

Возможно удалили 17 не полностью, перезагрузите комп и проверьте.

edvard_munch
07.04.2023, 17:53
Пока тестирую modbus в проекте без реального оборудования. Использую виртуальный контроллер CODESYS Control Win V3. И имитатор modbus slave устройства. Читать значения регистров с имитатора slave получается успешно, а вот записывать - никак. Более того, при наличии канала с функцией Write Coils или Write Single Coil по тому же адресу, на котором уже есть канал с чтением Coil, в имитаторе slave устройства невозможно поменять значение регистра по этому адресу. Оно как бы блокируется. Проверил команды записи в имитатор modbus slave c помощью другого имитатора (мастера) - Modbus Poll - команды записи Coil работают.

Шина modbus все время отображается как запущенная при использовании имитатора на скрине. При использовании программы имитатора "Modbus Slave" - шина периодически на отваливалась на очень короткое время. Очевидно, при неудачной попытке записи. Чтение все также работает.

Я что-то не так настроил в CodeSys? См. скрины. Спасибо.

67109

67110

Евгений Кислов
08.04.2023, 08:10
Настройки выглядят корректно.


Более того, при наличии канала с функцией Write Coils или Write Single Coil по тому же адресу, на котором уже есть канал с чтением Coil, в имитаторе slave устройства невозможно поменять значение регистра по этому адресу. Оно как бы блокируется.

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


Проверил команды записи в имитатор modbus slave c помощью другого имитатора (мастера) - Modbus Poll - команды записи Coil работают.

Вероятно, Modbus Poll однократно производит запись при изменении значения.


При использовании программы имитатора "Modbus Slave" - шина периодически на отваливалась на очень короткое время. Очевидно, при неудачной попытке записи. Чтение все также работает.

Хотелось бы на это по AeroAdmin посмотреть. Пришлите мне на почту (в подписи) ваш контактный телефон и время, в которое с вами можно будет в понедельник связаться.

p-nik
10.04.2023, 15:47
Добрый день.
ПЛК 210, реализовал ModBus RTU Slave через конфигуратор как устройство. С переменными формата Real работаю через структуру Union. Подскажите, как сделать что бы переменные Real сохранялись, т.е. были в области Retain?
Переменные - уставки, используются на чтение и запись в программе

Евгений Кислов
10.04.2023, 15:59
Добрый день.
ПЛК 210, реализовал ModBus RTU Slave через конфигуратор как устройство. С переменными формата Real работаю через структуру Union. Подскажите, как сделать что бы переменные Real сохранялись, т.е. были в области Retain?
Переменные - уставки, используются на чтение и запись в программе

Добрый день.
Сделать Slave с RETAIN через конфигуратор будет довольно затруднительно.
Лучше используйте блок MB_SerialSlave из библиотеки OwenCommunication - с ним все будет существенно проще.

edvard_munch
10.04.2023, 17:24
Судя по описанию - вы в CODESYS установили циклический режим записи. Тогда действительно поменять значение бита в имитаторе не получится (точнее, оно будет сразу перезаписано).

Пробую настроить запись в режиме "триггер по переднему фронту переменной". Пока тоже что-то не работает. Я правильно понял что при корректной работе, при выставлении триггерной переменной в TRUE должна происходить однократная запись? Но дело в том, что у меня в CodeSys даже значение этой триггерной переменной в поле "Текущее значение" не меняется на то что я устанавливаю в поле "Подготовленное значение". Должно ведь. См. скрин.

67159

67160



Хотелось бы на это по AeroAdmin посмотреть. Пришлите мне на почту (в подписи) ваш контактный телефон и время, в которое с вами можно будет в понедельник связаться.
Мне сегодня не удалось такой эффект почему-то воспроизвести. Если получится - я как минимум видео с экрана вам запишу.

Эдуард_Н
11.04.2023, 05:54
Здравствуйте, подскажите чего он хочет ? 67164

Евгений Кислов
11.04.2023, 06:47
Но дело в том, что у меня в CodeSys даже значение этой триггерной переменной в поле "Текущее значение" не меняется на то что я устанавливаю в поле "Подготовленное значение". Должно ведь. См. скрин.
Чтобы "Подготовленное значение" записалось в "Текущее" - нужно выполнить команду Отладка - Записать значения (или нажать Ctrl+F7).

Евгений Кислов
11.04.2023, 06:48
Здравствуйте, подскажите чего он хочет ? 67164

Добрый день.
Он хочет, чтобы вы исправили ошибки в проекте, приведшие к сегментации памяти (access violation).

Эдуард_Н
11.04.2023, 07:16
Добрый день.
Он хочет, чтобы вы исправили ошибки в проекте, приведшие к сегментации памяти (access violation).

И как это исправить?

Евгений Кислов
11.04.2023, 07:20
И как это исправить?

Зависит от конкретной ошибки.
Судя по тому, что исключение возникает в библиотеке Modbus - то я бы вам рекомендовал для начала оценить, что вы недавно делали с компонентами Modbus (например, шаблонами Mx110) в дереве проекта.
Добавляли новые, изменяли версии существующих и т.д.

Эдуард_Н
11.04.2023, 07:30
Зависит от конкретной ошибки.
Судя по тому, что исключение возникает в библиотеке Modbus - то я бы вам рекомендовал для начала оценить, что вы недавно делали с компонентами Modbus (например, шаблонами Mx110) в дереве проекта.
Добавляли новые, изменяли версии существующих и т.д.

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

Так и получилось.

Serg52
11.04.2023, 16:47
Добрый день!
Работа со временем. Требуется Вывести для дальнейшей обработки время с TON.ET в промежутке t2 - t3
ПЛК200
/67214

Serg52
12.04.2023, 11:06
Добрый день!
Работа со временем. Требуется Вывести для дальнейшей обработки время с TON.ET в промежутке t2 - t3
ПЛК200
/67214

Где-то встречал, что из таймеров CodeSys вообще невозможно вывести интервалы времени. Это правда?

1exan
12.04.2023, 11:58
Где-то встречал, что из таймеров CodeSys вообще невозможно вывести интервалы времени. Это правда?

Ну на вашей же картинке на 3 графике нарисовано состояние выхода ET (Elapsed Time, отсчитанное время) - берите его
Вы наверное путаете CodeSys с OwenLogic - вот там такого нет

Serg52
12.04.2023, 12:21
Ну на вашей же картинке на 3 графике нарисовано состояние выхода ET (Elapsed Time, отсчитанное время) - берите его
Вы наверное путаете CodeSys с OwenLogic - вот там такого нет

Возможно путаю.
Я как раз и прошу подсказать, как это самое " берите его " сделать. Идёт нарастание от 0, скажем , до 7 мс. Как выделить это значение - 7мс.
И второй вопрос, функция пересчёта времени в скорость не видит эти значения. Может слишком быстро? А как быть тогда?

1exan
12.04.2023, 13:04
Возможно путаю.
Я как раз и прошу подсказать, как это самое " берите его " сделать. Идёт нарастание от 0, скажем , до 7 мс. Как выделить это значение - 7мс.
И второй вопрос, функция пересчёта времени в скорость не видит эти значения. Может слишком быстро? А как быть тогда?

Что значит выделить? Зафиксировать, сколько прошло времени в момент пропадания сигнала на входе?

Serg52
12.04.2023, 13:07
Что значит выделить? Зафиксировать, сколько прошло времени в момент пропадания сигнала на входе?

Выделить, значит получить конкретное число "7", а не меняющуюся последовательность 0 ... 7. Как его программно получить?
Процесс непрерывный, быстрый и цифры постоянно меняются. Если я присваиваю значение переменной TDelta:=TON_1.ET , то она она тоже получает последовательностьЮ а не число.

kondor3000
12.04.2023, 13:43
Выделить, значит получить конкретное число "7", а не меняющуюся последовательность 0 ... 7. Как его программно получить?
Процесс непрерывный, быстрый и цифры постоянно меняются. Если я присваиваю значение переменной TDelta:=TON_1.ET , то она она тоже получает последовательностьЮ а не число.

Писал же вам уже, после получения сигнала со 2 датчика, по R_trig присваиваете однократно время.
У вас же оно постоянно присваивается, каждый цикл.

sco-scorpion
12.04.2023, 13:55
Добрый день. Подскажите в чем может быть проблема, библиотека присутствует, при игнорировании проект не запускается.

Serg52
12.04.2023, 13:59
Писал же вам уже, после получения сигнала со 2 датчика, по R_trig присваиваете однократно время.
У вас же оно постоянно присваивается, каждый цикл.

Может быть Вам покажется смешным, но я в свои 70, знакомясь с хитростями программирования в среде CodeSys, не в полной мере осознаю понятие "цикл". Цикл контроллера, цикл PLC_PRG,...
Предполагается, что я, присвоив значение начала отсчёта по R_TRIG (в TIME1()?), затем вычту из полученного от TON_1.ET TIME2() значение TIME1() ? А TIME2() я должен запустить по TON_1.Q:=FALSE; ??
А в общем, спасибо за участие и терпение!

Евгений Кислов
12.04.2023, 14:03
Добрый день. Подскажите в чем может быть проблема, библиотека присутствует, при игнорировании проект не запускается.

Добрый день.
У вас возникает ошибка сегментации памяти (access violation).
Выложите проект - посмотрим, в чем у вас дело.

kondor3000
12.04.2023, 14:09
Может быть Вам покажется смешным, но я в свои 70, знакомясь с хитростями программирования в среде CodeSys, не в полной мере осознаю понятие "цикл". Цикл контроллера, цикл PLC_PRG,...
Предполагается, что я, присвоив значение начала отсчёта по R_TRIG (в TIME1()?), затем вычту из полученного от TON_1.ET TIME2() значение TIME1() ? А TIME2() я должен запустить по TON_1.Q:=FALSE; ??
А в общем, спасибо за участие и терпение!

Например так, по первому датчику запускаете таймер, по второму запускаете триггер R_TRIG и фиксируете время.
Например, где Q1 выход триггера, а x1 булевая переменная

IF Q1 AND NOT x1 THEN
// Присвоить время в переменную
x1:=TRUE;
END_IF


И пока вы не сбросите х1, сколько триггер не щёлкнет, переменная не изменится.

Цикл ПЛК, это чтение входов, выполнение всей программы, сначала до конца, присвоение переменных на выходы, и всё по новой.

sco-scorpion
12.04.2023, 17:19
Добрый день.
У вас возникает ошибка сегментации памяти (access violation).
Выложите проект - посмотрим, в чем у вас дело.

Ссылка (https://disk.yandex.ru/d/DqPw4PElpdwC6Q) на проект, странно, неделю назад этот проект нормально открывал.

Евгений Кислов
12.04.2023, 17:34
Ссылка (https://disk.yandex.ru/d/DqPw4PElpdwC6Q) на проект, странно, неделю назад этот проект нормально открывал.

У меня ваш проект запустился без проблем.
Попробуйте перезапустить виртуальный контроллер и заново загрузить проект.
Если не поможет - обеспечьте завтра утром удаленное подключение по AeroAdmin (телефон и данные для подключения пришлите на почту из подписи).

sco-scorpion
12.04.2023, 18:54
У меня ваш проект запустился без проблем.
Попробуйте перезапустить виртуальный контроллер и заново загрузить проект.
Если не поможет - обеспечьте завтра утром удаленное подключение по AeroAdmin (телефон и данные для подключения пришлите на почту из подписи).

Спасибо, на рабочем ПК нормально запустился, на домашнем буду разбираться в чем дело.

Эдуард_Н
13.04.2023, 06:08
Что означают восклицательные знаки?67248

Евгений Кислов
13.04.2023, 06:40
Что означают восклицательные знаки?67248

В Ethernet - что в компоненте был выбран интерфейс, настройки которого впоследствии изменились (например, через конфигуратор).
В MU110 - что был единичная ошибка обмена (например, отсутствие ответа от модуля), которая потом прошла (т.е. далее начали поступать корректные ответы)

pro100user
13.04.2023, 16:23
Добрый день.
Вопрос по HTTP Client Library. Version:1.0.1.2.,FB HTTPClient.
Как из этого клиента отправить JSON с кириллицей, например такой:
{"streams": [{ "stream": { "foo": "bar2" }, "values": [ [ "1681388182000000000", "Нажали на кнопку Btn1" ]]}]}

Из Postman отправляется без проблем, а с этого функцционального блока можно отправить сообщения только в латиннице, а с кириллицей ничего не получается.
Может у кого есть пример отправки кириллицы в JSON(!!!) сообщении?

Евгений Кислов
13.04.2023, 18:27
Добрый день.
Вопрос по HTTP Client Library. Version:1.0.1.2.,FB HTTPClient.
Как из этого клиента отправить JSON с кириллицей, например такой:
{"streams": [{ "stream": { "foo": "bar2" }, "values": [ [ "1681388182000000000", "Нажали на кнопку Btn1" ]]}]}

Из Postman отправляется без проблем, а с этого функцционального блока можно отправить сообщения только в латиннице, а с кириллицей ничего не получается.
Может у кого есть пример отправки кириллицы в JSON(!!!) сообщении?

Добрый день.
Какая кодировка используется в Postman?
Если UTF8 - то работайте с сообщением как с массивом байт и используйте функцию ConvertUTF16toUTF8 из библиотеки StringUtils для конверсии вашего сообщения в эту кодировку.

Дмитрий Хороменков
13.04.2023, 19:03
67291 Добрый вечер. Скажите пожалуйста, а смысл включения EN в блоках? Допустим LIMITALARM при выключении EN все равно на выходе дает результат TRUE.

Дмитрий Хороменков
13.04.2023, 19:07
В блоке Klapan используется LIMITALARM. Конечно можно насильно разорвать, но тогда смысл EN? Извините я только учусь. Может спрашиваю какие глупости?

Евгений Кислов
13.04.2023, 19:10
67291 Добрый вечер. Скажите пожалуйста, а смысл включения EN в блоках? Допустим LIMITALARM при выключении EN все равно на выходе дает результат TRUE.

Добрый день.
Если EN = FALSE - то тело блока не выполняется.
По второму вопросу - см. здесь:
https://owen.ru/forum/showthread.php?t=20069&p=363931&viewfull=1#post363931

Newcomer
14.04.2023, 12:38
Добрый день

Для программирования СПК207 надо использовать CODESYS_3.5_SP5_Patch5 ?

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

Для программирования СПК207 надо использовать CODESYS_3.5_SP5_Patch5 ?

Добрый день.
Да, это настоятельно рекомендуемая версия для этого контроллера.

Newcomer
14.04.2023, 12:47
Добрый день.
Да, это настоятельно рекомендуемая версия для этого контроллера.

Для Спк207-220.03.00.CS CODESYS_3.5_SP5_Patch5 подойдет ?

Евгений Кислов
14.04.2023, 12:49
Для Спк207-220.03.00.CS CODESYS_3.5_SP5_Patch5 подойдет ?

Да, подойдет.

Newcomer
14.04.2023, 13:10
Да, подойдет.

А шаблон для СИ30 есть ?

Евгений Кислов
14.04.2023, 13:10
А шаблон для СИ30 есть ?

Нет, для старых приборов никаких новых разработок не велось.

Дмитрий Хороменков
14.04.2023, 13:52
Добрый день.6731267313 Скажите пожалуйста, если ставлю в блок TP_0 на IN TRUE, то ничего не работает. Работает только реальной переменной.

Дмитрий Хороменков
14.04.2023, 13:55
67314 Хотя вот здесь на TOF все работает

kondor3000
14.04.2023, 14:11
67314 Хотя вот здесь на TOF все работает

Для корректной работы таймеров их надо вызвать вне конструкции IF.... THEN, например TP_0(); TOF1();
Во втором случае работает, так как есть ESLE, то есть таймер при любом раскладе досчитает до конца или сбросится. Но если например будет ситуация, где не выполнятся оба условия, будет ошибка, что может повлечь за собой зависание ПЛК.

Дмитрий Хороменков
14.04.2023, 16:16
67318 Извините что то я не понимаю, вроде я поставил условие, но TP все равно продолжает работать. Менял и на переменную все равно на IN горит TRUE даже если переменная FALSE.

Дмитрий Хороменков
14.04.2023, 16:38
67319 Может где то путаюсь. Но добавил еще переменную b, вроде а-переменная стала в фальш, соответственно и b должна стать в фальш но этого не происходит.

kondor3000
14.04.2023, 16:58
67319 Может где то путаюсь. Но добавил еще переменную b, вроде а-переменная стала в фальш, соответственно и b должна стать в фальш но этого не происходит.

Лучше скопируйте и выложите фрагмент кода.

TP_0(); так и не вынесли за IF

b вам зачем? а стал False ниже, в следующем IF.

Дмитрий Хороменков
14.04.2023, 17:02
Проще говоря мне нужно остановить его , либо когда он сам досчитает до установленной точки, с этим нормально, либо вырубить его совсем при другом условии. Это возможно? В СТ на сколько я понимаю нет отключающего входа всего блока. А с IN что то не выходит. Где то путаюсь. Спасайте.

Дмитрий Хороменков
14.04.2023, 17:03
Лучше скопируйте и выложите фрагмент кода.

TP_0(); так и не вынесли за IF

b вам зачем? а стал False ниже, в следующем IF.

Это я уже эксперементирую.

Дмитрий Хороменков
14.04.2023, 17:10
Лучше скопируйте и выложите фрагмент кода.

TP_0(); так и не вынесли за IF

b вам зачем? а стал False ниже, в следующем IF.

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

Андрей Косоротов
14.04.2023, 17:12
Проще говоря мне нужно остановить его , либо когда он сам досчитает до установленной точки, с этим нормально, либо вырубить его совсем при другом условии. Это возможно? В СТ на сколько я понимаю нет отключающего входа всего блока. А с IN что то не выходит. Где то путаюсь. Спасайте.

Таймер TP работает по переднему фронту на входе IN. При его приходе он на время PT активирует выход Q. Входа сброса в любой момент в той реализации которую вы используете нет. Возможно поможет сброс PT := 0.

kondor3000
14.04.2023, 17:15
Выносил работает, оно и так работает. Но сам блок не отключается по другому условию и продолжает считать. Вобщем дается время на понижение температуры. Если установленное время прошло, то все нормально. А если в это время установочная температура встречается с реальной, то компрессор который на выходе таймера должен остановиться не взирая на прошедшее время. Я пытаюсь остановить блок.

Вам уже сказали как остановить, надо не только отключить входную переменную, но и в PT записать T#0ms

Вынесли тоже не правильно, надо не всё выносить, а только TP_0();

Дмитрий Хороменков
14.04.2023, 17:16
Лучше скопируйте и выложите фрагмент кода.

TP_0(); так и не вынесли за IF

b вам зачем? а стал False ниже, в следующем IF.

67320 здесь у меня уже путаница. Проще говоря a должна в нужный момент запретить b а b в свою очередь остановить TP

Дмитрий Хороменков
14.04.2023, 17:28
Всем огромное спасибо , начинаю доходить.

kondor3000
14.04.2023, 18:13
Всем огромное спасибо , начинаю доходить.

Вот простой пример

TP_0(IN:=a1, Q=>Q1 , ET=>ET1 );
IF Temp1 < UST AND a1 THEN
a1:=TRUE; TP_0.PT:=PT1;
ELSE
a1:=FALSE; TP_0.PT:=T#0MS;
END_IF

Дмитрий Хороменков
15.04.2023, 12:46
Добрый день. 6732867329 Пожалуйста подскажите , как отключать выходные сигналы при отключении кнопки Старт , непосредственно внутри ST, блок согласен перестает работать, на work все равно TRUE. Внутри блока задействован блок LIMITALARM

kondor3000
15.04.2023, 12:55
Добрый день. Пожалуйста подскажите , как отключать выходные сигналы при отключении кнопки Старт , непосредственно внутри ST, блок согласен перестает работать, на work все равно TRUE. Внутри блока задействован блок LIMITALARM

В конце блока вставьте


IF NOT Start THEN
Work:=FALSE;
Compress:=FALSE;
END_IF

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

krollcbas
15.04.2023, 12:56
Добрый день. 6732867329 Пожалуйста подскажите , как отключать выходные сигналы при отключении кнопки Старт , непосредственно внутри ST, блок согласен перестает работать, на work все равно TRUE. Внутри блока задействован блок LIMITALARM

Завести две переменные. Внутренние для логики и внешние для привязки к входам
Сделать привязку одних к другим по условию

Дмитрий Хороменков
15.04.2023, 13:02
В конце блока вставьте


IF NOT Start THEN
Work:=FALSE;
Compress:=FALSE;
END_IF

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

За таймеры спасибо. И за эти подсказки тоже огромное спасибо.

Newcomer
15.04.2023, 16:21
Добрый день

Почему 3 библиотеки помечены желтым цветом и как их подключить к проекту ?

Евгений Кислов
15.04.2023, 17:09
Добрый день

Почему 3 библиотеки помечены желтым цветом и как их подключить к проекту ?

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

Newcomer
15.04.2023, 17:58
Добрый день.
Выложите, пожалуйста, скриншот, на котором будут видны эти библиотеки.

______________________

Евгений Кислов
15.04.2023, 18:00
Желтый цвет означает, что библиотеки не подписаны сертификатом - это нормально.
Проблемы у вас только с Mx110 Drivers.

Выложите архив проекта - посмотрим, в чем именно она заключается.

kondor3000
15.04.2023, 18:30
Как это понимать ?

Упакуйте архив в Win.RAR и выкладывайте

Newcomer
15.04.2023, 18:40
Упакуйте архив в Win.RAR и выкладывайте

______________

Евгений Кислов
15.04.2023, 18:52
Посмотрел проект.
Предполагаю, что у вас нужная версия пакета шаблонов не установлена.
Установите ее через CODESYS Installer.

Newcomer
15.04.2023, 18:57
Посмотрел проект.
Предполагаю, что у вас нужная версия пакета шаблонов не установлена.
Установите ее через CODESYS Installer.

Mx110Drivers_v3.5.11.10 - это ?

Newcomer
15.04.2023, 18:59
А с Mx110Drivers_v3.5.11.9 что делать, удалить ?

Евгений Кислов
15.04.2023, 19:02
Судя по вашему скриншоту - вам как раз Mx110Drivers_v3.5.11.9 нужна.

Newcomer
15.04.2023, 19:08
Судя по вашему скриншоту - вам как раз Mx110Drivers_v3.5.11.9 нужна.

Так Mx110Drivers_v3.5.11.9 уже стоит. Зачем ее снова устанавливать ?

Евгений Кислов
15.04.2023, 19:26
Так Mx110Drivers_v3.5.11.9 уже стоит. Зачем ее снова устанавливать ?

Почему вы решили, что она у вас уже установлена?

Newcomer
15.04.2023, 19:33
Почему вы решили, что она у вас уже установлена?

Она на скриншоте есть.

Евгений Кислов
15.04.2023, 19:37
Она на скриншоте есть ?

При этом ее название подчеркнуто синей волнистой линией, а в столбце Версия - пустая строка.
Что наводит на мысли о том, что в репозитории библиотек у вас такой библиотеки нет.

Newcomer
15.04.2023, 19:42
При этом ее название подчеркнуто синей волнистой линией, а в столбце Версия - пустая строка.
Что наводит на мысли о том, что в репозитории библиотек у вас такой библиотеки нет.

Из менеджера библиотек эту строку надо удалить, а затем снова установить пакет шаблонов ?

Евгений Кислов
15.04.2023, 19:44
Из менеджера библиотек эту строку надо удалить, а затем снова установить пакет шаблонов ?

Можно не удалять - после установки она должна автоматически "подцепиться".

Newcomer
15.04.2023, 20:37
Где взять Mx110Drivers_v3.5.11.9 ? На сайте ее нет.

Евгений Кислов
15.04.2023, 20:40
Где взять Mx110Drivers_v3.5.11.9 ? На сайте ее нет.

https://ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/01_Components/Mx110Drivers_v3.5.11.9.package

Newcomer
15.04.2023, 20:53
Евгений, все заработало. Спасибо.

Tacio
16.04.2023, 09:56
Вопросы по настройке modbus slave ус-ва. А конкретнее про вкладку "Modbus Slave Init".
1. Запись указанных там значений в slave будет происходить только при старте мастера?
2. Что произойдёт, если в процессе работы пропадёт связь со slave устройством и снова появится? Например, на "горячую" заменили модуль МВ210-101. Значения из этой вкладки снова запишутся в устройство? Если да, то тогда каков критерий потери связи?
3. Те же вопросы, только уже для Modbus RTU.

Newcomer
16.04.2023, 10:30
Что такое TargetVar ?

Newcomer
16.04.2023, 11:19
Можно ли таким образом сделать привязку переменных к шаблону модуля ввода что бы не колупаться с таблицей соотнесения входов этого модуля.

И еще, СПК читает дискретные входа модуля ввода побитно или сразу маску входов ?

Newcomer
16.04.2023, 13:02
Что это синим помеченное ?

Newcomer
16.04.2023, 13:31
Переменная Х1 объявлена как глобальная, но в PLC_PRG она не видна. В чем дело ?

kondor3000
16.04.2023, 13:59
Можно ли таким образом сделать привязку переменных к шаблону модуля ввода что бы не колупаться с таблицей соотнесения входов этого модуля.

И еще, СПК читает дискретные входа модуля ввода побитно или сразу маску входов ?
Будете использовать прямые адреса типа %AT QB, получите проблемы. А писанины больше в 3 раза. Не хотите заполнять конфигурацию, переходите на обмен через биб-ки, только легче вам не станет.


Что это синим помеченное ?
Уже получили проблемы https://owen.ru/forum/showthread.php?t=28167&page=6#52


Переменная Х1 объявлена как глобальная, но в PLC_PRG она не видна. В чем дело ?
В PLC_PRG переменные не глобальные. Но если глобальная будет в коде любого блока, она будет работать.

Newcomer
16.04.2023, 14:48
В PLC_PRG переменные не глобальные. Но если глобальная будет в коде любого блока, она будет работать.

Чем PLC_PRG хуже любого другого блока ?

Создал POU - программу. В ней глобальная переменная то же не видна.

kondor3000
16.04.2023, 14:52
Чем PLC_PRG хуже любого другого блока ?
Верхнюю строку в глобальных, удалите с атрибутом. ({attribute 'qualified_only'} )
Вы просто компиляцию не сделали, она будет видна и будет работать. Либо опять у вас проблемы с переменными. Либо программа не вызвана.

Newcomer
16.04.2023, 15:01
Вы просто компиляцию не сделали, она будет видна и будет работать. Либо опять у вас проблемы с переменными. Либо программа не вызвана.

Компиляция тут не при чем, после нее ошибка не исчезает.

Про не вызов программы - это заявление вообще курам на смех.

Компилятор четко пишет, что идентификатор Х1 не найден. Но Х1 объявлена как глобальная переменная.

kondor3000
16.04.2023, 15:06
Компилятор четко пишет, что идентификатор Х1 не найден. Но Х1 объявлена как глобальная переменная.

Верхнюю строку в глобальных, удалите с атрибутом или закомментируйте // {attribute 'qualified_only'}

Newcomer
16.04.2023, 15:14
Верхнюю строку в глобальных, удалите с атрибутом или закомментируйте // {attribute 'qualified_only'}

На верхнюю невзрачную строку я не обратил внимание. Закоментировал ее и все заработало. Спасибо.

Newcomer
16.04.2023, 15:18
Что означает синяя метка, про которую я писал в посту #5601 так и не понятно.

kondor3000
16.04.2023, 15:28
Что означает синяя метка, про которую я писал в посту #5601 так и не понятно.

Ссылку вам зачем дал? Читайте там всё написано, что делать.

Евгений Кислов
16.04.2023, 18:19
Что такое TargetVar ?

Список глобальных переменных из шаблона проекта. Эти переменные привязаны к узлам таргет-файла - Info, Buzzer и т.д.


И еще, СПК читает дискретные входа модуля ввода побитно или сразу маску входов ?

Маску.

Евгений Кислов
17.04.2023, 07:03
Вопросы по настройке modbus slave ус-ва. А конкретнее про вкладку "Modbus Slave Init".
1. Запись указанных там значений в slave будет происходить только при старте мастера?
2. Что произойдёт, если в процессе работы пропадёт связь со slave устройством и снова появится? Например, на "горячую" заменили модуль МВ210-101. Значения из этой вкладки снова запишутся в устройство? Если да, то тогда каков критерий потери связи?
3. Те же вопросы, только уже для Modbus RTU.

1. При старте мастера и восстановлении связи (см. ниже).
2. Да, запишутся, если xDoInit имеет значение TRUE (по умолчанию - он TRUE).
Насколько я понимаю, критерий - это если xError был в TRUE (т.е. была ошибка обмена), а потом xDone стал TRUE (т.е. был получен корректный ответ на любой из запросов к слэйву).
Для TCP еще, вероятно, учитывается разрыв/восстановление TCP-соединения.
3. Аналогично.

67349 67350

Newcomer
17.04.2023, 11:19
Добрый день

Как в цикле сделать упаковку. Как на картинке не хочет.

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

Как в цикле сделать упаковку. Как на картинке не хочет.

Добрый день.
Используйте функцию PutBit или SetBit из библиотеки Util (папка Bit/Byte Functions).

Crashroma2009
17.04.2023, 17:15
Подскажите пожалуйста, в Codesys V3.5 вылетает постоянно ошибка: "Соединение разорвано в связи с неверной контрольной суммой."
Что это значит?!

Евгений Кислов
17.04.2023, 17:22
Подскажите пожалуйста, в Codesys V3.5 вылетает постоянно ошибка: "Соединение разорвано в связи с неверной контрольной суммой."
Что это значит?!

При каких обстоятельствах появляется эта ошибка?

Crashroma2009
17.04.2023, 17:27
Ошибка появляется при загрузке проекта в контроллер. Как только начинает идти загрузка, вываливается ошибка данная, бывает с раза 5 запускается, а бывает вообще никак!
Может это быть связано с неправильными типами данных в переменных? Может какие-то значения выходят за диапазон "типа" и происходит ERROR?!

Евгений Кислов
17.04.2023, 17:36
Ошибка появляется при загрузке проекта в контроллер.

О каком конкретно контроллере речь?
Как подключены между собой контроллер и ПК?


Может это быть связано с неправильными типами данных в переменных? Может какие-то значения выходят за диапазон "типа" и происходит ERROR?!

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

Crashroma2009
17.04.2023, 17:47
Поясню: Контроллер у меня ПЛК200-03 ОВЕН. Подключен к ПК через локальную сеть (внутреннюю) предприятия через Ethernet провод.

Проект был написан в V3.5 SP14, я его перенес на SP17 версии с обновлением библиотек последних.
Если брать пустой проект, то загружается вообще без проблем, даже близко таких ошибок нет! Поэтому я грешу на код написанный в проекте, но не понимаю конкретики ошибки!
Бывает что он может загрузится и вполне нормально работает, но стоит его перезапустить, то он начинает снова тупить!

Нашел в руководстве пояснение: Ответ был поврежден во время передачи (например, из-за действия помех).
Большинство протоколов используют контрольную сумму для проверки корректности ответа.

Только что оно означает - не понимаю...

Евгений Кислов
17.04.2023, 17:55
Подключен к ПК через локальную сеть (внутреннюю) предприятия через Ethernet провод.

Если подключить ПЛК к ПК напрямую по Ethernet или USB - проблема сохраняется?

Crashroma2009
17.04.2023, 17:58
Да, проблема сохраняется.
Единственное что попробовал, так это то, что я увеличил время опроса slave устройств, было по 100мс, выставил до 1000. Может слишком малое время для ожидания ответа Codesys делает, увеличение поможет.

Как попробую - отпишусь!

Crashroma2009
18.04.2023, 09:57
Как попробую - отпишусь!

В общем, проблема полностью не ушла, но стала реже появляться.
И все же все равно может кто объяснить как ее полностью исправить?

Дмитрий Хороменков
18.04.2023, 13:56
67377 В режиме эмуляции выдает ошибку. При работе с визуальным контроллером все нормально. При компиляции никаких ошибок. Все началось когда начал работать с визуализацией.

Евгений Кислов
18.04.2023, 16:48
67377 В режиме эмуляции выдает ошибку. При работе с визуальным контроллером все нормально. При компиляции никаких ошибок. Все началось когда начал работать с визуализацией.

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

Дмитрий Хороменков
18.04.2023, 17:45
Добрый день.
Выложите, пожалуйста, проект, в котором я смогу повторить проблему.

А как это сделать? Отправить по почте? Или скан выложить? Кстати обратил внимание , что выскакивает ошибка, но после того как перехожу на другую страницу, допустим в блок или программу, все начинает работать. Это касается , если открываю в программе или в блоке, сначала ошибка , с переходом на другую страницу все становится на свои места.

Евгений Кислов
18.04.2023, 17:52
А как это сделать? Отправить по почте? Или скан выложить? Кстати обратил внимание , что выскакивает ошибка, но после того как перехожу на другую страницу, допустим в блок или программу, все начинает работать. Это касается , если открываю в программе или в блоке, сначала ошибка , с переходом на другую страницу все становится на свои места.

Выложите проект на файлообменник и приложите ссылку.

Дмитрий Хороменков
18.04.2023, 18:08
Выложите проект на файлообменник и приложите ссылку.

https://disk.yandex.ru/d/TYIxSI32h3xSeA

Евгений Кислов
18.04.2023, 18:13
https://disk.yandex.ru/d/TYIxSI32h3xSeA

У меня с вашим проектом проблема не повторяется.
Могу порекомендовать отказаться от симуляции и отлаживать проект на виртуальном контроллере.

Дмитрий Хороменков
18.04.2023, 18:17
Вот то что я выложил и себе обратно перекачал из файлообменника , теперь открывается без всяких ошибок.

Дмитрий Хороменков
18.04.2023, 18:18
А тот продолжает ошибаться. Глюк наверно какой то.

yurya
19.04.2023, 14:33
Добрый день.
На ПК были установлены CODESYS 3.5.11.54 и CODESYS 3.5.14.3.
После установки CODESYS 3.5.17.3 при установлении соединения с виртуальным девайсом стало появляться такое окно, на всех версиях.
Как от этого избавиться?
67414

Дмитрий Хороменков
19.04.2023, 15:11
Добрый день. Скажите пожалуйста, а можно ли в эмуляции посмотреть работу Тренда. Если можно подскажите как. Или где можно прочитать? Где я сейчас смотрю не могу понять. Вот что у меня сделано. И что выдает.6741867420

Евгений Кислов
19.04.2023, 17:04
Добрый день.
На ПК были установлены CODESYS 3.5.11.54 и CODESYS 3.5.14.3.
После установки CODESYS 3.5.17.3 при установлении соединения с виртуальным девайсом стало появляться такое окно, на всех версиях.
Как от этого избавиться?
67414

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

Евгений Кислов
19.04.2023, 17:05
Добрый день. Скажите пожалуйста, а можно ли в эмуляции посмотреть работу Тренда. Если можно подскажите как. Или где можно прочитать? Где я сейчас смотрю не могу понять. Вот что у меня сделано. И что выдает.6741867420

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

yurya
20.04.2023, 08:49
Добрый день.
https://owen.ru/forum/showthread.php?t=28167&p=401060&viewfull=1#post401060

Пользователя удалил. Но при подключении к виртуальному контроллеру предлагается создать нового пользователя.
67438 67439

Евгений Кислов
20.04.2023, 08:50
Пользователя удалил. Но при подключении к виртуальному контроллеру предлагается67439 создать нового пользователя.67438

См. стр. 15:
https://ftp.owen.ru/CoDeSys3/99_ForumFiles/CODESYS_V3.5_SP17_features_forum.pdf

yurya
20.04.2023, 09:13
См. стр. 15:
https://ftp.owen.ru/CoDeSys3/99_ForumFiles/CODESYS_V3.5_SP17_features_forum.pdf

ОК. Спасибо.

_Tony
20.04.2023, 10:47
Добрый день. Подскажите есть ли способ перенести значения retain переменных с одного ПЛК(СПК110) на другой с одинаковым приложением?

Евгений Кислов
20.04.2023, 10:55
Добрый день. Подскажите есть ли способ перенести значения retain переменных с одного ПЛК(СПК110) на другой с одинаковым приложением?

Добрый день.
Нужно перенести именно RETAIN отдельно?
Или подойдет вариант переноса всего приложения (включая RETAIN)?

_Tony
20.04.2023, 11:39
перенос всего приложения был бы идеальным вариантом.

Евгений Кислов
20.04.2023, 11:41
перенос всего приложения был бы идеальным вариантом.

Тогда это можно сделать через web-конфигуратор (вкладка Система/Резервное копирование).

67448

Newcomer
20.04.2023, 14:59
Да, подойдет.

Есть ли какие-то особенности при установке CODESYS_3.5_SP5_Patch5 ? Может есть какая-то инструкция или видео.

Евгений Кислов
20.04.2023, 16:00
Есть ли какие-то особенности при установке CODESYS_3.5_SP5_Patch5 ? Может есть какая-то инструкция или видео.

Особенностей нет.
Разве что архив репозитория потом стоит установить - см. ссылку в подписи.

_Tony
20.04.2023, 16:23
Тогда это можно сделать через web-конфигуратор (вкладка Система/Резервное копирование).

67448

Благодарю. Данный способ сработал на двух ПЛК из трех, на третьем процедура восстановления из резервной копии заканчивается стартовым экраном (no boot application) и IP адресом по умолчанию. Версия прошивки и ядра на проблемном ПЛК соответствуют тому с которого была снята резервная копия. Так же ранее на нем наблюдали сброс IP адреса на заводской. Могут какие либо настройки доступные через веб-конфигуратор приводить к такому поведению и какие действия можно предпринять для устранения такого поведения?

Евгений Кислов
20.04.2023, 17:07
Благодарю. Данный способ сработал на двух ПЛК из трех, на третьем процедура восстановления из резервной копии заканчивается стартовым экраном (no boot application) и IP адресом по умолчанию. Версия прошивки и ядра на проблемном ПЛК соответствуют тому с которого была снята резервная копия. Так же ранее на нем наблюдали сброс IP адреса на заводской. Могут какие либо настройки доступные через веб-конфигуратор приводить к такому поведению и какие действия можно предпринять для устранения такого поведения?

Выложите, пожалуйста, на проблемном ПЛК скриншот вкладки Система/Точки монтирования.

_Tony
20.04.2023, 17:18
Выложите, пожалуйста, на проблемном ПЛК скриншот вкладки Система/Точки монтирования.

6745567455

Евгений Кислов
20.04.2023, 17:28
На этом ПЛК пользовательская файловая система (overlayfs) смонтировалась на временную (tmpfs) - именно поэтому после перезагрузки ничего не сохраняется.
Я рекомендую вам перепрошить контроллер на ту же самую версию прошивки со сбросом настроек.

Николай Суриков
21.04.2023, 03:05
На этом ПЛК пользовательская файловая система (overlayfs) смонтировалась на временную (tmpfs) - именно поэтому после перезагрузки ничего не сохраняется.
Я рекомендую вам перепрошить контроллер на ту же самую версию прошивки со сбросом настроек.

А это происходит из-за несовершенства ПЛК или из-за несовершенства CoDeSys?
Просто покупая коробочку за почти 1к баксов (со сроком поставки, сравнимым с рождением ребенка), мы получаем немного проблем, то прошивка не так встала, то fs не так смонтировалась, то среда не так установилась, то библиотеки не так встали.

Евгений Кислов
21.04.2023, 06:41
А это происходит из-за несовершенства ПЛК или из-за несовершенства CoDeSys?
Просто покупая коробочку за почти 1к баксов (со сроком поставки, сравнимым с рождением ребенка), мы получаем немного проблем, то прошивка не так встала, то fs не так смонтировалась, то среда не так установилась, то библиотеки не так встали.

По моему опыту - в основном это происходит при некорректно произведенной процедуре перепрошивки или каких-то специфических событиях (например, если изменить какой-то параметр в web-конфигураторе и сразу снять питание ПЛК).
Ваш тезис в существенной степени справедлив и совпадает с моим мнением по этому поводу; мы обсуждаем с коллегами, как уменьшить вероятность подобных проблем, сделать их наличие более прозрачным для пользователя (например, информировать его об этом на вкладке Обзор) и обеспечить возможность перемонтирования одной кнопкой. Я надеюсь, что эти исправления войдут в состав одной из следующих прошивок.

Что касается проблем при установке среды и библиотек - это уже не на нашей стороне, но мы всегда готовы проконсультировать и помочь настроить CODESYS нашим клиентам - в т. ч. путем удаленного подключения к ним.

_Tony
21.04.2023, 09:57
На этом ПЛК пользовательская файловая система (overlayfs) смонтировалась на временную (tmpfs) - именно поэтому после перезагрузки ничего не сохраняется.
Я рекомендую вам перепрошить контроллер на ту же самую версию прошивки со сбросом настроек.

Перепрошили согласно указаниям файла ReadMe прошивкой tanowrt-image-owen-codesys-swu-spk1xxm01.swu (пробовали как с hotfix так и без), проблема осталась.

Вылечили с помощью темы https://owen.ru/forum/showthread.php?t=36852

Newcomer
21.04.2023, 12:27
Особенностей нет.
Разве что архив репозитория потом стоит установить - см. ссылку в подписи.

Не вижу Target для СПК207 при создании проекта.

yaroslavcik
21.04.2023, 14:31
Здравствуйте,

Есть 3 ПЛК210, находящихся в разных подсетях сети Ethernet и один АРМ в 4й подсети, на нем установлен CodeSys3.5 SP14 Р3. Все настроено через маршрутизатор. При настройке Gateway соединения в CD мы можем указать loсalhost или конкретный IP машины. В случае с маршрутизатором как можно установить соединение с ПЛК?

kondor3000
21.04.2023, 15:31
Не вижу Target для СПК207 при создании проекта.

Вы его не поставили, там же все старые архивы, биб-ки и остальное.
ПО для приборов, снятых с производства https://owen.ru/product/codesys_v3/software

Newcomer
21.04.2023, 16:08
Вы его не поставили, там же все старые архивы, биб-ки и остальное.
ПО для приборов, снятых с производства https://owen.ru/product/codesys_v3/software

Ставил это. Другого ничего нет.

kondor3000
21.04.2023, 16:54
Ставил это. Другого ничего нет.

А по ссылке Евгений Кислов поставили репозиторий?

Вот архив для старых СПК2хх https://ftp.owen.ru/CoDeSys3/10_Firmware/

Newcomer
21.04.2023, 17:02
А по ссылке Евгений Кислов поставили репозиторий?

Вот архив для старых СПК2хх https://ftp.owen.ru/CoDeSys3/10_Firmware/

Это прошивки, а не таргеты.

Newcomer
21.04.2023, 17:46
А по ссылке Евгений Кислов поставили репозиторий?

Репозиторий поставил.

EugeneMoor
22.04.2023, 19:15
Здравствуйте. Подскажите пожалуйста, не могу связать виртуальный контроллер и OPC UA.
Опишу порядок действий. Решил тестировать связь на чистом проекте.
1. Создаю стандартный проект с виртуальным плк х32. Версия CodeSys соответствует.
2. Создал 2 переменные.
3. Добавил символьную конфигурацию (поставил галочки на совместимость, XML, OPC UA) и скомпилировал. Выделил переменные (двухсторонний обмен).
4. Включил наборы символов и создал новый набор символов 'GrOpcUA'. Вновь выделил переменные (двухсторонний обмен).
5. Подключился напрямую по ип к плк. Стоит отметить, что до этого уже были попытки установить связь и у меня требовали создать пользователя. Создал пользователя с правами администратора и авторизироваля.
6. Создал группу GrOpcUa. Внес туда администратора
7. В правах доступа 'OPCUaServer', помимо той группы, которую создал, выдал права и администратору.
8. В символьных правах, тоже проставил плюсу двум группам. Помимо этого, выставил плюсы даже для набора символов Default.
9. Залогинился и создал загрузочное приложение.

10. В мастер OPC server добавил протокол, как положено. Затем добавил устройство.
11. Нашел 2 точки подключения по адресу плк и порту 4840.
По итогу, в столбце политика безопасности вижу надпись none.
В столбце безопасность на уровне сообщений тоже none.
Пробовал так же подключаться через simple scada напрямую, но не принимает логин и пароль... Постоянно каике-то ошибки. Пробовал разные вариации.

Изначально хотел попробовать анонимно все сделать, но как я уже сказал, кодсис потребовал создать пользователя при логине в виртуальном плк.
В любом случае, я думаю, потребуется авторизация последующая.
Был так же вариант использовать OPC от Codesys, но в моей версии этого нет. Как выяснилось, на современных версиях codesys он платный.
Спасибо!

Евгений Кислов
22.04.2023, 20:42
Не вижу Target для СПК207 при создании проекта.

Обеспечьте в понедельник утром удаленный доступ по AeroAdmin - посмотрим, в чем дело.

Евгений Кислов
22.04.2023, 20:43
Здравствуйте,

Есть 3 ПЛК210, находящихся в разных подсетях сети Ethernet и один АРМ в 4й подсети, на нем установлен CodeSys3.5 SP14 Р3. Все настроено через маршрутизатор. При настройке Gateway соединения в CD мы можем указать loсalhost или конкретный IP машины. В случае с маршрутизатором как можно установить соединение с ПЛК?

Добрый день.
У вас есть пинг с АРМ до каждого из ПЛК?

Евгений Кислов
23.04.2023, 09:21
Здравствуйте. Подскажите пожалуйста, не могу связать виртуальный контроллер и OPC UA.
Опишу порядок действий. Решил тестировать связь на чистом проекте.
1. Создаю стандартный проект с виртуальным плк х32. Версия CodeSys соответствует.
2. Создал 2 переменные.
3. Добавил символьную конфигурацию (поставил галочки на совместимость, XML, OPC UA) и скомпилировал. Выделил переменные (двухсторонний обмен).
4. Включил наборы символов и создал новый набор символов 'GrOpcUA'. Вновь выделил переменные (двухсторонний обмен).
5. Подключился напрямую по ип к плк. Стоит отметить, что до этого уже были попытки установить связь и у меня требовали создать пользователя. Создал пользователя с правами администратора и авторизироваля.
6. Создал группу GrOpcUa. Внес туда администратора
7. В правах доступа 'OPCUaServer', помимо той группы, которую создал, выдал права и администратору.
8. В символьных правах, тоже проставил плюсу двум группам. Помимо этого, выставил плюсы даже для набора символов Default.
9. Залогинился и создал загрузочное приложение.

10. В мастер OPC server добавил протокол, как положено. Затем добавил устройство.
11. Нашел 2 точки подключения по адресу плк и порту 4840.
По итогу, в столбце политика безопасности вижу надпись none.
В столбце безопасность на уровне сообщений тоже none.
Пробовал так же подключаться через simple scada напрямую, но не принимает логин и пароль... Постоянно каике-то ошибки. Пробовал разные вариации.

Изначально хотел попробовать анонимно все сделать, но как я уже сказал, кодсис потребовал создать пользователя при логине в виртуальном плк.
В любом случае, я думаю, потребуется авторизация последующая.
Был так же вариант использовать OPC от Codesys, но в моей версии этого нет. Как выяснилось, на современных версиях codesys он платный.
Спасибо!

Добрый день.
1. Для начала предлагаю тестировать без логина и пароля.
https://faq.codesys.com/display/CDSFAQ/OPC+UA+Server%3A+Anonymous+login

2. Как настроить доступ к OPC UA с авторизацией по логину/паролю:
https://youtu.be/ifXP_zV3Wv8?t=742

Newcomer
23.04.2023, 11:13
Добрый день

Установил CODESYS_3.5_SP5_Patch5 , архив репозитория, таргеты для старых устройств. Но при создании нового проекта в выпадающем списке нет таргета для СПК207. В чем дело ?

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

Установил CODESYS_3.5_SP5_Patch5 , архив репозитория, таргеты для старых устройств. Но при создании нового проекта в выпадающем списке нет таргета для СПК207. В чем дело ?

Обеспечьте в понедельник утром удаленный доступ по AeroAdmin - посмотрим, в чем дело.

Newcomer
23.04.2023, 11:19
Обеспечьте в понедельник утром удаленный доступ по AeroAdmin - посмотрим, в чем дело.

На объекте нет Internet.

Newcomer
23.04.2023, 11:23
Обеспечьте в понедельник утром удаленный доступ по AeroAdmin - посмотрим, в чем дело.

В архиве репозитория что находится ? Может я архив репозитория не правильно установил ? Может на сайте ОВЕН не те таргеты для старых устройств.

Евгений Кислов
23.04.2023, 11:58
На объекте нет Internet.

Вы можете установить тот же набор ПО не на объекте, а на том вашем ПК, на котором есть интернет.


В архиве репозитория что находится ?

Старые версии библиотек, которые нужны для работы с СПК207.


Может на сайте ОВЕН не те таргеты для старых устройств.

Таргеты на нашем сайте, естественно, именно те, которые нужны (пакет 3.5.4.26).

Newcomer
23.04.2023, 12:26
Может я чего-то не понимаю. У меня Спк207-220.03.00.CS. В таргетах на картинке вроде что-то есть похожее. Может надо выбрать SPK2xx 03.CS ?

Евгений Кислов
23.04.2023, 12:35
В вашем случае нужно выбирать именно его.

Newcomer
23.04.2023, 12:50
В вашем случае нужно выбирать именно его.

Гора с плеч. Спасибо.

Newcomer
23.04.2023, 13:03
При компиляции пустого проекта вылезла куча ошибок по причине отсутствия библиотек. Менеджер библиотек пустоват. Что надо добавить ?

Евгений Кислов
23.04.2023, 14:10
Должно хватить установки этой библиотеки:
https://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/07_CmpSysExec/1.0.0.2/CmpSysExec_1.0.0.2.compiled-library

Newcomer
23.04.2023, 14:38
Должно хватить установки этой библиотеки:
https://ftp.owen.ru/CoDeSys3/04_Library/02_Manual_installation/07_CmpSysExec/1.0.0.2/CmpSysExec_1.0.0.2.compiled-library

Установил, ничего не поменялось, куча ошибок.

Евгений Кислов
23.04.2023, 14:46
В проект нужно добавить визуализацию.
И судя по скриншоту - архив репозитория вы не установили.

Newcomer
23.04.2023, 15:54
И судя по скриншоту - архив репозитория вы не установили.

Как в CODESYS_3.5_SP5_Patch5 правильно установить репозитарий ?

Евгений Кислов
23.04.2023, 16:21
Как в CODESYS_3.5_SP5_Patch5 правильно установить репозитарий ?

1. Загрузить архив репозитория (ссылка в подписи)
2. Распаковать его.
3. Запустить файл .msi
4. Следовать инструкциям инсталлятора.
5. После завершения установки - перезапустить CODESYS.

Newcomer
23.04.2023, 16:53
Что такое Таргет визуализация и можно ли ее удалить ?

kondor3000
23.04.2023, 17:00
Как в CODESYS_3.5_SP5_Patch5 правильно установить репозитарий ?

Распакуйте архив, запустите .msi, установите в папку с CODESYS_3.5_SP5_Patch5 (по умолчанию 3S CODESYS, если в эту ставили)

Newcomer
23.04.2023, 17:11
Распакуйте архив, запустите .msi, установите в папку с CODESYS_3.5_SP5_Patch5 (по умолчанию 3S CODESYS, если в эту ставили)

Это сделано и работает. Непонятно что такое таргет визуализация ?

kondor3000
23.04.2023, 17:20
Это сделано и работает. Непонятно что такое таргет визуализация ?

Таргет визуализация, запускается сразу при загрузке проекта и старте, в полноэкранном режиме (ваша нарисованная в проекте), например при загрузке в Control WIN V3.
Если она вам не нужна, можете потом удалить, но сначала попробуйте с ней.

Newcomer
23.04.2023, 18:08
Таргет визуализация, запускается сразу при загрузке проекта и старте, в полноэкранном режиме (ваша нарисованная в проекте), например при загрузке в Control WIN V3.
Если она вам не нужна, можете потом удалить, но сначала попробуйте с ней.

С ней ошибка при компиляции. Если указать имя стартовой визуализации, то ошибки нет.

kondor3000
23.04.2023, 18:17
С ней ошибка при компиляции.

В менеджере визуализации поставьте 3.5.5 или ниже и не обновляйте до 11-16 версий 67489

sco-scorpion
23.04.2023, 20:58
Добрый вечер. Подскажите где можно подробно почитать про Алармы? как настраивать, как сбрасывать и т.д.

Евгений Кислов
24.04.2023, 06:38
Добрый вечер. Подскажите где можно подробно почитать про Алармы? как настраивать, как сбрасывать и т.д.

Добрый день.
Начать можно с этого видео:
https://youtu.be/LlLMSElG59I

Подробнее здесь в п. 7.8:
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Visu_v3.0.pdf

sco-scorpion
24.04.2023, 11:51
Добрый день. Подскажите есть код:

//Сброс ошибки
IF xResetErrorMessage THEN
FOR i := 0 TO c_ierrorCount DO
astErrorData[i].xAlarm := FALSE;

END_FOR

END_IF

FOR i := 1 TO c_ierrorCount DO
IF NOT astErrorData[i].xAlarm THEN
astErrorData[0].xAlarm := TRUE;
astErrorData[0].wsMessage := MB_ERROR_PLC_TO_WSTRING(ErrorCode.Error00);
END_IF
END_FOR
к astErrorData[1-50].xAlarm присваивается ошибка, а xResetErrorMessage соответственно сброс. Как или с помощью чего можно сделать проверку на исключение чтобы astErrorData[0].xAlarm присвоить значение которое сообщает что нету ошибок?

Евгений Кислов
24.04.2023, 11:59
Добрый день.
Нужно, чтобы astErrorData[0].xAlarm имело значение TRUE только в том случае, если все astErrorData[1-50].xAlarm равны FALSE?
Или в чем именно задача?

sco-scorpion
24.04.2023, 12:03
Нужно, чтобы astErrorData[0].xAlarm имело значение TRUE только в том случае, если все astErrorData[1-50].xAlarm равны FALSE?


да, все верно

Евгений Кислов
24.04.2023, 12:06
//Сброс ошибки
IF xResetErrorMessage THEN
FOR i := 0 TO c_ierrorCount DO
astErrorData[i].xAlarm := FALSE;

END_FOR

END_IF

FOR i := 1 TO c_ierrorCount DO
IF NOT astErrorData[i].xAlarm THEN
astErrorData[0].xAlarm := TRUE;
astErrorData[0].wsMessage := MB_ERROR_PLC_TO_WSTRING(ErrorCode.Error00);
ELSE
// есть ошибка
astErrorData[0].xAlarm := FALSE;
astErrorData[0].wsMessage := MB_ERROR_PLC_TO_WSTRING(...); // укажите код нужной ошибки
END_IF
END_FOR

sco-scorpion
24.04.2023, 12:29
//Сброс ошибки
IF xResetErrorMessage THEN
FOR i := 0 TO c_ierrorCount DO
astErrorData[i].xAlarm := FALSE;

END_FOR

END_IF

FOR i := 1 TO c_ierrorCount DO
IF NOT astErrorData[i].xAlarm THEN
astErrorData[0].xAlarm := TRUE;
astErrorData[0].wsMessage := MB_ERROR_PLC_TO_WSTRING(ErrorCode.Error00);
ELSE
// есть ошибка
astErrorData[0].xAlarm := FALSE;
astErrorData[0].wsMessage := MB_ERROR_PLC_TO_WSTRING(...); // укажите код нужной ошибки
END_IF
END_FOR

У меня astErrorData[0].xAlarm сразу присваивается TRUE. Есть ли разница где будет установлен обработчик этого события в начале кода или в конце?

Евгений Кислов
24.04.2023, 12:47
До проверки всего массива вы не можете однозначно утверждать, какое значение должен иметь astErrorData[0].xAlarm.
Так что, на мой взгляд, обработчик должен быть не в начале кода.

sco-scorpion
24.04.2023, 13:12
До проверки всего массива вы не можете однозначно утверждать, какое значение должен иметь astErrorData[0].xAlarm.
Так что, на мой взгляд, обработчик должен быть не в начале кода.

Переместил в конец и все тоже самое. astErrorData[0].xAlarm принимает значение TRUE хотя другие значения тоже TRUE

Евгений Кислов
24.04.2023, 13:14
Переместил в конец и все тоже самое. astErrorData[0].xAlarm принимает значение TRUE хотя другие значения тоже TRUE

Выложите простейший проект, в котором можно будет это воспроизвести.

sco-scorpion
24.04.2023, 13:34
Выложите простейший проект, в котором можно будет это воспроизвести.
Собрал простой проект

Евгений Кислов
24.04.2023, 13:55
Заменил весь код на это (воспринимаю xError1, xError2, xError3 как сигналы возникновения тревог):



astErrorData[1].xAlarm := xError1;
astErrorData[2].xAlarm := xError2;
astErrorData[3].xAlarm := xError3;

// изначально предполагаем, что ошибок нет
astErrorData[0].xAlarm := TRUE;

FOR i := 1 TO c_ierrorCount DO
IF astErrorData[i].xAlarm THEN

astErrorData[0].xAlarm := FALSE;
// при наличии хотя бы одной ошибки - проверять дальше нет смысла
// так что выходим из цикла
EXIT;

END_IF
END_FOR

sco-scorpion
24.04.2023, 14:02
Заменил весь код на это (воспринимаю xError1, xError2, xError3 как сигналы возникновения тревог):


Спасибо, буду пробовать.

yurya
25.04.2023, 08:31
Добрый день.
Проект разрабатывается на CODESYS 3.5.17.3.
Каждый раз при загрузке проекта предлагается обновить библиотеку Mx110 Assistant с 3.5.4.17 на 3.5.4.18. Обновлял, но все повторяется: в проекте Mx110 Assistant с 3.5.4.17 и предлагается обновление.

Евгений Кислов
25.04.2023, 08:46
Добрый день.
Проект разрабатывается на CODESYS 3.5.17.3.
Каждый раз при загрузке проекта предлагается обновить библиотеку Mx110 Assistant с 3.5.4.17 на 3.5.4.18. Обновлял, но все повторяется: в проекте Mx110 Assistant с 3.5.4.17 и предлагается обновление.

Добрый день.
Проще всего нажимать "Нет" на предложение обновления.

Если вы хотите, чтобы это предложение не появлялось в принципе - то нужно удалить из дерева проекта все шаблоны Mx110 и добавить их заново, но уже с версией 3.5.11.10.
Соответственно, потребуется перепривязать к их каналам все переменные.

yurya
25.04.2023, 08:52
Добрый день.
Проще всего нажимать "Нет" на предложение обновления.

Если вы хотите, чтобы это предложение не появлялось в принципе - то нужно удалить из дерева проекта все шаблоны Mx110 и добавить их заново, но уже с версией 3.5.11.10.
Соответственно, потребуется перепривязать к их каналам все переменные.

Спасибо. Я понял. Проект был адаптирован из CODESYS 3.5.11.54, а там были старые шаблоны Мх110.

DenisV
27.04.2023, 12:10
Здравствуйте, скажите пожалуйста, а можно ли как-то узнать о долгосрочных планах компании ОВЕН касательно разработки ПО? Планируется ли выход прошивок ПЛК c поддержкой Codesys SP18, SP19, если да, то какие ориентировочные даты выхода? Или может быть планируется переход на другой runtime и среду разработки?

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


Планируется ли выход прошивок ПЛК c поддержкой Codesys SP18, SP19, если да, то какие ориентировочные даты выхода?

Могу только сказать, что этом году выход таких прошивок точно не произойдет.
Что касается 2024 и далее - сейчас нет возможности сказать что-то определенное.


Или может быть планируется переход на другой runtime и среду разработки?

У нас и так есть вариант ПЛК210 с другим рантаймом:
https://owen.ru/product/plk210_kr

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

SemAndr
28.04.2023, 13:25
Добрый день! Подскажите, пожалуйста. Ситуация следующая. Имеем ПЛК200.
1. При настройке обмена по RS485 ModBus RTU средствами библиотеки OwenCommunication при попытке считывания больше 28 регистров появляются ошибки (ошибка контрольной суммы).
2. При конфигурировании обмена стандартными средствами Codesys обмен идёт без ошибок.
3. На СПК этот же программный код (с настройкой средствами библиотеки OwenCommunication) также обменивается данными без ошибок при большом количестве считываемых данных.

Где-то я упустил какую-то настройку, относящуюся к ПЛК200?

Контроллер - ПЛК200-02-CS

Евгений Кислов
28.04.2023, 13:36
Добрый день! Подскажите, пожалуйста. Ситуация следующая. Имеем ПЛК200.
1. При настройке обмена по RS485 ModBus RTU средствами библиотеки OwenCommunication при попытке считывания больше 28 регистров появляются ошибки (ошибка контрольной суммы).
2. При конфигурировании обмена стандартными средствами Codesys обмен идёт без ошибок.
3. На СПК этот же программный код (с настройкой средствами библиотеки OwenCommunication) также обменивается данными без ошибок при большом количестве считываемых данных.

Где-то я упустил какую-то настройку, относящуюся к ПЛК200?

Контроллер - ПЛК200-02-CS

Добрый день.
Укажите серийный номер ПЛК, пожалуйста.
Если включить (или отключить - если сейчас включена) в узле LeftSide подтяжку - это повлияет на ситуацию?
Какой у вас сейчас интервал вызова задачи, в контексте которой вызываются экзмплляры ФБ из OwenCommunication?

SemAndr
28.04.2023, 13:44
Добрый день.
Укажите серийный номер ПЛК, пожалуйста.
Если включить (или отключить - если сейчас включена) в узле LeftSide подтяжку - это повлияет на ситуацию?
Какой у вас сейчас интервал вызова задачи, в контексте которой вызываются экзмплляры ФБ из OwenCommunication?

Заводской №: 107026230232082967

Каких-то временных разделений специально не делаю. Вызов идёт каждый раз, когда проходит цикл исполнения программы ПЛК.

Подтяжка сейчас отключена. При включении подтяжки удачных чтений становится чуть больше. Но в основном ФБ возвращает ошибку. Со стороны считываемого устройства подтяжка стоит.

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

Евгений Кислов
28.04.2023, 13:49
Вызов идёт каждый раз, когда проходит цикл исполнения программы ПЛК.

Укажите, пожалуйста, чем равен интервал вызова задачи.

SemAndr
28.04.2023, 13:52
Укажите, пожалуйста, чем равен интервал вызова задачи.

Интервал вызова задачи составляет 10 мс. Думаете, стоит увеличить?

Евгений Кислов
28.04.2023, 13:53
Интервал вызова задачи составляет 10 мс. Думаете, стоит увеличить?

Да, попробуйте увеличить до 20 мс и посмотрите, повлият ли это на наличие ошибки или периодичность ее проявления.

SemAndr
28.04.2023, 14:19
Да, попробуйте увеличить до 20 мс и посмотрите, повлият ли это на наличие ошибки или периодичность ее проявления.

Да, увеличение цикла до 30 мс помогло. Спасибо! Теперь чтение происходит штатно. А с чем это было связано? Цикл проходил быстрее, чем успевал обрабатываться ФБ?

Дмитрий Хороменков
28.04.2023, 15:33
Помогите пожалуйста разобраться со структурами. 67607. Дайте толчок простыми словами.

Cs-Cs
28.04.2023, 19:13
Дмитрий Хороменков Хотелось бы больше описания.
Как я понял, ты пытается сделать как на Visual Basic было: через имя диалога (тут - визуализации) обратиться к переменной.
Тут так не прокатит. Самое простое - объявить xButton и dwColor глобальными переменными и привязать их к элеменам визуализаций.

Дмитрий Хороменков
28.04.2023, 19:35
Дмитрий Хороменков Хотелось бы больше описания.
Как я понял, ты пытается сделать как на Visual Basic было: через имя диалога (тут - визуализации) обратиться к переменной.
Тут так не прокатит. Самое простое - объявить xButton и dwColor глобальными переменными и привязать их к элеменам визуализаций.

Вот что то заработало, но не могу дотумкать как с структурой панели связать.676116761267613

kondor3000
28.04.2023, 19:36
Помогите пожалуйста разобраться со структурами. Дайте толчок простыми словами.

Тут проект нужен, не понятно что откуда, зачем программа названа Структурой, и что в структуре.

Дмитрий Хороменков
28.04.2023, 19:38
67614 последнюю какую туо не ту картинку отправил. Вот эта правильная.

Дмитрий Хороменков
28.04.2023, 19:43
Тут проект нужен, не понятно что откуда, зачем программа названа Структурой, и что в структуре.

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

Cs-Cs
28.04.2023, 19:55
чего все такие толерантные стали, никого не смущает когда объявляют xButton : BUTTON, а в коде используют BUTTON.xButton
Эмоционально выгорели напрочь. Никакие эмоции уже не интересуют, всё плохо.

Дмитрий Хороменков
28.04.2023, 20:13
67615 вот лесенка.

capzap
28.04.2023, 20:56
Я учусь разбираться со структурами и фреймами, осознать их смысл. И вот есть панель, на панели кнопки, и у каждой кнопки соответсвующий индикатор. Вот хочу что бы при нажатии кнопки включался индикатор одним цветом , а при отключении другим. Не могу фреймы и структуры между собой состыковать. Точнее даже с массивом не могу разобраться.

чтоб при нажатии менялся цвет, в код программы вообще не надо лезть 67616

Дмитрий Хороменков
29.04.2023, 11:42
чтоб при нажатии менялся цвет, в код программы вообще не надо лезть 67616

Добрый день. Спасибо. Но насколько я понял вы меняете цвет самой кнопки, а мне нужно поменять цвет отдельно стоящего индикатора при нажатии соответствующей кнопки.

kondor3000
29.04.2023, 11:54
Добрый день. Спасибо. Но насколько я понял вы меняете цвет самой кнопки, а мне нужно поменять цвет отдельно стоящего индикатора при нажатии соответствующей кнопки.

Цвет кнопки или индикатора можно изменить по биту. Если напрямую из структуры не получается,
присвойте бит из структуры обычному биту и им переключайте.
У меня из бита структуры всё переключается и обычный индикатор и нарисованный 67625

Дмитрий Хороменков
29.04.2023, 14:06
6762667627 Спасибо это я сделал, но теперь вопрос, как разделить. То есть есть 6 панелей и в каждой панели по 5 кнопок и 5 индикаторов. Не понимаю как теперь все это поделить? Сейчас нажимаю любую кнопку и загораются все индикаторы. Понятно что я привязал переменную xButt ко всему сразу. Как исправить?

Дмитрий Хороменков
29.04.2023, 14:07
Может тоже какой массив сделать надо?

kondor3000
29.04.2023, 14:52
Может тоже какой массив сделать надо?

У меня вот так, массив у вас уже есть, подправьте для своего

IF Pan.SetBatton[1].XBool THEN
Pan.SetIndikator[1].IndBool:=TRUE ;
ELSE
Pan.SetIndikator[1].IndBool:=FALSE ;
END_IF

IF Pan.SetBatton[2].XBool THEN
Pan.SetIndikator[2].IndBool:=TRUE ;
ELSE
Pan.SetIndikator[2].IndBool:=FALSE ;
END_IF

Не совсем понятно, зачем вам вообще структуры тут, может проще было сделать 6 масок в каждой по 5 бит и включать Маск1.1, Маск1.2 ........Маск6.5

Дмитрий Хороменков
29.04.2023, 16:37
67629 Всем огромное спасибо, кто помогал, разъяснял, участвовал пусть для кого то простом примере, но мне Вы очень помогли осознать начальное понятие структур. массивов. Все понял осознал, получилось. Даже не пришлось применять второстепенную переменную. Может есть вариант по более простому заполнению таблицы, извините за наглость.

Евгений Кислов
02.05.2023, 09:56
Да, увеличение цикла до 30 мс помогло. Спасибо! Теперь чтение происходит штатно. А с чем это было связано? Цикл проходил быстрее, чем успевал обрабатываться ФБ?

Да, в ряде случаев при передаче "больших" пакетов для блоков из OCL время цикла задачи = 10 мс оказывается недостаточным.

Карбофос
03.05.2023, 09:31
Здравствуйте. Загрузил проект в СПК, получил черный экран и надпись "Rised exception. Access violation". В Кодесис - "программа загружена - ИСКЛЮЧЕНИЕ".
Подскажите, есть ли методика поиска, в каком месте это исключение образовалось, или только удалять части программы по кусочкам?

Евгений Кислов
03.05.2023, 11:07
Здравствуйте. Загрузил проект в СПК, получил черный экран и надпись "Rised exception. Access violation". В Кодесис - "программа загружена - ИСКЛЮЧЕНИЕ".
Подскажите, есть ли методика поиска, в каком месте это исключение образовалось, или только удалять части программы по кусочкам?

Добрый день.
См. в подписи ссылку на статью про отладку.
Начать можно с журнала ПЛК - двойной клик на сообщение должен показать, в каком фрагменте кода возникло исключение.
"удалять части программы по кусочкам?" - это совершенно разумный подход.

Карбофос
03.05.2023, 13:15
Подскажите еще: нет ли ограничений на одновременный вызов нескольких ФБ DTU.GetDateAndTime (разные экземпляры) в разных местах программы?

Евгений Кислов
03.05.2023, 13:19
Подскажите еще: нет ли ограничений на одновременный вызов нескольких ФБ DTU.GetDateAndTime (разные экземпляры) в разных местах программы?

Насколько мне известно, ограничений нет.
Вы используете наши контроллеры? В них вместо этого ФБ проще использовать узел OwenRTC в дереве проекта.

Карбофос
03.05.2023, 13:36
Вы используете наши контроллеры? В них вместо этого ФБ проще использовать узел OwenRTC в дереве проекта.
СПК107. Пользовался инструкцией из документа ниже, но наверное где-то что-то не учел, и исключения сыплются из-за этого.
https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Visu_v3.0.pdf

Понял, спасибо, попробую воспользоваться этим узлом.

yurya
03.05.2023, 15:26
Добрый день.
Вопрос по шаблону ПЧВ3[М01].
После подачи питания можно ли по состоянию канала «Возможность запуска» (7-й бит слова состояния) делать вывод о готовности ПЧВ к работе?

Евгений Кислов
03.05.2023, 15:50
Добрый день.
Вопрос по шаблону ПЧВ3[М01].
После подачи питания можно ли по состоянию канала «Возможность запуска» (7-й бит слова состояния) делать вывод о готовности ПЧВ к работе?

Добрый день.
Этот вопрос не касается CODESYS.
На мой взгляд - можно, но вам лучше уточнить это у наших специалистов по ПЧВ, написав на support@owen.ru

Teinrus
04.05.2023, 13:20
Перешел с версии 14 на 17 и в визуализации в конфигурации ввода пропал функционал Конфигурация...обработка клика мышки и тд. С чем связанно или необходима доустановка какой то надстройки?

Евгений Кислов
04.05.2023, 13:21
Перешел с версии 14 на 17 и в визуализации в конфигурации ввода пропал функционал Конфигурация...обработка клика мышки и тд. С чем связанно или необходима доустановка какой то надстройки?

Проверьте, что установлена галочка Дополнительно.

67707

Sijey
11.05.2023, 10:36
Добрый день.
Подскажите пожалуйста, как сделать, что при обрыве датчики приходила авария? Может в модуле есть параметр который отвечает за это?

Евгений Кислов
11.05.2023, 10:40
Добрый день.
Подскажите пожалуйста, как сделать, что при обрыве датчики приходила авария? Может в модуле есть параметр который отвечает за это?

Добрый день.
О каком именно модуле речь?

Sijey
11.05.2023, 11:28
Модули аналогового ввода с универсальными входами (Ethernet) МВ210-101

Евгений Кислов
11.05.2023, 11:53
Модули аналогового ввода с универсальными входами (Ethernet) МВ210-101

В шаблоне опроса есть специальные каналы для получения кода ошибки входов:

67796

Тип канала - перечисление Mx210Assistant.ANALOG_SENSOR_ERRORS.

67798

Sijey
11.05.2023, 12:36
Я правильно понимаю, что мне в программе нужно прописать sensors_failed равняется 253, то переменная True? А нет bool переменной в случай ошибки, аварии модуля?

Евгений Кислов
11.05.2023, 12:45
Я правильно понимаю, что мне в программе нужно прописать sensors_failed равняется 253, то переменная True? А нет bool переменной в случай ошибки, аварии модуля?



VAR
xModuleError: BOOL; // бит любой ошибки
xSensorFailed: BOOL; // бит ошибки обрыва датчика
eModuleError: Mx210Assistant.ANALOG_SENSOR_ERRORS; // код ошибки, привязан к каналу шаблона
END_VAR

// в области кода

xModuleError := eModuleError <> Mx210Assistant.ANALOG_SENSOR_ERRORS.NO_ERROR;

xSensorFailed := eModuleError = Mx210Assistant.ANALOG_SENSOR_ERRORS.SENSOR_FAILED;

Sijey
11.05.2023, 13:12
Спасибо!!!

Карбофос
12.05.2023, 08:16
Подскажите, чем отличаются эти 2 модема? SP17p3.
67802

Евгений Кислов
12.05.2023, 08:18
Подскажите, чем отличаются эти 2 модема? SP17p3.
67802

Ничем, это просто два "экземпляра" компонента для возможности работы с двумя модемами одновременно. Такова наша реализация.

Карбофос
12.05.2023, 08:23
Подскажите еще, нет ли решения для связи конфигурации тревог и отправки SMS? Ну, чтобы при формировании тревоги, автоматически отправлялось SMS? Или только вручную?

Евгений Кислов
12.05.2023, 08:40
Подскажите еще, нет ли решения для связи конфигурации тревог и отправки SMS? Ну, чтобы при формировании тревоги, автоматически отправлялось SMS? Или только вручную?

Какой-то код все равно потребуется написать.
По-моему, Cs-Cs где-то выкладывал на форуме пример.
Или можете взять за основу пример отправки e-mail при появлении тревоги:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/11_Other/Example_AlarmHandlerWithEmailNotification_3516v1.p rojectarchive

Карбофос
12.05.2023, 08:41
Спасибо, посмотрю.

Карбофос
12.05.2023, 09:27
Подскажите пожалуйста по вашему примеру с e-mail. Пока убрал сам блок отправки, хочу увидеть для начала сформированную строку с текстом тревоги. Активные тревоги в контроллере имеются, но ничего не происходит:
6781067811
Чего-то не хватает?

Евгений Кислов
12.05.2023, 09:34
Подскажите пожалуйста по вашему примеру с e-mail. Пока убрал сам блок отправки, хочу увидеть для начала сформированную строку с текстом тревоги. Активные тревоги в контроллере имеются, но ничего не происходит:
6781067811
Чего-то не хватает?

У меня проблема не воспроизводится.
Предоставьте удаленный доступ по AeroAdmin - посмотрим, в чем у вас дело.

Карбофос
12.05.2023, 09:44
Спасибо за помощь!

Rudy_69
12.05.2023, 11:15
Добрый день! Возникли проблемы с передачей значения температуры. Передача осуществляется по 485 с ПР на СПК. Переменную температуры я преобразовал в целочисленный тип и записал в сетевую. Как быть дальше в Кодесисе, подойдёт ли Read Holding Registers, к какому типу привязаться ARRAY OF WORD или WORD ? Я знаю, что можно из 2х вордов преобразовать в реал с помощью WORD_TO_REAL, но тут передаётся 1 переменной.

Евгений Кислов
12.05.2023, 11:33
Добрый день.


подойдёт ли Read Holding Register

Подойдет.


к какому типу привязаться ARRAY OF WORD или WORD

В вашем случае - к WORD.

Rudy_69
12.05.2023, 11:40
Большое спасибо, а как потом c WORD в REAL преобразовать?

Карбофос
12.05.2023, 11:59
Еще вопрос: есть ли функция, возвращающая текущее количество активных тревог?

Евгений Кислов
12.05.2023, 12:08
Большое спасибо, а как потом c WORD в REAL преобразовать?

А как вы в OwenLogic выполнили преобразование? ("Переменную температуры я преобразовал в целочисленный тип")