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

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

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

GEW

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #465 : 23 Августа 2017, 11:49:49 »
Спасибо, видимо недоглядел. Искал по руководству скриптов в свойствах кнопки подсказку, наверно забыли добавить в руководство.
Было бы кстати неплохо добавить функцию GetVariableByID. Тогда бы можно было было писать в тэг ID переменной.
« Изменён: 23 Августа 2017, 12:28:29 от GEW »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #466 : 23 Августа 2017, 15:47:21 »
Искал по руководству скриптов в свойствах кнопки подсказку, наверно забыли добавить в руководство.
Все компоненты в Simple-Scada 2 имеют свои уникальные свойства, а остальные свойства наследуют из базовых классов TM_Control и TM_Object. Свойство Hint как раз является базовым и описано здесь. Прочтите эту короткую статью в руководстве по скриптам, чтобы лучше понять организацию объектов в Simple-Scada 2.

Миханик

  • Постоялец
  • ***
  • Сообщений: 180
    • Просмотр профиля
    • www.vpa-dv.ru
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #467 : 11 Сентября 2017, 10:24:15 »
С версии 2.2.3.0 свойства Временных трендов доступны для изменения из скриптов, но например, свойство Variable не доступно для редактирования, можно только получить ID переменной через свойство VariableID.
Можно ли добавить для редактирования свойство Variable?
То есть мне нужно из скриптов менять переменные временного тренда (скриншот), чтобы не плодить целый огород разных временных трендов. Может я не там ищу?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #468 : 11 Сентября 2017, 16:45:50 »
Миханик, да, можем добавить это свойство и сделать его доступным для изменения. В ближайшем обновлении сделаем.

Миханик

  • Постоялец
  • ***
  • Сообщений: 180
    • Просмотр профиля
    • www.vpa-dv.ru
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #469 : 12 Сентября 2017, 03:11:50 »
Спасибо, было бы очень здорово!

AutoCY

  • Пользователь
  • **
  • Сообщений: 92
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #470 : 22 Сентября 2017, 14:37:41 »
День добрый!

Подскажите, возможно ли с помощью ОТЧЕТА получить выборку времени наработки оборудования? Когда-то я уже писал вам по этому поводу, еще до появления ОТЧЕТА. Тогда пришлось создавать массу переменных.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1178
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #471 : 22 Сентября 2017, 18:23:09 »
Здравствуйте!

В последнем обновлении (2.2.5.0) появились процедуры для работы с архивом. Среди них есть процедура ArchiveTimeOn, с помощью которой можно легко получить время наработки оборудования за указанный промежуток времени. Такой вариант Вам подойдет?

AutoCY

  • Пользователь
  • **
  • Сообщений: 92
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #472 : 25 Сентября 2017, 10:37:38 »
Да, похоже это как раз то, что нужно. Скачал на свой ПК полную версию 2.2.5.0 и time - версию, т.к. USB - ключ стоит у нас на сервере. Однако, ни в той ни в другой папке нет файла Client. exe. Как быть в этой ситуации?  И еще вопрос, раньше устанавливал MySQL на свой ПК, все работало, после вируса ПЕТЯ мой Server - скада пишет об отсутствии активных БД, хотя я переустанавливал MySQL. Не подскажите, в чем может быть проблема?

Спасибо за вашу работу!  ;)
« Изменён: 03 Октября 2017, 14:07:06 от Simple_Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1178
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #473 : 25 Сентября 2017, 10:56:25 »
Здравствуйте!

Цитировать
Однако, ни в той ни в другой папке нет файла Client. exe.
В архиве с любой версией имеются все необходимые для работы файлы, в том числе и клиент. Проверьте внимательно - может архив не до конца скачался или при распаковке Вы выделяете все содержимое кроме клиента. Либо файл клиента удаляется сторонним По (например антивирусом) после распаковки.

Цитировать
скада пишет об отсутствии активных БД, хотя я переустанавливал MySQL.
В настройках Вашего проекта на вкладке "База данных" укажите имя БД, а также имя пользователя и пароль, которые были заданы при установке MySQL. Нажмите кнопку "Проверить" - если
связь с БД установится, то выведется окошко об успешном соединении с БД.
« Изменён: 25 Сентября 2017, 10:57:42 от Simple-Scada »

AutoCY

  • Пользователь
  • **
  • Сообщений: 92
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #474 : 25 Сентября 2017, 13:37:00 »
Все сделал по Вашей инструкции - получилось.
Теперь о самом формировании выборки. Написал следующий скрипт:

Код
var
  DateStart, DateEnd: TDateTime;
begin

  if bn_1.AsBool = true then //bn_1 - кнопка формирования выборки
     begin
      DateEnd:= End_.AsDateTime;
      DateStart:= Start.AsDateTime;
     end;

  ArchiveTimeOn(MyVariable, MyVariableRes, DateStart, DateEnd);

end.

Выборка формируется по календарю, однако дата выводится странная:
30.12.1899 и далее время в нормальном виде. В чем может быть моя ошибка по дате?
« Изменён: 25 Сентября 2017, 13:52:36 от Simple_Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1178
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #475 : 25 Сентября 2017, 14:31:31 »
Вероятно Вы создали внутренние переменные "End_" и "Start" с типом DateTime для указания периода. Внутренние переменные при запуске проекта инициализируются нулем, поэтому и выводится дата 30.12.1899 - она соответствует нулю. Вам нужно инициализировать переменные - для этого создайте скрипт с типом события "Запуск проекта" и напишите скрипт:

Код
begin
  End_.Value := Now;
  Start.Value := Now;
end.

Скрипт выполнится при запуске проекта и переменные инициализируются текущей датой и временем. Либо можете указать произвольные дату/время воспользовавшись процедурами и функциями для работы с датой и временем.

Также, в Вашем скрипте можно не использовать локальные переменные - можно сразу указывать переменные начала/конца:

Код
begin
  if bn_1.AsBool = true then //bn_1 - кнопка формирования выборки
  ArchiveTimeOn(MyVariable, MyVariableRes, Start.AsDateTime, End_.AsDateTime);
end.

AutoCY

  • Пользователь
  • **
  • Сообщений: 92
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #476 : 25 Сентября 2017, 15:49:54 »
Вероятно Вы создали внутренние переменные "End_" и "Start" с типом DateTime для указания периода. Внутренние переменные при запуске проекта инициализируются нулем, поэтому и выводится дата 30.12.1899 - она соответствует нулю. Вам нужно инициализировать переменные - для этого создайте скрипт "Запуск проекта" и напишите скрипт:

Написал два скрипта. Первый для установления начальной даты Now переменным при ЗАПУСКЕ ПРОЕКТА, второй - для отображения данных при нажатии кнопки. Локальные переменные удалил, по Вашему совету. Изначально пишется текущая дата без времени, далее при выборе времени по календарю опять дата превращается в 30.12.1899. Я уже менял и даты выборки помимо часов и минут, и изначально задавал их разными - это отображается в календаре, но при создании выборки дата опять возвращается на 30.12.1899.

Скрипт при запуске проекта:
Код
begin
  Time_start.Value := (Now -1);
  Time_end.Value := Now;
end.   

Скрипт универсальный при нажатии кнопки:
Код
begin
  if btn_resultat.AsBool = true then
    ArchiveTimeOn(Start_time, Time_resultat, Time_start.AsDateTime, Time_end.AsDateTime) ;
end. 
Наименования переменных изменены.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1178
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #477 : 25 Сентября 2017, 16:19:38 »
Теперь понятно о чем Вы говорите. Вы имеете ввиду, что в календаре, в который выводится переменная наработки "Time_resultat" отображается дата 30.12.1899? Но у наработки нет даты - в нее выводится время наработки. У календаря наработки скройте дату и будет отображаться только время. Если нужно выводить наработку в другом формате, то напишите как Вы хотите выводить наработку, например, в формате "дни, часы, минуты" или как то по другому? Мы приведем пример как это сделать.

Уточнение - мы совсем забыли, что в последних обновлениях внутренние переменные DateTime уже сами инициализируются текущей датой. Поэтому нет необходимости инициализировать их при запуске проекта.

AutoCY

  • Пользователь
  • **
  • Сообщений: 92
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #478 : 26 Сентября 2017, 08:26:58 »
Теперь понятно о чем Вы говорите. Вы имеете ввиду, что в календаре, в который выводится переменная наработки "Time_resultat" отображается дата 30.12.1899?

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

Не совсем так. Я извиняюсь за не точность изложения.
В проекте я ввел два календаря: начало и конец даты и времени выборки Time_start и Time_end. Отображение времени и даты в них корректны. Далее я ввел цифровое поле с переменной Time_resultat и именно в нем отображается дата 30.12.1899 совместно с нормальным временем.
« Изменён: 26 Сентября 2017, 08:27:52 от AutoCY »

AutoCY

  • Пользователь
  • **
  • Сообщений: 92
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #479 : 26 Сентября 2017, 13:09:01 »
Работа с архивом - процедура ArchiveTimeOn. У нее есть параметр ALayer, который определяет слой архива. Основной слой - какой выводит формат?