Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: как подвесить плк100/150?

  1. #1

    По умолчанию как подвесить плк100/150?

    Уважаемые господа автоматчики и программисты!

    подскажите, как лучше всего провести ТЕСТ на зависания приборов ПЛК100 и ПЛК150?

    Дано: приборы ПЛК устанавливаются заказчиком на довольно ответственную позицию и требуется подтвердить их возможность самостоятельно определять своё зависание (watchdog) и безаварийно выключиться, выставив свои реле и реле приборов МДВВ и МВУ в положение "безопасности", как указано в паспортах и предварительных настройках. Сделать это надо однократно при пуске - на смонтированном объекте. Демонстрация "протоколируется".

    Решение: есть возможность включить в программу блок "зависания", обращающийся сам к себе (бесконечный цикл? какой? посоветуйте, плз), который выведет ПЛК в транс и вызовет его отключение. Обращение к блоку вместо нормально загруженной программы можно выполнить замыканием входного контакта ПЛК(есть один, не используется).
    То есть тест для крепкого сна заказчика проводится так: устанавливается перемычка на вход, например 1. Если эта перемычка висит 1 минуту - блок-убийца начинает работу и подвешивает ПЛК. Через пару секунд ПЛК рубится, все реле устанавливаюстя в положение безопасности - все счастливы. :о)
    Мычка снимается, ПЛК перезагружается снятием питания, и всё начинает/продолжает работу по НОРМАЛЬНОЙ ПРОГРАММЕ...

    Собственно, что может вызвать преднамеренное зависание ПЛК?
    Что может подвесить ПЛК из нормальной жизни?

    Пожалуйста, предложите вариант проверки!
    Заранее спасибо!

  2. #2

    По умолчанию

    while (reset=1) do
    reset:=1;
    end_while;

  3. #3
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    Задача очень интересная и не такая уж простая,а иногда и неразрешимая,я о том как противостоять реальному зависанию.
    Как бы самому не обмануться и заказчика не обмануть,если ответственное применение.
    Не много о этой проблеме посмотрите здесь http://www.microchip.su/showthread.php?t=4461
    Последний раз редактировалось rovki; 01.05.2010 в 12:28.

  4. #4

    По умолчанию

    2 Владислав: к сожалению, этот "бесконечный цикл" не подвесит ПЛК... Да, выхода из него программа не получит. Но ПЛК просто будет иступлённо выполнять этот блок за время 0,1% от минимального времени цикла, а потом ждать до окончания минимального времени цикла и начинать заново... Фактически можно привести в пример такой же блок разогрева оборудования:

    while Temperаtura < 100C do
    TEN:=true;
    end_while;

    Прогрев до 100С происходит минимум час (это сотни тысяч циклов программы), а единственное, что работает в ПЛК - вот этот блок, точно такой же, как Ваш... Но это не значит, что во время прогрева - он зависает!..

    Вероятно, необходимо сделать в ПЛК такую систему обращений, чтоб время выполнения одного цикла программы стало больше времени, через которое WatchDog перезагрузит ПЛК... максимальное время цикла у меня сейчас стоит 1 секунда (1000 мс). Это именно здесь задаётся время срабатывания ВотчДога (так написано в руководстве по программированию ПЛК, я на всякий случай спросил :о)))?
    Специально для проверки зависания делать этот параметр меньше нельзя - ведь в нормальном режиме должна работать нормальная программа - а там своя длина циклов - нельзя всё сбрасывать и перенастраивать...

    Может какое-то обращение само к себе использовать... рекурсию или типа того, чтобы один цикл выполнялся очень долго...
    типа
    шаг 1: go_to 2;
    шаг 2: go_to 1;
    но как это сделать на ПЛК? он же не признаёт "гоу-ту шаг такой-то"...
    впрочем, если это будет язык sfc...

    з.ы. как полезно писать на форумах - пока объяснишь чего хочешь - сам поймешь, что надо делать, гы-гы :о))

    2 rovki: благодарен! очень познавательно!!!
    К счастью, мы не управляем через этот ПЛК самолётом - в принципе будет достаточно хотя бы минимального встроенного программного ВотчДога - главное, продемонстрировать, что он вообще есть!
    и еще важнее, чтоб при зависании - реле переключились в предустановленный "безопасный режим" именно так, как рассказывает нам паспорт ПЛК. Вот это и надо проверить.
    Например, второй частью проверки будет - выход в "безопасный режим" релюшек прибора МВУ при пропадании связи с основным ПЛК - для этого я просто откину провод сети RS485, связывающий ПЛК с МВУ, и в процессе выполнения программы МВУ выдаст светодиодом "аварию" и ПЕРЕКЛЮЧИТ реле в предустановленные состояния. Вот это УЖЕ так и работает.. осталось как-то смоделировать зависание ПЛК.
    А если ПЛК физически сгорит (и не сработает вотчдог, гы-гы!), как это пытаются "обойти" в указанной Вами ссылке, то случай тут обидный, но к сожалению, его предупреждение не входит ни в ТЗ на программирование, ни в схему оборудования, ни в смету. Зато в смету входит специальный стабилизатор напряжения на все программные элементы шкафа.
    Последний раз редактировалось Dimur; 02.05.2010 в 19:25.

  5. #5

    По умолчанию

    извините, но наверное мне лучше знать повесит или нет

  6. #6

    По умолчанию

    2 Владислав: Вам лучше знать :о))) но я всё-равно из вредности проверил на ПЛК150...

    ...озадачен до глубины души... Указанный мной пример работы нагревательного элемента повесит ПЛК ничуть не хуже, чем пример Владислава... и это уже жесть... А что цикл "while do" вообще нельзя использовать? :о(((

    В общем, реализация зависания ПЛК150 проведена успешно и весьма просто! Спасибо Владиславу! Правда заодно он подвесил и меня...

    ПЛК150 достойно справился с перезагрузкой - выключил выходные реле (FALSE в "безопасном состоянии"), снял напряжение с аналоговых выходов...
    к сожалению, добиться включения реле при перезагрузке в "безопасном режиме", то есть установив TRUE в настройках, мне пока не удалось...
    ну дык и ладно - все-равно все безопасные режимы планировал делать "НО".

    :о)))) если где и надо искать глобальный планетный разум - так это на форумах в инете.

    з.ы. подвесить ПЛК переходами с шага на шаг на языке sfc мне не удалось. ;о)

  7. #7
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    "в принципе будет достаточно хотя бы минимального встроенного программного ВотчДога"-а,я думал ,что Watchdog timer — аппаратно реализованная схема контроля за зависанием системы,например- http://www.gaw.ru/html.cgi/txt/doc/m...mega103_44.htm
    Последний раз редактировалось rovki; 03.05.2010 в 09:18.

  8. #8

    По умолчанию

    2 rovki: Вы правы, наверняка внутри ПЛК он аппаратный, но тут решающее слово за производителем - как уж они там его реализовали...

    Единственное моё прикосновение к нему происходит только в "программе" - выставлением максимального времени цикла - из этих соображений я лично для себя назвал его "программным".
    Другое дело, что мы сами не делаем "навесные" дополнительные элементы рядом с ПЛК самостоятельно, как это животрепещуще описали в Ваших ссылках - именно такие "навесы" я бы для себя обозвал "аппаратным вотчдогом"...

    Надо быть корректнее в формулировках, Вы правы.

    Вероятно Вы сталкивались с проблемой зависания микроконтроллеров? Как часто это происходит в приборах (безотносительно к продукции ОВЕН)?

  9. #9

    По умолчанию

    В ПЛК 2 Watch Dog Один программный - именно его Вы настраиваете временем цикла. Второй аппаратный.

  10. #10
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    А доступ (программный ) есть к аппаратному Watchdog timer ?на уровне пользовательской программы.И если можно механизм работы программного Watchdog timer кратенько.И связаны ли два Watchdog timer?
    например ,в пр часто приходится применять ,с целью диагностики программные Watchdog timer,собственной конструкции.Которые не спасают от" зависания " пр,так как нет возможности выход такого таймера подать на рестарт,а только на выход,хотя можно косвенно снимать питание с Пр,да и не для выявления зависания они используются,хотя можно в принципе.В то же время на уровне прошивки имеется Watchdog timer ,которым пользуются разработчики прошивки и который ,если я не ошибаюсь имеет аппаратную природу с программным управлением (уставка времени)
    Последний раз редактировалось rovki; 03.05.2010 в 15:45.

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •