Стартовая страница › Форумы › Взаимодействие с устройствами › "Постоянная" команда
- В этой теме 7 ответов, 3 участника, последнее обновление 6 лет, 2 месяца назад сделано manjey73.
-
АвторСообщения
-
20.02.2018 в 15:38 #8529scmemberУчастник
Добрый день!
Пытаемся использовать RapidSCADA в составе комплекса управления оборудованием. Для управления оборудованием используется ПЛК, в качестве GUI для отправки команд используется сторонняя программа.
регистры ПЛК:
DI_1 это регистр команды.
DО_1 это регистр для мониторинга.В GUI оператор нажимает на кнопку. Надо чтобы на DI_1 появилась скажем цифра 2. Нажимает на другую кнопку — на DI_1 соотв должны появляться другие цифры. Для индикации обратной связи с ПЛК считывается регистр DО_1, и считанное значение выводится в GUI
Реализовали модуль для связи rapid scada с GUI, завели тег КП для DО_1 и команду ТУ для DI_1. К сожалению, сейчас система работает примерно так — при нажатии кнопки в GUI соответствующая цифра успешно записывается в DI_1, но тут же сбрасывается снова на ноль (видимо при следующем обмене ПЛК и Коммуникатора)
Вопрос — можно ли каким-то образом отправлять «постоянные» команды, чтобы при каждом обмене с ПЛК Коммуникатор писал в соотв регистр команд последнюю полученную команду?
Заранее спасибо за ответ!
20.02.2018 в 16:00 #8530manjey73УчастникВсе логично, вы нажимаете кнопку, «регистр» меняет значение согласно нажатию. Отпустили кнопку, «регистр» обнулился. Scada честно читает ваш «регистр» и выводит значение.
Вам надо фиксировать значение последней переменной, соответствующей нажатию кнопок ?
Такие вещи должны делаться в ПЛК по большей части, или единственная возможность сейчас делать только на RapidScada ?
- Этот ответ был изменен 6 лет, 2 месяца назад от manjey73.
20.02.2018 в 16:22 #8532scmemberУчастникВам надо фиксировать значение последней переменной, соответствующей нажатию кнопок ?
с точки зрения GUI — именно так. Если оператор GUI нажал на кнопку, которая отправляет ПЛК команду 2 — ПЛК будет выполнять эту команду, пока на его входе записана 2. Соотв от скады ожидаю, что она будет передавать на вход ПЛК эту команду, пока не придет новая
Такие вещи должны делаться в ПЛК по большей части, или единственная возможность сейчас делать только на RapidScada ?
При необходимости можно сделать это и в ПЛК. Но… скажем так — многие другие скады по умолчанию работают именно по описанной мной логике… вобщем пытаюсь разобраться как именно лучше сделать в случае с rapidscada )
20.02.2018 в 17:25 #8533manjey73УчастникЧтобы RapidScada отправляла команду в ПЛК (любой) нужен Модуль автоматического управления (можете поставить и взять демо ключ). И посмотреть что нынче может модуль, давно сам не смотрел.
Без модуля команда будет отправлена 1 раз.
Или я опять не понимаю, чего вы хотите добиться ? и где и что у вас обнуляется ?
Можете накидать структурную схему ? я так понимаю в планах уйти от самописного GUI ?20.02.2018 в 18:59 #8534scmemberУчастникНаоборот — необходимо интегрироваться в тот GUI.
Ну вот есть некая программа, в ней две кнопки ВКЛ и ВЫКЛ. Оператор жмет ВКЛ, GUI генерирует сообщение, что надо включить устройство. Устройство должно включиться. Через какое то время оператор жмет ВЫКЛ, GUI генерирует сообщение, что надо выключить. Всего два сообщения
Вот есть контроллер устройства, который включит его, если на вход ему записать скажем 1, и выключит, если записать 0.
Сейчас получается так — при нажатии кнопки ВКЛ в GUI скада успешно записывает единицу на вход контроллера, но при последующих обменах ПЛК и Коммуникатора судя по всему, скада снова начинает писать на вход ноль. Устройство соотв, если и включается то на какието доли секунды…
А хотелось бы так — при нажатии кнопки ВКЛ в GUI скада должна записать единицу на вход контроллера, и так ее и оставить, пока от GUI не придет новое значение. Или записывать это значение при каждом обмене, если она подругому не умеет.. главное не писать ноль
Готов накидать схему, если нужно уточнить
20.02.2018 в 20:02 #8535MikhailМодераторНужно определиться с физическим уровнем. Нужно, чтобы Коммуникатор повторял команду с какой-то периодичностью?
Обычно команда записывает значение в регистр ПЛК, и ПЛК сохраняет полученное значение. Что заставляет Ваш ПЛК переключиться обратно?
20.02.2018 в 20:03 #8536MikhailМодераторскада снова начинает писать на вход ноль
Без команды скада ничего сама писать не будет.
20.02.2018 в 21:18 #8540manjey73УчастникСкорее всего в ПЛК не реализовано сохранение полученной команды, однозначно это ошибка, если в него надо постоянно писать значение.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.