Показано с 1 по 7 из 7

Тема: Контроллер не сохраняет переменные Retain в ModBus (slave)

  1. #1

    Question Контроллер не сохраняет переменные Retain в ModBus (slave)

    Доброго дня, на контроллер ПЛК 110 передаются уставки с панели Weintek по RS485. Всё приходит, контроллер их видит, но при снятии питания они обнуляются, за исключением двух. У всех переменных стоит свойство Retain (на скриншоте видно), как это можно исправить?
    Изображения Изображения

  2. #2

    По умолчанию

    Я бы посоветовал уйти от жуткой прямой адресации на структуру.
    Скорее всего проблема в прямой адресации.
    Просьба почитать вот это моё сообщение и далее в теме: https://owen.ru/forum/showthread.php...l=1#post420631
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net

  3. #3

    По умолчанию

    Цитата Сообщение от Kofe Посмотреть сообщение
    Доброго дня, на контроллер ПЛК 110 передаются уставки с панели Weintek по RS485. Всё приходит, контроллер их видит, но при снятии питания они обнуляются, за исключением двух. У всех переменных стоит свойство Retain (на скриншоте видно), как это можно исправить?
    Если 2 переменных сохраняются, то проблема не в RETAIN переменных, а в том что они при включении (скорее всего) перезаписываются панелью.
    Есть несколько простых способов избежать перезаписи:
    1) Время и наработка должны только читаться панелью.
    2) Инициализировать уставки при включении в ПЛК и тоже только читаться из панели.
    3) Хранить уставки в панели в RW регистрах и считываться при включении.
    Прямая адресация это зло и его надо избегать.
    Последний раз редактировалось kondor3000; 19.12.2023 в 19:58.

  4. #4

    По умолчанию

    Цитата Сообщение от Kofe Посмотреть сообщение
    Доброго дня, на контроллер ПЛК 110 передаются уставки с панели Weintek по RS485. Всё приходит, контроллер их видит, но при снятии питания они обнуляются, за исключением двух. У всех переменных стоит свойство Retain (на скриншоте видно), как это можно исправить?
    Попробуйте для начала переменные с прямой адресацией в модбас-слейв выделить в отдельный список глобальных переменных, не добавляя в заголовке RETAIN и PERSISTENT (они уже и так энергонезависимые)

  5. #5

    По умолчанию

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

  6. #6

    По умолчанию

    Спасибо за советы, обязательно разберусь, а касаемо переменных, они таки сохраняются, мне не правильно передали информацию)

  7. #7

    По умолчанию

    Цитата Сообщение от Kofe Посмотреть сообщение
    Спасибо за советы, обязательно разберусь, а касаемо переменных, они таки сохраняются, мне не правильно передали информацию)
    В угол и на горох виновных...

Похожие темы

  1. ПЛК110-60Р-М02, не сохраняются RETAIN в Modbus Slave
    от Александр32 в разделе ПЛК1хх [М02]
    Ответов: 8
    Последнее сообщение: 21.02.2019, 08:36
  2. Инициализация Modbus slave (Retain) переменных
    от Спорягин Кирилл в разделе ПЛК1хх [М02]
    Ответов: 20
    Последнее сообщение: 14.03.2016, 08:17
  3. Ответов: 7
    Последнее сообщение: 17.02.2013, 17:45
  4. плк150 не сохраняет переменные RETAIN
    от Максим_В в разделе ПЛК1хх
    Ответов: 40
    Последнее сообщение: 29.11.2012, 15:47
  5. Modbus slave переменные
    от Дмитрий77 в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 30.04.2010, 16:26

Ваши права

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