Тестирование Simple-Scada 2 (beta)

Автор Simple-Scada, 27 января 2016, 20:10:39

Simple-Scada

#75
ЦитироватьУ меня задача нарисовать прямоугольник с прозрачной заливкой и черной рамкой.
Мы где-то на форуме уже отвечали на этот вопрос. И Вы все поняли правильно, все рисуется как Вы и написали. Возникает это из-за особенностей графического движка при работе с примитивами. Но кажется мы придумали как обойти это ограничение при отрисовке прямоугольника. Послезавтра будем проводить испытания. Для круга отрисовка останется такой же, исключая рамку толщиной в 1 пикс., она будет рисоваться корректно.

ЦитироватьИ еще одна проблема. Я использую MasterSCADA OPC. Сейчас в конфигурации 84 тега.
Это интересный момент. А если при импорте в верхнем списке выбрать "Все теги (даже неопределенные)", то поведение не меняется? И ещё, если Вы знаете какой именно тег пропадает, можете сказать нам его тип данных, имя и полный адрес?

Цитироватьто остановив сервер OPC и при этом попытавшись поменять переменную в клиенте, которая участвовала в обмене, то просходит какое нарушение работы сервера скады.
Серьезная ошибка. Спасибо! Будем исправлять.

Проверять и исправлять все это будем послезавтра, т.к. на завтрашний день у нас появились неотложные дела. Также завтра мы не сможем отвечать на ваши вопросы.

TeNQ

#76
ЦитироватьЭто интересный момент. А если при импорте в верхнем списке выбрать "Все теги (даже неопределенные)", то поведение не меняется? И ещё, если Вы знаете какой именно тег пропадает, можете сказать нам его тип данных, имя и полный адрес?
Нет, не меняется.
Имя D592
Адрес Modbus-TCP.Delta-12SE.D592
Тип Single
Она у меня последняя в списке конфигурации OPC сервера. Я попробовал, добавил еще одну переменную D593. В списке импорта скады она отсутствует. Переменных в списке импорта 84, а кликаешь правой кнопкой на папке, выделяется 85 судя по надписи на кнопке. D592 появилась в списке импорта. Импортировал и все равно не могу ее использовать, ее нет в списке выбора.
Вообщем страдает именно последняя в списке конфигурации OPC сервера. Даже если у нее адрес младше, например D586, а просто в конфигурационном списке OPC сервера она стоит последней ее не видит при импорте клиент. Это уже точно, а вот с видимостью для выбора при использовании например в поле кнопки,
пока еще не понял закономерности. Но факт того, что переменная в списке редактора переменных присутствует, а в списке выбора ее нет уже налицо.
Выяснил. Последняя в списке редактора переменных становится не видна для выбора при использовании. Я создал виртуальную переменную. Она стала последней в списке, ее не видно, а предыдущую стало видно.

TeNQ

#77
ЦитироватьВозникает это из-за особенностей графического движка при работе с примитивами.
А если рисовать три прямоугольника, вместо двух. Первый в нижнем слое с регулируемой прозрачностью и цветом границы. Второй над ним в промежуточном слое непрозрачный с цветом фона и стороной минус толщина границы. Третий над вторым с регулируемой прозрачностью и цветом заливки и стороной минус толщина границы.
Также с кругом и другими фигурами.
Правда получится псевдо-прозрачная фигура. Под ней объекты будут скрыты.

Simple-Scada

#78
ЦитироватьВыяснил. Последняя в списке редактора переменных становится не видна для выбора при использовании.
Теперь ясно в чем дело. Исправим.

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

Simple-Scada

#79
Сегодня мы обновили beta-версию Simple-Scada 2. Все желающие, могут скачать её по старой ссылке.

Изменения:
  • включены скрипты для работы с файлами;
  • в скриптах при просмотре констант цветов, рядом с именем цвета отображается также и сам цвет;
  • рамка фигуры "Прямоугольник" теперь отрисовывается правильно. Рамка "Эллипс" отрисовывается правильно только если её толщина равно 1;
  • события окон OnShow и OnClose должны работать;
  • у окна появилось свойства "Цвет" и "Скрыть заголовок";
  • исправлена ошибка во время записи в некоторые виртуальные переменные;
  • у всех объектов появилось свойство "Цвет мигания". Причем мигание синхронно для всех объектов;
  • исправлена ошибка из-за которой не работали события для объектов расположенных в окнах;
  • видео-примеры скриптов для мигания и работы с файлами можно посмотреть здесь;
  • несколько мелких изменений;

Учтите, что сейчас мы не заботимся о совместимости версий, поэтому новая beta не будет работать с проектами старых версий.

korv

#80
Цитата: TeNQ от 29 января 2016, 19:56:56А вот скажите, человеку не имеющему навыки программирования каково будет написать этот скрипт. Мало того, что он должен знать структуру оператора case .. of .. end; Так еще и должен знать, что селектором оператора case в данном случае должно быть целочисленное число, поэтому вы его приводите к int. Ставить именно там где нужно : ;, а значит знать синтаксис языка. И только в этом случае скрипт успешно скомпилируется.

Я считаю что лучше чем скрипты еще  ничего не придумано. Использую другое ПО не по АСУТП. И там это реализовано очень просто. Есть возможность писать скрипты самому. А на самые распространенные ситуации существует мастер, в который подставляются циферки и условия. А система уже сама генерирует скрипт. Думаю надо идти этим путем. И как можно заниматься разработкой под SCADA и не знать языков. P.S. Вопрос к разработчикам есть ли внятная документация по синтаксису со всеми описаниями ограничений по скриптам. Например оператор case можно только использовать для целочисленных данных?

deldemo

Цитата: Simple-Scada от 07 февраля 2016, 00:16:48Сегодня мы обновили beta-версию Simple-Scada 2. Все желающие, могут скачать её по старой ссылке.
Огромное Спасибо за добавление цветовой маркировки в скриптах, ну и за остальные плюшки конечно же тоже!!!

Миханик

#82
1) Какие ограничения есть для вставляемых картинок в формате PNG?
Сейчас при попытке вставить изображение с 64-битной глубиной цвета редактор вылетает.

2) При импорте тегов из OPC сервера сделал фильтрацию по типу данных UInt32 и редактор вылетел с ошибкой (скриншот прилагаю).

3) При выборе цвета в палитре цветов, например цвет линии, если не выбирать цвет из палитры, а вводить его RGB значение в специальные поля, то при нажатии Enter последнее редактируемое поле не сохраняется. Нужно сначала перевести фокус на другое поле, чтобы значение сохранилось. Исправьте, пожалуйста.

4) Рассмотрим поле для вывода значений. Как у него убрать рамку и цвет фона?
Попытался сделать через объект Text (у него можно менять прозрачность рамки и фона), но при попытке написания общего скрипта OnDataChange для таких полей, почему-то недоступно свойство "Text". Например, я пишу
Код: pascal
begin
   if Sender is TM_Object then
      TM_Object(Sender).Text := TM_Object(Sender).ValueAsStr;
end.
компилятор ругается на свойство Text.
Если обращаться напрямую по имени поля, то свойство доступно.

5) При работе в редакторе написания скриптов. Скопировал в буфер текст одного скрипта и попытался вставить в только что созданный новый скрипт. Выскочила фатальная ошибка (скриншот номер 2).

Al_Kuz

Цитировать5) При работе в редакторе написания скриптов. Скопировал в буфер текст одного скрипта и попытался вставить в только что созданный новый скрипт. Выскочила фатальная ошибка (скриншот номер 2).

Было такое, но не каждый раз.

toreto


Simple-Scada

#85
Цитата: korv от 07 февраля 2016, 20:55:29Вопрос к разработчикам есть ли внятная документация по синтаксису со всеми описаниями ограничений по скриптам. Например оператор case можно только использовать для целочисленных данных?
Сейчас нет документации по синтаксису, но позже мы опишем их. По-поводу оператора case: да, он работает только с целочисленными данными. Если Вы хотите подставить в case вещественное число, то его нужно округлить функцией Round и конструкция будет выглядеть так:

Код: pascal
case Round(MyFloatValue) of 
  1: ...;
  2: ...;
end;


ЦитироватьКакие ограничения есть для вставляемых картинок в формате PNG?
Это должно быть полноцветное, либо grayscale-изображение с глубиной цвета 32-бита.

ЦитироватьПри импорте тегов из OPC сервера сделал фильтрацию по типу данных UInt32 и редактор вылетел с ошибкой (скриншот прилагаю).
Спасибо! Только что устранили эту ошибку.

ЦитироватьНужно сначала перевести фокус на другое поле, чтобы значение сохранилось. Исправьте, пожалуйста.
Попытался вставить в только что созданный новый скрипт. Выскочила фатальная ошибка (скриншот номер 2)
Принято, исправляем.

ЦитироватьРассмотрим поле для вывода значений. Как у него убрать рамку и цвет фона?
См. Руководство по скриптам на стр. 37, там есть описание свойств объекта Поле. Свойство BorderColor отвечает за цвет рамки, но чтобы убрать её вместе с фоном нужно менять прозрачность поля, т.е. Alpha. Если Вы пишите универсальный скрипт (который подойдет для все объектов), то он будет выглядеть так:

Код: pascal
begin
  Sender.Alpha := 0;
end;

Если это скрипт для одного конкретного поля, то можно обращаться напрямую, так:

Код: pascal
begin
  Field1.Alpha := 0;
end;

TeNQ

#86
Не совсем корректно работает автоподстановка. Если я напишу
Код: pascal
If FileOpen ('Мой файл.msf') then
          FileWriteInteger(X); 
А затем вспомнив, что надо указать преобразование для переменной X, нажму точку и выберу ValueAsInt, то автоподстановка будет выглядеть так.
Код: pascal
If FileOpen ('Мой файл.msf') then
          FileWriteInteger(X.)ValueAsInt  ;
Скобка почему-то пропускается и не сдвигается.Так мелочь.
А вот без Home, End непривычно. Постоянно туда рука тянется. Можно ли это ввести в редакторе скриптов?
Интересно как-то работает Tab в редакторе скриптов. Просто добавляется фиксированное кол-во пробелов. Но по-моему он должен не так работать. А переводить курсор на какую-то фиксированную позицию. Ведь по сути его назначение помогать равнять, а не только делать разрыв. А как сейчас равнять неудобно.

Миханик

Цитата: TeNQ от 09 февраля 2016, 14:42:13А вот без Home, End непривычно. Постоянно туда рука тянется.
Аналогично. Без них крайне неудобно!

Simple-Scada

#88
По поводу автоподстановки принято, исправим. С Home/End тоже, только в разных редакторах они используются по-разному. Как мы поняли вы ходите переходить в начало/конец строки (мы собираемся сделать именно так)? (в некоторых программах Home/End делают переход в начало/конец скрипта/документа) <- это будет по Ctrl + Home/End.

TeNQ

#89
Начало(Home)/конец(End) строки.
ЦитироватьКак мы поняли вы ходите переходить в начало/конец строки (мы собираемся сделать именно так)? (в некоторых программах Home/End делают переход в начало/конец скрипта/документа) <- это будет по Ctrl + Home/End.
Как вы предложили, это было бы идеально.