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

Тема: Инициализация Modbus переменных после перезапуска

  1. #1

    По умолчанию Инициализация Modbus переменных после перезапуска

    Добрый день.

    Имеется конфигурация
    - ПЛК200-01-CS (+ модули расширения) - Modbus TCP Slave.
    - панель СП307-Р - Modbus TCP Master.
    - SCADA Master Scada 4D

    Задача: обеспечить сохранение заданных пользователем значений Modbus переменных после перезагрузки контроллера (пропадание питания).

    В чем проблема: в прошивке контроллера созданы переменные, которые добавлены в "карту" ModbusTCP_Slave_Device. Доступ к переменным есть как с панели, так и со скады. Все работает - изменить значение в контроллере можно и с панели, и со скада. После сброса питания все переменные, которые используются в Modbus сбрасываются в 0. Переменные размещены в области VAR_GLOBAL RETAIN.
    Что я смог прочитать по данному вопросу проблему не решает. Как я понял, если переменная добавлена в Modbus после перезапуска контроллера она инициализируется тем, что есть в карте на данный момент, а не значением из энергонезависимой памяти. А т.к. устройства Master пишут значения в контроллер не постоянно, то соответственно после перезапуска контроллера - там нули.
    В панели пробовал создать функциональные области, писать в ней значения в энергонезависимую память и потом в режиме "постоянно" копировать из этих регистров значения в переменные Modbus, которые уже уходят в контроллер. Но в данной связке отваливается запись значений со SCADA.

    Как можно решить данную проблему?

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

    По умолчанию

    Сами же по сути и сказали - на старте ПЛК переписать слейв тем что надо.
    Уставки должен хранить тот, кому они нужны для работы. Причем ту панели/скады? Они просто окошко редактирования
    Последний раз редактировалось Валенок; 01.08.2024 в 08:30.

  3. #3

    По умолчанию

    У меня вопрос, как это сделать.

    1. Панель пишет значения (например, уставку), только после изменения их непосредственно с панели. Читает - постоянно.
    2. Скада - аналогично панели. Пишет при изменении, читает - постоянно.
    3. После сброса пиатания контроллера все переменные Modbus принимают значение "0".
    Чем их инициализировать? Значениями по умолчанию также не получится.

  4. #4
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,994

    По умолчанию

    Скорее всего, что панель вам и пишет значения при запуске, а там нули в панели.
    Modbus Slave переменные и так должны быть энергонезависимы в ПЛК, без добавления в глобальные, точнее они и есть глобальные в данном случае.
    Проверяйте свои программы.

    Или может Scada. В общем отключите по очереди одно и другое и все разом и проверьте, подключившись сторонним средством, которое точно не пишет, модпул или еще чем-то

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

    По умолчанию

    как вариант

    Код:
    var retain
      x : ....
    
    var //не ретайн
      init : bool;
    
    где-то в слейве. Пофиг - ретайн там или не ратайн...
      _x : ....
    
    ----------------
    if not init then
      init := true;
      _x := x; 
    end_if
    x := _x;
    
    ... //работа с x

  6. #6

    По умолчанию

    Есть вот такая галочка в настройках модуля - может в ней дело?
    изображение_2024-08-01_124901177.png

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Скорее всего, что панель вам и пишет значения при запуске, а там нули в панели.
    Мастера в панелях (да и везде) 1-ую операцию после включения/восстановления связи должны делать чтением. Иначе на хрен они нужны такие.

  8. #8
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,994

    По умолчанию

    Валенок так может там программой, скриптом или еще чем наваяли проверку и запись, мало ли?

  9. #9

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Есть вот такая галочка в настройках модуля - может в ней дело?
    изображение_2024-08-01_124901177.png
    Галочки этой нет.

    2024-08-01_08-52-50.png

  10. #10

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Валенок так может там программой, скриптом или еще чем наваяли проверку и запись, мало ли?

    Нет. Master устройства не изменяют точно. Ну и для проверки оставлял контроллер без сети - только подключенный к нему ноут + контроллер в сети.

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

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 22.09.2023, 13:27
  2. Время тревоги в журнале разное после перезапуска RT
    от Nescen в разделе ПЛК (среда MasterSCADA 4D)
    Ответов: 0
    Последнее сообщение: 10.07.2023, 15:48
  3. Инициализация сетевых переменных
    от dzukp в разделе Среда программирования OWEN Logic
    Ответов: 24
    Последнее сообщение: 02.11.2022, 20:18
  4. Ответов: 6
    Последнее сообщение: 19.01.2017, 16:51
  5. Инициализация Modbus slave (Retain) переменных
    от Спорягин Кирилл в разделе ПЛК1хх [М02]
    Ответов: 20
    Последнее сообщение: 14.03.2016, 08:17

Ваши права

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