Под самый новый год пришёл заказчик с мистической проблемой.
Водяной нагреватель сначала минут 30 нормально регулирует, затем клапан уходит в 100% и там залипает. Регулирования больше нет. Перезагрузка лечит.
Система на ПР102, опыта с ним немного. Пришлось помучаться, хоть программа и моя. Классика, когда смотришь на собственный код спустя полгода и думаешь:
«Что за идиот это писал?»
Схема простая: после водяного нагрева стоит электрический. Чтобы водяной регулятор не болтался, в макросах ОВЕН предусмотрена возможность принудительно зафиксировать нагреватель на 100%(очень удобно, между прочим). Сброс происходит, когда регулятор второй ступени уходит в −5% при наличии младшей ступени.
На объекте электродогрев заказчику оказался не нужен в данный момент. Он просто поставил PI-коэффициенты электрической ступени в 0. Казалось бы — логично, но по факту получилось следующее:
- вода подаёт команду на вторую ступень
- команда фиксируется RS-триггером
- электрическая ступень остаётся в 0% (PI = 0)
- до −5% она никогда не доходит
- RS-триггер не сбрасывается
- водяной клапан остаётся в 100%
Замкнутый круг.
Пришлось потратить несколько дней, чтобы понять, в каком именно месте закралась ошибка. К счастью, удалось обнаружить.
#owen #баги
Post #127
468
- 👏 4
- 🥴 3
- 😱 2
- 🤣 1
- 🍌 1