Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Евгений Н. от 19 Января 2020, 13:12:00

Название: Ошибки при выключении приборов
Отправлено: Евгений Н. от 19 Января 2020, 13:12:00
Здравствуйте, в процессе работы возникла такая проблема, используются несколько приборов ОВЕН ТРМ200 и установлен ОВЕН ОПС сервер, при выключении прибора на ОПС сервере остаются последнии измеренные значения и скада продолжает отображать эти значения и рисовать тренды, если какие-нибудь средства для обнуления этих значений в скаде, так как в опс сервере сделать ничего не возможно.
Название: Re: Ошибки при выключении приборов
Отправлено: Simple-Scada от 19 Января 2020, 19:43:34
Здравствуйте. Скада передаёт данные на конечные устройства и читает их через OPC-сервер. Если значения не изменились на OPC-сервере, то и в скаде они останутся неизменны.
Название: Re: Ошибки при выключении приборов
Отправлено: Евгений Н. от 19 Января 2020, 20:24:21
С этим разобрались, суть вопроса в том что,раз  скада видит отсутствие связи есть ли какой-либо скрипт для присвоения значениям с опс сервера значений 0?
Название: Re: Ошибки при выключении приборов
Отправлено: Simple-Scada от 19 Января 2020, 20:42:05
Изменить значение внешнего тега через скаду, можно только изменив его на OPC-сервере. Т.е. можно попробовать присвоить через обычное присвоение: "myVariable.Value := 0", но, как мы понимаем, OPC-сервер это присвоение не выполнит, т.к. он будет пытаться записать этот ноль на конечное устройство, но запись не пройдёт т.к. устройство выключено. Таким образом на OPC-сервере останется прежнее значение переменной, оно же и продолжит отображаться в скаде. В некоторых OPC-серверах на этот случай предусмотрена отдельная опция, например в arOPC (см. скрин во вложении).
Название: Re: Ошибки при выключении приборов
Отправлено: Евгений Н. от 20 Января 2020, 07:11:47
Спасибо, буду пробовать! А программно скриптом возможно произвести сравнение именно по параметру плохой связи ведь скада видит неправильные данные и показывает восклицательный знак, значит имеется какая-то переменная для определения?
Название: Re: Ошибки при выключении приборов
Отправлено: Simple_Scada от 20 Января 2020, 11:33:31
Здравствуйте.

Цитировать
скада видит неправильные данные и показывает восклицательный знак
За эту функцию отвечает опция  "Контроль качества" (Options.exe -> Simple-Client -> "Контроль качества (https://simple-scada.com/help/manual/settings-simple-client.html#qcontrol)"). Если опция активна, то при плохом качестве считываемых с OPC-сервера тегов на клиентах рядом с объектом будет отображен знак "!".

Через скрипты получить качество переменной можно с помощью свойства переменной IsGoodQuality (https://simple-scada.com/help/script/varisgoodquality.html). Но выполнить запись в такую переменную не получится, т.к. если на OPC-сервере качество переменной плохое(Bad), то запись в данную переменную не выполнится.
Название: Re: Ошибки при выключении приборов
Отправлено: Евгений Н. от 20 Января 2020, 11:44:47
Вот и отлично, просто попробую присваивать виртуальной переменной значение либо с ОПС при хорошем сигнале либо 0 при плохом. Огромное спасибо!!!  ;)
Название: Re: Ошибки при выключении приборов
Отправлено: Евгений Н. от 20 Января 2020, 16:40:43
Спасибо за совет с arOPC с ним все работает как нужно. Скрипт прописал но так и не заработало... пробывал скрипт прошла 1 секунда и текс:
Код: (delphi)
begin
  if ts.IsGoodQuality = False then
    begin
  out_ts.Value:= 100;
    end;
end. 
       
 где ts - переменная с опс сервера, а out_ts - виртуальная
Название: Re: Ошибки при выключении приборов
Отправлено: Simple-Scada от 20 Января 2020, 16:47:53
Цитировать
Скрипт прописал но так и не заработало...
Нужно было писать так:
Код: (delphi)
begin
  if ts.IsGoodQuality then
    out_ts.Value:= ts.Value
  else
    out_ts.Value:= 100;
end.
Но это всё равно плохое решение, т.к. только излишне нагружает проект копированием переменных. Гораздо более правильное решение - использовать опцию OPC-сервера.