Частые переключения реле

Автор serov, 25 декабря 2015, 16:07:26

« назад - далее »

serov

Обозначилась проблема - обновилось ядро и теперь нельзя одновременно включать два и более цифровых выхода (реле), возникает ошибка 14. Пообщавшись с Михаилом понял, что выходы реле контролируются коллективно, то есть нельзя включить одну реле и тут же включить другую, а это не правильно и даже не логично, особенно если нужно одновременно включить два реле. Получается теперь как-то нужно разносить во времени все реле, а не контролировать конкретно одну.
В связи с этим вопрос: готовится серийный продукт, как бы сделать так, что бы при продаже заливать в контроллер ПО с конкретным уже отлаженным ядром. Потому что, ведь если приходит контроллер, то уже с устаревшим ядром, зетфбд ругается и требует обновить, естественно обновляется ядро, но не на конкретное, а на самое свежее, под которым ПО не факт что будет работать так же как и раньше. Или я в чем-то не прав?

VoronovMaksim88

По идее новое ядро не должно нести в себе новых глюков. Поэтому думаю правильно, что ZWB обновляет ядро до последней версии.
Насчёт релюшек, согласен. Может где-то в настройках проекта сделать галочку "не отслеживать частоту срабатывания реле". Поставил её и щёлкай хоть каждый тик, сломалось-твои проблемы. Немного напрягает, что точно не известно как часто можно щёлкать релюшками.

yuk

Цитата: serov от 25 декабря 2015, 16:07:26
Обозначилась проблема - обновилось ядро и теперь нельзя одновременно включать два и более цифровых выхода (реле), возникает ошибка 14. Пообщавшись с Михаилом понял, что выходы реле контролируются коллективно...

Просьба написать, о какой модели контроллера идет речь, и проверить проект на отсутствие вероятности быстрого двойного переключения реле (это когда оно включается или выключается на 1-2 шага FBD, а потом возвращается в исходное состояние). Такое переключение на слух определить невозможно, т.к. механика реле вряд ли успеет сработать.

Еще для вас совет - переходите на Workbench, т.к. ZetFBD - относительно старая программа,
которая официально не поддерживается.

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

Насчет логики срабатывания ошибки поясню, как она должна работать - есть один общий (для экономии ресурсов) счетчик кол-ва переключений реле. Он прибавляется при каждом переключении, вычитается по фиксированному таймеру при ненулевом значении. Если он переходит через границу - срабатывает ошибка. Алгоритм, по сути, ограничивает частоту и количество переключений реле в течение последних секунд. Цель - предотвратить выход из строя реле и четко дать понять инженеру, когда он ошибся.

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

VoronovMaksim88

Да, вы правы, с самолюбием надо бороться ))

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

mike

Это был Юрий.
А сейчас Михаил.
http://zentec.ru/dev/docs/d150714/d080813/
док по ошибкам

mike

Точное условие - переключение реле не чаще раза в 0,6сек

VoronovMaksim88

Спасибо Юрию и Михаилу за ответы.
Насчёт 0.6 секунд есть сомнения у меня. Перепроверю, отпишусь.

serov

#7
Прошу прощения, поясню - ошибка 14 это уже я на панель вывожу, переменная Err = 03
Так вот, прошивка-то отлажена и работает у 3-х заказчиков, а тут ставлю четвертому (правда обновилось ядро) и проблема вылезает, более того она управляет отоплением, и тут похолодание, а в системе-то вода... А насосы циркуляции не включаются!!! Так как защита всё  вырубила. Насосы переключаются осенью и весной. Остальные реле переключаются по алгоритму не чаще 2 раз в секунду. Реализован очень медленный ШИМ управления термостатическими приводами клапанов (у них время хода - 5минут). Вчера (в субботу - отдыхать должен был) выезжаю к заказчику, делаю финт ушами - разношу во времени переключение всех реле, реализую очередь так сказать, но 2 секунды много, думал 0,5 секунд поможет - это время переключения не каждой реле, а счетчика, который определяет, что сейчас можно первую реле выставить, потом 2-ю, 3-ю и т.д.   - так ведь нет, сегодня меня вызванивают, опять эта же ошибка. завтра (в понадельник) еду опять.
Что делать-то, господа разработчики??? До заказчика 100км, не наездишься.

serov

#8
Цитата: yuk от 26 декабря 2015, 10:56:33
Просьба написать, о какой модели контроллера идет речь, и проверить проект на отсутствие вероятности быстрого двойного переключения реле (это когда оно включается или выключается на 1-2 шага FBD, а потом возвращается в исходное состояние). Такое переключение на слух определить невозможно, т.к. механика реле вряд ли успеет сработать.
Контроллер Z400, алгоритм отрабатывается 1 раз в 2 секунды. Цикл 500мс. Тут при всем желании не успеть дергать релюхами несколько раз за 600мс.
Цитата: yuk от 26 декабря 2015, 10:56:33
Еще для вас совет - переходите на Workbench, т.к. ZetFBD - относительно старая программа,
которая официально не поддерживается.
Дак я бы с удовольствием, даже пытался, жду когда допинаете и всё работать будет, например симуляцию не удалось завести. Жду когда распишете как сделать.
Цитата: yuk от 26 декабря 2015, 10:56:33
Насчет логики срабатывания ошибки поясню, как она должна работать - есть один общий (для экономии ресурсов) счетчик кол-ва переключений реле. Он прибавляется при каждом переключении, вычитается по фиксированному таймеру при ненулевом значении. Если он переходит через границу - срабатывает ошибка. Алгоритм, по сути, ограничивает частоту и количество переключений реле в течение последних секунд. Цель - предотвратить выход из строя реле и четко дать понять инженеру, когда он ошибся.

По отключению защиты: если дать возможность отключать защиту, проверяющую человека - ее будут отключать все и всегда, ведь она задевает самолюбие. А какой инженер не самолюбив? Поэтому отключать ее мы не разрешим.
Боюсь тут дело не в самолюбии. Тут явно происки резидентов. Напишите подробно алгоритм ограничения переключений, будем обходить Ваше творчество - но поймите, это не правильно!!! Я должен иметь возможность одновременно переключить все 5 реле. Либо сделайте ограничение аппаратно - на уровне ядра. Но не выключайте реле-то, если ошибка выскочила. Ведь это опасно-может там критический процесс происходит, а тут такая ...опа. Зачем не понимаю было что-то менять в этой части? Всё же работало. Вот чего мне теперь делать? Всю программу перековырял, завтра залью с ограничением на переключения в 2 секунды, а где гарантия что всё будет работать?

VoronovMaksim88

Цитата: mike от 26 декабря 2015, 11:17:59
Точное условие - переключение реле не чаще раза в 0,6 сек

Как обещал, перепроверил. Не работает. Реле переключается каждую секунду. Контроллер Z400. Среда - ZWB 1.0.89. Версию ядра контроллера считать не смог, не понял как это сделать.

Скриншот очень наглядно демонстрирует проблему.

Проект в прикрепе.

Кстати, построитель сети удобная штука. Конечно когда работаешь с одним контроллером, то он ни к чему, но когда сеть больше 2-х контроллеров построитель становится прекрасным инструментом.


mike

Беру маленький таймаут на ответ господину Серову.
Завтра попробуем посмотреть.

serov

Цитата: mike от 28 декабря 2015, 17:17:02
Беру маленький таймаут на ответ господину Серову.
Завтра попробуем посмотреть.
Сегодня провел весь день на объекте, перепроверял алгоритм. Пришел к выводу, что когда стал делать защиту от частых переключений - то добавил проблем. Поставленные Д-триггеры перед выходами стробировались не по перепаду, а по состоянию (вход С настроен как прямой), при эмуляции заметил что когда на входе 1, то на выходе получается генерация импульсов. Настроил входы по переднему фронту, вроде всё заработало. Но проблемы не снимает - как включить несколько реле одновременно? Как я понимаю, ядро будет считать это частым переключением реле. Или я не прав?

Artem

Обновили ядро Z400 в ZetFBD. Теперь защита работает для каждого отдельного дискретного выхода. Счетчик переключения выхода уменьшается на 1 каждые 500 мск. Следовательно таймаут между переключениями реле нужно выдерживать больше, чем 500 мск. Для гарантированного отсутствия ошибки нужно брать время около 1 сек

VoronovMaksim88

А как в ZWB посмотреть версию ядра и обновить её?

mike

В сетях.
На выходных сделаем мультик