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

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

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

bars

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #165 : 08 Ноября 2016, 11:15:48 »
Подскажите, пользовательский звуковой фаил как вставить в проек в качестве звука аварийной сигнализации? Только скриптами? В меню выбираются только 6 стандартных звуков.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1178
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #166 : 08 Ноября 2016, 12:34:49 »
Здравствуйте!

Вы можете сохранить свой файл, например с именем Sound_1.ogg и заменить аналогичный файл в папке \Simple-Scada 2\Libraries. Затем, в настройках проекта ->Сообщения -> "Звук аварии" выбрать Sound_1 - теперь при появлении аварийного сообщения будет проигрываться Ваш файл. Важно! Ваш файл обязательно должен быть в формате .ogg
« Изменён: 08 Ноября 2016, 12:36:08 от Simple_Scada »

bars

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #167 : 09 Ноября 2016, 07:49:15 »
И я так понимаю звуков не будет больше шести...

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #168 : 10 Ноября 2016, 19:41:17 »
bars, да, при этом также не получится поставить разные звуки на аварийные сообщения. Для всех аварийных сообщений будет использоваться один звук. Для всех предупреждающий другой.

Mishail

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #169 : 11 Ноября 2016, 09:12:51 »
Здравствуйте!
Подскажите пожалуйста есть ли возможность работы с переменной String в плане: отрезать, добавить или заменить символ или часть строки. Знаю в Object Pascal есть такие функции(процедуры) как Delete, Insert, Copy и т. д., но тут не получается их использовать.
Заранее, спасибо за ответ.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #170 : 11 Ноября 2016, 10:02:07 »
Здравствуйте.

В данный момент есть только следующие функции для работы со строками:
  • UTF8Copy(Str: UTF8String; FromPosition, Count: Integer) - копирует Count символов из строки Str, начиная с позиции FromPosition;
  • UTF8Length(Str: UTF8String) - возвращает длину строки Str;
  • UTF8ToString(AStr: UTF8String) - приводит строку AStr к типу string;
  • UTF8Encode(AStr: string) - приводит строку AStr к типу UTF8String;

Пример копирования части текста:
Код
var
  aStr: string;
begin
  aStr := 'Привет мир!';
  Text1.Text := UTF8Copy(UTF8Encode(aStr), 1, 6);  // в Text1 запишется "Привет"
end.

В ближайшее обновление добавим также другие функции для работы со строками.

starmos

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #171 : 18 Ноября 2016, 12:10:10 »
Непонятно.
Скрипт:
Код
begin
    Obem1 := V_1.AsFloat  + V1_1.AsFloat * 0.0001;
end.
Ошибка:
[uGlobal] Incompatible types "TM_Variable" and "DOUBLE", в строке: 2, позиция: 49

Типы переменных: V_1:LongWord, V1_1:Word, Obem1:Double   Первые две берутся с OPC, третья - виртуальная.
Как я понимаю все типы в выражении должны совпадать?  В чем тогда причина ошибки? И где в редакторе посмотреть позицию 49?
« Изменён: 18 Ноября 2016, 12:11:04 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #172 : 18 Ноября 2016, 12:14:00 »
starmos, дело в том, что Obem1 это глобальная переменная и она имеет тип TM_Variable, который включает в себя множество свойств (подробно описан здесь), одно из которых Значение (Value). Правильно менять не саму переменную, а значение переменной, вот так:

Код
begin
    Obem1.Value := V_1.AsFloat  + V1_1.AsFloat * 0.0001;
end.

Цитировать
И где в редакторе посмотреть позицию 49?
Это позиция курсора по горизонтали и она указывает на конец строки "    Obem1 := V_1.AsFloat  + V1_1.AsFloat * 0.0001;", ровно 49 символов.
« Изменён: 18 Ноября 2016, 18:53:10 от Simple-Scada »

deldemo

  • Старожил
  • ****
  • Сообщений: 308
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #173 : 01 Декабря 2016, 19:18:00 »
РЕШЕНО!
Ребята здравствуйте. Направьте пожалуйста на путь истинный.
Не могу реализовать нормально работающий код для дискретной задвижки.
Хотелки => Что бы при состоянии задвижки ОТКРЫТА в поле писалось 'Открыта'
, а при состоянии ЗАКРЫТА ,естественно, 'Закрыта'.

Я делал так.
Создал внутреннею переменную, ее присвоил задвижке. И уже в эту virt_переменную в зависимости от сработавшего концевика писал текст. Но для этой процедуры приходится создавать кучу доп. объектов. 
Так то в принципе все ничего, но при старте СКАДЫ в этих поля прочерки " ---- " пока не поменяется состояние концевика.
А хотелось бы сразу лицизреть нужную надпись о положении задвижки.

Код
Скрипт 1

begin
  if PLC2_FIRST_PRG_zkh1_open_ok.AsInt = 1 then
    virtZKH1_txt.Value := 'Открыта'
  else
    virtZKH1_txt.Value := '----'
end.           

Скрипт 2

begin
  if PLC2_FIRST_PRG_zkh1_close_ok.AsInt = 1 then
    virtZKH1_txt.Value := 'Закрыта'
  else
    virtZKH1_txt.Value := '----'
end.       
« Изменён: 02 Декабря 2016, 09:00:32 от deldemo »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #174 : 02 Декабря 2016, 10:30:25 »
Цитировать
РЕШЕНО!
Не успели, но здесь видимо нужно было что-то вроде этого кода:

Скрипт 1:
Код
begin
  if (PLC2_FIRST_PRG_zkh1_open_ok.AsInt = 1) and (PLC2_FIRST_PRG_zkh1_close_ok.AsInt <> 1) then
    virtZKH1_txt.Value := 'Открыта';
end.   

Скрипт 2:
Код
begin
  if (PLC2_FIRST_PRG_zkh1_close_ok.AsInt = 1) and (PLC2_FIRST_PRG_zkh1_open_ok.AsInt <> 1) then
    virtZKH1_txt.Value := 'Закрыта';
end.

deldemo

  • Старожил
  • ****
  • Сообщений: 308
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #175 : 02 Декабря 2016, 11:04:11 »
Администратор. Мне просто еще хотелось что бы в процесе работы или аварии был текст  "----"

Решил так:

Скрипт 1
Код
begin
  if PLC2_FIRST_PRG_zkh1_close_ok.AsInt = 1 then
    virtZKH1_txt.Value := 'Закрыта';

  if (PLC2_FIRST_PRG_zkh1_close_ok.AsInt = 0) and (PLC2_FIRST_PRG_zkh1_open_ok.AsInt = 0) then
    virtZKH1_txt.Value := '----'
end.                     

Скрипт 2

Код
begin
  if PLC2_FIRST_PRG_zkh1_open_ok.AsInt = 1 then
    virtZKH1_txt.Value := 'Открыта';

  if (PLC2_FIRST_PRG_zkh1_close_ok.AsInt = 0) and (PLC2_FIRST_PRG_zkh1_open_ok.AsInt = 0) then
    virtZKH1_txt.Value := '----'
end.                   



beloleg86

  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #176 : 06 Декабря 2016, 09:41:24 »
Добрый день, подскажите можно ли сделать кнопку, что бы при нажатии я попадал в определенную группу трендов, например есть у меня группы давления, уровня, температуры, разряжения, положения приводов ну и т.д. я хочу попасть на тренд разряжение, т.е. нажал и мне открылись графики тренда разряжения (не временные). В справке так понял что можно открыть группу трендов скриптом по кнопке  а потом выбрать из этой группы нужную группу и тогда я попадаю на страниц трендов

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #177 : 06 Декабря 2016, 16:18:10 »
Здравствуйте.

В версии 2.1.2.0 Добавили процедуры GoToTrendsGroupAll, GoToTrendsGroupClient, GoToMessagesGroupAll, GoToMessagesGroupClient. С их помощью можно перейти в заданную группу трендов или сообщений.
« Изменён: 12 Декабря 2016, 12:21:50 от Simple-Scada »

596039

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #178 : 12 Декабря 2016, 19:09:28 »
Здравствуйте, можно ли как-нибудь "спросить" скриптом у группы трендов какой у нее ID?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #179 : 12 Декабря 2016, 20:16:24 »
Цитировать
Здравствуйте, можно ли как-нибудь "спросить" скриптом у группы трендов какой у нее ID?
596039, здравствуйте, а для какой цели это нужно? Можно посмотреть ID нужной группы в Редакторе и указать этот ID.