Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Запись значения в один тег, а чтение с другого  (Прочитано 3806 раз)

razorqhex

  • Пользователь
  • **
  • Сообщений: 79
    • Просмотр профиля
Всем привет.

Не могу разобраться с одним вопросом. Пробовал разные методы решения задачи.

В общем:
Есть поле FiledTask1 и нужно сделать такую штуку, а именно в тег SetPoint я произвожу запись, а чтение в это же поле должно быть с тега ReferenceUnit.

Делал функции по изменению переменной, подбрасывал разные варианты событий. Объект поле то не менялся, то неправильные результаты были. Записал в тег значение 1.45, на ОРС значение ещё не изменилось, но по событию объект поле считал значение уже с ReferenceUnit, которое к тому времени ещё не успело измениться.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1407
    • Просмотр профиля
Здравствуйте.

Как мы понимаем, Вам нужно при вводе значения через компонент "Поле" записать значение в одну переменную и вывести в это же поле значение другой переменной. Такой возможности, к сожалению нет. В будущем рассмотрим возможность добавления такого функционала. Данный функционал имеется в некоторых OPC-серверах, например arOPC(см. скриншот во вложении), т.е. можно создать один тэг, в котором запись будет производиться по одному адресу, а чтение по другому и затем использовать этот тэг в скаде.

razorqhex

  • Пользователь
  • **
  • Сообщений: 79
    • Просмотр профиля
Здравствуйте. К сожалению мы используем Master OPC. Выход с этой ситуации я нашел такой:

Пусть у нас будет поле field1 только для вывода тега, а поле field2 только для записи и соответственно теги: tag1 - для считывания этого тега, tag2 - для записи. В field1 не разрешаем ввод данных (смотрите в свойствах объекта). field1и field2 налаживаем друг на друга чтобы не было видно разницы. В field1 закидываем тег для чтение (tag1), соответственно в field2 закидываем тег для записи (tag2). В поле field2 переходим на вкладку "События" и создаём событие OnDoneInput. Внутри скрипта пишет такой код:
Код
begin
  field2.Visible := false;
end.
Далее создаём новый скрипт "Изменились переменные". В этот скрипт, через кнопку "Выбрать переменные", закидываем tag1 и пишем такой код:
Код
begin
  field2.Visible := true;
end.
Тем самым мы сделаем чтение и запись разных тегов якобы в одно поле. Будьте внимательны, если в ОРС переменная для чтение не изменится, то поле для записи не появится.
« Изменён: 04 Ноября 2019, 14:00:24 от Simple_Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1407
    • Просмотр профиля
Здравствуйте.

В Master OPC тоже имеется такой функционал(см. скриншот во вложении) и точно также можно создать один тэг, в котором запись будет производиться по одному адресу, а чтение по другому и затем использовать этот тэг в скаде.

razorqhex

  • Пользователь
  • **
  • Сообщений: 79
    • Просмотр профиля
А Вы не знаете, случаем в Lectus OPC такое возможно сделать?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1407
    • Просмотр профиля
Насколько нам известно, в Lectus такой возможности нет, но лучше данный вопрос уточнить в техподдержке Lectus.