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

Тема: ПР100 в режиме мастер и много сетевых переменных

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6
    Пользователь
    Регистрация
    05.10.2020
    Адрес
    Питер
    Сообщений
    33

    По умолчанию

    Камней действительно нет. Осмелюсь предположить, что некоторые думают, что такой способ ничего не уменьшает. А на самом деле в некоторых случаях еще как уменьшает. Вернемся к начальному примеру (конечно утрированному) с чтением 50 сетевых переменных. Без использования данного способа ПР100 (мастер) для чтения одной целочисленной переменной (holding register в терминах модбас) выдает отдельный запрос на чтение (функция 3) одного регистра. Соответственно для 50 переменных будет 50 запросов на чтение. Это так, даже если переменные-регистры по адресам идут подряд. К сожалению ПР100 не умеет использовать групповые запросы. Т.е. выдать один запрос на чтение нескольких регистров ПР100 не умеет .

    Теперь рассмотрим использование "Запуск чтения". Прилагаю тестовый проект на 3 переменных. Работает это следующим образом. В проекте организованы 2 слейва с разными периодами опроса. На самом деле это один и тот же слейв с одинаковым адресом (5). Период опроса ReadINput 65535 мсек. К сожалению это максимально возможный период. В идеале он должен быть бесконечностью. В этом слейве указаны 3 сетевые переменные Var1, Var2, Var3. У каждой переменной есть своя переменная Запуск чтения (V1_done,...). Любая переменная Var1, Var2 или Var3 будет считана ПРкой только тогда, когда переменная, указанная в поле Запуск чтения, примет значение 1. Эти сетевые переменные (Var1...) нам и нужно считать в программу.
    Второй слейв InputDone. Период его опроса небольшой (в моем случае 1 сек). Т.е. переменную Input_Done (которая указана в данном слейве и не имеет переменной в Запуск чтения) мастер (ПР100) считывает 1 раз в секунду.
    Напомню, что значения в переменные Var1, Var2, Var3 вводятся вручную с панели оператора. Для завершения ввода в переменную Var1 оператор нажимает на панели кнопку "Ввод". Именно по этому нажатию введенные данные заносятся в переменную Var1, а в переменную Input_Done заносится номер переменной Var, в нашем случае 1. Для переменной Var2 заносится 2. И т.п. Т.е. по нажатию Ввод на панели набранные данные попадают в свою сетевую переменную и номер этой сетевой переменной "одновременно" заносится в специальную сетевую переменную (Input_Done). Так ввод с панели оператора организован. Надеюсь теперь понятно, что вместо считывания 3-х переменных (3 запроса на чтение) периодически выполняется один запрос на чтение. А если было бы 50 переменных, то вместо 50-ти запросов на чтение в каждом цикле опроса всего один запрос. Что-то мне подсказывает, что мы тут уменьшаем и не хило ...
    Кстати, удержание в 1 переменной, указанной в Запуск чтения, в течение 1 цикла ПР100 вполне достаточно, что бы ПРка организовала и выдала "принудительный" запрос на чтение соответствующей сетевой переменной.
    Изображения Изображения
    Вложения Вложения
    • Тип файла: owl Var3.owl (117.5 Кб, Просмотров: 9)

Похожие темы

  1. Инициализация сетевых переменных
    от dzukp в разделе Среда программирования OWEN Logic
    Ответов: 24
    Последнее сообщение: 02.11.2022, 20:18
  2. Буферизация сетевых переменных
    от anthrwpos в разделе Среда программирования OWEN Logic
    Ответов: 12
    Последнее сообщение: 22.08.2018, 08:50
  3. <Слишком много переменных для мониторинга>
    от Павел Б. в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 30.11.2015, 09:26
  4. Ответов: 3
    Последнее сообщение: 05.03.2015, 14:01
  5. Энергонезависимость сетевых переменных
    от max_etf в разделе Программируемые реле
    Ответов: 19
    Последнее сообщение: 07.09.2012, 09:03

Ваши права

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