Реклама / ООО «ИЗОЛПРОЕКТ» / ИНН: 7725566484 | ERID: 2Vtzqx6kV7S
IPB IPB
Проектирование, монтаж, наладка, сервис


Здравствуйте, гость ( Вход | Регистрация )

- Стандарт НП «АВОК» 7.11-2024
«Рекомендации по проектированию инженерных систем
дошкольных образовательных организаций»

АВОК в соц. сетях
ИНН: 7714824045 | erid: 2VtzqwzKQiU
 
Добавить ответ в эту темуОткрыть тему
> Carel C.suite. Ошибка в библиотеке
DimanVIP
сообщение 18.5.2017, 13:27
Сообщение #1





Группа: Участники форума
Сообщений: 66
Регистрация: 21.1.2012
Пользователь №: 136945



Здравствуйте.

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

Carel c.strategy (Build 4.0.36)
Библиотека: PID_Adv_2 [1.0.0]

При настройке как на скриншоте "bug.png" регулятор ПИД уходит в бесконечный цикл.
Описание: После достижения максимального значения на выходе "Output", равного 100%, регулятор сбрасывается на минимальное значение, и цикл регулирования начинается снова с минимального значения. Это явно ошибка.

Исправление: Глубокого изучения исходного кода модуля я не проводил, но ошибку удалось исправить заменив оператор "<" на оператор "<>" в строке 117.
(на скриншоте "Fix.png" показано сравнение исходного и исправленного кода).
На скриншоте "Fix_result.png" показан результат исправления. Как видно, оригинальный регулятор сбрасывается, и начинает регулирования с начала, в то время как исправленный продолжает оставаться на максимальном значении.

Во вложении, кроме скриншотов, проект с ошибочным и исправленным регулятором.

Сообщение отредактировал DimanVIP - 18.5.2017, 13:27
Прикрепленные файлы
Прикрепленный файл  Bug.PNG ( 20,74 килобайт ) Кол-во скачиваний: 74
Прикрепленный файл  Fix.png ( 116,51 килобайт ) Кол-во скачиваний: 67
Прикрепленный файл  Fix_result.PNG ( 46,59 килобайт ) Кол-во скачиваний: 59
Прикрепленный файл  CAREL_Empty_Project1.zip ( 1,92 мегабайт ) Кол-во скачиваний: 49
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
svintus
сообщение 18.5.2017, 18:37
Сообщение #2





Группа: Участники форума
Сообщений: 385
Регистрация: 29.1.2010
Из: Днiпро
Пользователь №: 45399




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

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

Прикрепленный файл  PID.jpg ( 230,98 килобайт ) Кол-во скачиваний: 111
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
DimanVIP
сообщение 19.5.2017, 9:07
Сообщение #3





Группа: Участники форума
Сообщений: 66
Регистрация: 21.1.2012
Пользователь №: 136945



Видимо я этот документ по-диагонали пролистал, что глаз за этот момент даже не зацепился.

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

P.S.: Эххх, а я то надеялся что "огороды с переворачивалками" остались в прошлом вместе с 1тулом.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
svintus
сообщение 21.5.2017, 21:50
Сообщение #4





Группа: Участники форума
Сообщений: 385
Регистрация: 29.1.2010
Из: Днiпро
Пользователь №: 45399



1. Carel нацелен исключительно на общение с OEM-производителем, что, по его мнению, предполагает наличие профессиональных программистов в штате. Не в обиду, по поводу проверки значения. Я любитель, просто очень внимательно читаю доки.

2. Из общения с Израилем, там предпочитают 1Tool до сих пор почему-то. Как по мне, c.pCO платформа востребована, начиная с c.pCOmini Enhanced из-за встроенного драйвера униполярного ExV для решений с Power+. Для вентиляции вряд ли, китайцы на коленке такие делают девайсы, что скоро и S******s будет в пролете.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
dopi
сообщение 12.6.2017, 14:28
Сообщение #5





Группа: Участники форума
Сообщений: 35
Регистрация: 3.3.2011
Пользователь №: 96840



Цитата(DimanVIP @ 19.5.2017, 9:07) *
P.S.: Эххх, а я то надеялся что "огороды с переворачивалками" остались в прошлом вместе с 1тулом.


а чего там переворачивать??
переменную Setpoint на вход Input, переменную Input на вход Setpoint

и всё.

в коде Error:=Input-SetP
будет просто наоборот
Прикрепленный файл  ______.PNG ( 91,45 килобайт ) Кол-во скачиваний: 59
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ktulu
сообщение 13.6.2017, 2:27
Сообщение #6





Группа: Участники форума
Сообщений: 171
Регистрация: 10.5.2008
Пользователь №: 18574



"а чего там переворачивать??
переменную Setpoint на вход Input, переменную Input на вход Setpoint"

.."оо, а месье знает толк в извращениях"(ц)

..интересно что будет при обрыве/аварии датчика
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
dopi
сообщение 13.6.2017, 13:17
Сообщение #7





Группа: Участники форума
Сообщений: 35
Регистрация: 3.3.2011
Пользователь №: 96840



Цитата(ktulu @ 13.6.2017, 2:27) *
.."оо, а месье знает толк в извращениях"(ц)

..интересно что будет при обрыве/аварии датчика


будет тоже самое, что и при обычном подключении. только разность Error:=Input-SetP будет с другим знаком

пид никак не сможет определить обрыв.
для определения обрыва нужны другие блоки типа PrbAlrm
и по сигналу от него выводить клапан на 0, 10 или 100%.
в зависимости от местных условий
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
CrazyDen
сообщение 24.2.2019, 17:09
Сообщение #8





Группа: New
Сообщений: 4
Регистрация: 12.1.2019
Пользователь №: 354063



Тема устарела, но может будет полезно.
Кому нужно заставить работать блок на "нагрев" вместо "охлаждения"
Выделяйте блок в вашей программе, жмите F12, откроется исходный код.
там 80ая строка Error:=Input-SetP; меняем на Error:=SetP-Input; Всё.

Если в программе несколько ПИДов работающих в разных режимах, то этот переименуйте функциональный блок в какой-нить PID_heat

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

Изменения же в FBD схеме, типа поменять setpoint и input местами могут иметь последствия, такие как неверная работа ограничений и неверная отработка интегрального переполнения. Это надо проверять на практике, но чую, что что-то вылезет.

Сообщение отредактировал CrazyDen - 24.2.2019, 17:10
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Igorchello
сообщение 25.2.2019, 17:58
Сообщение #9





Группа: Участники форума
Сообщений: 84
Регистрация: 16.3.2010
Пользователь №: 48554



Цитата(CrazyDen @ 24.2.2019, 17:09) *
Тема устарела, но может будет полезно.
Кому нужно заставить работать блок на "нагрев" вместо "охлаждения"
Выделяйте блок в вашей программе, жмите F12, откроется исходный код.
там 80ая строка Error:=Input-SetP; меняем на Error:=SetP-Input; Всё.

Если в программе несколько ПИДов работающих в разных режимах, то этот переименуйте функциональный блок в какой-нить PID_heat

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

Изменения же в FBD схеме, типа поменять setpoint и input местами могут иметь последствия, такие как неверная работа ограничений и неверная отработка интегрального переполнения. Это надо проверять на практике, но чую, что что-то вылезет.


А можно просто выход умножить на -1. Это тоже в документации расписано)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Реклама
ООО «Арктика групп» ИНН: 7713634274



ООО "Русич" ИНН 9721068883 / ЕРИД 2VtzqvMjLF8


ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqxXgvJi

Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqwyM2dc
Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx

Последние сообщения Форума






RSS Текстовая версия Сейчас: 31.7.2025, 3:45
Политика ООО ИИП «АВОК-ПРЕСС» в отношении обработки персональных данных