![]() |
![]() ![]() |
|
SMConstructor (теплопункты) Вопросы о работе Конструктора (теплопункты) |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Member
Регистрация: Jan 2014
Сообщения: 62
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
При возникновении аварий, таких как отказ датчика или отказ циркуляци, производится останов контура. Для возобновления работы контура требуется сбросить аварию. Как избежать останова контура (авария пусть фиксируется, но управляющие команды вырабатываются как есть), не прибегая к полной переделке "с нуля" блока "Процессор"?
Проблема возникает из-за частых перебоев электропитания, при которых фиксируется отказ циркуляции. (Контроллер SMH-2G+MC зарезервирован по питанию, насосы и прочее, соответственно, нет). |
![]() |
![]() |
![]() |
#2 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 096
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
![]() Цитата:
Теоретически возможно и даже практически реализуемо, но как-то сложно уж очень ![]() Можно попить тоже в голову, но уже через рот - залезть в макрос аварий и выставить флаг "Не запоминать" у нужных аварий. Контур останавливать всё равно нужно, т.к. регулятор непонятно что нарегулирует по итогу. Но если очень хочется, то просто в статусе циркуляции перед процессором заблокируйте прохождение первого бита. Процессор никогда не увидит аварию. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#3 |
Member
Регистрация: Jan 2014
Сообщения: 62
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Правильно ли я понял, что в этом случает контур остановится на время существования аварии, а сразу после ее исчезновения автоматически возобновит работу?
|
![]() |
![]() |
![]() |
#4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 096
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
![]()
Так должно быть, но проверки на работоспособность этого решения не было - это нештатный режим.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#5 |
Member
Регистрация: Jan 2014
Сообщения: 62
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
В идеальном случае разные типы аварий должны обрабатываться по-разному. Что касается контура отопления, то при авария циркуляции, аварии датчиков температуры, аварии отсутствия электропитания команда управления насосами должна подаваться, а клапан должен открываться на 100%, дабы избежать разморозки.
При некоторых других авариях контур действительно целесообразно останавливать. В то же время при аварийном состоянии контура открыть клапан на максимум и молотить насосами в целом целесообразнее, т.к. воду в случае утечки закрытием регулирующего клапана все равно не остановить, а насосы для защиты от сухого хода все равно локально завязаны на реле давления, а для защита по току реализуется в частотнике (по крайней мере на моих объектах). Вероятность же всякого "оторвали провод - датчик отвалился - неделю никому дела нет до этого" или "пропало на 5 минут электричество - насосы встали - простояли до утра - утром руководство покарало эксплуатацию анально - эксплуатация валит на кривую автоматику (что в данном случае будет справедливо)" существенно выше. Второе происходит на одном из объектов 1-2 раза в неделю, и всегда с одиннадцати до часу ночи. |
![]() |
![]() |
![]() |
#6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 096
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
![]() Цитата:
Извините, дальнейшее обсуждать не буду. Объекты очень разные, алгоритм должен быть безопасен. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#7 | |
Member
Регистрация: Jan 2014
Сообщения: 62
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() Цитата:
Статус обрабатывается не так, как стандартная авария и не содержит флага "Не запоминать?". Где ещё (в каких местах) надо заблокировать прохождение битов (кроме блокировки бита "Работа" в статусе циркуляции), чтобы аварии регистрировались, но не останавливали работу контура? ИЛИ Где (в каких местах) надо заблокировать прохождение битов (вместо блокировки бита "Работа" в статусе циркуляции), чтобы аварии регистрировались, а работа контура останавливалась только на время срабатывания входа отказа насосов без "запоминания"? Последний раз редактировалось sensei, 10.11.2014 в 15:46 |
|
![]() |
![]() |
![]() |
#8 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 096
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
![]() Цитата:
"Работа" - это нулевой бит. Сам макрос насосов сигнал управления насосом отключит. Если хочется полной автономии, то аварийные сигналы нужно отключать от макроса насоса и заводить на свободные входы макроса аварий. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Регистрация: Apr 2013
Адрес: Россия, Москва
Сообщения: 770
Благодарил(а): 8 раз(а)
Поблагодарили:
65 раз(а) в 60 сообщениях
|
![]() Цитата:
Макрос (Status v2.4), контролирующий состояние вентилятора. Контроль осуществляется исходя из аксиом: 1) если вентилятор запущен, то прессостат должен показать наличие давления 2) если вентилятор остановлен, то прессостат должен показать отсутствие давления Если аксиомы не выполняются, то отсчитывается 'Время реакции' и затем выставляется признак аварии Если вдруг аварийное состояние пропадает, то также отсчитывается 'Время реакции' и затем признак аварии снимается При 'Время реакции' = 0 признак аварии не вырабатывается При активном 'Reset' признак аварии сбрасывается и обработка аварий не осуществляется __________________ Саня Последний раз редактировалось monstr696, 10.11.2014 в 20:32 |
|
![]() |
![]() |
![]() |
#10 | |
Member
Регистрация: Jan 2014
Сообщения: 62
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() Цитата:
Непосредственное разрешение на запуск останов контура производится в макросе "Пуск/Стоп", находящего в макросе "Контроль контура К". На вход "Можно работать" макроса "Пуск/Стоп" подаётся сигнал "~Проблемы с водой", который есть ИЛИ-НЕ ("Отказ подпитки", "Отказ циркуляции"). Сигналы "Отказ подпитки" и "Отказ циркуляции" есть, соответственно, биты 5 и 3 сигнала "Кх: Код отключения". Сигнал "Кх: Код отключения", который, как мы выяснили, несет в себе информацию об отказе, генерируется макросом "Отключение устройств" из состава макроса "Обработка аварий 3.00" (который в свою очередь входит во состав макроса "Обработка аварий"). Я не могу понять, как работает макрос "Отключение устройств" и что означают входы d0...d30, на некоторые из которых подаются какие-то битовые последовательности (часть напрямую, часть через входы "Disable" макросов Кх-Ау). Понял лишь, что эти битовые последовательности участвуют (по очереди для снижения нагрузки на ЦП) в неких логических операциях с соответствующими им битами аварий из состава сигнала "Код аварии xx". В свою очередь сигнал "Код аварии xx" получается из сигнала "Код xx" в макросе "Реакция системы", таким образом, что в сигнале "Код аварии xx" те биты, которые отмечены как запоминаемые ("Не запоминать?"=0), единожды возникая не исчезают до сброса, т.к. в макросе "Реакция системы" на D-триггере фактически реализован вектор из "самозалипающих реле". Сигнал "Код xx" генерируется в макросе "Scan" из состава макроса "scan4x". Как в макросе "Scan" из входов аварий генерируется "Код xx" я тоже не понял. Понял лишь, что "№ события" инкрементируется с каждой новой возникающей аварией. Итого: Уважаемый Арсений! Буду чреззвычайно блвгодарен, если проверите, все ли я правильно написал, и ответите на вопросы (постарался выделить их жирным, т.к. они получились преимущественно не в вопросительной форме). |
|
![]() |
![]() |
![]() |
#11 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 096
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
![]() Цитата:
Да, действительно, код отключения используется в процессоре. Но если вернуться к истокам вопроса, то никакие манипуляции с ним не помогут. Конструктор ИТП является бета-версией и многие важные вещи сейчас в нём дублированы. По итогу, отключить срабатывание и обеспечить запись получится только двумя методами. Один я уже написал - это отключить аварийные сигналы от макроса насосов. Второй несколько проще. Нужно получить сигнал о появлении питания агрегатов (от ИБП или просто сухой контакт от реле, установленного до ИБП) и по этому сигналу автоматически выполнять сброс аварий. Доработок проекта минимум. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#12 | |
Member
Регистрация: Jan 2014
Сообщения: 62
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() Цитата:
Про сброс аварии по накидыванию питания - хорошая идея. Хотел при пропадании питания блокировать аварийный сигнал. Ваш вариант со сбросом лучше. Но в идеале бы чтобы предыдущий абзац сработал. |
|
![]() |
![]() |
![]() |
#13 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 096
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
![]()
Не сработает.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
![]() |
![]() |
![]() |
#14 |
Member
Регистрация: Jan 2014
Сообщения: 62
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Найдена первопричина проблемы "залипания" аварии насосов.
Это RS-триггеры в макросе "Отказы" из состава макроса "Насосная группа Кх". Возможно ли как-то получить в порядке исключения незаблокированный макрос "Насосная группа Кх"? Желательно с незаблокированным макросом "Отказы". Т.к. использую 2Gi, проблем с нехваткой ресурсов памят и ЦП возникнуть не должно. |
![]() |
![]() |
![]() |
#15 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 096
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
![]() Цитата:
Почему вы постоянно хотите куда-нибудь залезть? Пропал признак аварии - просто сбросьте либо макрос адресно, либо сделайте общий сброс всей системы и ничего редактировать не придётся. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#16 | |
Member
Регистрация: Jan 2014
Сообщения: 62
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]() Цитата:
Можно встречный вопрос - в чем причина отказа разблокировать макрос в частном порядке? |
|
![]() |
![]() |
![]() |
#17 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 096
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
![]() Цитата:
Ну и вопрос безопасности. Это уже всё нами пройдено много лет назад. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |
![]() |
#18 |
Member
Регистрация: Jan 2014
Сообщения: 62
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
![]()
Проблема решена сбросом макроса управления насосами по спадающему фронту любой из интересующих аварий.
Как говорится, еще один костыль... |
![]() |
![]() |
![]() |
#19 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 096
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
![]() Цитата:
![]() __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
![]() |
![]() |