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

Тема: Инициализация Modbus slave (Retain) переменных

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

    По умолчанию

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

  2. #12
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Я в этой области храню настройки, которые пользователь может ввести с АРМа оператора. Например, верхние и нижние границы аналогового датчика. Их устанавливают с АРМа оператора, но при этом они должны сохраниться при отключении питания с контроллера.

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

    По умолчанию

    Ну и берите их со слейва и переносите в ретайн. 2-3 строчки

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Ну и берите их со слейва и переносите в ретайн. 2-3 строчки
    а лучше такие вещи самостоятельно писать/читать в файл, а не пологаться на ретайн
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #15
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от SKV Посмотреть сообщение
    Меня в целом устраивает стандартный механизм, только не пойму почему не работает вышеизложенное?
    вышеизложенное ни где не применяется, если Вы хотите воспроизвести ситуацию с незапланированной перегрузкой плк, то делайте её с помощью бесконечного цикла. Сброс из КДС это только сброс, сделать его могут только намеренно и даже если Вы что то придумаете от этого, злоумышленник найдет другой способ уничтожить данные, в конце концов есть кувалда
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #17
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Нет. Меня интересует процесс инициализации. Почему он не работает?

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

    По умолчанию

    а где Вы задаете инициализацию в слейве? Инициализация конфиг обнуляет, ни какого отношения к сохранению последних значений она(инициализация) не имеет. Вас тогда должно удивлять, что ФБ не сохраняют, свои внутренние сохраненные значения, после сброса
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #19

    По умолчанию

    Описанные "странности" никакого отошения к штатной работе не имеют. Это процесс отладки.
    Для сохранения данных в момент отладки Вам необходимо реализовать механизм сериализации (например считывание массива ОЗУ Slave в файл перед отладкой и восстановление после).
    Ничего тут сложного нет. Но стандартным такой механизм никогда не будет.

    Тем более если вы меняете код программы - ПЛК обязан сбросить всё, т.к. у него нет никакой информации о том, что следует сохранять.
    Тролль-наседка, добрый, нежный и ласковый

  10. #20
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Владислав, попробую объяснить по-другому, что мне не нравиться. И если Вы подскажете, что можно сделать, то я буду благодарен.
    Как я уже писал, если я вношу изменения в проект, которые не поддерживают горячее обновление кода, то после загрузки нового проекта, все переменные из области Modbus Slave становятся равны нулю, даже если им заданы начальные значения, как это сделано в проекте из поста №1.
    Чтобы проинициализировать их мне нужно сделать следующее:
    1. Сброс (заводской);
    2. Сброс по переключателю на ПЛК110 М02;
    3. Изменение конфигурации контроллера (например, добавление переменной в область Modbus Slave);
    4. Загрузка проекта.
    5. Переменные из области Modbus slave принимают начальные значения.

    Ввиду того, что контроллер от инженерной станции находится на значительном расстоянии (5 км), то пункт 2 представляет наибольшее неудобство. Дополнительно отмечу, что те же действия без пункта 2 или без пункта 3 не приводят к желаемому результату, т.е. сброс по переключателю и изменение конфигурации обязательны.
    Отсюда мои вопросы.

    Вопрос 1.
    Команда CoDeSys "Сброс (заводской)" и сброс по переключателю на ПЛК110, как видно, не одно и то же. В чем разница? Что сбрасывает одна и что вторая?

    Вопрос 2.
    Почему переменные из области Modbus slave при первоначальной загрузке принимают начальные значения, заданные в программе, а при заводском сбросе их не инициализируют этими значениями? Это невозможно реализовать? Или это ошибка?
    Последний раз редактировалось Спорягин Кирилл; 13.03.2016 в 14:17.

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

Похожие темы

  1. Ответов: 17
    Последнее сообщение: 15.09.2015, 06:05
  2. Обновление Retain переменных
    от PotokU в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 22.07.2015, 12:18
  3. Ответов: 19
    Последнее сообщение: 09.02.2011, 09:15
  4. Ответов: 3
    Последнее сообщение: 21.04.2008, 19:54

Ваши права

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