Вопросы и предложения по Simple-Scada 2

Автор Simple-Scada, 11 мая 2015, 20:34:39

Genrosol

Спасибо за подробное разъяснение!
Переменные в ПЛК именуются примерно следующим образом: наименование аппарата + наименование ИМ или датчика + наименование сигнала или команды (например A202_IM2_cmdON, A202_IM2_stsOFF и т.д.). Выйти из данной ситуации можно было бы несколькими способами:
1) Получать из свойства Tag часть строки, но свойство Tag имеет тип Integer;
2) Через свойство Tag передавать окну ID переменной, но ID является свойством только для записи (так утверждает компилятор скриптов);
3) Написать функцию, возвращающую имя переменной по ее идентификатору. В теле функции описать соответствие идентификаторов и имен переменных. Вызывать функцию при переопределении переменных объекта. Но в Simpe-Scada нет возможности создавать функции.

ЦитироватьВы говорите о временном тренде? Или постоянный тренд (который берется из БД)?
Речь идет о графическом объекте "Временной тренд".

Simple-Scada

Т.е. вся проблема в том, что окну нужно передавать два параметра: "наименование аппарата + наименование ИМ или датчика"?

Цитировать2) Через свойство Tag передавать окну ID переменной, но ID является свойством только для записи (так утверждает компилятор скриптов);
А зачем вообще искать переменную по ID, если каждый объект хранит ссылку на саму переменную. Например, если исполнительный механизм представляет собой изображение, то можно выбрать у него переменную и затем передавать её куда угодно как Image1.Variable или для универсального скрипта как TM_Object(Sender).Variable.

ЦитироватьРечь идет о графическом объекте "Временной тренд".
Мы можем сделать так, чтобы у Временных трендов тоже можно было подменять переменные. Но при этом запись данных в тренд будет стартовать заново (т.к. временные тренды хранятся в оперативной памяти). Например Вы нажимаете на датчик и появляется окно с временными трендами, но они пусты и только начали записываться. Устроит ли вас такой вариант?

Genrosol

ЦитироватьТ.е. вся проблема в том, что окну нужно передавать два параметра: "наименование аппарата + наименование ИМ или датчика"?
Получается, что так.

ЦитироватьА зачем вообще искать переменную по ID, если каждый объект хранит ссылку на саму переменную.
Да, действительно, не сообразил. Скриптом вырезать необходимую часть имени переданной переменной и далее уже формировать имена других переменных.

ЦитироватьНо при этом запись данных в тренд будет стартовать заново (т.к. временные тренды хранятся в оперативной памяти).
Данная особенность работы временного тренда была реализована исходя из соображений экономии ресурсов ПК?

Simple-Scada

ЦитироватьСкриптом вырезать необходимую часть имени переданной переменной и далее уже формировать имена других переменных.
Да, можно связать каждый механизм со своей переменной, а затем по клику брать переменную и из её имени доставать нужную приставку. Затем на основе этой приставки получать остальные переменные и подменять их в окне.

ЦитироватьДанная особенность работы временного тренда была реализована исходя из соображений экономии ресурсов ПК?
Временные тренды это просто компонент, который пишет тренды средствами Клиента в оперативную память этого клиента, он не сохраняет их в постоянную память и соответственно не требует установки БД и соответственно не требует времени на загрузку из БД. Если таких компонентов создать много, то проблем не будет (хотя и потребует определенный объем оперативной памяти) и каждый будет писать свои данные с момента запуска проекта. Но если у них подменять переменные, то предыдущие накопленные данные придется удалить из оперативной памяти и писать заново для новых трендов.

Genrosol

А почему был выбран данный механизм работы временного тренда, без обращения к БД?

Simple-Scada

Потому что мы хотели создать компонент который не будет нагружать сервер, СУБД, жесткий диск компьютера и сеть. Поэтому он пишет данные средствами клиента, не требует подключения к серверу и не использует постоянную память. Для просмотра полноценных "постоянных" трендов предусмотрено меню просмотра трендов в котором есть больше возможностей: тренды можно перематывать, задавать разные интервалы времени, скрыть/показать, выбирать разные группы трендов, разбивать их на разделы, устанавливать закладки, распечатать и т.д.

Genrosol

В нашем случае временной тренд в таком исполнении использовать к сожалению не получится (представляю, как операторам "понравится", что тренд каждый раз обнуляется).
Еще раз спасибо за подробное разъяснение про динамическую подстановку переменных, но скорее всего такой способ тоже не устроит наших разработчиков. Когда речь идет о опасном ядерном производстве, то неявная привязка переменных к кнопкам управления исполнительными механизмами может очень дорого обойтись.
Раз уж пишу в теме "Вопросы и предложения", то хотелось бы предложить реализовать в Simple-Scada создание шаблонов. Допустим, рядом с пунктом "Окна" добавить пункт "Шаблон окна", а к графическим элементам добавить "Графический шаблон", ну или что-то похожее на это. При редактировании "шаблона окна" или "графического шаблона" использовать локальные переменные, которые видны только в момент редактирования. А при добавлении "графического шаблона" или вызова "шаблона окна" в свойствах объекта указывать какие переменные из БД будут использоваться вместо локальных переменных.
Это просто предложение. Возможно многие будут считать, что скада станет уже совсем не "симпл", но когда разрабатываются и сопровождаются большие проекты и нет подобных инструментов, вот тогда разработчику по-настоящему становится не "симпл".
Тоже стал фанатом Simpe-Scada, хотелось бы к моменту модернизации предъявить заказчику только положительные стороны перехода на вашу скаду.

Simple-Scada

Мы планируем добавить систему шаблонов в Simple-Scada 2, причем не только шаблонов окна, но и объектов и сообщений. Уже продумано как можно сделать это максимально минималистичным способом не нагружая интерфейс. Но когда именно удастся реализовать - трудно сказать, т.к. сейчас приходится решать более популярные задачи.

Genrosol

#368
Очень здорово! Судя по тому, как удобно и грамотно устроен интерфейс в Simple-Scada на данный момент, думаю реализация шаблонов нисколько не усложнит процесс создание SCADA-проектов.
Что касается временных трендов, вы решили остановиться на идее отображать оперативные данные?
И еще возникла мысль, почему бы в меню выбора переменной для объекта не сделать поле настройки фильтра имен переменных, как сделано в БД (опять таки, актуально для больших проектов)?

Simple-Scada

ЦитироватьЧто касается временных трендов, вы решили остановиться на идее отображать оперативные данные?
Именно "Временные тренды" останутся такими, как сейчас, т.е. максимально упрощенные, без зависимости от БД и сервера. На будущее возможно добавим компонент "Постоянные тренды" которые будут читать данные из БД на сервере + можно будет включить перемотку по времени и смену интервалов.

ЦитироватьИ еще возникла мысль, почему бы в меню выбора переменной для объекта не сделать поле настройки фильтра имен переменных, как сделано в БД (опять таки, актуально для больших проектов)?
Фильтры постепенно добавим не только для переменных, но и для всех списков.

Vladimir

Планируется ли возможность выбора размера окна для каждого клиента? (options.exe)
Может пора создать тему "часто задаваемые вопросы"?) уверен таких не мало.

Simple-Scada

Код: pascal
Планируется ли возможность выбора размера окна для каждого клиента? (options.exe)
Сейчас ведь так и есть. В Options.exe, вкладка Simple-Client, список "Размер окна"

ЦитироватьМожет пора создать тему "часто задаваемые вопросы"?) уверен таких не мало.
Да, уже много популярных вопросов, обязательно сделаем.

Vladimir

Цитата: Simple-Scada от 19 сентября 2016, 15:08:07
ЦитироватьПланируется ли возможность выбора размера окна для каждого клиента? (options.exe)
Сейчас ведь так и есть. В Options.exe, вкладка Simple-Client, список "Размер окна"


Я почему то решил что это настройки на сервере, соответственно, для всех клиентов подключенных к этому серверу.

Vladimir

Можно ли сделать изменение координат X и Y объекта в реальном времени при перемещении объекта курсорными стрелками, а не только с помощью мыши? Не очень то удобно прокликивать объект только лишь для просмотра координат.

Вопросы по трендам:  почему только 10?) ну пусть скролится легенда или кнопку "вкл\выкл легенду". Масштабирование онлайн вроде обещали) Шрифт (описание, шкала), можно ли добавить опции настройки? (столкнулись с проблемой: на мониторе и телевизоре одного и того же разрешения проект смотрится совершенно по разному просто потому, что с 2-3м уже ничего не разобрать)

int2246

Добрый день. Спасибо вам за вашу программу. Подскажите пожалуйста можно ли сделать тренд  так, чтобы когда нажимаешь на стрелку которая сдвигает временную шкалу согласно времени, можно было выбрать время за которое отображать построенный график. Мне вот например надо отображать за 24 часа и при этом чтобы временная шкала сама двигалась.
Р.С. и можно в трендах стрелочки сделать с подсказками.