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

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

AndreyAlekseev

Версия последняя
Объект Кнопка

Simple-Scada

Это из-за прозрачности кнопки. В web, для улучшения производительности кнопка отрисовывается как единый компонент и прозрачность кнопки влияет на фон и текст (в обычном клиенте они отрисовываются отдельно друг от друга). В данном случае Вы можете убрать прозрачность и задать нужный цвет (такой, как если бы кнопка была прозрачной). Во вложении пример свойств. Если планируете использовать web-клиенты, то рекомендуем везде (где возможно) прозрачность выставлять 255 (без прозрачности) и выбирать подходящий цвет. Тогда браузер сможет быстрее выполнять отрисовку.   

AndreyAlekseev

Благодарю! Не обратил внимание на то, что параметр также меняется.

globalhook

Добрый день
На время принятия решения о покупке Simple SCADA, пользовались демо версией с системой архивации v1. Сейчас, после покупки, хотелось бы сохранить накопленные архивные данные и перейти на v2. Однако, я так и не нашел инструкции или описания о переносе данных. Только переход с потерей. Если останусь на пару лет с версией v1, как бы не получилось, что в очередном обновлении решат отказаться от v1 напрочь и тогда уж точно потеряются данные насовсем. Какие есть варианты перенести данные с v1 на v2?

Simple_Scada

Здравствуйте.

При необходимости можно оставаться на v1, все будущие версии Simple-Scada 2 будут поддерживать старую систему архивации. Системы архивации v1 и v2 имеют разные структуры таблиц, из-за чего перенести данные из одной системы в другую невозможно. По возможности рекомендуем перейти на систему архивации v2, т.к. она имеет ряд преимуществ - подробнее см. по ссылке. Также, следует учитывать, что некоторые будущие изменения будут работать только с системой архивации v2.

Banzai

Добрый день. Возник вопрос при обработке тега BAD у переменной OPC. Изменение качества тега при том же значении не считается за изменение переменной и скрипт по изменению не срабатывает. Планируется ли добавить возможность срабатывания скрипта по изменению качества?

Simple Scada

Здравствуйте.

Цитата: Banzai от 21 марта 2023, 11:08:55при обработке тега BAD у переменной OPC. Изменение качества тега при том же значении не считается за изменение переменной и скрипт по изменению не срабатывает. Планируется ли добавить возможность срабатывания скрипта по изменению качества?
Начиная с версии Simple-Scada 2.4.0.10 от 06 ноября 2020 скрипты OnDataChange (к которым относится событие "Изменились переменные") срабатывают даже если значение переменной не менялось, а изменилось только её качество.

Если используется более старая версия, то нужно обновиться до актуальной или более новой версии. Актуальные демо-версии доступны на сайте по ссылке. Если дело не в этом, то пришлите нам на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и укажите, какой скрипт нужно проверить.

porhalo

Здравствуйте!
Работаем на последней версии simple-scada. Скажите пожалуйста, есть ли возможность изменять размер окна в работающем проекте, например как в windows с помощью мышки, перетягивая границы? оператор хочет открыть несколько окон рядом, а все не помещается.

Simple_Scada

Здравствуйте. Такой возможности нет.

KANT

#1569
Добрый день!
Есть множество шаблонных объектов (резервуары), один из параметров - это Обозначение резервуара, которое пользователь может изменять на свое усмотрение. Обозначение вынесено в переменные. Можно ли реализовать из среды исполнения смену имени тренда согласно названию резервуара (при отображении трендов в штатном окне трендом)?
Сейчас удалось это сделать только по запуску проекта:
Код: pascal
  Trend1.Caption := NameTank_1.Value;
  Trend2.Caption := NameTank_2.Value;
  Trend3.Caption := NameTank_3.Value;
Также это работает по OnInit шаблона, но приходится приходится обращаться к каждому тренду Trend1.Caption :=, Trend2.Caption := и т.д. Напрашивается то-то вроде GetTrendByname("ххх" + N).Caption :=....

Simple Scada

#1570
Здравствуйте.

Данную задачу можно реализовать с помощью процедуры "SetTrendAll". Для этого у компонента "Поле", через которое задается "Обозначение резервуара", в свойство "Переменная" нужно указать переменную с подстановкой "vrNameTank_%№%", а в свойство "Доп. переменная" указать переменную с подстановкой (например "vrMyVar_%№%") у которой требуется изменить подпись в трендах. Соответственно, все переменные должны иметь однотипные имена. Также подстановку "%№%" нужно указать в свойство "Тег". Далее на событие "OnDataChange" данного поля написать скрипт:
Код: pascal
begin
  if Sender is TM_Object then
    with Sender as TM_Object do
      SetTrendAll(0, Tag, VariableEx.ID, Variable.AsStr);
end.
Теперь при изменении "Обозначения резервуара" будет меняться и имя соответствующего тренда. Но данный способ будет работать только с одной группой трендов (в примере с "ID группы трендов" = 0). При необходимости "ID группы трендов" можно указывать через свойство "Подсказка/Hint".

KANT

#1571
Спасибо!
А возможно ли изменить имя трендна через GetTimeTrendViewerByName('имя штатного вивера').Trend[номер объекта].Caption := vr.Value; Неизвестно только 'имя штатного вивера' чтобы его искать.

Simple_Scada

Здравствуйте.

Функция GetTimeTrendViewerByName предназначена для поиска объекта "Временные тренды" и никак не связана с архивными трендами.

KANT

Воспользовался SetTrendAll     
по onInit шаблонного объекта:
SetTrendAll (1, iNmb, GetVariableByName('CalcVolTank_' + sNmb).ID, GetVariableByName('NameTank_' + sNmb).Value); // задаем тренду новое имя iNmb и sNmb номер объекта.
Протестировал на трех экземплярах объекта
По каким-то причинам эта подмена не всегда срабатывает при старте проекта: то не заменит имена вовсе, то заменит часть, то все заменит.
             

Simple-Scada

#1574
ЦитироватьПо каким-то причинам эта подмена не всегда срабатывает при старте проекта: то не заменит имена вовсе, то заменит часть, то все заменит.
Если клиент успеет подключиться к серверу до вызова SetTrendAll, то всё будет работать корректно. Если клиент ещё не подключен, то вызов SetTrendAll ни к чему не приведёт. У Вас так и получается, если повезёт и клиент подключится до вызова SetTrendAll, то всё работает, иначе - не работает.
SetTrendAll - просто говорит всем подключенным (в момент вызова!!!) клиентам о том, что нужно заменить указанные тренды. Поэтому нет смысла вызывать SetTrendAll по OnInit шаблона, ведь клиенты в этот момент могут быть совсем не подключены к серверу. SetTrendAll обычно используется в редких случаях по требованию клиента, например когда пользователь нажал кнопку на мнемосхеме: меняем тренды в группе N и переходим в эту группу.
Также непонятно зачем вообще использовать SetTrendAll на этапе инициализации, если можно просто в редакторе создать нужные группы с нужными трендами и не использовать скрипты вовсе.

Кажется мы неправильно поняли Ваш вопрос в предыдущей переписке. Если Вы хотите с помощью скриптов автоматизировать создание/замену групп трендов, то это невозможно, такой функции в Simple-Scada на данный момент нет. Можно попробовать обмануть систему и вызывать SetTrendAll в скрипте с типом "Клиент подключен", такой вариант может работать корректно, но это плохое решение.