PDA

Просмотр полной версии : Макросы в онлайн базе OWEN Logic



Страницы : 1 2 3 [4]

petera
03.01.2023, 12:55
64993

Ну или чтобы совсем хорошо было

64994

ЗЫ.
По моему такой макрос был, только называется не регистр защелка, а типа память

Ну да так и есть
64996

Newcomer
03.01.2023, 13:06
По моему такой макрос был, только называется не регистр защелка, а типа память

Работает. Спасибо.

Newcomer
03.01.2023, 13:07
Ну да так и есть
64996

Это в какой версии OL есть такой макрос ? Нашел.

petera
03.01.2023, 13:24
Это в какой версии OL есть такой макрос ?...
От версии не зависит, т.к. с сервера взял http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineMacroes/Analog%20conversion/
64999

Newcomer
03.01.2023, 13:42
От версии не зависит, т.к. с сервера взял

А что это там так много наворочено, если на SEL все можно сделать ?

petera
03.01.2023, 14:41
А что это там так много наворочено, если на SEL все можно сделать ?

Наверно оператора SEL тогда еще не было

ахметыч
22.01.2023, 00:45
Приветствую, подскажите пожалуйста ОЛ достаточно давно существует но пид регулятора для управления кзр так и нет ? или я не могу найти ?
если у кого есть поделитесь пожалуйста.

Dimensy
22.01.2023, 11:06
Приветствую, подскажите пожалуйста ОЛ достаточно давно существует но пид регулятора для управления кзр так и нет ? или я не могу найти ?
если у кого есть поделитесь пожалуйста.

В разделе "Для вентиляции" макрос KZR_DO_Sel . Если полный обвес не нужен, то вытягиваете из него макрос RegKZR

ахметыч
22.01.2023, 22:24
В разделе "Для вентиляции" макрос KZR_DO_Sel . Если полный обвес не нужен, то вытягиваете из него макрос RegKZR

на реальном объекте реализовывали ? как работает? или все же мучатся и самому делать ?

Ruslanadm
24.01.2023, 00:06
Вот хорошая тема для подобного вопроса - https://owen.ru/forum/showthread.php?t=34012

А вот мой макрос по мотивам этой темы (идея Keldish)

65383

65384

Pwr, % - это выход стандартного PID-регулятора из библиотеки компонентов
Остальные входы и выходы, я думаю, понятны.

Макрос трудится на нескольких объектах, регулирует теплосети и ГВС

Dorus
12.03.2023, 18:56
Как кстати подключиться к ФТП серверу обычным клиентом типа Тотал Командер а не через вэб интерфейс

FPavel
15.03.2023, 19:15
Никак - это не ftp сервер, а обычная http страничка
если речь, конечно, про
https://ftp.owen.ru/CoDeSys23/06_Documentation

Eugenek555
23.03.2023, 15:51
Добрый день. Подскажите, где можно достать макрос FLOAT-INT и INT-FLOAT. 66693

kondor3000
23.03.2023, 16:14
Добрый день. Подскажите, где можно достать макрос FLOAT-INT и INT-FLOAT. 66693

Где то на форуме выложены были

Сергей0308
23.03.2023, 18:42
Добрый день. Подскажите, где можно достать макрос FLOAT-INT и INT-FLOAT. 66693

Здесь, в посте#6462 выкладывал усовершенствованные версии макросов, в смысле, более точные, в смысле, преобразование(во FLOAT) по модулю происходит в целочисленном виде, минус, в случае необходимости, добавляется после и более универсальные, в смысле, диапазона INT/DINT(настройка в свойствах макроса):

https://owen.ru/forum/showthread.php?t=9398&page=647

66704

66705

Eugenek555
28.03.2023, 07:42
Сергей, спасибо большое за ответ и помощь.

CFC-ST
23.04.2023, 17:59
добрый день! подскажите -как работает макрос SelChgF 67487.
Не пойму, почему линии задержки в левой части сплошные?
Откуда берется сама переменная на выходе, если в середин она "теряется"?
отдельные элементы понятны, а вместе не понятно. Пробовал формулы написать, но опять же умножение на 0 - даёт ноль.
просьба пояснить

Сергей0308
23.04.2023, 18:59
добрый день! подскажите -как работает макрос SelChgF 67487.
Не пойму, почему линии задержки в левой части сплошные?
Откуда берется сама переменная на выходе, если в середин она "теряется"?
отдельные элементы понятны, а вместе не понятно. Пробовал формулы написать, но опять же умножение на 0 - даёт ноль.
просьба пояснить

Во-первых надо определится как правильно сравнивать значения переменных с плавающей запятой, эти значения приблизительной(не абсолютной) точности, в смысле, мне кажется будет правильным определять изменение переменных с неким допуском(дельтой), для душевного спокойствия, так сказать!
Короче, примерно как-то так:

67490

Dimensy
23.04.2023, 19:26
добрый день! подскажите -как работает макрос SelChgF 67487.
Не пойму, почему линии задержки в левой части сплошные?
Откуда берется сама переменная на выходе, если в середин она "теряется"?
отдельные элементы понятны, а вместе не понятно. Пробовал формулы написать, но опять же умножение на 0 - даёт ноль.
просьба пояснить

Этот макрос уже устарел. Сейчас можно проще сделать

67491

И в середине переменная не теряется - ведь есть обратная связь. А по поводу отображения линий задержки - это фичи Лоджика

CFC-ST
23.04.2023, 20:10
Этот макрос уже устарел. Сейчас можно проще сделать

67491

И в середине переменная не теряется - ведь есть обратная связь. А по поводу отображения линий задержки - это фичи Лоджика

спасибо. Как этот работает понятно. А есть он в базе или самому создать надо?

Dimensy
24.04.2023, 05:53
спасибо. Как этот работает понятно. А есть он в базе или самому создать надо?

самому делать надо

bayk
24.04.2023, 07:29
Добрый день. Подскажите, где можно достать макрос FLOAT-INT и INT-FLOAT. 66693

А зачем собственно? Или речь именно о чистом 16 битном int? Чем встроенные блоки не гожи?

7in
26.07.2023, 13:27
С этим макросом постоянно вопросы, он попал в базу как часть макросов от разработчиков макросов для СУНА, и там он использовался в каком-то хитром алгоритме, все что по нему есть в описании. Используйте BOOL_INT и INT_BOOL там все прозрачно и понятно.

Добрый день. Столкнулся с такой же проблемой: нужно было из дискретных входов собрать битовую маску для передачи по modbus. Нашел в менеджере компонентов макрос BM_in, в описании указано Разработчик - ОВЕН.
Что должно вроде как быть свидетельством того, что все точно работает как нужно. А оказалось что макрос действительно "из коробки" работает со сдвигом на один бит, благо в онлайн отладке это сразу увидел.
Судя по описанию номер первого бита должен задаваться в свойствах макроса, но в последней версии OL у меня такого параметра нет.
Может действительно убрать этот макрос из менеджера, ну или доработать?

kondor3000
26.07.2023, 15:38
Добрый день. Столкнулся с такой же проблемой: нужно было из дискретных входов собрать битовую маску для передачи по modbus. Нашел в менеджере компонентов макрос BM_in, в описании указано Разработчик - ОВЕН.
Что должно вроде как быть свидетельством того, что все точно работает как нужно. А оказалось что макрос действительно "из коробки" работает со сдвигом на один бит, благо в онлайн отладке это сразу увидел.
Судя по описанию номер первого бита должен задаваться в свойствах макроса, но в последней версии OL у меня такого параметра нет.
Может действительно убрать этот макрос из менеджера, ну или доработать?

Макрос редактируется, верхнюю константу меняете с 1 на 0 и всё работает.
Исправить в Менеджере макрос конечно надо.

yuriy2346
30.07.2023, 21:58
Здравсвтуйте. Есть ли пример макркоса расчет EWMA (exponentially weighted moving average) которая Xn = a*Value + (1-a)*X(n-1) ?

yuriy2346
31.07.2023, 00:07
Как Вы планируете удаленно заливать проект в ПР, если не можете формулу в квадратики перевести или воспользоваться функцией ST с небольшой доработкой?

Молча. Уже сделал и залил, вопрос снят.

Эдуард90
14.08.2023, 10:30
Здравствуйте!
Подскажите пожалуйста почему у меня в программе пустая онлайн база макросов?
69592

kondor3000
14.08.2023, 10:39
Здравствуйте!
Подскажите пожалуйста почему у меня в программе пустая онлайн база макросов?
69592

Либо интернет медленный ( долго загружается), либо в строке Поиска набита какая то фигня, типа ъъъъ ( Поиск, рядом с кнопкой Загрузить в библиотеку, растяните вправо средний столбец)

Pvalp
16.08.2023, 09:59
Здравствуйте!
Подскажите пожалуйста почему у меня в программе пустая онлайн база макросов?
69592

Такая же фигня.

melky
16.08.2023, 11:20
у меня все присутствует, открывается сразу. Ставите WireShark, и смотрите , только нужен точный адрес, ip и т.д. от Овен, чтобы проверить.
Либо в логах Firewall смотреть. Вроде больше блокировать некому.

cky2k
23.10.2023, 11:01
Здравствуйте, на сайте vent.owen.ru есть макрос "Recuper_1.00 (Управление рекуператором)" с описанием от ОВЕН. Подскажите, где его можно скачать?

capzap
23.10.2023, 11:12
Здравствуйте, на сайте vent.owen.ru есть макрос "Recuper_1.00 (Управление рекуператором)" с описанием от ОВЕН. Подскажите, где его можно скачать?

его пока нет в свободном доступе http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineMacroes/Vent/

Danila Kholkin
23.10.2023, 11:22
Хотел бы обсудить работы макроса PID_ так как на ПР205 Друва пида нет . Время дискретизации 100 МС регулятор с П и И частью работает прекрасно . Когда Ввожу Дчасть она работает не правильно как будто д Часть зависит от ошибки а не от задания и на него влияет тоже время дискретизации что и на И часть что не очень удобно .
Вот график где с сначала Д Часть 0 потом Д Часть 5 потом 10 я не считаю что Д часть правильно работает 71110

Dimensy
23.10.2023, 11:59
Хотел бы обсудить работы макроса PID_ так как на ПР205 Друва пида нет . Время дискретизации 100 МС регулятор с П и И частью работает прекрасно . Когда Ввожу Дчасть она работает не правильно как будто д Часть зависит от ошибки а не от задания и на него влияет тоже время дискретизации что и на И часть что не очень удобно .
Вот график где с сначала Д Часть 0 потом Д Часть 5 потом 10 я не считаю что Д часть правильно работает 71110

Все правильно, диф. часть зависит от ошибки и от времени дискретизации

Danila Kholkin
23.10.2023, 14:38
Все правильно, диф. часть зависит от ошибки и от времени дискретизации

Да неплохо бы было сделать 2 времени дискретизации для И и для Д а то график с иголками получается

FPavel
23.10.2023, 19:15
Чтобы работала Д составляющая нужно:
1. или сгладить измеренный сигнал (увеличить время фильтра) - но это "потянет" за собой проблемы замедления измерения
2. или увеличить время пересчёта ПИД регулятора - в свойствах этого конкретного макроса.

Идеала нет, чем-то придётся жертвовать.

Для другого контроллера при управлении котлом делал время пересчёта регуляторов:
- давление пара, уровень воды в котле - 10-15 с
- давление воздуха, разрежение в топке - 1-5 с

В том же случае время сглаживания было для разных параметров 1-5 с

cky2k
24.10.2023, 14:42
Спасибо за ответ. Удалось получить макрос. Я запросил макрос "Recuper_1.00 (Управление рекуператором)" в техподдержке support@owen.ru и специалист, поинтересовавшись для чего он мне нужен, прислал мне этот макрос.

Steadfast
25.10.2023, 07:14
Здравствуйте, помогите пожалуйста, прибор ипп 120 выполняет функцию на производственной мойке колёсных пар, прибор показывал время до конца мойки и температуру раствора, в данный момент всё работает но на экране ошибка памяти, обновление не помогло, я прочитал что нужно за нового загрузить проект, но у меня его нет и как сделать его я без понятия, может есть у вас уже готовый?

1exan
25.10.2023, 07:58
Здравствуйте, помогите пожалуйста, прибор ипп 120 выполняет функцию на производственной мойке колёсных пар, прибор показывал время до конца мойки и температуру раствора, в данный момент всё работает но на экране ошибка памяти, обновление не помогло, я прочитал что нужно за нового загрузить проект, но у меня его нет и как сделать его я без понятия, может есть у вас уже готовый?

ИПП - свободно программируемый прибор, его функционал определяется зашитой в него программой, которую кто-то сделал - ИНДИВИДУАЛЬНО для вашего производства.
На щитах нет маркировки производителя? - попробуйте обратиться к ним

Steadfast
25.10.2023, 08:17
ИПП - свободно программируемый прибор, его функционал определяется зашитой в него программой, которую кто-то сделал - ИНДИВИДУАЛЬНО для вашего производства.
На щитах нет маркировки производителя? - попробуйте обратиться к ним

Понял ,спасибо

Serhioromano
26.10.2023, 10:01
ни знаю что я делаю не так но на блоке TIME_UD когда на R подаю импульс секунды на выходе не сбрасываются, продолжают считать.

Королев Кирилл
26.10.2023, 10:41
ни знаю что я делаю не так но на блоке TIME_UD когда на R подаю импульс секунды на выходе не сбрасываются, продолжают считать.

Добрый день!

Для сброса счетчика необходимо снимать сигнал с входа En и только после этого подавать команду R

См. описание макроса:
71172

Serhioromano
26.10.2023, 11:06
Добрый день!

Для сброса счетчика необходимо снимать сигнал с входа En и только после этого подавать команду R

См. описание макроса:
71172

Понял. Спасибо. Не очень интуитивно это. Все другие сбросы на других блоках работают не так. Но понятно. Вопрос решен.

NIK-85
31.10.2023, 15:34
Здравствуйте! Не подскажете где можно найти макрос ПИД регулятора, с дискретными выходами(открыть, закрыть)?

Dimensy
31.10.2023, 15:48
Здравствуйте! Не подскажете где можно найти макрос ПИД регулятора, с дискретными выходами(открыть, закрыть)?

Было много разных предложений, например
https://owen.ru/forum/showthread.php?t=25067&p=317531&viewfull=1#post317531
https://owen.ru/forum/showthread.php?t=34012&p=402491&viewfull=1#post402491

ilka.xd
15.02.2024, 15:06
Добрый день, если я всё правильно понял, то у ПИД-регулятора для ПР205 нет автоматической настройки. Может у кого-то есть макрос для реализации этой автонастройки?
Также я хочу из ПЛК периодически опрашивать внешний сервис по HTTP с GET и POST запросами. Может у кого-то есть макрос или пример как это реализовать?

melky
15.02.2024, 15:19
ilka.xd ПР и HTTP ? вам точно не в ПР, они такого не умеют.

ilka.xd
15.02.2024, 15:32
Я видел библиотеки для Codesys, в которых ПЛК обращаются к веб-серверу (если что он в локальной сети виден), подумал, может и тут такое есть.
А макроса для автонастройки в ПР205 у Вас, случайно, нет?)

melky
15.02.2024, 16:33
В ПР205 вроде нет встроенного PID, вроде только он был с автонастройкой. А на счет софтовых не в курсе.

askaev
22.02.2024, 10:03
Нет ли у кого фильтра аналогового сигнала? AVG (среднее арифметическое) не очень помогает.

kondor3000
22.02.2024, 10:48
Нет ли у кого фильтра аналогового сигнала? AVG (среднее арифметическое) не очень помогает.

На сколько сильно прыгает сигнал ? В цифрах ?
Лучше напишите что за сигнал и откуда вы его берёте. Может просто реже опрашивать вход или выводить просто раз в секунду.
Сократить количество знаков после запятой.
Например аналоговый сигнал снятый с одного входа модуля МВ110-8А, может прыгать от 23.125 до 23.275.

Вот пример не правильного выбора датчика, вместо Pt1000 пытаются воткнуть 50M https://owen.ru/forum/showthread.php?t=37270&page=2&p=430110#post430110

Сергей0308
22.02.2024, 11:22
Нет ли у кого фильтра аналогового сигнала? AVG (среднее арифметическое) не очень помогает.

Можно попробовать увеличить постоянную времени фильтра, есть такая настройка у аналогового входа ПР! Это не может не работать, в смысле, находят компромисс между быстродействием и степенью сглаживания!
Универсального способа не существует, в смысле важен и сам процесс!
Если уровень воды плавает в ёмкости вверх-вниз относительно реального значения это одно, если температуру не верно показывает(с запозданием) в результате неверного выбора датчика или неверного места установки датчика - это совсем другое!
В смысле, лучше не наводить тень на плетень и если чего накосячили, сразу поправить!
Короче, бывают случаи когда не касаясь процесса не получится нормально обработать сигнал, чтобы показывало то, что можно использовать дальше.

Mishqa
26.03.2024, 12:47
Вопрос,на пр205 датчик 50м нормально не работает, или я что то не так делаю? с пт1000 все отлично

Сергей0308
26.03.2024, 12:54
Вопрос,на пр205 датчик 50м нормально не работает, или я что то не так делаю? с пт1000 все отлично

Вы используете модуль расширения ПРМ-3?
https://owen.ru/product/prm/specifications
Если нет, то где Вы увидели поддержку этих датчиков?

kondor3000
26.03.2024, 13:17
Вопрос,на пр205 датчик 50м нормально не работает, или я что то не так делаю? с пт1000 все отлично

С 50М и 100М у вас и не будет нормально работать, ставьте Pt1000.

Mishqa
26.03.2024, 14:54
Понял,спасибо

halava
23.04.2024, 16:01
Здравствуйте подскажите применил макрос 2PosUPReg Сигнализатор вх/вых величины за границы из менеджера компонентов ,при работе макроса дребезжит реле на выходе ОВЕН ПР200 .

halava
23.04.2024, 16:07
Здравствуйте подскажите применил макрос 2PosUPReg Сигнализатор вх/вых величины за границы из менеджера компонентов ,при работе макроса дребезжит реле на выходе ОВЕН ПР200 .Да при подходе к границам дельты.

Dimensy
23.04.2024, 16:38
Здравствуйте подскажите применил макрос 2PosUPReg Сигнализатор вх/вых величины за границы из менеджера компонентов ,при работе макроса дребезжит реле на выходе ОВЕН ПР200 .Да при подходе к границам дельты.

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

halava
23.04.2024, 17:16
Извините за вопрос разобрался.

Traveller
03.06.2024, 11:32
Доброго времени суток!
В базе Owen Logic есть такой замечательный макрос "AVG", так то вроде все понятно его назначение, но непонятно как он работает в том смысле он будет усреднять по тому кол-ву значений которое определено на входе "N" при условии что на входе En стоит разрешение, затем он авто-сбросился и пошел усреднять заново или усреднение происходит непрерывно по последним значениям кол-во которых определяет значение на входе "N"

Traveller
03.06.2024, 11:34
deleted message

Dimensy
03.06.2024, 12:15
Доброго времени суток!
В базе Owen Logic есть такой замечательный макрос "AVG", так то вроде все понятно его назначение, но непонятно как он работает в том смысле он будет усреднять по тому кол-ву значений которое определено на входе "N" при условии что на входе En стоит разрешение, затем он авто-сбросился и пошел усреднять заново или усреднение происходит непрерывно по последним значениям кол-во которых определяет значение на входе "N"

Там же в описании все написано.
Макрос усредняет N входящих значений, потом фиксирует (защелкивает) полученный результат на выходе, сбрасывается и начинает считать заново

Сергей0308
03.06.2024, 12:38
Там же в описании все написано.
Макрос усредняет N входящих значений, потом фиксирует (защелкивает) полученный результат на выходе, сбрасывается и начинает считать заново

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

Dimensy
03.06.2024, 13:09
В смысле, находит среднее арифметическое за определённый период: суммирует значения с определённым периодом и делит на количество измерений, потом сумма сбрасывается и процесс повторяется или высчитывает среднее арифметическое скользящим окном: с определённым периодом значения пишутся в стек, значения всех разрядов стека суммируются и делятся на количество разрядов? Количеством разрядов стека умноженное на период записи определяют ширину скользящего окна в масштабе времени.

находит среднее арифметическое за определённый период: суммирует значения с определённым периодом и делит на количество измерений, конечный полученный результат фиксируется на выходе, потом сумма сбрасывается и процесс повторяется

Traveller
03.06.2024, 13:27
Там же в описании все написано.
Макрос усредняет N входящих значений, потом фиксирует (защелкивает) полученный результат на выходе, сбрасывается и начинает считать заново


находит среднее арифметическое за определённый период: суммирует значения с определённым периодом и делит на количество измерений, конечный полученный результат фиксируется на выходе, потом сумма сбрасывается и процесс повторяетсяТогда не подходит! :) придется вставлять свой макрос, но он только на 128 значений, но зато скользящим окном идет... :)

Сергей0308
03.06.2024, 13:50
Тогда не подходит! :) придется вставлять свой макрос, но он только на 128 значений, но зато скользящим окном идет... :)

В смысле, не подходит, разница только в меньшем периоде обновления при вычислении скользящим окном, Вас какой период обновления устроит?

Traveller
03.06.2024, 14:05
В смысле, не подходит, разница только в меньшем периоде обновления при вычислении скользящим окном, Вас какой период обновления устроит?
Да забейте, у меня нет периода обновления, у меня есть кол-во входящих данных, а идут они хаотично и непрерывно, вот и нужно в этом числовом окне (кол-во переменных), в общем нужно среднее арифметическое по последним N-значениям, без привязки ко времени цикла, т.е. есть 128 значений, поступило 129, первое затерлось и так по кругу. У меня уже давно есть рабочий макрос, который так делает, просто подумал, что этот будет полегче в плане кол-ва элементов... :)
https://owen.ru/forum/attachment.php?attachmentid=76215&stc=1&d=1717412685
https://owen.ru/forum/attachment.php?attachmentid=76216&stc=1&d=1717412695

Сергей0308
03.06.2024, 15:35
Да забейте, у меня нет периода обновления, у меня есть кол-во входящих данных, а идут они хаотично и непрерывно, вот и нужно в этом числовом окне (кол-во переменных), в общем нужно среднее арифметическое по последним N-значениям, без привязки ко времени цикла, т.е. есть 128 значений, поступило 129, первое затерлось и так по кругу. У меня уже давно есть рабочий макрос, который так делает, просто подумал, что этот будет полегче в плане кол-ва элементов... :)
https://owen.ru/forum/attachment.php?attachmentid=76215&stc=1&d=1717412685
https://owen.ru/forum/attachment.php?attachmentid=76216&stc=1&d=1717412695

Вы же пишите значения в стек с определённым периодом, например равным двум циклам программы, я могу и каждый цикл программы писать значения, короче это и будет периодом обновления!
В одной из тем "капзап" предлагал упрощённый алгоритм вычисления среднего значения скользящим окном, в смысле когда стек полностью заполнен, при каждом последующем такте записи в стек у нас к сумме стека прибавляется самое новое значение и отнимается самое старое, поэтому алгоритм можно упростить в разы, надеюсь понятно написал?

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

Dimensy
03.06.2024, 16:00
Вы же пишите значения в стек с определённым периодом, например равным двум циклам программы, я могу и каждый цикл программы писать значения, короче это и будет периодом обновления!
В одной из тем "капзап" предлагал упрощённый алгоритм вычисления среднего значения скользящим окном, в смысле когда стек полностью заполнен, в каждом последующем такте записи в стек у нас к сумме стека прибавляется самое новое значение и отнимается самое старое, поэтому алгоритм можно упростить в разы, надеюсь понятно написал?

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

А как без стека, нам ведь, по-любому, нужно помнить старые значения?

Сергей0308
03.06.2024, 16:07
А как без стека, нам ведь, по-любому, нужно помнить старые значения?

Так в сумматоре запоминается сумма значений стека, например 128 значений, как у товарища, каждый последующий такт к этой сумме прибавляется самое новое значение и отнимается самое старое в смысле достаточно выхода от самого последнего разряда стека и сам алгоритм существенно упростится, в разы. Да сам стек в принципе сохранится, но в гораздо упрощённом виде.
И, сделать такое проще!
И сам стек можно упростить, типа так: 76218

Traveller
03.06.2024, 16:57
Вы же пишите значения в стек с определённым периодом, например равным двум циклам программы, я могу и каждый цикл программы писать значения, короче это и будет периодом обновления!
В одной из тем "капзап" предлагал упрощённый алгоритм вычисления среднего значения скользящим окном, в смысле когда стек полностью заполнен, при каждом последующем такте записи в стек у нас к сумме стека прибавляется самое новое значение и отнимается самое старое, поэтому алгоритм можно упростить в разы, надеюсь понятно написал?

Получается, что стек и не нужен, в смысле, достаточно сумматора и ширину окна можно сделать практически любую без усложнения алгоритма!Чё вы привязались к этим циклам программы? нет у меня привязки ко времени, у меня каждый новый такт, может меняться, первый такт=0,5 сек., второй=1,5, третий=0,3сек., и.т.д., какие циклы прогамм, нафиг они мне нужны, ну да в макросе из базы данных, там идет непрерывный поток данных от датчика температуры и это оправданно, в моем случае это вообще не нужно ибо мне нужно усреднить частоту следования импульсов, которые идут как бог на душу положит...
И да, что бы два раза не вставать, говорю все уже сделано и все уже работает, просто хотел немного оптимизировать не более того... :)

Сергей0308
03.06.2024, 18:13
Чё вы привязались к этим циклам программы? нет у меня привязки ко времени, у меня каждый новый такт, может меняться, первый такт=0,5 сек., второй=1,5, третий=0,3сек., и.т.д., какие циклы прогамм, нафиг они мне нужны, ну да в макросе из базы данных, там идет непрерывный поток данных от датчика температуры и это оправданно, в моем случае это вообще не нужно ибо мне нужно усреднить частоту следования импульсов, которые идут как бог на душу положит...
И да, что бы два раза не вставать, говорю все уже сделано и все уже работает, просто хотел немного оптимизировать не более того... :)

И упрощайте, Вам даже подсказали как это можно сделать, в смысле, самому даже думать не надо! В вашем случае это упрощение(оптимизация) может составить до двух порядков, в смысле по количеству используемых элементов!
Хорошо, чтобы на два порядка упростить это стараться надо, на порядок в лёгкую упростится, в смысле, по количеству используемых элементов или Вы уже передумали?
Как говорят, лучше поздно, чем никогда!

Я имею ввиду ваш алгоритм вычисления среднего скользящим окном со стеком глубиной(разрядностью) 128, а период следования тактовых сигналов здесь ни при чём, это я пример привёл, Вы что ещё и плохо видите, в смысле, я же написал!

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

Короче, чтобы тяп-ляп сделать и ума не надо, Вы попробуйте на порядок точней(я пример привёл с теплосчётчиком) и на порядок проще сделать(тоже варианты упрощения обозначил), в итоге в 100 раз лучше получится, чем такое не устраивает?

Traveller
04.06.2024, 08:37
И упрощайте, Вам даже подсказали как это можно сделать, в смысле, самому даже думать не надо! В вашем случае это упрощение(оптимизация) может составить до двух порядков, в смысле по количеству используемых элементов!
Хорошо, чтобы на два порядка упростить это стараться надо, на порядок в лёгкую упростится, в смысле, по количеству используемых элементов или Вы уже передумали?
Как говорят, лучше поздно, чем никогда!

Я имею ввиду ваш алгоритм вычисления среднего скользящим окном со стеком глубиной(разрядностью) 128, а период следования тактовых сигналов здесь ни при чём, это я пример привёл, Вы что ещё и плохо видите, в смысле, я же написал!

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

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

Сергей0308
04.06.2024, 10:50
Я не нашел как это можно делать именно в этом макросе ибо там есть счетчик с автосбросом, который все обнуляет и другой макрос который тупо складывает все значения, но опции что самое старое значение вычитается, а новое прибавляется, этого там нет, во всяком случае я не нашел, думать как это сделать мне лень, вы же тоже ничего кроме общих фраз не излагаете, а писать что вы тут во всем разбираетесь, без верификации своего интеллекта, эдак и я так могу...:)

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

76228

76229

И, для увеличения ширины окна достаточно стек расширить до нужной глубины(разрядности).

Traveller
04.06.2024, 12:15
Не знаю чего Вы искали, вроде всё понятно разложил, короче, это дело пяти минут сделать, чего там искать, вот мой пример, приблизительно как-то так:

76228

76229

И, для увеличения ширины окна достаточно стек расширить до нужной глубины(разрядности).
Ну вот это уже предметный разговор, тока это ни фига не проще того что я нарисовал, а может даже и сложнее, все эти упаковки, распаковки и то что между, ну в общем зачет, но мне такого не нать... :)
Уж простите, это не оптимизация, это просто другой путь, на мой взгляд несколько более тернистый... :)

Ща пока не до этого, но у меня есть мысли как это дело действительно оптимизировать, т.е. свести к миниму кол-во дискретных элементов, как взгрустнеца может чё и придумаю, но не обещаю... :)
Ежели что сделаю, то выложу... :)

1exan
04.06.2024, 13:15
Ну вот это уже предметный разговор, тока это ни фига не проще того что я нарисовал, а может даже и сложнее, все эти упаковки, распаковки и то что между, ну в общем зачет, но мне такого не нать... :)
Уж простите, это не оптимизация, это просто другой путь, на мой взгляд несколько более тернистый... :)

Ща пока не до этого, но у меня есть мысли как это дело действительно оптимизировать, т.е. свести к миниму кол-во дискретных элементов, как взгрустнеца может чё и придумаю, но не обещаю... :)
Ежели что сделаю, то выложу... :)

Вариант на ST на базе оскатовского блока фильтра (за 100% работоспособность не ручаюсь, напильник в комплекте):


FUNCTION_BLOCK FILTER_MAV_I
VAR_INPUT
X : UDINT; (* Данные *)
N : UDINT := 32; (* Глубина *)
C : BOOL := TRUE; (* Импульс для обновления данных *)
RST : BOOL;
END_VAR
VAR_OUTPUT
Y : UDINT;
END_VAR
VAR
init: BOOL;
buffer : ARRAY[1..32] OF UDINT;
i: UDINT;
sum : UDINT;

tmp : UDINT;
END_VAR

(*
version 1.5
edit 1exan

version 1.4 26. MAR. 2011
programmer hugo
tested by oscat

FILTER_MAV_W is a moving average filter with programmable length N for WORD Data.
*)

(* limit N to size of buffer *)
IF N > 32 THEN N := 32; END_IF;

(* startup initialisation *)
IF NOT init OR rst OR N = 0 OR tmp <> N THEN
init := TRUE;
tmp := N;
FOR i := 1 TO tmp DO
buffer[i] := X;
END_FOR;
Y := X;
sum := Y * N;

ELSE
IF C THEN
tmp := N;

IF i >= tmp THEN i := 1;
ELSE i := i + 1; END_IF;

sum := sum + X - buffer[i];

buffer[i] := X;
END_IF;
Y := sum / N;
END_IF;

end_function_block

Сергей0308
04.06.2024, 13:39
Ну вот это уже предметный разговор, тока это ни фига не проще того что я нарисовал, а может даже и сложнее, все эти упаковки, распаковки и то что между, ну в общем зачет, но мне такого не нать... :)
Уж простите, это не оптимизация, это просто другой путь, на мой взгляд несколько более тернистый... :)

Ща пока не до этого, но у меня есть мысли как это дело действительно оптимизировать, т.е. свести к миниму кол-во дискретных элементов, как взгрустнеца может чё и придумаю, но не обещаю... :)
Ежели что сделаю, то выложу... :)

Допустим стек можете свой оставить, к тому же упростить, в смысле, достаточно будет выхода от крайнего разряда стека.
Мой стек реверсивный, если Вы своему реверс приделаете - он получится куда сложнее моего. Короче, в данном случае реверс не нужен, стек оставьте свой, это я насчёт общего понимания простоты! С моим стеком для реализации вашего метода вычисления не надо и выходы делать от всех используемых разрядов стека, в смысле, можно по очереди выводить на один выход и суммировать. К тому же мой макрос можно использовать и как матрицу памяти на 32 ячейки памяти(0-31), в смысле, при смене адреса разряда(регистра) для записи, по преведущему адресу в ячейке сохранится значение на входе "IN" в момент смены адреса.
И, чуть не забыл, энергонезависимость у моего стека для данного случая нужно убрать, она только вредна в этом конкретном случае, для этого достаточно у соответствующей переменной подмакроса убрать энергонезависимость.

Traveller
04.06.2024, 13:44
Допустим стек можете свой оставить, к тому же упростить, в смысле, достаточно будет выхода от крайнего разряда стека.
Мой стек реверсивный, если Вы своему реверс приделаете - он получится куда сложнее моего. Короче, в данном случае реверс не нужен, стек оставьте свой, это я насчёт общего понимания простоты! С моим стеком для реализации вашего метода вычисления не надо и выходы делать от всех используемых разрядов стека, в смысле, можно по очереди выводить на один выход и суммировать. К тому же мой макрос можно использовать и как матрицу памяти на 32 ячейки памяти(0-31), в смысле, при смене адреса разряда(регистра) для записи, по преведущему адресу в ячейке сохранится значение на входе "IN" в момент смены адреса.Это уже вода, мне не важно как это работает, мне важно что бы это работало, в принципе и мой работает исправно... :)

Traveller
04.06.2024, 13:53
Вариант на ST на базе оскатовского блока фильтра (за 100% работоспособность не ручаюсь, напильник в комплекте):Спасибо конечно, но я еще не так сильно образован в языках программирования, что бы допиливать это, мне нужно более вдумчиво подойти к этой проблеме, но т.к. проблема пока не проблема или не такая уж сильная проблема, то мы это пока пропустим, хотя признаю, что это было бы более красивое и правильное решение, чем наши все вместе взятые, Снимаю шляпу! :)

Сергей0308
04.06.2024, 23:46
Я так бы предпочёл, принцип работы выше описал, в смысле, на один выход по очереди выводятся все разряды стека, суммируются и сумма делится на количество разрядов, всё!

76258

76259

Цикл работы этого алгоритма будет составлять 62 цикла программы, что при времени цикла программы в 16 мс примерно составит одну секунду, в смысле, на выходе алгоритма всегда будет среднее арифметическое за последнюю секунду измерения!
При этом период обновления = 32 мс, в смысле, два цикла программы!

Traveller
05.06.2024, 06:23
Я так бы предпочёл, принцип работы выше описал, в смысле, на один выход по очереди выводятся все разряды стека, суммируются и сумма делится на количество разрядов, всё!Вы не поверите, но у меня именно так и работает... :) Единственное, что в этом макросе максимальное кол-во переменных равно 128, но на тот момент, да и сейчас тоже, больше было и не нужно, поэтому как есть. :)
https://owen.ru/forum/attachment.php?attachmentid=76273&stc=1&d=1717568267
https://owen.ru/forum/attachment.php?attachmentid=76274&stc=1&d=1717568274
https://owen.ru/forum/attachment.php?attachmentid=76275&stc=1&d=1717568283

Сергей0308
05.06.2024, 11:09
Вы не поверите, но у меня именно так и работает... :) Единственное, что в этом макросе максимальное кол-во переменных равно 128, но на тот момент, да и сейчас тоже, больше было и не нужно, поэтому как есть. :)
https://owen.ru/forum/attachment.php?attachmentid=76273&stc=1&d=1717568267
https://owen.ru/forum/attachment.php?attachmentid=76274&stc=1&d=1717568274
https://owen.ru/forum/attachment.php?attachmentid=76275&stc=1&d=1717568283

Да, в принципе тоже самое, только я один сумматор использую для суммирования всех разрядов, а Вы 127!

Traveller
05.06.2024, 11:16
Да, в принципе тоже самое, только я один сумматор использую для суммирования всех разрядов, а Вы 127!128! :) Пусть и так, просто это делалось на скорую руку и я особо не заморачивался на этом, мне нужен был результат и да, по кол-ву элементов, у меня все же полегче чем у вас, у вас там несколько сложнее внутри выглядит, если до кишок добираться....:) Я так думаю... :)
В общем предлагаю ничью! :)
Будет время и желание попробую свой алгоритм допилить и расширить в плане кол-ва усредняемых данных, если что сделаю, то выложу... :)

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

Traveller
05.06.2024, 15:26
Кстати у меня тут еще есть один алгоритм, в стадии разработки, но я пока не готов его продемонстрировать, еще не довел до ума, там другой принцип, в потоке данных выделяются максимальные и минимальные значения и высчитывается их среднее арифметическое, в принципе я его проверял и сравнивал с тем своим и они в принципе показывают одно и тоже.... :)Ну вот в принципе, вроде получился и как бы даже работает, посмотрите что не так, то что не так и я увидел, ну в первых N тактах ("глубина усреднения") минимальное значение будет нулевым со всеми вытекающими, я полагаю, это можно исправить, но пока лень думать, но зато можно сделать любую глубину в диапазоне возможностей счетчика, а, и еще при достижении диапазона усреднения, на выход записывается последнее значение на входе, пока не понял, критично это или нет... :)
https://owen.ru/forum/attachment.php?attachmentid=76291&stc=1&d=1717590250

Бакдаулет
30.07.2024, 13:06
Добрый день, с помощью какого макроса можно увидеть значения температуры с нпт 3.0.0.1.2 в owen logic ,через пр100, я настроил вход на 4-20мА

kondor3000
30.07.2024, 13:25
Добрый день, с помощью какого макроса можно увидеть значения температуры с нпт 3.0.0.1.2 в owen logic ,через пр100, я настроил вход на 4-20мА

Вам одной темы мало? Зачем вы в 3 темах пишите одновременно? https://owen.ru/forum/showthread.php?t=29744&page=47
Выложите уже наконец скрины , где как и что настроено. Напишите какой у вас датчик и как вы настроили НПТ-3.

Рогов Алексей
30.07.2024, 15:37
Добрый день!

Для статистики может это подойдёт?77705

PhK
15.08.2024, 16:33
Добрый день. На этом сайте https://vent.owen.ru/makrosy?tags%5B0%5D=2&page=2 представлено гораздо больше макросов для вентиляции, чем в библиотеке лоджика. Где их можно найти?

Королев Кирилл
15.08.2024, 16:43
Добрый день. На этом сайте https://vent.owen.ru/makrosy?tags%5B0%5D=2&page=2 представлено гораздо больше макросов для вентиляции, чем в библиотеке лоджика. Где их можно найти?

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

Filter59
11.09.2024, 10:50
не могу найти макрос CTMU. ткните носом!

kondor3000
11.09.2024, 15:20
не могу найти макрос CTMU. ткните носом!

Тут проект с макросом CTMU https://owen.ru/forum/showthread.php?t=36466&page=2

Сергей0308
11.09.2024, 15:55
не могу найти макрос CTMU. ткните носом!

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

Filter59
11.09.2024, 16:36
премного благодарен!!!

Filter59
11.09.2024, 16:42
Так там практически готовый расходомер, в смысле зная вес импульса счётчика с импульсным выходом, можно легко пересчитать период следования импульсов в расход, более того, много раз уже подобное делали!

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

petera
10.10.2024, 10:08
Так ты для 24 года получил юникс время
А хотел для 2024
Прибавь 2000 к системной переменной с годом

ЗЫ.
https://owen.ru/forum/attachment.php?attachmentid=16915&d=1425224217
ТС убежал, пока отвечал

Gena72
10.10.2024, 10:11
Удалил. Я перенес сообщение в другую ветку (обсуждение макросов). Прибавление 2000, реализовано у меня в макросе.

heavyprapor
15.10.2024, 08:59
Добрый день!
Подскажите пожалуйста.
Есть задача подключить датчик 50М напрямую к ПР-102. В списке возможных термосопротивлений для настройки аналогового входа 50М нет.
Но есть программный модуль - преобразователь сопротивления в температуру (50М)
Вопрос какая настройка должна быть у аналогового входа в этом случае?

kondor3000
15.10.2024, 09:09
Добрый день!
Подскажите пожалуйста.
Есть задача подключить датчик 50М напрямую к ПР-102. В списке возможных термосопротивлений для настройки аналогового входа 50М нет.
Но есть программный модуль - преобразователь сопротивления в температуру (50М)
Вопрос какая настройка должна быть у аналогового входа в этом случае?

Не надо использовать 50М, 100М с любыми ПР. Погрешность будет +/- 15 градусов. Используйте Pt1000. Либо докупайте ещё модуль ПРМ-3.
А подключить можно поставив измерение сопротивления на входе и макрос 50М.

FPavel
15.10.2024, 09:12
Настройка - измерение сопротивлений.

Но проблема в том, что погрешность измерений будет огромной и зависеть от температуры проводов (плавать и не поддаваться коррекции).
Предполагаю, что погрешность будет составлять 5-10 C.

Требуйте замены датчика на высокоомный, вроде Pt1000 (не Pt100, а именно 1000 - тысяча). Даже Pt100 даёт неудовлетворительные результаты.

heavyprapor
17.10.2024, 14:59
Спасибо за развёрнутый ответ.
Попробовал на практике с настройкой аналогового входа 300кОм + программный модуль. Получилась (как справедливо замечено) дичь.
Использовалось 2 датчика, измеряли температуру в двух одинаковых ёмкостях. Начальное сопротивление на датчиках было 54.4 Ом. На контроллер приходили значения 50.1 и 51.2
Кроме того после начала нагрева приходящие значения сопротивления вообще начали падать.
Далее эксперимент был признан неудачным и заказаны НПТ-3.

Солнечный заяц
15.11.2024, 10:46
Блок определения максимального числа не работает? Или я что-то не понимаю?
80071

Солнечный заяц
15.11.2024, 11:05
Все нормально
Не понял вас, что нормально? Что ФБ выдает неправильное значение? :)
Да и при чем здесь пузырьковая сортировка? В этом блоке ее нет. Выводиться должно максимальное значение и номер входа с максимальным значением.

EFrol
15.11.2024, 11:08
Блок определения максимального числа не работает? Или я что-то не понимаю?
80071

Этот блок выдает 0, если будет 2 и более максимальных.

Если будет достаточно значения и индекса 1-го максимального, попробуйте:


function_block MAX10_

var_input
X1 : udint;
X2 : udint;
X3 : udint;
X4 : udint;
X5 : udint;
X6 : udint;
X7 : udint;
X8 : udint;
X9 : udint;
X10 : udint;
end_var

var_output
VMax : udint;
NMax : udint;
end_var

VMax := X1; NMax := 1;
if X2 > VMax then VMax := X2; NMax := 2; end_if
if X3 > VMax then VMax := X3; NMax := 3; end_if
if X4 > VMax then VMax := X4; NMax := 4; end_if
if X5 > VMax then VMax := X5; NMax := 5; end_if
if X6 > VMax then VMax := X6; NMax := 6; end_if
if X7 > VMax then VMax := X7; NMax := 7; end_if
if X8 > VMax then VMax := X8; NMax := 8; end_if
if X9 > VMax then VMax := X9; NMax := 9; end_if
if X10 > VMax then VMax := X10; NMax := 10; end_if

end_function_block

Солнечный заяц
15.11.2024, 11:22
Этот блок выдает 0, если будет 2 и более максимальных.
Да, опасная особенность. Не ожидал такого подвоха. Да, я понимаю, что в описании ФБ есть упоминание этой "фичи", но все же. Впреть буду пользоваться онлайн библиотекой с большей осторожностью.

Солнечный заяц
15.11.2024, 11:43
Если будет достаточно значения и индекса 1-го максимального, попробуйте:


function_block MAX10_

var_input
X1 : udint;
X2 : udint;
X3 : udint;
X4 : udint;
X5 : udint;
X6 : udint;
X7 : udint;
X8 : udint;
X9 : udint;
X10 : udint;
end_var

var_output
VMax : udint;
NMax : udint;
end_var

VMax := X1; NMax := 1;
if X2 > VMax then VMax := X2; NMax := 2; end_if
if X3 > VMax then VMax := X3; NMax := 3; end_if
if X4 > VMax then VMax := X4; NMax := 4; end_if
if X5 > VMax then VMax := X5; NMax := 5; end_if
if X6 > VMax then VMax := X6; NMax := 6; end_if
if X7 > VMax then VMax := X7; NMax := 7; end_if
if X8 > VMax then VMax := X8; NMax := 8; end_if
if X9 > VMax then VMax := X9; NMax := 9; end_if
if X10 > VMax then VMax := X10; NMax := 10; end_if

end_function_block

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

novinky
10.12.2024, 09:21
Покажите пожалуйста пример как вызвать макрос Pt100 в ST функции
Так же 50М.

EFrol
10.12.2024, 17:29
Покажите пожалуйста пример как вызвать макрос Pt100 в ST функции
Так же 50М.

Не помню, чтобы пользовательские ФБ можно было вызывать из ST - только системные.
Хотя если переписать ФБ на ST, то - можно.

FPavel
10.12.2024, 18:41
Полиномы термопреобразователей описаны в ГОСТ - можно взять коэффициенты из него, добавить проверки на обрыв и короткое замыкание.

Помню, что в действующем ГОСТ для термопар для какого-то редкого случая содержится ошибка - все коэффициенты полинома неправильные, обещали исправить в следующих редакциях. Но тут вопрос про термопреобразователях сопротивления, с ними всё в порядке.

Dimensy
10.12.2024, 20:03
Покажите пожалуйста пример как вызвать макрос Pt100 в ST функции
Так же 50М.

А нафига его вызывать где-то внутри функции? Это ведь преобразователь входной величины - их, обычно, снаружи располагают

FPavel
11.12.2024, 19:25
Подозреваю, что человек желает сделать универсальный обработчик аналогового входа - изменяется код датчика и программа через if/case выбирает полином.
По крайней мере подобное описано разработчиками Овен, но скачать невозможно
https://vent.owen.ru/makrosy/sensor


Покажите пожалуйста пример как вызвать макрос Pt100 в ST функции
Так же 50М.
Как-то не сразу осознал НСХ.

Для термопреобразователей сопротивления, включённых по 2-проводной схеме и схемотехники аналоговых входов ПР, гарантируется точность ±15℃. Если она устраивает - я уезжаю из страны в безопасную Сирию.

s.black
25.12.2024, 22:25
Всем привет! как пользоваться макросом Pt1000? Если в нем циклическая связь на выходе SEL_FLOAT 2 к t.

FPavel
25.12.2024, 23:04
Не обращать внимание - макрос проверен и работоспособен.

bayk
05.01.2025, 04:34
Всем привет! как пользоваться макросом Pt1000? Если в нем циклическая связь на выходе SEL_FLOAT 2 к t.
Можете его открыть и поправить, установив вместо циклической связи линию задержки. Насколько помню она там уже почти на выходе. И задержка передачи значения на выход в 1 цикл погоды не сделает, а вот желтизну уберет

valphar
09.01.2025, 14:14
Доброго времени суток всем, и с наступившим 2025 годом! Возможно дурацкий вопрос и я чего-то не нашел, но: где можно скачать сами макросы? я вижу только описание. Заранее благодарю.

1exan
09.01.2025, 14:16
Доброго времени суток всем, и с наступившим 2025 годом! Возможно дурацкий вопрос и я чего-то не нашел, но: где можно скачать сами макросы? я вижу только описание. Заранее благодарю.

Отмечаете нужные, нажимаете кнопку
81213

valphar
09.01.2025, 15:19
Спасибо! все оказалось намного проще, чем я думал ))

meridian86
20.01.2025, 11:51
Здравствуйте! Есть проблема с Менеджером компонентов. Доступ к интернету имеется, но списков нет. В чем причина?
81430

kondor3000
20.01.2025, 12:47
Здравствуйте! Есть проблема с Менеджером компонентов. Доступ к интернету имеется, но списков нет. В чем причина?
81430

Доступа к менеджеру нет, только если не создан проект. У меня всё работает OWEN Logic2.8.362 81435

meridian86
20.01.2025, 13:08
Проект создан. Менеджер открывается. Но "наполнения" нет.

meridian86
20.01.2025, 13:32
Заработал.Вопрос снят.

sepo
29.01.2025, 03:18
Вопрос, в онлайн базе есть отличные описания макросов, а вот в локальную базу они не попадают, это так и должно быть? Просто очень не удобно когда на выезде работаешь или нет интернета, а описание сильно упрощает работу.

kondor3000
29.01.2025, 08:38
Вопрос, в онлайн базе есть отличные описания макросов, а вот в локальную базу они не попадают, это так и должно быть? Просто очень не удобно когда на выезде работаешь или нет интернета, а описание сильно упрощает работу.

Вы наверное только начали работать с ПР, через год нафик описание не нужно будет. И проект надо на работе писать, а на выезде только настроить.
В биб-ке нет описания, только входы и выходы расписаны.

melky
29.01.2025, 09:00
человек видимо про pdf со справкой по макросу, чтобы они тоже загружались в локальную библиотеку.

FPavel
29.01.2025, 20:19
Да, меня тоже не радует ситуация, когда "компоненты" недоступны без интернета, а при наличии интернета происходит повторное чтение сведений, которые уже многократно считаны. Да ещё и привязка к Acrobat Reader - пришлось устанавливать, хотя 20 лет пользовался и сейчас продолжаю пользоваться другой программой.

Ладно, хватит о грустном...

Видел на форуме совет, которому следую:
- скачал все макросы и pdf-описания к ним с сервера или последовательно из "компонентов"
- нужный макрос в проект помещаю через меню Файл - импорт макроса из файла, как будто это мой разработанный макрос, которого нет на сервере.

sepo
30.01.2025, 16:08
Не совсем понял про работу ), у меня работа там где я. А вот интернет не всегда у нас в Якутии есть на месте. Писать приходится в разных местах под различные задачи. Жаль что такой возможности нет. Получается только вручную описания сохранять

sepo
30.01.2025, 16:09
Да, меня тоже не радует ситуация, когда "компоненты" недоступны без интернета, а при наличии интернета происходит повторное чтение сведений, которые уже многократно считаны. Да ещё и привязка к Acrobat Reader - пришлось устанавливать, хотя 20 лет пользовался и сейчас продолжаю пользоваться другой программой.

Ладно, хватит о грустном...

Видел на форуме совет, которому следую:
- скачал все макросы и pdf-описания к ним с сервера или последовательно из "компонентов"
- нужный макрос в проект помещаю через меню Файл - импорт макроса из файла, как будто это мой разработанный макрос, которого нет на сервере.

видимо так и буду делать, спасибо за ответ!

Евений
22.02.2025, 22:24
Скажите пожалуйста!!! почему перестала открываться онлайн база макросов?

zemliak
23.02.2025, 08:54
Скажите пожалуйста!!! почему перестала открываться онлайн база макросов?

Да, проблема остается. Какой прогноз, когда будет работать?

Viktor1981
05.03.2025, 11:32
Всех приветствую! Я новичок, сильно не пинайте: пишу программу в Codesys 2.3 и нужен блок который будет сигнализировать о росте или падении целочисленной переменной, просто в овен лоджик этот макрос есть(VIP) а в Codesys не понимаю как это реализовать? Может кто подсказать? Заранее благодарен!

Viktor1981
05.03.2025, 12:04
Спасибо, попробую!

Viktor1981
05.03.2025, 12:14
Я так понимаю: что блок LIMITALARM ограничен цифрами 32768 ?

Viktor1981
05.03.2025, 12:24
Принято! Огромное спасибо!

EVGEN_
06.06.2025, 17:37
84204
Вроде наклевывается работенка на ПР225, забегаю чуть наперед, так как модернизацию еще не утвердили, но хотелось бы разобраться в макросе ПИД-регулятора:
Ua_pwr_min - ставить 0?
Ua_pwr_max - ставить 100?
Ua_pwr_off - ставить 0?
Iv_pause - не совсем понятно для чего

Автонастройки нет?

FPavel
06.06.2025, 18:51
Если открыть этот макрос через Owen Logic - Компоненты, то подгрузится pdf с описанием макроса.
В крайнем случае, описание можно взять на сервере Овен.

Поэтому перечислять назначение не буду.
Скажу лишь, что Ua_pwr_off не обязательно равен 0 - можно организовать безударный переход в РУЧНОЙ режим и обратно, с установкой выхода при помощи панели оператора или другого способа.

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

Traveller
06.06.2025, 19:08
84204
Вроде наклевывается работенка на ПР225, забегаю чуть наперед, так как модернизацию еще не утвердили, но хотелось бы разобраться в макросе ПИД-регулятора:
Ua_pwr_min - ставить 0?
Ua_pwr_max - ставить 100?
Ua_pwr_off - ставить 0?
Iv_pause - не совсем понятно для чего

Автонастройки нет?Автонастройки пока нет, но разработчики говорят что допиливают ФБ для ПР205, ПР225 с режимом автонастройки (https://owen.ru/forum/showthread.php?t=26216&p=464734&viewfull=1#post464734), в общем если им верить, то нужно немного подождать :)

Traveller
06.06.2025, 19:10
84204
Вроде наклевывается работенка на ПР225, забегаю чуть наперед, так как модернизацию еще не утвердили, но хотелось бы разобраться в макросе ПИД-регулятора:
Ua_pwr_min - ставить 0?
Ua_pwr_max - ставить 100?
Ua_pwr_off - ставить 0?
Iv_pause - не совсем понятно для чего

Автонастройки нет?Автонастройки пока нет, но разработчики говорят что допиливают ФБ для ПР205, ПР225 с режимом автонастройки (https://owen.ru/forum/showthread.php?t=26216&p=464734&viewfull=1#post464734), в общем если им верить, то нужно немного подождать :)

что касается вашего вопроса, то я его тоже задавал (https://owen.ru/forum/showthread.php?t=26216&p=464690&viewfull=1#post464690), в общем это фиксация значения на выходе, если его не фиксировать, то оно будет постоянно меняться, в зависимости от влияющих факторов...

FPavel
06.06.2025, 19:24
что касается вашего вопроса, то я его тоже задавал (https://owen.ru/forum/showthread.php?t=26216&p=464690&viewfull=1#post464690), в общем это фиксация значения на выходе, если его не фиксировать, то оно будет постоянно меняться, в зависимости от влияющих факторов...
Нет, фиксация - побочный эффект.

Главное назначение этого входа - безударный переход при переключении режима РУЧН-АВТ.

Просто Вам ещё не доводилось подобное собирать ни на ПР ни на ПЛК.

Traveller
06.06.2025, 22:25
Нет, фиксация - побочный эффект.

Главное назначение этого входа - безударный переход при переключении режима РУЧН-АВТ.

Просто Вам ещё не доводилось подобное собирать ни на ПР ни на ПЛК.Ну конечно не доводилось, эта функция так сложна как Бином Ньютона :D
84206

EVGEN_
07.06.2025, 04:42
Автонастройки нет, но в большинстве случаев коэффициенты можно вычислить даже до начала программирования, а не то, что наладки.

Если не сложно, можете подсказать как? Ранее приходилось до подбирать коэффициенты после пусконаладки или после замены клапана, а так чтобы прям с нулевых значений не доводилось пока

EVGEN_
07.06.2025, 04:45
Нет, фиксация - побочный эффект.

Главное назначение этого входа - безударный переход при переключении режима РУЧН-АВТ
Можете хотя бы в кратце описать как это работает - безударный режим?

capzap
07.06.2025, 04:48
Если не сложно, можете подсказать как? Ранее приходилось до подбирать коэффициенты после пусконаладки или после замены клапана, а так чтобы прям с нулевых значений не доводилось пока

https://www.phind.com/search/cmblkpemy00003g6wawq44u5e как то так

FPavel
08.06.2025, 00:51
Можете хотя бы в кратце описать как это работает - безударный режим?
Выход поддерживается равным тому, что был только что в ручном режиме (за счёт записи в интегральную часть).
Уставка приравнивается к текущему значению параметра регулирования.
Эта уставка плавно изменяется к нужной по технологии уставке.

Нужно только проверить, чтобы именно этот макрос приравнивал интегральную часть к значению выхода (заданному со входа). Для ПР не доводилось реализовывать ручной режим, могу лишь догадываться о корректности реализации.

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

Артемий W
23.07.2025, 13:34
Добрый день!
Чем отличаются блоки GEN_PWM и PWMG ? На мой взгляд они выполняют одинаковые функции. Какой блок лучше адаптирован к постоянному изменению мощности с выхода ПИД, чтобы преобразовать сигнал 0-100 % в дискретный?

Dimensy
23.07.2025, 16:49
Добрый день!
Чем отличаются блоки GEN_PWM и PWMG ? На мой взгляд они выполняют одинаковые функции. Какой блок лучше адаптирован к постоянному изменению мощности с выхода ПИД, чтобы преобразовать сигнал 0-100 % в дискретный?

Они отличаются только способом задания периода ШИМ. В первом случае период задается в мс, в другом случае - в Гц. В остальном исполнение идентичное, на блоке BLINK
И что за мода один вопрос дублировать в разных темах?

majevgenij
21.08.2025, 20:26
Подскажите, есть пр205. Но в программе овенлоджик нет блока пид. Пришлось скачать из базы. Но в нем нет авто настройки. Есть выход из данной ситуации???

kondor3000
21.08.2025, 22:12
Подскажите, есть пр205. Но в программе овенлоджик нет блока пид. Пришлось скачать из базы. Но в нем нет авто настройки. Есть выход из данной ситуации???
https://owen.ru/forum/showthread.php?t=12264&p=470302&viewfull=1#post470302

Alex87
05.09.2025, 08:56
Здравствуйте. Может быть есть у кого-то макрос округления целого числа к ближайшему большему. В стандартной онлайн-базе не нашел. Заранее спасибо

EFrol
05.09.2025, 09:44
Может дробного (с плавающей запятой) к ближайшему большему целому?



function_block Ceiling

var_input
in : REAL;
end_var

var_output
Q : udint;
end_var

Q := real_to_udint(in);
if in > udint_to_real(Q) then Q := Q + 1; end_if

end_function_block


или

85596

Alex87
05.09.2025, 13:12
Да, спасибо большое

bayk
07.09.2025, 01:38
Здравствуйте. Может быть есть у кого-то макрос округления целого числа к ближайшему большему. В стандартной онлайн-базе не нашел. Заранее спасибо
Просто прибавьте 0,5 перед тем как добавить xToInt.

Сергей0308
07.09.2025, 02:02
Так он целое округляет, целое и так круглое, короче, ему ничего не надо делать, мне так кажется!

Dimensy
07.09.2025, 02:24
Просто прибавьте 0,5 перед тем как добавить xToInt.

Тогда округление будет к ближайшему целому. А челу надо к ближайшему большему

Belletein
23.09.2025, 16:38
При работе блока PID_AT_F_1 после уменьшения уставки требуемой величины блок выходит в ошибку, сброс не помогает. Есть работоспособные варианты изменения уставок блока? Программу и видео работы залил на облако https://cloud.mail.ru/public/E1Ss/kJdKJZs56

kondor3000
23.09.2025, 17:45
При работе блока PID_AT_F_1 после уменьшения уставки требуемой величины блок выходит в ошибку, сброс не помогает. Есть работоспособные варианты изменения уставок блока? Программу и видео работы залил на облако https://cloud.mail.ru/public/E1Ss/kJdKJZs56

Вот, скачайте проект и разберитесь как работает ПИД регулятор с автонастройкой (АНР), там всё подписано.
Просто уставку не надо ставить больше максимума и запускать работу без АНР.
АНР можно повторить и в симуляторе, плавно меняя вход, до окончания АНР.
У вас в макросе тот же ПИД.
Пример использования ПИД с сохранением настроек_______https://owen.ru/forum/showthread.php?t=17974&page=51#505

Dimensy
23.09.2025, 19:22
При работе блока PID_AT_F_1 после уменьшения уставки требуемой величины блок выходит в ошибку, сброс не помогает. Есть работоспособные варианты изменения уставок блока? Программу и видео работы залил на облако https://cloud.mail.ru/public/E1Ss/kJdKJZs56

Так этот макрос добавили в последний Лоджик. А этот Лоджик вышел корявый. Возможно и на новый ПИД корявость распространяется. Так что, лучше, пишите в тех поддержку

kondor3000
23.09.2025, 19:31
Так этот макрос добавили в последний Лоджик. А этот Лоджик вышел корявый. Возможно и на новый ПИД корявость распространяется. Так что, лучше, пишите в тех поддержку

Да всё работает даже в симуляторе, просто уставку не надо ставить больше максимума и запускать работу без АНР. 85888

Belletein
24.09.2025, 07:40
Да всё работает даже в симуляторе, просто уставку не надо ставить больше максимума и запускать работу без АНР. 85888

День добрый, я не совсем понял, что значит уставку не ставить больше максимума? Минимум и максимум - это выходы PID, в моём случае 0-100%, а уставка задаётся - давление - задаётся в килопаскалях, и может быть и 200, и 300 кПА.
И что значит нельзя запускать работу без АНР, если вручную коэффициенты подобрать не будет работать?

kondor3000
24.09.2025, 07:57
День добрый, я не совсем понял, что значит уставку не ставить больше максимума? Минимум и максимум - это выходы PID, в моём случае 0-100%, а уставка задаётся - давление - задаётся в килопаскалях, и может быть и 200, и 300 кПА.
И что значит нельзя запускать работу без АНР, если вручную коэффициенты подобрать не будет работать?

Где на видео подобраны коэффициенты? Максимум 100, на входе 100 и уставка 200? Что ПИД должен выдать по вашему?
Кому я про пример то писал?

Belletein
24.09.2025, 08:07
Где на видео подобраны коэффициенты? Максимум 100, на входе 100 и уставка 200? Что ПИД должен выдать по вашему?
Кому я про пример то писал?

Так максимум 100 - это Верхнее ограничение выдаваемой мощности, в моём случае это 50 Гц на частотнике насоса.
А на входе 100 - это текущее давление на выкиде насоса, 100 кПа,
А уставка 200 - это 200 кПа, которые я хочу получить.

ПИД должен увеличить выходное значение - до 100 % (максимум).
И он это делает. А потом приходит оператор и ставит уставку 100 килопаскалей и блок ломается.

Коэффициенты я подбираю так :Kp = 1, Ti = 0, Td = 0. Далее прибавляю Kp до появления автоколебаний. Делю Kp/2 и подбираю Ti. На видео Kp=1, Ti= 1. При автонастройке блок выдал Kp = 348...

На примере у вас блок PID для приборов первого поколения, для ПР225 он другой.

85889

kondor3000
24.09.2025, 08:52
Так максимум 100 - это Верхнее ограничение выдаваемой мощности, в моём случае это 50 Гц на частотнике насоса.
А на входе 100 - это текущее давление на выкиде насоса, 100 кПа,
А уставка 200 - это 200 кПа, которые я хочу получить.


При таком изменении уставки на 100-200 единиц, надо выключать Enable, да и коэффициенты изменять тоже.
Может проще давление вместо 100-300 КПа, задавать 0.1-0.3 МПа ?
Тогда ПИД не будет сходить с ума.

Королев Кирилл
24.09.2025, 10:30
При работе блока PID_AT_F_1 после уменьшения уставки требуемой величины блок выходит в ошибку, сброс не помогает. Есть работоспособные варианты изменения уставок блока? Программу и видео работы залил на облако https://cloud.mail.ru/public/E1Ss/kJdKJZs56

Добрый день. Ошибка наблюдается только в симуляции, проверил на приборе - работа корректная. Спасибо за обратную связь, исправим.

P.S. Обратите внимание на привязку выходных переменных (скрин 1). Вся часть с селекторами реализована внутри макроса. Корректнее будет выполнять привязку согласно документации на макрос (скрин 2)

Belletein
24.09.2025, 10:37
Добрый день. Ошибка наблюдается только в симуляции, проверил на приборе - работа корректная. Спасибо за обратную связь, исправим.

P.S. Обратите внимание на привязку выходных переменных (скрин 1). Вся часть с селекторами реализована внутри макроса. Корректнее будет выполнять привязку согласно документации на макрос (скрин 2)
85891
85892

Спасибо за оперативность.
Ссылки не открываются, продублируйте пожалуйста

85893

Королев Кирилл
24.09.2025, 10:46
Спасибо за оперативность.
Ссылки не открываются, продублируйте пожалуйста

85893

Отредактировал исходное сообщение.

SeraX
03.10.2025, 09:33
Вылезла ошибка "Функциональный блок PID_Reg не поддерживается прибором ПР102-24.2416.06. Макрос нужен для регулятора ГВС и отопления.8599385992
Подскажите, может есть решение...

Королев Кирилл
03.10.2025, 09:48
Вылезла ошибка "Функциональный блок PID_Reg не поддерживается прибором ПР102-24.2416.06. Макрос нужен для регулятора ГВС и отопления.8599385992
Подскажите, может есть решение...

Блок PID_Reg предназначен только для приборов второго поколения.
85995
Для ПР102 можете воспользоваться блоком PID и макросом RegKZR для преобразования в управляющие сигналы больше/меньше.

FPavel
03.10.2025, 18:26
Самый главный вопрос - почему не используете готовые приборы - КТР-121 или ТРМ1032?
Они позволяют управлять и насосами и клапанами.
Программировать не надо, особенно алгоритмами сомнительного происхождения и программистом неизвестной квалификации. Документация и техподдержка - имеются, даже через 10 лет.
Для заказчика - одно удовольствие.

Для ПР102 можете воспользоваться блоком PID и макросом RegKZR для преобразования в управляющие сигналы больше/меньше.
На мой взгляд, это неправильное решение, т.к. макрос RegKZR имеет неустранимый недостаток - если на его вход поступает 0 или 100, на выходе формируется непрерывный сигнал открытия или закрытия. А это означает, что когда расчётное положение клапана собьётся относительно реального - посреди нормальной работы произойдёт "необъяснимый" акт вандализма - регулятор полностью закроет или откроет клапан.

Возьмите отсюда
https://owen.ru/forum/showthread.php?t=25068&p=430251&viewfull=1#post430251
только из примера с эмулятором - там чуть улучшенная версия

Я проверял его на погодозависимом отоплении с трёхходовым смесительным клапаном - после установившегося выхода на уставку он почти не двигал клапан. Это чистый ПИ регулятор без улучшений в виде обнуления интегральной при пересечении уставки.
Настраивать - да, без автонастройки не каждый сможет. Оценки возможных значений параметров приведены в том же сообщении - это будут предварительные настройки, а дальше сможете улучшить руками.

Можете погонять тестовое приложение в эмуляторе - пообвыкнете к параметрам. Там я эмулировал давление воздуха перед горелкой - в диапазоне от 0 до 4 кПа.

SeraX
04.10.2025, 11:42
Самый главный вопрос - почему не используете готовые приборы - КТР-121 или ТРМ1032?

Я хочу сам написать программу, т.к. учусь этому. Готовые приборы для тех, кто не хочет думать))

Сергей0308
04.10.2025, 13:13
Самый главный вопрос - почему не используете готовые приборы - КТР-121 или ТРМ1032?

Я хочу сам написать программу, т.к. учусь этому. Готовые приборы для тех, кто не хочет думать))

Не было бы счастья, да несчастье помогло, тогда Вам счастье привалило, в смысле, Вы радоваться должны, напишите и ПИД-регулятор, он входит в состав программы(проекта)!

SeraX
04.10.2025, 18:19
он входит в состав программы [/QUOTE]

Можете скинуть этот ПИД, который есть в программе с автонастройкой для ПР102?

FPavel
04.10.2025, 18:56
Я не делал АНР для ПИД - не те вычислительные мощности у ПР, да и ПИД разработал когда язык ST ещё отсутствовал в OL, а на FBD весь код будет выполняться, хотя некоторые участки не будут оказывать влияния на работу - т.е. будет неоправданная нагрузка и замедление машинного цикла.

Кроме того, работаю по профилю полученного образования и отчётливо представляю изученный материал - настройка ПИД не вызывает сложностей.

Поищите методы АНР - их разрабатывают до сих пор.
Суть методов - на первой стадии проводят идентификацию объекта управления, на второй стадии по формулам вычисляют коэффициенты.
Мне попадался справочник по вычислениям коэффициентов для разных представлений ПИД, для разный видов формул идентификации объекта - это как раз второй шаг.
Aidan O'Dwyer. Handbook of PI and PID controller tuning rules.

Когда сделаете АНР - надеюсь, поделитесь с сообществом.

Успехов в учёбе и самообразовании.

66666666
15.10.2025, 09:18
вопросы к макросам битовых масок. битовая маска по 8 входов со сдвигом сделана так, что теряется 0 бит из маски, его невозможно использовать, а битовая маска на 32 входа не вытаскивается на рабочее поле, проверил на проектах для пр200 и пр205. У меня есть самодельные макросы для упаковки, но если эти выложены в менеджер компонентов, то думаю, стоит обратить на это внимание.

kondor3000
15.10.2025, 09:45
вопросы к макросам битовых масок. битовая маска по 8 входов со сдвигом сделана так, что теряется 0 бит из маски, его невозможно использовать, а битовая маска на 32 входа не вытаскивается на рабочее поле, проверил на проектах для пр200 и пр205. У меня есть самодельные макросы для упаковки, но если эти выложены в менеджер компонентов, то думаю, стоит обратить на это внимание.

Очередная пурга, проверил, всё выносится и работает. Просто биты обозначены не 0-7, а 1-8, то есть 1 и есть 0 бит. 86190
У 32 битного тоже самое, биты 1-32, а не 0-31, просто ему надо много места на поле,
если поле маленькое или высоко задрать макрос, он может не встать на поле.

На ПР200 и ПР205 всё работает.

66666666
15.10.2025, 10:07
Просто биты обозначены не 0-7, а 1-8, то есть 1 и есть 0 бит
за подсказку с размером поля спасибо, а эти короткие битовые маски со сдвигом сами можете проверить. подать 1 на 1 вход и на выходе получите 2, а не 1

kondor3000
15.10.2025, 10:09
за подсказку с размером поля спасибо, а эти короткие битовые маски со сдвигом сами можете проверить. подать 1 на 1 вход и на выходе получите 2, а не 1

Я вам скрин выложил, на скрине Mask1 =1

66666666
15.10.2025, 10:17
Я вам скрин выложил, на скрине МАСКА 1 =1
нашел в чем дело, в проекте, который достался по наследству использовался макрос предыдущей версии 1.1, сейчас в менеджере компонентов он уже исправлен и версия 1.2, там упаковывает корректно. вопрос снят, спасибо.
86193

GooDz
26.10.2025, 07:32
Подскажите макрос для прибора ПР103-230.1610.01.X.0 (первое поколение) ПИД регулятор для дискретного КЗР применяется для данного прибора? В справке на макрос (макросы) есть примечание, что данный макрос поддерживается только приборами второго поколения (за исключением ПР103 М01). Но применить их не могу в проекте ПР103-230.1610.01.X.0 (первое поколение).
86375

Сергей0308
26.10.2025, 09:13
Подскажите макрос для прибора ПР103-230.1610.01.X.0 (первое поколение) ПИД регулятор для дискретного КЗР применяется для данного прибора? В справке на макрос (макросы) есть примечание, что данный макрос поддерживается только приборами второго поколения (за исключением ПР103 М01). Но применить их не могу в проекте ПР103-230.1610.01.X.0 (первое поколение).
86375

Ясно написано, что ваш прибор(ПР103) относится к приборам второго поколения, иначе его не нужно было писать в исключения!
Можно купить любой прибор второго поколения, за исключением вашего(обозначенного в справке), это решит проблему!

kondor3000
26.10.2025, 09:56
Подскажите макрос для прибора ПР103-230.1610.01.X.0 (первое поколение) ПИД регулятор для дискретного КЗР применяется для данного прибора? В справке на макрос (макросы) есть примечание, что данный макрос поддерживается только приборами второго поколения (за исключением ПР103 М01). Но применить их не могу в проекте ПР103-230.1610.01.X.0 (первое поколение).

Для вас, в Менеджере компонентов есть Простой ПИД-регулятор. Версия 1.00
и макрос RegKZR для задвижки или KZR_DO_Sel для клапанов

FPavel
26.10.2025, 14:25
Подскажите макрос для прибора ПР103-230.1610.01.X.0 (первое поколение) ПИД регулятор для дискретного КЗР применяется для данного прибора? В справке на макрос (макросы) есть примечание, что данный макрос поддерживается только приборами второго поколения (за исключением ПР103 М01). Но применить их не могу в проекте ПР103-230.1610.01.X.0 (первое поколение).
Посмотрите
https://owen.ru/forum/showthread.php?t=25068&p=430251&viewfull=1#post430251
только берите из двух файлов - второй - с эмулятором, это немного подчищенная от лишнего версия.

Там же и рекомендации по настройке - оценочные диапазоны коэффициентов, чтобы не было удивления от того, что Ти=1000 с, потому, что на самом деле Ти это не время, а коэффициент, зависящий от диапазона измерения давления или температуры.

Сообщения форума Овен несколько менее функциональны в части оформления, поэтому могу привести ссылку на идентичную статью в моём блоге - там всё тоже самое, но несколько нагляднее.
Там тоже, нужно брать архив с эмулятором - с обновлённой версией.
https://www.cyberforum.ru/blogs/534277/8438.html

Связку "Аналоговый ПИД" + RegKZR (или его эквиваленты) настоятельно рекомендую не использовать нигде - ни в Owen Logic ни в CoDeSys (там есть их эквиваленты).
Причина - пресловутая "калибровка", т.е. в какой-то момент обязательно окажется ситуация, когда реальное положение клапана где-то посередине, а расчётное из RegKZR равно 0% или 100% и тогда RegKZR выполнит "калибровку", т.е. начнёт вместо требуемого короткого импульса подавать длинный, который реально переместит клапан в крайнее положение. Т.е. внесёт огромную помеху в регулирование.

Наверное, нужно сделать эмуляцию "Аналоговый ПИД" + RegKZR и показать, как ужасна эта связка.

FPavel
26.10.2025, 19:25
Моделирование работы связки "Аналоговый ПИД" и RegKZR.

В качестве "аналогового ПИД" взял ПИД из компонентов, но подойдёт и какой-нибудь встроенный, только придётся пересчитать коэффициенты настройки.
В качестве объекта управления взял эмулятор с трёхпозиционным управлением (эмуляция и привода и клапана и самого объекта)
https://owen.ru/forum/showthread.php?t=25068&p=447749&viewfull=1#post447749
Представил, что регулирую давление воздуха, поэтому диапазон изменения выхода эмулятора объекта 0...4000 Па.

86393

После включения эмуляции через 3 минуты значение давления стабилизируется возле уставки - 2000 Па.
Теперь можно с дисплея включить периодическую помеху.

Чтобы не ждать излишне долго, подобрал несколько гипертрофированные параметры и клапана и помехи.
Люфт привода при открытии 1 с, при закрытии 2 с.
Помеха это синусоида с периодом 20 с, амплитудой 10% (приведённое к положению клапана эмулятора объекта).

Итак, что наблюдаем и от чего чувствуем беспокойство.
1. через 3 минуты давление стабилизируется возле уставки - это хорошо. А плохо, что расчётное значение положения клапана (это выход ПИД на вход RegKZR) равен 19,13%, а при этом реальное положение клапана равно 19,33%. Вроде бы не очень много, но уже есть
86394
2. с дисплея включаем периодическую помеху и видим, что значение выхода ПИД постепенно уменьшается, хотя положение реального клапана находится около 20%. Это из-за неравномерности люфтов при открытии и закрытии. И, наконец, примерно через 1,5 минуты после включения помехи значение выхода ПИД становится равным 0 и RegKZR начинает калибровку - непрерывное закрытие клапана, т.е. подаёт неоправданно длинный импульс закрытия. И начиная с этого момента каждые 1,5 минуты происходит "калибровка".
86395

Это, конечно, модель с гипертрофированными параметрами, но она очень жизненна. Я такое наблюдал, когда для регулятора разрежения собрал подобную схему (на ПЛК DirectLogic) - потом пришлось переделывать. Причём, на 4 соседних котлах с идентичным оборудованием на некоторых выход ПИД "полз" вверх, а на некоторых - вниз, т.е. никакой закономерности не было. А период составлял около 20 минут.
В этой модели не очень большая инерция (чтобы быстрее показать проблему), но у меня с разрежением инерция была значительнее и после "калибровки" клапан (направляющий аппарат) успевал перейти почти в крайнее положение, что иногда доходило и до отрыва пламени и до срабатывания защит по высокому давлению (уже не разрежению!) в топке.

Именно поэтому призываю старожилов никогда не рекомендовать эту связку "аналоговый ПИД" и RegKZR!

starmos
15.12.2025, 09:55
Макрос Pt1000 из базы (Менеджер компонентов) ругается на циклические связи. Что делать с ними / с этим? И почему нельзя в базе поменять, это же готовый макрос?

petera
15.12.2025, 10:13
Макрос Pt1000 из базы (Менеджер компонентов) ругается на циклические связи. Что делать с ними / с этим? И почему нельзя в базе поменять, это же готовый макрос?

Забей, ни на что не влияет

Шачнев Григорий
30.12.2025, 20:56
Здравствуйте. В макросе "бегущая строка" невозможно реализовать ввод значения? У меня строка бежит, и значение показывается, но изменить его не дает, всегда или выше строка редактируется, или ниже. Может я что-то не так делаю?

kondor3000
30.12.2025, 21:08
Здравствуйте. В макросе "бегущая строка" невозможно реализовать ввод значения? У меня строка бежит, и значение показывается, но изменить его не дает, всегда или выше строка редактируется, или ниже. Может я что-то не так делаю?

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

Работникк
14.04.2026, 11:03
Здравствуйте, почему не могу в симуляции воздействовать на макрос отсчета времени? входа не активны 88827

1exan
14.04.2026, 11:07
Здравствуйте, почему не могу в симуляции воздействовать на макрос отсчета времени? входа не активны 88827

Справка:
88828

Работникк
14.04.2026, 11:19
Справка:
88828

ааааааа точно точно, спасибо

wwtp39
17.05.2026, 01:54
Подскажите, как правильно используется параметр lv_Pause (Фиксация рассчитанной мощности) в простом ПИД v1.00.
Задача, использовать регулятор для поддержания давления.

FPavel
17.05.2026, 06:07
Подскажите, как правильно используется параметр lv_Pause (Фиксация рассчитанной мощности) в простом ПИД v1.00.
Задача, использовать регулятор для поддержания давления.
Вы можете открыть этот макрос для редактирования и посмотреть исходник, также можно сделать минимальную тестовую программу и проверить работу в различных режимах.

В программе у себя оставил комментарии по поводу этого макроса

Enable: 0-откл, 1-вкл ПИД

ua_Pwr_min, ua_Pwr_max: ограничения выходного сигнала ПИД

ua_Pwr_off: значение при Enable==0, дальше будет плавный пересчёт, почти безударный

ub_Cool: 0-нагрев, 1-охлаждение

lv_Pause: 1 - остановить вычисления и фиксировать выход

Spawn
17.05.2026, 12:29
Всем здравствуйте.
К "заведующему отделением" OL вопрос - когда появится возможность скачивать "онлайн базе OWEN Logic" (полностью, со всеми последними "обновлениями"), чтобы можно было пользовать её офлайн (с подробной "мурзилкой", как её (офлайн базу) "прикрутить" к уже установленному OL)? Вы "35 лет продолжаете автоматизировать", а до сих пор далеки от реалий многих производств. Не везде, знаете ли, есть свободный доступ (особенно у оборудования АСУТП) к сети Интернет, поэтому приходится сидеть и для всех самых примитивных задач с нуля "изобретать велосипед". Есть же ftp.owen.ru, например. В чем сложность?

Dimensy
17.05.2026, 14:00
Всем здравствуйте.
К "заведующему отделением" OL вопрос - когда появится возможность скачивать "онлайн базе OWEN Logic" (полностью, со всеми последними "обновлениями"), чтобы можно было пользовать её офлайн (с подробной "мурзилкой", как её (офлайн базу) "прикрутить" к уже установленному OL)? Вы "35 лет продолжаете автоматизировать", а до сих пор далеки от реалий многих производств. Не везде, знаете ли, есть свободный доступ (особенно у оборудования АСУТП) к сети Интернет, поэтому приходится сидеть и для всех самых примитивных задач с нуля "изобретать велосипед". Есть же ftp.owen.ru, например. В чем сложность?
Ну, вы можете открыть менеджер компонентов, выделить все макросы и загрузить их не в проект а в библиотеку (есть там такая кнопочка). Да, PDF с описанием будет отсутствовать, но оффлайн доступ у вас будет

89235

Spawn
18.05.2026, 00:21
Ну, вы можете открыть менеджер компонентов, выделить все макросы и загрузить их не в проект а в библиотеку (есть там такая кнопочка). Да, PDF с описанием будет отсутствовать, но оффлайн доступ у вас будет

89235


Dimensy, спасибо за подсказку.

Получается, со стороны разработчика опять "грабли" какие-то... это нужно на каком-то одном условном ноуте, в среде OL (а если загружант не в курсе что такое OL и "с чем его едят"), загрузить пачку макросов в библиотеку, потом от туда их экспортировать в файлы, потом перенести эти файлы на другой ноут и уже на нем их импортировать... жесть... 2026 год на дворе...

Еще и пофайлово всё это дело...:confused:

Сергей0308
18.05.2026, 00:36
Dimensy, спасибо за подсказку.

Получается, со стороны разработчика опять "грабли" какие-то... это нужно на каком-то одном условном ноуте, в среде OL (а если загружант не в курсе что такое OL и "с чем его едят"), загрузить пачку макросов в библиотеку, потом от туда их экспортировать в файлы, потом перенести эти файлы на другой ноут и уже на нем их импортировать... жесть... 2026 год на дворе...

Еще и пофайлово всё это дело...:confused:

Вообще то два раза мышкой кликнуть и минуту времени подождать пока все макросы загрузятся в локальную библиотеку, специально проверил, ваши "ужасы" не подтвердились!

Spawn
18.05.2026, 00:41
Вообще то два раза мышкой кликнуть и минуту времени подождать пока все макросы загрузятся в локальную библиотеку, специально проверил, ваши "ужасы" не подтвердились!

Проверили что?

Весь, описанный мной, "путь"?

Как Ваша проверка меняет "(а если загружант не в курсе что такое OL и "с чем его едят")"?

Сергей0308
18.05.2026, 01:29
Проверили что?

Весь, описанный мной, "путь"?

Как Ваша проверка меняет "(а если загружант не в курсе что такое OL и "с чем его едят")"?

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

Spawn
18.05.2026, 01:51
Своё мнение я уже высказывал, в смысле, категорически не советую пользоваться макросами из менеджера компонентов, специально, не выбирая открывал несколько из них и всегда приходилось создавать свой аналогичный, короче не хочу повторяться, много раз об этом писал на форуме!

Сергей0308, я Вас понял, спасибо за информацию.

Dimensy
18.05.2026, 05:56
Dimensy, спасибо за подсказку.

Получается, со стороны разработчика опять "грабли" какие-то... это нужно на каком-то одном условном ноуте, в среде OL (а если загружант не в курсе что такое OL и "с чем его едят"), загрузить пачку макросов в библиотеку, потом от туда их экспортировать в файлы, потом перенести эти файлы на другой ноут и уже на нем их импортировать... жесть... 2026 год на дворе...

Еще и пофайлово всё это дело...:confused:

Все не так ужасно. Переходите в папку Документы/Owen Logic, там архивируете папку Library и распаковываете ее на другом компутере в папке Документы/Owen Logic

Dimensy
18.05.2026, 06:03
Своё мнение я уже высказывал, в смысле, категорически не советую пользоваться макросами из менеджера компонентов, специально, не выбирая открывал несколько из них и всегда приходилось создавать свой аналогичный, короче не хочу повторяться, много раз об этом писал на форуме!

Да, ладно, есть там пара-тройка полезных макросов, например, тот же датчик Pt1000 или PID. Правда, некоторые нужно подшаманивать, чтобы убрать желтые линии или заменить макрос fSel на стандартный блок. Но это перфекционизм, главное, все работает

FPavel
18.05.2026, 19:37
Да, ладно, есть там пара-тройка полезных макросов, например, тот же датчик Pt1000 или PID. Правда, некоторые нужно подшаманивать, чтобы убрать желтые линии или заменить макрос fSel на стандартный блок. Но это перфекционизм, главное, все работает
Не соглашусь по Pt1000 на ST - вычисляет правильно, но избыточно неоптимально - возведение в степень через POW, т.е. через формулу EXP(y*LN(x)), вместо простого цикла по схеме Горнера.
Версия на FBD ещё имеет особенность - сохраняет на выходе последнее корректное измеренное значение, что потенциально может привести к зависанию измерений до отключения питания (исправлялось изменением какой-то константы - в компонентах уже исправленная версия). Из-за этих двух причин предпочитаю не рисковать и пользоваться самодельным на ST.

А вот PID - хорош. Ещё хочу применить, но всё нужда не заставляет Event_Log - архив ошибок на 24 события. Мне ещё нравился обработчик входа 4-20 мА CONV4..20_ - он сразу формировал ошибку при обрыве и коротком замыкании, а также выполнял подстановку значения при недостоверном измерении.
И ещё есть интересные и полезные.

Нужно всё проверять.

Сергей0308
18.05.2026, 21:00
Мне даже не хочется вспоминать этот треш с макросами, в смысле остался неприятный осадок до сих пор, короче, открываю один макрос, повторюсь, что специально другие не смотрел, короче, первый, что под руку подвернулся, там четыре одинаковых элемента, пишу Юрию Реваке, что напрашивается оставить один элемент, а три удалить, говорю, кому надо 4 элемента, используют 4 экземпляра макроса, а если кому требуется один такой элемент, три будут стоять мёртвым грузом, короче, я не готов к таким излишествам, чтобы 3/4 элементов на полотне программы стояли просто так, мёртвым грузом!
Короче, он оптимизировать(удалять три элемента) отказался, говорит такой макрос поступил, а мой макрос "SCALE" подправил, хотя в моём варианте он был красивей и функциональней, короче, не принципиальности ни справедливости!
Он состоял из двух независимых макросов, которые можно и отдельно использовать: из макроса двухстороннего ограничения и собственно макроса "SCALE" без ограничения по входному сигналу, такой тоже может понадобится, всё вместе макрос "SCALE" с ограничением:

89257

89258

Потом ещё посмотрел 2-3 макроса, которые можно было упростить в разы, что я и сделал, короче, ни один макрос, что открыл не был более-менее приемлемым, как будто новички делали и всё, с тех пор не смотрю макросы из менеджера компонентов(раньше по другому как-то назывался), не хочу расстраивать организм по пустякам!