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

Тема: не сохраняется retain переменная

  1. #1

    По умолчанию не сохраняется retain переменная

    сделал как в справке написано.
    задаю из визуализации время, делаю сброс а оно не сохраняется.
    Вложения Вложения

  2. #2
    Пользователь
    Регистрация
    10.12.2009
    Адрес
    Воронеж
    Сообщений
    673

    По умолчанию

    А глобальной ее делать не пробовали?

  3. #3

    По умолчанию

    в гобальные вставлял
    VAR GLOBAL_RETAIN
    tz9:=TIME;
    END_VAR

  4. #4

    По умолчанию

    "Делаю сброс" - вот здесь поподробнее, какое именно действие с ПЛК под "сбросом" подразумевается...
    Поясню: retain'ы обязаны сохраняться при обычном прерывании работы путем отключения питания ПЛК. И то при условии, что аккумулятор в ПЛК не сдохший. А вот при всяких "насильственных действиях", выполняемых из среды Codesys, они сохраняться не обязаны.
    И, кстати: это при отладке программы на реальном ПЛК происходит, или в симуляции?
    Последний раз редактировалось Terrano1992; 23.11.2012 в 09:38.

  5. #5

    По умолчанию

    без реального плк пока. а сброс делаю " онлайн - сброс ". как в справке:
    "Сохраняемые переменные обозначаются ключевым словом RETAIN. Эти переменные сохраняют свои значения, даже если произошла авария питания (выключение и включение) контроллера, что равносильно команде сброс (''Онлайн' 'Сброс''). Значения RETAIN переменных сохраняются в энергонезависимой памяти"

  6. #6

    По умолчанию

    Ну вы похоже сами на свой вопрос и ответили. В реальном контроллере есть специальные средства, которые эти переменные записывают, а потом восстанавливают, а в эмуляции их скорее всего нет.

  7. #7

    По умолчанию

    http://www.owen.ru/forum/showthread.php?t=2985. Почти та же самая проблема, и тоже в симуляторе (на реальном контроллере все работает без проблем). Видимо, такова реализация симулятора в Codesys.

  8. #8

    По умолчанию

    понятно.спасибо

  9. #9

    По умолчанию

    Здравствуйте! Подскажите как сделать чтобы переменная была глобальной и ее можно было бы изменить в любой момент, со СКАДЫ например? Т.к. одинаковые имена переменным задать нельзя, то в конфигурации ПЛК для передачи задаю другое имя переменной, а в программе их связываю, но при запуске программы значение из конфигурации (соответственно "0") записывается в глобальную переменную, как исправить ситуацию?
    Хочу сказать что если пропадет питание, то переменная RETAIN сохраниться, но программа то запустится сначала и получается что переменная из конфигурации (в которой будет "0") запишет свое значение в глобальную, сбросит получается, вот в чем проблема
    Последний раз редактировалось Igor.m; 06.11.2013 в 07:48.

  10. #10

    По умолчанию

    Переменные в конфигурации также имеют статус Retain и сохраняются. Другое дело, если некое устройство (например панель) при совместном старте с ПЛК запишет туда ноль, то это будет неприятно. Но это уже другая тема, и она здесь бурно обсуждалась.

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

Похожие темы

  1. Retain переменная
    от service в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 12.10.2012, 14:50
  2. конфигурационная переменная
    от Доренский Алексей в разделе ПЛК63/73
    Ответов: 1
    Последнее сообщение: 05.10.2010, 18:12
  3. Var_global Retain Persistent не сохраняется
    от Voronok в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 04.12.2008, 14:21

Ваши права

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