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

Тема: Задание уставок с панели СП300

  1. #1

    По умолчанию Задание уставок с панели СП300

    Доброго времени суток!

    Имеется контроллер ПЛК110 (slave) и панель оператора СП310 (master). Связь по ModBus RTU.

    В программе контроллера есть локальные переменные с уставками для разных процессов. Эти уставки необходимо изменять с панели. Для изменения уставок применил элмент цифровой ввод данных, в котором отдельно задается значение в один сетевой регистр и отдельно считывается значение уставки через другой сетевой регистр.

    Использовать RETAIN память контроллера не получилось, так как задание идет от панели оператора к ПЛК. То бишь при включении устройств на ПЛК появляются нулевые значения уставок. Появилась идея использовать PFW регистры панели оператора.

    Возник вопрос, можно ли использовать PFW регистры для однократного задания значений по умолчанию для уставок при загрузке панели оператора (с использованием функциональной кнопки).

    Я вижу это так:
    1) загружается ПЛК
    2) загружается панель оператора
    3) после загрузки панели из PFW регистров однократно с использованием функциональной области записываются данные в сетевые регистры задания уставок
    4) На экране уставок отображаются значения считанные из ПЛК и дальнейшее изменение уставок идет с панели вручную

    Если есть какие то еще идеи работы с заданием уставок с панели оператора, буду очень признателен, если поделитесь. На форуме информация по данному вопросу есть, но все поверхностно.

    В идеале конечно хотелось бы, чтобы при загрузке устройств значения уставок сначала загрузились из ПЛК в панель оператора.
    Изображения Изображения

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

    По умолчанию

    Я делал пару проектов в подобной связке. Никаких дополнительных телодвижений не совершал. Просто в конфиге ПЛК прописывал необходимые переменные в регистры, в проекте обращался непосредственно к ним. В панели просто в в нужных окнах ввода\отображения прописывал номера регистров соответствующих переменных. И все. Все переменные сохранялись по включению. Область регистров Модбас-слейв ПЛК является ретайн по дефолту. данный способ хорош, если не требуется организовывать рецепты.

  3. #3

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Я делал пару проектов в подобной связке. Никаких дополнительных телодвижений не совершал. Просто в конфиге ПЛК прописывал необходимые переменные в регистры, в проекте обращался непосредственно к ним. В панели просто в в нужных окнах ввода\отображения прописывал номера регистров соответствующих переменных. И все. Все переменные сохранялись по включению. Область регистров Модбас-слейв ПЛК является ретайн по дефолту. данный способ хорош, если не требуется организовывать рецепты.
    То есть достаточно прописать переменные для панели оператора в ПЛК и без локальных переменных (как на моей картинке Tust, Ohl_T_ust1, Ohl_T_ust2 и так далее) и в программе оперировать только с ними. А нужно ли куда-нибудь прописывать значения по умолчанию? Или получается так, что при первом пуске все значения уставок будут "0", далее я устанавливаю какие-либо значения всем уставкам через панель и потом они сохраняются даже после сброса питания?

  4. #4
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    То есть достаточно прописать переменные для панели оператора в ПЛК и без локальных переменных
    Да. Переменные, объявленные в конфигурации, являются глобальными, и доступны из любого места.
    А нужно ли куда-нибудь прописывать значения по умолчанию?
    Если есть критические уставки, которые по определению не могут иметь нулевое значение, то я делал так:
    1. Создавал POU (ST) например с именем FirstInit
    2. В этой POU делал следующее:
    IF Уставка_1=0 AND Уставка_2=0 ADN Уставка_3=0
    THEN
    Уставка_1:=Значение по умолчанию_1;
    Уставка_2:=Значение по умолчанию_2;
    Уставка_3:=Значение по умолчанию_3;
    ..
    Уставка_N:=Значение по умолчанию_N;
    END_IF;
    ---
    3. В PLC_PRG в самом начале делал следующее
    VAR init:bool;
    END_VAR
    ----
    IF NOT init THEN
    FirstInit();
    init:=TRUE;
    END_IF;

    ------
    Данный алгоритм работает так: при включении ПЛК локальная переменная init = FALSE, происходит вызов ПОУ FirstInit, где проверяется несколько ключевых переменных на нулевое состояние, и если это так, то всем требуемым переменным присваиваются значения по умолчанию. Нюанс - можно проверять несколько, а присваивать всем. Далее init переводится в TRUE, что "отключает" вызов FirstInit. Т. е. делает проверку только один раз после включения ПЛК, дабы не производить лишней и уже бесполезной работы.
    Данные в регистрах Модбас-слейв сбрасываются при перепрошивке ПЛК, обновлении проекта и использования рубильника на ПЛК Работа-Стоп-Сброс (который я обычно отламываю сразу, что бы ни у кого не было соблазна поиграть с ним).
    Последний раз редактировалось Sulfur; 20.08.2020 в 14:44.

  5. #5

    По умолчанию

    Спасибо, что заморачиваетесь писать такой развернутый ответ! Он был очень полезен.

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 19.07.2020, 16:14
  2. Проверка бита в макросе панели СП300
    от GSK в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 03.03.2017, 15:17
  3. ОРС Сервер для панели СП300
    от Технос в разделе Панели оператора (HMI)
    Ответов: 4
    Последнее сообщение: 14.09.2016, 12:04
  4. Задание выходной частоты с панели
    от Goga2000 в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 12.08.2015, 09:40
  5. ПЛК150+ИП320(slave) задание уставок
    от Anth в разделе Панели оператора (HMI)
    Ответов: 11
    Последнее сообщение: 26.07.2013, 22:19

Ваши права

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