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

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

Автор Тема: Вопросы по скриптам в Simple-Scada 2  (Прочитано 314297 раз)

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 2996
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #510 : 08 Ноября 2017, 10:40:28 »
Здравствуйте.

Когда Вы связываете компонент "Поле" с какой-то переменной, то при каждом изменении переменной скада будет автоматически выводить в это поле обновленное значение переменной, т.е. будет перебивать Ваш скрипт, что и происходит в Вашем случае. Если нужно вывести на мнемосхему преобразованное значение какой-то переменной, то нужно использовать компонент "Текст", связать его с переменной и на OnDataChange написать скрипт:

Код
var
  q: Single;
  i: Int64;
begin
  i := Text1.AsInt64 mod 222;
  q := i / 10;
  Text1.Text := FloatToStr(q, 1);
end.

Если таких объектов должно быть много, то можно не писать для каждого объекта отдельный OnDataChange-скрипт и воспользоваться универсальным скриптом:
Код
var
  q: Single;
  i: Int64;
  aText: TM_Text;
begin
  if not (Sender is TM_Text) then Exit;
  aText := Sender as TM_Text;
  i := aText.AsInt64 mod 222;
  q := i / 10;
  aText.Text := FloatToStr(q, 1);
end.

Этот скрипт можно расставить на событие OnDataChange множеству объектов "Текст" и он будет работать.

JonyBest

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #511 : 08 Ноября 2017, 12:25:02 »
СПС! Так работает.

bars

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #512 : 08 Ноября 2017, 12:31:46 »
Здравствуйте! Подскажите пожалуйста как при помощи переменной можно изменять угол положения изображения. Это необходимо для визуализации положения заслонок.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1165
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #513 : 08 Ноября 2017, 22:16:15 »
Здравствуйте!

Для изменения угла наклона изображения используется свойство Angle. У изображения в свойстве "Переменная" укажите переменную, по которой необходимо изменять угол наклона. Создайте скрипт по событию OnDataChange изображения:
Код
begin
  if Sender is TM_Image then    // проверяем, что Sender это Изображение
    with Sender as TM_Image do  // приводим Sender к типу "TM_Image"
      if AsInt = 1 then         // если значение переменной объекта равно 1, то
        Angle := 90             // изменить угол на 90
      else                      // иначе
        Angle := 45;            // изменить угол на 45
end.

Это универсальный скрипт, который подойдет для любого изображения.

AutoCY

  • Пользователь
  • **
  • Сообщений: 92
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #514 : 10 Ноября 2017, 09:57:23 »
Это отчет, в котором одному выводимому значению из Master источника данных, соответствует какое-то количество значений из Detail источника данных. В руководстве его нет, нам нужно будет написать статью с примером создания такого отчета. Кроме того нужно будет внести мелкие изменения в редактор отчетов, поэтому потребуется время. Внесём изменения и опубликуем статью к концу недели.

Здравствуйте, получается ли у вас с дополнением в редакторе отчета?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 2996
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #515 : 10 Ноября 2017, 20:51:14 »
Цитировать
Здравствуйте, получается ли у вас с дополнением в редакторе отчета?
Здравствуйте. Да, получается, версию скады уже обновили. На выходных опубликуем статью.

alex29

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #516 : 11 Ноября 2017, 12:09:05 »
Здравствуйте. у меня такой вопрос: к примеру имеем несколько страниц визуализации ( т.к на одной всё не уместится), можно ли скриптами (или может еще как) сделать так, чтобы при аварии помимо сообщения еще вверху  мигала бы страница на которой это произошло. если да, поделитесь примером.
 под страницей я имел ввиду мигание вкладки
« Изменён: 12 Ноября 2017, 14:49:03 от alex29 »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1165
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #517 : 13 Ноября 2017, 11:01:20 »
Здравствуйте!

Цитировать
можно ли скриптами (или может еще как) сделать так, чтобы при аварии помимо сообщения еще вверху  мигала бы страница на которой это произошло. если да, поделитесь примером.
Это можно сделать только создав прямоугольник с помощью компонента "Фигура" и разместив его поверх вкладки страницы. Затем, создать скрипт с типом события "Изменились переменные"(пример создания такого скрипта можно найти здесь). И в этом скрипте описать условия, по которым должен мигать наш прямоугольник, например:

Код
begin
  if (aVar1.AsInt = 1) or (aVar2.AsInt = 2) or (aVar3.AsInt = 3) then
    Shape1.FlashColor := clRed   // включить мигание красным цветом
  else                           // иначе
    Shape1.FlashColor := clNone; // отключить мигание
end.

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

AutoCY, сегодня опубликовали статью с примером создания Master-Detail отчета. Не забудьте скачать последнюю версию скады, иначе отчет будет строиться с ошибкой.
« Изменён: 13 Ноября 2017, 11:16:35 от Simple_Scada »

alex29

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #518 : 13 Ноября 2017, 11:13:26 »
понял. спасибо. а не планируется ли добавить такую "плюшку" штатно. то есть мигание вкладки на которой сформировался любой аварийный сигнал

alex29

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #519 : 13 Ноября 2017, 13:37:07 »
попробовал сделать как вы посоветовали. но для прямоугольника не имеет значения находится он на странице или выше на вкладке, его видно только если открыта эта страница, соответственно смысл теряется. мигание нужно видеть не зависимо от какая страница открыта..  может еще что то посоветуете?

AutoCY

  • Пользователь
  • **
  • Сообщений: 92
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #520 : 13 Ноября 2017, 16:30:32 »
Да, получается, версию скады уже обновили. На выходных опубликуем статью.

Просьба, когда опубликуете, укажите ссылку. Спасибо.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 2996
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #521 : 13 Ноября 2017, 16:50:38 »
AutoCY, смотрите наш ответ в этой теме выше (ответ #518), ссылка указана. Вот она ещё раз.

Цитировать
понял. спасибо. а не планируется ли добавить такую "плюшку" штатно
Мы планируем добавить возможность привязки сообщений к объектам в будущем, но это будет не в ближайшее время. Сейчас основной задачей является разработка web-клиента для скады.

Цитировать
попробовал сделать как вы посоветовали. но для прямоугольника не имеет значения находится он на странице или выше на вкладке, его видно только если открыта эта страница, соответственно смысл теряется. мигание нужно видеть не зависимо от какая страница открыта..  может еще что то посоветуете?
Да верно, т.к. объекты принадлежат страницам/подстраницам на которых созданы, поэтому нужно создавать прямоугольники на каждой странице/подстранице и в скрипте включать/выключать мигание сразу нескольких прямоугольников. Сейчас возможно только такое решение.
« Изменён: 13 Ноября 2017, 19:22:10 от Simple_Scada »

Golowa70

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #522 : 21 Ноября 2017, 15:30:07 »
Здравствуйте. В редакторе скриптов есть функция " RunApplication" которая может запускать приложение. Вопрос в следующем -
 есть ли возможность закрыть это приложение посредством скриптов?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 2996
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #523 : 21 Ноября 2017, 15:48:07 »
Здравствуйте.
Отдельной процедуры для закрытия приложения нет. Можно создать .bat-файл который выполняет закрытие приложения и запускать его из скады через RunApplication.

levchenkoa

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #524 : 21 Ноября 2017, 17:03:29 »
Здравствуйте.
Отдельной процедуры для закрытия приложения нет. Можно создать .bat-файл который выполняет закрытие приложения и запускать его из скады через RunApplication.
Использую для этого nircmd.
http://www.nirsoft.net/utils/nircmd2.html
Необходимо добавить путь к nircmd.exe  в переменную Path Системных переменных или просто скопировать в каталог, который уже там обозначен (Например: C:\Windows)
Вызов из скрипта:
Код
begin
  RunApplication(GetClientName, 'nircmd.exe'  , 'killprocess notepad.exe');
end.