Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 27

Тема: Быстрый рестарт ПЛК по "передергу" питания

  1. #11
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию А как работает собака в ПЛК100?

    Продолжение.

    Может ли кто-то подсказать, как именно перезапускает ПЛК сторожевой таймер?
    Я ловлю пропадание питания и по нему ухожу в бесконечный цикл, из которого вотчог сбрасывает ПЛК. При этом почему-то переменные инициализируются как-то... кривовато. Например, в упор устанавливается в единицу (1 Гц) частота Генератора по дискретному выходу номер 6.0 (в Конфигураторе подмодуль Генератор).
    Тут и мои косяки могут быть, не спорю. Но все же - как именно сбрасывает вотчдог? Идет ли после этого неявная инициализация переменных?

    Спасибо!

  2. #12

    По умолчанию

    все же - как именно сбрасывает вотчдог? Идет ли после этого неявная инициализация переменных?
    По ссылке, которую я давал чуть раньше, как раз обсуждались нюансы сохранения Retain'ов при перезапуске по бесконечному циклу через watchdog. Не в этом ли причина?

  3. #13

    По умолчанию

    Для меня это набор английских букв и символов))) всегда когда смотришь на это и думаешь неужели я когда буду в этом разбиратся

  4. #14
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от Terrano1992 Посмотреть сообщение
    По ссылке, которую я давал чуть раньше, как раз обсуждались нюансы сохранения Retain'ов
    Но это не то, братцы...
    Я не использую RETAIN вообще. Но есть много обычных переменных. Инициализация их идет такими способами:

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

    2) Операцией присвоения в процессе инициализации программы: есть часть кода, которая выполняется 1 раз после старта программы. В дальнейшем значение переменной может либо использоваться в операциях чтения-записи, либо только читаться.

    3) Операцией присвоения при объявлении переменной. Интересно, эта операция производится при перезапуске от собаки?

    4) Думаю, что при запуске работы контроллера он может устанавливать свое ОЗУ в определенное состояние (скорее всего, нули). Происходит ли это в ПЛК100? Происходит ли это при перезапуске от собаки?

    Ответов на эти вопросы в той ветке я не нашел. Где-то еще есть описание разных типов сбросов ПЛК (в режиме ОНЛАЙН), сейчас буду искать. Но не уверен, что там четко сказано о собаке.

  5. #15
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию Доигрался с собакой

    Ну, братцы, я таки действительно доигрался.

    Прошу подсказать, как мне теперь сбросить программу у ПЛК. В ходе своих экспериментов я сделал шедевр, в котором за 50 мс после старта программа уходит в мертвый цикл. После положенных 1000 мс вотчдог дает рестарт. ПЛК вякает своим противным зуммером и сидит некоторое время в глубокомысленных стартовых процедурах ("что он там так долго делает?" Обычный вопрос возле туалетной комнаты в коммуналке...). Затем он 50 мс работает. И все повторяется.

    А чуднодивный гейтвей устроен так, что системе не все равно, чем там занят процессор. Ей, видишь ли, нужно, чтобы процессор работал.
    В результате, ОНЛАЙН не включится, если проц сидит в мертвой петле. После перезапуска ПЛК система тоже не хочет с ним вязаться. Вероятно, те единственные 50 мс, когда ПЛК работает по программе, слишком малы, чтобы установить ОНЛАЙН.

    Сухой остаток: я не могу теперь подключиться к ПЛК. Я не могу перешить программу или хоть стереть ее как-то. Кто знает, каковы выходы? "Выбросить в форточку" - плохой совет. У меня 13-й этаж.

  6. #16
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    там вроде при нажатой утопленной кнопке сброса надо выключить питание, вроде как то так

  7. #17
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    "Отче наш" читать или нет?
    Впрочем, пробовал и так, и эдак. Не помогло.

    Какие еще варианты?

    ДОБАВЛЕНО: Перепрошивка помогла. Очевидно, во время загадочной надписи "Идет форматирование" (с очень эмоциональным восклицательным знаком) форматируется таки память. Слава Богу!
    Последний раз редактировалось drvlas; 11.12.2012 в 16:47.

  8. #18
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию Каково отличие Сброса ОНЛАЙН от включения питания?

    Итак, работоспособность ПЛК восстаноовлена.

    Снова вернемся к вопросу рестарта программы. Сброс неодинаков от меню СБРОС отладчика и от включения питания

    В приложении проект. Желающие могут его развернуть и проверить, мож у меня руки кривые...

    Опишу кратко для тех, кому влом запускать проект.
    Весь_проект_с_собакой.jpg

    В проекте запускается аппаратный генератор на дискретном выходе 6.0. Частота генератора должна быть 10 Гц, меандр.

    В Конфигураторе создал Генератор с частотой Out11Freq, дьюти-сайклом Out11Duty и непрерывной генерацией.

    В программе есть начальный участок, который устанавливает частоту генератора 10 Гц. Этого должно быть достаточно, если никто больше к переменной Out11Freq не обращается?

    Компилируем, грузим проект. Запускаем, видим частоту 10 Гц. Можно и без осциллографа - в отладчике при работе ОНЛАЙН видно, что переменная Out11Freq таки равна 10.
    Сброс от Кодесиса ничего не меняет, все работает прекрасно.
    А теперь сброс кнопкой на ПЛК. И, о-па! Частота стала 1 Гц. Это видно и осциллом, и по значению переменной Out11Freq, если сейчас подключиться отладчиком. Она равна 1, то есть 1 Гц.
    Такое же поведение при выключении питания и повторном включении.

    Я так понимаю, что инициализации переменных не произошло, переменная Initialized не стала ЛОЖЬю, начальный участок программы не прокрутился... Или где? Где рыться. чтобы понять разницу в сбросах от системы отладки и от выключения питания?
    Причем, что прискорбно, именно сброс от выключения питания дает плохой (для моей задачи) результат. Бог с ней, с системой отладки, но как же работать с непонятной мне инициализацией переменных?
    Вложения Вложения

  9. #19
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    влом смотреть Ваш проект, а такая инициализация Вам не подойдет?
    Изображения Изображения
    • Тип файла: jpg owen.jpg (113.8 Кб, Просмотров: 40)

  10. #20
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    В ней тоже есть простая вещь: проверка значения переменной init. Если у меня не работает проверка значения переменной Initialized, то что изменится?
    Или там что-то еще, что я упустил?

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Ответов: 7
    Последнее сообщение: 27.02.2013, 19:08
  2. Ответов: 8
    Последнее сообщение: 29.03.2011, 14:07
  3. Ответов: 3
    Последнее сообщение: 30.09.2010, 22:30
  4. как выбрать управление "прямое" или "обратное"
    от maxmore в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 18.01.2010, 10:13

Ваши права

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