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

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

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - GEW

Страницы: [1] 2 3 4
1
Ваши вопросы / Re: Антивирусная проверка
« : 02 Августа 2022, 16:06:59 »
Добрый день! Сегодня получили срабатывания kaspersky endpoint security (сертифицированная ФСТЭК сборка 11.3.0.773, базы данных от 01.08.2022) при установке simple-scada 2.6.2.1.exe на арм win10 устаревшей сборки (1607, сборка 14393.970). Объект классифицирован как троянская программа HEUR:Trojan.Win32.Havex.gen (степень угрозы высокая). CRC32 (7-Zip) с инсталлятора:  FC2B61F5, размер 110396800 байт. На других машинах с такой же версией KES и теми же базами (windows 10 1903 сборка 18362.1256, 21H1 сборка 19043.928) срабатываний не было, DrWeb с последними базами также ничего не нашёл. Не понятно что делать - ждать ещё обновлений kes и доведения до них информации или что-то делать с Windows. Срабатывание дал к сожалению рабочий (боевой) АРМ.

2
Добрый день! Имеем несколько АСУТП в разных технологических зданиях. Для диспетчеризации требуется обзорная экранная форма (видеопанель). Для каждого АСУТП и техпроцесса в редакторе проектов -> Сообщения созданы группы (папки) особо важных сообщений. Диспетчеру для межцеховой координации нескольких зданий важно параллельно в режиме реального времени наблюдать за определёнными группами сообщениями одновременно нескольких зданий. Т.е. нужно вывести несколько компонентов «Список сообщений» на мнемосхему, сообщения в списках должны выводиться только от назначенной группы (папки). Пока такого функционала нет. Дополнительно электроники, обслуживающие АСУТП давно просят раздельные списки сообщений по группам DI/DO и т.д. и т.п. Существуют ли планы и возможность ввести такой функционал на ближайшие 3-6 месяцев (система диспетчеризации пока на стадии проектирования и выбора средств)?

3
Я имел ввиду сделать подобное в свойствах объекта. Скриптом мы сейчас так и будем переделывать проект, просто когда несколько сотен таких связанных логикой переменных, заводить под них сотню дополнительных Result не слишком удобно.

4
Хорошо. Я это предполагал. Существуют ли планы добавить вторую дополнительную переменную к некоторым объектам? Это бы решило очень много проблем. Или добавить  отключение основной переменной от функционала клапанов, кнопок (и т.д.)?
Хочется работать с концепцией универсальных скриптов. Но одна доп переменная для многих задач это слишком мало. Часто сталкиваемся с тем что приходится писать неуниверсальные скрипты и добавлять тонны листинга с повторяющимся текстом и разницей лишь в названиях двух -трёх переменных.
Как ещё один вариант - сделать событие - изменилось значение переменных из списка.
С использованием изображений для этой задачи тоже не всё так просто: как только встаёт задача использования флешинга - возникают некоторые сложности с цветом (у меня было сообщение по этому поводу на примере трёхходового клапана, который мы нарисовали сами).

5
По данному вопросу (баг с клапаном) може писать также на мой email (до этого отписался мой коллега)

6
Используйте OnClickEvent.

Например: Button1.OnClickEvent;

Более подробно в мануале по редактору скриптов, класс TM_Object - методы.

7
Добрый день! В проекте необходимо работать с базой данных и выводить значения в таблицу в формате столбца. При этом каждый раз количество строк от запроса к запросу в столбце разное. Возникает проблема когда скролл улетает вниз (вручную пролистывается), а на следующем запросе выдаётся, например 3 строки и их из-за скрола внизу не видно. Существует ли возможность скриптом вернуть скролл на первую строку (MiveFirst)?
2. При работе с таблицей приходится использовать переменные. Существует  ли возможность работы с ячейками из скриптов без подвязки переменой?

8
Добрый день.
Столкнулся со следующей проблемой:
Произвожу поиск переменной по GetVariableByName в скрипте.
После чего нужно оценить качество переменной (.IsGoodQuality). Иногда получается что переменная не существует. Тогда скрипт крашится. Завёл дополнительную проверку aVariable <> nil. Думаю следует в процедуру проверки качества включить проверку на nil в автоматическом режиме, потому что возникают иногда очень неудобные конструкции в скриптах.

Хочу писать
Код
 if (aVariable <> nil) or (aVariable.IsGoodQuality = false) then...
могу:
Код
 if(aVariable <> nil) then ...
   if(aVariable.IsGoodQuality = true) then ...
   else
 else

9
3. Тогда видимо у меня баг с отображением прав доступа по клику на поле.
P.S.: проект мигрировался в новые версии много раз, на вновь создаваемых полях такого эффекта нет. Для поля на картинке баг пропадает если выставить в свойствах поля окно, если убрать окно - вновь выдаётся сообщение. То же самое касается и некоторых других объектов (уровни). При этом все создаваемые новые поля на этой экранной форме дают такой же баг, а на новой экранной форме такого уже нет. Если скопировать поле из старой экранной формы (на которой баг) в новую экранную форму, а затем руками создать такое же поле с теми же самыми свойствами и подвязками - то на одном будет баг, на втором нет. На втором скрине окно с правами выдаётся только у среднего поля.
5. Нет, имеется ввиду любые созданные руками сообщение в редакторе сообщений, на которые подвязаны переменные. Хотелось бы чтоб хотя бы описание было добавлено в состав сообщение (у меня например - переменная DI меняется 1-0 и по ней срабатывает сообщение).
По поводу TM_Variable.Description: видимо тогда лучше обратно закрыть доступ к редактированию и дать доступ к свойствам описания трендов, или к тексту для произвольных трендов и работать с трендом по id.

10
Добрый день! Большое спасибо за обновление!
Протестировал возможность изменения description Tm_Variable скриптом: свойство действительно меняется, при запросе чтением скрипты выдают обновленное значение. Однако на графических объектах (пкм) клиента и в трендах свойство остаётся таким же, каким было выставлено в редакторе по-умолчанию. Похоже на ситуацию с изменением границ аварийных сообщений скриптом. Буду очень признателен если удастся поправить.  ::)
Несколько пожеланий на будущее:
1) Возможно ли сделать для TM_Level режим, когда значения передаются в контроллер не по отпусканию кнопки мыши, а, например, считываются со скоростью обновления подвязанной переменной по текущим координатом курсора на уровне, то есть при перетаскивании, без отпускания, зажатой ЛКМ? Стоит задача перед технологом - нужно следить за аналоговым значением и плавно в течении 20, например, секунд повышать или понижать обороты. Можно конечно сделать кнопки +1 +5 -1 -5, но допустим где-то надо +2 или +3 в зависимости от ситуации - кнопок не напасёшься, да и работает это на кнопках не очень корректно из-за задержек (и в журнал действий тогда нужно руками писать событие), кликнул оператор 3 раза - первые два клика отправились в цикл записи, последний - на следующий цикл отложились (задержка около секунды). Оператор увидел +2 - интуитивно ещё кликнул +1 - в итоге +4, а надо было 3... Ну я думаю смысл понятен, пока не критично, работаем на кнопках, но очень пригодилось бы. (Раньше у операторов была аналоговая «крутилка», тактильно им было на ней очень удобно). Бонусом было бы возможность округлять параметры уровня до целых, сейчас это тоже делаем скриптом в кнопках.
2) Возможно ли добавить настройку толщины линий тренда и менять цвет фона в архивных трендах? Часто на тренде несколько аналоговых параметров, один из которых главный. - Хотелось бы иметь возможность выделить его не только цветом, но и толщиной линий.
3) Возможно ли отделить недоступность ввода значений, например в поле или уровень от обязательного всплывающего окна «у Вас недостаточно прав...» У нас с этими окнами (в другой скаде WinCC), блокирующими весь экран оператору была один раз беда - трясущимися руками кликнула не туда в сложной ситуации - окно вылезло, она этого не заметила, потому что была в панике и пыталась дальше кликнуть куда изначально нужно было. А управление - полностью потеряно из-за этого окна. Описывать все подробности не буду, думаю итак ясно что потом было. Но нужно иногда вывести поле, значение которого только отображаются, и не вводятся, но при этом чтобы никаких всплывающих окон).
4) Очень хотелось бы чтобы в настройках TM_MessageViewer можно было указать не только стандартные группы сообщений, но и созданные в редакторе, в идеале - выбрать несколько из списка. Так например в отдельном окне мы привыкли делать список сообщений по срабатыванию DI и DO сигналов (без квитирования). Их мы завели каждый в свою группу. Действия оператора (некоторые, которые не регистрируются стандартными способами, пришлось дописывать скриптами отдельно, тоже без квитирования) - в другую. Отдельная группа для сообщений о потере связи с переменными контроллера по качеству (quality) и по ping’у (с квитированием). Ещё группа - по срабатыванию технологических блокировок (с квитированием). Было бы удобно вывести несколько списков сообщений и чтобы в них не было «всё в кучу»). Особенно когда происходит «разбор полётов» - такой подход очень помогает).
5) Возможно ли при выдаче сообщений по изменению переменной (подвязанной в редакторе) добавить настройку не только названия переменной но и других её параметров: шкала, description, единицы измерения, и другие (из свойств переменной)?

11
Большое спасибо) 👍🏻👍🏻👍🏻

12
Тогда зачем менять описание этой переменной?

Не то чтобы менять, изначально оно пустое. По концепции создаваемого проекта все данные максимально обезличены и хранятся в контроллере. После запуска проекта при авторизации пользователя скриптом подгружаются данные из контроллера и раздаются по всем свойствам переменных (и по другим объектам). При этом есть возможность контролировать права пользователя и раздавать свойства выборочно. Все переменные именованы в проекте безлико - DI_001... AI_001... и т.д., связаны структурами с контроллерными словами-описаниями, в которых уже лежат название, нормировки, режимы доступа и т.д. и т.п. Человек, получивший доступ к скаде не сможет разобраться без подключения к контроллеру, это в том числе продиктовано определенными требованиями к коммерческой тайне, секретам, и т.д. и т.п.
+ проект верхнего уровня легче тиражировать при таком подходе.
Но из-за невозможности заполнить description скриптом на трендах без описания все переменные с пустыми description отражаются как DI_001 и т.п.
Не то чтобы прям критично, но хотелось бы хотя бы иметь доступ если не к описанию переменной, то к тексту тренда (оно тоже read only). Хотя первый вариант безусловно проще.

13
Добрый день. Столкнулся с необходимостью сделать максимально обезличенный проект верхнего уровня - все данные, вплоть до названия (описания) переменных должны находиться в контроллере, а скада - забирать данные из него и заполнять все настройки (пределы, алармы и т.д. и т.п.). У меня осталась одна нерешённая проблема - невозможность менять description в настройках Tm_Variable из скрипта (read only). Это нужно для корректного отображения названий трендов (редактируемый тренд). Можно ли ожидать снятия запрета read only или существует возможность по-другому решить проблему? Описание переменой лежит в другой текстовой Tm_Variable.
И сразу дополню: у трендов есть свойство «задать положение» для диапазона и процентовки, а также у временных трендов есть минимум и максимум шкалы - при их применении данные отражаются некорректно - то есть шкалы смещаются, а сами тренды - нет. Может я некорректно понимаю назначение этих свойств, но существует следующая потребность:
Допустим шкала температуры 0-100. На разных стадиях необходимо контролировать разные участки шкалы - например на 1 этапе колеблется 15-20, потом 30-50, потом 70-80, соответственно нужно делать шкалу в районе +\- 10% от значения чтобы видеть подробности (для 15-20 разбега - шкала 10-25). На шкале 0-100 ничего не видно. Может имеет смысл сделать опцию «автодиапазон шкалы на тренде» в зависимости от, скажем, минимума и максимума на интервале (или как это сделано в WinCC) и дать пользователю возможность выставить %разбега шкалы от значения? Для нескольких трендов соотвественно по минимуму и максимуму всех отображаемых трендов.

14
Спасибо, видимо недоглядел. Искал по руководству скриптов в свойствах кнопки подсказку, наверно забыли добавить в руководство.
Было бы кстати неплохо добавить функцию GetVariableByID. Тогда бы можно было было писать в тэг ID переменной.

15
По поводу кнопки - да, понимаю что так можно. Но не всегда нужно писать в саму переменную. Переменная в данном случае аналоговая,  нужна для считывания качества, связи, а также для работы с её настройками (границы сообщений и т.д.) по имени.
Суть такая:
Подвязываю на VariableEX кнопки переменную AI_001.
Загружается проект клиента, после полной загрузки производится считывание структуры в контролере всех связанных с AI сигналом значений - настроек аварийных и предупредительных границ. Связанные переменные - AI_001_HH, AI_001_H .. L LL. - Их имена склеиваются в универсальном скрипте и по GetWariableByName, читаются значения, контролируя качество.
Затем производится передача этих значений в допсвойства переменной AI_001 (LimitType и т.д.).
Если всё хорошо - тушу цвет кнопки на серый, если значения в контроллере и в настройках переменной отличаются - подсвечиваю зелёным, если ошибка (например качество) - подсвечиваю красным.
В переменную AI_001 писать самой кнопкой ничего нельзя. Поэтому и подвязываю на VariableEX AI_001. Однако события по переменной VariableEX срабатывают только по изменении значения в AI_001, а это в реальной системе происходит не всегда. Я решал эту проблему внутренней переменной GlobalEvent_1s, которая инвертировала себя раз в секунду и вызывала срабатывание события. Мне бы хотелось подвязать GlobalEvent_1s и завести скрипт на цвет в событие - но Слот второй переменной занят. На основную - тоже нельзя. Ввести AI_001 в виде текста в тэг - не могу (разве что собирать из цифр имя переменной в скрипте, но это уже перебор). Думал ввести в свойство кнопки - подсказка - но для чтения оно из скрипта не доступно.
В общем тут больше дело в том что не хватает слота под переменную, или тэга текстового. Можно взять вместо кнопки текст конечно - но жаль анимации нажатия тогда не будет.
 P.S.: проект пришлю в конце рабочего дня.

Страницы: [1] 2 3 4