Тема / Topic: Отображение на тренде значений недостоверных каналов: ПРОБЛЕМА!
Alexander_
Forum Member / Участник форума
Участник № / Member № 7778
отправлено / posted
Здравствуйте, уважаемая техподдержка! Имею проблему следующего свойства. В реальном времени (модули ДокМРВ+, NLL) на трендах значение программно недостоверных каналов отображается в соответствии с заданным стилем тогда и только тогда, когда в текущем сеансе экрана, на котором расположен тренд, в свойствах кривой искусственно изменена позиция интерполяции, причем ее значение может быть любым: "нет", "по периоду реального времени", "простая линейная" -- главное, чтобы оно было изменено.
Теперь по порядку. В ИС в свойствах кривой тренда установлен пунктирный стиль для I<>0, W=0. В реальном времени, программно или вручную через панель МРВ, в соответствующем канале устанавливается флаг программной недостоверности. Через панель МРВ видно, что значение атрибута (I,4) действительно равно 2. Однако на тренде пунктира нет, как его ни крути-верти, как его ни обновляй. В тоже время, если в реальном времени зайти в свойства кривой и поменять пункт "Интерполяция" (изначально он может быть любым), то на тренде кривая вдруг начинает трассироваться пунктиром, как ей и положено. Причём с того самого места, с коего были изменены свойства кривой: предыдущие недостоверные значения не приобретают пунктирного начертания. И вот после этой процедуры вроде все идет хорошо, но только мы покидаем текущий экран, где находится тренд, чтобы вернуться на него через какое-нибудь время, наблюдаем ту же картину: недостоверные значения трассируются сплошняком (тот участо кривой, что отрисован пунктиром при нас, -- остается). Опять меняем пункт интерполяции в свойствах кривой -- всё это время значение канала по прежнему недостоверно, -- и опять значения начинают записываться пунктиром. Покидаем экран, возвращаемся -- сплошняк.
Я плачу, не знаю, что делать: очень нужен пунктир недостоверных значений. Пособите чем сможете. Спасибо.
Сообщения / Posts 33 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Имеется неточность в описании свойств тренда: вместо "Стиль при I<>0" и "Стиль при I=0"
следует читать "Стиль при I&1<>0" и "Стиль при I&1=0"
Пунктиром отображается только АППАРАТНАЯ НЕДОСТОВЕРНОСТЬ.
В дальнейшей работе над системой эта неточность будет устранена.
Перепроверка на реальном проекте релиза 6.10.2 показала: - ПРОГРАММНАЯ НЕДОСТОВЕРНОСТЬ на тренде в стиле кривой не отображается, - АППАРАТНАЯ НЕДОСТОВЕРНОСТЬ в стиле кривой отображается в соответствии с документацией без связи с настройкой свойства ИНТЕРПОЛЯЦИЯ, в том числе и ПРИ ПЕРЕХОДАХ ПО ЭКРАНАМ.
Уточните, пожалуйста, методику Вашего эксперимента или пришлите на адрес техподдержки Ваш тестовый проект с описанием методики воспроизведения ситуации.
Сообщения / Posts 17264 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Alexander_
Forum Member / Участник форума
Участник № / Member № 7778
отправлено / posted
Признателен за попытку воспроизвести ситуацию, в деталях описанную выше, но, исходя из последнего сообщения, смею полагать о ее заведомо обреченном положении ввиду отсутствия состава эксперимента.
Итак, после и только после присвоения каналу флага программной недостоверности (I=!T) следует изменить пункт интерполяции соответствующей кривой. Тогда-то реальное значение этого канала и начнет трассироваться стилем, указанным в строке "I<>0, W=0". Однако для того чтобы увидеть это наверняка, разумеется, необходимо обновить графическую картинку вновь отрисованного участка кривой, а не пристально следить за ее движениями: сдвинуть тренд вдоль оси времени, торкнуть по оси ординат, приблизить, щелкнуть мышкой и т.д., и т.п.: об особенностях отработки графики в реальном времени вам известно лучше моего.
Когда вы это сделали, можете задавать любой стиль для недостоверных значений ("I<>0, W=0"): штрих, штрих-пунктир, штрих-точка-пунктир -- монитор будет исправно отображать весь ("опознанный") недостоверный участок кривой в этом стиле.
Теперь вы решили сделать канал вновь программно достоверным, а, возможно, он и сам решился -- в общем, флаг аппаратной недостоверности пропал и внове атрибут I стал равен "_T". Но график, об этом почему-то знать не хочет и продолжает рисовать кривую в стиле недостоверности, как бы она ни изменялась, какие бы пируэты ни выписывала. Тогда вы снова меняете пункт интерполяции нужной кривой (на любой другой), и всё снова встает на свои места. В случае же, когда вы не желаете устранять программную недостоверность канала (или он сам не желает), рано или поздно вы решаетесь покинуть текущий всплывающий экран с трендом. Придя туда вновь, вы обнаружите, что с того самого момента, как вы ушли, значение канала трассировалось сплошняком, несмотря на то, что он всё время находился под флагом программной недостоверности. Отрисованный у вас на глазах пунктир так и будет храниться трендом в виде пунктира.
Важно, что всё это время нужный канал остается аппаратно достоверным: иначе чистота эксперимента теряется. Также все действия производятся в режиме исполнения проекта монитором.
Доподлинно эксперимент подтвержден мною для различных экземпляров текущего и универсального трендов.
Итого, мы имеем две гипотезы. Либо действительно "I<>0", но оно не работает, как должно. Либо действительно "I&1<>0" и оно опять не работает, как должно. Теоретизировать в этом смысле бесполезно, ибо по факту, как вы, надеюсь, вскоре убедитесь, мы имеем совсем другое условие, гораздо более сложное.
Очень надеюсь на проработку вами этого вопроса.
В случае решительной неудачи готов пойти на компромисс. Программная недостоверность в моей системе означает недостоверность на полевом уровне и достоверность на уровне ПЛК. Т.е. ПЛК в SCADA сигнал передает, но получив (или не получив) данные от техсредств более низкого уровня, он говорит нам (используя смежный сигнал), что оный сигнал недостоверен. В общем-то, если уж на то пошло, моей стороне не столь важно, программно или аппаратно недостоверен канал в ТМ, сколько важно осведомление об участках реальной недостоверности канала (на полевом уровне) на графике. Программную недостоверность я по определению могу установить, а вот аппаратную, не отключая канал от источника, -- нет, ибо сам сигнал от контроллера достоверен и монитор быстренько исправляет мое шаманство. При этом мне хочется отключать канал от источника.
Сообщения / Posts 33 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В настоящее время признак программной недостоверности на тренде не отображается. Кроме того, следует учитывать, что для каналов HEX16 и HEX32 признак программной недостоверности вообще не устанавливается.
В дальнейшей работе над системой свойство отображения на тренде признаков недостоверности будет расширено.
Если Вы получаете признаки полевой недостоверности по специальным целочисленным каналам, можно отображать отдельные биты этих каналов на тех же трендах, что и параметры, только на "Дискретной панели тренда".