PDA

Просмотр полной версии : Как настроить фильтр?



Navigation1
16.06.2015, 20:06
Добрый вечер! Подскажите решение проблемы. Есть ОРС-сервер с подключённым МВ110-16Д. Когда пропадает связь прибора с ОРС, то ОРС выдаёт значение на входах "0" (ноль). В СКАДЕ это значение благополучно записывается, архивируется и отображается в графике - падает до "0" и потом обратно возвращается. А в другом ОРС-сервере такая же картина, только там величина принимает значение 99999,99. Как отфильтровать такие ошибки?

murdemon
16.06.2015, 20:08
А что вы хотите видеть в этот момент на графике ?

Navigation1
16.06.2015, 20:21
Скорее всего, последнее действительное значение.

SCADAMaster
16.06.2015, 21:38
Какие ОРС серверы вы используете. Попробуйте наш Modbus Universal - у него будет фиксироваться последнее значение.

Navigation1
17.06.2015, 08:34
Один MasterOPC Universal Modbus Server, а второй SensOPCServer. Когда у MasterOPC Universal Modbus Server знак качества "BAD", значение входа становится "0". А у второго ОРС - 99999,99 и у него нет признака качества.

SCADAMaster
17.06.2015, 09:10
Какая у вас версия Modbus Universal?

Navigation1
17.06.2015, 09:33
Версия 3.1.3

SCADAMaster
17.06.2015, 13:37
Пришлите вашу конфигурацию и несколько скриншотов описывающих ситуацию.

Navigation1
17.06.2015, 17:07
Вот так примерно........1861818619

SCADAMaster
17.06.2015, 17:49
Попробуйте в MasterSCADA выделить ОРС сервер и на закладке "Опрос" поставить галочку "Запрет использования некачественных значений".

Navigation1
17.06.2015, 18:38
Спасибо.... пробую!

Navigation1
17.06.2015, 18:44
Сделали. Будем ждать результатов.

Navigation1
17.06.2015, 21:17
Спасибо. Изменения внесли, будем ждать результата. Сообщу.....

Navigation1
18.06.2015, 15:40
К сожалению результат прежний. Ничего не поменялось....

SCADAMaster
18.06.2015, 17:56
Пришлите конфигурацию ОРС сервера и новую версию проекта.

Navigation1
18.06.2015, 21:15
Отправляем.....

1864618647

SCADAMaster
18.06.2015, 22:02
Сообщите пароль от проекта.

Navigation1
26.06.2015, 09:54
Прошу прощения за долгое молчание - был в командировке...... Пароль 1234, а при запуске - пустое место.

SCADAMaster
26.06.2015, 18:17
Если говорить о Modbus Universal то у вас от него идут сигналы на ФБ "Абсолютное значение" - данный ФБ действительно не передает на выход признак качества.
Используйте вместе него модуль "Расчет" - функцию abs. Также нужно будет у компьютера на закладке "Опрос" поставить галочку "Формировать признаки качества выходов ФБ по признакам входов".

Navigation1
28.06.2015, 09:03
Спасибо большое! Пробую! Разберусь с этим ОРС, буду просить помощи по другому....

Navigation1
28.06.2015, 16:13
Сделали, как Вы указали. Вместо "Абс. значения" используем "Расчёт" - функцию abs, галочку тоже поставили. Значения идут, но картина практически не поменялась. Как использовать признак качества и отфильтровывать ложные значения?

18800
18801

Navigation1
28.06.2015, 16:37
Зелёный график - это результат Расчёта, а красный - результат Абсолютного значения.....

18802

SCADAMaster
28.06.2015, 17:57
Не этот ФБ "Расчет". Добавьте Расчет через контекстное меню объекта и не забудьте у компьютера на закладке "Опрос" поставить галочку "Формировать признаки качества выходов ФБ по признакам входов".

Navigation1
29.06.2015, 09:00
Понял. Спасибо. Пробую....

Navigation1
01.07.2015, 14:32
К сожалению, картина не изменилась.

18833

Расход топлива в литрах - это Абсолютное значение, а Расход топлива - это Расчёт. Галочка тоже стоит....

SCADAMaster
01.07.2015, 15:38
Приложите проект снова.

Navigation1
01.07.2015, 16:05
Отправляю...

Navigation1
01.07.2015, 16:06
Пароль прежний, 1234 и пустой....

SCADAMaster
01.07.2015, 18:50
У нас все корректно (см. приложение).
Посмотрите у переменной на закладке "Данные" - после того как связь восстанавливается, не поступает ли значение 0 с хорошим признаком качества?

Navigation1
02.07.2015, 08:01
Скорее всего, так и происходит. Когда в ОРС-сервере появляется связь и качества признак меняется на хороший, в начальный момент значение остаётся равным "0". потом меняется на действительное. Но этот "0" успевает проскочить ..... Как от этого можно избавиться?

SCADAMaster
02.07.2015, 08:27
Если это только на один цикл, то можно в ОРС сервере у каждого проблемного тега в скрипте после чтения разместить такой скрипт:
oldqual=OPC_QUALITY_COMM_FAILURE;
oldval=0;
-- инициализация
function OnInit()
end
-- деинициализация
function OnClose()
end
-- обработка
function OnRead()
val,qual=server.ReadCurrentTag();
if oldqual==OPC_QUALITY_BAD and qual==OPC_QUALITY_GOOD and val==0 then
server.WriteCurrentTag(oldval,oldqual);
end;
oldqual=qual;
oldval=val;
end

Navigation1
02.07.2015, 12:15
Да, на закладке "Данные" значение "0" есть.

Navigation1
02.07.2015, 12:16
Спасибо.... пробуем!!!

Navigation1
02.07.2015, 12:24
Правда, немного не поняли в какое место.
У нас в скрипте следующее:
-- инициализация
function OnInit()
end
-- деинициализация
function OnClose()
end
-- обработка
function OnRead()
end

Меняем на Ваш вариант всё?

SCADAMaster
02.07.2015, 13:13
Да, меняете все на то что прислали

Navigation1
02.07.2015, 18:21
Прогресс есть, но "0" ещё проскакивает и в ОРС-сервере (видел значение входа "0" при знаке качества "ОК") и в СКАДЕ....

18851
18852

SCADAMaster
02.07.2015, 19:47
Видимо несколько циклов выдается 0 (хотя это странно). Посмотрите лог запросов к устройству - это устройство возвращает нули в начальный момент?

Можно модернизировать код чтобы пропускалось несколько циклов:

i=0;
oldqual=OPC_QUALITY_COMM_FAILURE;
oldval=0;
-- инициализация
function OnInit()
end
-- деинициализация
function OnClose()
end
-- обработка
function OnRead()
val,qual=server.ReadCurrentTag();
if oldqual==OPC_QUALITY_BAD and qual==OPC_QUALITY_GOOD and val==0 and i<3 then
server.WriteCurrentTag(oldval,oldqual);
i=i+1;
return;
end;
i=0;
oldqual=qual;
oldval=val;
end

Navigation1
02.07.2015, 20:55
Спасибо, пробую....

Navigation1
02.07.2015, 21:06
Поменяли. До завта наберём информации и отпишусь..... Спасибо!

Navigation1
03.07.2015, 09:21
Боюсь спугнуть........ но пока, вроде, без ошибок! Набираем статистику.... Можете мне сбросить маячок на navigation1@mail.ru?

SCADAMaster
03.07.2015, 09:31
Можете мне сбросить маячок на navigation1@mail.ru?
Что сбросить?

Navigation1
03.07.2015, 10:43
Спугнул, однако.....

18862

Navigation1
03.07.2015, 15:18
Вашу электронку...

SCADAMaster
03.07.2015, 15:21
Вы можете воспроизводить данную ошибку?
Создайте новый проект скады и конфигурацию ОРС сервера. Включите в ОРС только один модуль ввода, и добавьте его теги в скаду. Включите у тегов архивацию и вытащите их на тренд.
У ОРС сервера включите запись лога. Для этого нужно в свойствах сервера включите запись журнала и всех его событий, размер лога задайте равным 10000. Лог пишется в папку:
c:\ProgramData\InSAT\MasterOPC Universal Modbus Server\SERVERLOGS\

В MasterSCADA также включите запись журнала. Для этого в режиме разработки выполните пункт меню «Сервис/Настройка», в диалоговом окне перейдите на закладку «Режим исполнения». Установите флаг «Формирование полного журнала исполнения».
Перейдите в режим исполнения и добейтесь воспроизведения ошибки. Нажмите комбинацию клавиш ALT+F10. Сформируйте отчет об ошибках, включая конфигурацию текущего проекта, скриншот экрана и необходимые логи. Убедитесь, что в получившуюся папку попал файлы Runtime.log и Runtime.log.xml. Если файлы в отчет не попали, пришлите их отдельно, они должны находится в папке "..:\MasterSCADA Projects".
После этого желательно отключить формирования полного журнала, чтобы не переполнился диск.
Вышлите отчет скады вместе с конфигурацией ОРС сервера и логом обмена.


Вашу электронку...
support(собка)insat.ru

Navigation1
03.07.2015, 18:15
Отправил!!!

Navigation1
06.07.2015, 10:08
отправил новые данные.....

SCADAMaster
06.07.2015, 13:45
Мы вам ответили по почте