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

Тема: Порча RETAIN переменной при срабатывании Watchdog'а

  1. #1

    По умолчанию Порча RETAIN переменной при срабатывании Watchdog'а

    ПЛК73, булевская RETAIN переменная. При старте устанавливается в FALSE. Больше в коде записи в эту переменную нет вообще -- программа еще не дописана.
    По ходу написания сделал случайно долгий цикл, словил рестарт по вочдогу. С изумлением увидел, что после такого рестарта эта переменная оказалась в состоянии TRUE.

    Вообще, наверно, "reset" в неудачный момент времени может поломать запись в eeprom.

    Поделитесь опытом. Есть такое -- порча RETAIN переменных? Кто как борется?

  2. #2

    По умолчанию

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

  3. #3

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    ретаин переменная запишется в память при выключении питания, никак не раньше... при ресетах и вачдогах, разряженных аккумуляторах вообще никогда ))) бороться - только организовывая собственное хранилище и сбрасывая туда инфо периодически
    Насколько я смог прочитать в каком-то местном треде, у ПЛК63/73 другой подход, пишется сразу.

  4. #4
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    В 63/73 с собственными бортовыми хранилищами - проблема, но и резет "случайно" не прокатит.
    Не доводить до собаки - и все будет пучком. С батарейкой само собой - иногда.
    А что ТС ответил на предложение при соединении после собаки ?

  5. #5

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    В 63/73 с собственными бортовыми хранилищами - проблема, но и резет "случайно" не прокатит.
    Не доводить до собаки - и все будет пучком. С батарейкой само собой - иногда.
    А что ТС ответил на предложение при соединении после собаки ?
    Извините, я не понял вопроса ) и ответа, пожалуй, тоже.

    ТС это кто? и что именно с батарейкой иногда?

    А файловой системы у 73 нету, да.
    Последний раз редактировалось rapucha; 23.11.2015 в 17:53.

  6. #6

    По умолчанию

    Нашел тред, http://www.owen.ru/forum/showthread.php?t=14258

    И правда, сохраняется по потере питания.

    Это, правда, не меняет сути изначальной проблемы -- мусор в RETAIN переменнной после вочдога.

    Разъясните тупому -- такое бывает (или я что-то неверно проинтерпретировал)?
    Последний раз редактировалось rapucha; 23.11.2015 в 18:02.

  7. #7
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    В чем проблема-то. В нормальной программе собаки в принципе быть не должно. И что там при ней случается - абсолютно ..ю

  8. #8

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    В чем проблема-то. В нормальной программе собаки в принципе быть не должно.
    Согласен. Но в программах бывают ошибки.
    И что там при ней случается - абсолютно ..ю
    Не согласен. Такой вочдог, котоый мусорит в памяти, не лучше тупого зависания.

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

    Как минимум, нужно иметь возможность в программе узнать, не сработал ли вочдог в прошлом ресете.
    Последний раз редактировалось rapucha; 23.11.2015 в 23:48.

  9. #9
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    "Собака" нужна для сохранения работоспособности при возникновении не отловленной на этапе тестирования баги
    Ватчдог это голимое зацикливание. Его не исключить - расписаться в месторождении рук.Только на стадии написания.
    Автор не понимает поведения своей собственной программы ? )))
    Для программирования в других областях...
    Для выпекания пирожков тоже не подходит.

  10. #10

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Ватчдог это голимое зацикливание
    Нет. Вотчдог это ресет, который случается, когда зацикливание случилось. Дополнительная фича.

    Как вы думаете, зачем такая возможность предусмотрена? Почему бы не оставить контроллер в глухом цикле, например?

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

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 09.09.2015, 14:37
  2. вопрос по сохранению переменной retain
    от lomtik в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 31.12.2013, 11:22
  3. ПЛК100 глюк при записи переменной modbus
    от PavelGO в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 22.06.2013, 11:09
  4. Ответов: 4
    Последнее сообщение: 24.04.2009, 10:44

Ваши права

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