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

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

Автор Тема: Ошибки при выключении приборов  (Прочитано 2947 раз)

Евгений Н.

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Ошибки при выключении приборов
« : 19 Января 2020, 13:12:00 »
Здравствуйте, в процессе работы возникла такая проблема, используются несколько приборов ОВЕН ТРМ200 и установлен ОВЕН ОПС сервер, при выключении прибора на ОПС сервере остаются последнии измеренные значения и скада продолжает отображать эти значения и рисовать тренды, если какие-нибудь средства для обнуления этих значений в скаде, так как в опс сервере сделать ничего не возможно.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Ошибки при выключении приборов
« Ответ #1 : 19 Января 2020, 19:43:34 »
Здравствуйте. Скада передаёт данные на конечные устройства и читает их через OPC-сервер. Если значения не изменились на OPC-сервере, то и в скаде они останутся неизменны.

Евгений Н.

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Ошибки при выключении приборов
« Ответ #2 : 19 Января 2020, 20:24:21 »
С этим разобрались, суть вопроса в том что,раз  скада видит отсутствие связи есть ли какой-либо скрипт для присвоения значениям с опс сервера значений 0?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Ошибки при выключении приборов
« Ответ #3 : 19 Января 2020, 20:42:05 »
Изменить значение внешнего тега через скаду, можно только изменив его на OPC-сервере. Т.е. можно попробовать присвоить через обычное присвоение: "myVariable.Value := 0", но, как мы понимаем, OPC-сервер это присвоение не выполнит, т.к. он будет пытаться записать этот ноль на конечное устройство, но запись не пройдёт т.к. устройство выключено. Таким образом на OPC-сервере останется прежнее значение переменной, оно же и продолжит отображаться в скаде. В некоторых OPC-серверах на этот случай предусмотрена отдельная опция, например в arOPC (см. скрин во вложении).

Евгений Н.

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Ошибки при выключении приборов
« Ответ #4 : 20 Января 2020, 07:11:47 »
Спасибо, буду пробовать! А программно скриптом возможно произвести сравнение именно по параметру плохой связи ведь скада видит неправильные данные и показывает восклицательный знак, значит имеется какая-то переменная для определения?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1407
    • Просмотр профиля
Re: Ошибки при выключении приборов
« Ответ #5 : 20 Января 2020, 11:33:31 »
Здравствуйте.

Цитировать
скада видит неправильные данные и показывает восклицательный знак
За эту функцию отвечает опция  "Контроль качества" (Options.exe -> Simple-Client -> "Контроль качества"). Если опция активна, то при плохом качестве считываемых с OPC-сервера тегов на клиентах рядом с объектом будет отображен знак "!".

Через скрипты получить качество переменной можно с помощью свойства переменной IsGoodQuality. Но выполнить запись в такую переменную не получится, т.к. если на OPC-сервере качество переменной плохое(Bad), то запись в данную переменную не выполнится.

Евгений Н.

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Ошибки при выключении приборов
« Ответ #6 : 20 Января 2020, 11:44:47 »
Вот и отлично, просто попробую присваивать виртуальной переменной значение либо с ОПС при хорошем сигнале либо 0 при плохом. Огромное спасибо!!!  ;)

Евгений Н.

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Ошибки при выключении приборов
« Ответ #7 : 20 Января 2020, 16:40:43 »
Спасибо за совет с arOPC с ним все работает как нужно. Скрипт прописал но так и не заработало... пробывал скрипт прошла 1 секунда и текс:
Код: (delphi)
begin
  if ts.IsGoodQuality = False then
    begin
  out_ts.Value:= 100;
    end;
end. 
       
 где ts - переменная с опс сервера, а out_ts - виртуальная
« Изменён: 20 Января 2020, 16:51:27 от Simple_Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Ошибки при выключении приборов
« Ответ #8 : 20 Января 2020, 16:47:53 »
Цитировать
Скрипт прописал но так и не заработало...
Нужно было писать так:
Код: (delphi)
begin
  if ts.IsGoodQuality then
    out_ts.Value:= ts.Value
  else
    out_ts.Value:= 100;
end.
Но это всё равно плохое решение, т.к. только излишне нагружает проект копированием переменных. Гораздо более правильное решение - использовать опцию OPC-сервера.